Skip to main content
A VoiceMark token is the credential. When a voice matches the enrolled voiceprint, /v1/verify returns a JWT the caller passes to their backend. The backend validates it at /v1/token/{id}/validate before authorising any privileged action.

Lifecycle

  1. /v1/verify returns { token, token_id, authorized: true, expires_in: 60 }
  2. Client passes token to your backend (via header, not URL)
  3. Backend calls /v1/token/{token_id}/validate?token={jwt} server-side
  4. { valid: true, expires_in: 44 } → proceed; { valid: false } → reject

Security properties

  • 60-second TTL — short window limits replay exposure
  • Never store tokens — they are single-use credentials, not session keys
  • Validate server-side — do not trust the client’s authorized flag for high-value actions
  • No PII in the JWT — the token identifies the transaction, not the speaker

Passing tokens safely