Holiday API Holidays API

Public holidays and observances for countries, states, and provinces.

Documentation

Specifications

Schemas & Data

Other Resources

OpenAPI Specification

holidays-holidays-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Holiday Countries Holidays API
  description: Holidays are hard. We make them easy.
  termsOfService: https://holidayapi.com/terms
  contact:
    name: Holiday API
    email: hello@holidayapi.com
  version: '1.0'
servers:
- url: https://holidayapi.com
  description: Holiday API v1
tags:
- name: Holidays
  description: Public holidays and observances for countries, states, and provinces.
paths:
  /v1/holidays:
    get:
      operationId: listHolidays
      tags:
      - Holidays
      summary: List Holidays
      description: Retrieves a list of public holidays and observances for countries, states and provinces.
      externalDocs:
        description: Developer Documentation
        url: https://holidayapi.com/docs
      parameters:
      - name: key
        description: Your API key.
        required: true
        in: query
        schema:
          type: string
          format: uuid
        example: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
      - name: country
        description: For countries, ISO 3166-1 alpha-2 or ISO 3166-1 alpha-3 format. For subdivisions, ISO 3166-2 format. Accepts up to 10 comma separated values.
        required: true
        in: query
        schema:
          type: string
        example: US
      - name: year
        description: ISO 8601 format
        required: true
        in: query
        schema:
          type: integer
          format: int32
        example: 2015
      - name: month
        description: 1 or 2 digit month (1-12)
        required: false
        in: query
        schema:
          type: integer
          format: int32
        example: 7
      - name: day
        description: 1 or 2 digit day (1-31 depending on the month). Must be used with month.
        required: false
        in: query
        schema:
          type: integer
          format: int32
        example: 4
      - name: public
        description: Return only public holidays.
        required: false
        in: query
        schema:
          type: boolean
          default: false
        example: true
      - name: subdivisions
        description: Return state / province holidays alongside countrywide holidays. Available on our States & Provinces plan.
        required: false
        in: query
        schema:
          type: boolean
          default: false
        example: true
      - name: search
        description: Search holidays by name.
        required: false
        in: query
        schema:
          type: string
          minimum: 5
        example: Independence Day
      - name: language
        description: ISO 639-1 format (with exceptions).
        required: false
        in: query
        schema:
          type: string
        example: en
      - name: previous
        description: Return the first day of holidays that occur before the specific date. month and day are required. Cannot be used with upcoming.
        required: false
        in: query
        schema:
          type: boolean
        example: true
      - name: upcoming
        description: Return the first day of holidays that occur after the specific date. month and day are required. Cannot be used with previous.
        required: false
        in: query
        schema:
          type: boolean
        example: true
      - name: format
        description: Response format.
        required: false
        in: query
        schema:
          type: string
          default: json
          enum:
          - csv
          - json
          - php
          - tsv
          - yaml
          - xml
        example: json
      - name: pretty
        description: Prettifies results to be more human-readable.
        required: false
        in: query
        schema:
          type: boolean
          default: false
        example: true
      responses:
        '200':
          description: Success! Everything is A-OK.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/holidays'
components:
  schemas:
    holidays:
      allOf:
      - $ref: '#/components/schemas/response'
      - type: object
        required:
        - holidays
        properties:
          holidays:
            type: array
            items:
              $ref: '#/components/schemas/holiday'
    response:
      type: object
      required:
      - status
      - requests
      properties:
        status:
          type: integer
          format: int32
          example: 200
        requests:
          type: object
          required:
          - used
          - available
          - resets
          properties:
            used:
              type: integer
              format: int32
              example: 136
            available:
              type: integer
              format: int32
              example: 864
            resets:
              type: string
              example: '2019-09-01 00:00:00'
        error:
          type: string
          example: An error has occurred.
        warning:
          type: string
          example: An warning has occurred.
    holiday:
      type: object
      required:
      - name
      - date
      - observed
      - public
      - country
      - uuid
      - weekday
      properties:
        name:
          type: string
          example: Independence Day
        date:
          type: string
          format: date
          example: '2015-07-04'
        observed:
          type: string
          format: date
          example: '2015-07-03'
        public:
          type: boolean
          example: true
        country:
          type: string
          example: US
        uuid:
          type: string
          format: uuid
          example: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
        weekday:
          $ref: '#/components/schemas/weekday'
        subdivisions:
          type: array
          items:
            type: string
            example:
            - US-FL
            - US-TX
    weekday:
      type: object
      required:
      - date
      - observed
      properties:
        date:
          type: object
          required:
          - name
          - numeric
          properties:
            name:
              type: string
              example: Saturday
            numeric:
              type: string
              example: '6'
        observed:
          type: object
          required:
          - name
          - numeric
          properties:
            name:
              type: string
              example: Friday
            numeric:
              type: integer
              format: int32
              example: 5