GroundworkGroundwork
Admin & Integrations

Export your data and use the REST API

Who can do this: Admin or Developer

Before you begin

Decide what you actually need. A one-time export for a report or an owner request is a download; a recurring feed into a BI tool or another system is an API integration. For API work, you'll need an admin who can issue credentials and a clear idea of which permissions the integration should hold, because API access is bound to a role the same way a person's access is.

Steps

  1. For a one-time export, open the module you need (job cost, RFI log, punch list, time entries, document register) and use its export control. Exports respect the filters and saved view you have applied, so export what you're looking at rather than exporting everything and filtering afterward.

    Reporting and analytics views across projects

  2. For a full-company data export, go to Settings → Data Export and request the export. Large exports run in the background and notify you when the archive is ready.

  3. For API access, go to Settings → API and create a credential. Assign it a role, which scopes what the credential can read and write exactly as a role scopes a user.

  4. Read the API reference for the endpoints you need. The API uses the same data model and the same validation rules as the interface, so a payload the API rejects would have been rejected in the UI too.

  5. Authenticate your requests with the credential, and handle token expiry and refresh in your client rather than assuming a permanent token.

  6. Build against a non-production project first. Writes through the API are real writes and land in the audit log attributed to the credential.

  7. Rotate credentials on a schedule and revoke any that belong to an integration you've retired.

What happens next

API activity appears in the audit log attributed to the credential that made it, so an unexpected change can be traced to an integration rather than being misattributed to a person. If your integration needs to react to events rather than poll, webhook-based inbound capture is available for the record types that support it, which is cheaper than a scheduled read loop and much closer to real time.

Where the record lives

Credentials, their assigned roles, their last-used timestamps, and their revocation history live under Settings → API. Export requests and their completion status are logged under Settings → Data Export. Every API write lands in the same audit log as a UI write.

Troubleshooting

API returns a permission error on an endpoint that works in the UI: the credential's role is narrower than your own. Check what role the credential holds rather than assuming the endpoint is broken.

An export is missing rows you can see on screen: the export applied a filter or a saved view you had active. Clear the view and re-export, or export from the unfiltered register.

Not sure whether the data you need is exportable: if a screen displays it, the underlying endpoint that feeds that screen is the one to call. The interface has no private API that the documented one lacks.

Still stuck?

Send this straight to support (it goes directly to support@groundworkai.io).