BETADeveloper API

This portal is still in testing and may change before full release. Testers welcome!

API Documentation

WowCoach Developer API v1.0 reference

Authentication

Authenticated endpoints require an API key in the X-WowCoach-Api-Key header. API keys are free to create with any account. An active subscription is required to access your data. The read:guilds scope requires a Guild subscription.

curl -H "X-WowCoach-Api-Key: wc_live_abc123..." \
     https://api.wowcoach.gg/api/v1/logs/{logId}

Data access: Your own data requires an active subscription. Third-party apps can access other users' data via OAuth2 with the data owner's consent (the authorizing user must have a subscription).

Create and manage API keys in the API Keys page. Each key has scopes that control which resources it can access.

OAuth2 (Third-Party Apps)

If your app needs to access another user's data (not the API key owner's), use OAuth2 Authorization Code + PKCE. This lets users grant your app specific permissions.

Flow

  1. Register an OAuth app in the OAuth Apps page to get a client_id and client_secret.
  2. Redirect users to GET /api/oauth/authorize with your client_id, redirect_uri, scopes, and PKCE code_challenge.
  3. User approves on the WowCoach consent screen.
  4. Your callback receives an authorization code.
  5. Exchange the code for tokens via POST /api/oauth/token.
  6. Include the access token as Authorization: Bearer wcoat_... alongside your API key.
curl -H "X-WowCoach-Api-Key: wc_live_abc123..." \
     -H "Authorization: Bearer wcoat_xyz789..." \
     https://api.wowcoach.gg/api/v1/me/runs

Access tokens expire after 1 hour. Use the refresh token to get a new pair via POST /api/oauth/token with grant_type=refresh_token.

Free for all users: Registering OAuth apps is free for all users — no subscription required.

Public Endpoints

A small set of endpoints are available without any authentication. These enable link previews, embeds, and basic integration without requiring a subscription:

Report embeds and API status checks.

Rate limited to 60 requests/hour per IP address.

Response Format

Base URL: https://api.wowcoach.gg

All responses use a standard JSON envelope:

{
  "data": { ... },
  "meta": {
    "version": "1.0",
    "requestId": "abc123",
    "timestamp": "2026-02-21T00:00:00Z"
  },
  "rateLimit": {
    "limit": 2000,
    "remaining": 1847,
    "reset": "2026-02-21T13:00:00Z"
  }
}

Paginated endpoints include a pagination object with offset, limit, total, and hasMore fields.

Errors follow RFC 7807:

{
  "error": {
    "type": "https://developers.wowcoach.gg/errors/not-found",
    "code": "NOT_FOUND",
    "status": 404,
    "title": "Not Found",
    "detail": "Fight 'abc123' not found.",
    "requestId": "req_xyz"
  }
}

Rate Limits

API requests are rate-limited per API key. All keys share the same generous limits:

1,000
per hour
10,000
per day
100,000
per month
10
burst/sec

Rate limit headers are included on every response:

X-RateLimit-LimitX-RateLimit-RemainingX-RateLimit-ResetX-RateLimit-Policy

When rate limited, you'll receive a 429 response with a Retry-After header.

API Resources

Click each section to expand the endpoint list. Endpoints marked PUBLIC require no authentication.

OpenAPI Specification

Full OpenAPI 3.1 specification available for import into Postman, SDK generators, or API testing tools.

Download OpenAPI Spec