Download OpenAPI specification:
Welcome to the django-allauth API specification. This API is intended to be consumed by two different kind of clients:
Web applications running in a browser context. For example, a single-page React application, to which the end user can navigate using a web browser.
Applications, apps for short, executing in non-browser contexts. For example, a mobile Android or iOS application.
The security considerations for these two usage types are different. In a browser context, cookies play a role. Without taking special precautions, your web application may be vulnerable to Cross-Site Request Forgery attacks. For mobile applications, this does not apply.
The API can be used for both use cases. Differences in handling of security is
automatically adjusted for, based on the request path used to make the API call.
For example, signing up can either be done using the
/_allauth/browser/v1/auth/signup or the /_allauth/app/v1/auth/signup
endpoint. For the browser usage, session cookies and CSRF protection
applies. For the app usage, cookies play no role, instead, a session token
is used. The paths of all endpoints are documented in the form of
/_allauth/{client}/v1/auth/signup. Depending on the client type ({client}),
there may be slight differences in request/response handling. This is
documented where applicable.
The following functionality is all in scope and handled as part of this API:
For web applications running in a browser, routing needs to be setup correctly such that the sessions initiated at the backend are accessible in the frontend.
When using the API in a browser context, regular Django sessions are used, along with the usual session cookies. There are several options for setting up the routing of your application.
With single domain, path-based routing, both your frontend and backend are
served from the same domain, for example https://app.org. You will have to
make sure that some paths are served by the frontend, and others by the backend.
With sub-domain based routing, the frontend and backend are served from different domains. However, as session cookies are used, these different domains must share common main domain.
For example, you may use app.project.org for the frontend, which
interfaces with the backend over at backend.project.org. In this
setup, Django will need to be configured with:
SESSION_COOKIE_DOMAIN = "project.org"
CSRF_COOKIE_DOMAIN = "project.org"
If your organization hosts unrelated applications, for example, a CMS for
marketing purposes, on the top level domain (project.org), it is not advisable
to set the session cookie domain to project.org, as those other applications
could get access to the session cookie. In that case, it is advised to use
backend.app.project.org for the backend, and set the session cookie domain to
app.project.org.
For app based usage, cookies play no role, yet, sessions are still used. When a user walks through the authentication flow, a session is created. Having an authenticated session is proof that the user is allowed to further interact with the backend. Unauthenticated sessions are also needed to remember state while the user proceeds to go over the required steps necessary to authenticate.
Given that there is no cookie to point to the session, the header
X-Session-Token is used instead. The way of working is as follows:
If you do not have a session token yet, do not send the X-Session-Token header.
When making requests, session tokens can appear in the metadata
(meta.session_token) of authentication related responses. If a session
token appears, store it (overwriting any previous session token), and ensure
to add the token to the X-Session-Token header of all subsequent requests.
When receiving an authentication related response with status code 410
(Gone), that is meant to indicate that the session is no longer valid.
Remove the session token and start clean.
While session tokens are required to handle the authentication process, depending on your requirements, a different type of token may be needed once authenticated.
For example, your app likely needs access to other APIs as well. These APIs may even be implemented using different technologies, in which case having a stateless token, possibly a JWT encoding the user ID, might be a good fit.
In this API and its implementation no assumptions, and no (limiting) design
decisions are made in this regard. The token strategy of django-allauth is
pluggable, such that you can expose your own access token when the user
authenticates. As for as the API specification is concerned, the access token
will appear in the response of metadata (meta.access_token) of a successful
authentication request. How you can customize the token strategy can be found
over at the documentation of the allauth.headless Django application.
Unless documented otherwise, responses are objects with the following properties:
status, matching the HTTP status code.data key.meta key.errors key.In order to become authenticated, the user must complete a flow, potentially consisting of several steps. For example:
The API signals to the client that (re)authentication is required by means of a
401 or 410 status code:
401.401, with meta.is_authenticated = true.410. This only occurs for clients of type app.All authentication related responses have status 401 or 410, and,
meta.is_authenticated indicating whether authentication, or re-authentication
is required.
The flows the client can perform to initiate or complete the authentication are communicates as part of authentication related responses. The authentication can be initiated by means of these flows:
login).signup).provider_redirect).provider_token).login_by_code).mfa_login_webauthn).mfa_signup_webauthn).Depending on the state of the account, and the configuration of django-allauth, the flows above can either lead to becoming directly authenticated, or, to followup flows:
provider_signup).verify_email).phone_email).mfa_authenticate).mfa_trust).While authenticated, re-authentication may be required to safeguard the account when sensitive actions are performed. The re-authentication flows are the following:
reauthenticate).mfa_reauthenticate).The Django framework, by design, does not perform input sanitization. For
example, there is nothing preventing end users from signing up using <script>
or Robert'); DROP TABLE students as a first name. Django relies on its
template language for proper escaping of such values and mitigate any XSS
attacks.
As a result, any allauth.headless client must have proper XSS protection
in place as well. Be prepared that, for example, the WebAuthn endpoints could
return authenticator names as follows:
{
"name": "<script>alert(1)</script>",
"credential": {
"type": "public-key",
...
}
}
There are many configuration options that alter the functionality and behavior of django-allauth, some of which can also impact the frontend. Therefore, relevant configuration options are exposed via this endpoint. The data returned is not user/authentication dependent. Hence, it suffices to only fetch this data once at boot time of your application.
| client required | string Enum: "app" "browser" The type of client accessing the API. |
{- "data": {
- "account": {
- "authentication_method": "email"
}, - "mfa": {
- "supported_types": [
- "recovery_codes",
- "totp"
]
}, - "socialaccount": {
- "providers": [
- {
- "client_id": "123.apps.googleusercontent.com",
- "flows": [
- "provider_redirect",
- "provider_token"
], - "id": "google",
- "name": "Google",
}
]
}, - "usersessions": {
- "track_activity": false
}
}, - "status": 200
}Logs out the user from the current session.
| client required | string Enum: "app" "browser" The type of client accessing the API. |
| X-Session-Token | string Session token. Only needed when |
{- "data": {
- "flows": [
- {
- "id": "login"
}, - {
- "id": "signup"
}, - {
- "id": "provider_redirect",
- "providers": [
- "facebook",
- "google",
- "telegram"
]
}, - {
- "id": "provider_token",
- "providers": [
- "google"
]
}
]
}, - "meta": {
- "is_authenticated": false
}, - "status": 401
}Retrieve information about the authentication status for the current session.
| client required | string Enum: "app" "browser" The type of client accessing the API. |
| X-Session-Token | string Session token. Only needed when |
{- "data": {
- "methods": [
- {
- "at": 1711555057.065702,
- "email": "email@domain.org",
- "method": "password",
- "username": "wizard"
}
], - "user": {
- "display": "Magic Wizard",
- "email": "email@domain.org",
- "has_usable_password": true,
- "id": 123,
- "username": "wizard"
}
}, - "meta": {
- "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdW",
- "session_token": "ufwcig0zen9skyd545jc0fkq813ghar2",
- "is_authenticated": true
}, - "status": 200
}All functionality related towards authenticating regular username/email-password based accounts.
Obtain email verification information, given the token that was sent to the user by email.
| client required | string Enum: "app" "browser" The type of client accessing the API. |
| X-Email-Verification-Key required | string The email verification key |
{- "data": {
- "email": "email@domain.org",
- "user": {
- "display": "Magic Wizard",
- "email": "email@domain.org",
- "has_usable_password": true,
- "id": 123,
- "username": "wizard"
}
}, - "meta": {
- "is_authenticating": true
}, - "status": 200
}Complete the email verification process. Depending on the configuration, email addresses are either verified by opening a link that is sent to their email address, or, by inputting a code that is sent. On the API, both cases are handled identically. Meaning, the required key is either the one from the link, or, the code itself.
Note that a status code of 401 does not imply failure. It indicates that
the email verification was successful, yet, the user is still not signed
in. For example, in case ACCOUNT_LOGIN_ON_EMAIL_CONFIRMATION is set to
False, a 401 is returned when verifying as part of login/signup.
| client required | string Enum: "app" "browser" The type of client accessing the API. |
| X-Session-Token | string Session token. Only needed when |
| key required | string The email verification key |
{- "key": "2f-c4nqd4-e07d9bc694f9f28cd4fe92569d495333"
}{- "data": {
- "methods": [
- {
- "at": 1711555057.065702,
- "email": "email@domain.org",
- "method": "password",
- "username": "wizard"
}
], - "user": {
- "display": "Magic Wizard",
- "email": "email@domain.org",
- "has_usable_password": true,
- "id": 123,
- "username": "wizard"
}
}, - "meta": {
- "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdW",
- "session_token": "ufwcig0zen9skyd545jc0fkq813ghar2",
- "is_authenticated": true
}, - "status": 200
}Requests a new email verification code.
Requires ACCOUNT_EMAIL_VERIFICATION_SUPPORTS_RESEND = True.
| client required | string Enum: "app" "browser" The type of client accessing the API. |
| X-Session-Token | string Session token. Only needed when |
{- "status": 200
}Login using a username-password or email-password combination.
| client required | string Enum: "app" "browser" The type of client accessing the API. |
Login.
| username required | string (Username) The username. |
| password required | string (Password) The password. |
{- "username": "wizard",
- "password": "Alohomora!"
}{- "data": {
- "methods": [
- {
- "at": 1711555057.065702,
- "email": "email@domain.org",
- "method": "password"
}
], - "user": {
- "display": "Magic Wizard",
- "email": "email@domain.org",
- "has_usable_password": true,
- "id": 123,
- "username": "wizard"
}
}, - "meta": {
- "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdW",
- "is_authenticated": true,
- "session_token": "ufwcig0zen9skyd545jc0fkq813ghar2"
}, - "status": 200
}Complete the phone number verification process. Note that a status code of 401 does not imply failure. It merely indicates that the phone number verification was successful, yet, the user is still not signed in.
| client required | string Enum: "app" "browser" The type of client accessing the API. |
| X-Session-Token | string Session token. Only needed when |
| code required | string The phone verification code |
{- "code": "4S3H82"
}{- "data": {
- "methods": [
- {
- "at": 1711555057.065702,
- "email": "email@domain.org",
- "method": "password",
- "username": "wizard"
}
], - "user": {
- "display": "Magic Wizard",
- "email": "email@domain.org",
- "has_usable_password": true,
- "id": 123,
- "username": "wizard"
}
}, - "meta": {
- "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdW",
- "session_token": "ufwcig0zen9skyd545jc0fkq813ghar2",
- "is_authenticated": true
}, - "status": 200
}Requests a new phone number verification code.
Requires ACCOUNT_PHONE_VERIFICATION_SUPPORTS_RESEND = True.
| client required | string Enum: "app" "browser" The type of client accessing the API. |
| X-Session-Token | string Session token. Only needed when |
{- "status": 200
}In order to safeguard the account, some actions require the user to be
recently authenticated. If you try to perform such an action without
having been recently authenticated, a 401 status is returned, listing
flows that can be performed to reauthenticate. One such flow is the flow
with ID reauthenticate, which allows for the user to input the
password. This is the endpoint related towards that flow.
| client required | string Enum: "app" "browser" The type of client accessing the API. |
| X-Session-Token | string Session token. Only needed when |
Reauthenticate.
| password required | string (Password) The password. |
{- "password": "Alohomora!"
}{- "data": {
- "methods": [
- {
- "at": 1711555057.065702,
- "email": "email@domain.org",
- "method": "password"
}
], - "user": {
- "display": "Magic Wizard",
- "email": "email@domain.org",
- "has_usable_password": true,
- "id": 123,
- "username": "wizard"
}
}, - "meta": {
- "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdW",
- "is_authenticated": true,
- "session_token": "ufwcig0zen9skyd545jc0fkq813ghar2"
}, - "status": 200
}Whether or not username, email, phone or combination of those are
required depends on the configuration of django-allauth. Additionally,
if a custom signup form is used there may be other custom properties
required.
| client required | string Enum: "app" "browser" The type of client accessing the API. |
Signup
| email required | string (Email) The email address. |
| username required | string (Username) The username. |
| password required | string (Password) The password. |
{- "email": "email@domain.org",
- "username": "wizard",
- "password": "Alohomora!"
}{- "data": {
- "methods": [
- {
- "at": 1711555057.065702,
- "email": "email@domain.org",
- "method": "password"
}
], - "user": {
- "display": "Magic Wizard",
- "email": "email@domain.org",
- "has_usable_password": true,
- "id": 123,
- "username": "wizard"
}
}, - "meta": {
- "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdW",
- "is_authenticated": true,
- "session_token": "ufwcig0zen9skyd545jc0fkq813ghar2"
}, - "status": 200
}Initiates the password reset procedure. Depending on whether or not
ACCOUNT_PASSWORD_RESET_BY_CODE_ENABLED is True, the procedure is
either stateless or stateful.
In case codes are used, it is stateful, and a new
password_reset_by_code flow is started. In this case, on a successful
password reset request, you will receive a 401 indicating the pending
status of this flow.
In case password reset is configured to use (stateless) links, you will receive a 200 on a successful password reset request.
| client required | string Enum: "app" "browser" The type of client accessing the API. |
Request password.
| email required | string (Email) The email address. |
{- "email": "email@domain.org"
}{- "status": 200
}Used to obtain information on and validate a password reset key. The
key passed is either the key encoded in the password reset URL that the
user has received per email, or, the password reset code in case of
ACCOUNT_PASSWORD_RESET_BY_CODE_ENABLED. Note that in case of a code,
the number of requests you can make is limited (by
ACCOUNT_PASSWORD_RESET_BY_CODE_MAX_ATTEMPTS).
| client required | string Enum: "app" "browser" The type of client accessing the API. |
| X-Password-Reset-Key required | string The password reset key |
{- "data": {
- "user": {
- "display": "Magic Wizard",
- "email": "email@domain.org",
- "has_usable_password": true,
- "id": 123,
- "username": "wizard"
}
}, - "status": 200
}Perform the password reset, by handing over the password reset key and
the new password. After successfully completing the password reset, the
user is either logged in (in case ACCOUNT_LOGIN_ON_PASSWORD_RESET is
True), or, the user will need to proceed to the login page. In case
of the former, a 200 status code is returned, in case of the latter a
401.
| client required | string Enum: "app" "browser" The type of client accessing the API. |
| key required | string The password reset key |
| password required | string (Password) The password. |
{- "key": "2f-c4nqd4-e07d9bc694f9f28cd4fe92569d495333",
- "password": "Alohomora!"
}{- "data": {
- "methods": [
- {
- "at": 1711555057.065702,
- "email": "email@domain.org",
- "method": "password"
}
], - "user": {
- "display": "Magic Wizard",
- "email": "email@domain.org",
- "has_usable_password": true,
- "id": 123,
- "username": "wizard"
}
}, - "meta": {
- "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdW",
- "is_authenticated": true,
- "session_token": "ufwcig0zen9skyd545jc0fkq813ghar2"
}, - "status": 200
}Initiates the third-party provider authentication redirect flow. As calling this endpoint results in a user facing redirect (302), this call is only available in a browser, and must be called in a synchronous (non-XHR) manner.
Initiate the provider redirect flow.
| callback_url required | string The URL to return to after the redirect flow is complete. Note that this is not to be mistaken with the callback URL that you configure over at the OAuth provider during the OAuth app/client setup. The flow is as follows:
|
| process required | string (Process) Enum: "login" "connect" The process to be executed when the user successfully
authenticates. When set to |
| provider required | string (ProviderID) The provider ID. |
If, while signing up using a third-party provider account, there is insufficient information received from the provider to automatically complete the signup process, an additional step is needed to complete the missing data before the user is fully signed up and authenticated. The information available so far, such as the pending provider account, can be retrieved via this endpoint.
| client required | string Enum: "app" "browser" The type of client accessing the API. |
{- "data": {
- "account": {
- "display": "Wizzkid",
- "provider": {
- "client_id": "123.apps.googleusercontent.com",
- "flows": [
- "provider_redirect"
], - "id": "google",
- "name": "Google",
}, - "uid": "goo12345"
}, - "email": [
- {
- "email": "email@domain.org",
- "primary": true,
- "verified": false
}
], - "user": {
- "display": "Magic Wizard",
- "email": "email@domain.org",
- "has_usable_password": true,
- "id": 123,
- "username": "wizard"
}
}, - "status": 200
}If, while signing up using a third-party provider account, there is insufficient information received from the provider to automatically complete the signup process, an additional step is needed to complete the missing data before the user is fully signed up and authenticated.
| client required | string Enum: "app" "browser" The type of client accessing the API. |
Provider signup.
| email required | string (Email) The email address. |
| username required | string (Username) The username. |
{- "email": "email@domain.org",
- "username": "wizard"
}{- "data": {
- "methods": [
- {
- "at": 1711555057.065702,
- "email": "email@domain.org",
- "method": "password",
- "username": "wizard"
}
], - "user": {
- "display": "Magic Wizard",
- "email": "email@domain.org",
- "has_usable_password": true,
- "id": 123,
- "username": "wizard"
}
}, - "meta": {
- "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdW",
- "session_token": "ufwcig0zen9skyd545jc0fkq813ghar2",
- "is_authenticated": true
}, - "status": 200
}Authenticates with a third-party provider using provider tokens received by other means. For example, in case of a mobile app, the authentication flow runs completely on the device itself, without any interaction with the API. Then, when the (device) authentication completes and the mobile app receives an access and/or ID token, it can hand over these tokens via this endpoint to authenticate on the server.
| client required | string Enum: "app" "browser" The type of client accessing the API. |
| X-Session-Token | string Session token. Only needed when |
| process required | string (Process) Enum: "login" "connect" The process to be executed when the user successfully
authenticates. When set to |
| provider required | string (ProviderID) The provider ID. |
required | object The token. |
{- "process": "login",
- "provider": "google",
- "token": {
- "access_token": "36POk6yJV_adQs",
- "client_id": "123.apps.googleusercontent.com",
- "id_token": "eyJhbGciOiJI"
}
}{- "data": {
- "methods": [
- {
- "at": 1711555057.065702,
- "email": "email@domain.org",
- "method": "password",
- "username": "wizard"
}
], - "user": {
- "display": "Magic Wizard",
- "email": "email@domain.org",
- "has_usable_password": true,
- "id": 123,
- "username": "wizard"
}
}, - "meta": {
- "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdW",
- "session_token": "ufwcig0zen9skyd545jc0fkq813ghar2",
- "is_authenticated": true
}, - "status": 200
}Use this endpoint to pass along the received "special" login code.
| client required | string Enum: "app" "browser" The type of client accessing the API. |
| code required | string (Code) An one-time code. |
{- "code": "NQ3TM5"
}{- "data": {
- "methods": [
- {
- "at": 1711555057.065702,
- "email": "email@domain.org",
- "method": "code"
}
], - "user": {
- "display": "Magic Wizard",
- "email": "email@domain.org",
- "has_usable_password": true,
- "id": 123,
- "username": "wizard"
}
}, - "meta": {
- "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdW",
- "is_authenticated": true,
- "session_token": "ufwcig0zen9skyd545jc0fkq813ghar2"
}, - "status": 200
}Request a "special" login code that is sent to the user by email.
| client required | string Enum: "app" "browser" The type of client accessing the API. |
Request a login code.
| phone required | string (Phone) The phone number. |
{- "phone": "+314159265359"
}{- "errors": [
- {
- "code": "invalid",
- "message": "Enter a valid email address.",
- "param": "email"
}
], - "status": 400
}Requests a new login code.
Requires ACCOUNT_LOGIN_BY_CODE_SUPPORTS_RESEND = True.
| client required | string Enum: "app" "browser" The type of client accessing the API. |
| X-Session-Token | string Session token. Only needed when |
{- "status": 200
}The API used for manipulating the email addresses attached to a given
account. This is intentionally modeled as one endpoint, representing the
collection of all the email addresses. Note that manipulating one email
address may affect another. For example, marking one email address as
primary implies the previous primary email address is changed as
well. Also, if django-allauth is configured with ACCOUNT_CHANGE_EMAIL = True, verifying the email address the user is changing to will cause the
previous email addres to be removed.
Used to remove an email address.
| client required | string Enum: "app" "browser" The type of client accessing the API. |
| X-Session-Token | string Session token. Only needed when |
| email required | string (Email) The email address. |
{- "email": "email@domain.org"
}{- "data": [
- {
- "email": "email@domain.org",
- "primary": true,
- "verified": false
}
], - "status": 200
}Retrieves the list of email addresses of the account.
| client required | string Enum: "app" "browser" The type of client accessing the API. |
| X-Session-Token | string Session token. Only needed when |
{- "data": [
- {
- "email": "email@domain.org",
- "primary": true,
- "verified": false
}
], - "status": 200
}Used to change primary email address to a different one. Note that only verified email addresses can be marked as primary.
| client required | string Enum: "app" "browser" The type of client accessing the API. |
| X-Session-Token | string Session token. Only needed when |
| email required | string An email address. |
| primary required | boolean Value: true Primary flag. |
{- "email": "email@domain.org",
- "primary": true
}{- "data": [
- {
- "email": "email@domain.org",
- "primary": true,
- "verified": false
}
], - "status": 200
}The following functionality is available:
ACCOUNT_CHANGE_EMAIL = False).ACCOUNT_CHANGE_EMAIL = True).ACCOUNT_EMAIL_VERIFICATION_SUPPORTS_CHANGE = True).In all cases, an email verification mail will be sent containing a link or code that needs to be verified.
| client required | string Enum: "app" "browser" The type of client accessing the API. |
| X-Session-Token | string Session token. Only needed when |
| email required | string (Email) The email address. |
{- "email": "email@domain.org"
}{- "data": [
- {
- "email": "email@domain.org",
- "primary": true,
- "verified": false
}
], - "status": 200
}Requests for (another) email verification email to be sent. Note that sending emails is rate limited, so when you send too many requests the email will not be sent.
| client required | string Enum: "app" "browser" The type of client accessing the API. |
| X-Session-Token | string Session token. Only needed when |
| email required | string (Email) The email address. |
{- "email": "email@domain.org"
}{- "status": 200
}In order to change the password of an account, the current and new password must be provider. However, accounts that were created by signing up using a third-party provider do not have a password set. In that case, the current password is not required.
| client required | string Enum: "app" "browser" The type of client accessing the API. |
| X-Session-Token | string Session token. Only needed when |
| current_password | string (Password) The password. |
| new_password required | string The current password. |
{- "current_password": "Alohomora!",
- "new_password": "Aberto!"
}{- "errors": [
- {
- "code": "invalid",
- "message": "Enter a valid email address.",
- "param": "email"
}
], - "status": 400
}Retrieves the phone number of the account, if any. Note that while the endpoint returns a list of phone numbers, at most one entry is returned.
| client required | string Enum: "app" "browser" The type of client accessing the API. |
| X-Session-Token | string Session token. Only needed when |
{- "data": [
- {
- "phone": "+314159265359",
- "verified": true
}
], - "status": 200
}The following functionality is available:
ACCOUNT_PHONE_VERIFICATION_SUPPORTS_CHANGE = True.In both cases, after posting a new phone number, proceed with the phone verification endpoint to confirm the change of the phone number by posting the verification code.
| client required | string Enum: "app" "browser" The type of client accessing the API. |
| X-Session-Token | string Session token. Only needed when |
| phone required | string |
{- "phone": "+314159265359"
}{- "data": [
- {
- "phone": "+314159265359",
- "verified": false
}
], - "status": 202
}Management of third-party provider accounts that are connected to the authenticated account.
Disconnect a third-party provider account, returning the remaining accounts that are still connected. The disconnect is not allowed if it would leave the account unusable. For example, if no password was set up yet.
| client required | string Enum: "app" "browser" The type of client accessing the API. |
| X-Session-Token | string Session token. Only needed when |
| account required | string (ProviderAccountID) The provider specific account ID. |
| provider required | string (ProviderID) The provider ID. |
{- "account": "goo12345",
- "provider": "google"
}{- "data": [
- {
- "display": "Wizzkid",
- "provider": {
- "client_id": "123.apps.googleusercontent.com",
- "flows": [
- "provider_redirect"
], - "id": "google",
- "name": "Google",
}, - "uid": "goo12345"
}
], - "status": 200
}| client required | string Enum: "app" "browser" The type of client accessing the API. |
| X-Session-Token | string Session token. Only needed when |
{- "data": [
- {
- "display": "Wizzkid",
- "provider": {
- "client_id": "123.apps.googleusercontent.com",
- "flows": [
- "provider_redirect"
], - "id": "google",
- "name": "Google",
}, - "uid": "goo12345"
}
], - "status": 200
}Used to retrieve a new access token. Depending on settings.HEADLESS_JWT_ROTATE_REFRESH_TOKEN,
a new refresh token is returned as well.
| refresh_token required | string (RefreshToken) The refresh token. |
{- "refresh_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.QV30"
}{- "data": {
- "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdW",
- "refresh_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.QV30"
}, - "status": 200
}