Skip to main content
GET
/
oauth
/
authorize
Authorize a user
curl --request GET \
  --url https://simkl.com/oauth/authorize \
  --header 'User-Agent: <user-agent>' \
  --header 'simkl-api-key: <api-key>'

Documentation Index

Fetch the complete documentation index at: https://api.simkl.org/llms.txt

Use this file to discover all available pages before exploring further.

Authorizations

simkl-api-key
string
header
default:YOUR_CLIENT_ID
required

Optional alias for the client_id query parameter. Simkl accepts your client_id either as the simkl-api-key request header or as the ?client_id=… query parameter — pick one. The query-parameter form is preferred because it makes the request fully self-describing in URL form.

Headers

User-Agent
string
required

Descriptive identifier for your app, ideally name/version. Examples: PlexMediaServer/1.43.1.10540, kodi-simkl/0.9.2, MyApp/2.4.1 (https://myapp.com).

Query Parameters

response_type
string
required

must be "code"

client_id
string
required

Your client_id from your Simkl developer settings. Required on every request.

redirect_uri
string

Where Simkl sends the user back after they approve consent. Must match a URI pre-registered in your app settings byte-for-byte (scheme, host, port, path, trailing slash, casing — all of it). Required for confidential-client flows. Optional when using PKCE and your app has no registered redirect URI — in that case the consent page completes the flow on simkl.com directly.

state
string

Random string you generate; Simkl echoes it back unchanged on the redirect to your redirect_uri. Use this for CSRF protection — verify on the redirect that the value matches what you originally sent. Strongly recommended for browser-based clients.

app-name
string
required

Short, lowercase identifier for your app (e.g. plex-scrobbler, kodi-bridge). Helps Simkl identify which apps are using the API.

app-version
string
required

Your app's current version (e.g. 1.0, 2.4.1). Helps Simkl debug issues you report.

code_challenge
string

PKCE code challenge — base64url-encoded SHA-256 hash of the code verifier. Required for the PKCE flow (mobile/desktop/SPA clients without client_secret). Pair with the matching code_verifier when exchanging at POST /oauth/token.

code_challenge_method
enum<string>
default:S256

Hash method used to derive code_challenge. S256 (SHA-256, default) is recommended; plain is accepted for legacy clients but discouraged.

Available options:
S256,
plain

Response

302

User approved. Browser is redirected to redirect_uri?code=…&state=…. Exchange the code immediately via POST /oauth/token.