REST API
POST/bundles/{workspaceId}/import/zipAPI v1

Bundle import zip

2 min readBundles

POST /bundles/{workspaceId}/import/zip

Import a ZIP/.tsk bundle (exported from the export/zip endpoint) into a workspace. All items are installed into the target workspace. The ZIP must contain valid bundle data (either bundle.json or directory structure). Media files in the ZIP are re-uploaded to storage automatically. Send the file as the raw request body with Content-Type: application/zip, application/octet-stream, or application/x-tsk.

Base URL: https://www.taskade.com/api/v1

Authentication

Send a personal access token or an OAuth 2.0 access token as a bearer token. Create a personal access token at taskade.com/settings/api.

Http
Authorization: Bearer tskdp_your_token_here

Parameters

Name In Type Required Description
workspaceId path string Yes The target workspace ID to import the bundle into.

Example request

Bash
# Send the file as the raw request body. Swap application/octet-stream
# for the file's real type (image/png, application/zip, …) when you know it.
curl -X POST "https://www.taskade.com/api/v1/bundles/<workspaceId>/import/zip" \
  -H "Authorization: Bearer $TASKADE_TOKEN" \
  -H "Content-Type: application/octet-stream" \
  --data-binary @/path/to/your-file

Responses

200 — Successful ZIP bundle import
Field Type Required Description
ok boolean Yes
item object Yes
4XX — Error description
Field Type Required Description
ok boolean Yes
message string Yes
code string Yes
statusMessage string Yes

Errors

Errors return an ok: false envelope. Rate limiting returns 429 with x-rate-limit-limit, x-rate-limit-remaining and x-rate-limit-reset headers. x-rate-limit-reset is the number of seconds until the window reopens. Retry-After is not sent, so schedule retries from x-rate-limit-reset; retrying sooner will fail again.

Json
{ "ok": false, "message": "Unauthorized", "code": "UNAUTHORIZED" }

Rate limits for this version: enforced per endpoint; ceilings are not published and can change without notice. A 429 response carries x-rate-limit-limit, x-rate-limit-remaining, and x-rate-limit-reset (seconds until the window reopens). Back off from those headers rather than hardcoding numbers. Bundle import and export run under tighter limits than regular reads and writes, so schedule bulk transfers accordingly. See Rate limits.