The contract
- Read-only. Every endpoint is
GET. Any write verb (POST, PUT, PATCH, DELETE) returns405 Method Not Allowed. - Open CORS. Every response carries
Access-Control-Allow-Origin: *— call it straight from a browser. - Cached. Responses carry
Cache-Control: public, s-maxage=300, stale-while-revalidate=600(5-minute edge cache, stale served while revalidating). - Rate limit. 120 requests / minute / IP. Exceeding it returns
429withRetry-After: 60. WatchX-RateLimit-Remaining. - Pagination.
?page=(1-based) and?per_page=(default 20, max 100 — larger values are clamped). Lists return apaginationblock:{page, per_page, total, total_pages}. - snake_case. All fields are snake_case. Timestamps are ISO 8601 UTC.
- Provenance. Every capability object includes a
provenanceblock (source type, freshness stamps, provider claim state) so you always know where a fact came from. - Neutrality. Sort order matches the public site and can never be bought. Paid plans and placements never affect API output.
Endpoints
| Endpoint | What it returns | Query parameters |
|---|---|---|
| GET /api/v1/capabilities | Capability listings (the atomic unit of the index) | q, country (ISO 3166-1, repeatable), region, line, stage, turnaround, claimed, has_mcp, has_api (aliases: mcp, api), sort (updated|completeness|name), page, per_page |
| GET /api/v1/capabilities/{slug} | Full capability record incl. description, self-declared fields, completeness | — |
| GET /api/v1/providers | Provider records with listings_count | q, country, claimed, page, per_page |
| GET /api/v1/providers/{slug} | Provider + all of its capability objects | — |
| GET /api/v1/mcp-servers | Only capabilities exposing an MCP server (endpoint, transport, tool table) | page, per_page |
| GET /api/v1/wire | Editorial wire briefs (title, body, source, tags) | page, per_page |
| GET /api/v1/events | Industry events (date, city, focus tags, provenance) | country, upcoming, page, per_page |
| GET /api/v1/stats | Corpus totals: capabilities, providers, claimed, MCP servers, countries_with_listings, by stage/line | — |
Machine-readable schema: /api/openapi.json · interactive explorer: /api/swagger.
Examples
Claims capabilities in the United States, freshest first
curl -s "https://bindex.dev/api/v1/capabilities?country=US&stage=claims&sort=updated&per_page=5"
Every listed MCP server
curl -s "https://bindex.dev/api/v1/mcp-servers?per_page=100"
One capability, in full
curl -s "https://bindex.dev/api/v1/capabilities/embedded-insurance-distribution-api"
Corpus totals
curl -s "https://bindex.dev/api/v1/stats"
{"data": {"capabilities": 305, "providers": 303, "claimed_providers": 0, "mcp_servers": 10,
"api_listings": 305, "countries_with_listings": 38,
"by_value_chain_stage": {"claims": 45, "…": 0}, "by_line_of_business": {"motor": 78, "…": 0},
"generated_at": "…"}}
Sample capability object (abridged)
{
"id": "…", "slug": "embedded-insurance-distribution-api",
"name": "Embedded Insurance Distribution API",
"one_liner": "…",
"provider": {"name": "Zopper", "slug": "zopper", "claimed": false, "hq_country": "IN"},
"taxonomy": {"countries": ["IN"], "lines_of_business": ["motor"], "value_chain_stages": ["distribution"]},
"consumption": {"has_api": true, "has_mcp": false, "auth_type": "api_key", "mcp": null},
"operational": {"turnaround": "instant", "pricing_summary": null, "vendor_declared": true},
"provenance": {
"source_type": "ingested_public",
"last_updated_at": "2026-07-01T08:12:00+00:00",
"technical_updated_at": null,
"added_only": true,
"provider_claimed": false
}
}
Attribution. API access is free with attribution ("Source: Bindex"). Commercial data licensing is separate — see /pricing.