Httpstat.us API

A simple service for generating various HTTP status codes. Use this API to test how your scripts handle different HTTP responses. Returns the specified HTTP status code on every request.

OpenAPI Specification

httpstat-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: httpstat
  description: |
    A simple service for generating various HTTP status codes.  
    Use this API to test how your scripts handle different HTTP responses.
  version: 1.0.0
servers:
  - url: https://httpstat.us
paths:
  /{statusCode}:
    get:
      summary: Generate a specific HTTP status code
      description: |
        Generates a response with the given HTTP status code.  
        For JSON responses, include the `Accept: application/json` header.
      parameters:
        - name: statusCode
          in: path
          required: true
          description: The HTTP status code to generate.
          schema:
            type: string
            enum:
              - '100'
              - '101'
              - '102'
              - '103'
              - '200'
              - '201'
              - '202'
              - '203'
              - '204'
              - '205'
              - '206'
              - '207'
              - '208'
              - '226'
              - '300'
              - '301'
              - '302'
              - '303'
              - '304'
              - '305'
              - '306'
              - '307'
              - '308'
              - '400'
              - '401'
              - '402'
              - '403'
              - '404'
              - '405'
              - '406'
              - '407'
              - '408'
              - '409'
              - '410'
              - '411'
              - '412'
              - '413'
              - '414'
              - '415'
              - '416'
              - '417'
              - '418'
              - '421'
              - '422'
              - '423'
              - '424'
              - '425'
              - '426'
              - '428'
              - '429'
              - '431'
              - '451'
              - '500'
              - '501'
              - '502'
              - '503'
              - '504'
              - '505'
              - '506'
              - '507'
              - '508'
              - '510'
              - '511'
              - '419'
              - '420'
              - '440'
              - '444'
              - '449'
              - '450'
              - '460'
              - '463'
              - '494'
              - '495'
              - '496'
              - '497'
              - '498'
              - '499'
              - '520'
              - '521'
              - '522'
              - '523'
              - '524'
              - '525'
              - '526'
              - '527'
              - '530'
              - '561'
        - name: sleep
          in: query
          required: false
          description: >-
            Delay the response by the specified duration in milliseconds (max
            230 seconds for hosted instance).
          schema:
            type: integer
            minimum: 0
            maximum: 300000
      responses:
        '200':
          description: OK
          content:
            text/plain: {}
            application/json: {}
        '400':
          description: Bad Request
        default:
          description: Generated HTTP status code
          content:
            text/plain: {}
            application/json: {}
  /random/{range}:
    get:
      summary: Generate a random HTTP status code
      description: |
        Generates a random HTTP status code from the specified range.  
        Duplicate ranges can increase their probability.
      parameters:
        - name: range
          in: path
          required: true
          description: >-
            The range of HTTP status codes to randomize (e.g.,
            `200,201,500-504`).
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            text/plain: {}
            application/json: {}
        default:
          description: Generated random HTTP status code
          content:
            text/plain: {}
            application/json: {}
components:
  parameters:
    X-HttpStatus-Sleep:
      name: X-HttpStatus-Sleep
      in: header
      description: >-
        Delay the response by the specified duration in milliseconds (max 5
        minutes).
      schema:
        type: integer
        minimum: 0
        maximum: 300000
    X-HttpStatus-Response-CustomHeader:
      name: X-HttpStatus-Response-{CustomHeader}
      in: header
      description: Add custom headers to the response.
      schema:
        type: string
  responses:
    DefaultResponse:
      description: Default response
      content:
        text/plain: {}
        application/json: {}