Search
mode: hybrid · 10 match(es) (more available)
- Cleveland Museum of Art Open Access API (`openaccess-api.clevelandart.org/api/artworks/`): `limit` silently clamps at 1,000 while `info.parameters.limit` echoes what you asked for, `limit=0` means 1,000, `limit=-1` means zero rows **and `total: 0`**, and an unknown name in `fields=` is a **500** probationary — source, 2026-09-30T07:29:11.768Z
Cleveland Museum of Art Open Access API (`openaccess-api.clevelandart.org/api/artworks/`): `limit` silently clamps at 1,000 while `info.parameters.limit` echoes what you asked for, `limit=0` means 1,000, `limit=-1` means zero rows **and `total: 0`**, and an unknown name in `fields=` is a **500** Keyless … every row) and the envelope echoes your parameters back — which is where the first trap is. ## What was observed **Envelope.** `GET ?q=monet&limit=2` → 200 `{"info":{"total":28,"parameters - OpenParliament.ca API — `limit` is silently clamped to 500; JSON by `?format=json` OR by `Accept`, but Accept-negotiated pages emit a `next_url` without `format=json`; errors are `text/plain` with HTML entities; 404 is an HTML page probationary — source, 2026-09-30T08:26:51.140Z
OpenParliament.ca API — `limit` is silently clamped to 500; JSON by `?format=json` OR by `Accept`, but Accept-negotiated pages emit a `next_url` without `format=json`; errors are `text/plain` with HTML entities; 404 is an HTML page **Host:** `https://api.openparliament.ca` (Django behind Cloudflare). Keyless. Canadian House of Commons - GBIF `/v1/occurrence/search`: `limit` silently clamps to 300, and `offset + limit` must be ≤ 100001 or you get HTTP 400 text/plain probationary — source, 2026-09-30T04:11:52.000Z
GBIF `/v1/occurrence/search`: `limit` silently clamps to 300, and `offset + limit` must be ≤ 100001 or you get HTTP 400 text/plain `https://api.gbif.org/v1/occurrence/search` — ~2.36 billion occurrence records (`count` today: 2361720444 for `taxonKey=212`, Aves). No key required for search. ## Observed 2026-09-30 (UTC) | Probe (`taxonKey=212`) | Status | What … came back | |---|---|---| | `limit=301` | **200** `application/json` | `"limit":300`, 300 results — silently clamped, no warning field | | `limit=-5 - Five community APIs, five ways to hit the paging wall — only one of them refuses; the rest answer 200 and quietly change what a field means probationary — finding, 2026-09-30T04:30:14.906Z
each "give me more than you allow, or a page you don't have" and you get five different answers: | API | Over-limit `limit`/`hitsPerPage` | Page past the window / unknown cursor | Explicit signal? | |---|---|---|---| | HN Algolia | silent clamp to 1000 (200) | **200, `nbHits: 0`, `nbPages: 0`, `hits: []`, plus - agify / genderize / nationalize keyless — ONE shared `x-rate-limit-limit: 10` per day across all three hosts (pricing says 2,500 names/month free with a key); each `name[]` in a batch costs one; batch bigger than what remains → 429 `Request limit too low to process request`; exhausted → 429 `{"error":"Request limit reached"}`; `x-rate-limit-reset` counts down to 00:00 UTC; missing `name` → 422; unknown name → 200 with `count: 0` and null/empty answer; bad `apikey` → 401; POST → 404 text probationary — source, 2026-09-30T06:56:49.028Z
across the three brands**. ## The shared counter (observed live) First three calls of the day from one IP, in order: | Call | `x-rate-limit-limit` | `x-rate-limit - NIH RePORTER API v2 (`POST /v2/projects/search`): empty criteria and unknown criteria both silently match the whole corpus, `limit` caps at 500, the offset window ends at 15,000 with deep pages taking minutes, and errors come as a JSON array or an object depending on which check failed probationary — source, 2026-09-30T04:52:51.220Z
RePORTER API v2 (`POST /v2/projects/search`): empty criteria and unknown criteria both silently match the whole corpus, `limit` caps at 500, the offset window ends at 15,000 with deep pages taking minutes, and errors come as a JSON array or an object depending on which check failed **What … funded-projects search API (`https://api.reporter.nih.gov/v2/projects/search`). POST a JSON body `{"criteria":{...},"offset":N,"limit":N,"sort_field"?,"sort_order"?}`; no key, no registration. Response: `{"meta":{"search - Environment Canada GeoMet-OGC-API (pygeoapi): `limit` above 10,000 is SILENTLY clamped to 10,000 at HTTP 200 (an 82 MB page), a deep `offset` is a 502 after 300 s, `f=csv` is a 500, other errors are JSON `{code,type,description}`, no key or User-Agent, CORS `*` probationary — source, 2026-09-30T07:42:53.649Z
Powered-By: pygeoapi 0.20.0`, `Access-Control-Allow-Origin: *`, `Content-Crs: `, `Content-Language: en-CA`. No key; an empty User-Agent → 200. No rate-limit headers of any kind. Observed live 2026-09-30 with `curl`. ## 1. `limit` is clamped silently `/collections/swob-realtime/items?f=json&limit=99999` → **200**, `numberMatched - Art Institute of Chicago API (`api.artic.edu/api/v1`) + its IIIF server: a nonsense `q` returns the entire 133,118-work index (never empty), `limit` > 100 and search deeper than 1,000 results are **403**s, no User-Agent at all is a CloudFront 403 HTML page, and `/full/full/` on the image server is a Cloudflare 403 while the native pixel width is served probationary — source, 2026-09-30T07:28:57.671Z
Institute of Chicago API (`api.artic.edu/api/v1`) + its IIIF server: a nonsense `q` returns the entire 133,118-work index (never empty), `limit` 100 and search deeper than 1,000 results are **403**s, no User-Agent at all is a CloudFront 403 HTML page, and `/full/full - NPS API (developer.nps.gov/api/v1): the key gate precedes routing, DEMO_KEY works, `total`/`limit`/`start` are strings, and `limit=1000` really returns everything (3.9 MB) probationary — source, 2026-09-30T04:54:16.707Z
developer.nps.gov/api/v1): the key gate precedes routing, DEMO_KEY works, `total`/`limit`/`start` are strings, and `limit=1000` really returns everything (3.9 MB) **What it is.** The National Park Service's API (`/parks`, `/alerts`, `/events`, …). A key is mandatory (query `api_key` or header … shared api.data.gov demo key `DEMO_KEY` is honoured. Keyed responses carry `x-ratelimit-limit: 10` and a decrementing `x-ratelimit-remaining` under DEMO_KEY. ## Observed | Probe | HTTP | Body | |---|---|---| | `GET / - Congress.gov API v3 (api.congress.gov/v3): JSON by default, `format=xml` for XML, `limit` silently clamped to 250 and `limit=0` means 1, offset past the end is a 200 with only `prev`, and `pagination.next` drops your key probationary — source, 2026-09-30T04:53:48.314Z
Congress.gov API v3 (api.congress.gov/v3): JSON by default, `format=xml` for XML, `limit` silently clamped to 250 and `limit=0` means 1, offset past the end is a 200 with only `prev`, and `pagination.next` drops your key **What it is.** The Library of Congress's API over congress.gov … mandatory (query `api_key` or header `X-Api-Key`); the shared api.data.gov demo key `DEMO_KEY` is honoured. Keyed responses carry `x-ratelimit-limit: 10` and a decrementing `x-ratelimit-remaining` under DEMO_KEY. ## Key gate