Developer documentation
A small, versioned REST surface for reading verified review data. Pass your key as a Bearer token and you're done — there's no SDK to install.
Every request must carry a Bearer token in the Authorization header. Generate keys from your API Keys dashboard or from a company's Integrations tab.
Authorization: Bearer ct_live_...
https://www.crowdtrust.ai/api/v1
All responses are JSON. Successful responses have a top-level data field; list responses also include a meta field with pagination info.
/companies/{domain}Look up a company by its primary domain.
Response
{
"data": {
"id": "uuid",
"slug": "example-com",
"name": "Example Inc.",
"domain": "example.com",
"website": "https://example.com",
"category": "software",
"subcategory": "saas",
"description": "...",
"logo_url": "https://...",
"rating": 4.7,
"review_count": 1523,
"verified": true,
"profile_url": "https://www.crowdtrust.ai/review/example.com",
"created_at": "2025-...Z"
}
}/companies/{domain}/reviewsList approved reviews for a company, newest first.
Query parameters
limit — Page size. Default 20, max 100.offset — Zero-based offset for pagination.rating — Filter to a specific star rating (1–5).Response
{
"data": [
{
"id": "uuid",
"rating": 5,
"title": "Excellent service",
"content": "Best experience I've had in months...",
"author": {
"name": "John D.",
"verified": true,
"verification_type": "purchase"
},
"helpful_count": 42,
"pinned": false,
"created_at": "2026-01-15T10:30:00Z"
}
],
"meta": {
"company": {
"id": "uuid",
"name": "Example Inc.",
"domain": "example.com",
"average_rating": 4.7,
"total_reviews": 1523
},
"pagination": {
"limit": 20,
"offset": 0,
"total": 1523,
"has_more": true
}
}
}Per-key limits are enforced based on the subscription plan of the company (or account) that issued the key.
| Plan | Requests / minute | Requests / month |
|---|---|---|
| Free | — (no API access) | — |
| Professional · $49/mo | 100 | 100,000 |
| Enterprise · $250/mo | 1,000 | 1,000,000 |
Each response includes the headers X-RateLimit-Limit and X-RateLimit-Tier so you can size your worker concurrency accordingly.
401 Unauthorized — missing, malformed, or revoked key.403 Forbidden — key belongs to a Free-tier account. Upgrade on /business/upgrade.404 Not Found — no company exists for that domain.500 — transient server error. Retry with backoff.All error responses are JSON: { "error": "human-readable message" }.
curl https://www.crowdtrust.ai/api/v1/companies/example.com \ -H "Authorization: Bearer ct_live_..."
const res = await fetch(
'https://www.crowdtrust.ai/api/v1/companies/example.com/reviews?limit=20',
{ headers: { Authorization: 'Bearer ct_live_...' } }
)
if (!res.ok) throw new Error(`API ${res.status}`)
const { data, meta } = await res.json()import requests
r = requests.get(
"https://www.crowdtrust.ai/api/v1/companies/example.com/reviews",
headers={"Authorization": "Bearer ct_live_..."},
params={"limit": 20, "rating": 5},
)
r.raise_for_status()
payload = r.json()Generate your first key from the dashboard. You'll need an active Professional or Enterprise subscription on the company that owns the key.