Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.callprep.app/llms.txt

Use this file to discover all available pages before exploring further.

Overview

Submit a prospect’s email address to start an enrichment job. Returns immediately with a research_id — enrichment runs asynchronously in the background. Poll GET /research-status/{research_id} until status is completed. Base URL: https://rpiqzfzokrwxavztrpmp.supabase.co/functions/v1

Request

POST /research
Authorization: Bearer cp_live_...
Content-Type: application/json

Body parameters

ParameterTypeRequiredDescription
emailstringProspect’s work email address
prospect_namestringFull name — improves match accuracy
company_namestringCompany name — improves match accuracy
linkedin_urlstringProspect’s LinkedIn profile URL
company_linkedin_urlstringCompany LinkedIn URL — overrides auto-detected

Minimal request

curl -X POST \
  https://rpiqzfzokrwxavztrpmp.supabase.co/functions/v1/research \
  -H "Authorization: Bearer cp_live_..." \
  -H "Content-Type: application/json" \
  -d '{ "email": "sarah.mitchell@acmecorp.com" }'

Full request

curl -X POST \
  https://rpiqzfzokrwxavztrpmp.supabase.co/functions/v1/research \
  -H "Authorization: Bearer cp_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "email": "sarah.mitchell@acmecorp.com",
    "prospect_name": "Sarah Mitchell",
    "company_name": "Acme Corp",
    "linkedin_url": "https://www.linkedin.com/in/sarah-mitchell/",
    "company_linkedin_url": "https://www.linkedin.com/company/acmecorp/"
  }'

Response

HTTP 202 — Accepted
{
  "research_id": "res_1a7b6e9c35a9b848",
  "status": "processing",
  "estimated_seconds": 30
}
FieldDescription
research_idUnique ID for this job — use it to poll for results
statusAlways processing on initial response
estimated_secondsEstimated completion time in seconds

Error responses

401 — Missing or invalid API key
{ "error": "missing_api_key" }
{ "error": "invalid_key" }
400 — Invalid request
{ "error": "missing_email" }
{ "error": "invalid_email_format" }
429 — Credits exhausted
{
  "error": "credits_exhausted",
  "used": 50,
  "limit": 50
}
See the Errors reference for the full list of error codes.

Notes

Providing prospect_name and company_name improves match accuracy and is recommended whenever you have that information available.
After submitting, poll GET /research-status every 5 seconds until status is completed. See the Handling errors guide for a production-ready polling implementation.