{
  "openapi": "3.1.0",
  "info": {
    "title": "Sunset Strip GTA 6 API",
    "version": "1.4.0",
    "description": "How to become a GTA 6 streamer or content creator (the recipe), GTA 6 unlock times, launch facts, top clips and top clippers, the GTA streamer leaderboard (any channel's rank), and live GTA Twitch stats from Sunset Strip (the data behind Studio Pro's creator tools). Fan site, not affiliated with Rockstar Games."
  },
  "servers": [
    {
      "url": "https://sunsetstrip.app"
    }
  ],
  "paths": {
    "/api/unlock": {
      "get": {
        "operationId": "getUnlockTime",
        "summary": "GTA 6 unlock time for a country or city",
        "parameters": [
          {
            "name": "country",
            "in": "query",
            "required": false,
            "description": "Country, city or IANA time zone, e.g. australia, perth, Europe/London. Omit for all regions.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Unlock time",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/data/launch.json": {
      "get": {
        "operationId": "getLaunchFacts",
        "summary": "GTA 6 release date, platforms, preload, price and editions",
        "responses": {
          "200": {
            "description": "Launch facts"
          }
        }
      }
    },
    "/data/faq.json": {
      "get": {
        "operationId": "getFaq",
        "summary": "Answers to common GTA 6 launch questions",
        "responses": {
          "200": {
            "description": "FAQ"
          }
        }
      }
    },
    "/data/leaderboard.json": {
      "get": {
        "operationId": "getTopClips",
        "summary": "Top GTA 6 clips in the last 24 hours, ranked by player votes",
        "parameters": [
          {
            "name": "cat",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "all",
                "funny",
                "stunts",
                "chaos",
                "photo",
                "trailers"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Clips"
          }
        }
      }
    },
    "/data/clippers.json": {
      "get": {
        "operationId": "getTopClippers",
        "summary": "Players ranked by votes on their GTA 6 clips, with profile links and hire status",
        "parameters": [
          {
            "name": "t",
            "in": "query",
            "required": false,
            "description": "all for all time; omit for this week",
            "schema": {
              "type": "string",
              "enum": [
                "all"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Players"
          }
        }
      }
    },
    "/data/how-it-works.json": {
      "get": {
        "operationId": "getHowItWorks",
        "summary": "Ranking rules, prizes, invites, profiles, Clip Autopilot and Studio Pro",
        "responses": {
          "200": {
            "description": "How Sunset Strip works"
          }
        }
      }
    },
    "/api/streams": {
      "get": {
        "operationId": "getTwitchStats",
        "summary": "Live GTA Twitch data: stats (viewers and live streams now, the last 24 hours, top streamers), live (biggest streams now and records), board (the streamer leaderboard: top 100 by hours watched, with movement) rank (one channel's rank, the channels just above and below, and its daily rank history), hours (the best hours to go live by viewers per streamer; the top 3 slots are public, each hour-of-week keyed in UTC as how = day*24 + hour) or affiliate (how close one channel is to Twitch Affiliate, with what's left). Sampled every 10 minutes.",
        "parameters": [
          {
            "name": "view",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "enum": [
                "stats",
                "live",
                "board",
                "rank",
                "hours",
                "affiliate"
              ]
            }
          },
          {
            "name": "game",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "gta6",
                "gtav"
              ],
              "default": "gta6"
            }
          },
          {
            "name": "days",
            "in": "query",
            "required": false,
            "description": "Leaderboard period for board and rank: 1 (today, UTC), 7 or 30",
            "schema": {
              "type": "integer",
              "enum": [
                1,
                7,
                30
              ],
              "default": 7
            }
          },
          {
            "name": "login",
            "in": "query",
            "required": false,
            "description": "Twitch login, required for view=rank, e.g. summit1g",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Twitch data"
          }
        }
      }
    },
    "/api/badge": {
      "get": {
        "operationId": "getRankBadge",
        "summary": "SVG badge with a Twitch channel's current GTA streamer rank, for OBS or a profile (updates every 10 minutes)",
        "parameters": [
          {
            "name": "login",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "g",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "gta6",
                "gtav"
              ],
              "default": "gta6"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "SVG image",
            "content": {
              "image/svg+xml": {}
            }
          }
        }
      }
    },
    "/data/recipe.json": {
      "get": {
        "operationId": "getStreamerRecipe",
        "summary": "How to become a GTA 6 streamer or content creator: every step of the recipe, with actions, the tool that does it, FAQs and sources",
        "responses": {
          "200": {
            "description": "Recipes"
          }
        }
      }
    },
    "/data/daily-challenge.json": {
      "get": {
        "operationId": "getDailyChallenge",
        "summary": "The Daily Job schedule and rules",
        "responses": {
          "200": {
            "description": "Daily Job"
          }
        }
      }
    }
  }
}
