{"openapi":"3.1.0","info":{"title":"Dinosaurs API","version":"1.0.0","description":"Explore 4,100+ dinosaur genera from the Paleobiology Database. For each dinosaur get the geologic period it lived in (Triassic, Jurassic or Cretaceous), its age range in millions of years, the stratigraphic intervals and who first named it. Look one up by name, search the catalogue, filter by period, or get a random dinosaur — perfect for education apps, games, quizzes and museum tooling.","contact":{"name":"PremiumApi","url":"https://www.oanor.com/by/premiumapi"}},"servers":[{"url":"https://api.oanor.com/dinosaurs-api","description":"oanor gateway"}],"tags":[{"name":"Dinosaurs"},{"name":"Meta"}],"components":{"securitySchemes":{"oanorKey":{"type":"apiKey","in":"header","name":"x-oanor-key","description":"Get your key at https://www.oanor.com/developer/keys"}}},"security":[{"oanorKey":[]}],"paths":{"/v1/dinosaur":{"get":{"operationId":"get_v1_dinosaur","tags":["Dinosaurs"],"summary":"A single dinosaur by name or id","description":"","parameters":[{"name":"name","in":"query","required":false,"description":"Genus name, e.g. Tyrannosaurus","schema":{"type":"string"},"example":"Tyrannosaurus"},{"name":"id","in":"query","required":false,"description":"Dataset id (alternative to name)","schema":{"type":"string"}}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"id":2771,"name":"Tyrannosaurus","lived":{"max_ma":83.6,"min_ma":66,"late_interval":"Maastrichtian","early_interval":"Campanian"},"period":"Cretaceous","named_by":"Osborn 1905"},"meta":{"timestamp":"2026-05-31T02:02:07.181Z","request_id":"98ec3ec4-684f-4432-9574-d4b8f6a220f5"},"status":"ok","message":"Dinosaur retrieved","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/random":{"get":{"operationId":"get_v1_random","tags":["Dinosaurs"],"summary":"A random dinosaur (optionally by period)","description":"","parameters":[{"name":"period","in":"query","required":false,"description":"Triassic, Jurassic or Cretaceous","schema":{"type":"string"}}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"id":437,"name":"Boreonykus","lived":{"max_ma":83.6,"min_ma":72.2,"early_interval":"Campanian"},"period":"Cretaceous","named_by":"Bell and Currie 2016"},"meta":{"timestamp":"2026-05-31T02:02:07.254Z","request_id":"6f838ec3-9a29-4dc9-ae29-c23c7c3ddbfa"},"status":"ok","message":"Random dinosaur","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/search":{"get":{"operationId":"get_v1_search","tags":["Dinosaurs"],"summary":"Search dinosaurs by name, filter by period","description":"","parameters":[{"name":"q","in":"query","required":false,"description":"Name (substring)","schema":{"type":"string"},"example":"saurus"},{"name":"period","in":"query","required":false,"description":"Triassic, Jurassic or Cretaceous","schema":{"type":"string"},"example":"Cretaceous"},{"name":"limit","in":"query","required":false,"description":"Results per page (1-100, default 20)","schema":{"type":"string"},"example":"20"},{"name":"offset","in":"query","required":false,"description":"Pagination offset","schema":{"type":"string"},"example":"0"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"count":20,"limit":20,"total":404,"offset":0,"filters":{"q":"saurus","period":"Cretaceous"},"results":[{"id":65,"name":"Wakinosaurus","lived":{"max_ma":125.77,"min_ma":121.4,"early_interval":"Barremian"},"period":"Cretaceous","named_by":"Okazaki 1992"},{"id":142,"name":"Arkansaurus","lived":{"max_ma":113.2,"min_ma":100.5,"early_interval":"Albian"},"period":"Cretaceous","named_by":"Hunt and Quinn 2018"},{"id":147,"name":"Paraxenisaurus","lived":{"max_ma":83.6,"min_ma":72.2,"early_interval":"Campanian"},"period":"Cretaceous","named_by":"Serrano-Brañas et al. 2020"},{"id":154,"name":"Coelosaurus","lived":{"max_ma":121.4,"min_ma":66,"late_interval":"Maastrichtian","early_interval":"Aptian"},"period":"Cretaceous","named_by":"Leidy 1865"},{"id":155,"name":"Nqwebasaurus","lived":{"max_ma":143.1,"min_ma":132.6,"late_interval":"Valanginian","early_interval":"Berriasian"},"period":"Cretaceous","named_by":"de Klerk et al. 2000"},{"id":157,"name":"Shenzhousaurus","lived":{"max_ma":125.77,"min_ma":119.57,"late_interval":"Aptian","early_interval":"Barremian"},"period":"Cretaceous","named_by":"Ji et al. 2003"},{"id":177,"name":"Embasaurus","lived":{"max_ma":143.1,"min_ma":125.77,"late_interval":"Hauterivian","early_interval":"Berriasian"},"period":"Cretaceous","named_by":"Riabinin 1931"},{"id":201,"name":"Siamosaurus","lived":{"max_ma":125.77,"min_ma":113.2,"late_interval":"Aptian","early_interval":"Barremian"},"period":"Cretaceous","named_by":"Buffetaut and Ingavat 1986"},{"id":208,"name":"Suchosaurus","lived":{"max_ma":143.1,"min_ma":121.4,"late_interval":"Barremian","early_interval":"Berriasian"},"period":"Cretaceous","named_by":"Owen 1842"},{"id":210,"name":"Cristatusaurus","lived":{"max_ma":121.4,"min_ma":113.2,"early_interval":"Aptian"},"period":"Cretaceous","named_by":"Taquet and Russell 1998"},{"id":211,"name":"Spinosaurus","lived":{"max_ma":125.77,"min_ma":72.2,"late_interval":"Campanian","early_interval":"Barremian"},"period":"Cretaceous","named_by":"Stromer 1915"},{"id":215,"name":"Camarillasaurus","lived":{"max_ma":125.77,"min_ma":121.4,"early_interval":"Barremian"},"period":"Cretaceous","named_by":"Sánchez-Hernández and Benton 2014"},{"id":219,"name":"Megalosaurus","lived":{"max_ma":205.7,"min_ma":66,"late_interval":"Maastrichtian","early_interval":"Rhaetian"},"period":"Cretaceous","named_by":"Parkinson 1822"},{"id":238,"name":"Phaedrolosaurus","lived":{"max_ma":137.05,"min_ma":100.5,"late_interval":"Albian","early_interval":"Valanginian"},"period":"Cretaceous","named_by":"Dong 1973"},{"id":250,"name":"Bahariasaurus","lived":{"max_ma":113.2,"min_ma":66,"late_interval":"Maastrichtian","early_interval":"Albian"},"period":"Cretaceous","named_by":"Stromer 1934"},{"id":251,"name":"Shanyangosaurus","lived":{"max_ma":72.2,"min_ma":66,"early_interval":"Maastrichtian"},"period":"Cretaceous","named_by":"Xue et al. 1996"},{"id":254,"name":"Carcharodontosaurus","lived":{"max_ma":143.1,"min_ma":72.2,"late_interval":"Campanian","early_interval":"Berriasian"},"period":"Cretaceous","named_by":"(Stromer 1931)"},{"id":261,"name":"Giganotosaurus","lived":{"max_ma":100.5,"min_ma":89.8,"late_interval":"Turonian","early_interval":"Cenomanian"},"period":"Cretaceous","named_by":"Coria and Salgado 1995"},{"id":262,"name":"Mapusaurus","lived":{"max_ma":100.5,"min_ma":89.8,"late_interval":"Turonian","early_interval":"Cenomanian"},"period":"Cretaceous","named_by":"Coria and Currie 2006"},{"id":266,"name":"Kelmayisaurus","lived":{"max_ma":137.05,"min_ma":100.5,"late_interval":"Albian","early_interval":"Valanginian"},"period":"Cretaceous","named_by":"Dong 1973"}]},"meta":{"timestamp":"2026-05-31T02:02:07.327Z","request_id":"d20a74ad-70e8-4c2a-be4a-1b8421c67984"},"status":"ok","message":"Search completed","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/meta":{"get":{"operationId":"get_v1_meta","tags":["Meta"],"summary":"Totals, periods & source","description":"","parameters":[],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"max_ma/min_ma are millions of years ago; period derived from age midpoint.","total":4188,"fields":["id","name","period","named_by","early_interval","late_interval","max_ma","min_ma"],"source":"Paleobiology Database (Dinosauria genera)","periods":[{"count":148,"period":"Triassic"},{"count":445,"period":"Jurassic"},{"count":1536,"period":"Cretaceous"}]},"meta":{"timestamp":"2026-05-31T02:02:07.402Z","request_id":"54760101-5e55-41e7-b7a0-218c6ec285b3"},"status":"ok","message":"Meta retrieved","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}}},"x-oanor-pricing":[{"slug":"free","name":"Free","price_cents_month":0,"monthly_call_quota":2000,"rps_limit":3,"hard_limit":true},{"slug":"starter","name":"Starter","price_cents_month":500,"monthly_call_quota":45000,"rps_limit":8,"hard_limit":true},{"slug":"pro","name":"Pro","price_cents_month":1300,"monthly_call_quota":260000,"rps_limit":20,"hard_limit":true},{"slug":"mega","name":"Mega","price_cents_month":3300,"monthly_call_quota":1300000,"rps_limit":40,"hard_limit":true}],"x-oanor-marketplace-url":"https://www.oanor.com/api/dinosaurs-api"}