You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I was wondering if it were possible to get a specific project by its id.
If you stored the id somewhere else in a local variable and wanted to use something like server.projects.get() where you pass in the ID, is that possible?
Thanks for the feedback on this. I checked the REST API docs and it looks like project ID is not one of the ways you can filter. I'll mark this as server-side enhancement for the future.
I know this is old, but this has bugged me many times and I found that there's is actually a very simple way to get a project's data with its ID. So, posting for anyone encountering this in the future.
So the core issue is: for many content types, there is a convenient endpoint to get information about a specific item. E.g. for workbooks, there is "Get Workbook", where you provide the LUID of the workbook:
GET /api/<api-version>/sites/<site-id>/workbooks/<workbook-id>
The same exists for all kinds of content, including views and data sources, but not for projects. Why?! That is unclear. The suggested workaround (like above) is to fetch all projects until you find the right one, but this can be expensive on large environments.
Now here's what I found: it is perfectly possible to update a project without providing any new information, i.e. no name change, no description change, nothing. The "Update Project" endpoint does work like any other content's update endpoint, and... returns the updated/original information we would have expected from "Get Project", had it existed.
So... we can make this request:
PUT /api/<api-version>/sites/<site-id>/projects/<project-id>
With only this body:
"project": {
"id": <project-id>
}
And... tada! We get the original project information back, because we did not change anything:
And here's what's also great: I thought this would modify the updatedAt timestamp, but it doesn't! The project is effectively returned as-is without any impact (that I am aware of).
This issue has been automatically marked as stale because it has not had recent activity. It will be closed in 14 days if no further activity occurs. If this is still relevant, please comment to keep it open.
Closing — added in PR #1736 (implement #816: project.get_by_id). The REST API itself still has no direct GET endpoint for a single project, so under the hood TSC uses a name-or-id filter; from the caller's perspective the ergonomics match server.projects.get_by_id(project_id).
Activity
mbabatunde commentedon Mar 12, 2021
I've resolved my issue by doing something else, but this would be a nice enhancement if possible
bcantoni commentedon Mar 16, 2021
Thanks for the feedback on this. I checked the REST API docs and it looks like project ID is not one of the ways you can filter. I'll mark this as server-side enhancement for the future.
TimothyVermeirenBiztory commentedon Oct 23, 2025
I know this is old, but this has bugged me many times and I found that there's is actually a very simple way to get a project's data with its ID. So, posting for anyone encountering this in the future.
So the core issue is: for many content types, there is a convenient endpoint to get information about a specific item. E.g. for workbooks, there is "Get Workbook", where you provide the LUID of the workbook:
GET /api/<api-version>/sites/<site-id>/workbooks/<workbook-id>The same exists for all kinds of content, including views and data sources, but not for projects. Why?! That is unclear. The suggested workaround (like above) is to fetch all projects until you find the right one, but this can be expensive on large environments.
Now here's what I found: it is perfectly possible to update a project without providing any new information, i.e. no name change, no description change, nothing. The "Update Project" endpoint does work like any other content's update endpoint, and... returns the updated/original information we would have expected from "Get Project", had it existed.
So... we can make this request:
PUT /api/<api-version>/sites/<site-id>/projects/<project-id>With only this body:
And... tada! We get the original project information back, because we did not change anything:
And here's what's also great: I thought this would modify the updatedAt timestamp, but it doesn't! The project is effectively returned as-is without any impact (that I am aware of).
Hope this helps!
implement #816: project.get_by_id (#1736)
release v0.39 (#1737)
implement #816: project.get_by_id (#1736)
implement #816: project.get_by_id (#1736)
release v0.39 (tableau#1737)
github-actions commentedon Aug 6, 2026
This issue has been automatically marked as stale because it has not had recent activity. It will be closed in 14 days if no further activity occurs. If this is still relevant, please comment to keep it open.
jacalata commentedon Aug 6, 2026
Closing — added in PR #1736 (implement #816: project.get_by_id). The REST API itself still has no direct GET endpoint for a single project, so under the hood TSC uses a name-or-id filter; from the caller's perspective the ergonomics match
server.projects.get_by_id(project_id).