Resource
Contacts
Contacts represent people in your CRM (Salesforce "Contacts", HubSpot "Contacts", Apollo "Leads", etc.). Link them to an account via account_external_id so we can surface every contact at a funded company — even when their personal email wouldn't match the domain directly.
POST /api/v1/contacts
Upsert key: (your_user_id, external_id). Max 1,000 contacts per request.
Request body
{
"contacts": [
{
"external_id": "0034x000007xY3oAAE", // required
"email": "sarah@vellum.ai", // optional (used for email_domain matching)
"first_name": "Sarah", // optional
"last_name": "Park", // optional
"account_external_id": "0014x...", // optional but recommended
"metadata": { "title": "VP Sales" } // optional, JSONB passthrough
}
]
}Field reference
| Field | Type | Required | Notes |
|---|---|---|---|
external_id | string | yes | Your CRM's ID for this contact. Upsert key. |
email | string | no | Powers the email_domain match path. Free-mail domains (gmail, yahoo, etc.) are excluded from matching. |
first_name | string | no | Returned in match payloads — useful for personalizing outreach. |
last_name | string | no | Same as above. |
account_external_id | string | no | Links this contact to an account. Critical for personal-email contacts who'd otherwise miss the match. |
metadata | object | no | Arbitrary JSON. Returned unchanged when this contact is in a match payload. |
Response (200)
{ "upserted": 312, "errors": [] }Why link contacts to accounts?
Suppose Sarah works at Vellum AI but her CRM email is sarah@gmail.com (personal). Without linking, the email-domain match path can't connect her to Vellum's funding event. With account_external_id pointing to the Vellum account, she shows up in the match anyway — because the account domain matches.
Roughly 30–40% of B2B contacts in a typical CRM use personal email domains. Linking them to accounts roughly doubles your match coverage.
DELETE /api/v1/contacts
curl -X DELETE "https://fundingscout.io/api/v1/contacts?external_id=003C1" \
-H "Authorization: Bearer $FS_KEY"
# Response: { "deleted": 1 }Privacy notes
- We store contact email + name solely to match against funding rounds. We never email your contacts or share them with third parties.
- DELETE removes the row immediately. There's no soft-delete or retention period for contacts.
- Free-mail domains (gmail, yahoo, hotmail, etc.) are excluded from the email-domain match path — to prevent spam matches.