Skip to main content

ChemIntel API

Access chemical data, regulatory information, trade flows, and compliance intelligence programmatically.

Authentication

All API requests require an API key passed in the X-API-Key header. API access is available on the Enterprise plan.

$ curl -H "X-API-Key: your-api-key" \
https://chem-exchange.com/api/v1/chemicals?q=sodium

Rate Limits

Enterprise tier: 1,000 requests/day. Rate limit info is included in the response meta.rate_limit object.

Response Format

All responses follow a consistent JSON envelope:

{
  "data": { ... },
  "meta": {
    "request_id": "uuid",
    "timestamp": "ISO 8601",
    "rate_limit": { "remaining": 950 }
  }
}

Endpoints

GET/api/v1/chemicals

List or search chemicals

Parameters: q (search query), limit, offset

GET/api/v1/chemicals/:cas

Get full chemical profile by CAS number

GET/api/v1/chemicals/:cas/regulatory

Get regulatory status across jurisdictions

GET/api/v1/chemicals/:cas/ghs

Get GHS classification data

GET/api/v1/chemicals/:cas/trade-flows

Get trade flow data for a chemical

Parameters: year, flow (import|export)

GET/api/v1/trade-flows

Query trade flows by HS code

Parameters: hs_code (required), reporter, year, flow, limit

GET/api/v1/sanctions/screen

Screen entity against sanctions lists

Parameters: name (required)

Examples

JavaScript / Node.js

const response = await fetch(
  'https://chem-exchange.com/api/v1/chemicals/1310-73-2',
  { headers: { 'X-API-Key': 'your-api-key' } }
);
const { data } = await response.json();
console.log(data.name); // "Sodium hydroxide"

Python

import requests

response = requests.get(
    'https://chem-exchange.com/api/v1/chemicals/1310-73-2',
    headers={'X-API-Key': 'your-api-key'}
)
data = response.json()['data']
print(data['name'])  # "Sodium hydroxide"

cURL

curl -H "X-API-Key: your-api-key" \
  "https://chem-exchange.com/api/v1/chemicals?q=acetone"