SlashID OAuth2 API
The OAuth2 API from SlashID — 11 operation(s) for oauth2.
The OAuth2 API from SlashID — 11 operation(s) for oauth2.
openapi: 3.0.1
info:
title: SlashID Groups OAuth2 API
description: "This is the [OpenAPI](https://www.openapis.org/) specification for communicating with the [SlashID](https://www.slashid.dev/) service.\n\nThe latest version of the OpenAPI API spec can be fetched from [our CDN](https://cdn.slashid.com/slashid-openapi-latest.yaml).\n\nWe recommend you use an [OpenAPI SDK generator](https://openapi.tools/#sdk) to create a client library in your programming language,\nbut you can also use this documentation to make HTTP calls directly.\n\n> **Compatibility note**: We aim to keep wire compatibility whenever we update the API, but parts of the specification may occasionally be refactored.\n If you use an SDK generator, your code may require minor changes between versions.\n"
version: '1.1'
termsOfService: https://www.slashid.dev/terms-of-use/
contact:
name: API Support
email: contact@slashid.dev
servers:
- url: https://api.slashid.com
description: Production
- url: https://api.sandbox.slashid.com
description: Sandbox
security:
- ApiKeyAuth: []
tags:
- name: OAuth2
paths:
/oauth2/clients:
parameters:
- $ref: '#/components/parameters/OrgIDHeader'
post:
operationId: PostOauth2Clients
x-rbac-enabled: true
x-rbac-allowed-groups: admin
tags:
- OAuth2
summary: Create a new OAuth2 client
description: 'Create a new client ID/secret pair that can be used with the client credentials grant type.
A valid SlashID organization ID and API key must be used to authenticate and authorize the request.
The client credentials can be configured.
SlashID currently supports the following OAuth 2.0 grants:
- client credentials
- authorization code
- refresh token
The `grant_types` field may contain only the values `client_credentials` and `authorization_code`.
Other values will return a `400` error code.
The client credentials grant requires a client secret, and so all clients allowing that grant should be regarded
as confidential, as defined in the OAuth 2.0 specification (https://oauth.net/2/client-types/).
The response body will include the client ID and client secret.
For the client credentials grant, these can be used with the `/oauth2/tokens` endpoints to obtain an access token.
For the authorization code grant, these can be used as described in the [OAuth 2.0 specification](https://datatracker.ietf.org/doc/html/rfc6749).
The client secret must be stored securely, and cannot be retrieved in
subsequent API calls. If you lose the client secret, a new secret can be generated using the
`PUT /oauth2/clients/{oauth_client_id}/secret` endpoint.'
parameters:
- $ref: '#/components/parameters/RequiredConsistencyHeader'
- $ref: '#/components/parameters/RequiredConsistencyTimeoutHeader'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/PostOAuth2ClientRequest'
responses:
'201':
description: Created
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/APIResponseBase'
- type: object
required:
- result
properties:
result:
$ref: '#/components/schemas/OAuth2ClientWithSecret'
'400':
$ref: '#/components/responses/BadRequest'
get:
operationId: GetOauth2Clients
x-rbac-enabled: true
x-rbac-allowed-groups: admin,member
tags:
- OAuth2
summary: Retrieve a list of OAuth2 clients
description: 'Retrieve a list of existing OAuth 2.0 clients for your organization.
'
responses:
'200':
description: OK
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/APIResponseBase'
- type: object
required:
- result
properties:
result:
type: array
items:
$ref: '#/components/schemas/OAuth2Client'
'400':
$ref: '#/components/responses/BadRequest'
/oauth2/clients/{oauth_client_id}:
parameters:
- $ref: '#/components/parameters/OrgIDHeader'
- $ref: '#/components/parameters/OAuthClientIDPathParam'
get:
operationId: GetOauth2ClientsOauthClientId
x-rbac-enabled: true
x-rbac-allowed-groups: admin,member
tags:
- OAuth2
summary: Retrieve an OAuth2 client
description: 'Get details on the identified client. Authenticated with a SlashID organization ID and API key; the organization ID must match or be a parent of the client owner.
'
responses:
'200':
description: OK
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/APIResponseBase'
- type: object
required:
- result
properties:
result:
$ref: '#/components/schemas/OAuth2Client'
'400':
$ref: '#/components/responses/BadRequest'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
delete:
operationId: DeleteOauth2ClientsOauthClientId
x-rbac-enabled: true
x-rbac-allowed-groups: admin
tags:
- OAuth2
summary: Delete an existing OAuth2 client
description: 'Delete the identified client. Authenticated with a SlashID organization ID and API key; the organization ID must match or be a parent of the client owner.
'
parameters:
- $ref: '#/components/parameters/RequiredConsistencyHeader'
- $ref: '#/components/parameters/RequiredConsistencyTimeoutHeader'
responses:
'204':
$ref: '#/components/responses/NoContent'
'400':
$ref: '#/components/responses/BadRequest'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
patch:
operationId: PatchOauth2ClientsOauthClientId
x-rbac-enabled: true
x-rbac-allowed-groups: admin
tags:
- OAuth2
summary: Modify an existing OAuth2 client
description: 'Update the identified client. Authenticated with a SlashID organization ID and API key; the organization ID must match or be a parent of the client owner.
SlashID currently only supported a subset of OAuth clients, therefore we enforce that grant_types must be ["client_credentials"]. Setting this field to any other value will result in an error response with a `400` status code.
'
parameters:
- $ref: '#/components/parameters/RequiredConsistencyHeader'
- $ref: '#/components/parameters/RequiredConsistencyTimeoutHeader'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/PatchOAuth2ClientRequest'
responses:
'200':
description: OK
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/APIResponseBase'
- type: object
required:
- result
properties:
result:
$ref: '#/components/schemas/OAuth2Client'
'400':
$ref: '#/components/responses/BadRequest'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
/oauth2/clients/{oauth_client_id}/secret:
parameters:
- $ref: '#/components/parameters/OrgIDHeader'
- $ref: '#/components/parameters/OAuthClientIDPathParam'
put:
operationId: PutOauth2ClientsOauthClientIdSecret
x-rbac-enabled: true
x-rbac-allowed-groups: admin
tags:
- OAuth2
summary: Generate a new client secret
description: 'A new client secret is created and returned. The previous secret will no longer be valid after this.
'
parameters:
- $ref: '#/components/parameters/RequiredConsistencyHeader'
- $ref: '#/components/parameters/RequiredConsistencyTimeoutHeader'
responses:
'200':
description: OK
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/APIResponseBase'
- type: object
required:
- result
properties:
result:
$ref: '#/components/schemas/OAuth2ClientSecretResponse'
'400':
$ref: '#/components/responses/BadRequest'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
/oauth2/clients/{oauth_client_id}/ui-configuration:
parameters:
- $ref: '#/components/parameters/OrgIDHeader'
- $ref: '#/components/parameters/OAuthClientIDPathParam'
get:
operationId: GetOauth2UiConfiguration
x-rbac-enabled: true
x-rbac-allowed-groups: admin,member
summary: Retrieve the configuration for the hosted UI
description: 'The configuration is used to theme the hosted UI.
'
tags:
- OAuth2
responses:
'200':
description: OK
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/APIResponseBase'
- type: object
required:
- result
properties:
result:
$ref: '#/components/schemas/OAuthClientUIConfigurationGetResponse'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
put:
operationId: PutOauth2UiConfiguration
x-rbac-enabled: true
x-rbac-allowed-groups: admin
summary: Modify the configuration for the hosted UI
description: 'The configuration is used to theme the hosted UI.
'
tags:
- OAuth2
parameters:
- $ref: '#/components/parameters/RequiredConsistencyHeader'
- $ref: '#/components/parameters/RequiredConsistencyTimeoutHeader'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/OAuthClientUIConfigurationPutRequest'
responses:
'201':
description: Created
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/APIResponseBase'
- type: object
required:
- result
properties:
result:
$ref: '#/components/schemas/OAuthClientUIConfigurationPutResponse'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
/oauth2/authorize:
get:
operationId: GetOauth2Authorize
summary: Request an authorization code
description: 'Used to initiate an authorization code flow.
SlashID is an OAuth 2.0 and OpenID Connect 1.0 provider.
'
tags:
- OAuth2
parameters:
- $ref: '#/components/parameters/ScopeQueryParam'
- $ref: '#/components/parameters/ResponseTypeQueryParam'
- $ref: '#/components/parameters/ClientIDQueryParam'
- $ref: '#/components/parameters/RedirectURIQueryParam'
- $ref: '#/components/parameters/StateQueryParam'
- $ref: '#/components/parameters/CodeChallengeQueryParam'
- $ref: '#/components/parameters/CodeChallengeMethodQueryParam'
- $ref: '#/components/parameters/ResponseModeQueryParam'
- $ref: '#/components/parameters/NonceQueryParam'
- $ref: '#/components/parameters/DisplayQueryParam'
- $ref: '#/components/parameters/PromptQueryParam'
- $ref: '#/components/parameters/MaxAgeQueryParam'
- $ref: '#/components/parameters/UILocalesQueryParam'
- $ref: '#/components/parameters/LoginHintQueryParam'
- $ref: '#/components/parameters/ACRValuesQueryParam'
- $ref: '#/components/parameters/HandleTypesQueryParam'
responses:
'200':
description: OK
content:
text/html:
schema:
type: string
'400':
$ref: '#/components/responses/BadRequest'
'403':
$ref: '#/components/responses/Forbidden'
/oauth2/tokens:
post:
operationId: PostOauth2Tokens
tags:
- OAuth2
security:
- OAuth2ClientIdSecret: []
summary: Obtain an access token
description: 'Obtain a new OAuth 2.0 access token using an OAuth 2.0 client ID/secret pair.
'
requestBody:
content:
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/PostOAuth2TokenRequest'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/PostOAuth2TokenResponse'
'400':
$ref: '#/components/responses/BadRequest'
'403':
$ref: '#/components/responses/Forbidden'
/oauth2/tokens/revoke:
post:
operationId: PostOauth2TokensRevoke
tags:
- OAuth2
security:
- OAuth2ClientIdSecret: []
summary: Revoke a token
description: 'Revoke an OAuth 2.0 token using an OAuth 2.0 client ID/secret pair.
'
requestBody:
content:
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/RevokeOAuth2TokenRequest'
responses:
'200':
$ref: '#/components/responses/OK'
'400':
$ref: '#/components/responses/BadRequest'
'403':
$ref: '#/components/responses/Forbidden'
/oauth2/tokens/revoke-all:
post:
operationId: PostOauth2TokensRevokeAll
tags:
- OAuth2
security:
- OAuth2ClientIdSecret: []
summary: Revoke tokens
description: 'Revoke OAuth 2.0 tokens using an OAuth 2.0 client ID/secret pair.
'
requestBody:
content:
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/RevokeAllOAuth2TokensRequest'
responses:
'200':
$ref: '#/components/responses/OK'
'400':
$ref: '#/components/responses/BadRequest'
'403':
$ref: '#/components/responses/Forbidden'
/oauth2/tokens/introspect:
post:
operationId: PostOauth2TokensIntrospect
tags:
- OAuth2
security:
- OAuth2ClientIdSecret: []
summary: Introspect an access token
description: 'Introspect an OAuth 2.0 access or refresh token using an OAuth 2.0 client ID/secret pair. Note: there is a know issue for this endpoint, whereby the expiry for refresh tokens in the response is incorrect. However, expired refresh tokens will still return a response with `active: false`.
'
requestBody:
content:
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/IntrospectOAuth2TokenRequest'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/IntrospectOAuth2TokenResponse'
'400':
$ref: '#/components/responses/BadRequest'
/oauth2/tokens/mint:
parameters:
- $ref: '#/components/parameters/OrgIDHeader'
post:
operationId: PostOauth2TokensMint
tags:
- OAuth2
security:
- ApiKeyAuth: []
summary: Mint OAuth 2.0 & OIDC tokens
description: "This endpoint creates a set of OAuth 2.0 tokens for a specific user.\n\nTo generate a refresh token request scope `offline_access`.\nTo generate an ID token request scope `openid`.\n\nCustom claims can be specified in the request body which will be added to the token's payload.\nCustom claims are added to the token's payload.\n\nTokens created with this endpoint will have an `authenticated_methods` claim equal to [\"api\"].\n\n\nThe following claims are reserved and cannot be specified:\n - aud\n - exp\n - jti\n - iat\n - iss\n - nbf\n - sub\n - prev_token_id\n - oid\n - org_id\n - user_id\n - person_id\n - first_token\n - authenticated_methods\n - oidc_tokens\n - user_token\n - groups\n - roles\n - access_token\n - refresh_token\n - id\n - id_token\n - gdpr\n - gdpr_consent\n - gdpr_consent_level\n - parent_user_id\n - parent_person_id\n - parent_org_id\n - parent_oid\n - attributes\n - custom_claims\n - slashid\n - slashid.dev\n - slashid.com\n - slashid.me\n - sid\n\n\nWith the following request body:\n\n```\n{\n \"custom_claims\": {\n \"foo\": \"bar\",\n \"baz\": {\"everything\": 42}\n }\n}\n```\n\n\nthe token in the response will have the following payload:\n\n```\n{\n \"authenticated_methods\": [\n \"api\"\n ],\n \"baz\": {\n \"everything\": 42\n },\n \"exp\": <expiration time timestamp>,\n \"first_token\": false,\n \"foo\": \"bar\",\n \"iat\": <issued at timestamp>,\n \"iss\": <token issuer>,\n \"jti\": <token ID>,\n \"oid\": <organisation ID>,\n \"person_id\": <person ID>\n}\n```\n"
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/MintOAuth2TokensRequest'
responses:
'200':
description: OK
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/APIResponseBase'
- type: object
required:
- result
properties:
result:
$ref: '#/components/schemas/MintOAuth2TokensResponse'
'400':
$ref: '#/components/responses/BadRequest'
/oauth2/userinfo:
get:
operationId: GetOauth2Userinfo
tags:
- OAuth2
summary: Retrieve a person's profile
description: 'Given the SlashID Access Token obtained during signin, this endpoint returns a person''s profile.
This endpoint will work only if `openid` was granted as a scope for the Access Token. The information included in the response depends on the scopes requested. For example, a scope of just `openid` may return less information than a scope of `openid profile email`.
'
security:
- OAuth2AccessTokenBearer: []
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/UserinfoOAuth2Response'
'401':
$ref: '#/components/responses/Unauthorized'
post:
operationId: PostOauth2Userinfo
tags:
- OAuth2
summary: Retrieve a person's profile
description: 'Given the SlashID Access Token obtained during signin, this endpoint returns a person''s profile.
This endpoint will work only if `openid` was granted as a scope for the Access Token. The information included in the response depends on the scopes requested. For example, a scope of just `openid` may return less information than a scope of `openid profile email`.
'
security:
- OAuth2AccessTokenBearer: []
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/UserinfoOAuth2Response'
'401':
$ref: '#/components/responses/Unauthorized'
components:
responses:
Forbidden:
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/APIResponseBase'
OK:
description: OK
NoContent:
description: No content
NotFound:
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/APIResponseBase'
Unauthorized:
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/APIResponseBase'
BadRequest:
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/APIResponseBase'
parameters:
RequiredConsistencyHeader:
name: SlashID-Required-Consistency
in: header
description: 'The consistency level required for this request. If the consistency level is not achieved within the timeout, the request will fail with a 408 Request Timeout error.
408 Request Timeout error indicates that request was not handled within the timeout, but it may still be handled after request timeout.
Allowed values: * `local_region`: Wait while the request executes in the local region. * `all_regions`: Wait while the request executes across all regions.
You can learn more about our replication model on our [Cross-region Replication Model](/docs/access/concepts/replication) page.
'
schema:
type: string
enum:
- local_region
- all_regions
default: local_region
HandleTypesQueryParam:
in: query
name: handle_types
schema:
type: string
required: false
ClientIDQueryParam:
in: query
name: client_id
schema:
type: string
required: true
PromptQueryParam:
in: query
name: prompt
schema:
type: string
enum:
- none
- login
required: false
ScopeQueryParam:
in: query
name: scope
schema:
type: string
required: true
NonceQueryParam:
in: query
name: nonce
schema:
type: string
required: false
OrgIDHeader:
name: SlashID-OrgID
in: header
schema:
type: string
required: true
description: The organization ID
example: af5fbd30-7ce7-4548-8b30-4cd59cb2aba1
CodeChallengeQueryParam:
in: query
name: code_challenge
schema:
type: string
required: false
ResponseTypeQueryParam:
in: query
name: response_type
schema:
type: string
required: true
LoginHintQueryParam:
in: query
name: login_hint
schema:
type: string
required: false
CodeChallengeMethodQueryParam:
in: query
name: code_challenge_method
schema:
type: string
required: false
RedirectURIQueryParam:
in: query
name: redirect_uri
schema:
type: string
required: true
OAuthClientIDPathParam:
name: oauth_client_id
description: An OAuth client ID
in: path
required: true
schema:
$ref: '#/components/schemas/OAuthClientID'
ResponseModeQueryParam:
in: query
name: response_mode
schema:
type: string
required: false
RequiredConsistencyTimeoutHeader:
name: SlashID-Required-Consistency-Timeout
in: header
description: 'The maximum amount of seconds to wait for the requested consistency level to be achieved. If the consistency level is not achieved within this time, the request will fail with a 408 Request Timeout error.
408 Request Timeout error indicates that request was not handled within the timeout, but it may still be handled after request timeout.
You can learn more about our replication model on our [Cross-region Replication Model](/docs/access/concepts/replication) page.
'
schema:
type: integer
default: 30
maximum: 120
minimum: 1
DisplayQueryParam:
in: query
name: display
schema:
type: string
enum:
- page
required: false
StateQueryParam:
in: query
name: state
schema:
type: string
required: false
UILocalesQueryParam:
in: query
name: ui_locales
schema:
type: string
required: false
ACRValuesQueryParam:
in: query
name: acr_values
schema:
type: string
required: false
MaxAgeQueryParam:
in: query
name: max_age
schema:
type: integer
format: int32
required: false
schemas:
IntrospectOAuth2TokenRequest:
type: object
required:
- token
properties:
token:
type: string
token_type_hint:
$ref: '#/components/schemas/OAuth2TokenType'
scope:
$ref: '#/components/schemas/OAuth2ScopesSpaceDelimited'
OAuth2Client:
type: object
required:
- client_id
- client_name
- grant_types
- response_types
- scopes
- public
properties:
client_id:
$ref: '#/components/schemas/OAuth2ClientID'
client_name:
$ref: '#/components/schemas/OAuth2ClientName'
grant_types:
$ref: '#/components/schemas/OAuth2ClientGrantTypes'
response_types:
$ref: '#/components/schemas/OAuth2ClientResponseTypes'
scopes:
$ref: '#/components/schemas/OAuth2ClientScopes'
access_token_duration:
$ref: '#/components/schemas/OAuth2ClientAccessTokenDuration'
refresh_token_duration:
$ref: '#/components/schemas/OAuth2ClientRefreshTokenDuration'
public:
$ref: '#/components/schemas/OAuth2ClientPublic'
redirect_uris:
$ref: '#/components/schemas/OAuth2ClientRedirectURIs'
created_at:
type: string
format: date-time
last_used:
type: string
format: date-time
OAuthClientUIConfigurationPutResponse:
$ref: '#/components/schemas/OAuthClientUIConfiguration'
OAuth2ClientRedirectURIs:
description: The client's allowed redirect URIs.
type: array
items:
type: string
format: uri
example:
- https://example.com/redirect
MintOAuth2TokensRequest:
type: object
required:
- person_id
- client_id
properties:
person_id:
$ref: '#/components/schemas/PersonID'
client_id:
$ref: '#/components/schemas/OAuth2ClientID'
scopes:
type: array
items:
type: string
custom_claims:
type: object
additionalProperties: true
PostOAuth2TokenRequestRefreshToken:
type: object
required:
- grant_type
- refresh_token
properties:
grant_type:
$ref: '#/components/schemas/OAuth2GrantType'
refresh_token:
type: string
scope:
$ref: '#/components/schemas/OAuth2ScopesSpaceDelimited'
IntrospectOAuth2TokenResponse:
type: object
required:
- active
properties:
active:
type: boolean
description: Whether the token is active. False for invalid and expired tokens, and tokens that are not granted the scopes specified in the request.
client_id:
type: string
description: The client ID used to create this token. Only included if `active` is `true`.
exp:
type: integer
description: The expiration timestamp of the token. Only included if `active` is `true`.
iat:
type: integer
description: The timestamp when the token was issued. Only included if `active` is `true`.
scope:
type: string
description: The scope granted to the token. Only included if `active` is `true`.
UserinfoOAuth2Response:
type: object
required:
- sub
- iss
- aud
- org_id
properties:
sub:
type: string
description: The subject granted to the token, as a person ID.
iss:
type: string
description: The access token issuer.
aud:
type: string
description: The audience granted to th token, that is, the OAuth2 client ID.
org_id:
type: string
description: The SlashID organization ID granted to the token.
email:
type: string
description: The email address of the person. Only present if the authorization request included scope `email`.
email_verified:
type: boolean
description: Is `true` if the ownership of the email address was verified. `false` otherwise.
phone_number:
type: string
description: The phone number of the person. Only present if the authorization request included scope `phone`.
phone_number_verified:
type: boolean
description: Is `true` if the ownership of the phone number was verified. `false` otherwise.
username:
type: string
description: The username of the person. Only present if the authorization request included scope `username`.
OAuth2ClientSecretResponse:
type: object
required:
- client_secret
properties:
client_secret:
$ref: '#/components/schemas/OAuth2ClientSecret'
OAuth2ClientScopes:
description: The scopes this client is allowed to request.
type: array
items:
$ref: '#/components/schemas/OAuth2Scope'
example:
- admin
- user
OAuth2ClientName:
description: Human-friendly name to identify this client.
type: string
example: My Awesome Application
PostOAuth2TokenResponseRefreshToken:
type: object
required:
- access_token
- token_type
- expires_in
properties:
access_token:
type: string
refresh_token:
type: string
id_token:
type: string
expires_in:
type: integer
description: Number of seconds until the token expires.
scope:
$ref: '#/components/schemas/OAuth2ScopesSpaceDelimited'
token_type:
$ref: '#/components/schemas/OAuth2AuthTokenType'
OAuthClientUIConfigurationPutRequest:
$ref: '#/components/schemas/OAuthClientUIConfiguration'
PostOAuth2TokenResponseClientCredentials:
type: object
required:
- access_token
- token_type
- expires_in
properties:
access_token:
type: string
expires_in:
type: integer
description: Number of seconds until the token expires.
scope:
$ref: '#/components/schemas/OAuth2ScopesSpaceDelimited'
token_type:
$ref: '#/components/schemas/OAuth2AuthTokenType'
PostOAuth2TokenRequestClientCredentials:
type: object
required:
- grant_type
properties:
scope:
$ref: '#/components/schemas/OAuth2ScopesSpaceDelimited'
grant_type:
$ref: '#/components/schemas/OAuth2GrantType'
OAuth2TokenType:
type: string
enum:
- access_token
- refresh_token
- authorize_code
- id_token
APIResponseBase:
type: object
properties:
meta:
$ref: '#/components/schemas/APIMeta'
errors:
type: array
items:
$ref: '#/components/schemas/APIResponseError'
RevokeOAuth2TokenRequest:
type: object
required:
- token
properties:
token:
type: string
token_type_hint:
$ref: '#/components/schemas/OAuth2TokenType'
PatchOAuth2ClientRequest:
type: object
properties:
client_name:
$ref: '#/components/schemas/OAuth2ClientName'
grant_types:
$ref: '#/components/schemas/OAuth2ClientGrantTypes'
scopes:
$ref: '#/components/schemas/OAuth2ClientScopes'
access_token_duration:
$ref: '#/components/schemas/OAuth2ClientAccessTokenDuration'
refresh_token_duratio
# --- truncated at 32 KB (40 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/slashid/refs/heads/main/openapi/slashid-oauth2-api-openapi.yml