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/export runs under tighter limits than regular reads and writes, so schedule bulk transfers accordingly. See Rate limits.