# 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 call | | Enrichment (bulk) | 1 credit per match found | | Lookup | 1 credit per call | | Search | 1 credit per result returned | | Company Intel | 1 credit per call | | Intent Signals | 5 credits per result returned | Not-found results on bulk enrichment do not consume credits. ## 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 ``` npm install -g @datalayer-sh/mcp export DATALAYER_API_KEY=sk_your_key ``` 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. Works with Claude Desktop, Cursor, and any MCP-compatible AI agent.