From nothing to real data, on this page.
Three steps, no card, no call, nothing to install. The command below comes with your key already substituted in — copy, paste, done.
Get a key
Then paste one command
curl "https://honesthook.com/api/v1/trends/ai-agents?limite=3" \ -H "Authorization: Bearer hk_live_…"The command above is what you will get, with your key already substituted in. Nothing to fill in by hand.
What you should see
{ "nicho": "ai-agents", "desde": "2026-08-31T13:08:21Z", "ate": "2026-09-07T13:08:21Z", "cobrado": 1, "fonte": "franquia", "franquia_usada": 1, "franquia_total": 1000, "saldo": 0, "pontos": 3, "truncado": true, "itens": [ { "titulo": "44% on ARC-AGI-1 in 67 cents", "url": "https://mvakde.github.io/blog/44-on-arc-1/", "plataforma": "lobsters", "melhor_posicao": 1, "movimento": 0, "serie": [ { "janela": "2026-09-07T13:00:00Z", "posicao": 1, "pontos": 13 } ] } ] }A real response from this endpoint, trimmed to one item.
truncado: truehere is thelimite=3doing its job, not a failure — drop the parameter and you get the whole window.
If it does not work
Every failure carries a stable erro code in the body. Branch on the code, never on the prose — the prose can change, the code will not.
| You see | It means | What to do |
|---|---|---|
401 chave_invalida | The key was not recognised, or was deactivated. | Copy it again — a key cut by a line break is the usual cause. Keys are 56 characters and start with hk_live_. If it is definitely right, write to us. |
401 chave_ausente | No Authorization header arrived. | Check the shell variable actually expanded — an empty one looks exactly like this. movers reports a missing header as chave_invalida instead; the check runs in the database, where an absent key looks like a wrong one. |
402 sem_creditos | The monthly allowance is spent. | Do not retry. 402 is not a rate limit — waiting only helps at the 1st, when the allowance renews. Before that, ask us for a top-up. A backoff loop here can never succeed. |
400 intervalo_invalido | desde or ate is not ISO 8601. | Use 2026-09-05T00:00:00Z, with the zone. Omit both and you get the last 7 days. |
200, itens: [] | Not an error — and this is the one that costs you. Nothing validates the niche name, so a typo comes back as an empty success. On trends it still spends a call. | Resolve the name at /api/v1/nichos before reading an empty list as a finding. This is the failure shape this project keeps catching in itself: no error, and an answer that looks plausible. |
503 endpoint_indisponivel | That endpoint is switched off at the database. | Nothing was charged. The status page publishes the last capture per source, including the broken ones. |
409 ja_tem_chave | That address already has an active key. | Use the key you have. If you lost it, write to us and we rotate it by hand — we store only a hash, so we can replace it but never look it up. |
The complete list, including the codes this page does not cover, is in the API documentation.
What to read next
/trends answers what was in the ranking. /movers answers what gained traction since yesterday — a question you can only ask of an archive that kept yesterday. Both are in the docs, with what the data does not support yet stated plainly.
API documentation · Archive status · Back to the front page · kauvpereira@gmail.com