{
    "schemes": [],
    "swagger": "2.0",
    "info": {
        "description": "",
        "title": "BlizzTrack API",
        "contact": {},
        "version": "1.0"
    },
    "host": "blizztrack.com",
    "basePath": "/api/",
    "paths": {
        "/alerts": {
            "get": {
                "description": "Get breaking news for games",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "breaking news"
                ],
                "summary": "Get breaking news for games",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/results.BaseResult"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "results": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/definitions/forums.ForumsGamesApiResult"
                                            }
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/forums": {
            "get": {
                "description": "Get games that have forums",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "forums"
                ],
                "summary": "Get games that have forums",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/results.BaseResult"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "results": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/definitions/forums.ForumsGamesApiResult"
                                            }
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/forums/{game}": {
            "get": {
                "description": "Get forums by game",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "forums"
                ],
                "summary": "Get forums by game",
                "parameters": [
                    {
                        "type": "string",
                        "description": "slug or tact of game",
                        "name": "game",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "number",
                        "description": "The category id",
                        "name": "category",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/results.BaseResult"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "results": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/definitions/forums.ForumPostApiResult"
                                            }
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "404": {
                        "description": "Not Found - Game not found",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/results.BaseResult"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "results": {
                                            "$ref": "#/definitions/results.ErrorResult"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/forums/{game}/categories": {
            "get": {
                "description": "Get categories by game",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "forums"
                ],
                "summary": "Get categories by game",
                "parameters": [
                    {
                        "type": "string",
                        "description": "slug or tact of game",
                        "name": "game",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/results.BaseResult"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "results": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/definitions/forums.GameCategoriesApiResult"
                                            }
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "404": {
                        "description": "Not Found - Game not found",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/results.BaseResult"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "results": {
                                            "$ref": "#/definitions/results.ErrorResult"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/fragments": {
            "get": {
                "description": "Get all fragments",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "fragments"
                ],
                "summary": "Get all fragments",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/results.BaseResult"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "results": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/definitions/fragments.FragmentResult"
                                            }
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/fragments/{name}": {
            "get": {
                "description": "Get fragments by name or hash",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "fragments"
                ],
                "summary": "Get fragments by name or hash",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Hash or name of the fragment",
                        "name": "name",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/results.BaseResult"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "results": {
                                            "$ref": "#/definitions/structs.FragmentConfig"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "404": {
                        "description": "Not Found - No manifest found for the given file",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/results.BaseResult"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "results": {
                                            "$ref": "#/definitions/results.ErrorResult"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/manifest/{tact}/bgdl": {
            "get": {
                "description": "Get BGDL manifest for the given game",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Manifest"
                ],
                "summary": "Get BGDL manifest for the given game",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Game tact code (e.g. pro)",
                        "name": "tact",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "number",
                        "description": "File sequence number",
                        "name": "seqn",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK - BGDL data",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/results.BaseResult"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "results": {
                                            "$ref": "#/definitions/manifest.BGDLResult"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "404": {
                        "description": "Not Found - No manifest found for the given file",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/results.BaseResult"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "results": {
                                            "$ref": "#/definitions/results.ErrorResult"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/manifest/{tact}/cdns": {
            "get": {
                "description": "Get CDN manifest for the given game",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Manifest"
                ],
                "summary": "Get CDN manifest for the given game",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Game tact code (e.g. pro)",
                        "name": "tact",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "number",
                        "description": "File sequence number",
                        "name": "seqn",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK - CDN data",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/results.BaseResult"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "results": {
                                            "$ref": "#/definitions/manifest.CDNResult"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "404": {
                        "description": "Not Found - No manifest found for the given file",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/results.BaseResult"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "results": {
                                            "$ref": "#/definitions/results.ErrorResult"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/manifest/{tact}/seqn": {
            "get": {
                "description": "Shows all seqns for a given file and game",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Manifest"
                ],
                "summary": "Get all seqns for the given file",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Game tact code (e.g. pro)",
                        "name": "tact",
                        "in": "path",
                        "required": true
                    },
                    {
                        "enum": [
                            "versions",
                            "cdns",
                            "bgdl"
                        ],
                        "type": "string",
                        "description": "File to look up",
                        "name": "file",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "number",
                        "description": "The page number to return",
                        "name": "page",
                        "in": "query"
                    },
                    {
                        "maximum": 25,
                        "minimum": 1,
                        "type": "number",
                        "description": "The number of results to return per page",
                        "name": "limit",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/results.BaseResult"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "results": {
                                            "allOf": [
                                                {
                                                    "$ref": "#/definitions/results.PagedResults"
                                                },
                                                {
                                                    "type": "object",
                                                    "properties": {
                                                        "results": {
                                                            "type": "array",
                                                            "items": {
                                                                "$ref": "#/definitions/manifest.SeqnResult"
                                                            }
                                                        }
                                                    }
                                                }
                                            ]
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "404": {
                        "description": "Not Found - No manifest found for the given file",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/results.BaseResult"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "results": {
                                            "$ref": "#/definitions/results.ErrorResult"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/manifest/{tact}/versions": {
            "get": {
                "description": "Get versions manifest for the given game",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Manifest"
                ],
                "summary": "Get versions manifest for the given game",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Game tact code (e.g. pro)",
                        "name": "tact",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "number",
                        "description": "File sequence number",
                        "name": "seqn",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK - Version data",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/results.BaseResult"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "results": {
                                            "$ref": "#/definitions/manifest.VersionResult"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "404": {
                        "description": "Not Found - No manifest found for the given file",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/results.BaseResult"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "results": {
                                            "$ref": "#/definitions/results.ErrorResult"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/summary": {
            "get": {
                "description": "Get a list of all values in the summary table along with their corresponding changes",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Summary"
                ],
                "summary": "List all summaries",
                "parameters": [
                    {
                        "type": "number",
                        "description": "The page number to return",
                        "name": "page",
                        "in": "query"
                    },
                    {
                        "maximum": 25,
                        "minimum": 1,
                        "type": "number",
                        "description": "The number of results to return per page",
                        "name": "limit",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/results.BaseResult"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "results": {
                                            "allOf": [
                                                {
                                                    "$ref": "#/definitions/results.PagedResults"
                                                },
                                                {
                                                    "type": "object",
                                                    "properties": {
                                                        "results": {
                                                            "type": "array",
                                                            "items": {
                                                                "$ref": "#/definitions/summary.SummaryResult"
                                                            }
                                                        }
                                                    }
                                                }
                                            ]
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        }
    },
    "definitions": {
        "forums.ForumPost": {
            "type": "object",
            "properties": {
                "author": {
                    "type": "string"
                },
                "category": {
                    "$ref": "#/definitions/forums.GameCategory"
                },
                "excerpt": {
                    "type": "string"
                },
                "id": {
                    "type": "integer"
                },
                "posted_on": {
                    "type": "string"
                },
                "title": {
                    "type": "string"
                },
                "type": {
                    "type": "string"
                },
                "type_id": {
                    "type": "string"
                },
                "url": {
                    "type": "string"
                }
            }
        },
        "forums.ForumPostApiResult": {
            "type": "object",
            "properties": {
                "name": {
                    "type": "string"
                },
                "posts": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/forums.ForumPost"
                    }
                },
                "refs": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    }
                },
                "slug": {
                    "type": "string"
                },
                "tact": {
                    "type": "string"
                }
            }
        },
        "forums.ForumsGamesApiResult": {
            "type": "object",
            "properties": {
                "name": {
                    "type": "string"
                },
                "refs": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    }
                },
                "slug": {
                    "type": "string"
                },
                "tact": {
                    "type": "string"
                },
                "types": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    }
                }
            }
        },
        "forums.GameCategoriesApiResult": {
            "type": "object",
            "properties": {
                "categories": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/forums.GameCategory"
                    }
                },
                "name": {
                    "type": "string"
                },
                "refs": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    }
                },
                "slug": {
                    "type": "string"
                },
                "tact": {
                    "type": "string"
                }
            }
        },
        "forums.GameCategory": {
            "type": "object",
            "properties": {
                "id": {
                    "type": "integer"
                },
                "name": {
                    "type": "string"
                },
                "refs": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    }
                }
            }
        },
        "fragments.FragmentResult": {
            "type": "object",
            "properties": {
                "created_at": {
                    "type": "string"
                },
                "decryption_key_id": {
                    "type": "string"
                },
                "encrypted": {
                    "type": "boolean"
                },
                "encrypted_hash": {
                    "type": "string"
                },
                "hash": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "refs": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    }
                }
            }
        },
        "manifest.BGDLResult": {
            "type": "object",
            "properties": {
                "created_at": {
                    "type": "string"
                },
                "data": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/manifest.BGDLResultItem"
                    }
                },
                "encrypted": {
                    "type": "boolean"
                },
                "name": {
                    "type": "string"
                },
                "refs": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    }
                },
                "seqn": {
                    "type": "integer"
                },
                "tact": {
                    "type": "string"
                },
                "type": {
                    "type": "string"
                }
            }
        },
        "manifest.BGDLResultItem": {
            "type": "object",
            "properties": {
                "build_config": {
                    "type": "string"
                },
                "build_id": {
                    "type": "integer"
                },
                "cdn_config": {
                    "type": "string"
                },
                "keyring": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "product_config": {
                    "type": "string"
                },
                "region": {
                    "type": "string"
                },
                "version_name": {
                    "type": "string"
                }
            }
        },
        "manifest.CDNResult": {
            "type": "object",
            "properties": {
                "created_at": {
                    "type": "string"
                },
                "data": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/manifest.CDNResultItem"
                    }
                },
                "encrypted": {
                    "type": "boolean"
                },
                "name": {
                    "type": "string"
                },
                "refs": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    }
                },
                "seqn": {
                    "type": "integer"
                },
                "tact": {
                    "type": "string"
                },
                "type": {
                    "type": "string"
                }
            }
        },
        "manifest.CDNResultItem": {
            "type": "object",
            "properties": {
                "config_path": {
                    "type": "string"
                },
                "hosts": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "path": {
                    "type": "string"
                },
                "region": {
                    "type": "string"
                },
                "servers": {
                    "type": "string"
                }
            }
        },
        "manifest.SeqnResult": {
            "type": "object",
            "properties": {
                "created_at": {
                    "type": "string"
                },
                "refs": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    }
                },
                "seqn": {
                    "type": "integer"
                },
                "tact": {
                    "type": "string"
                },
                "type": {
                    "type": "string"
                }
            }
        },
        "manifest.VersionResult": {
            "type": "object",
            "properties": {
                "created_at": {
                    "type": "string"
                },
                "data": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/manifest.VersionResultItem"
                    }
                },
                "encrypted": {
                    "type": "boolean"
                },
                "name": {
                    "type": "string"
                },
                "refs": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    }
                },
                "seqn": {
                    "type": "integer"
                },
                "tact": {
                    "type": "string"
                },
                "type": {
                    "type": "string"
                }
            }
        },
        "manifest.VersionResultItem": {
            "type": "object",
            "properties": {
                "build_config": {
                    "type": "string"
                },
                "build_id": {
                    "type": "integer"
                },
                "cdn_config": {
                    "type": "string"
                },
                "keyring": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "product_config": {
                    "type": "string"
                },
                "region": {
                    "type": "string"
                },
                "version_name": {
                    "type": "string"
                }
            }
        },
        "results.BaseResult": {
            "type": "object",
            "properties": {
                "result": {},
                "success": {
                    "type": "boolean"
                }
            }
        },
        "results.ErrorResult": {
            "type": "object",
            "properties": {
                "code": {
                    "type": "integer"
                },
                "message": {
                    "type": "string"
                }
            }
        },
        "results.PagedResults": {
            "type": "object",
            "properties": {
                "metadata": {},
                "page": {
                    "type": "integer"
                },
                "per_page": {
                    "type": "integer"
                },
                "results": {},
                "total": {
                    "type": "integer"
                },
                "total_pages": {
                    "type": "integer"
                }
            }
        },
        "structs.FragmentConfig": {
            "type": "object",
            "properties": {
                "files": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "object",
                        "additionalProperties": {
                            "$ref": "#/definitions/structs.FragmentFile"
                        }
                    }
                },
                "installs": {
                    "type": "object",
                    "additionalProperties": {
                        "$ref": "#/definitions/structs.FragmentInstall"
                    }
                },
                "products": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/structs.FragmentProductBase"
                    }
                },
                "strings": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "object",
                        "additionalProperties": {
                            "type": "string"
                        }
                    }
                }
            }
        },
        "structs.FragmentFile": {
            "type": "object",
            "properties": {
                "hash": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                }
            }
        },
        "structs.FragmentInstall": {
            "type": "object",
            "properties": {
                "deprecated": {
                    "type": "boolean"
                },
                "tact_product": {
                    "type": "string"
                }
            }
        },
        "structs.FragmentProduct": {
            "type": "object",
            "properties": {
                "breaking_news_url": {
                    "type": "string"
                },
                "default_product_type": {
                    "type": "string"
                },
                "game_icon_svg": {
                    "type": "string"
                },
                "game_tab_icon": {
                    "type": "string"
                },
                "genre": {
                    "type": "string"
                },
                "icon_medium": {
                    "type": "string"
                },
                "icon_small": {
                    "type": "string"
                },
                "icon_tiny": {
                    "type": "string"
                },
                "is_activision_game": {
                    "type": "boolean"
                },
                "key_art": {
                    "type": "string"
                },
                "logo": {
                    "type": "string"
                },
                "logo_v2": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "override_product_id": {
                    "type": "string"
                },
                "program_id": {
                    "type": "string"
                },
                "types": {
                    "type": "object",
                    "additionalProperties": {
                        "$ref": "#/definitions/structs.FragmentProductType"
                    }
                }
            }
        },
        "structs.FragmentProductBase": {
            "type": "object",
            "properties": {
                "base": {
                    "$ref": "#/definitions/structs.FragmentProduct"
                },
                "id": {
                    "type": "string"
                }
            }
        },
        "structs.FragmentProductType": {
            "type": "object",
            "properties": {
                "breaking_news_url": {
                    "type": "string"
                },
                "icon_medium": {
                    "type": "string"
                },
                "icon_small": {
                    "type": "string"
                },
                "icon_tiny": {
                    "type": "string"
                },
                "logo": {
                    "type": "string"
                },
                "logo_v2": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "selector_display_name": {
                    "type": "string"
                },
                "type_name": {
                    "type": "string"
                },
                "uid": {
                    "type": "string"
                }
            }
        },
        "summary.SummaryResult": {
            "type": "object",
            "properties": {
                "changes": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/summary.SummaryResultItem"
                    }
                },
                "created_at": {
                    "type": "string"
                },
                "results": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/summary.SummaryResultItem"
                    }
                },
                "seqn": {
                    "type": "integer"
                }
            }
        },
        "summary.SummaryResultItem": {
            "type": "object",
            "properties": {
                "encrypted": {
                    "type": "boolean"
                },
                "flags": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "product": {
                    "type": "string"
                },
                "refs": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    }
                },
                "seqn": {
                    "type": "integer"
                }
            }
        }
    }
}