Skip to main content
HASP publishes machine-readable discovery documents so clients can configure themselves without hard-coding endpoint URLs. All three documents below are public — no authentication is required — and are cached for five minutes (Cache-Control: public, max-age=300).

Authorization server metadata (RFC 8414)

The RFC 8414 discovery document. Use it to locate every OAuth endpoint and the capabilities HASP supports, rather than constructing URLs yourself.
authorization_details_types_supported carries every RAR grant type the server accepts. It is elided above rather than reproduced, because a copy in prose goes stale the moment a type is added — read it from the live document, or see the generated table under authorization_details JSON Schema below. The device_authorization_endpoint and the urn:ietf:params:oauth:grant-type:device_code grant support the headless/SSH login flow — see Device authorization.
PKCE is mandatory — code_challenge_methods_supported is ["S256"] only, and response_types_supported is ["code"]. There is no implicit grant. See PKCE.

MCP server metadata

Declares HASP as an MCP-authorized resource server supporting OAuth 2.1 with Rich Authorization Requests (RAR). MCP clients read this to set up the authorization handshake.
The mcp_version field tracks the MCP authorization spec version HASP currently implements. Tokens are opaque (token_format: "opaque") — validate them with token introspection rather than parsing them.

authorization_details JSON Schema

Returns the canonical JSON Schema (draft 2020-12) for the RAR authorization_details array — the same schema the in-console scope-grant builder validates against. Fetch it to validate authorization_details client-side before requesting a credential. The response supports conditional requests: it returns an ETag and honors If-None-Match, replying 304 Not Modified when your cached copy is current.
The schema’s top level is an array of one-or-more grant objects, each matching one of the supported authorization_details types: See Scope grants for each type’s required fields, and the consent screen for how a requested grant is presented to the approving user.

Token revocation (RFC 7009)

Revoke an agent credential by presenting it. Authenticate by sending the token itself as a bearer token — the caller proves possession.
Per RFC 7009 §2.2 the endpoint always returns 200 with an empty body {}, even for an unknown or already-revoked token. Revocation is immediate: the credential cannot be used on any surface after the call returns.