Poll an async scoring job.
Endpoints
GET /v1/jobs/{job_id}
Poll an async scoring job.
GET
Poll an async scoring job.
Returns the current state of a cold-scoring job. Jobs are created automatically by
Status is settled lazily — the first poll that observes a terminal underlying execution flips the row. A job that’s never polled stays
Once you have the
If you’re proxying multiple downstream users through one Kepler key, you’ll need to map their session IDs to your
POST /v1/score when no fresh cached record exists.
Status transitions
status | Meaning |
|---|---|
pending | The underlying cold pipeline is still running. Poll again in ~5s. |
complete | The pipeline succeeded. result_ref and score_url are populated. |
failed | The pipeline ended in a non-success terminal state. failure_reason explains. |
pending in storage until its 30-day TTL.
Reading a complete job
score_url, do GET https://api.keplerinsights.us/v1/score/stripe.com to read the actual score. The two-step is intentional: the job row stays small and cheap; the full score response stays the same shape regardless of how it was triggered.
Failure reasons
failure_reason | Meaning |
|---|---|
sfn_failed | The pipeline ended in FAILED (engine raised an exception). |
sfn_timed_out | The pipeline hit its task timeout. Usually transient — retry. |
sfn_aborted | An operator manually aborted the run. Should never happen in production. |
scoring_completed_no_record | The pipeline succeeded but no score-history row appeared. Possible cause: insufficient data stub. Check /v1/company/{domain}/confidence. |
Cross-user access
Job IDs are server-side bound to the API key that created them. Polling someone else’s job ID returns:job_ids yourself.
Expiration
Jobs are kept 30 days then auto-expire. Polling an expired job returns404. Don’t rely on job rows for long-term history; use GET /v1/score/{domain}/history for that.Authorizations
Live keys are prefixed ki_live_, test keys ki_test_. Issue + revoke
keys at https://console.keplerinsights.us. Never embed a key in client-side
code — every endpoint is backend-to-API only.
Path Parameters
Response
Job state.
Available options:
pending, complete, failed Present on complete. Use score_url to fetch the actual record.
Example:
"/v1/score/stripe.com"
Available options:
sfn_failed, sfn_timed_out, sfn_aborted, scoring_completed_no_record 
