Get Task
meta.field_policy is resolved for this caller, not just this task: a reader gets every
field back locked, which is what lets the form be honest rather than offering controls whose
writes enforce_write_role refuses with a 403.
GET
/api/v1/tasks/{task_id}Authorization
AuthorizationBearer token · headerrequiredor
AuthorizationOAuth2 access token · headerrequiredPath parameters
task_idstringrequiredQuery parameters
include_deletedbooleanalso resolve a soft-deleted task, for the board's Deleted column
default: false
Responses
200Successful Response
successbooleandefault: true
dataTaskDetail | anyShow propertiesHide properties
Any of:
TaskDetail
taskTaskrequiredCollection: `tasks`. One doc per task.
Show propertiesHide properties
idstringschema_versionintegerdefault: 3
namestringrequirednumberinteger | anyShow propertiesHide properties
Any of:
integer
integerany
anygenerated_namestring | anyShow propertiesHide properties
Any of:
string
stringany
anyplanned_creative_namesstring[]planned_creatives_donestring[]task_typeTaskType | anyShow propertiesHide properties
Any of:
TaskType
stringany
anywork_streamWorkStream | anyShow propertiesHide properties
Any of:
WorkStream
stringany
anyproduct_idstring | anyShow propertiesHide properties
Any of:
string
stringany
anymedia_typeMediaType | anyShow propertiesHide properties
Any of:
MediaType
stringany
anycreation_complexityinteger | anyShow propertiesHide properties
Any of:
integer
integerany
anyexecution_complexityinteger | anyShow propertiesHide properties
Any of:
integer
integerany
anypriorityinteger | anyShow propertiesHide properties
Any of:
integer
integerany
anystatusTaskStatusNotion "Status" for a task — the workflow-status source rolled up onto each Creative.
Grouped in Notion as To-do / In progress / Complete; see the `*_STATUSES` frozensets below.
**Declaration order is the board's column order**, front to back — `/tasks/board/columns`
answers in it, and the frontend builds both the kanban's columns and the Status select from
it (`STATUS_OPTIONS`). So this reads as the workflow does: a task passes In Progress before
either check. Reordering a member here moves a column on the board.
Allowed:
backlogready_for_productionin_progresstech_checkcreative_checkdonearchivedtest_statusTestStatusAllowed:
not_testedin_testtestedpausedcountinteger | anyShow propertiesHide properties
Any of:
integer
integerany
anyresolutionResolution | anyShow propertiesHide properties
Any of:
Resolution
stringany
anysourceSourceAllowed:
METATIKAPLGGLSNASKNTABUNTgeoGeo | anyShow propertiesHide properties
Any of:
Geo
stringany
anylanguageLanguage | anyShow propertiesHide properties
Any of:
Language
stringany
anyvaried_elementsVariedElement[]var_descriptionstring | anyShow propertiesHide properties
Any of:
string
stringany
anyrollupsTaskRollupsDenormalized rollup/formula caches (refreshed by the sync/rollup job).
Show propertiesHide properties
derived_task_countinteger | anyShow propertiesHide properties
Any of:
integer
integerany
anycreation_pointsnumber | anyShow propertiesHide properties
Any of:
number
numberany
anyexecution_pointsnumber | anyShow propertiesHide properties
Any of:
number
numberany
anyreturn_countinteger | anyShow propertiesHide properties
Any of:
integer
integerany
anyautomationTaskAutomationOutcome of the last async workflow handler run
Show propertiesHide properties
stateAutomationState | anyShow propertiesHide properties
Any of:
AutomationState
stringany
anyerrorstring | anyShow propertiesHide properties
Any of:
string
stringany
anyran_atstring<date-time> | anyShow propertiesHide properties
Any of:
string<date-time>
string<date-time>any
anystarted_atstring<date-time> | anyShow propertiesHide properties
Any of:
string<date-time>
string<date-time>any
anycomment_countintegerdefault: 0
assignee_idstring | anyShow propertiesHide properties
Any of:
string
stringany
anytask_owner_idstring | anyShow propertiesHide properties
Any of:
string
stringany
anydeadline_atstring<date-time> | anyShow propertiesHide properties
Any of:
string<date-time>
string<date-time>any
anystarted_atstring<date-time> | anyShow propertiesHide properties
Any of:
string<date-time>
string<date-time>any
anysubmitted_atstring<date-time> | anyShow propertiesHide properties
Any of:
string<date-time>
string<date-time>any
anycompleted_atstring<date-time> | anyShow propertiesHide properties
Any of:
string<date-time>
string<date-time>any
anytime_in_progress_secondsnumberdefault: 0
time_on_check_secondsnumberdefault: 0
status_entered_atstring<date-time> | anyShow propertiesHide properties
Any of:
string<date-time>
string<date-time>any
anylaunched_atstring<date-time> | anyShow propertiesHide properties
Any of:
string<date-time>
string<date-time>any
anyad_idstring | anyShow propertiesHide properties
Any of:
string
stringany
anyorigin_creative_idstring | anyShow propertiesHide properties
Any of:
string
stringany
anysource_creative_idsstring[]is_legacybooleandefault: false
manual_launchbooleandefault: false
legacy_remap_liststring | anyShow propertiesHide properties
Any of:
string
stringany
anydrive_urlstring | anyShow propertiesHide properties
Any of:
string
stringany
anydrive_folder_idstring | anyShow propertiesHide properties
Any of:
string
stringany
anyhypothesisstring | anyShow propertiesHide properties
Any of:
string
stringany
anysubjectstring | anyShow propertiesHide properties
Any of:
string
stringany
anytopicstring | anyShow propertiesHide properties
Any of:
string
stringany
anysubtopicsstring[]primary_anchorPrimaryAnchor | anyShow propertiesHide properties
Any of:
PrimaryAnchor
stringany
anyaudiencestring | anyShow propertiesHide properties
Any of:
string
stringany
anyawareness_stageAwarenessStage | anyShow propertiesHide properties
Any of:
AwarenessStage
stringany
anymessaging_angleMessagingAngle | anyShow propertiesHide properties
Any of:
MessagingAngle
stringany
anyhook_triggerHookTrigger | anyShow propertiesHide properties
Any of:
HookTrigger
stringany
anyhook_typeHookType | anyShow propertiesHide properties
Any of:
HookType
stringany
anyad_formatAdFormat | anyShow propertiesHide properties
Any of:
AdFormat
stringany
anynotesstring | anyShow propertiesHide properties
Any of:
string
stringany
anytraffic_flowTrafficFlow | anyShow propertiesHide properties
Any of:
TrafficFlow
stringany
anylandinganyShow propertiesHide properties
Any of:
any
anyany
anyfunnelanyShow propertiesHide properties
Any of:
any
anyany
anycppanyShow propertiesHide properties
Any of:
any
anyany
anyvariantsTaskVariant[]Show propertiesHide properties
Array of
TaskVariantkeystringrequiredvariation_numintegerrequiredmin 1
primary_anchorPrimaryAnchor | anyShow propertiesHide properties
Any of:
PrimaryAnchor
stringany
anyaudiencestring | anyShow propertiesHide properties
Any of:
string
stringany
anyawareness_stageAwarenessStage | anyShow propertiesHide properties
Any of:
AwarenessStage
stringany
anymessaging_angleMessagingAngle | anyShow propertiesHide properties
Any of:
MessagingAngle
stringany
anyhook_triggerHookTrigger | anyShow propertiesHide properties
Any of:
HookTrigger
stringany
anyhook_typeHookType | anyShow propertiesHide properties
Any of:
HookType
stringany
anyad_formatAdFormat | anyShow propertiesHide properties
Any of:
AdFormat
stringany
anynotesstring | anyShow propertiesHide properties
Any of:
string
stringany
anytag_slugsstring[]descriptionstring | anyShow propertiesHide properties
Any of:
string
stringany
anycompletedbooleandefault: false
created_atstring<date-time>updated_atstring<date-time>deleted_atstring<date-time> | anyShow propertiesHide properties
Any of:
string<date-time>
string<date-time>any
anyincludedTaskIncludesRelated entities referenced by the payload's tasks, keyed by id — same contract as
`CreativeIncludes`.
`creatives` covers the lineage refs (`origin_creative_id`, `source_creative_ids`), so the
detail page renders them without a request per id. It is empty for the board feed, whose
`TaskCard` is trimmed of those fields. The UI edits lineage as draft state, so ids added
before a save are the client's to label — it already holds the picked creative.
Show propertiesHide properties
usersobjectproductsobjectcreativesobjecttask_creativesCreativeItem[]Show propertiesHide properties
Array of
CreativeItemidstringrequirednamestringrequiredvariation_numinteger | anyShow propertiesHide properties
Any of:
integer
integerany
anyin_work_atstring<date-time> | anyShow propertiesHide properties
Any of:
string<date-time>
string<date-time>any
anyassignee_idstring | anyShow propertiesHide properties
Any of:
string
stringany
anytask_owner_idstring | anyShow propertiesHide properties
Any of:
string
stringany
anymetaTaskDetailMetarequiredShow propertiesHide properties
status_schemaobject | anyShow propertiesHide properties
Any of:
object
objectany
anyfield_policyTaskFieldPolicy | anyShow propertiesHide properties
Any of:
TaskFieldPolicy
lockedobjectrequiredstring[]hiddenstring[]unlock_statusTaskStatus | anyShow propertiesHide properties
Any of:
TaskStatus
stringany
anyany
anyany
anymessagestring | anyShow propertiesHide properties
Any of:
string
stringany
anyerrorsstring[] | anyShow propertiesHide properties
Any of:
string[]
Array of
stringstringany
any422Validation Error
detailValidationError[]Show propertiesHide properties
Array of
ValidationErrorlocstring | integer[]requiredShow propertiesHide properties
Array of
string | integerAny of:
string
stringinteger
integermsgstringrequiredtypestringrequiredinputanyctxobjectRequest
curl -X GET "/api/v1/tasks/string" \
-H "Authorization: Bearer YOUR_TOKEN"const response = await fetch("/api/v1/tasks/string", {
method: "GET",
headers: {
"Authorization": "Bearer YOUR_TOKEN"
}
});import requests
response = requests.get(
"/api/v1/tasks/string",
headers={
"Authorization": "Bearer YOUR_TOKEN"
},
)Response
{
"success": true,
"data": {
"task": {
"id": "string",
"schema_version": 3,
"name": "string",
"number": 0,
"generated_name": "string",
"planned_creative_names": [
"string"
],
"planned_creatives_done": [
"string"
],
"task_type": "NEW",
"work_stream": "Performance",
"product_id": "string",
"media_type": "VID",
"creation_complexity": 1,
"execution_complexity": 1,
"priority": 1,
"status": "backlog",
"test_status": "not_tested",
"count": 0,
"resolution": "1080x1920",
"source": "META",
"geo": "US",
"language": "EN",
"varied_elements": [
"hook"
],
"var_description": "string",
"rollups": {
"derived_task_count": 0,
"creation_points": 0,
"execution_points": 0,
"return_count": 0
},
"automation": {
"state": "pending",
"error": "string",
"ran_at": "2019-08-24T14:15:22Z",
"started_at": "2019-08-24T14:15:22Z"
},
"comment_count": 0,
"assignee_id": "string",
"task_owner_id": "string",
"deadline_at": "2019-08-24T14:15:22Z",
"started_at": "2019-08-24T14:15:22Z",
"submitted_at": "2019-08-24T14:15:22Z",
"completed_at": "2019-08-24T14:15:22Z",
"time_in_progress_seconds": 0,
"time_on_check_seconds": 0,
"status_entered_at": "2019-08-24T14:15:22Z",
"launched_at": "2019-08-24T14:15:22Z",
"ad_id": "string",
"origin_creative_id": "string",
"source_creative_ids": [
"string"
],
"is_legacy": false,
"manual_launch": false,
"legacy_remap_list": "string",
"drive_url": "string",
"drive_folder_id": "string",
"hypothesis": "string",
"subject": "string",
"topic": "string",
"subtopics": [
"string"
],
"primary_anchor": "pain_led",
"audience": "string",
"awareness_stage": "unaware",
"messaging_angle": "pattern_interrupt",
"hook_trigger": "pattern_interrupt",
"hook_type": "pattern_interrupt",
"ad_format": "animation",
"notes": "string",
"traffic_flow": "W2A",
"landing": {},
"funnel": {},
"cpp": {},
"variants": [
{
"key": "string",
"variation_num": 1,
"primary_anchor": "pain_led",
"audience": "string",
"awareness_stage": "unaware",
"messaging_angle": "pattern_interrupt",
"hook_trigger": "pattern_interrupt",
"hook_type": "pattern_interrupt",
"ad_format": "animation",
"notes": "string",
"tag_slugs": [
"string"
],
"description": "string",
"completed": false
}
],
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"deleted_at": "2019-08-24T14:15:22Z"
},
"included": {
"users": {
"property1": {
"id": "string",
"name": "string",
"email": "string",
"image_url": "string"
},
"property2": {
"id": "string",
"name": "string",
"email": "string",
"image_url": "string"
}
},
"products": {
"property1": {
"id": "string",
"name": "string"
},
"property2": {
"id": "string",
"name": "string"
}
},
"creatives": {
"property1": {
"id": "string",
"name": "string",
"variation_num": 0,
"in_work_at": "2019-08-24T14:15:22Z",
"assignee_id": "string",
"task_owner_id": "string"
},
"property2": {
"id": "string",
"name": "string",
"variation_num": 0,
"in_work_at": "2019-08-24T14:15:22Z",
"assignee_id": "string",
"task_owner_id": "string"
}
},
"task_creatives": [
{
"id": "string",
"name": "string",
"variation_num": 0,
"in_work_at": "2019-08-24T14:15:22Z",
"assignee_id": "string",
"task_owner_id": "string"
}
]
},
"meta": {
"status_schema": {},
"field_policy": {
"locked": {
"property1": "string",
"property2": "string"
},
"required": [
"string"
],
"hidden": [
"string"
],
"unlock_status": "backlog"
}
}
},
"message": "string",
"errors": [
"string"
]
}{
"detail": [
{
"loc": [
"string"
],
"msg": "string",
"type": "string",
"input": null,
"ctx": {}
}
]
}