Library of Congress treaty API

Returns treaty data from the API

OpenAPI Specification

loc-treaty-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  description: 'Congress.gov shares its application programming interface (API) with the public to ingest the Congressional data. <a href="sign-up/" target="_blank">Sign up for an API key</a> from api.data.gov that you can use to access web services provided by Congress.gov. To learn more, view our <a href="https://github.com/LibraryOfCongress/api.congress.gov/" target="_blank">GitHub repository</a>.

    '
  title: Congress.gov amendments treaty API
  version: '3'
servers:
- url: /v3
security:
- ApiKeyAuth: []
tags:
- name: treaty
  description: Returns treaty data from the API
paths:
  /treaty:
    get:
      tags:
      - treaty
      summary: Returns a list of treaties sorted by date of last update.
      description: Returns a list of treaties sorted by date of last update.
      parameters:
      - $ref: '#/components/parameters/format'
      - $ref: '#/components/parameters/offset'
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/fromDateTime'
      - $ref: '#/components/parameters/toDateTime'
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Treaty'
            application/xml:
              schema:
                $ref: '#/components/schemas/Treaty'
        '400':
          description: Invalid status value
  /treaty/{congress}:
    get:
      tags:
      - treaty
      summary: Returns a list of treaties for the specified congress, sorted by date of last update.
      description: Returns a list of treaties for the specified congress, sorted by date of last update.
      parameters:
      - $ref: '#/components/parameters/congress'
      - $ref: '#/components/parameters/format'
      - $ref: '#/components/parameters/offset'
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/fromDateTime'
      - $ref: '#/components/parameters/toDateTime'
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Treaty'
            application/xml:
              schema:
                $ref: '#/components/schemas/Treaty'
        '400':
          description: Invalid status value
  /treaty/{congress}/{treatyNumber}:
    get:
      tags:
      - treaty
      summary: Returns detailed information for a specified treaty.
      description: Returns detailed information for a specified treaty.
      parameters:
      - $ref: '#/components/parameters/congress'
      - $ref: '#/components/parameters/treatyNumber'
      - $ref: '#/components/parameters/format'
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TreatyDetail'
            application/xml:
              schema:
                $ref: '#/components/schemas/TreatyDetail'
        '400':
          description: Invalid status value
  /treaty/{congress}/{treatyNumber}/{treatySuffix}:
    get:
      tags:
      - treaty
      summary: Returns detailed information for a specified partitioned treaty.
      description: Returns detailed information for a specified partitioned treaty.
      parameters:
      - $ref: '#/components/parameters/congress'
      - $ref: '#/components/parameters/treatyNumber'
      - $ref: '#/components/parameters/treatySuffix'
      - $ref: '#/components/parameters/format'
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TreatyDetail'
            application/xml:
              schema:
                $ref: '#/components/schemas/TreatyDetail'
        '400':
          description: Invalid status value
  /treaty/{congress}/{treatyNumber}/actions:
    get:
      tags:
      - treaty
      summary: Returns the list of actions on a specified treaty.
      description: Returns the list of actions on a specified treaty.
      parameters:
      - $ref: '#/components/parameters/congress'
      - $ref: '#/components/parameters/treatyNumber'
      - $ref: '#/components/parameters/format'
      - $ref: '#/components/parameters/offset'
      - $ref: '#/components/parameters/limit'
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TreatyActions'
            application/xml:
              schema:
                $ref: '#/components/schemas/TreatyActions'
        '400':
          description: Invalid status value
  /treaty/{congress}/{treatyNumber}/{treatySuffix}/actions:
    get:
      tags:
      - treaty
      summary: Returns the list of actions on a specified partitioned treaty.
      description: Returns the list of actions on a specified partitioned treaty.
      parameters:
      - $ref: '#/components/parameters/congress'
      - $ref: '#/components/parameters/treatyNumber'
      - $ref: '#/components/parameters/treatySuffix'
      - $ref: '#/components/parameters/format'
      - $ref: '#/components/parameters/offset'
      - $ref: '#/components/parameters/limit'
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TreatyActions'
            application/xml:
              schema:
                $ref: '#/components/schemas/TreatyActions'
        '400':
          description: Invalid status value
  /treaty/{congress}/{treatyNumber}/committees:
    get:
      tags:
      - treaty
      summary: Returns the list of committees associated with a specified treaty.
      description: Returns the list of committees associated with a specified treaty.
      parameters:
      - $ref: '#/components/parameters/congress'
      - $ref: '#/components/parameters/treatyNumber'
      - $ref: '#/components/parameters/format'
      - $ref: '#/components/parameters/offset'
      - $ref: '#/components/parameters/limit'
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TreatyCommittees'
            application/xml:
              schema:
                $ref: '#/components/schemas/TreatyCommittees'
        '400':
          description: Invalid status value
