openapi: 3.0.3 info: title: The Cat Breeds API description: The Cat API is an open, free, read and write API all about cats. Access thousands of cat images, vote on favorites, manage collections, explore breed information, and upload your own cat images. Requires a free API key for write operations. version: 1.0.0 contact: name: The Cat API Support url: https://thecatapi.com/ license: name: Free Tier Available url: https://thecatapi.com/pricing servers: - url: https://api.thecatapi.com/v1 description: The Cat API Production Server security: - ApiKeyHeader: [] tags: - name: Breeds description: List, search, and retrieve cat breed information. paths: /breeds: get: operationId: listBreeds summary: List Cat Breeds description: Returns a list of all cat breeds with detailed information including origin, temperament, and characteristics. tags: - Breeds parameters: - name: limit in: query required: false schema: type: integer default: 10 maximum: 100 - name: page in: query required: false schema: type: integer default: 0 - name: attach_breed in: query required: false schema: type: integer enum: - 0 - 1 responses: '200': description: List of cat breeds. content: application/json: schema: type: array items: $ref: '#/components/schemas/Breed' /breeds/search: get: operationId: searchBreeds summary: Search Cat Breeds description: Search for cat breeds by name. tags: - Breeds parameters: - name: q in: query required: true description: Breed name search query. schema: type: string example: Siamese - name: attach_breed in: query required: false schema: type: integer enum: - 0 - 1 responses: '200': description: Matching breeds. content: application/json: schema: type: array items: $ref: '#/components/schemas/Breed' /breeds/{breed_id}: get: operationId: getBreed summary: Get Breed description: Retrieve detailed information about a specific cat breed by its ID. tags: - Breeds parameters: - name: breed_id in: path required: true description: Unique breed identifier (e.g., beng for Bengal). schema: type: string responses: '200': description: Breed details. content: application/json: schema: $ref: '#/components/schemas/Breed' '404': description: Breed not found. components: schemas: Category: type: object description: An image category tag. properties: id: type: integer description: Unique identifier of the category. name: type: string description: Name of the category. required: - id - name Image: type: object description: A cat image with metadata. properties: id: type: string description: Unique identifier of the image. url: type: string format: uri description: Full URL of the image. width: type: integer description: Width of the image in pixels. height: type: integer description: Height of the image in pixels. breeds: type: array description: Breed information associated with this image. items: $ref: '#/components/schemas/Breed' categories: type: array items: $ref: '#/components/schemas/Category' required: - id - url Breed: type: object description: Information about a cat breed. properties: id: type: string description: Unique breed identifier (e.g., beng, abys). name: type: string description: Name of the breed. cfa_url: type: string format: uri description: Cat Fanciers' Association profile URL. vetstreet_url: type: string format: uri vcahospitals_url: type: string format: uri temperament: type: string description: Comma-separated list of temperament traits. origin: type: string description: Country of origin. country_codes: type: string description: ISO country code(s) for the breed's origin. description: type: string description: Narrative description of the breed. life_span: type: string description: Expected lifespan range (e.g., "12-15"). indoor: type: integer enum: - 0 - 1 lap: type: integer enum: - 0 - 1 adaptability: type: integer minimum: 1 maximum: 5 affection_level: type: integer minimum: 1 maximum: 5 child_friendly: type: integer minimum: 1 maximum: 5 dog_friendly: type: integer minimum: 1 maximum: 5 energy_level: type: integer minimum: 1 maximum: 5 grooming: type: integer minimum: 1 maximum: 5 health_issues: type: integer minimum: 1 maximum: 5 intelligence: type: integer minimum: 1 maximum: 5 shedding_level: type: integer minimum: 1 maximum: 5 social_needs: type: integer minimum: 1 maximum: 5 stranger_friendly: type: integer minimum: 1 maximum: 5 vocalisation: type: integer minimum: 1 maximum: 5 wikipedia_url: type: string format: uri image: $ref: '#/components/schemas/Image' required: - id - name securitySchemes: ApiKeyHeader: type: apiKey in: header name: x-api-key description: API key obtained by registering at https://thecatapi.com/signup