Enrich company mapping
Resolve a company and start asynchronous Account Mapping enrichment.
Resolves a company by domain, LinkedIn URL, LinkedIn handle, or company ID, then starts asynchronous enrichment for the company mapping.
The endpoint returns 202 Accepted immediately. Enrichment continues in the background.
If a recent enrichment already exists for the same company and workspace, the response reflects the existing request instead of creating a duplicate.
Route
Credit usage
This request consumes credits from your workspace balance: one spend for the account mapping launch, plus additional credits for each employee profile whose content is analyzed as enrichment continues. If your balance is insufficient, the request returns 402 (see Errors).
Access modes
Use a workspace API key. The workspace is inferred from the key.
Authorization: Bearer sk_live_...Request body
Send exactly one company identifier: domain, linkedin_url, linkedin_handle, or company_id.
| Field | Type | Required | Description |
|---|---|---|---|
| domain | string | Conditional | Company domain, for example acme.com. |
| linkedin_url | string | Conditional | LinkedIn company URL. |
| linkedin_handle | string | Conditional | LinkedIn company slug after /company/, for example acme. |
| company_id | integer | Conditional | The company's ID in Sillage, if you already have it (e.g. from the company list or another v2 endpoint). This ID is specific to your environment. Cannot be combined with any other identifier. |
Valid body examples:
{
"domain": "acme.com"
}When you identify the company with company_id, the lookup is unambiguous — the 409 conflict response described below cannot happen for this field. It only applies when resolving by domain or LinkedIn. A company_id that does not exist, or belongs to a different workspace, returns a 404.
Example request
curl "https://api.getsillage.com/api/v2/enrich-company-mapping" \
-X POST \
-H "Authorization: Bearer sk_live_..." \
-H "Content-Type: application/json" \
-d '{"domain":"acme.com"}'Success response
Status: 202 Accepted
{
"status": "accepted",
"request_id": 12345,
"stage": "account_mapping_in_progress"
}Polling enrichment stage
The request_id in the response is the content-request ID to use when polling for completion. Poll GET /api/v2/account-mapping/{request_id}/stage until the stage field reaches a terminal value.
Terminal stages: completed (success) and account_mapping_failed (failure). See Account Mapping — Polling enrichment stage for the full response shape.
Response headers
| Header | Description |
|---|---|
| X-Request-Id | Request UUID for debugging and support. |
| X-Response-Time | Server response time. |
Response fields
| Field | Type | Description |
|---|---|---|
| status | string | Acceptance status. |
| request_id | integer | Numeric SQL ID of the content request created or reused for enrichment. |
| stage | string | Current enrichment stage. |
Errors
| Status | Meaning |
|---|---|
| 400 | The request input is invalid. |
| 401 | The API key is missing or invalid. |
| 402 | Insufficient credits to complete the enrichment. |
| 403 | Account Mapping is not enabled for the workspace. |
| 404 | No company found for the given identifier, or the given company_id does not belong to your workspace. |
| 409 | A conflicting enrichment request already exists. |
| 422 | The request body is structurally valid but semantically invalid (for example, multiple conflicting identifiers). |
| 500 | An unexpected server error occurred. |
Error responses use RFC 9457 problem documents with Content-Type: application/problem+json:
{
"type": "https://docs.getsillage.com/errors/forbidden",
"title": "Forbidden",
"status": 403,
"detail": "Account Mapping is not enabled for this workspace.",
"instance": "/api/v2/enrich-company-mapping"
}