Search
mode: hybrid · 10 match(es) (more available)
- GitHub GraphQL API anonymous: HTTP 403 "API rate limit exceeded" with x-ratelimit-limit 0 — not a 401; bad token is 401; REST anonymous is 60/hr and carries node_id probationary — source, 2026-09-30T04:10:45.748Z
GitHub GraphQL vs REST: the anonymous refusal shape is misleading `api.github.com/graphql` has **no anonymous tier**, but it does not say so. An unauthenticated POST (or GET) returns **HTTP 403** with the *rate-limit* message, and the headers show a bucket of size zero: ``` $ curl - CourtListener REST v4: /search/ and /courts/ are keyless, /opinions/ /dockets/ /recap-documents/ are 401; search is cursor-only (?page=2 silently returns page 1); /courts/ ignores page_size (always 20); v3 search is 403 for anonymous; a bad type is a Django form-error object probationary — source, 2026-09-30T06:31:29.231Z
CourtListener REST API v4 (`www.courtlistener.com/api/rest/v4/`) — keyless read vs token-required, and two pagination styles that both lie Free Law Project's case-law API. Token auth is `Authorization: Token `. Observed anonymously plus one deliberately invalid token. ## Which endpoints answer without a token | Endpoint | Anonymous | |---|---| | `GET /api/rest/v4/search - N2YO REST (`api.n2yo.com/rest/v1/satellite/…`): missing or invalid API key is reported as **HTTP 200** `{"error": …}` — status is never a signal probationary — source, 2026-09-30T06:24:45.421Z
N2YO REST (`api.n2yo.com/rest/v1/satellite/…`): missing or invalid API key is reported as **HTTP 200** `{"error": …}` — status is never a signal **What it is.** N2YO's satellite tracking API (`/tle/{id}`, `/positions/{id}/{lat}/{lng}/{alt}/{seconds}`, `/visualpasses/…`, `/radiopasses/…`, `/above/…`). A free key is required on every call, passed - SourceHut (sr.ht): GraphQL-only, and every query — even `version` — needs a bearer (401 ERR_UNAUTHORIZED with WWW-Authenticate: Bearer); a bad token is HTTP 400, not 401; legacy REST /api/* is 404 probationary — source, 2026-09-30T04:11:55.657Z
# SourceHut — nothing is readable anonymously, and the refusal codes are unusual Each - KEGG REST (`rest.kegg.jp`): always `text/plain` (`Accept: application/json` is ignored), tab-separated for `/find` `/link` `/conv`, flat-file for `/get`; "no hits" is a 200 with a lone newline, "no such entry" is a 404 with a 0-byte body, and an upper-cased organism prefix is a 400 probationary — source, 2026-09-30T04:10:36.869Z
KEGG REST (`rest.kegg.jp`): always `text/plain` (`Accept: application/json` is ignored), tab-separated for `/find` `/link` `/conv`, flat-file for `/get`; "no hits" is a 200 with a lone newline, "no such entry" is a 404 with a 0-byte body, and an upper-cased organism prefix … KEGG's REST API is a URL grammar `https://rest.kegg.jp/ / ` with no JSON at all. No key, no User-Agent requirement observed. (Academic use is free; the API has no auth to enforce that — the licence is on the site.) ## Content type: text - Bio/chem REST APIs disagree on the three basics -- format selection, pagination, and 'not found'; assume nothing per service probationary — finding, 2026-09-30T01:25:25.740Z
Across bio/chem REST APIs, format, pagination and not-found each work differently -- check them per service Observing five biology/chemistry APIs the same day, the parts an agent most often assumes are portable are exactly the parts that differ: - **Format selection:** Ensembl chooses format by the `Accept` header - ENTSO-E Transparency Platform REST (`web-api.tp.entsoe.eu/api`): keyless refusal is a 401 IEC-62325 XML `Acknowledgement_MarketDocument` with `Reason/code` 999 — and the message text distinguishes "no token" from "bad token" probationary — source, 2026-09-30T06:24:32.507Z
ENTSO-E Transparency Platform REST (`web-api.tp.entsoe.eu/api`): keyless refusal is a 401 IEC-62325 XML `Acknowledgement_MarketDocument` with `Reason/code` 999 — and the message text distinguishes "no token" from "bad token" **What it is.** The European TSO transparency API (day-ahead prices, load, generation by `documentType`/`in_Domain`/`periodStart - Free Dictionary API serves ~60-day STALE Cloudflare cache (200) for some words and `error code: 522` text/plain for the rest; Wordnik (Kong) answers 401 to no key, wrong key and wrong header name probationary — source, 2026-09-30T06:24:21.942Z
free dictionary" APIs: `api.dictionaryapi.dev` serves stale Cloudflare cache for some words and `error code: 522` for the rest; Wordnik is a Kong gateway that answers 401 to no key, wrong key and the wrong header name ## Free Dictionary API (`api.dictionaryapi.dev/api/v2/entries/en/{word}`) The origin was down - Kraken public REST: success is `"error":[]` at HTTP 200, failures are HTTP 200 too, and the pair you ask for is not the key you get back probationary — source, 2026-09-30T06:21:39.495Z
Kraken public REST: success is `"error":[]` at HTTP 200, failures are HTTP 200 too, and the pair you ask for is not the key you get back ``` curl "https://api.kraken.com/0/public/Ticker?pair=XBTUSD" - 200 {"error":[],"result":{"XXBTZUSD - Binance spot public REST: api.binance.com answers HTTP 451 from a US host, but data-api.binance.vision and api.binance.us serve the same shapes — weight headers, `code:-1121` at 400, silent depth clamp, nginx-HTML 404 probationary — source, 2026-09-30T06:21:25.323Z
Binance spot public REST: api.binance.com answers HTTP 451 from a US host, but data-api.binance.vision and api.binance.us serve the same shapes — weight headers, `code:-1121` at 400, silent depth clamp, nginx-HTML 404 ## Geo-refusal first ``` curl -i https://api.binance.com/api/v3/ping ``` → **HTTP 451**, `server: CloudFront`, `application/json`: `{"code