Nhost verification API
Email and ticket verification operations for confirming user actions
Email and ticket verification operations for confirming user actions
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/nhost-verification-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
version: 1.0.0
title: Nhost Authentication Verification API
description: Comprehensive authentication service for managing user identities, sessions, and authentication methods
license:
name: MIT License
url: https://opensource.org/licenses/MIT
contact:
name: Nhost Support
email: support@nhost.io
url: https://nhost.io
servers:
- url: https://{subdomain}.auth.{region}.nhost.run/v1
description: Nhost Authentication API Server
tags:
- name: verification
description: Email and ticket verification operations for confirming user actions
paths:
/signup/webauthn/verify:
post:
summary: Verify Webauthn sign-up
description: Complete the Webauthn sign-up process by verifying the response from the user's device. Returns a session if validation is successful.
operationId: verifySignUpWebauthn
requestBody:
description: WebAuthn credential creation response and optional user profile information
content:
application/json:
schema:
$ref: '#/components/schemas/SignUpWebauthnVerifyRequest'
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/SessionPayload'
description: Sign up successful
default:
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
description: An error occurred while processing the request
tags:
- verification
/verify:
get:
summary: Verify email and authentication tickets
description: Verify tickets created by email verification, magic link authentication, or password reset processes. Redirects the user to the appropriate destination upon successful verification.
operationId: verifyTicket
tags:
- verification
parameters:
- $ref: '#/components/parameters/TicketQuery'
- $ref: '#/components/parameters/TicketTypeQuery'
- $ref: '#/components/parameters/RedirectToQuery'
responses:
'302':
description: Redirect response
headers:
Location:
$ref: '#/components/headers/RedirectLocation'
content: {}
default:
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
description: An error occurred while processing the request
components:
schemas:
User:
type: object
description: User profile and account information
additionalProperties: false
properties:
avatarUrl:
type: string
description: URL to the user's profile picture
example: https://myapp.com/avatars/user123.jpg
createdAt:
format: date-time
type: string
description: Timestamp when the user account was created
example: '2023-01-15T12:34:56Z'
defaultRole:
example: user
type: string
description: Default authorization role for the user
displayName:
example: John Smith
type: string
description: User's display name
email:
description: User's email address
example: john.smith@nhost.io
format: email
type: string
emailVerified:
type: boolean
description: Whether the user's email has been verified
example: true
id:
description: Unique identifier for the user
example: 2c35b6f3-c4b9-48e3-978a-d4d0f1d42e24
pattern: \b[0-9a-f]{8}\b-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-\b[0-9a-f]{12}\b
type: string
isAnonymous:
type: boolean
description: Whether this is an anonymous user account
example: false
locale:
description: User's preferred locale (language code)
example: en
maxLength: 2
minLength: 2
type: string
metadata:
type: object
additionalProperties: true
description: Custom metadata associated with the user
example:
firstName: John
lastName: Smith
properties: {}
phoneNumber:
type: string
description: User's phone number
example: '+12025550123'
phoneNumberVerified:
type: boolean
description: Whether the user's phone number has been verified
example: false
roles:
example:
- user
- customer
type: array
description: List of roles assigned to the user
items:
type: string
activeMfaType:
type:
- string
- 'null'
description: Active MFA type for the user
required:
- avatarUrl
- createdAt
- defaultRole
- displayName
- emailVerified
- id
- isAnonymous
- locale
- metadata
- phoneNumberVerified
- roles
ErrorResponse:
type: object
description: Standardized error response
additionalProperties: false
properties:
status:
description: HTTP status error code
type: integer
example: 400
message:
description: Human-friendly error message
type: string
example: Invalid email format
error:
description: Error code identifying the specific application error
type: string
enum:
- default-role-must-be-in-allowed-roles
- disabled-endpoint
- disabled-user
- email-already-in-use
- email-already-verified
- forbidden-anonymous
- internal-server-error
- invalid-email-password
- invalid-request
- locale-not-allowed
- password-too-short
- password-in-hibp-database
- redirectTo-not-allowed
- role-not-allowed
- signup-disabled
- unverified-user
- user-not-anonymous
- invalid-pat
- invalid-refresh-token
- invalid-ticket
- disabled-mfa-totp
- no-totp-secret
- invalid-totp
- mfa-type-not-found
- totp-already-active
- invalid-state
- oauth-token-echange-failed
- oauth-profile-fetch-failed
- oauth-provider-error
- invalid-otp
- cannot-send-sms
required:
- status
- message
- error
SignUpWebauthnVerifyRequest:
type: object
additionalProperties: false
properties:
credential:
$ref: '#/components/schemas/CredentialCreationResponse'
options:
$ref: '#/components/schemas/SignUpOptions'
nickname:
description: Nickname for the security key
type: string
required:
- credential
SignUpOptions:
type: object
additionalProperties: false
properties:
allowedRoles:
example:
- me
- user
type: array
items:
type: string
defaultRole:
example: user
type: string
displayName:
example: John Smith
type: string
pattern: ^[\p{L}\p{N}\p{S} ,.'-]+$
maxLength: 32
locale:
description: A two-characters locale
example: en
maxLength: 2
minLength: 2
type: string
metadata:
type: object
additionalProperties: true
example:
firstName: John
lastName: Smith
properties: {}
redirectTo:
type: string
format: uri
example: https://my-app.com/catch-redirection
Session:
type: object
description: User authentication session containing tokens and user information
additionalProperties: false
properties:
accessToken:
type: string
description: JWT token for authenticating API requests
example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
accessTokenExpiresIn:
type: integer
format: int64
description: Expiration time of the access token in seconds
example: 900
refreshTokenId:
description: Identifier for the refresh token
example: 2c35b6f3-c4b9-48e3-978a-d4d0f1d42e24
pattern: \b[0-9a-f]{8}\b-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-\b[0-9a-f]{12}\b
type: string
refreshToken:
description: Token used to refresh the access token
example: 2c35b6f3-c4b9-48e3-978a-d4d0f1d42e24
pattern: \b[0-9a-f]{8}\b-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-\b[0-9a-f]{12}\b
type: string
user:
$ref: '#/components/schemas/User'
required:
- accessToken
- accessTokenExpiresIn
- refreshToken
- refreshTokenId
CredentialPropertiesOutput:
type: object
additionalProperties: false
description: Credential properties extension output
properties:
rk:
type: boolean
description: Indicates if the credential is a resident key
AuthenticationExtensionsClientOutputs:
type: object
additionalProperties: true
description: Map of extension outputs from the client
properties:
appid:
type: boolean
description: Application identifier extension output
credProps:
$ref: '#/components/schemas/CredentialPropertiesOutput'
hmacCreateSecret:
type: boolean
description: HMAC secret extension output
URLEncodedBase64:
type: string
format: byte
description: Base64url-encoded binary data
SessionPayload:
type: object
description: Container for session information
additionalProperties: false
properties:
session:
$ref: '#/components/schemas/Session'
CredentialCreationResponse:
type: object
additionalProperties: false
x-go-type-import:
name: protocol
path: github.com/go-webauthn/webauthn/protocol
x-go-type: protocol.CredentialCreationResponse
properties:
id:
type: string
description: The credential's identifier
type:
type: string
description: The credential type represented by this object
rawId:
$ref: '#/components/schemas/URLEncodedBase64'
clientExtensionResults:
$ref: '#/components/schemas/AuthenticationExtensionsClientOutputs'
authenticatorAttachment:
type: string
description: The authenticator attachment
response:
$ref: '#/components/schemas/AuthenticatorAttestationResponse'
required:
- id
- type
- rawId
- response
AuthenticatorAttestationResponse:
type: object
additionalProperties: false
properties:
clientDataJSON:
$ref: '#/components/schemas/URLEncodedBase64'
transports:
type: array
items:
type: string
description: The authenticator transports
authenticatorData:
$ref: '#/components/schemas/URLEncodedBase64'
publicKey:
$ref: '#/components/schemas/URLEncodedBase64'
publicKeyAlgorithm:
type: integer
format: int64
description: The public key algorithm identifier
attestationObject:
$ref: '#/components/schemas/URLEncodedBase64'
required:
- clientDataJSON
- attestationObject
parameters:
RedirectToQuery:
in: query
name: redirectTo
description: Target URL for the redirect
required: true
schema:
description: Target URL for the redirect
type: string
format: uri
example: https://my-app.com/catch-redirection
TicketQuery:
in: query
name: ticket
description: Ticket
required: true
schema:
type: string
description: Ticket
example: verifyEmail:xxxxxxxx
TicketTypeQuery:
in: query
name: type
description: Type of the ticket. Deprecated, no longer used
required: false
schema:
type: string
enum:
- emailVerify
- emailConfirmChange
- signinPasswordless
- passwordReset
description: Type of the ticket
example: emailVerify
deprecated: true
headers:
RedirectLocation:
description: URL to redirect to
schema:
type: string
format: uri
required: true
securitySchemes:
BearerAuth:
type: http
scheme: bearer
description: Bearer authentication with JWT access token. Used to authenticate requests to protected endpoints.
BearerAuthElevated:
type: http
scheme: bearer
description: Bearer authentication that requires elevated permissions. Used for sensitive operations that may require additional security measures such as recent authentication. For details see https://docs.nhost.io/guides/auth/elevated-permissions