SBIR/STTR Data Dictionary¶
This document describes the fields available on the SBIR/STTR API endpoints (/api/sbir/topics/, /api/sbir/solicitations/). For filtering, ordering, and pagination, see the SBIR API Reference.
Overview¶
The SBIR/STTR endpoints cover Small Business Innovation Research and Small Business Technology Transfer topics across every participating agency (DoD, NIH, NSF, NASA, DOE, DOT and more), and the DoD DSIP solicitation cycles those topics belong to. Topics link to the parent that funds them — a DSIP cycle, a SAM.gov notice, or a Grants.gov announcement. Solicitations are DoD (DSIP) only.
Note: The full field set is available via the shape query parameter. See Response Shaping for details.
Lifecycle: activity¶
Both resources expose a derived activity field. On topics it is open, closed, or unknown (no usable date roster). On solicitations it is open or closed, derived from the cycle end_date. activity is computed at query time; solicitation_status is the source's own raw status string and is exposed separately.
Topic fields (/api/sbir/topics/)¶
Detail lookup is by topic_id.
| Field | Type | Description | Source |
|---|---|---|---|
topic_id | String | Primary key; natural key minted by Tango (sbir-topic-<hash>). | Tango |
topic_node_id | String | Source node id (e.g. Drupal 12835). | sbir.gov |
topic_url | String | Link to the topic on the source site. | sbir.gov |
title | String | Topic title. | sbir.gov |
agency | String | Raw agency text as the feed carries it, department-level (DOD, NSF, DOE, NASA, HHS, DHS, DOT, EPA, DOC, USDA, ED). Component agencies are not values — NIH topics carry HHS. The resolved organization is the organization expand. | sbir.gov |
year | Integer | Solicitation year. | sbir.gov |
topic_number | String | Topic number. | sbir.gov |
solicitation_number | String | Parent BAA number; with cycle_name, joins to the parent solicitation. | sbir.gov |
cycle_name | String | DoD DSIP cycle name (e.g. DOD_SBIR_2026_P1_CBZ); links a DSIP-fed topic to its parent cycle. Empty string for topics not fed from DSIP. | DSIP |
official_solicitation_url | String | Link to the official solicitation. | sbir.gov |
doc_source | String | Document source: grants_gov, dsip, sam_gov, other, none. | Tango |
description | String | Topic description (detail default). | sbir.gov |
release_date | Date | Topic release date. | sbir.gov |
open_date | Date | Topic open date. | sbir.gov |
close_date | Date | Topic close date — reflects the topic's own schedule and outranks the parent BAA window. | sbir.gov |
due_dates_text | String | Raw Due Date(s) cell; may list several (detail default). | sbir.gov |
solicitation_status | String | sbir.gov's own Open/Closed string (source data, not derived). | sbir.gov |
listed_open | Boolean | On sbir.gov's open listing at the last complete crawl? False = withdrawn; null = no usable roster (detail default). | Tango |
source_last_updated | DateTime | Feed scrape timestamp (detail default). | Tango |
activity | String | Computed lifecycle: open, closed, or unknown. | Tango |
solicitation | Object | Parent DoD DSIP cycle (expand). | Tango |
opportunity | Object | Parent SAM.gov notice (expand). | Tango |
grant | Object | Parent Grants.gov announcement (expand). | Tango |
organization | Object | Organization resolved from agency (expand); null when it resolves to none. | Tango |
Topic expansions (via shape)¶
solicitation(*)→solicitation_id,solicitation_number,title,program,cycle_name,year,start_date,end_date,out_of_cycle,solicitation_statusopportunity(*)→opportunity_id,title,solicitation_number,response_deadlinegrant(*)→grant_id,opportunity_number,title,response_dateorganization(*)→organization_id,office_code,office_name,agency_code,agency_name,department_code,department_name
A topic links to at most one parent, resolved in priority order (solicitation → opportunity → grant). A DSIP parent is matched on cycle_name first, then solicitation_number. A non-DoD topic with no DSIP parent returns solicitation: null.
Solicitation fields (/api/sbir/solicitations/)¶
Detail lookup is by solicitation_id. DoD (DSIP) only.
| Field | Type | Description | Source |
|---|---|---|---|
solicitation_id | String | Primary key; natural key minted by Tango (dsip-solicitation-<hash>). | Tango |
solicitation_number | String | Solicitation number. | DSIP |
title | String | Solicitation title. | DSIP |
program | String | Program: SBIR or STTR. | DSIP |
cycle | String | Cycle identifier (detail default). | DSIP |
cycle_name | String | Cycle directory name; joins the PDF inventory to this cycle. | DSIP |
solicitation_cycle_id | Integer | Source cycle id (detail default). | DSIP |
out_of_cycle | Boolean | Whether the solicitation is out of cycle. | DSIP |
year | Integer | Solicitation year. | DSIP |
start_date | Date | Cycle start date. | DSIP |
end_date | Date | Cycle end date. Drives activity. | DSIP |
solicitation_status | String | Raw feed status token (active, etc.). | DSIP |
sol_download_url | String | Link to download the solicitation. | DSIP |
source_last_updated | DateTime | Feed scrape timestamp (detail default). | Tango |
activity | String | Computed lifecycle: open or closed. | Tango |
topics | Object[] | Topics on this cycle (expand). | Tango |
documents | Object[] | BAA PDF inventory (expand). | Tango |
organization | Object | Organization (expand); always the Department of Defense. | Tango |
Solicitation expansions (via shape)¶
documents(*)→document_id,filename,cycle_name,s3_key,file_size,extraction_status,n_pages,n_charstopics(*)→topic_id,title,agency,topic_number,close_date,topic_url(a reduced view; the full topic shape lives at/api/sbir/topics/)organization(*)→organization_id,office_code,office_name,agency_code,agency_name,department_code,department_name
Data Sources¶
- sbir.gov — topic listings across participating agencies.
- DSIP — DoD's Defense SBIR/STTR Innovation Portal solicitation cycles and BAA PDFs.
- Tango — natural keys, the derived
activity, the resolved parent links (solicitation,opportunity,grant), and the resolvedorganization.
Not exposed¶
Producer-internal columns are not part of the API: row_hash, search_vector, the raw solicitation_cycle_json blob, and downstream document-extraction text. Document extraction_status / n_pages / n_chars are surfaced, but extracted text is not.
Usage Notes¶
- Follow a topic to its funding — expand
solicitation(*),opportunity(*), orgrant(*)to reach the DSIP cycle, SAM.gov notice, or Grants.gov announcement behind it. - Program lives on the solicitation — there is no
programfield or filter on topics; query/api/sbir/solicitations/?program=STTRor expandsolicitation(program). - BAA PDFs — expand
documents(*)on a solicitation for the BAA document inventory.