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

POST/api/v2/enrich-company-mapping

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.

FieldTypeRequiredDescription
domainstringConditionalCompany domain, for example acme.com.
linkedin_urlstringConditionalLinkedIn company URL.
linkedin_handlestringConditionalLinkedIn company slug after /company/, for example acme.
company_idintegerConditionalThe 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

HeaderDescription
X-Request-IdRequest UUID for debugging and support.
X-Response-TimeServer response time.

Response fields

FieldTypeDescription
statusstringAcceptance status.
request_idintegerNumeric SQL ID of the content request created or reused for enrichment.
stagestringCurrent enrichment stage.

Errors

StatusMeaning
400The request input is invalid.
401The API key is missing or invalid.
402Insufficient credits to complete the enrichment.
403Account Mapping is not enabled for the workspace.
404No company found for the given identifier, or the given company_id does not belong to your workspace.
409A conflicting enrichment request already exists.
422The request body is structurally valid but semantically invalid (for example, multiple conflicting identifiers).
500An 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"
}

On this page