components:
  parameters:
    treatyNumber:
      name: treatyNumber
      in: path
      description: The treaty’s assigned number. For example, the value can be 13.
      required: true
      schema:
        type: integer
    offset:
      name: offset
      in: query
      description: The starting record returned. 0 is the first record.
      required: false
      schema:
        type: integer
    format:
      name: format
      in: query
      description: The data format. Value can be xml or json.
      required: false
      schema:
        type: string
        default: xml
        enum:
        - xml
        - json
    fromDateTime:
      name: fromDateTime
      in: query
      description: 'The starting timestamp to filter by update date. Use format: YYYY-MM-DDT00:00:00Z.'
      required: false
      schema:
        type: string
    toDateTime:
      name: toDateTime
      in: query
      description: 'The ending timestamp to filter by update date. Use format: YYYY-MM-DDT00:00:00Z.'
      required: false
      schema:
        type: string
    treatySuffix:
      name: treatySuffix
      in: path
      description: The treaty’s partition letter value. For example, the value can be A.
      required: true
      schema:
        type: string
    congress:
      name: congress
      in: path
      description: The congress number. For example, can be 117.
      required: true
      schema:
        type: integer
        format: int32
    limit:
      name: limit
      in: query
      description: The number of records returned. The maximum limit is 250.
      required: false
      schema:
        type: integer
  schemas:
    Treaty:
      type: object
      properties:
        treaties:
          type: array
          items:
            $ref: '#/components/schemas/treaty'
    treatyCommittee:
      type: object
      properties:
        activities:
          type: array
          items:
            type: object
            properties:
              date:
                type: string
                format: date
                example: '1965-10-19T04:00:00Z'
              name:
                type: string
                example: Reported By
        chamber:
          type: string
          example: Senate
        name:
          type: string
          example: Foreign Relations Committee
        subcommittees:
          type: array
        systemCode:
          type: string
          example: ssfr00
        type:
          type: string
          example: Standing
        url:
          type: string
          example: https://api.congress.gov/v3/committee/senate/ssfr00?format=json
    TreatyCommittees:
      type: object
      properties:
        treatyCommittees:
          type: array
          items:
            $ref: '#/components/schemas/treatyCommittee'
    treaty:
      type: object
      properties:
        congressReceived:
          type: integer
          example: 89
        congressConsidered:
          type: integer
          example: 89
        number:
          type: integer
          example: 3
        parts:
          type: object
        suffix:
          type: string
          example: ''
        topic:
          type: string
          example: Dispute Settlement and Arbitration
        transmittedDate:
          type: string
          format: date-time
          example: '1965-05-17T00:00:00Z'
        updateDate:
          type: string
          format: date-time
          example: '2024-12-11T00:18:16Z'
        url:
          type: string
          format: url
          example: https://api.congress.gov/v3/treaty/89/3?format=json
    TreatyDetail:
      type: object
      properties:
        treaty:
          type: object
          properties:
            actions:
              type: object
              properties:
                count:
                  type: integer
                  example: 3
                url:
                  type: string
                  format: url
                  example: https://api.congress.gov/v3/treaty/89/7/actions?format=json
            congressConsidered:
              type: integer
              example: 89
            congressReceived:
              type: integer
              example: 89
            countriesParties:
              type: array
              items:
                type: object
                properties:
                  name:
                    type: string
                    example: Belgium
            inForceDate:
              type: string
              example: ''
            indexTerms:
              type: array
              items:
                type: object
                properties:
                  name:
                    type: string
                    example: ENGLISH
            number:
              type: integer
              example: 7
            oldNumber:
              type: string
              example: G. 89-1
            oldNumberDisplayName:
              type: string
              example: Ex. G, 89th Congress, 1st Session
            parts:
              type: object
            relatedDocs:
              type: array
            resolutionText:
              type: string
              example: ''
            suffix:
              type: string
              example: ''
            titles:
              type: array
              items:
                type: object
                properties:
                  title:
                    type: string
                    example: PROTOCOL MODIFYING CONVENTION WITH BELGIUM FOR THE AVOIDANCE OF DOUBLE TAXATION
                  titleType:
                    type: string
                    example: Treaty - Short Title
            topic:
              type: string
              example: Taxation
            transmitted:
              type: string
              format: date-time
              example: '1965-08-05T00:00:00Z'
            updateDate:
              type: string
              format: date-time
              example: '2022-02-26T16:25:25Z'
    TreatyActions:
      type: object
      properties:
        actions:
          type: array
          items:
            $ref: '#/components/schemas/treatyAction'
    senatecommittee:
      type: object
      properties:
        name:
          type: string
          example: Armed Services Committee
        systemCode:
          type: string
          example: ssas00
        url:
          type: string
          format: url
          example: https://api.congress.gov/v3/committee/senate/ssas00?format=json
    treatyAction:
      type: object
      properties:
        actionCode:
          type: string
          example: S05291
        actionDate:
          type: string
          format: date
          example: '2022-08-03'
        committee:
          $ref: '#/components/schemas/senatecommittee'
        text:
          type: string
          example: 'Resolution of advice and consent to ratification agreed to as amended in Senate by Yea-Nay Vote. 95 - 1. Record Vote Number: 282.'
        type:
          type: string
          example: Floor
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: query
      name: api_key