openapi: 3.0.3 info: title: IGDB Companies Reference API description: 'The IGDB (Internet Game Database) API provides programmatic access to a comprehensive video game database, including games, platforms, companies, genres, release dates, covers, screenshots, and user reviews. Authentication uses Twitch OAuth Client Credentials. All requests require a Client-ID header and an Authorization Bearer token. Most endpoints accept POST requests with an Apicalypse query body for filtering, sorting, and field selection.' version: '4.0' contact: name: IGDB Support url: https://www.igdb.com/contact license: name: Terms of Service url: https://api-docs.igdb.com/#terms-of-service servers: - url: https://api.igdb.com/v4 description: IGDB API v4 production security: - ClientID: [] BearerAuth: [] tags: - name: Reference description: Reference data such as keywords, collections, and franchises. paths: /game_modes: post: tags: - Reference summary: Query game modes requestBody: required: true content: text/plain: schema: $ref: '#/components/schemas/ApicalypseQuery' responses: '200': description: A list of game modes. content: application/json: schema: type: array items: type: object '401': $ref: '#/components/responses/Unauthorized' /collections: post: tags: - Reference summary: Query collections requestBody: required: true content: text/plain: schema: $ref: '#/components/schemas/ApicalypseQuery' responses: '200': description: A list of collections. content: application/json: schema: type: array items: type: object '401': $ref: '#/components/responses/Unauthorized' /franchises: post: tags: - Reference summary: Query franchises requestBody: required: true content: text/plain: schema: $ref: '#/components/schemas/ApicalypseQuery' responses: '200': description: A list of franchises. content: application/json: schema: type: array items: type: object '401': $ref: '#/components/responses/Unauthorized' /keywords: post: tags: - Reference summary: Query keywords requestBody: required: true content: text/plain: schema: $ref: '#/components/schemas/ApicalypseQuery' responses: '200': description: A list of keywords. content: application/json: schema: type: array items: type: object '401': $ref: '#/components/responses/Unauthorized' /age_ratings: post: tags: - Reference summary: Query age ratings requestBody: required: true content: text/plain: schema: $ref: '#/components/schemas/ApicalypseQuery' responses: '200': description: A list of age rating records. content: application/json: schema: type: array items: type: object '401': $ref: '#/components/responses/Unauthorized' /websites: post: tags: - Reference summary: Query game websites requestBody: required: true content: text/plain: schema: $ref: '#/components/schemas/ApicalypseQuery' responses: '200': description: A list of website records associated with games. content: application/json: schema: type: array items: type: object '401': $ref: '#/components/responses/Unauthorized' components: schemas: ApicalypseQuery: type: string description: 'Apicalypse query string used to filter, sort, paginate, and select fields on IGDB resources. Example: `fields name,cover.url; where rating > 80; limit 10;`' example: 'fields name,summary,cover.url,first_release_date; where rating > 80; sort rating desc; limit 10;' Error: type: object properties: title: type: string status: type: integer cause: type: string responses: Unauthorized: description: Missing or invalid Client-ID or bearer token. content: application/json: schema: $ref: '#/components/schemas/Error' securitySchemes: ClientID: type: apiKey in: header name: Client-ID description: Twitch developer Client-ID issued for the IGDB API. BearerAuth: type: http scheme: bearer bearerFormat: OAuth2 access token description: Bearer access token obtained via the Twitch OAuth Client Credentials flow.