Skip to main content
POST
/
v1
/
login
curl -X POST https://api.vouchmark.com/v1/login \
  -H "Content-Type: application/json" \
  -d '{"email":"ada@example.com","password":"L0ng-Random-Pass!"}'
{
  "success": true,
  "accessToken": "eyJhbGciOiJIUzI1NiIs...",
  "user": {
    "id": "usr_aBcD...",
    "email": "ada@example.com",
    "firstName": "Ada",
    "lastName": "Okeke",
    "emailVerified": true
  }
}

Documentation Index

Fetch the complete documentation index at: https://docs.vouchmark.com/llms.txt

Use this file to discover all available pages before exploring further.

Authenticates a user and returns an access token. Also sets token and refreshToken cookies for browser clients — server integrations should ignore the cookies and use the returned accessToken.

Body

email
string
required
password
string
required

Response

success
boolean
accessToken
string
Short-lived JWT (15 min). Send as Authorization: Bearer <accessToken> on subsequent requests.
user
object
Basic profile: id, email, firstName, lastName, emailVerified.
curl -X POST https://api.vouchmark.com/v1/login \
  -H "Content-Type: application/json" \
  -d '{"email":"ada@example.com","password":"L0ng-Random-Pass!"}'
{
  "success": true,
  "accessToken": "eyJhbGciOiJIUzI1NiIs...",
  "user": {
    "id": "usr_aBcD...",
    "email": "ada@example.com",
    "firstName": "Ada",
    "lastName": "Okeke",
    "emailVerified": true
  }
}

Errors

StatusCodeWhen
401INVALID_CREDENTIALSEmail or password is wrong.
403EMAIL_NOT_VERIFIEDAccount exists but email confirmation is pending.
429Too many attempts. Wait 15 minutes.