openapi: 3.0.0
info:
title: Auth0 Authentication actions client-grants API
description: Auth0 Authentication API. Endpoints for authentication and authorization using OpenID Connect, OAuth 2.0, SAML, WS-Federation, and Passwordless flows.
version: 1.0.0
servers:
- url: '{auth0_domain}'
description: The Authentication API is served over HTTPS.
variables:
auth0_domain:
description: Auth0 domain
default: https://demo.us.auth0.com
tags:
- name: client-grants
paths:
/client-grants:
get:
summary: Get Client Grants
description: 'Retrieve a list of client grants, including the scopes associated with the application/API pair.
'
tags:
- client-grants
parameters:
- name: per_page
in: query
description: Number of results per page.
schema:
type: integer
minimum: 1
maximum: 100
- name: page
in: query
description: Page index of the results to return. First page is 0.
schema:
type: integer
minimum: 0
- name: include_totals
in: query
description: Return results inside an object that contains the total result count (true) or as a direct array of results (false, default).
schema:
type: boolean
- name: from
in: query
description: Optional Id from which to start selection.
schema:
type: string
- name: take
in: query
description: Number of results per page. Defaults to 50.
schema:
type: integer
minimum: 1
maximum: 100
- name: audience
in: query
description: Optional filter on audience.
schema:
type: string
- name: client_id
in: query
description: Optional filter on client_id.
schema:
type: string
- name: allow_any_organization
in: query
description: Optional filter on allow_any_organization.
schema:
$ref: '#/components/schemas/ClientGrantAllowAnyOrganizationEnum'
- name: subject_type
in: query
description: The type of application access the client grant allows.
schema:
$ref: '#/components/schemas/ClientGrantSubjectTypeEnum'
- name: default_for
in: query
description: Applies this client grant as the default for all clients in the specified group. The only accepted value is `third_party_clients`, which applies the grant to all third-party clients. Per-client grants for the same audience take precedence. Mutually exclusive with `client_id`.
schema:
$ref: '#/components/schemas/ClientGrantDefaultForEnum'
x-release-lifecycle: GA
x-release-lifecycle: GA
responses:
'200':
description: Client grants successfully retrieved.
content:
application/json:
schema:
$ref: '#/components/schemas/ListClientGrantResponseContent'
'401':
description: Invalid token.
x-description-1: Client is not global.
x-description-2: Invalid signature received for JSON Web Token validation.
'403':
description: 'Insufficient scope; expected any of: read:client_grants.'
'429':
description: Too many requests. Check the X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset headers.
operationId: get_client-grants
x-release-lifecycle: GA
x-operation-name: list
x-operation-request-parameters-name: ListClientGrantsRequestParameters
x-operation-group: clientGrants
security:
- bearerAuth: []
- oAuth2ClientCredentials:
- read:client_grants
post:
summary: Create Client Grant
description: Create a client grant for a machine-to-machine login flow. To learn more, read Client Credential Flow.
tags:
- client-grants
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CreateClientGrantRequestContent'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/CreateClientGrantRequestContent'
responses:
'201':
description: Client grant successfully created.
content:
application/json:
schema:
$ref: '#/components/schemas/CreateClientGrantResponseContent'
'400':
description: Invalid request body. The message will vary depending on the cause.
x-description-1: Client grants for this API cannot be created for third-party clients. The message will vary depending on the API and client type.
'401':
description: Invalid token.
x-description-1: Client is not global.
x-description-2: Invalid signature received for JSON Web Token validation.
'403':
description: 'Insufficient scope; expected any of: create:client_grants.'
'404':
description: Resource server not found
x-description-1: Client not found
'409':
description: A resource server with the same identifier already exists.
'429':
description: Too many requests. Check the X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset headers.
operationId: post_client-grants
x-release-lifecycle: GA
x-operation-name: create
x-operation-group: clientGrants
security:
- bearerAuth: []
- oAuth2ClientCredentials:
- create:client_grants
/client-grants/{id}:
get:
summary: Get Client Grant
description: 'Retrieve a single client grant, including the
scopes associated with the application/API pair.
'
tags:
- client-grants
parameters:
- name: id
in: path
description: The ID of the client grant to retrieve.
required: true
schema:
type: string
responses:
'200':
description: Client grant successfully retrieved.
content:
application/json:
schema:
$ref: '#/components/schemas/GetClientGrantResponseContent'
'401':
description: Invalid token.
x-description-1: Client is not global.
x-description-2: Invalid signature received for JSON Web Token validation.
'403':
description: 'Insufficient scope; expected any of: read:client_grants.'
'404':
description: The grant does not exist.
'429':
description: Too many requests. Check the X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset headers.
operationId: get_client-grant
x-release-lifecycle: GA
x-operation-name: get
x-operation-request-parameters-name: GetClientGrantRequestParameters
x-operation-group: clientGrants
security:
- bearerAuth: []
- oAuth2ClientCredentials:
- read:client_grants
delete:
summary: Delete Client Grant
description: 'Delete the Client Credential Flow from your machine-to-machine application.
'
tags:
- client-grants
parameters:
- name: id
in: path
description: ID of the client grant to delete.
required: true
schema:
type: string
responses:
'204':
description: Client grant successfully deleted.
'400':
description: Invalid request URI. The message will vary depending on the cause.
'401':
description: Invalid token.
x-description-1: Client is not global.
x-description-2: Invalid signature received for JSON Web Token validation.
'403':
description: 'Insufficient scope; expected any of: delete:client_grants.'
'429':
description: Too many requests. Check the X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset headers.
operationId: delete_client-grants_by_id
x-release-lifecycle: GA
x-operation-name: delete
x-operation-group: clientGrants
security:
- bearerAuth: []
- oAuth2ClientCredentials:
- delete:client_grants
patch:
summary: Update Client Grant
description: Update a client grant.
tags:
- client-grants
parameters:
- name: id
in: path
description: ID of the client grant to update.
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateClientGrantRequestContent'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/UpdateClientGrantRequestContent'
responses:
'200':
description: Client grant successfully updated.
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateClientGrantResponseContent'
'400':
description: Invalid request URI. The message will vary depending on the cause.
x-description-1: Invalid request body. The message will vary depending on the cause.
'401':
description: Invalid token.
x-description-1: Client is not global.
x-description-2: Invalid signature received for JSON Web Token validation.
'403':
description: 'Insufficient scope; expected any of: update:client_grants.'
'404':
description: The client grant does not exist.
'429':
description: Too many requests. Check the X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset headers.
operationId: patch_client-grants_by_id
x-release-lifecycle: GA
x-operation-name: update
x-operation-group: clientGrants
security:
- bearerAuth: []
- oAuth2ClientCredentials:
- update:client_grants
/client-grants/{id}/organizations:
get:
summary: Get the Organizations Associated to a Client Grant
tags:
- client-grants
parameters:
- name: id
in: path
description: ID of the client grant
required: true
schema:
type: string
- name: page
in: query
description: Page index of the results to return. First page is 0.
schema:
type: integer
minimum: 0
- name: per_page
in: query
description: Number of results per page. Defaults to 50.
schema:
type: integer
minimum: 1
maximum: 100
- name: include_totals
in: query
description: Return results inside an object that contains the total result count (true) or as a direct array of results (false, default).
schema:
type: boolean
- name: from
in: query
description: Optional Id from which to start selection.
schema:
type: string
- name: take
in: query
description: Number of results per page. Defaults to 50.
schema:
type: integer
minimum: 1
maximum: 100
responses:
'200':
description: Organizations successfully retrieved.
content:
application/json:
schema:
$ref: '#/components/schemas/ListClientGrantOrganizationsResponseContent'
'400':
description: Invalid request query string. The message will vary depending on the cause.
x-description-1: Invalid query string paging options. The message will vary depending on the cause
'401':
description: Invalid token.
x-description-1: Invalid signature received for JSON Web Token validation.
x-description-2: Client is not global.
'403':
description: 'Insufficient scope; expected any of: read:organization_client_grants.'
'429':
description: Too many requests. Check the X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset headers.
operationId: get_client-grant-organizations
x-release-lifecycle: GA
x-operation-name: list
x-operation-request-parameters-name: ListClientGrantOrganizationsRequestParameters
x-operation-group:
- clientGrants
- organizations
security:
- bearerAuth: []
- oAuth2ClientCredentials:
- read:organization_client_grants
components:
schemas:
ListClientGrantOffsetPaginatedResponseContent:
type: object
additionalProperties: false
properties:
start:
type: number
limit:
type: number
total:
type: number
client_grants:
type: array
items:
$ref: '#/components/schemas/ClientGrantResponseContent'
CreateClientGrantResponseContent:
type: object
additionalProperties: false
properties:
id:
type: string
description: ID of the client grant.
client_id:
type: string
description: ID of the client.
audience:
type: string
description: The audience (API identifier) of this client grant.
minLength: 1
scope:
type: array
description: Scopes allowed for this client grant.
items:
type: string
minLength: 1
organization_usage:
$ref: '#/components/schemas/ClientGrantOrganizationUsageEnum'
allow_any_organization:
type: boolean
description: If enabled, any organization can be used with this grant. If disabled (default), the grant must be explicitly assigned to the desired organizations.
default_for:
$ref: '#/components/schemas/ClientGrantDefaultForEnum'
x-release-lifecycle: GA
is_system:
type: boolean
description: If enabled, this grant is a special grant created by Auth0. It cannot be modified or deleted directly.
subject_type:
$ref: '#/components/schemas/ClientGrantSubjectTypeEnum'
authorization_details_types:
type: array
description: Types of authorization_details allowed for this client grant.
items:
type: string
minLength: 1
maxLength: 255
allow_all_scopes:
type: boolean
description: If enabled, all scopes configured on the resource server are allowed for this grant.
ListClientGrantOrganizationsResponseContent:
oneOf:
- type: array
items:
$ref: '#/components/schemas/Organization'
- $ref: '#/components/schemas/ListClientGrantOrganizationsOffsetPaginatedResponseContent'
- $ref: '#/components/schemas/ListClientGrantOrganizationsPaginatedResponseContent'
CreateClientGrantRequestContent:
type: object
additionalProperties: false
required:
- audience
properties:
client_id:
type: string
description: ID of the client.
audience:
type: string
description: The audience (API identifier) of this client grant
minLength: 1
default_for:
$ref: '#/components/schemas/ClientGrantDefaultForEnum'
x-release-lifecycle: GA
organization_usage:
$ref: '#/components/schemas/ClientGrantOrganizationUsageEnum'
allow_any_organization:
type: boolean
description: If enabled, any organization can be used with this grant. If disabled (default), the grant must be explicitly assigned to the desired organizations.
default: false
scope:
type: array
description: Scopes allowed for this client grant.
items:
type: string
minLength: 1
maxLength: 280
subject_type:
$ref: '#/components/schemas/ClientGrantSubjectTypeEnum'
authorization_details_types:
type: array
description: Types of authorization_details allowed for this client grant.
items:
type: string
minLength: 1
maxLength: 255
allow_all_scopes:
type: boolean
description: If enabled, all scopes configured on the resource server are allowed for this grant.
OrganizationBranding:
type: object
description: Theme defines how to style the login pages.
additionalProperties: false
properties:
logo_url:
type: string
description: URL of logo to display on login page.
format: strict-https-uri-or-null
colors:
$ref: '#/components/schemas/OrganizationBrandingColors'
GetClientGrantResponseContent:
type: object
additionalProperties: false
properties:
id:
type: string
description: ID of the client grant.
client_id:
type: string
description: ID of the client.
audience:
type: string
description: The audience (API identifier) of this client grant.
minLength: 1
scope:
type: array
description: Scopes allowed for this client grant.
items:
type: string
minLength: 1
organization_usage:
$ref: '#/components/schemas/ClientGrantOrganizationUsageEnum'
allow_any_organization:
type: boolean
description: If enabled, any organization can be used with this grant. If disabled (default), the grant must be explicitly assigned to the desired organizations.
default_for:
$ref: '#/components/schemas/ClientGrantDefaultForEnum'
x-release-lifecycle: GA
is_system:
type: boolean
description: If enabled, this grant is a special grant created by Auth0. It cannot be modified or deleted directly.
subject_type:
$ref: '#/components/schemas/ClientGrantSubjectTypeEnum'
authorization_details_types:
type: array
description: Types of authorization_details allowed for this client grant.
items:
type: string
minLength: 1
maxLength: 255
allow_all_scopes:
type: boolean
description: If enabled, all scopes configured on the resource server are allowed for this grant.
TokenQuota:
type: object
additionalProperties: false
required:
- client_credentials
x-release-lifecycle: EA
properties:
client_credentials:
$ref: '#/components/schemas/TokenQuotaClientCredentials'
ListClientGrantOrganizationsOffsetPaginatedResponseContent:
type: object
additionalProperties: false
properties:
start:
type: number
limit:
type: number
total:
type: number
organizations:
type: array
items:
$ref: '#/components/schemas/Organization'
ClientGrantSubjectTypeEnum:
type: string
enum:
- client
- user
description: The type of application access the client grant allows.
UpdateClientGrantResponseContent:
type: object
additionalProperties: false
properties:
id:
type: string
description: ID of the client grant.
client_id:
type: string
description: ID of the client.
audience:
type: string
description: The audience (API identifier) of this client grant.
minLength: 1
scope:
type: array
description: Scopes allowed for this client grant.
items:
type: string
minLength: 1
organization_usage:
$ref: '#/components/schemas/ClientGrantOrganizationUsageEnum'
allow_any_organization:
type: boolean
description: If enabled, any organization can be used with this grant. If disabled (default), the grant must be explicitly assigned to the desired organizations.
default_for:
$ref: '#/components/schemas/ClientGrantDefaultForEnum'
x-release-lifecycle: GA
is_system:
type: boolean
description: If enabled, this grant is a special grant created by Auth0. It cannot be modified or deleted directly.
subject_type:
$ref: '#/components/schemas/ClientGrantSubjectTypeEnum'
authorization_details_types:
type: array
description: Types of authorization_details allowed for this client grant.
items:
type: string
minLength: 1
maxLength: 255
allow_all_scopes:
type: boolean
description: If enabled, all scopes configured on the resource server are allowed for this grant.
UpdateClientGrantRequestContent:
type: object
additionalProperties: false
minProperties: 1
properties:
scope:
type:
- array
- 'null'
description: Scopes allowed for this client grant.
items:
type: string
minLength: 1
maxLength: 280
organization_usage:
$ref: '#/components/schemas/ClientGrantOrganizationNullableUsageEnum'
allow_any_organization:
type:
- boolean
- 'null'
description: Controls allowing any organization to be used with this grant
authorization_details_types:
type: array
description: Types of authorization_details allowed for this client grant.
items:
type: string
minLength: 1
maxLength: 255
allow_all_scopes:
type:
- boolean
- 'null'
description: If enabled, all scopes configured on the resource server are allowed for this grant.
ListClientGrantOrganizationsPaginatedResponseContent:
type: object
additionalProperties: false
properties:
next:
type: string
description: Opaque identifier for use with the from query parameter for the next page of results.
This identifier is valid for 24 hours.
organizations:
type: array
items:
$ref: '#/components/schemas/Organization'
OrganizationBrandingColors:
type: object
description: Color scheme used to customize the login pages.
additionalProperties: false
required:
- primary
- page_background
properties:
primary:
type: string
description: HEX Color for primary elements.
format: html-color
page_background:
type: string
description: HEX Color for background.
format: html-color
Organization:
type: object
additionalProperties: true
properties:
id:
type: string
description: Organization identifier.
maxLength: 50
format: organization-id
name:
type: string
description: The name of this organization.
default: organization-1
minLength: 1
maxLength: 50
format: organization-name
display_name:
type: string
description: Friendly name of this organization.
default: Acme Users
minLength: 1
maxLength: 255
branding:
$ref: '#/components/schemas/OrganizationBranding'
metadata:
$ref: '#/components/schemas/OrganizationMetadata'
token_quota:
$ref: '#/components/schemas/TokenQuota'
x-release-lifecycle: EA
ClientGrantAllowAnyOrganizationEnum:
type: boolean
enum:
- true
description: Optional filter on allow_any_organization.
TokenQuotaClientCredentials:
type: object
description: The token quota configuration
additionalProperties: false
minProperties: 1
properties:
enforce:
type: boolean
description: If enabled, the quota will be enforced and requests in excess of the quota will fail. If disabled, the quota will not be enforced, but notifications for requests exceeding the quota will be available in logs.
per_day:
type: integer
description: Maximum number of issued tokens per day
minimum: 1
maximum: 2147483647
per_hour:
type: integer
description: Maximum number of issued tokens per hour
minimum: 1
maximum: 2147483647
ClientGrantResponseContent:
type: object
additionalProperties: false
properties:
id:
type: string
description: ID of the client grant.
client_id:
type: string
description: ID of the client.
audience:
type: string
description: The audience (API identifier) of this client grant.
minLength: 1
scope:
type: array
description: Scopes allowed for this client grant.
items:
type: string
minLength: 1
organization_usage:
$ref: '#/components/schemas/ClientGrantOrganizationUsageEnum'
allow_any_organization:
type: boolean
description: If enabled, any organization can be used with this grant. If disabled (default), the grant must be explicitly assigned to the desired organizations.
default_for:
$ref: '#/components/schemas/ClientGrantDefaultForEnum'
x-release-lifecycle: GA
is_system:
type: boolean
description: If enabled, this grant is a special grant created by Auth0. It cannot be modified or deleted directly.
subject_type:
$ref: '#/components/schemas/ClientGrantSubjectTypeEnum'
authorization_details_types:
type: array
description: Types of authorization_details allowed for this client grant.
items:
type: string
minLength: 1
maxLength: 255
allow_all_scopes:
type: boolean
description: If enabled, all scopes configured on the resource server are allowed for this grant.
ClientGrantOrganizationNullableUsageEnum:
type:
- string
- 'null'
description: Controls how organizations may be used with this grant
enum:
- deny
- allow
- require
- null
ListClientGrantPaginatedResponseContent:
type: object
additionalProperties: false
properties:
next:
type: string
description: Opaque identifier for use with the from query parameter for the next page of results.
This identifier is valid for 24 hours.
client_grants:
type: array
items:
$ref: '#/components/schemas/ClientGrantResponseContent'
OrganizationMetadata:
type: object
description: Metadata associated with the organization, in the form of an object with string values (max 255 chars). Maximum of 25 metadata properties allowed.
additionalProperties:
type:
- string
- 'null'
maxLength: 255
maxProperties: 25
ClientGrantOrganizationUsageEnum:
type: string
description: Defines whether organizations can be used with client credentials exchanges for this grant.
enum:
- deny
- allow
- require
ListClientGrantResponseContent:
oneOf:
- type: array
items:
$ref: '#/components/schemas/ClientGrantResponseContent'
- $ref: '#/components/schemas/ListClientGrantOffsetPaginatedResponseContent'
- $ref: '#/components/schemas/ListClientGrantPaginatedResponseContent'
ClientGrantDefaultForEnum:
type: string
enum:
- third_party_clients
x-release-lifecycle: GA
description: Applies this client grant as the default for all clients in the specified group. The only accepted value is `third_party_clients`, which applies the grant to all third-party clients. Per-client grants for the same audience take precedence. Mutually exclusive with `client_id`.