# DataLayer API > B2B enrichment API — 60M companies, 300M verified contacts, real-time intent signals. Built for developers and AI agents. ## Machine-Readable API Specification - [OpenAPI 3.1 JSON](https://api.datalayer.sh/openapi.json): Complete schema with all endpoints, request/response types, and auth. Use this for programmatic integration. - [Interactive API Reference](https://api.datalayer.sh/docs): Browse and test endpoints in-browser. ## Authentication All requests require an `X-API-Key` header. Keys start with `sk_`. ``` curl -X POST https://api.datalayer.sh/v1/enrich/company \ -H "X-API-Key: sk_your_key" \ -H "Content-Type: application/json" \ -d '{"domain":"stripe.com"}' ``` ## Endpoints ### Enrichment - POST https://api.datalayer.sh/v1/enrich/person — Enrich a person profile - POST https://api.datalayer.sh/v1/enrich/company — Enrich a company profile - POST https://api.datalayer.sh/v1/enrich/person/bulk — Bulk enrich person profiles - POST https://api.datalayer.sh/v1/enrich/company/bulk — Bulk enrich company profiles ### Lookup - GET https://api.datalayer.sh/v1/people/lookup — Lookup a person - GET https://api.datalayer.sh/v1/companies/lookup — Lookup a company ### Search - POST https://api.datalayer.sh/v1/people/search — Search people - POST https://api.datalayer.sh/v1/companies/search — Search companies ### Company Intel - GET https://api.datalayer.sh/v1/companies/{domain}/employees — Get company employees - GET https://api.datalayer.sh/v1/companies/{domain}/headcount — Get company headcount by department - GET https://api.datalayer.sh/v1/companies/{domain}/jobs — Get company open roles - GET https://api.datalayer.sh/v1/companies/{domain}/technographics — Get company tech stack ### Signals - POST https://api.datalayer.sh/v1/signal/intent — Companies with buying intent ## Credits | Endpoint group | Cost | |---------------|------| | Enrichment (single) | 1 credit per successful match | | Enrichment (bulk) | 1 credit per match found | | Lookup | 1 credit per successful match | | Search | 1 credit per result returned | | Company Intel | 1 credit per successful match | | Intent Signals | 5 credits per result returned | Not-found results (404) never consume credits — you only pay for data returned. ## Signals (included free with every company enrichment) Every company enrichment includes at no extra cost: - monthly_traffic, organic_traffic, paid_traffic — web visitor counts - google_adspend — monthly Google Ads spend in USD - total_funding, last_funding_type, last_funding_date, lead_investors — funding history - employee_growth_rate — LinkedIn headcount growth rate - crm_tech, cloud_provider, cms_tech, marketing_automation, sales_automation, analytics_tech, ecommerce_tech — full tech stack - has_mobile_app, has_web_app — product presence ## Error Format All errors return: `{"error": "error_code", "message": "...", "status": }` Codes: missing_params (400), validation_error (400/422), missing_api_key (401), invalid_api_key (401), insufficient_credits (402), not_found (404), rate_limit_exceeded (429), service_unavailable (503). ## Rate Limits Response headers: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset. On 429: check Retry-After header for seconds to wait. ## MCP Server (hosted, OAuth 2.1) DataLayer ships a hosted, fully-managed MCP server at `https://api.datalayer.sh/mcp` using the Streamable HTTP transport. **Recommended for agents** — Claude.ai, ChatGPT, Claude Code, and Cursor connect over HTTP with one-click OAuth (Dynamic Client Registration). For headless / CI use, send `Authorization: Bearer sk_...`. - Claude.ai → Settings → Connectors → Add custom connector → https://api.datalayer.sh/mcp - ChatGPT → Settings → Connectors → Advanced settings → enable Developer Mode → Create → URL https://api.datalayer.sh/mcp → Authentication: OAuth - Claude Code → `claude mcp add datalayer https://api.datalayer.sh/mcp --transport http` - Cursor → `~/.cursor/mcp.json` → `{ "mcpServers": { "datalayer": { "url": "https://api.datalayer.sh/mcp" } } }` OAuth metadata: https://api.datalayer.sh/.well-known/oauth-protected-resource 11 tools: enrich_company, enrich_person, search_companies, search_people, lookup_person, lookup_company, company_employees, company_headcount, company_technographics, company_jobs, find_intent_signals. The legacy stdio package `@datalayer-sh/mcp` is still on npm for environments that can't reach a remote server.