Sc Scrupp

Contact API

Find decision makers for a list of companies (LinkedIn URL / name / domain). Each request runs asynchronously and returns a process_id.

Async api_key (legacy) Contact
Group
v1 Stable
api_key in query is supported for legacy integrations. For new integrations, prefer Authorization: Bearer <token> when available on your account.
How it works
Async
  • Send POST → receive process_id
  • Fetch results via GET /task/{process_id}/data (polling)
  • Or use Webhook to get notified when the task completes
Webhook flow

Include webhook_url in the POST body. We’ll call it once the task finishes.

Example
{
  "items": ["ibm","microsoft"],
  "max": 100,
  "webhook_url": "https://yourapp.com/webhooks/scrupp"
}
Webhook payload (example)
{
  "process_id": 6666,
  "status": "completed",
  "result_url": "/task/6666/data"
}

Tip: respond with 200 OK fast and process the result asynchronously.

POST

Get Decision Makers by Company LinkedIn

/contact/decision-maker/linkedin
Find decision makers using a list of LinkedIn Company URLs.
Request
Part Field Type Notes
Query api_key string Required (legacy)
Body items string[] LinkedIn company URLs
Body max number Max results per request
Body example
{
  "items": [
    "https://www.linkedin.com/company/google",
    "https://www.linkedin.com/company/microsoft"
  ],
  "max": 100
}
Response
Returns process_id immediately.
{
  "process_id": 6666
}
Fetch result
GET /task/6666/data?api_key=YOUR_API_KEY
Data example (short)
{
  "total": 100,
  "items": [
    { "...": "..." }
  ]
}
Fields may vary by source and availability (email/phone/etc.).
POST

Get Decision Makers by Company Name

/contact/decision-maker/name
Find decision makers using company names (strings).
Request
Part Field Type Notes
Query api_key string Required (legacy)
Body items string[] Company names
Body max number Max results per request
Body example
{
  "items": ["ibm", "microsoft"],
  "max": 100
}
Response
{
  "process_id": 6666
}
Fetch result
GET /task/6666/data?api_key=YOUR_API_KEY
Data example (short)
{
  "total": 100,
  "items": [
    { "...": "..." }
  ]
}
POST

Get Decision Makers by Company Domain

/contact/decision-maker/domain
Find decision makers using company domains or website URLs.
Request
Part Field Type Notes
Query api_key string Required (legacy)
Body items string[] Domains / URLs
Body max number Max results per request
Body example
{
  "items": ["https://ibm.com", "https://microsoft.com"],
  "max": 100
}
Response
{
  "process_id": 6666
}
Fetch result
GET /task/6666/data?api_key=YOUR_API_KEY
Data example (short)
{
  "total": 100,
  "items": [
    { "...": "..." }
  ]
}

Use cases

Practical automation recipes for Contact API. Use polling or webhooks depending on your workflow.

Automation
Make (Integromat)
Trigger a scenario → call Scrupp → wait for completion → store results in Airtable/Sheets/CRM.
Recommended flow
  1. 1) HTTP — Make a request (POST)
  2. 2) Save process_id
  3. 3) Sleep 3–10s
  4. 4) HTTP — Make a request (GET task data)
  5. 5) Router: if not ready → repeat (max attempts)
Use the built-in HTTP module. If you prefer webhooks, set webhook_url and let Scrupp notify you.
Zapier
Enrich on a trigger (new lead / form submission) and push results to HubSpot, Sheets or your outbound stack.
Recommended flow
  1. 1) Webhooks by Zapier (POST)
  2. 2) Store process_id
  3. 3) Delay 3–10s
  4. 4) Webhooks by Zapier (GET task data)
  5. 5) Filter: status ready → continue
Clay
Enrich company/contact rows in Clay, then route to sequences or export clean CSV for outreach.
Recommended flow
  1. 1) Add an HTTP / API enrichment step
  2. 2) POST to Scrupp → capture process_id
  3. 3) Poll task data (GET) or use webhook
  4. 4) Map returned fields into Clay columns
Shortcuts
Field mapping tip: store raw response JSON in your automation first, then map only the columns you need (company name, domain, location, decision maker title, email/phone availability, etc.).