Base URL
Authentication
All requests require an API key passed via theAPI-Key header.
Input Normalization
The enrichment API automatically normalizes inputs before matching, so you don’t need to clean your data first. Emails, phone numbers, names, URLs, and location fields are all normalized to canonical formats for consistent matching. For search endpoints, you can also use the Field Cleaning utility to clean and normalize fields before sending them to search.Response Headers
All responses include these headers:| Header | Description |
|---|---|
Request-ID | Unique request identifier for support and debugging |
Process-Time | Request processing time in milliseconds |
RateLimit-Policy | Active rate limit policy (e.g. 100/min) |
RateLimit-Limit | Rate limit ceiling for your API key |
RateLimit-Remaining | Requests remaining in current window |
RateLimit-Reset | Unix timestamp when limit resets |
Errors
The API uses standard HTTP status codes and returns errors in a consistent JSON format:details field with structured data for programmatic use:
Status Codes
| Code | Meaning |
|---|---|
| 200 | Success |
| 400 | Bad request: missing or invalid parameters |
| 401 | Unauthorized: invalid or missing API key |
| 402 | Insufficient credits: contract balance exhausted or expired |
| 403 | Forbidden: API key does not have access to this endpoint |
| 404 | Not found: no matching record |
| 422 | Validation error: invalid field format |
| 429 | Rate limit exceeded |
| 500 | Internal server error |
| 503 | Service temporarily unavailable |
Rate Limiting
Default rate limits vary by endpoint:| Endpoint | Rate Limit |
|---|---|
POST /person/enrich | 100 requests/min |
POST /person/search | 50 requests/min |
POST /person/discover | 50 requests/min |
POST /company/enrich | 100 requests/min |
POST /company/search | 50 requests/min |
POST /company/discover | 50 requests/min |
POST /utility/clean | 100 requests/min |
POST /utility/hash/email | 100 requests/min |
POST /utility/validate | 100 requests/min |
Retry-After header indicating how many seconds to wait.
Confidence Scores
Person match results and individual data points (emails, phones, locations, socials) include a confidence level:| Level | Description |
|---|---|
| high | Strong signals of accuracy |
| moderate | Good signals with some uncertainty |
| low | Limited signals, may need verification |
Company data does not include per-field confidence scores. Company records have a record-level
num_sources count instead. See Company Data Overview for details.Next Steps
Person Endpoints
- Person Enrichment: Match records by email, phone, name, or social URL and append 60+ data points
- Person Search: Query profiles using SQL-like syntax with flexible filtering
- Person Discovery: Find people using natural language queries
Company Endpoints
- Company Enrichment: Match companies by domain, name, LinkedIn, or ticker and append 50+ data points
- Company Search: Query companies using SQL-like syntax with flexible filtering
- Company Discovery: Find companies using natural language queries
Utilities
- Field Cleaning: Normalize emails, phones, names, and other fields before sending to search
- Email Hashing: Hash emails for privacy-safe enrichment via the
email_hashparameter - Data Validation: Validate data format and get suggestions before sending to enrich or search
Data Schemas
- Person Data Schema: Person schema reference with example record
- Company Data Schema: Company schema reference with example record