Clay is a web-based data enrichment platform — there is no SDK to install. Integration happens through webhook URLs (inbound data), HTTP API enrichment columns (outbound calls from Clay), and the Enterprise API (programmatic people/company lookups). This skill covers account setup, API key management, provider connections, and webhook configuration.
Navigate to Settings > API in your Clay workspace. Copy your API key. Clay's Enterprise API is limited to people and company data lookups — it is not a general-purpose table API.
# Store your Clay API key securely
export CLAY_API_KEY="clay_ent_your_api_key_here"
# Verify with a test lookup (Enterprise API)
curl -s -X POST "https://api.clay.com/v1/people/enrich" \
-H "Authorization: Bearer $CLAY_API_KEY" \
-H "Content-Type: application/json" \
-d '{"email": "test@example.com"}' | jq .
Every Clay table can receive data via a unique webhook URL. This is the primary way to send data into Clay programmatically.
# Store your table's webhook URL
export CLAY_WEBHOOK_URL="https://app.clay.com/api/v1/webhooks/your-unique-id"
# Send a test record to your Clay table
curl -X POST "$CLAY_WEBHOOK_URL" \
-H "Content-Type: application/json" \
-d '{
"email": "jane@acme.com",
"first_name": "Jane",
"last_name": "Doe",
"company": "Acme Corp",
"title": "VP of Sales"
}'
The record appears as a new row in your Clay table within seconds.
Clay supports 150+ enrichment providers. Connecting your own API keys saves 70-80% on Clay credits.
Common providers to connect:
| Provider | Key Location | Credit Savings |
|---|---|---|
| Apollo.io | Settings > API Keys | 2 credits/lookup saved |
| Clearbit | Dashboard > API | 2-5 credits saved |
| People Data Labs | Dashboard > API Keys | 3 credits saved |
| Hunter.io | Dashboard > API | 2 credits saved |
| ZoomInfo | Admin > API | 5-13 credits saved |
| Prospeo | Dashboard > API Key | 2 credits saved |
When you use your own API keys, 0 Clay credits are consumed — credits only apply when using Clay's managed provider accounts.
# .env — for local scripts that interact with Clay
CLAY_API_KEY=clay_ent_your_key # Enterprise API (if applicable)
CLAY_WEBHOOK_URL=https://app.clay.com/api/v1/webhooks/abc123 # Table webhook
CLAY_WORKSPACE_ID=ws_your_workspace # Found in Settings > Workspace
# Provider keys (optional — for direct provider calls outside Clay)
APOLLO_API_KEY=your_apollo_key
CLEARBIT_API_KEY=your_clearbit_key
HUNTER_API_KEY=your_hunter_key
Secure your webhook endpoint with a shared secret in the header:
# Send authenticated webhook data
curl -X POST "$CLAY_WEBHOOK_URL" \
-H "Content-Type: application/json" \
-H "X-Webhook-Secret: your-shared-secret" \
-d '{"email": "test@acme.com", "source": "auth-verification"}'
| Error | Cause | Solution |
|---|---|---|
401 Unauthorized |
Invalid or expired API key | Regenerate key in Settings > API |
403 Forbidden |
Feature not on your plan | Enterprise API requires Enterprise plan |
422 Unprocessable |
Malformed webhook payload | Ensure valid JSON with Content-Type header |
429 Too Many Requests |
Explorer plan: 400 records/hour | Throttle webhook submissions or upgrade |
| Webhook URL expired | Table deleted or webhook limit hit | Create new webhook (50K submission limit per webhook) |
| Provider connection failed | Invalid third-party API key | Verify key in provider's own dashboard |
.env file with all required credentialsAfter auth setup, proceed to clay-hello-world to send your first enrichment through Clay.