Skip to main content
This is the API section of docs.civiccontracts.com. For how to use the Civic AI product in the browser, switch to the Help tab or start at the Help introduction. The Civic AI API lets developers and data teams integrate procurement search and intelligence into internal tools, CRMs, and analytics workflows.

What you can do

What you can build

Open data client

For public procurement datasets and experimental endpoints, use our open-source client:

civiccontracts-data on GitHub

Python and TypeScript SDK, examples, and schema docs.

Authentication

API keys belong to your organization and are managed by org admins from Settings → Organization in the Civic AI dashboard. Keys look like civic_… and are shown in full exactly once, at creation. Include the key in the Authorization header (or as X-API-Key):
See Authentication for the full details.
Keep API keys secret. Do not commit them to public repositories or expose them in client-side browser code.

Base URL

All responses share one envelope:
Errors return success: false with an error message and an appropriate HTTP status (400 invalid input, 401 bad key, 404 not found, 429 rate limited).

Public reference API (no auth)

These endpoints power the Classifications browse pages and are callable without login:
Query parameters on list endpoints: q (search), sort (awards | name | code), page, limit. Example:

Browse classification codes

Search NAICS, PSC, NIA, and NSN reference tables in the app.

Rate limits and fair use

Requests are limited per API key (currently 120 requests/minute), with standard RateLimit-* headers on every response. Contact support for enterprise throughput, dedicated indexes, or bulk export needs.