client_id, an optional client_secret, a set of redirect URIs, and the scopes the client may request.
You can manage clients two ways:
From the dashboard
Account → API access at flexslot.gg/account?section=api-access. The OAuth applications card lets you point-and-click create, rotate, and revoke.
Programmatically
The
me/partner/oauth2-clients endpoints, authenticated with a Personal Access Token. For scripts and CI.Confidential vs public clients
1
Confidential
Runs on a server you control. Gets a
client_secret, shown once at creation. Sends the secret to the token endpoint via HTTP Basic auth. Choose this for a backend web app.2
Public
Runs where you can’t keep a secret — a CLI, native app, or SPA. Gets no secret; security comes entirely from PKCE. Choose this for anything that ships to the user’s device or browser.
Redirect URI rules
Every redirect URI is validated at creation and on every edit. The rules are the same exact-match rules the authorization endpoint enforces:- HTTPS is required for every non-loopback URI.
- HTTP is allowed only for the loopback hosts
localhost,127.0.0.1, and[::1](native-app loopback per RFC 8252). The port is unconstrained. - No wildcards (
*) anywhere in the URI. - No URL fragments (
#...). - Custom native-app schemes (
com.example.app://) are not accepted — native apps use a loopback redirect.
From the dashboard
1
Open Account → API access
The OAuth applications card lists your existing clients and a New application button.
2
Create a client
Enter a name, pick Confidential or Public, add one redirect URI per line, and check the scopes the client may request. Click Create application.
3
Copy the secret (confidential only)
A confidential client shows its
client_secret once. Copy it immediately — it is never shown again.4
Edit a client later
Open a client to change its name, redirect URIs, requested scopes, branding URLs (application/privacy/terms), or its DPoP setting. Edits are partial — only the fields you change are touched — and the same validation applies as at creation (redirect URIs must be HTTPS or
http loopback with no wildcards/fragments; scopes must be from the published scope universe). Editing does not rotate the secret or invalidate existing tokens. You don’t have to get redirect URIs and scopes perfect up front — add the next environment’s callback or widen scopes here whenever you need to.5
Rotate or revoke later
Each client has Rotate secret (confidential only) and Revoke actions. Rotating invalidates the old secret immediately; revoking disables the client and signs out every user who authorized it.
Programmatically (Personal Access Token)
Mint a Personal Access Token from Settings → Personal Access Tokens, then call the management endpoints with it as a bearer token. These live under/api/public/v1/me/partner/oauth2-clients and resolve the partner from the token’s owner.
The PAT-authenticated API covers list, create, rotate-secret, and revoke. Editing a client’s configuration (redirect URIs, scopes, metadata) is currently done from the dashboard (Account → API access) — there is no public
PATCH endpoint for it yet. Create, rotate, and revoke are the same operations either way.plaintext_client_secret is an empty string — there is no secret to copy.
Revocation is a cascade
Revoking a client is not just a status flip. It also revokes every grant and every access and refresh token issued under that client. Any user who authorized the client is signed out, and bearer tokens that client minted stop working immediately. This is deliberate: a status-only revoke would leave live tokens that the resource server still honors. Revoked clients are retained for audit but disappear from both the dashboard list and the API list.Client limit
Each partner may hold up to 10 active clients (active or suspended count toward the limit; revoked clients do not). Revoke a client you no longer use to free a slot. If you need a higher limit, contact Flexslot.Next steps
OAuth Quickstart
Use a client you just created to get an access token
Security best practices
Redirect URIs, PKCE, refresh rotation