Skip to main content

Surfaces

Portal routes

Starts the browser authorization flow. See Authentication for query parameters and redirects.

Token

Exchange an authorization code or refresh an access token. Accepts application/json or application/x-www-form-urlencoded.

Authorization code

string
required
authorization_code
string
required
Application client id.
string
required
Application client secret.
string
required
Authorization code from the redirect.
string
required
Must match the URI used in the authorization request.

Refresh token

string
required
refresh_token
string
required
Application client id.
string
required
Application client secret.
string
required
Refresh token from a prior token response.

Token response

string
Bearer access token (mrdn_at_…). Valid for 15 minutes.
string
Always Bearer.
number
Access token lifetime in seconds (900).
string
Space-separated granted scopes.
string
Present only when offline_access was granted. Valid for 30 days.

Userinfo

Returns JSON. Fields depend on granted scopes.
string
Meridian user id. Always present.
string
Same as sub.
string
Included with user.identify.
string
Included with user.identify when linked.
number
Included with user.identify.
string
Included with user.email.
object
Included with user.connections.read. Whether Discord, GitHub, and passkey are linked.
array
Included with bots.read. Bot id, name, avatar, status, plan, and role (owner, editor, viewer).
array
Included with flows.read. Flow summaries (kind, name, public code).
array
Included with guilds.read. Discord server ids per bot.
array
Included with logs.read. Recent runtime log entries.
array
Included with cowork.read. Cowork members and capabilities on owned bots.

Revoke

string
required
Access or refresh token to revoke.
string
Optional: access_token or refresh_token.
Returns 200 with an empty body on success.
Last modified on August 9, 2026