For agents and developers
Every open SBIR/STTR topic, matched to a company's past awards or to a capability paragraph, as a JSON API and a remote MCP server.
Using the API or the MCP endpoint means you accept the Terms (see
API and MCP access). Every response carries an X-Terms header with their address.
Automated matching only, not legal advice.
Limits and keys
Without a key: 5 match calls a day per address. With a key ($29/month, pricing):
500 a day. Send the key as Authorization: Bearer YOUR_KEY. Over the limit: HTTP 429. An
unknown or revoked key: HTTP 401 (on MCP, a tool error). The free tier counts per network address, so a hosted MCP
client that calls from shared servers shares one free quota with its other users: use a key there. Limits are counted
per UTC day and are approximate by a few calls under bursts.
MCP
Remote MCP server (Streamable HTTP, JSON responses, stateless): https://sbirtopics.pages.dev/mcp. Tools:
match_firm(name), match_text(text), get_match(id),
list_topics(status?, agency?), get_topic(id). A match call waits up to 8 seconds for the
result; if it is still running it returns status: "working" and you poll get_match.
{
"mcpServers": {
"sbirtopics": {
"type": "http",
"url": "https://sbirtopics.pages.dev/mcp",
"headers": {
"Authorization": "Bearer YOUR_KEY"
}
}
}
}
Leave out the headers block to use the free tier.
JSON API
POST /api/v1/match | Body {"firm": "COMPANY NAME"} or {"text": "what the company does"}
(up to 2,000 characters). Answers 202 with id and status_url. |
|---|---|
GET /api/v1/match/<id> | status is working, done or
error; when done, results lists up to ten topics with topic_id, title, agency, branch,
program, status, open, close, score, shared_terms, closest_award, url, page. |
GET /api/v1/topics | Open and pre-release topics; filters ?status=open|pre-release
and ?agency=NSF. |
GET /api/v1/topics/<id> | One topic with its description. |
curl -s -X POST https://sbirtopics.pages.dev/api/v1/match -H 'Content-Type: application/json' \
-d '{"text": "We build tunable RF notch filters for radar receivers."}'
curl -s https://sbirtopics.pages.dev/api/v1/match/ID
Machine-readable: /openapi.json (OpenAPI 3.1) and /llms.txt.
What the score means
Text similarity (0 to 1) between a topic and the company's closest past award, or its paragraph. It does not mean the company qualifies or should propose. Topic data comes from public SBIR.gov pages; check the official topic before relying on a date. Do not send confidential, export-controlled or personal information.