openapi: 3.0.3
info:
title: Dog CEO Breed API
description: 'Free REST API providing random dog images organized by breed and sub-breed from 120+ breeds. Backed by the Stanford Dogs Dataset and community-contributed photos. No authentication or API key required. All endpoints return JSON with image URLs served via CDN. Open-source under the MIT license.
'
version: 1.0.0
contact:
name: Dog CEO API
url: https://dog.ceo/dog-api/
license:
name: MIT
url: https://github.com/ElliottLandsborough/dog-ceo-api/blob/main/LICENSE
servers:
- url: https://dog.ceo/api
description: Production server
security: []
tags:
- name: Breed
description: Operations for fetching images from a specific breed
paths:
/breed/{breed}/images:
get:
operationId: getBreedImages
summary: All images by breed
description: Returns an array of all image URLs for a specific breed.
tags:
- Breed
parameters:
- $ref: '#/components/parameters/breed'
responses:
'200':
description: Successful response with all breed images
content:
application/json:
schema:
$ref: '#/components/schemas/MultipleImagesResponse'
example:
message:
- https://images.dog.ceo/breeds/hound-afghan/n02088094_1003.jpg
- https://images.dog.ceo/breeds/hound-afghan/n02088094_1007.jpg
status: success
'404':
description: Breed not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
/breed/{breed}/images/random:
get:
operationId: getBreedRandomImage
summary: Random image from a breed
description: Returns a single random dog image from a specific breed.
tags:
- Breed
parameters:
- $ref: '#/components/parameters/breed'
responses:
'200':
description: Successful response with a random breed image URL
content:
application/json:
schema:
$ref: '#/components/schemas/SingleImageResponse'
example:
message: https://images.dog.ceo/breeds/hound-afghan/n02088094_1003.jpg
status: success
'404':
description: Breed not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
/breed/{breed}/images/random/{count}:
get:
operationId: getBreedRandomImages
summary: Multiple random images from a breed
description: 'Returns multiple random dog images from a specific breed. Maximum count is 50.
'
tags:
- Breed
parameters:
- $ref: '#/components/parameters/breed'
- name: count
in: path
required: true
description: Number of images to return (max 50)
schema:
type: integer
minimum: 1
maximum: 50
example: 3
responses:
'200':
description: Successful response with multiple random breed images
content:
application/json:
schema:
$ref: '#/components/schemas/MultipleImagesResponse'
'404':
description: Breed not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
components:
parameters:
breed:
name: breed
in: path
required: true
description: 'The breed name (lowercase). Use the /breeds/list/all endpoint to get all valid breed names.
'
schema:
type: string
example: hound
schemas:
ErrorResponse:
type: object
required:
- message
- status
properties:
message:
type: string
description: Error message describing what went wrong
example: Breed not found (master breed does not exist)
status:
type: string
enum:
- error
example: error
MultipleImagesResponse:
type: object
required:
- message
- status
properties:
message:
type: array
items:
type: string
format: uri
description: Array of dog image URLs
example:
- https://images.dog.ceo/breeds/retriever-chesapeake/n02099849_1068.jpg
- https://images.dog.ceo/breeds/vizsla/n02100583_1214.jpg
status:
$ref: '#/components/schemas/ApiStatus'
ApiStatus:
type: string
enum:
- success
- error
description: Indicates whether the API call was successful or encountered an error
SingleImageResponse:
type: object
required:
- message
- status
properties:
message:
type: string
format: uri
description: URL of the dog image
example: https://images.dog.ceo/breeds/terrier-silky/n02097658_2882.jpg
status:
$ref: '#/components/schemas/ApiStatus'