Skip to Content
MuoCeon Docs
v1oauth context

Introspection

POST /v1/oauth/introspect — RFC 7662 token introspection, confidential clients only.

POST {issuer}/introspect answers "is this token valid right now". The answer comes from current server state, not from the token's own claims — a revoked session, or a token replaced by rotation, returns active: false.

Prerequisites

ConditionNotes
Client authenticationThe caller must authenticate as a client first
Client typeConfidential clients only; public clients are rejected
CachingThe response always carries no-store

Request

ParameterTypeRequiredNotes
tokenstring✅Token to inspect
token_type_hintstringOptionalLookup hint; does not change the result
curl -X POST 'https://id.example.com/v1/oauth/introspect' \
  -H 'Content-Type: application/x-www-form-urlencoded' \
  -u "$CLIENT_ID:$CLIENT_SECRET" \
  -d "token=$ACCESS_TOKEN"

Response

{
  "active": true,
  "scope": "openid profile",
  "client_id": "cli_...",
  "sub": "usr_...",
  "aud": "auth",
  "exp": 1763112000,
  "iat": 1763111100
}

An invalid or revoked token returns only { "active": false }, with every other field omitted.

Never cache an introspection result

Introspection is a point-in-time judgement. Once cached, revocation becomes ineffective for the cache window — an attacker holding a revoked token still passes.

When to use it

SituationRecommendation
Resource server validating a tokenPrefer local verification with public keys; it saves a round-trip
Needing to know whether a token was revokedUse this endpoint, or rely on short lifetimes plus refresh
Public clientsNot available; verify with public keys

On this page