1. Submit a company and persona
Every job uses the singletarget_people operation and an explicit saved persona slug.
202 { "job_id": "…", "status": "processing" }. Missing persona returns
400 persona_required; an unknown slug returns 400 persona_not_found.
Idempotency-Key is optional but recommended for every submission. Reusing the same key and
request under one API client returns the original job; reusing it for a different request returns
409 idempotency_conflict. Keys may contain 1–128 characters.
2. Poll the same job
status remains processing:
Webhook instead of polling
Add a public HTTPScallback_url to the submit body. A saved dashboard webhook is HMAC-signed;
all deliveries include a stable X-Bossradar-Event-Id. Failed deliveries retry from a durable
outbox with jitter for up to 24 hours. Receivers should still be idempotent by event ID.
Cancel a job
POST /v1/jobs/{job_id}/cancel stops further work and marks the job cancelled
(idempotent). Cancelling is always free and immediately frees your concurrency
slot. A job that already finished is returned unchanged — a paid result cannot
be cancelled.
Job outcomes
Public statuses areprocessing, done, not_found, no_employees, no_people_found,
too_large, failed, and cancelled. Every terminal free outcome returns
credits_charged: 0; a completed metered result, including zero persona matches, returns 1.
Unmetered plans report the actual debit, 0.
The size gate remains over 100 employees for non-exempt plans. pro, internal, unlimited,
and enterprise bypass it.
Personas — full guide
Manage targets and learn about the immutable Owners & founders system persona.