The Platform Data API provides platform-agnostic, enterprise-grade observability across your Tableau Cloud deployment. Accessible through Tableau Cloud Manager (TCM) REST API, the Platform Data API offers a centralized way to retrieve auditing and usage data to monitor security, performance, and operational health.
The Platform Data API offers the following benefits:
Table of Contents
Before you can use the Platform Data API, you must authenticate to the Tableau Cloud Manager (TCM) REST API. How you authenticate to the TCM REST API depends on whether you’re signing in for the first time or have previously signed in before.
First-time workflow: If authenticating to the TCM REST API for the first time, follow the steps described in Sign in to Tableau Cloud Manager REST API.
Returning workflow: If you’ve previously signed in to the TCM REST API, authenticate by using one of the following methods:
Notes:
Retrieve a list of available event data to download for your tenant or site by calling the List Activity Logs for Tenant or List Activity Log for Site method.
You can filter the results of the request by date range (startTime and EndTime) and event type (eventType) parameters. If no parameters are included in the request, the APIs return the last 24 hours of available event data for all event types.
Best practices
Timestamps generally represent when the records for the events were made available, not necessarily when the events occurred. While these times are closely related, consider the following best practices:
There are two categories of event types that you can call: tenant events and site events.
Tenant events are recorded activities that occur within the TCM platform. Site events are recorded activities that occur within each site on the tenant. For a list of event types and corresponding parameters to include in your request, see one of the following topics in the Tableau Cloud Help:
Best practices
eventType filter accepts a single value per request, we recommend using this filter for ad hoc requests. For example, query no more than three event types, as separate requests. Making multiple requests for more event types can cause a measurable impact on API call capacity. This can cause API request limits to be reached quickly. For more information about these limits, see API request limits.To list log files, you need the tenant ID or both the tenant ID and site ID, respectively. The tenant ID is returned after authenticating to the TCM REST API. To get the site ID, you can call the List Tenant Sites method.
Tenant
This request returns all tenant events 24 hours before the time of the request.
GET https://cloudmanager.tableau.com/api/v1/tenants/{tenantId}/activitylog
This request returns events from January 1 to January 7.
GET https://cloudmanager.tableau.com/api/v1/tenants/{tenantId}/activitylog?startTime=2026-01-01-T00:00:00&endTime=2026-01-07-T00:00:00
This request returns site creation (tcm_activity_log_access) activity from January 1 to January 7.
GET https://cloudmanager.tableau.com/api/v1/tenants/{tenantId}/activitylog?startTime=2026-01-01-T00:00:00&endTime=2026-01-07-T00:00:00&eventType=tcm_activity_log_access
Site
This request returns all site events 24 hours before the time of the request.
GET https://cloudmanager.tableau.com/api/v1/tenants/{tenantId}/sites/{siteId}/activitylog
This request returns seven days of events from January 1 to January 7.
GET https://cloudmanager.tableau.com/api/v1/tenants/{tenantId}/sites/{siteId}/activitylog?startTime=2026-01-01-T00:00:00&endTime=2026-01-07-T00:00:00
This request returns refresh token or personal access token redemption (hist_redeem_refresh_token) activity from January 1 to January 7.
GET https://cloudmanager.tableau.com/api/v1/tenants/{tenantId}/sites/{siteId}/activitylog?startTime=2026-01-01-T00:00:00&endTime=2026-01-07-T00:00:00&eventType=hist_redeem_refresh_token
The response returns a list of file paths and their corresponding sizes (bytes), partitioned by tenant ID, date range, and event type. What is returned is then filtered by the parameter.
Tenant
{
"files": [
{
"path": "tenant-9cde722f-1edc-4cdd-b76f-42d87b51c785/y=2026/m=01/d=01/h=0/eventType=tcm_activity_log_access/ActivityLog-0fb71a00-5645-44e3-ace6-aa37d66aa966-0-0-376429.text",
"size": 2112
}
]
}
Site
{
"files": [
{
"path": "pod=prod-ca-a/siteLuid=33d345e6-36bd-4411-91e2-1c9fc849564e/y=2026/m=01/d=01/h=0/eventType=hist_redeem_refresh_token/ActivityLog-0fb71a00-5645-44e3-ace6-aa37d66aa966-0-0-376429.text",
"size": 1292
}
]
}
Note: Because tenant IDs aren’t returned as part of the path for site events, consider creating a tenant folder when managing or storing these log files.
To access the event data, pick which file paths returned from the previous request to generate download URLs for. You’ll then use the paths in the request body of the Get Activity Logs for Tenant or Get Activity Logs for Site method.
Tenant URI
The request returns a download URL for the “ActivityLog-0fb71a00-5645-44e3-ace6-aa37d66aa966-0-0-376429.txt” log file.
POST https://cloudmanager.tableau.com/api/v1/tenants/{tenantId}/activitylog
Tenant request body
{
"files": [
"tenant-9cde722f-1edc-4cdd-b76f-42d87b51c785/y=2026/m=01/d=01/h=0/eventType=tcm_activity_log_access/ActivityLog-0fb71a00-5645-44e3-ace6-aa37d66aa966-0-0-376429.txt"
]
}
Site URI
The request returns download URLs for the “ActivityLog-0fb71a00-5645-44e3-ace6-aa37d66aa966-0-0-376429.txt” and “ActivityLog-0fb71a00-5645-44e3-ace6-aa37d66aa966-0-0-7.txt” log files.
POST https://cloudmanager.tableau.com/api/v1/tenants/{tenantId}/sites/{siteId}/activitylog
Site request body
The request must include a comma-separated list of paths from the previous request.
{
"files": [
"pod=prod-ca-a/siteLuid=33d345e6-36bd-4411-91e2-1c9fc849564e/y=2026/m=01/d=01/h=0/eventType=hist_redeem_refresh_token/ActivityLog-0fb71a00-5645-44e3-ace6-aa37d66aa966-0-0-376429.txt",
"pod=prod-ca-a/siteLuid=33d345e6-36bd-4411-91e2-1c9fc849564e/y=2026/m=01/d=01/h=0/eventType=background_job/ActivityLog-0fb71a00-5645-44e3-ace6-aa37d66aa966-0-0-7.txt "
]
}
The response produces the original file paths and corresponding download URLs to access the log files. The URLs expire after 10 minutes.
Important: Because the download URLs allow unauthenticated access to your event data, treat these URLs as sensitive information and don’t share with anyone.
Tenant
{
"files": [
{
"path": "tenant-9cde722f-1edc-4cdd-b76f-42d87b51c785/y=2026/m=01/d=01/h=0/eventType=tcm_activity_log_access/ActivityLog-0fb71a00-5645-44e3-ace6-aa37d66aa966-0-0-376429.txt",
"url": "https://m1jb91y8k3mwh.mrap.accespoint.s3-global.amazonaws.com/tenant%3D9cde722f-1edc-4cdd-b76f-42d87b51c785/y%3D2026/m%3D01/d=01/h=0/evetType=tcm_activity_log_access/ActivityLog-0fb71a00-5645-44e3-ace6-aa37d66aa966-0-0-376429.txt?X-Amz-Algorithm=AWS4-ECDSA-P256-SHA256&..."
}
]
}
Site
{
"files": [
{
"path": "pod=prod-ca-a/siteLuid=33d345e6-36bd-4411-91e2-1c9fc849564e/y=2026/m=01/d=01/h=0/eventType=hist_redeem_refresh_token/ActivityLog-0fb71a00-5645-44e3-ace6-aa37d66aa966-0-0-376429.txt",
"url": "https://activity-log-site-prod-ca-a.s3.ca-central-1.amazonaw.com/jb91y8k3mwh.mrap.accespoint.s3-global.amazonaws.com/pod%3Dprod-ca-a/siteLuid%3D33d345e6-36bd-4411-91e2-1c9fc849564e/y=2026/m=01/d=01/h=0/eventType=hist_redeem_refresh_token/ActivityLog-0fb71a00-5645-44e3-ace6-aa37d66aa966-0-0-376429.txt?X-Amz-Algorithm=AWS4-ECDSA-P256-SHA256&..."
},
{
"path": "pod=prod-ca-a/siteLuid=33d345e6-36bd-4411-91e2-1c9fc849564e/y=2026/m=01/d=01/h=0/eventType=background_job/ActivityLog-0fb71a00-5645-44e3-ace6-aa37d66aa966-0-0-7.txt",
"url": "https://activity-log-site-prod-ca-a.s3.ca-central-1.amazonaw.com/jb91y8k3mwh.mrap.accespoint.s3-global.amazonaws.com/pod%3Dprod-ca-a/siteLuid%3D33d345e6-36bd-4411-91e2-1c9fc849564e/y=2026/m=01/d=01/h=0/eventType=background_job/ActivityLog-0fb71a00-5645-44e3-ace6-aa37d66aa966-0-0-7.txt?X-Amz-Algorithm=AWS4-ECDSA-P256-SHA256&..."
}
]
}
Programmatically open each URL returned from the previous request or copy and paste the URL in a browser to download each log file. Open the log files by using a text editor to see all the JSON-formatted event data that have been recorded for the tenant or site. After you’ve downloaded the log files, ingest it into your preferred analytics platform, such as Tableau.
Tenant
For example, the download URL might produce the following data when opened in a text editor.
{"eventId":"bbce137f-12ce-4eaf-b4eb-fd0d42e521a0","tenantId":"9cde722f-1edc-4cdd-b76f-42d87b51c785","eventType":"tcm_activity_log_access","eventVersion":"0.1","eventProcessedTime":"2026-01-04T21:08:46.819Z","initiatingUserIPAddress":"155.000.00.00","eventProcessedTimeEnd":"2026-11-04T21:08:43.022551Z","siteName":null,"initiatingUserAgent":"PostmanRuntime/7.42.0","initiatingSessionId":"166a62f4-8bbc-4020-918e-a8b15dc36ff3","siteUri":null,"podUri":null,"eventProcessedTimeStart":"2026-01-13T21:08:43.022Z","initiatingUrl":"https://mytenant.manage.online.tableau.com/api/v1/tenants/9cde722f-1edc-4cdd-b76f-42d87b51c785/activitylog","tenantUri":"mytenant","initiatingUserEmail":"snguyen@example.com","tenantName":"mytenant","eventOutcome":"success","eventTime":"2026-01-14T21:08:43.028Z","siteId":null,"initiatingUserRole":"TCM_ADMIN","initiatingUserDisplayName":". snguyen@yourcompany.com","eventTypeAccessed":null,"eventOutcomeReason":null,"initiatingUserId":"33d345e6-a011-4992-8db0-94768451e54e"}
{"eventId":"bbce137f-12ce-4eaf-b4eb-fd0d42e521a1","tenantId":"9cde722f-1edc-4cdd-b76f-42d87b51c785","eventType":"tcm_activity_log_access","eventVersion":"0.1","eventProcessedTime":"2026-11-04T21:10:37.123Z","initiatingUserIPAddress":"155.000.00.00","eventProcessedTimeEnd":"2026-01-04T21:08:43.022551Z","siteName":null,"initiatingUserAgent":"PostmanRuntime/7.42.0","initiatingSessionId":"166a62f4-8bbc-4020-918e-a8b15dc36ff3","siteUri":null,"podUri":null,"eventProcessedTimeStart":"2026-01-14T21:10:34.331Z","initiatingUrl":"https://mytenant.manage.online.tableau.com/api/v1/tenants/9cde722f-1edc-4cdd-b76f-42d87b51c785/activitylog","tenantUri":"mytenant","initiatingUserEmail":"snguyen@example.com","tenantName":"mytenant","eventOutcome":"success","eventTime":"2026-01-14T21:10:27.001Z","siteId":null,"initiatingUserRole":"TCM_ADMIN","initiatingUserDisplayName":". snguyen@example.com","eventTypeAccessed":null,"eventOutcomeReason":null,"initiatingUserId":"33d345e6-a011-4992-8db0-94768451e54e"}
Site
For example, the download URL might produce the following data when opened in a text editor.
{"eventId":"8102722e-3033-4112-8a48-8f5ce8e2411d","siteLuid":"33d345e6-36bd-4411-91e2-1c9fc849564e","eventType":"hist_redeem_refresh_token","eventVersion":"0.2","eventCategory":"security","eventTime":"2026-01-04T22:02:33.798536347Z","eventProcessedTime":"2026-01-04T22:02:45.38829Z","siteRoleId":11,"actorUserId":221648,"systemAdminLevel":0,"licensingRoleName":"Tier_Author","eventOutcome":null,"refreshTokenGuid":"76113549-ea79-4c74-8220-751af05af6da","siteName":"mysite","actorUserLuid":"2fe6101f-99d1-434c-8ce2-6cebe5a73d44","deviceName":"ws1-ltmjqxm","initiatingUserLuid":"2fe6101f-99d1-434c-8ce2-6cebe5a73d44","eventOutcomeReason":null,"initiatingUserId":221648}
{"eventId":"6254977f-3033-4112-8a48-8f5ce8e2411d","siteLuid":"33d345e6-36bd-4411-91e2-1c9fc849564e","eventType":"hist_redeem_refresh_token","eventVersion":"0.2","eventCategory":"security","eventTime":"2026-01-010T11:05:35.51477Z","eventProcessedTime":"2026-01-010T11:05:59.352Z","siteRoleId":11,"actorUserId":224144,"systemAdminLevel":0,"licensingRoleName":"Tier_Author","eventOutcome":null,"refreshTokenGuid":"76164888-ea79-4c74-8220-751af05af6da","siteName":"mysite","actorUserLuid":"2ef2495f-99d1-434c-8ce2-6cebe5a73d44","deviceName":"ws2-qxltmmj","initiatingUserLuid":"2ef2495f-99d1-434c-8ce2-6cebe5a73d44","eventOutcomeReason":null,"initiatingUserId":224144}