Skip to main content
People search, enrichment, and outreach. Get started with the clodo API
Get Started

Make your first API call

Go from your API key to your first enrichment response.

Three steps from zero to your first response: mint an API key, send a request, read the result.

#1. Mint an API key

Open API Console → API Keys and click Mint new key. Copy the raw secret immediately. We display it once and never store it in plaintext after that.

Keys look like ck_live_<base64>.

#2. Send your first request

curl -X POST https://api-public.clodo.ai/api/public/v1/enrich/email/ \
  -H "x-api-key: ck_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "first_name": "Patrick",
    "last_name": "Collison",
    "domain": "stripe.com"
  }'

A successful response:

{
  "email": "patrick@stripe.com"
}

Response headers include X-Request-Id (a UUID per request).

#3. Same call from Python

import requests

response = requests.post(
    "https://api-public.clodo.ai/api/public/v1/enrich/email/",
    headers={"x-api-key": "ck_live_..."},
    json={
        "first_name": "Patrick",
        "last_name": "Collison",
        "domain": "stripe.com",
    },
    timeout=30,
)
response.raise_for_status()
print(response.json()["email"])

#3b. Same call from Node

const response = await fetch(
  "https://api-public.clodo.ai/api/public/v1/enrich/email/",
  {
    method: "POST",
    headers: {
      "x-api-key": "ck_live_...",
      "content-type": "application/json",
    },
    body: JSON.stringify({
      first_name: "Patrick",
      last_name: "Collison",
      domain: "stripe.com",
    }),
  },
);
if (!response.ok) {
  throw new Error(`HTTP ${response.status}: ${await response.text()}`);
}
const { email } = await response.json();
console.log(email);

#Beyond enrichment: full outbound

The API also covers outreach itself — find people with Deep Search, enrich their emails, then draft, review, and send from your own inbox with Outreach Emails:

# Draft an email (202 -> poll -> review -> approve -> it sends)
curl -X POST https://api-public.clodo.ai/api/public/v1/emails/ \
  -H "x-api-key: ck_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "to": {"email": "jackie@acme.com", "first_name": "Jackie", "company_name": "Acme"},
    "instructions": "Casual note asking if she is open to a chat about our founding PM role."
  }'

With the default review: "required", nothing sends without your explicit approval. No webhook receiver is required — polling is first-class for these endpoints.

  • Authentication for the full key model and what headers we accept.
  • API Base URL for the endpoint surface and which host to point at.
  • Per-endpoint reference for input shapes, output shapes, and credit costs.
  • People Search, Deep Search, and Phone Enrichment return 202 Accepted and POST results to a webhook URL you specify. Webhook Signing Secrets and Webhook Signature Verification cover wiring a receiver. Async Polling is the fallback when your receiver is unavailable.

#Costs in this example

5 credits per call. See Credit Semantics for the full table.

clodo Docs