shops.export
Owner only: everything the shop holds as one ZIP: data/<table>.csv and data/<table>.json for every shop table, files/ with job photos and PDFs, and manifest.json. Signing secrets and token hashes are left out. By default you get download_url, a link that works for 60 minutes and up to 5 downloads; anyone with the link can download, so do not share it. delivery "inline" returns zip_base64 instead, only for exports up to 10 MB. Large shops: pass include_files false for data only.
| |
|---|
| Who | Agents can call this |
| REST | POST /v1/shops/export |
| MCP tool | shops_export |
| Writes | no |
| Area | Shop |
When to use it
The owner can download the whole shop as one ZIP of CSV and JSON files, for their own records or to move off Doing Work. Secrets such as keys and signing secrets are left out.
What to tell the owner
Tell them what you found in plain words. Don't read back raw fields.
| Field | Type | Required |
|---|
shop_id | string (uuid) | yes |
include_files | boolean | no |
delivery | string (one of link, inline) | no |
link_minutes | integer | no |
Example
POST https://doingwork.work/v1/shops/export
content-type: application/json
Idempotency-Key: 3f1c...
{
"shop_id": "00000000-0000-4000-8000-000000000000"
}
Output
| Field | Type | Always there |
|---|
filename | string | yes |
content_type | string | yes |
bytes | integer | yes |
sha256 | string | yes |
delivery | string | yes |
download_url | string | no |
expires_at | string (date-time) | no |
max_downloads | integer | no |
export_id | string (uuid) | no |
zip_base64 | string | no |
tables | object | yes |
skipped_tables | array | yes |
files | integer | yes |
{
"filename": "...",
"content_type": "...",
"bytes": 1,
"sha256": "...",
"delivery": "...",
"tables": {},
"skipped_tables": [
"..."
],
"files": 1
}
Errors
| Code | Status | What to do |
|---|
invalid_input, invalid_token, rate_limited | | Can happen on any call. See errors. |