Developer documentation

CrowdTrust API

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.

Authentication

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_...
API access is a Professional or Enterprise feature. Keys belonging to a Free-tier account are rejected with HTTP 403.

Base URL

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.

Endpoints

GET/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"
  }
}
GET/companies/{domain}/reviews

List approved reviews for a company, newest first.

Query parameters

  • limitPage size. Default 20, max 100.
  • offsetZero-based offset for pagination.
  • ratingFilter 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
    }
  }
}

Rate limits

Per-key limits are enforced based on the subscription plan of the company (or account) that issued the key.

PlanRequests / minuteRequests / month
Free— (no API access)
Professional · $49/mo100100,000
Enterprise · $250/mo1,0001,000,000

Each response includes the headers X-RateLimit-Limit and X-RateLimit-Tier so you can size your worker concurrency accordingly.

Error codes

  • 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" }.

Examples

cURL

curl https://www.crowdtrust.ai/api/v1/companies/example.com \
  -H "Authorization: Bearer ct_live_..."

JavaScript (fetch)

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()

Python (requests)

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()

Ready to start?

Generate your first key from the dashboard. You'll need an active Professional or Enterprise subscription on the company that owns the key.