Kestrel
Kestrel / API

One API. Every active Indian company. Provenance in every response.

REST, JSON, rate-limited per key, credit-metered, OpenAPI 3.1 spec. Keys are issued from the dashboard. Every response carries per-field provenance and the date we last verified the field, so your CRM and your auditors agree.

Endpoints.

MethodPathDescriptionCredits
GET/v1/company/lookupLookup a single company by CIN, GSTIN, IEC, name, or website.1
POST/v1/company/enrichBulk enrich up to 5,000 identifiers in one call.1
GET/v1/company/searchFiltered search across the company graph.1
GET/v1/signalsFilterable signal feed, since timestamp.0.1
GET/v1/trade/profileExport-import profile, HS chapters, destinations.2
GET/v1/trade/eventsTrade events feed (first export, new destination, volume surge).0.5
POST/v1/listsCreate a saved list from a filter.0
GET/v1/lists/:id/exportExport a saved list to CSV or JSON.0
POST/v1/research/company/:idAccount research brief from public data only.10

Rate limits scale with plan. Free: 10 req/min. Growth: 60 req/min. Scale: 600 req/min. Burst handling via 429 + Retry-After.

Auth and rate limits.

  • Bearer-token auth, keys prefixed kst_live_ or kst_test_.
  • Per-key rate limiting via Redis, sliding-window 60-second buckets.
  • Scopes per key: read:company, read:signal, read:trade, write:list.
  • Webhooks for new signals matching saved subscriptions (HMAC-signed).
  • Postman collection and OpenAPI 3.1 spec downloadable.
# Lookup, single
curl https://api.kestrel.in/v1/company/lookup \
  -H "Authorization: Bearer kst_live_..." \
  -G --data-urlencode "gstin=27AABCA9821H1Z5"

# Bulk enrich
curl https://api.kestrel.in/v1/company/enrich \
  -H "Authorization: Bearer kst_live_..." \
  -H "Content-Type: application/json" \
  -d '{"identifiers":[{"type":"cin","value":"U..."}, ...]}'

# Filtered search
curl https://api.kestrel.in/v1/company/search \
  -H "Authorization: Bearer kst_live_..." \
  -G \
  --data-urlencode "industry=24230" \
  --data-urlencode "state=Telangana" \
  --data-urlencode "exporter=true"

# Signals since timestamp
curl https://api.kestrel.in/v1/signals \
  -H "Authorization: Bearer kst_live_..." \
  -G --data-urlencode "since=2026-05-28T00:00:00Z"