The Cat API Breeds API

List, search, and retrieve cat breed information.

OpenAPI Specification

the-cat-api-breeds-api-openapi.yml Raw ↑
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