List Trust Center visitor tokens
const url = 'https://api.vendorica.com/v1/trust-center/visitor-tokens?page=1&limit=100';const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url 'https://api.vendorica.com/v1/trust-center/visitor-tokens?page=1&limit=100' \ --header 'Authorization: Bearer <token>'Who currently holds a credential to the gated half of the Trust Center, newest first, offset-paginated — the access review a security team runs against its own document vault. No token material is returned, ever. The raw token is one-shot (minted, mailed to the visitor, discarded); storage is a sha256 hash, and that hash is not published either. tokenSuffix is always null and exists so the shape does not change if a fragment is ever stored. status is active | expired | revoked — the answerable vocabulary. expired is DERIVED from expiresAt, so a token becomes expired with no row ever changing, which is why there is no status filter: a filter over a value computed after the page was cut returns short pages.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Query Parameters
Section titled “Query Parameters”Responses
Section titled “Responses”Success
object
object
object
Example
{ "success": true, "data": [ { "id": "c5610b5d-16c4-468d-85f6-f18a11be428a", "organizationId": "86e5d148-a5c8-477e-8794-19c701248df9", "origin": "string", "visitorEmail": "string", "visitorName": "string", "companyName": "string", "tokenSuffix": "string", "status": "active", "expiresAt": "2026-08-19T09:41:12.004Z", "revokedAt": "2026-08-19T09:41:12.004Z", "lastUsedAt": "2026-08-19T09:41:12.004Z", "createdAt": "2026-08-19T09:41:12.004Z", "updatedAt": "2026-08-19T09:41:12.004Z" } ], "timestamp": "2026-08-19T09:41:12.004Z", "requestId": "req_01J5X8ZC3K4T7Q9M2W6B0N1V4H", "message": "string", "pagination": { "page": 1, "limit": 1, "total": 1, "totalPages": 1 }}Validation error
object
Example
{ "success": false, "error": "Bad request", "code": "BAD_REQUEST", "timestamp": "2026-08-19T09:41:12.004Z", "requestId": "req_01J5X8ZC3K4T7Q9M2W6B0N1V4H"}Unauthorized
object
Example
{ "success": false, "error": "Unauthorized", "code": "UNAUTHORIZED", "timestamp": "2026-08-19T09:41:12.004Z", "requestId": "req_01J5X8ZC3K4T7Q9M2W6B0N1V4H"}Forbidden — missing scope
object
Example
{ "success": false, "error": "Forbidden", "code": "FORBIDDEN", "timestamp": "2026-08-19T09:41:12.004Z", "requestId": "req_01J5X8ZC3K4T7Q9M2W6B0N1V4H"}Not found
object
Example
{ "success": false, "error": "Resource not found", "code": "NOT_FOUND", "timestamp": "2026-08-19T09:41:12.004Z", "requestId": "req_01J5X8ZC3K4T7Q9M2W6B0N1V4H"}Rate limit exceeded
object
Example
{ "success": false, "error": "Too many requests", "code": "TOO_MANY_REQUESTS", "timestamp": "2026-08-19T09:41:12.004Z", "requestId": "req_01J5X8ZC3K4T7Q9M2W6B0N1V4H"}