Authentication
All API requests require an API key. Pass it via the X-API-Key header:
curl -H "X-API-Key: YOUR_API_KEY" https://opendata.best/api/v1/data/products
Get your free API key from RapidAPI or contact api@opendata.best for direct access.
Base URL
https://opendata.best/api/v1
All endpoints use HTTPS. HTTP requests are redirected to HTTPS automatically.
List Products
GET /data/products
Returns the full catalog of available data products.
| Parameter | Type | Description |
|---|---|---|
limit | integer | Max results (default: 100, max: 1000) |
offset | integer | Pagination offset |
category | string | Filter by category (e.g., business, procurement) |
country | string | Filter by ISO country code (e.g., US, CA) |
Example Response
{
"status": "ok",
"data": [
{
"product_id": "us_sam_gov",
"display_name": "US Federal Contracts (SAM.gov)",
"category": "procurement",
"country": "US",
"description": "Federal contract awards and opportunities...",
"record_count": 1250000,
"search_capability": "text_search"
}
]
}
Query a Product
GET /data/products/{product_id}/query
Search and retrieve records from a specific data product.
| Parameter | Type | Description |
|---|---|---|
search | string | Full-text search query |
limit | integer | Max results (default: 25, max: 100) |
offset | integer | Pagination offset |
Some products support additional filter parameters specific to their data type. Check the product's metadata for available filters.
Query Parameters
Parameters vary by product type. Common patterns:
Business Registries
| Parameter | Description |
|---|---|
search | Company name or keyword |
state | State/province filter |
status | Entity status (active, inactive) |
Procurement
| Parameter | Description |
|---|---|
search | Contract title or keyword |
agency | Issuing agency |
naics_code | NAICS industry code |
Response Format
All responses are JSON with a consistent structure:
{
"status": "ok",
"request_id": "uuid-v4",
"data": [ ... ],
"meta": {
"total": 1250,
"limit": 25,
"offset": 0,
"product_id": "us_sam_gov",
"cache_hit": true
}
}
Error Handling
| Status | Meaning |
|---|---|
200 | Success |
400 | Bad request — missing or invalid parameters |
401 | Invalid or missing API key |
404 | Product not found |
429 | Rate limit exceeded |
500 | Server error — please retry |
Rate Limits
| Plan | Requests/Month | Rate |
|---|---|---|
| Free | 100 | 1 req/sec |
| Pro ($29/mo) | 10,000 | 10 req/sec |
| Enterprise | Unlimited | Custom |
Rate limit headers are included in every response: X-RateLimit-Remaining, X-RateLimit-Reset.
Examples
Search US Business Registries
curl "https://opendata.best/api/v1/data/products/us_business_fl/query?search=OpenAI" \
-H "X-API-Key: YOUR_KEY"
Find Government Contracts
curl "https://opendata.best/api/v1/data/products/us_sam_gov/query?search=cybersecurity" \
-H "X-API-Key: YOUR_KEY"
Screen Against Sanctions
curl "https://opendata.best/api/v1/data/products/us_ofac_sdn/query?search=Bank%20of%20Iran" \
-H "X-API-Key: YOUR_KEY"
List All Canadian Products
curl "https://opendata.best/api/v1/data/products?country=CA" \
-H "X-API-Key: YOUR_KEY"