Crosscheck
Resolves a company to a canonical entity, creating it if it is new, then runs the full CRM crosscheck pass on it. Returns immediately with an id — poll GET /v1/crosscheck/{job_id} until the status is completed. The pass covers duplicate detection, corporate hierarchy, operational status, regional-subsidiary classification, and the resulting recommended action.
crosscheck carries the recommended action, duplicate grouping, and operational status; parentage carries the corporate hierarchy (immediate, ultimate, and top operating parent, plus regional-subsidiary classification) in the same shape as GET /v1/combined/{job_id}.
The endpoint accepts the same inputs as POST /v1/entity-resolution, except that external_id is required. It identifies the record in your CRM, which the pass needs because duplicates and hierarchy are evaluated relative to the rest of your dataset.
GET /v1/crosscheck/{job_id} until status is completed, or provide a webhook_url to receive a callback.Credit usage
external_id does not match an account in your Kernel dataset. In those cases the job still completes, crosscheck and parentage are both returned as null, and the crosscheck portion of the cost is refunded automatically.
Examples
Crosscheck a CRM record
Crosscheck and match LinkedIn
Request body
external_id is required — it selects which account in your dataset the crosscheck pass runs on. You must also provide at least one of legal_name, trading_name, website, or kernel_id so the entity can be resolved. Requests missing either are rejected with a 400.
legal_name, trading_name, website, or kernel_id is required.
Polling for results
After receiving anid, poll GET /v1/crosscheck/{job_id} with exponential backoff. A full crosscheck runs identity resolution and the complete crosscheck pass, so it typically takes longer than the single-purpose endpoints.
Related endpoints
GET /v1/crosscheck/{job_id}— Poll for resultsPOST /v1/entity-resolution— Resolve an entity onlyPOST /v1/combined— Resolve an entity and enrich firmographics or parentagePOST /v1/resolve-parent— Resolve parentage for an already-resolved entity
Authorizations
Include your API key in the x-api-key header.
Body
Company to resolve and crosscheck. external_id identifies the record in your CRM and is required.
Your CRM identifier for the record to crosscheck. Required — it selects which account in your dataset the crosscheck pass runs on.
1"0014x00001LMZCDAA5"
Registered legal name of the company (e.g. "Stripe, Inc.")
1"Stripe, Inc."
Primary brand or trading name (e.g. "Stripe")
1"Stripe"
Company website URL.
1"https://stripe.com"
Country name or ISO 3166-1 alpha-2 code.
1"US"
City.
1"South San Francisco"
State or province.
1"CA"
ZIP or postal code.
1"94070"
Street address.
1"354 Oyster Point Blvd"
Email address. Only the domain portion is used for matching.
1"info@stripe.com"
Phone number. Used as an additional signal for entity resolution.
1"+1 555-555-5555"
Primary incorporation/registration number. The same number can exist in more than one country — pair it with company_registration_country when known.
1"01234567"
Registry jurisdiction for company_registration_number (ISO 3166-1 alpha-2 preferred). England, Scotland, Wales, and Northern Ireland map to GB. Falls back to country when omitted.
1"GB"
An existing Kernel ID. When provided, the resolver skips matching and returns the canonical record for this entity.
1"6347422643"
LinkedIn URL for the company (e.g. "https://linkedin.com/company/stripe"). Used as an additional signal for entity resolution.
1"https://linkedin.com/company/stripe"
When true, Kernel will attempt to match the resolved entity to a LinkedIn company profile. The result is returned in the linkedin field of the completed record. Defaults to false.
true
Bias the resolver toward name or URL matching when they conflict. One of: NAME_BIAS, URL_BIAS. Defaults to URL_BIAS.
NAME_BIAS, URL_BIAS HTTPS URL to receive webhook callbacks when the job completes or fails. Kernel will POST the job result to this URL with an X-Kernel-Signature header for verification.
^https://"https://example.com/webhooks/kernel"

