{"name":"TechTools Dog Atlas API","version":"1.0","updated":"2026-10-15","summary":"Free, keyless JSON and Markdown API over the Dog Atlas: every dog breed with an English Wikipedia article, one record each, with size, weight, height, life expectancy, origin, FCI group, temperament, eight 1-to-5 ratings, a written profile and a freely licensed photo. A sync agent adds new breeds and refreshes the atlas once a day.","human_page":"https://techtools.cz/tools/dog-atlas/","base_url":"https://techtools.cz/dog-atlas-api/v1","openapi":"https://techtools.cz/dog-atlas-api/openapi.json","auth":"None. No key, no account, no cookies. Read-only.","cors":"Access-Control-Allow-Origin: * on every GET.","rate_limit":{"limit":"120 requests per minute per IP address","over_limit":"429 { error, code: \"rate_limited\", retry_after: 60 } with a Retry-After header","caching":"Responses carry Cache-Control: public for 10 minutes; the data changes once a day."},"attribution":"Free to use. Link the breed's url when you show a profile. Photos: credit the author and licence given in photo.author and photo.license (most are Creative Commons BY or BY-SA).","quickstart":[{"goal":"All breeds, short records","curl":"curl 'https://techtools.cz/dog-atlas-api/v1/breeds?per_page=1000'"},{"goal":"Search","curl":"curl 'https://techtools.cz/dog-atlas-api/v1/breeds?q=shepherd'"},{"goal":"Small companion dogs","curl":"curl 'https://techtools.cz/dog-atlas-api/v1/breeds?group=companion\u0026size=Small'"},{"goal":"One breed, everything","curl":"curl 'https://techtools.cz/dog-atlas-api/v1/breeds/labrador-retriever'"},{"goal":"One breed as Markdown for an LLM","curl":"curl 'https://techtools.cz/dog-atlas-api/v1/breeds/labrador-retriever.md'"}],"endpoints":[{"method":"GET","path":"/breeds","description":"Published breeds with filters and pagination.","params":{"q":"words that must all appear in the name, another name, the origin or a temperament trait","group":"herding | molosser | terrier | dachshund | spitz | scenthound | pointer | retriever | companion | sighthound","size":"Small | Medium | Large | Giant","origin":"country of origin, e.g. Germany","extinct":"true | false","sort":"name (default) | name-desc | popular | updated","page":"1..10000, default 1","per_page":"1..1000, default 50","full":"true to get full records instead of short ones","format":"append .md (or output=md) for a Markdown list"},"returns":"{ data: [breed], meta: { page, per_page, total, total_pages, filters }, links: { next, prev, docs } }","curl":"curl 'https://techtools.cz/dog-atlas-api/v1/breeds?group=herding\u0026sort=popular'"},{"method":"GET","path":"/breeds/{slug}","description":"One breed with every field. Append .md for Markdown.","returns":"{ data: breed }; 404 { error, code: \"not_found\" }","curl":"curl 'https://techtools.cz/dog-atlas-api/v1/breeds/beagle'"},{"method":"GET","path":"/groups","description":"The ten FCI breed groups with labels and breed counts.","curl":"curl 'https://techtools.cz/dog-atlas-api/v1/groups'"},{"method":"GET","path":"/stats","description":"How many breeds, photos, countries; when the atlas last changed.","curl":"curl 'https://techtools.cz/dog-atlas-api/v1/stats'"},{"method":"GET","path":"/dog-atlas-api/docs","description":"This document (also at https://techtools.cz/dog-atlas-api/v1)."},{"method":"GET","path":"/dog-atlas-api/openapi.json","description":"OpenAPI 3.1 description."}],"breed_object":{"slug":"stable id used in every URL","name":"usual English name","url":"the breed's page on techtools.cz","api_url":"this record","also_known_as":"[other names]","kind":"breed | landrace","extinct":"true when the breed no longer exists","group":"{ key, label, fci_group (1-10), fci_group_name }: the FCI group, or the closest one for unrecognised breeds","size":"Small under 10 kg, Medium 10-25 kg, Large 25-45 kg, Giant over 45 kg (adult weight)","origin":"country of origin","countries":"countries of origin per Wikidata","height_cm":"{ min, max } or null","weight_kg":"{ min, max } or null","life_expectancy_years":"{ min, max } or null","temperament":"[3 to 6 traits]","exercise_level":"Low | Medium | High (from the exercise rating)","wikipedia_views_60d":"page views of the Wikipedia article in the last 60 days (popularity)","summary":"one or two sentences","photo":"{ url (1280 px WebP), small_url (640 px), width, height, author, license, license_url, source_url } or null","full_record_only":{"ratings":"energy, exercise, grooming, shedding, trainability, barking, kids, other_dogs: 1 (very low) to 5 (very high)","sections":"{ overview, history, appearance, personality, care, health }: plain text, paragraphs separated by a blank line","coat":"short phrase","colors":"[accepted colours]","fun_fact":"one fact or null","recognition":"{ fci_number, fci_standard_url, akc_url }","sources":"{ wikipedia, wikidata, wikipedia_revision }","profile":"{ written_by, written_at }"}},"about_the_data":"Breeds come from Wikidata (items that are a dog breed and have an English Wikipedia article). Each breed appears once: rows are keyed by Wikidata item, Wikipedia article and name, and items or articles Wikipedia merged are merged here too. Profiles and ratings are written by an AI model (Claude) from the Wikipedia article and Wikidata facts; treat ratings as typical tendencies.","errors":{"shape":"{ error, code, param?, allowed?, docs }","codes":[{"status":404,"code":"not_found","when":"no published breed with that slug"},{"status":422,"code":"invalid_value","when":"group, size, extinct or sort outside the allowed values"},{"status":422,"code":"out_of_range","when":"page or per_page not a whole number in range"},{"status":429,"code":"rate_limited","when":"more than 120 requests in a minute from one IP"}]}}