REST API
GET/projects/{projectId}/fieldsAPI v1

Project fields get

4 min readProjectsView as Markdown

GET /projects/{projectId}/fields

Get all fields for a project

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
projectId path string Yes —

Example request

Bash
curl -X GET "https://www.taskade.com/api/v1/projects/<projectId>/fields" \
  -H "Authorization: Bearer $TASKADE_TOKEN"

Responses

200 — Project fields

Field Type Required Description
ok boolean Yes —
items Field[] Yes —
items[].id string Yes —
items[].data object Yes —
items[].data.type string Yes Allowed values: boolean, Note, Timestamp, TimestampAt, TimestampAuthor, Select, number, string, Password, Rating, Relationship, Assign, DateTime, DateRange, Event, NodeText, NodeCompleted, Media, TimeTracking, Unimplemented.
items[].data.fillerConfig object No —
items[].data.fillerConfig.type string Yes Allowed values: string.translate, string.summarize, string.extract, string.custom, Select.pick.
items[].data.fillerConfig.sourceRef object Depends Required when type is string.translate, string.summarize, string.extract, or Select.pick.
items[].data.fillerConfig.sourceRef.type string Yes Allowed values: field.
items[].data.fillerConfig.sourceRef.fieldPath string Yes —
items[].data.fillerConfig.targetLang string Depends Required when type is string.translate.
items[].data.fillerConfig.additionalInstructions string No —
items[].data.fillerConfig.entity object Depends Required when type is string.extract.
items[].data.fillerConfig.entity.type string Yes Allowed values: email_address, first_name, last_name, phone_number, domain_name, link, date, time, year, custom.
items[].data.fillerConfig.entity.instructions string Depends Required when type is custom.
items[].data.fillerConfig.instructions string Depends Required when type is string.custom.
items[].data.fillerConfig.permittedOptionIds string[] Depends Required when type is Select.pick.
items[].data.displayName string Depends Required when type is Select, number, string, Rating, Relationship, or TimeTracking.
items[].data.description string No —
items[].data.options object Depends Required when type is Select.
items[].data.defaultOption string No —
items[].data.render object Depends Required when type is number.
items[].data.render.type string Yes Allowed values: text.
items[].data.format object Depends Required when type is number.
items[].data.format.type string Yes Allowed values: decimal, currency, unit.
items[].data.format.config object Depends Required when type is currency or unit.
items[].data.format.config.type string Yes Allowed values: standard.
items[].data.format.config.code string Yes —
items[].data.constraints object No —
items[].data.constraints.unique object No —
items[].data.constraints.unique.type string Yes Allowed values: unique.
items[].data.title string No —
items[].data.hashAlgorithm string No Allowed values: bcrypt, argon2, scrypt, pbkdf2.
items[].data.minLength integer No —
items[].data.maxLength integer No —
items[].data.max integer No —
items[].data.icon string No Allowed values: star, heart.

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

4XX — Error description

Field Type Required Description
ok boolean Yes —
message string Yes —
code string Yes —
statusMessage string Yes —
featureId string No The plan entitlement the request needs, set on some PAYMENT_REQUIRED errors.

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.