List Trust Center document access events
using System.Net.Http.Headers;var client = new HttpClient();var request = new HttpRequestMessage{ Method = HttpMethod.Get, RequestUri = new Uri("https://api.vendorica.com/v1/trust-center/access-events?limit=50"), Headers = { { "Authorization", "Bearer <token>" }, },};using (var response = await client.SendAsync(request)){ response.EnsureSuccessStatusCode(); var body = await response.Content.ReadAsStringAsync(); Console.WriteLine(body);}package main
import ( "fmt" "net/http" "io")
func main() {
url := "https://api.vendorica.com/v1/trust-center/access-events?limit=50"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close() body, _ := io.ReadAll(res.Body)
fmt.Println(res) fmt.Println(string(body))
}OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder() .url("https://api.vendorica.com/v1/trust-center/access-events?limit=50") .get() .addHeader("Authorization", "Bearer <token>") .build();
Response response = client.newCall(request).execute();const url = 'https://api.vendorica.com/v1/trust-center/access-events?limit=50';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);}use reqwest;
#[tokio::main]pub async fn main() { let url = "https://api.vendorica.com/v1/trust-center/access-events";
let querystring = [ ("limit", "50"), ];
let mut headers = reqwest::header::HeaderMap::new(); headers.insert("Authorization", "Bearer <token>".parse().unwrap());
let client = reqwest::Client::new(); let response = client.get(url) .query(&querystring) .headers(headers) .send() .await;
let results = response.unwrap() .json::<serde_json::Value>() .await .unwrap();
dbg!(results);}curl --request GET \ --url 'https://api.vendorica.com/v1/trust-center/access-events?limit=50' \ --header 'Authorization: Bearer <token>'The document access log: every read of a Trust Center document by a visitor holding a credential, newest first, cursor-paginated (?cursor=<opaque>&limit=<n>; ?page= is refused). One event per document, so a bulk ZIP of twelve files is twelve events. eventType is resource_view or resource_download; channel says how it left — detail (the metadata page), viewer (rendered in the browser), download, bulk_zip or external_link. resourceTitle, resourceFileName and resourceContentHash are a snapshot taken when the document was served, so a later rename, re-upload or deletion does not rewrite the history; snapshotReconstructed: true marks the events recorded before snapshots existed, whose snapshot was filled in afterwards from the document as it then stood. Anonymous reads of ungated documents are never recorded, so they are never here. The network address is stored only as a /24 or /48 prefix and the browser only as a family. Filters: search (visitor email substring), eventType, channel, resourceId (repeatable), visitorTokenId, occurredFrom / occurredTo (a bare date covers the whole day). Pairs with the trustcenter.resource_downloaded webhook, whose accessEventId is the id of the event here.
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": "4e7bc748-d6da-497e-8751-ffc759159ff9", "occurredAt": "2026-08-19T09:41:12.004Z", "eventType": "resource_view", "channel": "detail", "watermarked": true, "resourceId": "fed9b2bc-eeb4-411a-8ef4-da5b5a73c38d", "resourceTitle": "string", "resourceFileName": "string", "resourceContentHash": "string", "snapshotReconstructed": true, "resourceDeleted": true, "visitorTokenId": "d14b6a35-b0b8-4495-87fa-c822f5c913d2", "visitorEmail": "string", "visitorName": "string", "visitorCompany": "string", "visitorTokenOrigin": "string", "ipPrefix": "string", "country": "string", "userAgentFamily": "string" } ], "timestamp": "2026-08-19T09:41:12.004Z", "requestId": "req_01J5X8ZC3K4T7Q9M2W6B0N1V4H", "message": "string", "cursor": { "nextCursor": "string", "hasMore": true, "limit": 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"}