Time-series of past scores for a company.
Endpoints
GET /v1/score/{domain}/history
Time-series of every score Kepler has ever produced for a company.
GET
Time-series of past scores for a company.
Returns every stored scoring run for
Pass the cursor back:
When there’s no
domain, DESC by scored_at. Paginated.
When to use it
- Plot a score trajectory chart.
- Detect rating changes (
KI-2+→KI-1). - Inspect how a particular event (funding round, leadership change, press coverage) moved the buckets.
Pagination
Defaultlimit=100, max 500. Responses include next_cursor when more pages exist:
next_cursor in the response, you’ve reached the end.
What’s in a record
Each entry is a curated subset of the internal score record — the time-series core only. Notably absent vs the portal:- ❌
top_signals(with guidance cards) - ❌
executive_summary - ❌
signal_movers/curated_signals
scored_at,composite_score,scale_premium,ki_rating,momentum_index- Full
bucketsblock (4 floats) data_completeness_pct
Volume note
A company scored daily for 12 months has ~365 records, each <1KB after curation. The full table for a single domain fits comfortably in one or two pages oflimit=500. Don’t worry about volume.
Stale → fresh promotion
If you want the current score, don’t paginate to the head of the list — callGET /v1/score/{domain} instead. It’s a single-shot lookup and counts against your cached quota the same way.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
Bare hostname. Strips a leading www. and any URL scheme automatically.
Query Parameters
Required range:
1 <= x <= 500Opaque pagination cursor. Pass back next_cursor from the previous response.

