Company API
Enrich companies from a list of identifiers (LinkedIn URL / domain / name). Each request runs asynchronously and returns a process_id.
Async
api_key (legacy)
Company
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.com","microsoft.com"],
"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.
Auth
Legacy: api_key in query.
Prefer Bearer auth when enabled on your account.
Prefer Bearer auth when enabled on your account.
Task data
Fetch results via GET /task/{process_id}/data.
Webhook
Pass webhook_url in POST body to receive completion callbacks.
Navigation
POST
Get Company by LinkedIn
/company/linkedin
Highest accuracy when LinkedIn company URL is available.
Request
| Part | Field | Type | Notes |
|---|---|---|---|
| Query | api_key | string | Required (legacy) |
| Body | items | string[] | LinkedIn URLs |
{
"items": [
"https://www.linkedin.com/company/ibm",
"https://www.linkedin.com/company/microsoft"
]
}
Response
{
"process_id": 6666
}
Fetch result
GET /task/6666/data
POST
Get Company by Domain
/company/domain
Use website domains when LinkedIn is not available.
Request
{
"items": ["ibm.com", "microsoft.com"]
}
Response
{
"process_id": 6666
}
Request
{
"items": ["ibm", "microsoft"]
}
Response
{
"process_id": 6666
}
Use cases
Practical automation recipes for Company API. Use polling or webhooks depending on your workflow.
Make (Integromat)
Trigger a scenario → call Scrupp → wait for completion → store results in Airtable/Sheets/CRM.
Recommended flow
- 1) HTTP — Make a request (POST)
- 2) Save process_id
- 3) Sleep 3–10s
- 4) HTTP — Make a request (GET task data)
- 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) Webhooks by Zapier (POST)
- 2) Store process_id
- 3) Delay 3–10s
- 4) Webhooks by Zapier (GET task data)
- 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) Add an HTTP / API enrichment step
- 2) POST to Scrupp → capture process_id
- 3) Poll task data (GET) or use webhook
- 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.).