Cat Facts API Facts API

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

OpenAPI Specification

catfact-facts-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Cat Breeds Facts 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: Facts
paths:
  /facts:
    get:
      operationId: getFacts
      summary: Get a paginated list of cat facts
      description: Returns a paginated list of cat facts.
      parameters:
      - name: max_length
        in: query
        required: false
        description: Maximum length of returned facts in characters.
        schema:
          type: integer
          minimum: 1
      - name: limit
        in: query
        required: false
        description: Number of facts 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 facts
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FactList'
              example:
                current_page: 1
                data:
                - fact: Unlike dogs, cats do not have a sweet tooth. Scientists believe this is due to a mutation in a key taste receptor.
                  length: 114
                - fact: When a cat chases its prey, it keeps its head level. Dogs and humans bob their heads up and down.
                  length: 97
                first_page_url: https://catfact.ninja/facts?page=1
                from: 1
                last_page: 166
                last_page_url: https://catfact.ninja/facts?page=166
                next_page_url: https://catfact.ninja/facts?page=2
                path: https://catfact.ninja/facts
                per_page: 10
                prev_page_url: null
                to: 10
                total: 1656
      tags:
      - Facts
components:
  schemas:
    Fact:
      type: object
      description: A single cat fact with its character length.
      required:
      - fact
      - length
      properties:
        fact:
          type: string
          description: The cat fact text.
          example: In multi-cat households, cats of the opposite sex usually get along better.
        length:
          type: integer
          description: Character length of the fact.
          example: 75
    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.
    FactList:
      type: object
      description: Paginated list of cat facts (Laravel-style pagination).
      properties:
        current_page:
          type: integer
          description: Current page number.
          example: 1
        data:
          type: array
          description: Array of cat facts on this page.
          items:
            $ref: '#/components/schemas/Fact'
        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: 166
        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 facts.
          example: 1656