Parsertimev3 docs
Game Data API

Roles

GET
/v1/{game}/roles

The roles a hero can occupy, with Blizzard's official sub-roles and their current passive effects.

x-api-key<token>

A Personal API Key (sl_…), issued at https://sightline.gg/settings/api-keys. May also be sent as Authorization: Bearer sl_…. Raises the caller's limit to 1,000 requests per minute, keyed on the key rather than the IP. Requires the gamedata:read Scope.

In: header

Path Parameters

game*string

A Supported Game. overwatch is the only one today; anything else is a 404.

Response Body

application/json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

curl -X GET "https://example.com/v1/overwatch/roles"
{
  "data": [
    {
      "id": "support",
      "name": "Support",
      "subroles": [
        {
          "description": "string",
          "id": "tactician",
          "name": "Tactician",
          "passive": "string"
        }
      ]
    }
  ],
  "meta": {
    "count": 53,
    "patch": "2026-02-10"
  }
}
{
  "detail": "string",
  "instance": "/v1/overwatch/heroes/nobody",
  "status": 404,
  "title": "Not Found",
  "type": "https://api.sightline.gg/problems/not-found"
}
{
  "detail": "string",
  "instance": "/v1/overwatch/heroes/nobody",
  "status": 404,
  "title": "Not Found",
  "type": "https://api.sightline.gg/problems/not-found"
}
{
  "detail": "string",
  "instance": "/v1/overwatch/heroes/nobody",
  "status": 404,
  "title": "Not Found",
  "type": "https://api.sightline.gg/problems/not-found"
}
{
  "detail": "string",
  "instance": "/v1/overwatch/heroes/nobody",
  "status": 404,
  "title": "Not Found",
  "type": "https://api.sightline.gg/problems/not-found"
}
{
  "detail": "string",
  "instance": "/v1/overwatch/heroes/nobody",
  "status": 404,
  "title": "Not Found",
  "type": "https://api.sightline.gg/problems/not-found"
}