GoalsCreateNewGoalRecordResponse
{
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/GoalResponse"
}
}
}
GoalsDeleteRecordResponse
{
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/EmptyResponse"
}
}
}
GoalsGetCompactRecordsResponse
{
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/GoalCompact"
}
},
"next_page": {
"$ref": "#/components/schemas/NextPage"
}
}
}
GoalsGetGoalRecordResponse
{
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/GoalResponse"
}
}
}
GoalsGetParentGoalsResponse
{
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/GoalCompact"
}
}
}
}
GoalsRemoveFollowersFromGoalRequest
{
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/TaskAddFollowersRequest"
}
}
}
GoalsRemoveFollowersFromGoalResponse
{
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/GoalResponse"
}
}
}
GoalsUpdateGoalRecordRequest
{
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/GoalUpdateRequest"
}
}
}
GoalsUpdateGoalRecordResponse
{
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/GoalResponse"
}
}
}
GoalsUpdateMetricCurrentValueRequest
{
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/GoalMetricCurrentValueRequest"
}
}
}
GoalsUpdateMetricCurrentValueResponse
{
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/GoalResponse"
}
}
}
JobCompact
{
"allOf": [
{
"$ref": "#/components/schemas/AsanaResource"
},
{
"type": "object",
"properties": {
"status": {
"enum": [
"not_started",
"in_progress",
"succeeded",
"failed"
],
"type": "string",
"example": "in_progress",
"readOnly": true,
"description": "The current status of this job. The value is one of: `not_started`, `in_progress`, `succeeded`, or `failed`."
},
"new_task": {
"allOf": [
{
"$ref": "#/components/schemas/TaskCompact"
},
{
"type": "object",
"nullable": true
}
]
},
"new_project": {
"$ref": "#/components/schemas/ProjectCompact"
},
"resource_subtype": {
"type": "string",
"example": "duplicate_task",
"readOnly": true,
"description": "The subtype of this resource. Different subtypes retain many of the same fields and behavior, but may render differently in Asana or represent resources with different semantic meaning."
},
"new_project_template": {
"$ref": "#/components/schemas/ProjectTemplateCompact"
}
},
"description": "A *job* is an object representing a process that handles asynchronous work.",
"x-docs-overrides": {
"properties.resource_type.example": "job"
}
}
]
}
JobsGetByIdResponse
{
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/JobCompact"
}
}
}
Like
{
"type": "object",
"properties": {
"gid": {
"type": "string",
"example": "12345",
"readOnly": true,
"description": "Globally unique identifier of the object, as a string."
},
"user": {
"$ref": "#/components/schemas/UserCompact"
}
},
"description": "An object to represent a user's like."
}
MemberCompact
{
"allOf": [
{
"$ref": "#/components/schemas/AsanaResource"
},
{
"type": "object",
"properties": {
"name": {
"type": "string",
"example": "Greg Sanchez",
"description": "The name of the member"
},
"resource_type": {
"type": "string",
"example": "user",
"description": "The type of the member (team or user)"
}
},
"description": "A *member* object represents either a team or user.",
"x-docs-overrides": {
"properties.resource_type.example": "member"
}
}
]
}
MembershipCompact
{
"anyOf": [
{
"$ref": "#/components/schemas/GoalMembershipCompact"
},
{
"$ref": "#/components/schemas/ProjectMembershipCompactResponse"
}
]
}
MembershipRequest
{
"type": "object",
"properties": {
"access_level": {
"type": "string",
"example": "editor",
"description": "Sets the access level for the member. Can be `editor` or `commenter`. Projects can have `admin` in addition."
}
}
}
MembershipResponse
{
"anyOf": [
{
"$ref": "#/components/schemas/GoalMembershipResponse"
},
{
"$ref": "#/components/schemas/ProjectMembershipCompactResponse"
}
]
}
MembershipUpdateRequest
{
"type": "object",
"properties": {
"access_level": {
"type": "string",
"example": "editor",
"description": "The role given to the member. Can be `editor` or `commenter`."
}
}
}
MembershipsCreateNewRecordRequest
{
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/CreateMembershipRequest"
}
}
}
MembershipsCreateNewRecordResponse
{
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/MembershipResponse",
"type": "object"
}
}
}
MembershipsDeleteRecordResponse
{
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/EmptyResponse"
}
}
}
MembershipsGetMembershipRecordResponse
{
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/ProjectMembershipCompactResponse"
}
}
}
MembershipsGetMultipleResponse
{
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/MembershipCompact"
}
},
"next_page": {
"$ref": "#/components/schemas/NextPage"
}
}
}
MembershipsUpdateMembershipRecordRequest
{
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/MembershipRequest"
}
}
}
MembershipsUpdateMembershipRecordResponse
{
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/MembershipResponse"
}
}
}
ModifyDependenciesRequest
{
"type": "object",
"example": {
"dependencies": [
"133713",
"184253"
]
},
"properties": {
"dependencies": {
"type": "array",
"items": {
"type": "string"
},
"description": "An array of task gids that a task depends on."
}
}
}
ModifyDependentsRequest
{
"type": "object",
"example": {
"dependents": [
"133713",
"184253"
]
},
"properties": {
"dependents": {
"type": "array",
"items": {
"type": "string"
},
"description": "An array of task gids that are dependents of the given task."
}
},
"description": "A set of dependent tasks."
}
NextPage
{
"type": "object",
"nullable": true,
"properties": {
"uri": {
"type": "string",
"format": "uri",
"example": "https://app.asana.com/api/1.0/tasks/12345/attachments?limit=2&offset=eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9",
"readOnly": true,
"description": "A full uri containing the query parameters to fetch for next_page"
},
"path": {
"type": "string",
"example": "/tasks/12345/attachments?limit=2&offset=eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9",
"readOnly": true,
"description": "A relative path containing the query parameters to fetch for next_page"
},
"offset": {
"type": "string",
"example": "eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9",
"readOnly": true,
"description": "Pagination offset for the request."
}
},
"description": "*Conditional*. This property is only present when a limit query parameter is provided in the request. When making a paginated request, the API will return a number of results as specified by the limit parameter. If more results exist, then the response will contain a next_page attribute, which will include an offset, a relative path attribute, and a full uri attribute. If there are no more pages available, next_page will be null and no offset will be provided. Note that an offset token will expire after some time, as data may have changed."
}
OrganizationExportCompact
{
"allOf": [
{
"$ref": "#/components/schemas/AsanaResource"
},
{
"type": "object",
"properties": {
"state": {
"enum": [
"pending",
"started",
"finished",
"error"
],
"type": "string",
"example": "started",
"readOnly": true,
"description": "The current state of the export."
},
"created_at": {
"type": "string",
"format": "date-time",
"example": "2012-02-22T02:06:58.147Z",
"readOnly": true,
"description": "The time at which this resource was created."
},
"download_url": {
"type": "string",
"format": "uri",
"example": "https://asana-export-us-east-1.s3.us-east-1.amazonaws.com/2563645399633793/domain_export/7588024658887731/download/ domain_export_2563645399633793_7588024658887731_2023018-201726.json.gz?X-Amz-Algorithm=AWS4-HMAC-SHA256& X-Amz-Content-Sha256=xxxxxxxx&X-Amz-Date=xxxxxxxx&X-Amz-Expires=300&X-Amz-Security-Token=xxxxxxxx& X-Amz-Signature=xxxxxxxx&X-Amz-SignedHeaders=host&x-id=GetObject#_=_",
"nullable": true,
"readOnly": true,
"description": "Download this URL to retreive the full export of the organization\nin JSON format. It will be compressed in a gzip (.gz) container.\n\n*Note: May be null if the export is still in progress or\nfailed. If present, this URL may only be valid for 1 hour from\nthe time of retrieval. You should avoid persisting this URL\nsomewhere and rather refresh on demand to ensure you do not keep\nstale URLs.*"
},
"organization": {
"$ref": "#/components/schemas/WorkspaceCompact"
}
},
"description": "An *organization_export* object represents a request to export the complete data of an Organization in JSON format.",
"x-docs-overrides": {
"properties.resource_type.example": "organization_export"
}
}
]
}
OrganizationExportRequest
{
"type": "object",
"properties": {
"organization": {
"type": "string",
"example": "1331",
"description": "Globally unique identifier for the workspace or organization."
}
},
"description": "An *organization_export* request starts a job to export the complete data of the given Organization."
}
OrganizationExportsCreateExportRequestRequest
{
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/OrganizationExportRequest"
}
}
}
OrganizationExportsCreateExportRequestResponse
{
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/OrganizationExportCompact"
}
}
}
OrganizationExportsGetExportDetailsResponse
{
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/OrganizationExportCompact"
}
}
}
PortfolioAddItemRequest
{
"type": "object",
"required": [
"item"
],
"properties": {
"item": {
"type": "string",
"example": "1331",
"description": "The item to add to the portfolio."
},
"insert_after": {
"type": "string",
"example": "1331",
"description": "An id of an item in this portfolio. The new item will be added after the one specified here. `insert_before` and `insert_after` parameters cannot both be specified."
},
"insert_before": {
"type": "string",
"example": "1331",
"description": "An id of an item in this portfolio. The new item will be added before the one specified here. `insert_before` and `insert_after` parameters cannot both be specified."
}
}
}
PortfolioBase
{
"allOf": [
{
"$ref": "#/components/schemas/PortfolioCompact"
},
{
"type": "object",
"properties": {
"color": {
"enum": [
"dark-pink",
"dark-green",
"dark-blue",
"dark-red",
"dark-teal",
"dark-brown",
"dark-orange",
"dark-purple",
"dark-warm-gray",
"light-pink",
"light-green",
"light-blue",
"light-red",
"light-teal",
"light-brown",
"light-orange",
"light-purple",
"light-warm-gray"
],
"type": "string",
"example": "light-green",
"description": "Color of the portfolio."
}
}
}
]
}
PortfolioCompact
{
"allOf": [
{
"$ref": "#/components/schemas/AsanaResource"
},
{
"type": "object",
"properties": {
"name": {
"type": "string",
"example": "Bug Portfolio",
"description": "The name of the portfolio."
}
},
"description": "A *portfolio* gives a high-level overview of the status of multiple initiatives in Asana. Portfolios provide a dashboard overview of the state of multiple projects, including a progress report and the most recent [project status](https://raw.githubusercontent.com) update.\nPortfolios have some restrictions on size. Each portfolio has a max of 500 items and, like projects, a max of 20 custom fields.",
"x-docs-overrides": {
"properties.resource_type.example": "portfolio"
}
}
]
}
PortfolioMembershipCompact
{
"allOf": [
{
"$ref": "#/components/schemas/AsanaResource"
},
{
"type": "object",
"properties": {
"user": {
"$ref": "#/components/schemas/UserCompact"
},
"portfolio": {
"$ref": "#/components/schemas/PortfolioCompact",
"description": "[Opt In](https://raw.githubusercontent.com). The portfolio the user is a member of."
}
},
"description": "This object determines if a user is a member of a portfolio.",
"x-docs-overrides": {
"properties.resource_type.example": "portfolio_membership"
}
}
]
}
PortfolioMembershipsGetCompactResponse
{
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/PortfolioMembershipCompact"
}
},
"next_page": {
"$ref": "#/components/schemas/NextPage"
}
}
}
PortfolioMembershipsGetCompleteRecordResponse
{
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/PortfolioMembershipCompact"
}
}
}
PortfolioMembershipsListMultipleMembershipsResponse
{
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/PortfolioMembershipCompact"
}
},
"next_page": {
"$ref": "#/components/schemas/NextPage"
}
}
}
PortfolioRemoveItemRequest
{
"type": "object",
"required": [
"item"
],
"properties": {
"item": {
"type": "string",
"example": "1331",
"description": "The item to remove from the portfolio."
}
}
}
PortfolioRequest
{
"allOf": [
{
"$ref": "#/components/schemas/PortfolioBase"
},
{
"type": "object",
"properties": {
"public": {
"type": "boolean",
"example": false,
"description": "True if the portfolio is public to its workspace members."
},
"members": {
"type": "array",
"items": {
"type": "string",
"description": "Gid of an object."
},
"example": [
"52164",
"15363"
],
"readOnly": true,
"description": "An array of strings identifying users. These can either be the string \"me\", an email, or the gid of a user."
},
"workspace": {
"type": "string",
"example": "167589",
"description": "Gid of an object."
}
}
}
]
}
PortfolioResponse
{
"allOf": [
{
"$ref": "#/components/schemas/PortfolioBase"
},
{
"type": "object",
"properties": {
"owner": {
"$ref": "#/components/schemas/UserCompact"
},
"due_on": {
"type": "string",
"format": "date",
"example": "2019-09-15",
"nullable": true,
"description": "The localized day on which this portfolio is due. This takes a date with format YYYY-MM-DD."
},
"public": {
"type": "boolean",
"example": false,
"description": "True if the portfolio is public to its workspace members."
},
"members": {
"type": "array",
"items": {
"$ref": "#/components/schemas/UserCompact"
},
"readOnly": true
},
"start_on": {
"type": "string",
"format": "date",
"example": "2019-09-14",
"nullable": true,
"description": "The day on which work for this portfolio begins, or null if the portfolio has no start date. This takes a date with `YYYY-MM-DD` format. *Note: `due_on` must be present in the request when setting or unsetting the `start_on` parameter. Additionally, `start_on` and `due_on` cannot be the same date.*"
},
"workspace": {
"allOf": [
{
"$ref": "#/components/schemas/WorkspaceCompact"
},
{
"type": "object",
"description": "*Create-only*. The workspace or organization that the portfolio belongs to."
}
]
},
"created_at": {
"type": "string",
"format": "date-time",
"example": "2012-02-22T02:06:58.147Z",
"readOnly": true,
"description": "The time at which this resource was created."
},
"created_by": {
"$ref": "#/components/schemas/UserCompact"
},
"custom_fields": {
"type": "array",
"items": {
"$ref": "#/components/schemas/CustomFieldCompact"
},
"description": "Array of Custom Fields."
},
"permalink_url": {
"type": "string",
"example": "https://app.asana.com/0/resource/123456789/list",
"readOnly": true,
"description": "A url that points directly to the object within Asana."
},
"project_templates": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ProjectTemplateCompact"
},
"readOnly": true,
"description": "Array of project templates that are in the portfolio"
},
"current_status_update": {
"allOf": [
{
"$ref": "#/components/schemas/StatusUpdateCompact"
},
{
"nullable": true,
"description": "The latest `status_update` posted to this portfolio."
}
]
},
"custom_field_settings": {
"type": "array",
"items": {
"$ref": "#/components/schemas/CustomFieldSettingResponse"
},
"description": "Array of custom field settings applied to the portfolio."
}
}
}
]
}
PortfoliosAddCustomFieldSettingRequest
{
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/AddCustomFieldSettingRequest"
}
}
}
PortfoliosAddCustomFieldSettingResponse
{
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/CustomFieldSettingResponse"
}
}
}
PortfoliosAddMembersToPortfolioRequest
{
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/AddMembersRequest"
}
}
}
PortfoliosAddMembersToPortfolioResponse
{
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/PortfolioResponse"
}
}
}
PortfoliosAddPortfolioItemRequest
{
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/PortfolioAddItemRequest"
}
}
}
PortfoliosAddPortfolioItemResponse
{
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/EmptyResponse"
}
}
}