Files API
Exports, bulk skip traces, upload reports and export presets through the Goliath developer API
About
The Files area of the app holds what goes in and out of your account in bulk: uploads (imports) and downloads (spreadsheet exports). Through the API you can start exports and bulk skip traces, follow them to a finished file, read the report behind each upload, and manage the org’s export presets.
All operations go through the developer API gateway — one endpoint, called by
operationId. If you haven’t set up a key yet, start with the
Developer API Overview.
Operations
Browsing files (READ scope)
| operationId | Scope | What it does |
|---|---|---|
listFiles |
READ |
The Files list: uploads (imports) and downloads (standalone exports), filtered by a bulk-task filterTree (whether an upload or export exists, fileName, type). Page with limit/offset; limit is capped at 100. |
getExportReport |
READ |
One export’s report: type, row count, the saved filter it ran from, and skip-trace and enrichment outcomes. |
getUploadReport |
READ |
One upload’s report: rows and the created / matched / restored / merged / skipped / failed / duplicate counts, plus the skip-trace outcome and what it spent. Readable by the uploader or someone who can see all contacts. |
listUploadReportRows |
READ |
The rows behind one report bucket: each row’s outcome and reason, the original CSV row, and the record it became. Page with limit/offset (max 100). |
Exports and bulk skip traces (ADMIN scope)
These start the same jobs as the app’s download dialog and bulk skip trace. They are available to HTTP keys only, and the key owner must currently be an org admin.
| operationId | Scope | What it does |
|---|---|---|
exportContacts |
ADMIN |
Export contacts to a spreadsheet. |
exportProperties |
ADMIN |
Export properties (by esId) to a spreadsheet. includeStreetViewImages adds a Street View link per row. |
skipTraceContacts |
ADMIN |
Bulk skip trace contacts for phones and emails. skiptraceAddress picks which address to trace (omit for the default). One skip-trace credit per contact. |
skipTraceAndExportProperties |
ADMIN |
Bulk skip trace properties and export owners, phones and emails to a spreadsheet. One skip-trace credit per property. |
skipTraceAndCreateContactsFromProperties |
ADMIN |
Bulk skip trace properties and create a contact for each owner, optionally adding them to contactListIds and enrolling them in contactWorkflowIds. One skip-trace credit per property. |
All five take the same selection: explicit ids, or a saved filterId with
selectAll: true (every match; excludeIds leaves some out) or
selectCount: N (the first N). totalCount and estimatedItemCount are how
many records the selection holds — round up for a filter. fileName names the
file. Each returns a bulkTaskId: poll it with
getBulkTask, then read the file with
getExportReport.
Managing files (WRITE scope)
| operationId | Scope | What it does |
|---|---|---|
renameDataExport |
WRITE |
Rename an export’s file. The list or tag the export made keeps its own name. |
deleteDataExport |
WRITE |
Dismiss a failed standalone export from the list. |
renameUploadedFile |
WRITE |
Rename an uploaded file — an upload’s file from listFiles (uploads[].file.id), or a file on a deal or contact. |
deletePendingUpload |
WRITE |
Permanently remove an upload that is still awaiting review. |
Export presets (READ + WRITE scopes)
| operationId | Scope | What it does |
|---|---|---|
listExportConfigurations |
READ |
The org’s saved export presets (the column layouts in the download dialog) and which one is the default. Creating or editing a preset stays in the app. |
setDefaultExportConfiguration |
WRITE |
Make one preset the org’s default in the download dialog. |
deleteExportConfiguration |
WRITE |
Permanently delete an export preset for the whole org. |
To copy an upload’s original file into the Library, see
copyUploadedFileToSpace on the Library API.
Example
Export every contact matching a saved filter, then follow the job:
curl -X POST https://server.goliathdata.com/api/v1/call \
-H "Authorization: Bearer gsk_YOUR_ADMIN_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: export-hot-leads-2026-10-28" \
-d '{ "operationId": "exportContacts", "variables": { "filterId": "FILTER_ID", "selectAll": true, "totalCount": 1200, "estimatedItemCount": 1200, "fileName": "hot-leads.csv" } }'
curl -X POST https://server.goliathdata.com/api/v1/call \
-H "Authorization: Bearer gsk_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{ "operationId": "getBulkTask", "variables": { "bulkTaskId": "BULK_TASK_ID" } }'
Full variable schemas, response shapes, and worked examples for every operation are available from the discovery endpoint.