barbed 0.0.4

Twitch Helix, EventSub, OAuth, IRC, and provider helpers
Documentation
{
  "endpoints": [
    {
      "id": "oauth_authorize",
      "method": "GET",
      "name": "OAuth authorize",
      "url": "https://id.twitch.tv/oauth2/authorize"
    },
    {
      "id": "oauth_token",
      "method": "POST",
      "name": "OAuth token",
      "url": "https://id.twitch.tv/oauth2/token"
    },
    {
      "id": "oauth_device",
      "method": "POST",
      "name": "OAuth device authorization",
      "url": "https://id.twitch.tv/oauth2/device"
    },
    {
      "id": "oauth_validate",
      "method": "GET",
      "name": "OAuth validate",
      "url": "https://id.twitch.tv/oauth2/validate"
    },
    {
      "id": "oauth_revoke",
      "method": "POST",
      "name": "OAuth revoke",
      "url": "https://id.twitch.tv/oauth2/revoke"
    },
    {
      "id": "oidc_configuration",
      "method": "GET",
      "name": "OIDC discovery document",
      "url": "https://id.twitch.tv/oauth2/.well-known/openid-configuration"
    },
    {
      "id": "oidc_keys",
      "method": "GET",
      "name": "OIDC JWKs",
      "url": "https://id.twitch.tv/oauth2/keys"
    },
    {
      "id": "oidc_userinfo",
      "method": "GET",
      "name": "OIDC userinfo",
      "url": "https://id.twitch.tv/oauth2/userinfo"
    }
  ],
  "flows": [
    {
      "authorize_endpoint": "https://id.twitch.tv/oauth2/authorize",
      "id": "oauth_implicit",
      "name": "OAuth implicit grant flow",
      "response_type": "token",
      "token_kind": "user"
    },
    {
      "grant_type": "client_credentials",
      "id": "oauth_client_credentials",
      "name": "OAuth client credentials grant flow",
      "token_endpoint": "https://id.twitch.tv/oauth2/token",
      "token_kind": "app"
    },
    {
      "authorize_endpoint": "https://id.twitch.tv/oauth2/authorize",
      "id": "oauth_authorization_code",
      "name": "OAuth authorization code grant flow",
      "response_type": "code",
      "token_endpoint": "https://id.twitch.tv/oauth2/token",
      "token_kind": "user"
    },
    {
      "device_endpoint": "https://id.twitch.tv/oauth2/device",
      "grant_type": "urn:ietf:params:oauth:grant-type:device_code",
      "id": "oauth_device_code",
      "name": "OAuth device code grant flow",
      "token_endpoint": "https://id.twitch.tv/oauth2/token",
      "token_kind": "user"
    },
    {
      "grant_type": "refresh_token",
      "id": "oauth_refresh",
      "name": "OAuth refresh token flow",
      "token_endpoint": "https://id.twitch.tv/oauth2/token",
      "token_kind": "user"
    },
    {
      "authorize_endpoint": "https://id.twitch.tv/oauth2/authorize",
      "id": "oidc_implicit",
      "name": "OIDC implicit grant flow",
      "response_type": "token id_token",
      "token_kind": "user"
    },
    {
      "authorize_endpoint": "https://id.twitch.tv/oauth2/authorize",
      "id": "oidc_authorization_code",
      "name": "OIDC authorization code grant flow",
      "response_type": "code",
      "token_endpoint": "https://id.twitch.tv/oauth2/token",
      "token_kind": "user"
    }
  ],
  "generated_at": "2026-07-05T22:57:37+00:00",
  "generated_from": "manual",
  "rules": {
    "validate_interval_seconds": 3600,
    "validate_required_for_oauth_sessions": true
  },
  "source_urls": {
    "changelog": "https://dev.twitch.tv/docs/change-log",
    "eventsub_reference": "https://dev.twitch.tv/docs/eventsub/eventsub-reference/",
    "eventsub_types": "https://dev.twitch.tv/docs/eventsub/eventsub-subscription-types/",
    "eventsub_webhooks": "https://dev.twitch.tv/docs/eventsub/handling-webhook-events/",
    "helix_reference": "https://dev.twitch.tv/docs/api/reference",
    "oauth_oidc": "https://dev.twitch.tv/docs/authentication/getting-tokens-oidc",
    "oauth_revoke": "https://dev.twitch.tv/docs/authentication/revoke-tokens",
    "oauth_tokens": "https://dev.twitch.tv/docs/authentication/getting-tokens-oauth",
    "oauth_validate": "https://dev.twitch.tv/docs/authentication/validate-tokens",
    "product_lifecycle": "https://dev.twitch.tv/docs/product-lifecycle"
  }
}