DocsAPI reference

Introduction

The Boring Data Platform API serves federal procurement data as one normalized API contract. SAM.gov, DIBBS, USAspending, and SAM.gov lakehouse feeds return predictable data responses, cursor page objects where needed, and a consistent top-level error object for failures.

This page is your entry point. Start with Authentication to grab a key, skim Rate limits so you know your budget, then try the first REST call below. If you'd rather use an agent, use the MCP agents guide.

GEThttps://api.boringdataplatform.com/v1/opportunities?source=sam_current&limit=5
Fetch five live SAM.gov opportunities.
curl "https://api.boringdataplatform.com/v1/opportunities?source=sam_current&limit=5" \
  -H "Authorization: Bearer <YOUR_API_KEY>"

Authentication

Every request to /v1/* requires a bearer token in the Authorization header or an x-api-key header. API keys are generated from the console and use the strata_live_… prefix. They never expire until revoked.

Rotate keys at any time from Settings → API Keys. Previous keys stay valid for 60 seconds after revocation to avoid cutover pain.

Rate limits

Per-key sliding-window limits are shared across REST and MCP. A tool call on the MCP surface costs one request against the same monthly budget. Response headers X-RateLimit-Remaining and X-RateLimit-Reset tell you exactly how much budget is left.

Per-plan rate limits
NameTypeDescription
Sandbox60 rpmHard cap at 5,000 requests/month.
Starter600 rpmHard cap at 10,000 requests/month.
Developer600 rpmHard cap at 500,000 requests/month.
EnterpriseCustomNegotiated volume & rate limits.

GET /v1/opportunities

GET/v1/opportunities

Canonical opportunity threads. Filter by source or free-text, then fetch a detail record by recordId to get summary, documents, history, and analysis in one response.

Query parameters
NameTypeDescription
sourceenumFilter to sam_current, sam_archive, or dibbs.
qstringOptional free-text search across opportunity summaries.
limitintegerCursor-page size. Values between 1 and 100.
GEThttps://api.boringdataplatform.com/v1/opportunities?source=dibbs&limit=10
curl "https://api.boringdataplatform.com/v1/opportunities?source=dibbs&limit=10" \
  -H "Authorization: Bearer <YOUR_API_KEY>"
200application/json
{
  "data": [
    {
      "recordId": "00000000-0000-4000-8000-000000000002",
      "threadKey": "dibbs:SPE4A626U2442",
      "summary": {
        "sourceName": "dibbs-rfqs-posted-date",
        "sourceFamily": "dibbs",
        "noticeId": "SPE4A626U2442",
        "title": "Screw, Machine",
        "agencyName": "DLA Land and Maritime"
      },
      "documents": {
        "hasPackagePage": true,
        "hasPdf": true,
        "hasExtractedText": true,
        "hasTechnicalDocuments": true,
        "attachmentCount": 7
      }
    }
  ],
  "page": { "limit": 10, "nextCursor": null }
}

GET /v1/notices

GET/v1/notices

Source-verbatim notices (the raw record before threading). Use when you need exactly what a source published, not the merged canonical view.

GET /v1/changes

GET/v1/changes

Incremental sync. Cursor-based pagination with updatedSince to resume where you left off.

GET /v1/opportunities/analysis

GET/v1/opportunities/analysis

Structured filtering across the canonical opportunity stream. Query by source, sourceFamily, status, category, setAside, contractType, deliveryRegion, naics, office, and feature flags (hasExtractedText, hasPdf, hasAward, hasTechnicalDocuments). Pair with /v1/opportunities/analysis/rollups for aggregated facet counts.

GET /v1/awards

GET/v1/awards

Federal contract award actions from USAspending.gov. Filter by vendor_uei, awarding_agency_code, naics_code, psc_code, piid, fiscal year, or action-date window. Use /v1/awards/analysis/rollups with group_by set to awarding_agency_code, naics_code, psc_code, or vendor_uei for grouped analytics.

GET /v1/entities

GET/v1/entities
GET/v1/entities/{uei}

SAM.gov entity registrations keyed by UEI. Use the list endpoint for discovery and filtering, then fetch a specific UEI for the latest monthly registration snapshot or a pinned snapshot_month.

Common filters
NameTypeDescription
ueistringFilter to one Unique Entity ID.
cage_codestringFilter to one CAGE code.
registration_statusstringFilter by SAM registration status.
primary_naicsstringFilter by primary NAICS code.
snapshot_monthYYYY-MMPin the monthly SAM registration snapshot.

GET /v1/entities/{uei}/profile

GET/v1/entities/{uei}/profile

Connected vendor profile for one UEI: latest SAM registration, recent contract awards, agency award rollups, exclusions, and public responsibility/integrity records. Pin registration state with snapshot_month and exclusion/integrity state with snapshot_date.

GET /v1/agencies

GET/v1/agencies
GET/v1/agencies/{orgId}

SAM.gov Federal Hierarchy organizations for department, independent agency, and sub-tier context. Use these rows to resolve agency codes and understand the government hierarchy behind awards and assistance listings.

Common filters
NameTypeDescription
agency_codestringMatch CGAC / agency organization codes.
fh_org_typeenumdepartment-ind-agency, sub-tier, or federal-hierarchy-org.
statusstringFilter active/inactive Federal Hierarchy rows.
parent_fh_org_idstringReturn children under a parent organization.
snapshot_dateYYYY-MM-DDPin a historical Federal Hierarchy snapshot.
GEThttps://api.boringdataplatform.com/v1/agencies?limit=5
curl "https://api.boringdataplatform.com/v1/agencies?limit=5" \
  -H "Authorization: Bearer <YOUR_API_KEY>"

GET /v1/assistance-listings

GET/v1/assistance-listings
GET/v1/assistance-listings/{listingId}

SAM.gov Assistance Listings / CFDA federal program reference data. Responses include program descriptions, organization codes, fiscal-year metadata, and opportunistic Federal Hierarchy enrichment when agency codes match.

Common filters
NameTypeDescription
assistance_listing_idstringFilter to one Assistance Listing / CFDA id.
statusstringFilter active or inactive program listings.
fiscal_yearintegerFilter by listing fiscal year.
department_codestringFilter by department organization code.
agency_codestringFilter by agency organization code.
snapshot_dateYYYY-MM-DDPin a historical Assistance Listings snapshot.
GEThttps://api.boringdataplatform.com/v1/assistance-listings?limit=5
curl "https://api.boringdataplatform.com/v1/assistance-listings?limit=5" \
  -H "Authorization: Bearer <YOUR_API_KEY>"

Compliance Records

GET/v1/exclusions
GET/v1/integrity-records

Search SAM.gov exclusion records and public Responsibility / Qualification / FAPIIS integrity records directly, or reach them through /v1/entities/{uei}/profile when the user is asking about a specific vendor.

Errors

Every error response contains a top-level error object with a machine-readable code and human message. Retry logic on 5xx and 429 is safe; retries on 4xx other than 429 are not.