Getting started
5-minute quickstart
A complete integration in 4 curl calls. By the end of this page, you'll have a working pipeline: your CRM data flowing into FundingScout, and funding-event webhooks flowing back.
Prerequisites
- A FundingScout Pro subscription (upgrade in Settings)
- An API key starting with
fs_live_from Settings → API Keys - An HTTPS endpoint you control (for the webhook) — or skip and use polling
Step 1 — Sync your accounts (companies)
Push up to 1,000 accounts per request. Upsert key is external_id, so repeat calls are idempotent.
export FS_KEY="fs_live_..."
curl -X POST https://fundingscout.io/api/v1/accounts \
-H "Authorization: Bearer $FS_KEY" \
-H "Content-Type: application/json" \
-d '{
"accounts": [
{"external_id": "001A1", "name": "Vellum AI", "domain": "vellum.ai"},
{"external_id": "001A2", "name": "Acme Corp", "domain": "acme.com"}
]
}'
# Response:
# { "upserted": 2, "errors": [] }Step 2 — Sync your contacts (people)
Link contacts to accounts via account_external_id. Contacts with personal email (e.g., @gmail.com) still match through their account.
curl -X POST https://fundingscout.io/api/v1/contacts \
-H "Authorization: Bearer $FS_KEY" \
-H "Content-Type: application/json" \
-d '{
"contacts": [
{
"external_id": "003C1",
"email": "sarah@vellum.ai",
"first_name": "Sarah",
"account_external_id": "001A1"
},
{
"external_id": "003C2",
"email": "jane@gmail.com",
"first_name": "Jane",
"account_external_id": "001A1"
}
]
}'
# Response:
# { "upserted": 2, "errors": [] }Step 3 — Register your webhook
HTTPS required. Pass null or "" to clear and switch to pull-only mode.
curl -X POST https://fundingscout.io/api/v1/webhooks \
-H "Authorization: Bearer $FS_KEY" \
-H "Content-Type: application/json" \
-d '{"url": "https://yourapp.example.com/hooks/fundingscout"}'
# Response:
# { "webhook_url": "https://yourapp.example.com/hooks/fundingscout" }Step 4 — Verify
Pull current matches via the polling endpoint. It'll be empty if no company in your CRM has been funded since you synced.
curl https://fundingscout.io/api/v1/matches \
-H "Authorization: Bearer $FS_KEY"
# Response:
# { "data": [], "next_cursor": null }That's it
From now on: every funding round we ingest is matched against your accounts + contacts. Matches POST to your webhook within ~60 seconds.
What to read next
- Webhooks — the exact JSON payload you'll receive
- How matches work — the three match paths
- Error codes — what each 4xx/5xx means