Cat Facts API Breeds API

The Breeds API from Cat Facts API — 1 operation(s) for breeds.

OpenAPI Specification

catfact-breeds-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Cat Facts Breeds API
  description: Free REST API providing random cat facts, breed information, and cat-related trivia for developers building fun applications and learning APIs. No authentication required; CORS enabled for frontend use. Endpoints return paginated JSON data with configurable limits and max-length filters.
  version: 1.0.0
  contact:
    url: https://catfact.ninja/
  license:
    name: MIT
    url: https://github.com/alexwohlbruck/cat-facts/blob/master/LICENSE
servers:
- url: https://catfact.ninja
  description: Production server
tags:
- name: Breeds
paths:
  /breeds:
    get:
      operationId: getBreeds
      summary: Get a paginated list of cat breeds
      description: Returns a paginated list of cat breeds with details.
      parameters:
      - name: limit
        in: query
        required: false
        description: Number of breeds to return per page.
        schema:
          type: integer
          minimum: 1
          maximum: 1000
          default: 10
      - name: page
        in: query
        required: false
        description: Page number for pagination.
        schema:
          type: integer
          minimum: 1
          default: 1
      responses:
        '200':
          description: Paginated list of cat breeds
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BreedList'
              example:
                current_page: 1
                data:
                - breed: Abyssinian
                  country: Ethiopia
                  origin: Natural/Standard
                  coat: Short
                  pattern: Ticked
                - breed: Aegean
                  country: Greece
                  origin: Natural/Standard
                  coat: Semi-long
                  pattern: Bi- or tri-colored
                first_page_url: https://catfact.ninja/breeds?page=1
                from: 1
                last_page: 49
                last_page_url: https://catfact.ninja/breeds?page=49
                next_page_url: https://catfact.ninja/breeds?page=2
                path: https://catfact.ninja/breeds
                per_page: 10
                prev_page_url: null
                to: 10
                total: 487
      tags:
      - Breeds
components:
  schemas:
    BreedList:
      type: object
      description: Paginated list of cat breeds (Laravel-style pagination).
      properties:
        current_page:
          type: integer
          description: Current page number.
          example: 1
        data:
          type: array
          description: Array of cat breeds on this page.
          items:
            $ref: '#/components/schemas/Breed'
        first_page_url:
          type: string
          format: uri
          description: URL of the first page.
        from:
          type: integer
          description: First item number in current page.
          example: 1
        last_page:
          type: integer
          description: Last page number.
          example: 49
        last_page_url:
          type: string
          format: uri
          description: URL of the last page.
        links:
          type: array
          description: Pagination links.
          items:
            $ref: '#/components/schemas/PaginationLink'
        next_page_url:
          type: string
          format: uri
          nullable: true
          description: URL of the next page, or null if on last page.
        path:
          type: string
          format: uri
          description: Base path for this resource.
        per_page:
          type: integer
          description: Number of items per page.
          example: 10
        prev_page_url:
          type: string
          format: uri
          nullable: true
          description: URL of the previous page, or null if on first page.
        to:
          type: integer
          description: Last item number in current page.
          example: 10
        total:
          type: integer
          description: Total number of breeds.
          example: 487
    PaginationLink:
      type: object
      description: A single pagination link entry.
      properties:
        url:
          type: string
          format: uri
          nullable: true
          description: URL for this page link.
        label:
          type: string
          description: Display label for this link (e.g. page number or Previous/Next).
        active:
          type: boolean
          description: Whether this link represents the current page.
    Breed:
      type: object
      description: Information about a cat breed.
      required:
      - breed
      properties:
        breed:
          type: string
          description: Name of the cat breed.
          example: Abyssinian
        country:
          type: string
          description: Country of origin.
          example: Ethiopia
        origin:
          type: string
          description: Origin type (e.g. Natural/Standard, Mutation, Hybrid).
          example: Natural/Standard
        coat:
          type: string
          description: Coat length description.
          example: Short
        pattern:
          type: string
          description: Coat pattern description.
          example: Ticked