Animals — entry 005 of 20
Dog Facts
This project ("Dog API by kinduff") started in 2016 as a small Sinatra service at dog-api.kinduff.com; that original endpoint is now broken — it responds but always returns an empty fact list — and has been superseded by a rebuilt V2 API at dogapi.dog, which is what backs this entry now. The live JSON:API-formatted /api/v2/facts endpoint returns one or more random dog facts with no signup or key required. It also lists 283 dog breeds and 9 breed groups; the maintainer funds hosting through voluntary Buy Me a Coffee donations rather than a paid tier.
Dog API by kinduff serves random dog facts and a catalogue of 283 dog breeds. All responses use the JSON:API format. A GET call to /facts returns one or more facts. A separate /breeds endpoint pages through the catalogue. It needs no signup or key, and donations fund the hosting.
GreatAPIs Score
Auth quickstart
- No API key required — requests are public and keyless.
Your key is stored only in this browser (localStorage) and sent directly to the API — never to greatapis.
Endpoints
Breeds4
Over 340 dog breeds, each one belonging to a group.
GET/breedslist breeds
| Name | In | Required | Type |
|---|---|---|---|
page[number] | query | no | integer |
page[size] | query | no | integer |
filter[has_images] | query | no | boolean |
| Status | Description | Schema |
|---|---|---|
200 | successful | BreedCollection |
GET/breeds/imageget a random breed image
| Name | In | Required | Type |
|---|---|---|---|
size | query | no | string |
| Status | Description | Schema |
|---|---|---|
302 | redirect to the image file | — |
404 | no images have been imported | — |
GET/breeds/{id}get breed
| Name | In | Required | Type |
|---|---|---|---|
id | path | yes | string |
| Status | Description | Schema |
|---|---|---|
200 | successful | BreedResource |
404 | no breed with that id | — |
GET/breeds/{id}/imageget breed image
| Name | In | Required | Type |
|---|---|---|---|
id | path | yes | string |
size | query | no | string |
random | query | no | boolean |
| Status | Description | Schema |
|---|---|---|
302 | redirect to the image file | — |
404 | the breed has no images, or does not exist | — |
Groups2
The breed groups, each one listing the breeds it contains.
GET/groupslist groups
| Name | In | Required | Type |
|---|---|---|---|
page[number] | query | no | integer |
page[size] | query | no | integer |
| Status | Description | Schema |
|---|---|---|
200 | successful | GroupCollection |
GET/groups/{id}get group
| Name | In | Required | Type |
|---|---|---|---|
id | path | yes | string |
| Status | Description | Schema |
|---|---|---|
200 | successful | GroupResource |
404 | no group with that id | — |
Facts1
Random dog facts.
GET/factslist facts
| Name | In | Required | Type |
|---|---|---|---|
limit | query | no | integer |
| Status | Description | Schema |
|---|---|---|
200 | successful | FactCollection |
Try it
Developer reference
https://dogapi.dog/api/v260 requests/minute per client
- GET/facts
- GET/breeds
- GET/groups
Gotchas & limits
- The response is JSON:API, not plain JSON. Each fact sits under
data[].attributes.body. The content type isapplication/vnd.api+json(confirmed live). - Add
?limit=Nto get more than one fact per call. Confirmed live:/facts?limit=2returned two entries in thedataarray. GET /breedsdoes not return all 283 breeds at once. It returns 30 per page (confirmed live: page 1 of 10). Use?page[number]=to step through the pages. Use?page[size]=to change the page size. Confirmed live:page[size]=2returned 2 records across 142 pages.- Pagination data lives in
meta.pagination(current,next,last,records). A matchinglinksobject holds the page URLs (self,current,next,last). Both were confirmed live.