Confirm the email OTP
Verifies the OTP code and marks the account's email VERIFIED. Requires an authenticated, active user. Confirming an already-verified email is a no-op that returns the same verified result. Returns 404 when the verification does not exist, belongs to another caller, or is not AWAITING_OTP. Returns 400 when the code is wrong or no longer valid.
Authorization
oauth2 Create a client with POST /v1/oauth/clients, then exchange its credentials for an access token. AUTHORIZATION_CODE clients act on behalf of a signed-in user and always use PKCE; CLIENT_CREDENTIALS clients act as themselves. A client may only be granted scopes its creator already holds — read the grantable list from GET /v1/oauth/clients/scopes.
In: header
Path Parameters
Unique identifier of the email verification.
uuidRequest Body
application/json
Request body for confirming an OTP.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/v1/user/accounts/current/email/verifications/550e8400-e29b-41d4-a716-446655440000/confirm" \ -H "Content-Type: application/json" \ -d '{ "otp_code": "1234" }'{ "id": "550e8400-e29b-41d4-a716-446655440000", "url": "https://api.cowdi.co/v1/user/accounts/current/email/verifications/550e8400-e29b-41d4-a716-446655440000", "status": "INITIALIZING", "created_at": "2026-09-01T10:15:30Z", "verified_at": "2026-01-15T09:32:00Z", "confirm_url": "https://api.cowdi.co/v1/user/accounts/current/email/verifications/550e8400-e29b-41d4-a716-446655440000/confirm", "resource_id": "string"}{ "code": "BAD_REQUEST", "description": "Bad Request"}{ "code": "UNAUTHORISED", "description": "Unauthorised"}{ "code": "FORBIDDEN", "description": "Forbidden"}{ "code": "RATE_LIMIT_EXCEEDED", "description": "Too Many Requests"}{ "code": "INTERNAL_ERROR", "description": "Internal Server Error"}Get an email verification GET
Returns one email verification by its id. The caller must be authenticated. Returns 404 when the id does not exist, or belongs to another caller.
List the caller's statements GET
Lists the caller's own statements, newest first. Requires an authenticated, active user. Supports keyset pagination through the `size`, `after`, and `before` query parameters.