The Asana REST API — tasks, projects, workspaces, goals and portfolios.
We already watch this spec — add your email and we'll alert you on every change, breaking ones first. Free, no credit card, one click to stop.
Rebuilt automatically from the official OpenAPI spec. Every entry is a real diff — nothing is hand-written.
version 1.0 → 1.0
| Change | Type | Severity | Why it matters |
|---|---|---|---|
GET /custom_types/{custom_type_gid} | security security requirement added | Potential | Endpoint: security requirement added (oauth2) |
GET /custom_types/{custom_type_gid} | security security requirement removed | OK | Endpoint: security requirement removed (oauth2) |
GET /custom_types/{custom_type_gid} | security security scope added | Potential | Endpoint: scope added to "oauth2": custom_types:read |
GET /custom_types/{custom_type_gid} | description updated | OK | Summary or description text changed. No contract impact. |
version 1.0 → 1.0
| Change | Type | Severity | Why it matters |
|---|---|---|---|
GET /allocations/{allocation_gid} | parameter "opt_fields" enum values added | OK | Added: parent.resource_subtype |
GET /allocations/{allocation_gid} | response 200 property added | OK | Response 200 field "data.allOf[1].parent.resource_subtype": Added (optional) |
PUT /allocations/{allocation_gid} | parameter "opt_fields" enum values added | OK | Added: parent.resource_subtype |
PUT /allocations/{allocation_gid} | response 200 property added | OK | Response 200 field "data.allOf[1].parent.resource_subtype": Added (optional) |
GET /allocations | parameter "opt_fields" enum values added | OK | Added: parent.resource_subtype |
GET /allocations | response 200 property added | OK | Response 200 field "data[].allOf[1].parent.resource_subtype": Added (optional) |
POST /allocations | parameter "opt_fields" enum values added | OK | Added: parent.resource_subtype |
POST /allocations | response 201 property added | OK | Response 201 field "data.allOf[1].parent.resource_subtype": Added (optional) |
GET /budgets | response 200 property added | OK | Response 200 field "data[].allOf[1].parent.allOf[0].resource_subtype": Added (optional) |
POST /budgets | response 201 property added | OK | Response 201 field "data.allOf[1].parent.allOf[0].resource_subtype": Added (optional) |
GET /budgets/{budget_gid} | parameter "opt_fields" enum values added | OK | Added: parent.resource_subtype |
GET /budgets/{budget_gid} | response 200 property added | OK | Response 200 field "data.allOf[1].parent.allOf[0].resource_subtype": Added (optional) |
PUT /budgets/{budget_gid} | parameter "opt_fields" enum values added | OK | Added: parent.resource_subtype |
PUT /budgets/{budget_gid} | response 200 property added | OK | Response 200 field "data.allOf[1].parent.allOf[0].resource_subtype": Added (optional) |
GET /projects/{project_gid}/custom_field_settings | parameter "opt_fields" enum values added | OK | Added: parent.resource_subtype, project.resource_subtype |
GET /projects/{project_gid}/custom_field_settings | response 200 property added | OK | Response 200 field "data[].allOf[1].project.allOf[0].resource_subtype": Added (optional) |
GET /portfolios/{portfolio_gid}/custom_field_settings | parameter "opt_fields" enum values added | OK | Added: parent.resource_subtype, project.resource_subtype |
GET /portfolios/{portfolio_gid}/custom_field_settings | response 200 property added | OK | Response 200 field "data[].allOf[1].project.allOf[0].resource_subtype": Added (optional) |
GET /goals/{goal_gid}/custom_field_settings | parameter "opt_fields" enum values added | OK | Added: parent.resource_subtype, project.resource_subtype |
GET /goals/{goal_gid}/custom_field_settings | response 200 property added | OK | Response 200 field "data[].allOf[1].project.allOf[0].resource_subtype": Added (optional) |
GET /teams/{team_gid}/custom_field_settings | parameter "opt_fields" enum values added | OK | Added: parent.resource_subtype, project.resource_subtype |
GET /teams/{team_gid}/custom_field_settings | response 200 property added | OK | Response 200 field "data[].allOf[1].project.allOf[0].resource_subtype": Added (optional) |
GET /custom_types | parameter added | OK | New optional parameter "workspace" (in query). Existing requests keep working. |
GET /custom_types | parameter "project" parameter became optional | OK | Parameter "project" changed (parameter became optional). |
GET /custom_types | parameter "opt_fields" enum values added | OK | Added: asana_created_type_identifier |
GET /custom_types | response 200 property added | OK | Response 200 field "data[].allOf[0].asana_created_type_identifier": Added (optional) |
GET /custom_types | security security requirement added | Potential | Endpoint: security requirement added (oauth2) |
GET /custom_types | security security requirement removed | OK | Endpoint: security requirement removed (oauth2) |
GET /custom_types | security security scope added | Potential | Endpoint: scope added to "oauth2": custom_types:read |
GET /custom_types | description updated | OK | Summary or description text changed. No contract impact. |
GET /custom_types/{custom_type_gid} | parameter "opt_fields" enum values added | OK | Added: asana_created_type_identifier |
GET /custom_types/{custom_type_gid} | response 200 property added | OK | Response 200 field "data.allOf[0].asana_created_type_identifier": Added (optional) |
GET /goal_relationships/{goal_relationship_gid} | parameter "opt_fields" enum values added | OK | Added: supporting_resource.resource_subtype |
GET /goal_relationships/{goal_relationship_gid} | response 200 property added | OK | Response 200 field "data.allOf[0].allOf[0].supporting_resource.allOf[0].resource_subtype": Added (optional) |
PUT /goal_relationships/{goal_relationship_gid} | parameter "opt_fields" enum values added | OK | Added: supporting_resource.resource_subtype |
PUT /goal_relationships/{goal_relationship_gid} | request body property added | OK | Added (optional) |
PUT /goal_relationships/{goal_relationship_gid} | response 200 property added | OK | Response 200 field "data.allOf[0].allOf[0].supporting_resource.allOf[0].resource_subtype": Added (optional) |
GET /goal_relationships | parameter "opt_fields" enum values added | OK | Added: supporting_resource.resource_subtype |
GET /goal_relationships | response 200 property added | OK | Response 200 field "data[].supporting_resource.allOf[0].resource_subtype": Added (optional) |
POST /goals/{goal_gid}/addSupportingRelationship | parameter "opt_fields" enum values added | OK | Added: supporting_resource.resource_subtype |
POST /goals/{goal_gid}/addSupportingRelationship | response 200 property added | OK | Response 200 field "data.allOf[0].allOf[0].supporting_resource.allOf[0].resource_subtype": Added (optional) |
GET /goals/{goal_gid} | parameter "opt_fields" enum values added | OK | Added: custom_field_settings.parent.resource_subtype, custom_field_settings.project.resource_subtype |
GET /goals/{goal_gid} | response 200 property added | OK | Response 200 field "data.allOf[1].custom_field_settings[].allOf[1].project.allOf[0].resource_subtype": Added (optional) |
PUT /goals/{goal_gid} | parameter "opt_fields" enum values added | OK | Added: custom_field_settings.parent.resource_subtype, custom_field_settings.project.resource_subtype |
PUT /goals/{goal_gid} | response 200 property added | OK | Response 200 field "data.allOf[1].custom_field_settings[].allOf[1].project.allOf[0].resource_subtype": Added (optional) |
GET /goals | parameter "opt_fields" enum values added | OK | Added: custom_field_settings.parent.resource_subtype, custom_field_settings.project.resource_subtype |
POST /goals | parameter "opt_fields" enum values added | OK | Added: custom_field_settings.parent.resource_subtype, custom_field_settings.project.resource_subtype |
POST /goals | response 201 property added | OK | Response 201 field "data.allOf[1].custom_field_settings[].allOf[1].project.allOf[0].resource_subtype": Added (optional) |
POST /goals/{goal_gid}/setMetric | parameter "opt_fields" enum values added | OK | Added: custom_field_settings.parent.resource_subtype, custom_field_settings.project.resource_subtype |
POST /goals/{goal_gid}/setMetric | response 200 property added | OK | Response 200 field "data.allOf[1].custom_field_settings[].allOf[1].project.allOf[0].resource_subtype": Added (optional) |
POST /goals/{goal_gid}/setMetricCurrentValue | parameter "opt_fields" enum values added | OK | Added: custom_field_settings.parent.resource_subtype, custom_field_settings.project.resource_subtype |
POST /goals/{goal_gid}/setMetricCurrentValue | response 200 property added | OK | Response 200 field "data.allOf[1].custom_field_settings[].allOf[1].project.allOf[0].resource_subtype": Added (optional) |
POST /goals/{goal_gid}/addFollowers | parameter "opt_fields" enum values added | OK | Added: custom_field_settings.parent.resource_subtype, custom_field_settings.project.resource_subtype |
POST /goals/{goal_gid}/addFollowers | response 200 property added | OK | Response 200 field "data.allOf[1].custom_field_settings[].allOf[1].project.allOf[0].resource_subtype": Added (optional) |
POST /goals/{goal_gid}/removeFollowers | parameter "opt_fields" enum values added | OK | Added: custom_field_settings.parent.resource_subtype, custom_field_settings.project.resource_subtype |
POST /goals/{goal_gid}/removeFollowers | response 200 property added | OK | Response 200 field "data.allOf[1].custom_field_settings[].allOf[1].project.allOf[0].resource_subtype": Added (optional) |
GET /goals/{goal_gid}/parentGoals | parameter "opt_fields" enum values added | OK | Added: custom_field_settings.parent.resource_subtype, custom_field_settings.project.resource_subtype |
POST /goals/{goal_gid}/addCustomFieldSetting | response 200 property added | OK | Response 200 field "data.allOf[1].project.allOf[0].resource_subtype": Added (optional) |
GET /jobs/{job_gid} | parameter "opt_fields" enum values added | OK | Added: new_portfolio.resource_subtype, new_project.resource_subtype |
GET /jobs/{job_gid} | response 200 property added | OK | Response 200 field "data.new_portfolio.resource_subtype": Added (optional) |
GET /jobs/{job_gid} | response 200 property added | OK | Response 200 field "data.new_project.resource_subtype": Added (optional) |
GET /memberships | response 200 property added | OK | Response 200 field "data[].anyOf[1].allOf[0].parent.resource_subtype": Added (optional) |
GET /memberships | response 200 property added | OK | Response 200 field "data[].anyOf[2].allOf[0].parent.resource_subtype": Added (optional) |
GET /memberships | response 200 property added | OK | Response 200 field "data[].anyOf[4].parent.asana_created_type_identifier": Added (optional) |
POST /memberships | response 201 property added | OK | Response 201 field "data.anyOf[1].allOf[0].parent.resource_subtype": Added (optional) |
POST /memberships | response 201 property added | OK | Response 201 field "data.anyOf[2].parent.resource_subtype": Added (optional) |
POST /memberships | response 201 property added | OK | Response 201 field "data.anyOf[4].parent.asana_created_type_identifier": Added (optional) |
GET /memberships/{membership_gid} | response 200 property added | OK | Response 200 field "data.anyOf[1].allOf[0].parent.resource_subtype": Added (optional) |
GET /memberships/{membership_gid} | response 200 property added | OK | Response 200 field "data.anyOf[2].parent.resource_subtype": Added (optional) |
GET /memberships/{membership_gid} | response 200 property added | OK | Response 200 field "data.anyOf[4].parent.asana_created_type_identifier": Added (optional) |
PUT /memberships/{membership_gid} | response 200 property added | OK | Response 200 field "data.anyOf[1].allOf[0].parent.resource_subtype": Added (optional) |
PUT /memberships/{membership_gid} | response 200 property added | OK | Response 200 field "data.anyOf[2].parent.resource_subtype": Added (optional) |
PUT /memberships/{membership_gid} | response 200 property added | OK | Response 200 field "data.anyOf[4].parent.asana_created_type_identifier": Added (optional) |
GET /portfolio_memberships | parameter "opt_fields" enum values added | OK | Added: portfolio.resource_subtype |
GET /portfolio_memberships | response 200 property added | OK | Response 200 field "data[].portfolio.resource_subtype": Added (optional) |
GET /portfolio_memberships/{portfolio_membership_gid} | parameter "opt_fields" enum values added | OK | Added: portfolio.resource_subtype |
GET /portfolio_memberships/{portfolio_membership_gid} | response 200 property added | OK | Response 200 field "data.portfolio.resource_subtype": Added (optional) |
GET /portfolios/{portfolio_gid}/portfolio_memberships | parameter "opt_fields" enum values added | OK | Added: portfolio.resource_subtype |
GET /portfolios/{portfolio_gid}/portfolio_memberships | response 200 property added | OK | Response 200 field "data[].portfolio.resource_subtype": Added (optional) |
GET /portfolios | parameter added | OK | New optional parameter "custom_type" (in query). Existing requests keep working. |
GET /portfolios | parameter "opt_fields" enum values added | OK | Added: custom_field_settings.parent.resource_subtype, custom_field_settings.project.resource_subtype, custom_type, custom_type.asana_created_type_identifier, custom_type.name, resource_subtype |
GET /portfolios | response 200 property added | OK | Response 200 field "data[].resource_subtype": Added (optional) |
POST /portfolios | parameter "opt_fields" enum values added | OK | Added: custom_field_settings.parent.resource_subtype, custom_field_settings.project.resource_subtype, custom_type, custom_type.asana_created_type_identifier, custom_type.name, resource_subtype |
POST /portfolios | request body property added | OK | Added (optional) |
POST /portfolios | request body property added | OK | Added (optional) |
POST /portfolios | response 201 property added | OK | Response 201 field "data.allOf[0].allOf[0].resource_subtype": Added (optional) |
POST /portfolios | response 201 property added | OK | Response 201 field "data.allOf[1].custom_field_settings[].allOf[1].project.allOf[0].resource_subtype": Added (optional) |
POST /portfolios | response 201 property added | OK | Response 201 field "data.allOf[1].custom_type": Added (optional) |
GET /portfolios/{portfolio_gid} | parameter "opt_fields" enum values added | OK | Added: custom_field_settings.parent.resource_subtype, custom_field_settings.project.resource_subtype, custom_type, custom_type.asana_created_type_identifier, custom_type.name, resource_subtype |
GET /portfolios/{portfolio_gid} | response 200 property added | OK | Response 200 field "data.allOf[0].allOf[0].resource_subtype": Added (optional) |
GET /portfolios/{portfolio_gid} | response 200 property added | OK | Response 200 field "data.allOf[1].custom_field_settings[].allOf[1].project.allOf[0].resource_subtype": Added (optional) |
GET /portfolios/{portfolio_gid} | response 200 property added | OK | Response 200 field "data.allOf[1].custom_type": Added (optional) |
PUT /portfolios/{portfolio_gid} | parameter "opt_fields" enum values added | OK | Added: custom_field_settings.parent.resource_subtype, custom_field_settings.project.resource_subtype, custom_type, custom_type.asana_created_type_identifier, custom_type.name, resource_subtype |
PUT /portfolios/{portfolio_gid} | request body property added | OK | Added (optional) |
PUT /portfolios/{portfolio_gid} | request body property added | OK | Added (optional) |
PUT /portfolios/{portfolio_gid} | response 200 property added | OK | Response 200 field "data.allOf[0].allOf[0].resource_subtype": Added (optional) |
PUT /portfolios/{portfolio_gid} | response 200 property added | OK | Response 200 field "data.allOf[1].custom_field_settings[].allOf[1].project.allOf[0].resource_subtype": Added (optional) |
PUT /portfolios/{portfolio_gid} | response 200 property added | OK | Response 200 field "data.allOf[1].custom_type": Added (optional) |
GET /portfolios/{portfolio_gid}/items | response 200 property added | OK | Response 200 field "data[].anyOf[0].resource_subtype": Added (optional) |
GET /portfolios/{portfolio_gid}/items | response 200 property added | OK | Response 200 field "data[].anyOf[1].resource_subtype": Added (optional) |
POST /portfolios/{portfolio_gid}/addCustomFieldSetting | response 200 property added | OK | Response 200 field "data.allOf[1].project.allOf[0].resource_subtype": Added (optional) |
POST /portfolios/{portfolio_gid}/addMembers | parameter "opt_fields" enum values added | OK | Added: custom_field_settings.parent.resource_subtype, custom_field_settings.project.resource_subtype, custom_type, custom_type.asana_created_type_identifier, custom_type.name, resource_subtype |
POST /portfolios/{portfolio_gid}/addMembers | response 200 property added | OK | Response 200 field "data.allOf[0].allOf[0].resource_subtype": Added (optional) |
POST /portfolios/{portfolio_gid}/addMembers | response 200 property added | OK | Response 200 field "data.allOf[1].custom_field_settings[].allOf[1].project.allOf[0].resource_subtype": Added (optional) |
POST /portfolios/{portfolio_gid}/addMembers | response 200 property added | OK | Response 200 field "data.allOf[1].custom_type": Added (optional) |
POST /portfolios/{portfolio_gid}/removeMembers | parameter "opt_fields" enum values added | OK | Added: custom_field_settings.parent.resource_subtype, custom_field_settings.project.resource_subtype, custom_type, custom_type.asana_created_type_identifier, custom_type.name, resource_subtype |
POST /portfolios/{portfolio_gid}/removeMembers | response 200 property added | OK | Response 200 field "data.allOf[0].allOf[0].resource_subtype": Added (optional) |
POST /portfolios/{portfolio_gid}/removeMembers | response 200 property added | OK | Response 200 field "data.allOf[1].custom_field_settings[].allOf[1].project.allOf[0].resource_subtype": Added (optional) |
POST /portfolios/{portfolio_gid}/removeMembers | response 200 property added | OK | Response 200 field "data.allOf[1].custom_type": Added (optional) |
POST /portfolios/{portfolio_gid}/duplicate | parameter "opt_fields" enum values added | OK | Added: new_portfolio.resource_subtype, new_project.resource_subtype |
POST /portfolios/{portfolio_gid}/duplicate | response 201 property added | OK | Response 201 field "data.new_portfolio.resource_subtype": Added (optional) |
POST /portfolios/{portfolio_gid}/duplicate | response 201 property added | OK | Response 201 field "data.new_project.resource_subtype": Added (optional) |
GET /project_briefs/{project_brief_gid} | parameter "opt_fields" enum values added | OK | Added: project.resource_subtype |
GET /project_briefs/{project_brief_gid} | response 200 property added | OK | Response 200 field "data.allOf[1].project.allOf[0].resource_subtype": Added (optional) |
PUT /project_briefs/{project_brief_gid} | parameter "opt_fields" enum values added | OK | Added: project.resource_subtype |
PUT /project_briefs/{project_brief_gid} | response 200 property added | OK | Response 200 field "data.allOf[1].project.allOf[0].resource_subtype": Added (optional) |
POST /projects/{project_gid}/project_briefs | parameter "opt_fields" enum values added | OK | Added: project.resource_subtype |
POST /projects/{project_gid}/project_briefs | response 201 property added | OK | Response 201 field "data.allOf[1].project.allOf[0].resource_subtype": Added (optional) |
GET /project_memberships/{project_membership_gid} | parameter "opt_fields" enum values added | OK | Added: parent.resource_subtype, project.resource_subtype |
GET /project_memberships/{project_membership_gid} | response 200 property added | OK | Response 200 field "data.allOf[0].parent.resource_subtype": Added (optional) |
GET /projects/{project_gid}/project_memberships | parameter "opt_fields" enum values added | OK | Added: parent.resource_subtype |
GET /projects/{project_gid}/project_memberships | response 200 property added | OK | Response 200 field "data[].parent.resource_subtype": Added (optional) |
GET /project_portfolio_settings/{project_portfolio_setting_gid} | response 200 property added | OK | Response 200 field "data.allOf[0].project.allOf[0].resource_subtype": Added (optional) |
GET /project_portfolio_settings/{project_portfolio_setting_gid} | response 200 property added | OK | Response 200 field "data.allOf[0].portfolio.allOf[0].resource_subtype": Added (optional) |
PUT /project_portfolio_settings/{project_portfolio_setting_gid} | response 200 property added | OK | Response 200 field "data.allOf[0].project.allOf[0].resource_subtype": Added (optional) |
PUT /project_portfolio_settings/{project_portfolio_setting_gid} | response 200 property added | OK | Response 200 field "data.allOf[0].portfolio.allOf[0].resource_subtype": Added (optional) |
GET /projects/{project_gid}/project_portfolio_settings | response 200 property added | OK | Response 200 field "data[].project.allOf[0].resource_subtype": Added (optional) |
GET /projects/{project_gid}/project_portfolio_settings | response 200 property added | OK | Response 200 field "data[].portfolio.allOf[0].resource_subtype": Added (optional) |
GET /portfolios/{portfolio_gid}/project_portfolio_settings | response 200 property added | OK | Response 200 field "data[].project.allOf[0].resource_subtype": Added (optional) |
GET /portfolios/{portfolio_gid}/project_portfolio_settings | response 200 property added | OK | Response 200 field "data[].portfolio.allOf[0].resource_subtype": Added (optional) |
POST /project_templates/{project_template_gid}/instantiateProject | parameter "opt_fields" enum values added | OK | Added: new_portfolio.resource_subtype, new_project.resource_subtype |
POST /project_templates/{project_template_gid}/instantiateProject | response 201 property added | OK | Response 201 field "data.new_portfolio.resource_subtype": Added (optional) |
POST /project_templates/{project_template_gid}/instantiateProject | response 201 property added | OK | Response 201 field "data.new_project.resource_subtype": Added (optional) |
GET /projects | parameter added | OK | New optional parameter "custom_type" (in query). Existing requests keep working. |
GET /projects | parameter "opt_fields" enum values added | OK | Added: custom_field_settings.parent.resource_subtype, custom_field_settings.project.resource_subtype, custom_type, custom_type.asana_created_type_identifier, custom_type.name, resource_subtype |
GET /projects | response 200 property added | OK | Response 200 field "data[].resource_subtype": Added (optional) |
POST /projects | parameter "opt_fields" enum values added | OK | Added: custom_field_settings.parent.resource_subtype, custom_field_settings.project.resource_subtype, custom_type, custom_type.asana_created_type_identifier, custom_type.name, resource_subtype |
POST /projects | request body property added | OK | Added (optional) |
POST /projects | request body property added | OK | Added (optional) |
POST /projects | response 201 property added | OK | Response 201 field "data.allOf[0].allOf[0].resource_subtype": Added (optional) |
POST /projects | response 201 property added | OK | Response 201 field "data.allOf[1].custom_type": Added (optional) |
GET /projects/{project_gid} | parameter "opt_fields" enum values added | OK | Added: custom_field_settings.parent.resource_subtype, custom_field_settings.project.resource_subtype, custom_type, custom_type.asana_created_type_identifier, custom_type.name, resource_subtype |
GET /projects/{project_gid} | response 200 property added | OK | Response 200 field "data.allOf[0].allOf[0].resource_subtype": Added (optional) |
GET /projects/{project_gid} | response 200 property added | OK | Response 200 field "data.allOf[1].custom_type": Added (optional) |
PUT /projects/{project_gid} | parameter "opt_fields" enum values added | OK | Added: custom_field_settings.parent.resource_subtype, custom_field_settings.project.resource_subtype, custom_type, custom_type.asana_created_type_identifier, custom_type.name, resource_subtype |
PUT /projects/{project_gid} | request body property added | OK | Added (optional) |
PUT /projects/{project_gid} | request body property added | OK | Added (optional) |
PUT /projects/{project_gid} | response 200 property added | OK | Response 200 field "data.allOf[0].allOf[0].resource_subtype": Added (optional) |
PUT /projects/{project_gid} | response 200 property added | OK | Response 200 field "data.allOf[1].custom_type": Added (optional) |
POST /projects/{project_gid}/duplicate | parameter "opt_fields" enum values added | OK | Added: new_portfolio.resource_subtype, new_project.resource_subtype |
POST /projects/{project_gid}/duplicate | response 201 property added | OK | Response 201 field "data.new_portfolio.resource_subtype": Added (optional) |
POST /projects/{project_gid}/duplicate | response 201 property added | OK | Response 201 field "data.new_project.resource_subtype": Added (optional) |
GET /tasks/{task_gid}/projects | parameter "opt_fields" enum values added | OK | Added: custom_field_settings.parent.resource_subtype, custom_field_settings.project.resource_subtype, custom_type, custom_type.asana_created_type_identifier, custom_type.name, resource_subtype |
GET /tasks/{task_gid}/projects | response 200 property added | OK | Response 200 field "data[].resource_subtype": Added (optional) |
GET /teams/{team_gid}/projects | parameter "opt_fields" enum values added | OK | Added: custom_field_settings.parent.resource_subtype, custom_field_settings.project.resource_subtype, custom_type, custom_type.asana_created_type_identifier, custom_type.name, resource_subtype |
GET /teams/{team_gid}/projects | response 200 property added | OK | Response 200 field "data[].resource_subtype": Added (optional) |
POST /teams/{team_gid}/projects | parameter "opt_fields" enum values added | OK | Added: custom_field_settings.parent.resource_subtype, custom_field_settings.project.resource_subtype, custom_type, custom_type.asana_created_type_identifier, custom_type.name, resource_subtype |
POST /teams/{team_gid}/projects | request body property added | OK | Added (optional) |
POST /teams/{team_gid}/projects | request body property added | OK | Added (optional) |
POST /teams/{team_gid}/projects | response 201 property added | OK | Response 201 field "data.allOf[0].allOf[0].resource_subtype": Added (optional) |
POST /teams/{team_gid}/projects | response 201 property added | OK | Response 201 field "data.allOf[1].custom_type": Added (optional) |
GET /workspaces/{workspace_gid}/projects | parameter "opt_fields" enum values added | OK | Added: custom_field_settings.parent.resource_subtype, custom_field_settings.project.resource_subtype, custom_type, custom_type.asana_created_type_identifier, custom_type.name, resource_subtype |
GET /workspaces/{workspace_gid}/projects | response 200 property added | OK | Response 200 field "data[].resource_subtype": Added (optional) |
POST /workspaces/{workspace_gid}/projects | parameter "opt_fields" enum values added | OK | Added: custom_field_settings.parent.resource_subtype, custom_field_settings.project.resource_subtype, custom_type, custom_type.asana_created_type_identifier, custom_type.name, resource_subtype |
POST /workspaces/{workspace_gid}/projects | request body property added | OK | Added (optional) |
POST /workspaces/{workspace_gid}/projects | request body property added | OK | Added (optional) |
POST /workspaces/{workspace_gid}/projects | response 201 property added | OK | Response 201 field "data.allOf[0].allOf[0].resource_subtype": Added (optional) |
POST /workspaces/{workspace_gid}/projects | response 201 property added | OK | Response 201 field "data.allOf[1].custom_type": Added (optional) |
GET /workspaces/{workspace_gid}/projects/search | parameter "opt_fields" enum values added | OK | Added: custom_field_settings.parent.resource_subtype, custom_field_settings.project.resource_subtype, custom_type, custom_type.asana_created_type_identifier, custom_type.name, resource_subtype |
GET /workspaces/{workspace_gid}/projects/search | response 200 property added | OK | Response 200 field "data[].resource_subtype": Added (optional) |
POST /projects/{project_gid}/addCustomFieldSetting | parameter "opt_fields" enum values added | OK | Added: parent.resource_subtype, project.resource_subtype |
POST /projects/{project_gid}/addCustomFieldSetting | response 200 property added | OK | Response 200 field "data.allOf[1].project.allOf[0].resource_subtype": Added (optional) |
POST /projects/{project_gid}/addMembers | parameter "opt_fields" enum values added | OK | Added: custom_field_settings.parent.resource_subtype, custom_field_settings.project.resource_subtype, custom_type, custom_type.asana_created_type_identifier, custom_type.name, resource_subtype |
POST /projects/{project_gid}/addMembers | response 200 property added | OK | Response 200 field "data.allOf[0].allOf[0].resource_subtype": Added (optional) |
POST /projects/{project_gid}/addMembers | response 200 property added | OK | Response 200 field "data.allOf[1].custom_type": Added (optional) |
POST /projects/{project_gid}/removeMembers | parameter "opt_fields" enum values added | OK | Added: custom_field_settings.parent.resource_subtype, custom_field_settings.project.resource_subtype, custom_type, custom_type.asana_created_type_identifier, custom_type.name, resource_subtype |
POST /projects/{project_gid}/removeMembers | response 200 property added | OK | Response 200 field "data.allOf[0].allOf[0].resource_subtype": Added (optional) |
POST /projects/{project_gid}/removeMembers | response 200 property added | OK | Response 200 field "data.allOf[1].custom_type": Added (optional) |
POST /projects/{project_gid}/addFollowers | parameter "opt_fields" enum values added | OK | Added: custom_field_settings.parent.resource_subtype, custom_field_settings.project.resource_subtype, custom_type, custom_type.asana_created_type_identifier, custom_type.name, resource_subtype |
POST /projects/{project_gid}/addFollowers | response 200 property added | OK | Response 200 field "data.allOf[0].allOf[0].resource_subtype": Added (optional) |
POST /projects/{project_gid}/addFollowers | response 200 property added | OK | Response 200 field "data.allOf[1].custom_type": Added (optional) |
POST /projects/{project_gid}/removeFollowers | parameter "opt_fields" enum values added | OK | Added: custom_field_settings.parent.resource_subtype, custom_field_settings.project.resource_subtype, custom_type, custom_type.asana_created_type_identifier, custom_type.name, resource_subtype |
POST /projects/{project_gid}/removeFollowers | response 200 property added | OK | Response 200 field "data.allOf[0].allOf[0].resource_subtype": Added (optional) |
POST /projects/{project_gid}/removeFollowers | response 200 property added | OK | Response 200 field "data.allOf[1].custom_type": Added (optional) |
POST /projects/{project_gid}/saveAsTemplate | parameter "opt_fields" enum values added | OK | Added: new_portfolio.resource_subtype, new_project.resource_subtype |
POST /projects/{project_gid}/saveAsTemplate | response 201 property added | OK | Response 201 field "data.new_portfolio.resource_subtype": Added (optional) |
POST /projects/{project_gid}/saveAsTemplate | response 201 property added | OK | Response 201 field "data.new_project.resource_subtype": Added (optional) |
GET /rates | response 200 property added | OK | Response 200 field "data[].anyOf[0].parent.resource_subtype": Added (optional) |
POST /rates | parameter "opt_fields" enum values added | OK | Added: parent.resource_subtype |
POST /rates | response 201 property added | OK | Response 201 field "data.allOf[0].parent.resource_subtype": Added (optional) |
GET /rates/{rate_gid} | parameter "opt_fields" enum values added | OK | Added: parent.resource_subtype |
GET /rates/{rate_gid} | response 200 property added | OK | Response 200 field "data.allOf[0].parent.resource_subtype": Added (optional) |
PUT /rates/{rate_gid} | parameter "opt_fields" enum values added | OK | Added: parent.resource_subtype |
PUT /rates/{rate_gid} | response 200 property added | OK | Response 200 field "data.allOf[0].parent.resource_subtype": Added (optional) |
GET /sections/{section_gid} | parameter "opt_fields" enum values added | OK | Added: project.resource_subtype, projects.resource_subtype |
GET /sections/{section_gid} | response 200 property added | OK | Response 200 field "data.allOf[1].project.resource_subtype": Added (optional) |
PUT /sections/{section_gid} | parameter "opt_fields" enum values added | OK | Added: project.resource_subtype, projects.resource_subtype |
PUT /sections/{section_gid} | response 200 property added | OK | Response 200 field "data.allOf[1].project.resource_subtype": Added (optional) |
GET /projects/{project_gid}/sections | parameter "opt_fields" enum values added | OK | Added: project.resource_subtype, projects.resource_subtype |
POST /projects/{project_gid}/sections | parameter "opt_fields" enum values added | OK | Added: project.resource_subtype, projects.resource_subtype |
Showing the first 200 changes of this update.
version 1.0 → 1.0
| Change | Type | Severity | Why it matters |
|---|---|---|---|
GET /jobs/{job_gid} | description updated | OK | Summary or description text changed. No contract impact. |
GET /portfolios/{portfolio_gid} | description updated | OK | Summary or description text changed. No contract impact. |
GET /projects/{project_gid} | description updated | OK | Summary or description text changed. No contract impact. |
GET /tasks/{task_gid}/projects | parameter added | OK | New optional parameter "include_inherited_projects" (in query). Existing requests keep working. |
GET /projects/{project_gid}/task_counts | description updated | OK | Summary or description text changed. No contract impact. |
GET /tasks | parameter "opt_fields" enum values added | OK | Added: effective_memberships |
POST /tasks | parameter "opt_fields" enum values added | OK | Added: effective_memberships |
POST /tasks | response 201 property added | OK | Response 201 field "data.allOf[1].effective_memberships": Added (optional) |
GET /tasks/{task_gid} | parameter "opt_fields" enum values added | OK | Added: effective_memberships |
GET /tasks/{task_gid} | response 200 property added | OK | Response 200 field "data.allOf[1].effective_memberships": Added (optional) |
PUT /tasks/{task_gid} | parameter "opt_fields" enum values added | OK | Added: effective_memberships |
PUT /tasks/{task_gid} | response 200 property added | OK | Response 200 field "data.allOf[1].effective_memberships": Added (optional) |
GET /projects/{project_gid}/tasks | parameter "opt_fields" enum values added | OK | Added: effective_memberships |
GET /sections/{section_gid}/tasks | parameter "opt_fields" enum values added | OK | Added: effective_memberships |
GET /tags/{tag_gid}/tasks | parameter "opt_fields" enum values added | OK | Added: effective_memberships |
GET /user_task_lists/{user_task_list_gid}/tasks | parameter "opt_fields" enum values added | OK | Added: effective_memberships |
GET /tasks/{task_gid}/subtasks | parameter "opt_fields" enum values added | OK | Added: effective_memberships |
POST /tasks/{task_gid}/subtasks | parameter "opt_fields" enum values added | OK | Added: effective_memberships |
POST /tasks/{task_gid}/subtasks | response 201 property added | OK | Response 201 field "data.allOf[1].effective_memberships": Added (optional) |
POST /tasks/{task_gid}/setParent | parameter "opt_fields" enum values added | OK | Added: effective_memberships |
POST /tasks/{task_gid}/setParent | response 200 property added | OK | Response 200 field "data.allOf[1].effective_memberships": Added (optional) |
GET /tasks/{task_gid}/dependencies | parameter "opt_fields" enum values added | OK | Added: effective_memberships |
GET /tasks/{task_gid}/dependents | parameter "opt_fields" enum values added | OK | Added: effective_memberships |
POST /tasks/{task_gid}/addFollowers | parameter "opt_fields" enum values added | OK | Added: effective_memberships |
POST /tasks/{task_gid}/addFollowers | response 200 property added | OK | Response 200 field "data.allOf[1].effective_memberships": Added (optional) |
POST /tasks/{task_gid}/removeFollowers | parameter "opt_fields" enum values added | OK | Added: effective_memberships |
POST /tasks/{task_gid}/removeFollowers | response 200 property added | OK | Response 200 field "data.allOf[1].effective_memberships": Added (optional) |
GET /workspaces/{workspace_gid}/tasks/custom_id/{custom_id} | response 200 property added | OK | Response 200 field "data.allOf[1].effective_memberships": Added (optional) |
GET /workspaces/{workspace_gid}/tasks/search | parameter "projects.any" modified | OK | description changed |
GET /workspaces/{workspace_gid}/tasks/search | parameter "opt_fields" enum values added | OK | Added: effective_memberships |
GET /time_tracking_entries/{time_tracking_entry_gid} | description updated | OK | Summary or description text changed. No contract impact. |
components/schemas/TaskResponse.(root).allOf[1].effective_memberships | property added | OK | Added |
components/schemas/EffectiveTaskMembership | schema added | OK | Shared schema "EffectiveTaskMembership" was added. |
version 1.0 → 1.0
| Change | Type | Severity | Why it matters |
|---|---|---|---|
POST /tasks | request body type changed | Breaking | object → (none) |
POST /tasks | request body property removed | Potential | Removed (was optional) |
POST /tasks | request body property removed | Potential | Removed (was optional) |
POST /tasks | request body property removed | Potential | Removed (was optional) |
POST /tasks | request body allOf added | Potential | allOf added with 2 schema(s) |
POST /tasks | response 201 type changed | Breaking | Response 201 field "data.allOf[0].allOf[1].memberships[].section": object → (none) |
POST /tasks | response 201 property removed | Potential | Response 201 field "data.allOf[0].allOf[1].memberships[].section.gid": Removed (was optional) |
POST /tasks | response 201 property removed | Potential | Response 201 field "data.allOf[0].allOf[1].memberships[].section.resource_type": Removed (was optional) |
POST /tasks | response 201 property removed | Potential | Response 201 field "data.allOf[0].allOf[1].memberships[].section.name": Removed (was optional) |
POST /tasks | response 201 allOf added | OK | Response 201 field "data.allOf[0].allOf[1].memberships[].section": allOf added with 2 schema(s) |
GET /tasks/{task_gid} | response 200 type changed | Breaking | Response 200 field "data.allOf[0].allOf[1].memberships[].section": object → (none) |
GET /tasks/{task_gid} | response 200 property removed | Potential | Response 200 field "data.allOf[0].allOf[1].memberships[].section.gid": Removed (was optional) |
GET /tasks/{task_gid} | response 200 property removed | Potential | Response 200 field "data.allOf[0].allOf[1].memberships[].section.resource_type": Removed (was optional) |
GET /tasks/{task_gid} | response 200 property removed | Potential | Response 200 field "data.allOf[0].allOf[1].memberships[].section.name": Removed (was optional) |
GET /tasks/{task_gid} | response 200 allOf added | OK | Response 200 field "data.allOf[0].allOf[1].memberships[].section": allOf added with 2 schema(s) |
GET /tasks/{task_gid} | description updated | OK | Summary or description text changed. No contract impact. |
PUT /tasks/{task_gid} | request body type changed | Breaking | object → (none) |
PUT /tasks/{task_gid} | request body property removed | Potential | Removed (was optional) |
PUT /tasks/{task_gid} | request body property removed | Potential | Removed (was optional) |
PUT /tasks/{task_gid} | request body property removed | Potential | Removed (was optional) |
PUT /tasks/{task_gid} | request body allOf added | Potential | allOf added with 2 schema(s) |
PUT /tasks/{task_gid} | response 200 type changed | Breaking | Response 200 field "data.allOf[0].allOf[1].memberships[].section": object → (none) |
PUT /tasks/{task_gid} | response 200 property removed | Potential | Response 200 field "data.allOf[0].allOf[1].memberships[].section.gid": Removed (was optional) |
PUT /tasks/{task_gid} | response 200 property removed | Potential | Response 200 field "data.allOf[0].allOf[1].memberships[].section.resource_type": Removed (was optional) |
PUT /tasks/{task_gid} | response 200 property removed | Potential | Response 200 field "data.allOf[0].allOf[1].memberships[].section.name": Removed (was optional) |
PUT /tasks/{task_gid} | response 200 allOf added | OK | Response 200 field "data.allOf[0].allOf[1].memberships[].section": allOf added with 2 schema(s) |
POST /tasks/{task_gid}/subtasks | request body type changed | Breaking | object → (none) |
POST /tasks/{task_gid}/subtasks | request body property removed | Potential | Removed (was optional) |
POST /tasks/{task_gid}/subtasks | request body property removed | Potential | Removed (was optional) |
POST /tasks/{task_gid}/subtasks | request body property removed | Potential | Removed (was optional) |
POST /tasks/{task_gid}/subtasks | request body allOf added | Potential | allOf added with 2 schema(s) |
POST /tasks/{task_gid}/subtasks | response 201 type changed | Breaking | Response 201 field "data.allOf[0].allOf[1].memberships[].section": object → (none) |
POST /tasks/{task_gid}/subtasks | response 201 property removed | Potential | Response 201 field "data.allOf[0].allOf[1].memberships[].section.gid": Removed (was optional) |
POST /tasks/{task_gid}/subtasks | response 201 property removed | Potential | Response 201 field "data.allOf[0].allOf[1].memberships[].section.resource_type": Removed (was optional) |
POST /tasks/{task_gid}/subtasks | response 201 property removed | Potential | Response 201 field "data.allOf[0].allOf[1].memberships[].section.name": Removed (was optional) |
POST /tasks/{task_gid}/subtasks | response 201 allOf added | OK | Response 201 field "data.allOf[0].allOf[1].memberships[].section": allOf added with 2 schema(s) |
POST /tasks/{task_gid}/setParent | response 200 type changed | Breaking | Response 200 field "data.allOf[0].allOf[1].memberships[].section": object → (none) |
POST /tasks/{task_gid}/setParent | response 200 property removed | Potential | Response 200 field "data.allOf[0].allOf[1].memberships[].section.gid": Removed (was optional) |
POST /tasks/{task_gid}/setParent | response 200 property removed | Potential | Response 200 field "data.allOf[0].allOf[1].memberships[].section.resource_type": Removed (was optional) |
POST /tasks/{task_gid}/setParent | response 200 property removed | Potential | Response 200 field "data.allOf[0].allOf[1].memberships[].section.name": Removed (was optional) |
POST /tasks/{task_gid}/setParent | response 200 allOf added | OK | Response 200 field "data.allOf[0].allOf[1].memberships[].section": allOf added with 2 schema(s) |
POST /tasks/{task_gid}/addFollowers | response 200 type changed | Breaking | Response 200 field "data.allOf[0].allOf[1].memberships[].section": object → (none) |
POST /tasks/{task_gid}/addFollowers | response 200 property removed | Potential | Response 200 field "data.allOf[0].allOf[1].memberships[].section.gid": Removed (was optional) |
POST /tasks/{task_gid}/addFollowers | response 200 property removed | Potential | Response 200 field "data.allOf[0].allOf[1].memberships[].section.resource_type": Removed (was optional) |
POST /tasks/{task_gid}/addFollowers | response 200 property removed | Potential | Response 200 field "data.allOf[0].allOf[1].memberships[].section.name": Removed (was optional) |
POST /tasks/{task_gid}/addFollowers | response 200 allOf added | OK | Response 200 field "data.allOf[0].allOf[1].memberships[].section": allOf added with 2 schema(s) |
POST /tasks/{task_gid}/removeFollowers | response 200 type changed | Breaking | Response 200 field "data.allOf[0].allOf[1].memberships[].section": object → (none) |
POST /tasks/{task_gid}/removeFollowers | response 200 property removed | Potential | Response 200 field "data.allOf[0].allOf[1].memberships[].section.gid": Removed (was optional) |
POST /tasks/{task_gid}/removeFollowers | response 200 property removed | Potential | Response 200 field "data.allOf[0].allOf[1].memberships[].section.resource_type": Removed (was optional) |
POST /tasks/{task_gid}/removeFollowers | response 200 property removed | Potential | Response 200 field "data.allOf[0].allOf[1].memberships[].section.name": Removed (was optional) |
POST /tasks/{task_gid}/removeFollowers | response 200 allOf added | OK | Response 200 field "data.allOf[0].allOf[1].memberships[].section": allOf added with 2 schema(s) |
GET /workspaces/{workspace_gid}/tasks/custom_id/{custom_id} | response 200 type changed | Breaking | Response 200 field "data.allOf[0].allOf[1].memberships[].section": object → (none) |
GET /workspaces/{workspace_gid}/tasks/custom_id/{custom_id} | response 200 property removed | Potential | Response 200 field "data.allOf[0].allOf[1].memberships[].section.gid": Removed (was optional) |
GET /workspaces/{workspace_gid}/tasks/custom_id/{custom_id} | response 200 property removed | Potential | Response 200 field "data.allOf[0].allOf[1].memberships[].section.resource_type": Removed (was optional) |
GET /workspaces/{workspace_gid}/tasks/custom_id/{custom_id} | response 200 property removed | Potential | Response 200 field "data.allOf[0].allOf[1].memberships[].section.name": Removed (was optional) |
GET /workspaces/{workspace_gid}/tasks/custom_id/{custom_id} | response 200 allOf added | OK | Response 200 field "data.allOf[0].allOf[1].memberships[].section": allOf added with 2 schema(s) |
GET /workspaces/{workspace_gid}/tasks/custom_id/{custom_id} | description updated | OK | Summary or description text changed. No contract impact. |
components/schemas/TaskBase.(root).allOf[1].memberships[].section | type changed | Breaking | object → (none) |
components/schemas/TaskBase.(root).allOf[1].memberships[].section.gid | property removed | Breaking | Removed |
components/schemas/TaskBase.(root).allOf[1].memberships[].section.resource_type | property removed | Breaking | Removed |
components/schemas/TaskBase.(root).allOf[1].memberships[].section.name | property removed | Breaking | Removed |
components/schemas/TaskBase.(root).allOf[1].memberships[].section | allOf added | OK | allOf added with 2 schema(s) |
components/schemas/TaskRequestBase.(root).allOf[0].allOf[1].memberships[].section | type changed | Breaking | object → (none) |
components/schemas/TaskRequestBase.(root).allOf[0].allOf[1].memberships[].section.gid | property removed | Breaking | Removed |
components/schemas/TaskRequestBase.(root).allOf[0].allOf[1].memberships[].section.resource_type | property removed | Breaking | Removed |
components/schemas/TaskRequestBase.(root).allOf[0].allOf[1].memberships[].section.name | property removed | Breaking | Removed |
components/schemas/TaskRequestBase.(root).allOf[0].allOf[1].memberships[].section | allOf added | OK | allOf added with 2 schema(s) |
components/schemas/TaskCreateRequest.(root).allOf[0].allOf[0].allOf[1].memberships[].section | type changed | Breaking | object → (none) |
components/schemas/TaskCreateRequest.(root).allOf[0].allOf[0].allOf[1].memberships[].section.gid | property removed | Breaking | Removed |
components/schemas/TaskCreateRequest.(root).allOf[0].allOf[0].allOf[1].memberships[].section.resource_type | property removed | Breaking | Removed |
components/schemas/TaskCreateRequest.(root).allOf[0].allOf[0].allOf[1].memberships[].section.name | property removed | Breaking | Removed |
components/schemas/TaskCreateRequest.(root).allOf[0].allOf[0].allOf[1].memberships[].section | allOf added | OK | allOf added with 2 schema(s) |
components/schemas/TaskUpdateRequest.(root).allOf[0].allOf[0].allOf[1].memberships[].section | type changed | Breaking | object → (none) |
components/schemas/TaskUpdateRequest.(root).allOf[0].allOf[0].allOf[1].memberships[].section.gid | property removed | Breaking | Removed |
components/schemas/TaskUpdateRequest.(root).allOf[0].allOf[0].allOf[1].memberships[].section.resource_type | property removed | Breaking | Removed |
components/schemas/TaskUpdateRequest.(root).allOf[0].allOf[0].allOf[1].memberships[].section.name | property removed | Breaking | Removed |
components/schemas/TaskUpdateRequest.(root).allOf[0].allOf[0].allOf[1].memberships[].section | allOf added | OK | allOf added with 2 schema(s) |
components/schemas/TaskResponse.(root).allOf[0].allOf[1].memberships[].section | type changed | Breaking | object → (none) |
components/schemas/TaskResponse.(root).allOf[0].allOf[1].memberships[].section.gid | property removed | Breaking | Removed |
components/schemas/TaskResponse.(root).allOf[0].allOf[1].memberships[].section.resource_type | property removed | Breaking | Removed |
components/schemas/TaskResponse.(root).allOf[0].allOf[1].memberships[].section.name | property removed | Breaking | Removed |
components/schemas/TaskResponse.(root).allOf[0].allOf[1].memberships[].section | allOf added | OK | allOf added with 2 schema(s) |
components/schemas/TaskMembership | schema added | OK | Shared schema "TaskMembership" was added. |
Point us at your own OpenAPI spec and get the same automatic changelog, plus email alerts and breaking-change classification on every release.