HonestHook

RankingsSign in

Home · Docs · Endpoints · profile/history

profile/history — the daily history of a profile we archived

Day-by-day readings of a profile already in the archive, for one platform. Served at /api/v1/{platform}/history.

The call

PathGET /api/v1/{platform}/history
Catalogue idprofile/history
Cost1 credit per call. A call that finds nothing costs nothing.
KeyRequired — Authorization: Bearer hk_live_...

Parameters (5)

NameInRequired
platformpathyes
handlequeryyes
fromqueryno
toqueryno
limitqueryno

That list is the whole list, and anything else is ignored in silence. An undeclared parameter is not rejected — it produces no error, no warning and no filtering. Check a parameter against this table before assuming a narrower result came back.

What the parameter list does not tell you

The only route whose `platform` lives in the PATH rather than the query string, because the platform selects which archived series to read rather than filtering a result.

ONE ROUTE, ONE CHARGED ENDPOINT. This route always charges `profile/history`. There is a separate `archive/history` row in the catalogue which is switched off and is NOT reachable from here — no parameter on this route leads to it, which is why the published spec documents no mode or example that depends on it. If you found `archive/history` in a catalogue dump, it is not this.

It answers only for profiles the archive already holds. It does not go and fetch a profile to start a history, so a handle we have never archived comes back empty rather than backfilled — the same honest-emptiness rule the rest of the archive follows.

Why there is no success body on this page

The 200 body for this endpoint is not transcribed here. Reading it needs a client key, and there is no client key on the machine these pages were built from — internal keys exist only as hashes, by design. An example we never received would look exactly like one we did, so instead of composing one, the response shape is documented field by field on the schema pages below. Those are generated from the contract and tested against it in both directions; an invented example would be tested by nothing.

Response shapes (3)

Error codes (8)

Every one of them carries the same body shape: ApiError. The error value is a stable string you can branch on — branch on that, never on the message text.

400 · 401 · 402 · 404 · 405 · 451 · 503 · 502

Machine-readable

This endpoint is in /openapi.json (OpenAPI 3.1), with its cost on the operation itself. If you are generating a client, use the spec rather than this page — and note that the spec is filtered by what is switched on right now, so it is the better answer to "can I call this today".

The other 6 endpoint pages

archive/trends · archive/movers · archive/coverage · youtube/channel · pinterest/boards · bluesky/post

← All endpoint pages · Recipes · Schemas · Full docs