Dog CEO API
Info
- To add your own images submit a pull request to https://github.com/jigsawpieces/dog-api-images
- API requests are cached from lambda https://github.com/ElliottLandsborough/dog-ceo-api-golang
Examples
- Vanilla JS: https://codepen.io/elliottlan/pen/MNEWNx
- Jquery: https://codepen.io/elliottlan/pen/KOXKLG
- Flutter: https://github.com/LIVELUCKY/dogs
- Node.js: https://github.com/mrbrunelli/dog-time-decorator
Stats
Dependencies
- php 8.1+
- Symfony 6
- modules
- composer
- run './bin/phpunit' for unit tests (composer dump-env test)
$ composer check-platform-reqs
Checking platform requirements for packages in the vendor dir
composer-plugin-api 2.3.0 success
composer-runtime-api 2.2.2 success
ext-ctype 8.1.12 success
ext-dom 20031129 success
ext-filter 8.1.12 success
ext-iconv 8.1.12 success
ext-json 8.1.12 success
ext-libxml 8.1.12 success
ext-mbstring * success provided by symfony/polyfill-mbstring
ext-phar 8.1.12 success
ext-tokenizer 8.1.12 success
ext-xml 8.1.12 success
ext-xmlwriter 8.1.12 success
ext-yaml 2.2.2 success
php 8.1.12 success
Setup
- Clone repo
- composer install
- cd public
- php -S 127.0.0.1:6969
.env.local
DOG_CEO_CACHE_KEY="something-really-secure-lol"
DOG_CEO_LAMBDA_URI=https://example.execute-api.us-east-1.amazonaws.com/dev/
Cache clear:
$ curl -X GET http://127.0.0.1:8000/cache-clear -H 'auth-key: something-really-secure-lol'
Endpoints
/breeds/list/all
List all breed names including sub breeds.
/breeds/list/all/random
Get random breed including any sub breeds.
/breeds/list/all/random/10
Get 10 random breeds including any sub breeds.
/breeds/list
List all master breed names.
/breeds/list/random
Get single random master breed.
/breeds/list/random/10
Get 10 random master breeds.
/breed/{breed}/list
List sub breeds.
/breed/{breed}/list/random
List random sub breed.
/breed/{breed}/list/random/10
List 10 random sub breeds.
/breed/{breed}
Get master breed info (data is incomplete, see content folder).
/breed/{breed}/{breed2}
Get sub breed info (data is incomplete, see content folder).
/breeds/image/random
Random image from any breed.
/breeds/image/random/3
Get 3 random images from any breed (max. 50)
/breed/{breed}/images
Get all breed images.
/breed/{breed}/images/random
Get random image from a breed (and all its sub-breeds).
/breed/{breed}/images/random/4
Get 4 random images from a breed (and all its sub-breeds).
/breed/{breed}/{breed2}/images
Get all images from a sub breed.
/breed/{breed}/{breed2}/images/random
Get random image from a sub breed.
/breed/{breed}/{breed2}/images/random/5
Get 5 random images from a sub breed.
Beta/Unfinished Endpoints
These endpoints might change in the future...
Alt tags (beta)
https://dog.ceo/api/breeds/image/random/alt
https://dog.ceo/api/breeds/image/random/1/alt
https://dog.ceo/api/breeds/image/random/9/alt
https://dog.ceo/api/breed/hound/images/alt
https://dog.ceo/api/breed/hound/images/random/1/alt
https://dog.ceo/api/breed/hound/images/random/9/alt
https://dog.ceo/api/breed/hound/afghan/images/alt
https://dog.ceo/api/breed/hound/afghan/images/random/alt
XML Responses (beta, unfinished)
Add 'Content-Type' request header containing 'application/xml' to any endpoint.