FedFinder connector tools and examples
For AI agents: use the documentation index. This page is also available as Markdown.
Use the smallest read-only call that answers your question, then check the original source. Your client's tools/list response is the authority for the tools available to your plan and granted scopes. The catalog below includes tools that may not be included in your account. See plans and limits.
Try a read-only search
Ask your assistant to use search_opportunities with these arguments. This is an example filter, not a recommendation about your business.
{"naics":"541810","limit":5,"page":1}
Then call get_opportunity with an identifier from the returned record. Do not invent an identifier or response deadline. Ask for source links, dates and unresolved requirements. Search results are stored observations, not an eligibility certification.
Research saves are not pursuits
The save_opportunity and remove_saved_opportunity tools modify a research shortlist of up to 25 records per account. They do not create or delete Pursuit Board records. Before any write tool, get explicit approval for the identifier and proposed change. The connector does not submit a bid or quote.
Tool reference
search_opportunities
Search open federal opportunities. Reads data; does not change account records.
Required scope: opportunities:read.
naics: string, optional.agency: string, optional.state: string, optional.set_aside: string, optional.limit: integer, optional; minimum 1; maximum 100; default 25.page: integer, optional; minimum 1; default 1.
get_opportunity
Get one opportunity. Reads data; does not change account records.
Required scope: opportunities:read.
identifier: string, required.
search_state_opportunities
Search state and local opportunities. Reads data; does not change account records.
Required scope: state-opportunities:read.
state: string, optional.naics: string, optional.limit: integer, optional; minimum 1; maximum 100; default 25.page: integer, optional; minimum 1; default 1.
search_contracts
Search awarded contracts. Reads data; does not change account records.
Required scope: contracts:read.
naics: string, optional.state: string, optional.set_aside: string, optional.limit: integer, optional; minimum 1; maximum 100; default 25.page: integer, optional; minimum 1; default 1.
search_vendors
Search vendors. Reads data; does not change account records.
Required scope: vendors:read.
naics: string, optional.state: string, optional.limit: integer, optional; minimum 1; maximum 100; default 25.page: integer, optional; minimum 1; default 1.
search_people
Search contracting people. Reads data; does not change account records.
Required scope: people:read.
limit: integer, optional; minimum 1; maximum 100; default 25.page: integer, optional; minimum 1; default 1.
search_grants
Search grants. Reads data; does not change account records.
Required scope: grants:read.
include_reference: boolean, optional; default false.limit: integer, optional; minimum 1; maximum 100; default 25.page: integer, optional; minimum 1; default 1.
search_pre_rfp_signals
Search pre-RFP signals. Reads data; does not change account records.
Required scope: pre-rfp-signals:read.
limit: integer, optional; minimum 1; maximum 100; default 25.page: integer, optional; minimum 1; default 1.
list_new_matches
List new opportunity matches. Reads data; does not change account records.
Required scope: matches:read.
match_type: string, optional; choices: saved_search, smart_match.limit: integer, optional; minimum 1; maximum 100; default 25.page: integer, optional; minimum 1; default 1.
list_captures
List your pursuits. Reads data; does not change account records.
Required scope: captures:read.
limit: integer, optional; minimum 1; maximum 100; default 25.page: integer, optional; minimum 1; default 1.
list_win_loss
List your wins and losses. Reads data; does not change account records.
Required scope: winloss:read.
limit: integer, optional; minimum 1; maximum 100; default 25.page: integer, optional; minimum 1; default 1.
create_pursuit
Create a pursuit. Changes account records. Confirm the exact change with the user first.
Required scope: captures:write.
notice_id: string, optional.title: string, optional.stage: string, optional; choices: identify, qualify, target, pursue, propose, proposal, submitted, won, awarded, lost, closed; default identify.agency: string, optional.naics: string, optional.set_aside: string, optional.est_value: number, optional; minimum 0.capture_lead: string, optional.next_action: string, optional.next_action_date: string, optional.proposal_due: string, optional.
update_pursuit
Update a pursuit. Changes account records. Confirm the exact change with the user first.
Required scope: captures:write.
capture_id: integer, required; minimum 1.stage: string, optional; choices: identify, qualify, target, pursue, propose, proposal, submitted, won, awarded, lost, closed.owner: string, optional.next_action: string, optional.next_action_date: string, optional.
add_pursuit_note
Add a note to a pursuit. Changes account records. Confirm the exact change with the user first.
Required scope: captures:write.
capture_id: integer, required; minimum 1.text: string, required.
api_info
What this connection can reach. Reads data; does not change account records.
Required scope: no additional tool-specific scope; authentication and plan policy still apply.
Inputs: none.
remove_saved_opportunity
Remove a saved opportunity. Changes account records. Confirm the exact change with the user first.
Required scope: captures:write.
identifier: string, required.
save_opportunity
Save an opportunity. Changes account records. Confirm the exact change with the user first.
Required scope: captures:write.
identifier: string, required.
list_saved_opportunities
Saved opportunities. Reads data; does not change account records.
Required scope: captures:read.
Inputs: none.
search_dibbs
Search DLA DIBBS. Reads data; does not change account records.
Required scope: opportunities:read.
nsn: string, optional.fsc: string, optional.part_number: string, optional.solicitation_number: string, optional.supplier_type: string, optional.supplier_basis: string, optional.cage: string, optional.country: string, optional.state: string, optional.approval_status: string, optional.limit: integer, optional; minimum 1; maximum 25; default 25.
get_dibbs
DLA DIBBS evidence. Reads data; does not change account records.
Required scope: opportunities:read.
id: integer, required; minimum 1.
get_company_profile
Your company profile. Reads data; does not change account records.
Required scope: matches:read.
Inputs: none.
connection_usage
Connection usage. Reads data; does not change account records.
Required scope: matches:read.
Inputs: none.
Apply the right evidence standard
Research calls with a limit input are capped at 25 records. DIBBS remains capped at 25 for every plan. Some other plans' paged tools support up to 100. A single page is not complete coverage.
For search_dibbs, supplier_type accepts comma-separated types: manufacturer, authorized_distributor, distributor_reseller, repair_overhaul, mixed, unknown. Use supplier_basis historical_awardee or published_approved_source to distinguish the classification evidence. Unknown does not mean disqualified.
A company profile is customer-entered account information, not verified certification. Historical awards do not prove eligibility, approved-source status or future availability. Verify original notices and amendments before a pursuit or quote.
Last reviewed: October 24, 2026.
