Action API
POST/getProjectAPI v2

Get project

3 min readProjectsView as Markdown

POST /getProject

Get a project by ID

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

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

Request body

application/json

Field Type Required Description
projectId string Yes The project ID to retrieve

Example request

Bash
curl -X POST "https://www.taskade.com/api/v2/getProject" \
  -H "Authorization: Bearer $TASKADE_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"projectId":"<projectId>"}'

Responses

200 — Default response

Field Type Required Description
ok boolean Yes —
item object Yes —
item.id string Yes Unique identifier for the project
item.name string No The project's name or title
item.icon object No The project's emoji icon, when one is set. Null when the project has no icon.
item.icon.type string Yes Allowed values: emoji.
item.icon.value string Yes —
item.completed boolean No True when the project itself is marked complete. This flag does not track task progress, and it is unrelated to archiving.
item.archived boolean No True when the project is archived. completeProject archives a project and restoreProject restores it. listProjects leaves archived projects out.
item.color string No The color of the workspace or folder that holds the project. A project has no color of its own.
item.tags string[] No The tag names on the project. Empty when the caller is not a member of its workspace.

A nested field marked Yes is required whenever its parent object is present.

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. If you need sustained throughput, prefer batching (operations like /createTask accept arrays) over tightening polling loops. See Rate limits.