sbirtopics

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/matchBody {"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/topicsOpen 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.