How to find Project Change History (Project Audit) with the API

Aim: Retrieve the history of field-level changes made to a project — such as project owner, dates, category, tags, or custom fields — using the API. This guide covers why the standard activity endpoint won't show these changes, and the workaround for pulling the same "View History" data that the Teamwork.com web app uses.

Background:

The List latest activity for a specific project endpoint (GET /projects/api/v3/projects/{projectId}/latestactivity.json) only returns high-level activity events (e.g. project status updates, task/message/file activity). It does not include before/after field values, so changes like "project owner updated from User A to User B" won't appear there.

Teamwork.com does expose a documented endpoint for this kind of detail at the task level — Get a Task's Audit History (GET /tasks/{id}/audit.json, Premium/Enterprise plans only). There is currently no equivalent public, documented endpoint for project-level change history. The data is available — it powers the View History panel in the app — but it isn't published in the API reference.

Where to find it in the app:

See Viewing Project Change History — go to a project's Dashboard > Activity tab, click the three-dot options menu in the top right, and select View History. This opens a panel listing every change made to the project's properties (dates, category, tags, users, custom fields, notify settings), along with who made the change and when.

How to capture the request with the API:

Since this isn't a published endpoint, the fastest way to get the exact URL, parameters, and response shape is to capture it from your browser while triggering the same action in the UI:

  • Open your browser's developer tools and go to the Network tab.

  • While on the project's Dashboard > Activity tab, click the three dots in the top right and select View History.

  • The Network tab will list every request the page makes. Type audit.json into the filter box to narrow it down to the history request.

  • Open the request's Headers tab to get the full URL, including any query parameters used (e.g. project ID, paging).

  • Open the Payload tab to see the exact parameters sent with the request.

  • Open Preview (or Response) to see the payload returned — look for the audit array, which contains the before/after values for each change. There's also a people object in the same payload that you can use to resolve user IDs to names (the same shape used by the task audit endpoint above).

Bonus tips for working with captured requests:

  • Double-click the request in the Network tab to open its payload in a new browser tab.

  • Right-click the request > Copy > Copy as cURL to get a ready-to-run command.

  • Paste that cURL command into Postman (Import > paste), then use Postman's code snippet feature to generate the request in your language of choice.

Note: Because this endpoint isn't officially published, its shape and availability could change without notice — it's not covered by the same API stability guarantees as documented endpoints. If you need a supported, documented way to track project-level changes (e.g. owner changes) via the API, please share your use case with us — feature requests like this help prioritize adding an official endpoint.

Feedback

If you have any feedback or suggestions, feel free to contact us at api@teamwork.com.