{ "openapi": "3.0.0", "info": { "title": "Giant Bomb API", "description": "The Giant Bomb API provides access to video game data including games, platforms, characters, companies, franchises, reviews, and videos. Giant Bomb is a video game website and wiki that covers video game news, reviews, and features.", "version": "1.0.0", "contact": { "name": "Giant Bomb API Support", "url": "https://www.giantbomb.com/api/" } }, "servers": [ { "url": "https://www.giantbomb.com/api", "description": "Giant Bomb API Production Server" } ], "security": [{"apiKeyQuery": []}], "tags": [ {"name": "Games", "description": "Access to video game data"}, {"name": "Platforms", "description": "Access to platform data"}, {"name": "Characters", "description": "Access to character data"}, {"name": "Companies", "description": "Access to company data"}, {"name": "Franchises", "description": "Access to franchise data"}, {"name": "Reviews", "description": "Access to game reviews"}, {"name": "Videos", "description": "Access to videos"}, {"name": "Releases", "description": "Access to game release data"}, {"name": "Search", "description": "Search across all resources"} ], "paths": { "/games/": { "get": { "summary": "Get games", "description": "Returns a list of games", "operationId": "getGames", "tags": ["Games"], "parameters": [ {"$ref": "#/components/parameters/format"}, {"$ref": "#/components/parameters/field_list"}, {"$ref": "#/components/parameters/limit"}, {"$ref": "#/components/parameters/offset"}, {"$ref": "#/components/parameters/sort"}, {"$ref": "#/components/parameters/filter"} ], "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": {"$ref": "#/components/schemas/ApiResponse"} } } } } } }, "/game/{guid}/": { "get": { "summary": "Get single game", "description": "Returns a single game", "operationId": "getGame", "tags": ["Games"], "parameters": [ { "name": "guid", "in": "path", "required": true, "description": "Game GUID", "schema": {"type": "string"} }, {"$ref": "#/components/parameters/format"}, {"$ref": "#/components/parameters/field_list"} ], "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": {"$ref": "#/components/schemas/ApiResponse"} } } } } } }, "/platforms/": { "get": { "summary": "Get platforms", "description": "Returns a list of platforms", "operationId": "getPlatforms", "tags": ["Platforms"], "parameters": [ {"$ref": "#/components/parameters/format"}, {"$ref": "#/components/parameters/field_list"}, {"$ref": "#/components/parameters/limit"}, {"$ref": "#/components/parameters/offset"}, {"$ref": "#/components/parameters/sort"}, {"$ref": "#/components/parameters/filter"} ], "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": {"$ref": "#/components/schemas/ApiResponse"} } } } } } }, "/platform/{guid}/": { "get": { "summary": "Get single platform", "description": "Returns a single platform", "operationId": "getPlatform", "tags": ["Platforms"], "parameters": [ { "name": "guid", "in": "path", "required": true, "description": "Platform GUID", "schema": {"type": "string"} }, {"$ref": "#/components/parameters/format"}, {"$ref": "#/components/parameters/field_list"} ], "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": {"$ref": "#/components/schemas/ApiResponse"} } } } } } }, "/characters/": { "get": { "summary": "Get characters", "description": "Returns a list of characters", "operationId": "getCharacters", "tags": ["Characters"], "parameters": [ {"$ref": "#/components/parameters/format"}, {"$ref": "#/components/parameters/field_list"}, {"$ref": "#/components/parameters/limit"}, {"$ref": "#/components/parameters/offset"}, {"$ref": "#/components/parameters/sort"}, {"$ref": "#/components/parameters/filter"} ], "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": {"$ref": "#/components/schemas/ApiResponse"} } } } } } }, "/character/{guid}/": { "get": { "summary": "Get single character", "description": "Returns a single character", "operationId": "getCharacter", "tags": ["Characters"], "parameters": [ { "name": "guid", "in": "path", "required": true, "description": "Character GUID", "schema": {"type": "string"} }, {"$ref": "#/components/parameters/format"}, {"$ref": "#/components/parameters/field_list"} ], "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": {"$ref": "#/components/schemas/ApiResponse"} } } } } } }, "/companies/": { "get": { "summary": "Get companies", "description": "Returns a list of companies", "operationId": "getCompanies", "tags": ["Companies"], "parameters": [ {"$ref": "#/components/parameters/format"}, {"$ref": "#/components/parameters/field_list"}, {"$ref": "#/components/parameters/limit"}, {"$ref": "#/components/parameters/offset"}, {"$ref": "#/components/parameters/sort"}, {"$ref": "#/components/parameters/filter"} ], "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": {"$ref": "#/components/schemas/ApiResponse"} } } } } } }, "/company/{guid}/": { "get": { "summary": "Get single company", "description": "Returns a single company", "operationId": "getCompany", "tags": ["Companies"], "parameters": [ { "name": "guid", "in": "path", "required": true, "description": "Company GUID", "schema": {"type": "string"} }, {"$ref": "#/components/parameters/format"}, {"$ref": "#/components/parameters/field_list"} ], "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": {"$ref": "#/components/schemas/ApiResponse"} } } } } } }, "/franchises/": { "get": { "summary": "Get franchises", "description": "Returns a list of franchises", "operationId": "getFranchises", "tags": ["Franchises"], "parameters": [ {"$ref": "#/components/parameters/format"}, {"$ref": "#/components/parameters/field_list"}, {"$ref": "#/components/parameters/limit"}, {"$ref": "#/components/parameters/offset"}, {"$ref": "#/components/parameters/sort"}, {"$ref": "#/components/parameters/filter"} ], "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": {"$ref": "#/components/schemas/ApiResponse"} } } } } } }, "/franchise/{guid}/": { "get": { "summary": "Get single franchise", "description": "Returns a single franchise", "operationId": "getFranchise", "tags": ["Franchises"], "parameters": [ { "name": "guid", "in": "path", "required": true, "description": "Franchise GUID", "schema": {"type": "string"} }, {"$ref": "#/components/parameters/format"}, {"$ref": "#/components/parameters/field_list"} ], "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": {"$ref": "#/components/schemas/ApiResponse"} } } } } } }, "/reviews/": { "get": { "summary": "Get reviews", "description": "Returns a list of reviews", "operationId": "getReviews", "tags": ["Reviews"], "parameters": [ {"$ref": "#/components/parameters/format"}, {"$ref": "#/components/parameters/field_list"}, {"$ref": "#/components/parameters/limit"}, {"$ref": "#/components/parameters/offset"}, {"$ref": "#/components/parameters/sort"}, {"$ref": "#/components/parameters/filter"} ], "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": {"$ref": "#/components/schemas/ApiResponse"} } } } } } }, "/review/{guid}/": { "get": { "summary": "Get single review", "description": "Returns a single review", "operationId": "getReview", "tags": ["Reviews"], "parameters": [ { "name": "guid", "in": "path", "required": true, "description": "Review GUID", "schema": {"type": "string"} }, {"$ref": "#/components/parameters/format"}, {"$ref": "#/components/parameters/field_list"} ], "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": {"$ref": "#/components/schemas/ApiResponse"} } } } } } }, "/videos/": { "get": { "summary": "Get videos", "description": "Returns a list of videos", "operationId": "getVideos", "tags": ["Videos"], "parameters": [ {"$ref": "#/components/parameters/format"}, {"$ref": "#/components/parameters/field_list"}, {"$ref": "#/components/parameters/limit"}, {"$ref": "#/components/parameters/offset"}, {"$ref": "#/components/parameters/sort"}, {"$ref": "#/components/parameters/filter"} ], "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": {"$ref": "#/components/schemas/ApiResponse"} } } } } } }, "/video/{guid}/": { "get": { "summary": "Get single video", "description": "Returns a single video", "operationId": "getVideo", "tags": ["Videos"], "parameters": [ { "name": "guid", "in": "path", "required": true, "description": "Video GUID", "schema": {"type": "string"} }, {"$ref": "#/components/parameters/format"}, {"$ref": "#/components/parameters/field_list"} ], "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": {"$ref": "#/components/schemas/ApiResponse"} } } } } } }, "/releases/": { "get": { "summary": "Get game releases", "description": "Returns a list of game releases", "operationId": "getReleases", "tags": ["Releases"], "parameters": [ {"$ref": "#/components/parameters/format"}, {"$ref": "#/components/parameters/field_list"}, {"$ref": "#/components/parameters/limit"}, {"$ref": "#/components/parameters/offset"}, {"$ref": "#/components/parameters/sort"}, {"$ref": "#/components/parameters/filter"} ], "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": {"$ref": "#/components/schemas/ApiResponse"} } } } } } }, "/release/{guid}/": { "get": { "summary": "Get single release", "description": "Returns a single game release", "operationId": "getRelease", "tags": ["Releases"], "parameters": [ { "name": "guid", "in": "path", "required": true, "description": "Release GUID", "schema": {"type": "string"} }, {"$ref": "#/components/parameters/format"}, {"$ref": "#/components/parameters/field_list"} ], "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": {"$ref": "#/components/schemas/ApiResponse"} } } } } } }, "/search/": { "get": { "summary": "Search across all resources", "description": "Search for games, characters, companies, platforms, and other resources", "operationId": "search", "tags": ["Search"], "parameters": [ { "name": "query", "in": "query", "required": true, "description": "Search query string", "schema": {"type": "string"} }, { "name": "resources", "in": "query", "description": "Comma-separated list of resource types to search (game,franchise,character,platform,company,etc.)", "schema": {"type": "string"} }, {"$ref": "#/components/parameters/format"}, {"$ref": "#/components/parameters/field_list"}, {"$ref": "#/components/parameters/limit"}, {"$ref": "#/components/parameters/offset"} ], "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": {"$ref": "#/components/schemas/ApiResponse"} } } } } } } }, "components": { "securitySchemes": { "apiKeyQuery": { "type": "apiKey", "name": "api_key", "in": "query", "description": "API key for authentication. Register at https://www.giantbomb.com/api/" } }, "parameters": { "format": { "name": "format", "in": "query", "description": "Response format", "schema": { "type": "string", "enum": ["json", "xml"], "default": "json" } }, "field_list": { "name": "field_list", "in": "query", "description": "Comma-separated list of fields to include in response", "schema": {"type": "string"} }, "limit": { "name": "limit", "in": "query", "description": "Number of results to return (max 100)", "schema": { "type": "integer", "minimum": 1, "maximum": 100, "default": 100 } }, "offset": { "name": "offset", "in": "query", "description": "Offset into result set", "schema": { "type": "integer", "minimum": 0, "default": 0 } }, "sort": { "name": "sort", "in": "query", "description": "Field to sort by (prefix with - for descending)", "schema": {"type": "string"} }, "filter": { "name": "filter", "in": "query", "description": "Filter results (e.g., field:value)", "schema": {"type": "string"} } }, "schemas": { "Game": { "type": "object", "properties": { "id": {"type": "integer", "description": "Unique ID of the game"}, "guid": {"type": "string", "description": "Globally unique ID"}, "name": {"type": "string", "description": "Name of the game"}, "deck": {"type": "string", "description": "Brief summary"}, "description": {"type": "string", "description": "Full description"}, "image": { "type": "object", "properties": { "icon_url": {"type": "string"}, "medium_url": {"type": "string"}, "screen_url": {"type": "string"}, "small_url": {"type": "string"}, "super_url": {"type": "string"}, "thumb_url": {"type": "string"}, "tiny_url": {"type": "string"} } }, "original_release_date": {"type": "string", "format": "date"}, "platforms": {"type": "array", "items": {"type": "object"}} } }, "Platform": { "type": "object", "properties": { "id": {"type": "integer"}, "guid": {"type": "string"}, "name": {"type": "string"}, "abbreviation": {"type": "string"}, "deck": {"type": "string"}, "description": {"type": "string"} } }, "Character": { "type": "object", "properties": { "id": {"type": "integer"}, "guid": {"type": "string"}, "name": {"type": "string"}, "deck": {"type": "string"}, "description": {"type": "string"} } }, "Company": { "type": "object", "properties": { "id": {"type": "integer"}, "guid": {"type": "string"}, "name": {"type": "string"}, "deck": {"type": "string"}, "description": {"type": "string"} } }, "Franchise": { "type": "object", "properties": { "id": {"type": "integer"}, "guid": {"type": "string"}, "name": {"type": "string"}, "deck": {"type": "string"}, "description": {"type": "string"} } }, "Review": { "type": "object", "properties": { "id": {"type": "integer"}, "guid": {"type": "string"}, "deck": {"type": "string"}, "description": {"type": "string"}, "score": {"type": "integer"}, "reviewer": {"type": "string"}, "publish_date": {"type": "string", "format": "date-time"} } }, "Video": { "type": "object", "properties": { "id": {"type": "integer"}, "guid": {"type": "string"}, "name": {"type": "string"}, "deck": {"type": "string"}, "length_seconds": {"type": "integer"}, "publish_date": {"type": "string", "format": "date-time"}, "url": {"type": "string"} } }, "SearchResult": { "type": "object", "properties": { "id": {"type": "integer"}, "guid": {"type": "string"}, "name": {"type": "string"}, "resource_type": { "type": "string", "description": "Type of resource (game, platform, character, etc.)" } } }, "ApiResponse": { "type": "object", "properties": { "error": {"type": "string", "description": "Error message if request failed"}, "limit": {"type": "integer", "description": "Number of results per page"}, "offset": {"type": "integer", "description": "Offset into result set"}, "number_of_page_results": {"type": "integer", "description": "Number of results on current page"}, "number_of_total_results": {"type": "integer", "description": "Total number of matching results"}, "status_code": { "type": "integer", "description": "Status code (1 = success)" }, "results": { "description": "Array of results", "oneOf": [{"type": "array"}, {"type": "object"}] } } } } } }