{"note":"OpenAPI conversion -- returning structured metadata","name":"asana","description":"Asana","version":"1.0","base_url":"https://app.asana.com/api/1.0","endpoints":240,"raw":"@lap v0.3\n# Machine-readable API spec. Each @endpoint block is one API call.\n@api Asana\n@base https://app.asana.com/api/1.0\n@version 1.0\n@auth Bearer bearer | OAuth2\n@endpoints 240\n@hint download_for_search\n@toc access_requests(4), allocations(5), attachments(4), workspaces(21), batch(1), budgets(5), projects(24), portfolios(16), goals(17), teams(11), custom_fields(6), enum_options(1), custom_types(2), events(1), exports(2), goal_relationships(3), jobs(1), memberships(5), organization_exports(2), portfolio_memberships(2), project_briefs(3), project_memberships(1), project_portfolio_settings(2), project_statuses(2), project_templates(4), tasks(27), rates(5), reactions(1), roles(5), rule_triggers(1), sections(5), status_updates(4), stories(3), tags(6), task_templates(4), user_task_lists(2), team_memberships(2), users(8), time_periods(2), time_tracking_categories(6), time_tracking_entries(4), timesheet_approval_statuses(4), webhooks(5), workspace_memberships(1)\n\n@group access_requests\n@endpoint GET /access_requests\n@desc Get access requests\n@required {target: str # Globally unique identifier for the target object.}\n@optional {user: str # A string identifying a user. This can either be the string \"me\", an email, or the gid of a user., opt_pretty: bool # Provides “pretty” output. Provides the response in a “pretty” format. In the case of JSON this means doing proper line breaking and indentation to make it readable. This will take extra time and increase the response size so it is advisable only to use this during debugging., opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include.}\n@returns(200) {data: [map]} # Successfully retrieved access requests.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 402: The request was valid, but the queried object or object mutation specified in the request is above your current premium level., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint POST /access_requests\n@desc Create an access request\n@optional {data: map{target!: str, message: str} # A request to create shareable access for a user.}\n@returns(201) {data: map{gid: str, resource_type: str, message: str, approval_status: str, requester: map{gid: str, resource_type: str, name: str}, target: map{gid: str, resource_type: str}}} # Successfully created a new access request.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 402: The request was valid, but the queried object or object mutation specified in the request is above your current premium level., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint POST /access_requests/{access_request_gid}/approve\n@desc Approve an access request\n@required {access_request_gid: str # Globally unique identifier for the access request.}\n@returns(200) {data: map} # Successfully approved an access request.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint POST /access_requests/{access_request_gid}/reject\n@desc Reject an access request\n@required {access_request_gid: str # Globally unique identifier for the access request.}\n@returns(200) {data: map} # Successfully rejected an access request.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endgroup\n\n@group allocations\n@endpoint GET /allocations/{allocation_gid}\n@desc Get an allocation\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include.}\n@returns(200) {data: any} # Successfully retrieved the record for a single allocation.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 402: The request was valid, but the queried object or object mutation specified in the request is above your current premium level., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint PUT /allocations/{allocation_gid}\n@desc Update an allocation\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include., data: any}\n@returns(200) {data: any} # Successfully updated the allocation.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint DELETE /allocations/{allocation_gid}\n@desc Delete an allocation\n@returns(200) {data: map} # Successfully deleted the specified allocation.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 402: The request was valid, but the queried object or object mutation specified in the request is above your current premium level., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint GET /allocations\n@desc Get multiple allocations\n@optional {parent: str # Globally unique identifier for the project to filter allocations by., assignee: str # Globally unique identifier for the user or placeholder the allocation is assigned to., workspace: str # Globally unique identifier for the workspace., limit: int # Results per page. The number of objects to return per page. The value must be between 1 and 100., offset: str # Offset token. An offset to the next page returned by the API. A pagination request will return an offset token, which can be used as an input parameter to the next request. If an offset is not passed in, the API will return the first page of results. *Note: You can only pass in an offset that was returned to you via a previously paginated request.*, opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include.}\n@returns(200) {data: [any], next_page: map?{offset: str, path: str, uri: str(uri)}} # Successfully retrieved the requested allocations.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 402: The request was valid, but the queried object or object mutation specified in the request is above your current premium level., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint POST /allocations\n@desc Create an allocation\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include., data: any}\n@returns(201) {data: any} # Successfully created a new allocation.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 402: The request was valid, but the queried object or object mutation specified in the request is above your current premium level., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endgroup\n\n@group attachments\n@endpoint GET /attachments/{attachment_gid}\n@desc Get an attachment\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include.}\n@returns(200) {data: any} # Successfully retrieved the record for a single attachment.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 402: The request was valid, but the queried object or object mutation specified in the request is above your current premium level., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 424: You have exceeded one of the enforced rate limits in the API. See the [documentation on rate limiting](https://developers.asana.com/docs/#rate-limits) for more information., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase., 501: There is an issue between the load balancers and Asana's API., 503: Either the upstream service is unavailable to the API, or the API has been intentionally shut off., 504: This request took too long to complete.}\n\n@endpoint DELETE /attachments/{attachment_gid}\n@desc Delete an attachment\n@returns(200) {data: map} # Successfully deleted the specified attachment.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint GET /attachments\n@desc Get attachments from an object\n@required {parent: str # Globally unique identifier for object to fetch statuses from. Must be a GID for a `project`, `project_brief`, or `task`.}\n@optional {limit: int # Results per page. The number of objects to return per page. The value must be between 1 and 100., offset: str # Offset token. An offset to the next page returned by the API. A pagination request will return an offset token, which can be used as an input parameter to the next request. If an offset is not passed in, the API will return the first page of results. *Note: You can only pass in an offset that was returned to you via a previously paginated request.*, opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include.}\n@returns(200) {data: [map], next_page: map?{offset: str, path: str, uri: str(uri)}} # Successfully retrieved the specified object's attachments.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint POST /attachments\n@desc Upload an attachment\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include.}\n@returns(200) {data: any} # Successfully uploaded the attachment to the parent object.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endgroup\n\n@group workspaces\n@endpoint GET /workspaces/{workspace_gid}/audit_log_events\n@desc Get audit log events\n@returns(200) {data: [map], next_page: map?{offset: str, path: str, uri: str(uri)}} # AuditLogEvents were successfully retrieved.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endgroup\n\n@group batch\n@endpoint POST /batch\n@desc Submit parallel requests\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include., data: map{actions: [map]} # A request object for use in a batch request.}\n@returns(200) {data: [map]} # Successfully completed the requested batch API operations.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endgroup\n\n@group budgets\n@endpoint GET /budgets\n@desc Get all budgets\n@required {parent: str # Globally unique identifier for the budget's parent object. This currently can only be a `project`.}\n@returns(200) {data: [any]} # Successfully retrieved the requested budgets.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 402: The request was valid, but the queried object or object mutation specified in the request is above your current premium level., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint POST /budgets\n@desc Create a budget\n@optional {data: any}\n@returns(201) {data: any} # Successfully created a new budget.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 402: The request was valid, but the queried object or object mutation specified in the request is above your current premium level., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint GET /budgets/{budget_gid}\n@desc Get a budget\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include.}\n@returns(200) {data: any} # Successfully retrieved the requested budget.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 402: The request was valid, but the queried object or object mutation specified in the request is above your current premium level., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint PUT /budgets/{budget_gid}\n@desc Update a budget\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include., data: any}\n@returns(200) {data: any} # Successfully updated the budget.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 402: The request was valid, but the queried object or object mutation specified in the request is above your current premium level., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint DELETE /budgets/{budget_gid}\n@desc Delete a budget\n@returns(200) {data: map} # Successfully deleted the specified budget.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 402: The request was valid, but the queried object or object mutation specified in the request is above your current premium level., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endgroup\n\n@group projects\n@endpoint GET /projects/{project_gid}/custom_field_settings\n@desc Get a project's custom fields\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include.}\n@returns(200) {data: [any], next_page: map?{offset: str, path: str, uri: str(uri)}} # Successfully retrieved custom field settings objects for a project.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endgroup\n\n@group portfolios\n@endpoint GET /portfolios/{portfolio_gid}/custom_field_settings\n@desc Get a portfolio's custom fields\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include.}\n@returns(200) {data: [any], next_page: map?{offset: str, path: str, uri: str(uri)}} # Successfully retrieved custom field settings objects for a portfolio.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endgroup\n\n@group goals\n@endpoint GET /goals/{goal_gid}/custom_field_settings\n@desc Get a goal's custom fields\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include.}\n@returns(200) {data: [any], next_page: map?{offset: str, path: str, uri: str(uri)}} # Successfully retrieved custom field settings objects for a goal.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endgroup\n\n@group teams\n@endpoint GET /teams/{team_gid}/custom_field_settings\n@desc Get a team's custom fields\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include.}\n@returns(200) {data: [any]} # Successfully retrieved custom field settings objects for a team.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endgroup\n\n@group custom_fields\n@endpoint POST /custom_fields\n@desc Create a custom field\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include., data: any}\n@returns(201) {data: any} # Custom field successfully created.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint GET /custom_fields/{custom_field_gid}\n@desc Get a custom field\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include.}\n@returns(200) {data: any} # Successfully retrieved the complete definition of a custom field’s metadata.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint PUT /custom_fields/{custom_field_gid}\n@desc Update a custom field\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include., data: any}\n@returns(200) {data: any} # The custom field was successfully updated.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint DELETE /custom_fields/{custom_field_gid}\n@desc Delete a custom field\n@returns(200) {data: map} # The custom field was successfully deleted.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endgroup\n\n@group workspaces\n@endpoint GET /workspaces/{workspace_gid}/custom_fields\n@desc Get a workspace's custom fields\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include.}\n@returns(200) {data: [any], next_page: map?{offset: str, path: str, uri: str(uri)}} # Successfully retrieved all custom fields for the given workspace.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endgroup\n\n@group custom_fields\n@endpoint POST /custom_fields/{custom_field_gid}/enum_options\n@desc Create an enum option\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include., data: any}\n@returns(201) {data: map{gid: str, resource_type: str, name: str, enabled: bool, color: str}} # Custom field enum option successfully created.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint POST /custom_fields/{custom_field_gid}/enum_options/insert\n@desc Reorder a custom field's enum\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include., data: map{enum_option!: str, before_enum_option: str, after_enum_option: str}}\n@returns(200) {data: map{gid: str, resource_type: str, name: str, enabled: bool, color: str}} # Custom field enum option successfully reordered.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endgroup\n\n@group enum_options\n@endpoint PUT /enum_options/{enum_option_gid}\n@desc Update an enum option\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include., data: map{gid: str, resource_type: str, name: str, enabled: bool, color: str} # Enum options are the possible values which an enum custom field can adopt. An enum custom field must contain at least 1 enum option but no more than 500.  You can add enum options to a custom field by using the `POST /custom_fields/custom_field_gid/enum_options` endpoint.  **It is not possible to remove or delete an enum option**. Instead, enum options can be disabled by updating the `enabled` field to false with the `PUT /enum_options/enum_option_gid` endpoint. Other attributes can be updated similarly.  On creation of an enum option, `enabled` is always set to `true`, meaning the enum option is a selectable value for the custom field. Setting `enabled=false` is equivalent to “trashing” the enum option in the Asana web app within the “Edit Fields” dialog. The enum option will no longer be selectable but, if the enum option value was previously set within a task, the task will retain the value.  Enum options are an ordered list and by default new enum options are inserted at the end. Ordering in relation to existing enum options can be specified on creation by using `insert_before` or `insert_after` to reference an existing enum option. Only one of `insert_before` and `insert_after` can be provided when creating a new enum option.  An enum options list can be reordered with the `POST /custom_fields/custom_field_gid/enum_options/insert` endpoint.}\n@returns(200) {data: map{gid: str, resource_type: str, name: str, enabled: bool, color: str}} # Successfully updated the specified custom field enum.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endgroup\n\n@group custom_types\n@endpoint GET /custom_types\n@desc Get all custom types associated with an object\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include.}\n@returns(200) {data: [any], next_page: map?{offset: str, path: str, uri: str(uri)}} # Successfully retrieved custom types\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint GET /custom_types/{custom_type_gid}\n@desc Get a custom type\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include.}\n@returns(200) {data: any} # Successfully retrieved the requested custom type.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endgroup\n\n@group events\n@endpoint GET /events\n@desc Get events on a resource\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include.}\n@returns(200) {data: [map], sync: str, has_more: bool} # Successfully retrieved events.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 412: The request is missing or has an expired sync token., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endgroup\n\n@group exports\n@endpoint POST /exports/graph\n@desc Initiate a graph export\n@optional {data: map{parent: str} # A *graph_export* request starts a job to export data starting from a parent object.}\n@returns(201) {data: map{gid: str, resource_type: str, resource_subtype: str, status: str, new_graph_export: map{gid: str, resource_type: str, created_at: str(date-time), download_url: str(uri)?, completed_at: str(date-time)}}} # Successfully created Graph export request.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint POST /exports/resource\n@desc Initiate a resource export\n@optional {data: map{workspace: str, export_request_parameters: [map]} # A *resource_export* request starts a job to bulk export objects for one or more resources.}\n@returns(201) {data: map{gid: str, resource_type: str, resource_subtype: str, status: str, new_resource_export: map{gid: str, resource_type: str, created_at: str(date-time), download_url: str(uri)?, completed_at: str(date-time)}}} # Successfully created a Resource export request.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endgroup\n\n@group goal_relationships\n@endpoint GET /goal_relationships/{goal_relationship_gid}\n@desc Get a goal relationship\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include.}\n@returns(200) {data: any} # Successfully retrieved the record for the goal relationship.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint PUT /goal_relationships/{goal_relationship_gid}\n@desc Update a goal relationship\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include., data: any}\n@returns(200) {data: any} # Successfully updated the goal relationship.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint GET /goal_relationships\n@desc Get goal relationships\n@required {supported_goal: str # Globally unique identifier for the supported goal in the goal relationship.}\n@optional {opt_pretty: bool # Provides “pretty” output. Provides the response in a “pretty” format. In the case of JSON this means doing proper line breaking and indentation to make it readable. This will take extra time and increase the response size so it is advisable only to use this during debugging., limit: int # Results per page. The number of objects to return per page. The value must be between 1 and 100., offset: str # Offset token. An offset to the next page returned by the API. A pagination request will return an offset token, which can be used as an input parameter to the next request. If an offset is not passed in, the API will return the first page of results. *Note: You can only pass in an offset that was returned to you via a previously paginated request.*, resource_subtype: str # If provided, filter to goal relationships with a given resource_subtype., opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include.}\n@returns(200) {data: [map], next_page: map?{offset: str, path: str, uri: str(uri)}} # Successfully retrieved the requested goal relationships.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endgroup\n\n@group goals\n@endpoint POST /goals/{goal_gid}/addSupportingRelationship\n@desc Add a supporting goal relationship\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include., data: map{supporting_resource!: str, insert_before: str, insert_after: str, contribution_weight: num}}\n@returns(200) {data: any} # Successfully created the goal relationship.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint POST /goals/{goal_gid}/removeSupportingRelationship\n@desc Removes a supporting goal relationship\n@optional {data: map{supporting_resource!: str}}\n@returns(200) {data: map} # Successfully removed the goal relationship.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint GET /goals/{goal_gid}\n@desc Get a goal\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include.}\n@returns(200) {data: any} # Successfully retrieved the record for a single goal.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 402: The request was valid, but the queried object or object mutation specified in the request is above your current premium level., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint PUT /goals/{goal_gid}\n@desc Update a goal\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include., data: any}\n@returns(200) {data: any} # Successfully updated the goal.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint DELETE /goals/{goal_gid}\n@desc Delete a goal\n@returns(200) {data: map} # Successfully deleted the specified goal.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 402: The request was valid, but the queried object or object mutation specified in the request is above your current premium level., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint GET /goals\n@desc Get goals\n@optional {portfolio: str # Globally unique identifier for supporting portfolio., project: str # Globally unique identifier for supporting project., task: str # Globally unique identifier for supporting task., is_workspace_level: bool # Filter to goals with is_workspace_level set to query value. Must be used with the workspace parameter., team: str # Globally unique identifier for the team., workspace: str # Globally unique identifier for the workspace., time_periods: [str] # Globally unique identifiers for the time periods., limit: int # Results per page. The number of objects to return per page. The value must be between 1 and 100., offset: str # Offset token. An offset to the next page returned by the API. A pagination request will return an offset token, which can be used as an input parameter to the next request. If an offset is not passed in, the API will return the first page of results. *Note: You can only pass in an offset that was returned to you via a previously paginated request.*, opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include.}\n@returns(200) {data: [map], next_page: map?{offset: str, path: str, uri: str(uri)}} # Successfully retrieved the requested goals.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 402: The request was valid, but the queried object or object mutation specified in the request is above your current premium level., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint POST /goals\n@desc Create a goal\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include., data: any}\n@returns(201) {data: any} # Successfully created a new goal.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 402: The request was valid, but the queried object or object mutation specified in the request is above your current premium level., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint POST /goals/{goal_gid}/setMetric\n@desc Create a goal metric\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include., data: map{gid: str, resource_type: str, resource_subtype: str, precision: int, unit: str, currency_code: str, initial_number_value: num, target_number_value: num, current_number_value: num, current_display_value: str, progress_source: str, is_custom_weight: bool} # A generic Asana Resource, containing a globally unique identifier.}\n@returns(200) {data: any} # Successfully created a new goal metric.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 402: The request was valid, but the queried object or object mutation specified in the request is above your current premium level., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint POST /goals/{goal_gid}/setMetricCurrentValue\n@desc Update a goal metric\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include., data: map{gid: str, resource_type: str, current_number_value: num} # A generic Asana Resource, containing a globally unique identifier.}\n@returns(200) {data: any} # Successfully updated the goal metric.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 402: The request was valid, but the queried object or object mutation specified in the request is above your current premium level., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint POST /goals/{goal_gid}/addFollowers\n@desc Add a collaborator to a goal\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include., data: map{followers!: [str]}}\n@returns(200) {data: any} # Successfully added users as collaborators.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 402: The request was valid, but the queried object or object mutation specified in the request is above your current premium level., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint POST /goals/{goal_gid}/removeFollowers\n@desc Remove a collaborator from a goal\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include., data: map{followers!: [str]}}\n@returns(200) {data: any} # Successfully removed users as collaborators.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 402: The request was valid, but the queried object or object mutation specified in the request is above your current premium level., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint GET /goals/{goal_gid}/parentGoals\n@desc Get parent goals from a goal\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include.}\n@returns(200) {data: [map]} # Successfully retrieved the specified goal's parent goals.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 402: The request was valid, but the queried object or object mutation specified in the request is above your current premium level., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint POST /goals/{goal_gid}/addCustomFieldSetting\n@desc Add a custom field to a goal\n@optional {data: map{custom_field!: any, is_important: bool, insert_before: str, insert_after: str}}\n@returns(200) {data: any} # Successfully added the custom field to the goal.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint POST /goals/{goal_gid}/removeCustomFieldSetting\n@desc Remove a custom field from a goal\n@optional {data: map{custom_field!: str}}\n@returns(200) {data: map} # Successfully removed the custom field from the goal.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endgroup\n\n@group jobs\n@endpoint GET /jobs/{job_gid}\n@desc Get a job by id\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include.}\n@returns(200) {data: map{gid: str, resource_type: str, resource_subtype: str, status: str, new_portfolio: map{gid: str, resource_type: str, name: str}, new_project: map{gid: str, resource_type: str, name: str}, new_task: any, new_project_template: map{gid: str, resource_type: str, name: str}, new_graph_export: map{gid: str, resource_type: str, created_at: str(date-time), download_url: str(uri)?, completed_at: str(date-time)}, new_resource_export: map{gid: str, resource_type: str, created_at: str(date-time), download_url: str(uri)?, completed_at: str(date-time)}}} # Successfully retrieved Job.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endgroup\n\n@group memberships\n@endpoint GET /memberships\n@desc Get multiple memberships\n@optional {parent: str # Globally unique identifier for `goal`, `project`, `portfolio`, `custom_type`, or `custom_field`. This parameter is optional when `resource_subtype` is provided along with `member`., member: str # Globally unique identifier for `team` or `user`. When used with `resource_subtype` and without `parent`, returns all memberships of the specified subtype for this member., resource_subtype: str # The type of membership to return. Required when `parent` is absent. Currently supported value is `project_membership` (when `member` is a team GID, returns all project memberships for that team)., limit: int # Results per page. The number of objects to return per page. The value must be between 1 and 100., offset: str # Offset token. An offset to the next page returned by the API. A pagination request will return an offset token, which can be used as an input parameter to the next request. If an offset is not passed in, the API will return the first page of results. *Note: You can only pass in an offset that was returned to you via a previously paginated request.*, opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include.}\n@returns(200) {data: [any], next_page: map?{offset: str, path: str, uri: str(uri)}} # Successfully retrieved the requested membership.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint POST /memberships\n@desc Create a membership\n@optional {data: any}\n@returns(201) {data: any} # Successfully created the requested membership.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint GET /memberships/{membership_gid}\n@desc Get a membership\n@returns(200) {data: any} # Successfully retrieved the record for a single membership.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint PUT /memberships/{membership_gid}\n@desc Update a membership\n@optional {data: map{access_level: str}}\n@returns(200) {data: any} # Successfully updated the requested membership.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint DELETE /memberships/{membership_gid}\n@desc Delete a membership\n@returns(200) {data: map} # Successfully deleted the requested membership.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endgroup\n\n@group organization_exports\n@endpoint POST /organization_exports\n@desc Create an organization export request\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include., data: map{organization: str} # An *organization_export* request starts a job to export the complete data of the given Organization.}\n@returns(201) {data: map{gid: str, resource_type: str, created_at: str(date-time), download_url: str(uri)?, state: str, organization: map{gid: str, resource_type: str, name: str}}} # Successfully created organization export request.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint GET /organization_exports/{organization_export_gid}\n@desc Get details on an org export request\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include.}\n@returns(200) {data: map{gid: str, resource_type: str, created_at: str(date-time), download_url: str(uri)?, state: str, organization: map{gid: str, resource_type: str, name: str}}} # Successfully retrieved organization export object.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endgroup\n\n@group portfolio_memberships\n@endpoint GET /portfolio_memberships\n@desc Get multiple portfolio memberships\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include.}\n@returns(200) {data: [map], next_page: map?{offset: str, path: str, uri: str(uri)}} # Successfully retrieved portfolio memberships.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint GET /portfolio_memberships/{portfolio_membership_gid}\n@desc Get a portfolio membership\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include.}\n@returns(200) {data: map{gid: str, resource_type: str, portfolio: map{gid: str, resource_type: str, name: str}, user: map{gid: str, resource_type: str, name: str}, access_level: str}} # Successfully retrieved the requested portfolio membership.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endgroup\n\n@group portfolios\n@endpoint GET /portfolios/{portfolio_gid}/portfolio_memberships\n@desc Get memberships from a portfolio\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include.}\n@returns(200) {data: [map], next_page: map?{offset: str, path: str, uri: str(uri)}} # Successfully retrieved the requested portfolio's memberships.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint GET /portfolios\n@desc Get multiple portfolios\n@required {workspace: str # The workspace or organization to filter portfolios on.}\n@optional {limit: int # Results per page. The number of objects to return per page. The value must be between 1 and 100., offset: str # Offset token. An offset to the next page returned by the API. A pagination request will return an offset token, which can be used as an input parameter to the next request. If an offset is not passed in, the API will return the first page of results. *Note: You can only pass in an offset that was returned to you via a previously paginated request.*, owner: str # The user who owns the portfolio. Currently, API users can only get a list of portfolios that they themselves own, unless the request is made from a Service Account. In the case of a Service Account, if this parameter is specified, then all portfolios owned by this parameter are returned. Otherwise, all portfolios across the workspace are returned., opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include.}\n@returns(200) {data: [map], next_page: map?{offset: str, path: str, uri: str(uri)}} # Successfully retrieved portfolios.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint POST /portfolios\n@desc Create a portfolio\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include., data: any}\n@returns(201) {data: any} # Successfully created portfolio.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint GET /portfolios/{portfolio_gid}\n@desc Get a portfolio\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include.}\n@returns(200) {data: any} # Successfully retrieved the requested portfolio.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint PUT /portfolios/{portfolio_gid}\n@desc Update a portfolio\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include., data: any}\n@returns(200) {data: any} # Successfully updated the portfolio.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint DELETE /portfolios/{portfolio_gid}\n@desc Delete a portfolio\n@returns(200) {data: map} # Successfully deleted the specified portfolio.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint GET /portfolios/{portfolio_gid}/items\n@desc Get portfolio items\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include.}\n@returns(200) {data: [map], next_page: map?{offset: str, path: str, uri: str(uri)}} # Successfully retrieved the requested portfolio's items.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint POST /portfolios/{portfolio_gid}/addItem\n@desc Add a portfolio item\n@optional {data: map{item!: str, insert_before: str, insert_after: str}}\n@returns(200) {data: map} # Successfully added the item to the portfolio.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint POST /portfolios/{portfolio_gid}/removeItem\n@desc Remove a portfolio item\n@optional {data: map{item!: str}}\n@returns(200) {data: map} # Successfully removed the item from the portfolio.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint POST /portfolios/{portfolio_gid}/addCustomFieldSetting\n@desc Add a custom field to a portfolio\n@optional {data: map{custom_field!: any, is_important: bool, insert_before: str, insert_after: str}}\n@returns(200) {data: any} # Successfully added the custom field to the portfolio.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint POST /portfolios/{portfolio_gid}/removeCustomFieldSetting\n@desc Remove a custom field from a portfolio\n@optional {data: map{custom_field!: str}}\n@returns(200) {data: map} # Successfully removed the custom field from the portfolio.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint POST /portfolios/{portfolio_gid}/addMembers\n@desc Add users to a portfolio\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include., data: map{members!: str}}\n@returns(200) {data: any} # Successfully added members to the portfolio.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint POST /portfolios/{portfolio_gid}/removeMembers\n@desc Remove users from a portfolio\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include., data: map{members!: str}}\n@returns(200) {data: any} # Successfully removed the members from the portfolio.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint POST /portfolios/{portfolio_gid}/duplicate\n@desc Duplicate a portfolio\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include., data: map{name!: str, include: str}}\n@returns(201) {data: map{gid: str, resource_type: str, resource_subtype: str, status: str, new_portfolio: map{gid: str, resource_type: str, name: str}, new_project: map{gid: str, resource_type: str, name: str}, new_task: any, new_project_template: map{gid: str, resource_type: str, name: str}, new_graph_export: map{gid: str, resource_type: str, created_at: str(date-time), download_url: str(uri)?, completed_at: str(date-time)}, new_resource_export: map{gid: str, resource_type: str, created_at: str(date-time), download_url: str(uri)?, completed_at: str(date-time)}}} # Successfully created the job to handle duplication.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endgroup\n\n@group project_briefs\n@endpoint GET /project_briefs/{project_brief_gid}\n@desc Get a project brief\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include.}\n@returns(200) {data: any} # Successfully retrieved the record for a project brief.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 402: The request was valid, but the queried object or object mutation specified in the request is above your current premium level., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 424: You have exceeded one of the enforced rate limits in the API. See the [documentation on rate limiting](https://developers.asana.com/docs/#rate-limits) for more information., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase., 501: There is an issue between the load balancers and Asana's API., 503: Either the upstream service is unavailable to the API, or the API has been intentionally shut off., 504: This request took too long to complete.}\n\n@endpoint PUT /project_briefs/{project_brief_gid}\n@desc Update a project brief\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include., data: any}\n@returns(200) {data: any} # Successfully updated the project brief.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint DELETE /project_briefs/{project_brief_gid}\n@desc Delete a project brief\n@returns(200) {data: map} # Successfully deleted the specified project brief.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endgroup\n\n@group projects\n@endpoint POST /projects/{project_gid}/project_briefs\n@desc Create a project brief\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include., data: any}\n@returns(201) {data: any} # Successfully created a new project brief.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 402: The request was valid, but the queried object or object mutation specified in the request is above your current premium level., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endgroup\n\n@group project_memberships\n@endpoint GET /project_memberships/{project_membership_gid}\n@desc Get a project membership\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include.}\n@returns(200) {data: any} # Successfully retrieved the requested project membership.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endgroup\n\n@group projects\n@endpoint GET /projects/{project_gid}/project_memberships\n@desc Get memberships from a project\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include.}\n@returns(200) {data: [map], next_page: map?{offset: str, path: str, uri: str(uri)}} # Successfully retrieved the requested project's memberships.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endgroup\n\n@group project_portfolio_settings\n@endpoint GET /project_portfolio_settings/{project_portfolio_setting_gid}\n@desc Get a project portfolio setting\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include.}\n@returns(200) {data: any} # Successfully retrieved the requested project portfolio setting.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint PUT /project_portfolio_settings/{project_portfolio_setting_gid}\n@desc Update a project portfolio setting\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include., data: map{is_access_control_inherited: bool}}\n@returns(200) {data: any} # Successfully updated the project portfolio setting.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endgroup\n\n@group projects\n@endpoint GET /projects/{project_gid}/project_portfolio_settings\n@desc Get project portfolio settings for a project\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include.}\n@returns(200) {data: [map], next_page: map?{offset: str, path: str, uri: str(uri)}} # Successfully retrieved the requested project's project portfolio settings.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endgroup\n\n@group portfolios\n@endpoint GET /portfolios/{portfolio_gid}/project_portfolio_settings\n@desc Get project portfolio settings for a portfolio\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include.}\n@returns(200) {data: [map], next_page: map?{offset: str, path: str, uri: str(uri)}} # Successfully retrieved the requested portfolio's project portfolio settings.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endgroup\n\n@group project_statuses\n@endpoint GET /project_statuses/{project_status_gid}\n@desc Get a project status\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include.}\n@returns(200) {data: any} # Successfully retrieved the specified project's status updates.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint DELETE /project_statuses/{project_status_gid}\n@desc Delete a project status\n@returns(200) {data: map} # Successfully deleted the specified project status.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endgroup\n\n@group projects\n@endpoint GET /projects/{project_gid}/project_statuses\n@desc Get statuses from a project\n@required {project_gid: str # Globally unique identifier for the project.}\n@optional {opt_pretty: bool # Provides “pretty” output. Provides the response in a “pretty” format. In the case of JSON this means doing proper line breaking and indentation to make it readable. This will take extra time and increase the response size so it is advisable only to use this during debugging., limit: int # Results per page. The number of objects to return per page. The value must be between 1 and 100., offset: str # Offset token. An offset to the next page returned by the API. A pagination request will return an offset token, which can be used as an input parameter to the next request. If an offset is not passed in, the API will return the first page of results. *Note: You can only pass in an offset that was returned to you via a previously paginated request.*, opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include.}\n@returns(200) {data: [map], next_page: map?{offset: str, path: str, uri: str(uri)}} # Successfully retrieved the specified project's status updates.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint POST /projects/{project_gid}/project_statuses\n@desc Create a project status\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include., data: any}\n@returns(201) {data: any} # Successfully created a new story.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endgroup\n\n@group project_templates\n@endpoint GET /project_templates/{project_template_gid}\n@desc Get a project template\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include.}\n@returns(200) {data: any} # Successfully retrieved the requested project template.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint DELETE /project_templates/{project_template_gid}\n@desc Delete a project template\n@returns(200) {data: map} # Successfully deleted the specified project template.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 402: The request was valid, but the queried object or object mutation specified in the request is above your current premium level., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint GET /project_templates\n@desc Get multiple project templates\n@optional {workspace: str # The workspace to filter results on., team: str # The team to filter projects on., limit: int # Results per page. The number of objects to return per page. The value must be between 1 and 100., offset: str # Offset token. An offset to the next page returned by the API. A pagination request will return an offset token, which can be used as an input parameter to the next request. If an offset is not passed in, the API will return the first page of results. *Note: You can only pass in an offset that was returned to you via a previously paginated request.*, opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include.}\n@returns(200) {data: [map], next_page: map?{offset: str, path: str, uri: str(uri)}} # Successfully retrieved the requested team's or workspace's project templates.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endgroup\n\n@group teams\n@endpoint GET /teams/{team_gid}/project_templates\n@desc Get a team's project templates\n@optional {limit: int # Results per page. The number of objects to return per page. The value must be between 1 and 100., offset: str # Offset token. An offset to the next page returned by the API. A pagination request will return an offset token, which can be used as an input parameter to the next request. If an offset is not passed in, the API will return the first page of results. *Note: You can only pass in an offset that was returned to you via a previously paginated request.*, opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include.}\n@returns(200) {data: [map], next_page: map?{offset: str, path: str, uri: str(uri)}} # Successfully retrieved the requested team's project templates.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endgroup\n\n@group project_templates\n@endpoint POST /project_templates/{project_template_gid}/instantiateProject\n@desc Instantiate a project from a project template\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include., data: map{name!: str, team: str, public: bool, privacy_setting: str, is_strict: bool, requested_dates: [map], requested_roles: [map]}}\n@returns(201) {data: map{gid: str, resource_type: str, resource_subtype: str, status: str, new_portfolio: map{gid: str, resource_type: str, name: str}, new_project: map{gid: str, resource_type: str, name: str}, new_task: any, new_project_template: map{gid: str, resource_type: str, name: str}, new_graph_export: map{gid: str, resource_type: str, created_at: str(date-time), download_url: str(uri)?, completed_at: str(date-time)}, new_resource_export: map{gid: str, resource_type: str, created_at: str(date-time), download_url: str(uri)?, completed_at: str(date-time)}}} # Successfully created the job to handle project instantiation.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endgroup\n\n@group projects\n@endpoint GET /projects\n@desc Get multiple projects\n@optional {limit: int # Results per page. The number of objects to return per page. The value must be between 1 and 100., offset: str # Offset token. An offset to the next page returned by the API. A pagination request will return an offset token, which can be used as an input parameter to the next request. If an offset is not passed in, the API will return the first page of results. *Note: You can only pass in an offset that was returned to you via a previously paginated request.*, workspace: str # The workspace or organization to filter projects on., team: str # **Deprecated.** The team to filter projects on. Please use `GET /memberships` with `{ member: team, resource_subtype: project_membership }` instead., archived: bool # Only return projects whose `archived` field takes on the value of this parameter., opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include.}\n@returns(200) {data: [map], next_page: map?{offset: str, path: str, uri: str(uri)}} # Successfully retrieved projects.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint POST /projects\n@desc Create a project\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include., data: any}\n@returns(201) {data: any} # Successfully retrieved projects.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint GET /projects/{project_gid}\n@desc Get a project\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include.}\n@returns(200) {data: any} # Successfully retrieved the requested project.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint PUT /projects/{project_gid}\n@desc Update a project\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include., data: any}\n@returns(200) {data: any} # Successfully updated the project.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint DELETE /projects/{project_gid}\n@desc Delete a project\n@returns(200) {data: map} # Successfully deleted the specified project.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint POST /projects/{project_gid}/duplicate\n@desc Duplicate a project\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include., data: map{name!: str, team: str, include: str, schedule_dates: map}}\n@returns(201) {data: map{gid: str, resource_type: str, resource_subtype: str, status: str, new_portfolio: map{gid: str, resource_type: str, name: str}, new_project: map{gid: str, resource_type: str, name: str}, new_task: any, new_project_template: map{gid: str, resource_type: str, name: str}, new_graph_export: map{gid: str, resource_type: str, created_at: str(date-time), download_url: str(uri)?, completed_at: str(date-time)}, new_resource_export: map{gid: str, resource_type: str, created_at: str(date-time), download_url: str(uri)?, completed_at: str(date-time)}}} # Successfully created the job to handle duplication.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endgroup\n\n@group tasks\n@endpoint GET /tasks/{task_gid}/projects\n@desc Get projects a task is in\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include.}\n@returns(200) {data: [map], next_page: map?{offset: str, path: str, uri: str(uri)}} # Successfully retrieved the projects for the given task.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endgroup\n\n@group teams\n@endpoint GET /teams/{team_gid}/projects\n@desc Get a team's projects\n@optional {limit: int # Results per page. The number of objects to return per page. The value must be between 1 and 100., offset: str # Offset token. An offset to the next page returned by the API. A pagination request will return an offset token, which can be used as an input parameter to the next request. If an offset is not passed in, the API will return the first page of results. *Note: You can only pass in an offset that was returned to you via a previously paginated request.*, archived: bool # Only return projects whose `archived` field takes on the value of this parameter., opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include.}\n@returns(200) {data: [map], next_page: map?{offset: str, path: str, uri: str(uri)}} # Successfully retrieved the requested team's projects.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint POST /teams/{team_gid}/projects\n@desc Create a project in a team\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include., data: any}\n@returns(201) {data: any} # Successfully created the specified project.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endgroup\n\n@group workspaces\n@endpoint GET /workspaces/{workspace_gid}/projects\n@desc Get all projects in a workspace\n@optional {limit: int # Results per page. The number of objects to return per page. The value must be between 1 and 100., offset: str # Offset token. An offset to the next page returned by the API. A pagination request will return an offset token, which can be used as an input parameter to the next request. If an offset is not passed in, the API will return the first page of results. *Note: You can only pass in an offset that was returned to you via a previously paginated request.*, archived: bool # Only return projects whose `archived` field takes on the value of this parameter., opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include.}\n@returns(200) {data: [map], next_page: map?{offset: str, path: str, uri: str(uri)}} # Successfully retrieved the requested workspace's projects.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint POST /workspaces/{workspace_gid}/projects\n@desc Create a project in a workspace\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include., data: any}\n@returns(201) {data: any} # Successfully created a new project in the specified workspace.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint GET /workspaces/{workspace_gid}/projects/search\n@desc Search projects in a workspace\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include.}\n@returns(200) {data: [map]} # Successfully retrieved matching projects.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 402: The request was valid, but the queried object or object mutation specified in the request is above your current premium level., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endgroup\n\n@group projects\n@endpoint POST /projects/{project_gid}/addCustomFieldSetting\n@desc Add a custom field to a project\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include., data: map{custom_field!: any, is_important: bool, insert_before: str, insert_after: str}}\n@returns(200) {data: any} # Successfully added the custom field to the project.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint POST /projects/{project_gid}/removeCustomFieldSetting\n@desc Remove a custom field from a project\n@optional {data: map{custom_field!: str}}\n@returns(200) {data: map} # Successfully removed the custom field from the project.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint GET /projects/{project_gid}/task_counts\n@desc Get task count of a project\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include.}\n@returns(200) {data: map{num_tasks: int, num_incomplete_tasks: int, num_completed_tasks: int, num_milestones: int, num_incomplete_milestones: int, num_completed_milestones: int}} # Successfully retrieved the requested project's task counts.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint POST /projects/{project_gid}/addMembers\n@desc Add users to a project\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include., data: map{members!: str}}\n@returns(200) {data: any} # Successfully added members to the project.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint POST /projects/{project_gid}/removeMembers\n@desc Remove users from a project\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include., data: map{members!: str}}\n@returns(200) {data: any} # Successfully removed the members from the project.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint POST /projects/{project_gid}/addFollowers\n@desc Add followers to a project\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include., data: map{followers!: str}}\n@returns(200) {data: any} # Successfully added followers to the project.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint POST /projects/{project_gid}/removeFollowers\n@desc Remove followers from a project\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include., data: map{followers!: str}}\n@returns(200) {data: any} # Successfully removed followers from the project.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint POST /projects/{project_gid}/saveAsTemplate\n@desc Create a project template from a project\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include., data: map{name!: str, team: str, workspace: str, public!: bool}}\n@returns(201) {data: map{gid: str, resource_type: str, resource_subtype: str, status: str, new_portfolio: map{gid: str, resource_type: str, name: str}, new_project: map{gid: str, resource_type: str, name: str}, new_task: any, new_project_template: map{gid: str, resource_type: str, name: str}, new_graph_export: map{gid: str, resource_type: str, created_at: str(date-time), download_url: str(uri)?, completed_at: str(date-time)}, new_resource_export: map{gid: str, resource_type: str, created_at: str(date-time), download_url: str(uri)?, completed_at: str(date-time)}}} # Successfully created the job to handle project template creation.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endgroup\n\n@group rates\n@endpoint GET /rates\n@desc Get multiple rates\n@optional {parent: str # Globally unique identifier for `project`., resource: str # Globally unique identifier for `user` or `placeholder`., limit: int # Results per page. The number of objects to return per page. The value must be between 1 and 100., offset: str # Offset token. An offset to the next page returned by the API. A pagination request will return an offset token, which can be used as an input parameter to the next request. If an offset is not passed in, the API will return the first page of results. *Note: You can only pass in an offset that was returned to you via a previously paginated request.*, opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include.}\n@returns(200) {data: [any], next_page: map?{offset: str, path: str, uri: str(uri)}} # Successfully retrieved the requested rates.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 402: The request was valid, but the queried object or object mutation specified in the request is above your current premium level., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint POST /rates\n@desc Create a rate\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include., data: map{gid: str, resource_type: str, parent!: str, resource!: str, rate!: num} # A generic Asana Resource, containing a globally unique identifier.}\n@returns(201) {data: any} # Successfully created a new rate.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 402: The request was valid, but the queried object or object mutation specified in the request is above your current premium level., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint GET /rates/{rate_gid}\n@desc Get a rate\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include.}\n@returns(200) {data: any} # Successfully retrieved the record for a single rate.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 402: The request was valid, but the queried object or object mutation specified in the request is above your current premium level., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint PUT /rates/{rate_gid}\n@desc Update a rate\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include., data: map{gid: str, resource_type: str, rate: num} # A generic Asana Resource, containing a globally unique identifier.}\n@returns(200) {data: any} # Successfully updated the rate.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 402: The request was valid, but the queried object or object mutation specified in the request is above your current premium level., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint DELETE /rates/{rate_gid}\n@desc Delete a rate\n@returns(200) {data: map} # Successfully deleted the rate.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 402: The request was valid, but the queried object or object mutation specified in the request is above your current premium level., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endgroup\n\n@group reactions\n@endpoint GET /reactions\n@desc Get reactions with an emoji base on an object.\n@required {target: str # Globally unique identifier for object to fetch reactions from. Must be a GID for a status update or story., emoji_base: str # Only return reactions with this emoji base character.}\n@returns(200) {data: [map], next_page: map?{offset: str, path: str, uri: str(uri)}} # Successfully retrieved the specified object's reactions.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endgroup\n\n@group roles\n@endpoint GET /roles\n@desc Get multiple roles\n@optional {limit: int # Results per page. The number of objects to return per page. The value must be between 1 and 100., offset: str # Offset token. An offset to the next page returned by the API. A pagination request will return an offset token, which can be used as an input parameter to the next request. If an offset is not passed in, the API will return the first page of results. *Note: You can only pass in an offset that was returned to you via a previously paginated request.*, workspace: str # The workspace or organization to filter roles on., archived: bool # Only return projects whose `archived` field takes on the value of this parameter., opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include.}\n@returns(200) {data: [map], next_page: map?{offset: str, path: str, uri: str(uri)}} # Successfully retrieved roles.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint POST /roles\n@desc Create a role\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include., data: any}\n@returns(201) {data: any} # Successfully created a new role.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint GET /roles/{role_gid}\n@desc Get a role\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include.}\n@returns(200) {data: any} # Successfully retrieved the requested role.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint PUT /roles/{role_gid}\n@desc Update a role\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include., data: any}\n@returns(200) {data: any} # Successfully updated the role.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint DELETE /roles/{role_gid}\n@desc Delete a role\n@returns(200) {data: map} # Successfully deleted the specified role.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endgroup\n\n@group rule_triggers\n@endpoint POST /rule_triggers/{rule_trigger_gid}/run\n@desc Trigger a rule\n@optional {data: map{resource!: str, action_data!: map}}\n@returns(200) {data: map{message: str}} # Successfully triggered a rule.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 402: The request was valid, but the queried object or object mutation specified in the request is above your current premium level., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endgroup\n\n@group sections\n@endpoint GET /sections/{section_gid}\n@desc Get a section\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include.}\n@returns(200) {data: any} # Successfully retrieved section.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint PUT /sections/{section_gid}\n@desc Update a section\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include., data: map{name!: str, insert_before: str, insert_after: str}}\n@returns(200) {data: any} # Successfully updated the specified section.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint DELETE /sections/{section_gid}\n@desc Delete a section\n@returns(200) {data: map} # Successfully deleted the specified section.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endgroup\n\n@group projects\n@endpoint GET /projects/{project_gid}/sections\n@desc Get sections in a project\n@optional {limit: int # Results per page. The number of objects to return per page. The value must be between 1 and 100., offset: str # Offset token. An offset to the next page returned by the API. A pagination request will return an offset token, which can be used as an input parameter to the next request. If an offset is not passed in, the API will return the first page of results. *Note: You can only pass in an offset that was returned to you via a previously paginated request.*, opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include.}\n@returns(200) {data: [map], next_page: map?{offset: str, path: str, uri: str(uri)}} # Successfully retrieved sections in project.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint POST /projects/{project_gid}/sections\n@desc Create a section in a project\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include., data: map{name!: str, insert_before: str, insert_after: str}}\n@returns(201) {data: any} # Successfully created the specified section.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endgroup\n\n@group sections\n@endpoint POST /sections/{section_gid}/addTask\n@desc Add task to section\n@optional {data: map{task!: str, insert_before: str, insert_after: str}}\n@returns(200) {data: map} # Successfully added the task.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endgroup\n\n@group projects\n@endpoint POST /projects/{project_gid}/sections/insert\n@desc Move or Insert sections\n@optional {data: map{section!: str, before_section: str, after_section: str}}\n@returns(200) {data: map} # Successfully moved the specified section.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endgroup\n\n@group status_updates\n@endpoint GET /status_updates/{status_update_gid}\n@desc Get a status update\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include.}\n@returns(200) {data: any} # Successfully retrieved the specified object's status updates.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint DELETE /status_updates/{status_update_gid}\n@desc Delete a status update\n@returns(200) {data: map} # Successfully deleted the specified status.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint GET /status_updates\n@desc Get status updates from an object\n@required {parent: str # Globally unique identifier for object to fetch statuses from. Must be a GID for a project, portfolio, or goal.}\n@optional {created_since: str(date-time) # Only return statuses that have been created since the given time., opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include.}\n@returns(200) {data: [map], next_page: map?{offset: str, path: str, uri: str(uri)}} # Successfully retrieved the specified object's status updates.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint POST /status_updates\n@desc Create a status update\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include., data: any}\n@returns(201) {data: any} # Successfully created a new status update.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endgroup\n\n@group stories\n@endpoint GET /stories/{story_gid}\n@desc Get a story\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include.}\n@returns(200) {data: any} # Successfully retrieved the specified story.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint PUT /stories/{story_gid}\n@desc Update a story\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include., data: map{gid: str, resource_type: str, created_at: str(date-time), resource_subtype: str, text: str, html_text: str, is_pinned: bool, sticker_name: str} # A story represents an activity associated with an object in the Asana system.}\n@returns(200) {data: any} # Successfully retrieved the specified story.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint DELETE /stories/{story_gid}\n@desc Delete a story\n@returns(200) {data: map} # Successfully deleted the specified story.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endgroup\n\n@group tasks\n@endpoint GET /tasks/{task_gid}/stories\n@desc Get stories from a task\n@optional {limit: int # Results per page. The number of objects to return per page. The value must be between 1 and 100., offset: str # Offset token. An offset to the next page returned by the API. A pagination request will return an offset token, which can be used as an input parameter to the next request. If an offset is not passed in, the API will return the first page of results. *Note: You can only pass in an offset that was returned to you via a previously paginated request.*, opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include.}\n@returns(200) {data: [map], next_page: map?{offset: str, path: str, uri: str(uri)}} # Successfully retrieved the specified task's stories.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint POST /tasks/{task_gid}/stories\n@desc Create a story on a task\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include., data: map{gid: str, resource_type: str, created_at: str(date-time), resource_subtype: str, text: str, html_text: str, is_pinned: bool, sticker_name: str} # A story represents an activity associated with an object in the Asana system.}\n@returns(201) {data: any} # Successfully created a new story.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endgroup\n\n@group goals\n@endpoint GET /goals/{goal_gid}/stories\n@desc Get stories from a goal\n@optional {limit: int # Results per page. The number of objects to return per page. The value must be between 1 and 100., offset: str # Offset token. An offset to the next page returned by the API. A pagination request will return an offset token, which can be used as an input parameter to the next request. If an offset is not passed in, the API will return the first page of results. *Note: You can only pass in an offset that was returned to you via a previously paginated request.*, opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include.}\n@returns(200) {data: [map], next_page: map?{offset: str, path: str, uri: str(uri)}} # Successfully retrieved the specified goal's stories.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint POST /goals/{goal_gid}/stories\n@desc Create a story on a goal\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include., data: map{gid: str, resource_type: str, created_at: str(date-time), resource_subtype: str, text: str, html_text: str, is_pinned: bool, sticker_name: str} # A story represents an activity associated with an object in the Asana system.}\n@returns(201) {data: any} # Successfully created a new story.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endgroup\n\n@group tags\n@endpoint GET /tags\n@desc Get multiple tags\n@optional {limit: int # Results per page. The number of objects to return per page. The value must be between 1 and 100., offset: str # Offset token. An offset to the next page returned by the API. A pagination request will return an offset token, which can be used as an input parameter to the next request. If an offset is not passed in, the API will return the first page of results. *Note: You can only pass in an offset that was returned to you via a previously paginated request.*, workspace: str # The workspace to filter tags on., opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include.}\n@returns(200) {data: [map], next_page: map?{offset: str, path: str, uri: str(uri)}} # Successfully retrieved the specified set of tags.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint POST /tags\n@desc Create a tag\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include., data: any}\n@returns(201) {data: any} # Successfully created the newly specified tag.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint GET /tags/{tag_gid}\n@desc Get a tag\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include.}\n@returns(200) {data: any} # Successfully retrieved the specified tag.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint PUT /tags/{tag_gid}\n@desc Update a tag\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include., data: any}\n@returns(200) {data: any} # Successfully updated the specified tag.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint DELETE /tags/{tag_gid}\n@desc Delete a tag\n@returns(200) {data: map} # Successfully deleted the specified tag.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endgroup\n\n@group tasks\n@endpoint GET /tasks/{task_gid}/tags\n@desc Get a task's tags\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include.}\n@returns(200) {data: [map], next_page: map?{offset: str, path: str, uri: str(uri)}} # Successfully retrieved the tags for the given task.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endgroup\n\n@group workspaces\n@endpoint GET /workspaces/{workspace_gid}/tags\n@desc Get tags in a workspace\n@optional {limit: int # Results per page. The number of objects to return per page. The value must be between 1 and 100., offset: str # Offset token. An offset to the next page returned by the API. A pagination request will return an offset token, which can be used as an input parameter to the next request. If an offset is not passed in, the API will return the first page of results. *Note: You can only pass in an offset that was returned to you via a previously paginated request.*, opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include.}\n@returns(200) {data: [map], next_page: map?{offset: str, path: str, uri: str(uri)}} # Successfully retrieved the specified set of tags.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint POST /workspaces/{workspace_gid}/tags\n@desc Create a tag in a workspace\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include., data: any}\n@returns(201) {data: any} # Successfully created the newly specified tag.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endgroup\n\n@group task_templates\n@endpoint GET /task_templates\n@desc Get multiple task templates\n@optional {limit: int # Results per page. The number of objects to return per page. The value must be between 1 and 100., offset: str # Offset token. An offset to the next page returned by the API. A pagination request will return an offset token, which can be used as an input parameter to the next request. If an offset is not passed in, the API will return the first page of results. *Note: You can only pass in an offset that was returned to you via a previously paginated request.*, project: str # The project to filter task templates on., opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include.}\n@returns(200) {data: [map]} # Successfully retrieved requested task templates\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint GET /task_templates/{task_template_gid}\n@desc Get a task template\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include.}\n@returns(200) {data: any} # Successfully retrieved requested task template\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint DELETE /task_templates/{task_template_gid}\n@desc Delete a task template\n@returns(200) {data: map} # Successfully deleted the specified task template.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 402: The request was valid, but the queried object or object mutation specified in the request is above your current premium level., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint POST /task_templates/{task_template_gid}/instantiateTask\n@desc Instantiate a task from a task template\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include., data: map{name: str}}\n@returns(201) {data: map{gid: str, resource_type: str, resource_subtype: str, status: str, new_portfolio: map{gid: str, resource_type: str, name: str}, new_project: map{gid: str, resource_type: str, name: str}, new_task: any, new_project_template: map{gid: str, resource_type: str, name: str}, new_graph_export: map{gid: str, resource_type: str, created_at: str(date-time), download_url: str(uri)?, completed_at: str(date-time)}, new_resource_export: map{gid: str, resource_type: str, created_at: str(date-time), download_url: str(uri)?, completed_at: str(date-time)}}} # Successfully created the job to handle task instantiation.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endgroup\n\n@group tasks\n@endpoint GET /tasks\n@desc Get multiple tasks\n@optional {limit: int # Results per page. The number of objects to return per page. The value must be between 1 and 100., offset: str # Offset token. An offset to the next page returned by the API. A pagination request will return an offset token, which can be used as an input parameter to the next request. If an offset is not passed in, the API will return the first page of results. *Note: You can only pass in an offset that was returned to you via a previously paginated request.*, assignee: str # The assignee to filter tasks on. If searching for unassigned tasks, assignee.any = null can be specified. *Note: If you specify `assignee`, you must also specify the `workspace` to filter on.*, project: str # The project to filter tasks on., section: str # The section to filter tasks on., workspace: str # The workspace to filter tasks on. *Note: If you specify `workspace`, you must also specify the `assignee` to filter on.*, completed_since: str(date-time) # Only return tasks that are either incomplete or that have been completed since this time., modified_since: str(date-time) # Only return tasks that have been modified since the given time.  *Note: A task is considered “modified” if any of its properties change, or associations between it and other objects are modified (e.g.  a task being added to a project). A task is not considered modified just because another object it is associated with (e.g. a subtask) is modified. Actions that count as modifying the task include assigning, renaming, completing, and adding stories.*, opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include.}\n@returns(200) {data: [map], next_page: map?{offset: str, path: str, uri: str(uri)}} # Successfully retrieved requested tasks.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint POST /tasks\n@desc Create a task\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include., data: any}\n@returns(201) {data: any} # Successfully created a new task.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint GET /tasks/{task_gid}\n@desc Get a task\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include.}\n@returns(200) {data: any} # Successfully retrieved the specified task.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint PUT /tasks/{task_gid}\n@desc Update a task\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include., data: any}\n@returns(200) {data: any} # Successfully updated the specified task.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint DELETE /tasks/{task_gid}\n@desc Delete a task\n@returns(200) {data: map} # Successfully deleted the specified task.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint POST /tasks/{task_gid}/duplicate\n@desc Duplicate a task\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include., data: map{name: str, include: str}}\n@returns(201) {data: map{gid: str, resource_type: str, resource_subtype: str, status: str, new_portfolio: map{gid: str, resource_type: str, name: str}, new_project: map{gid: str, resource_type: str, name: str}, new_task: any, new_project_template: map{gid: str, resource_type: str, name: str}, new_graph_export: map{gid: str, resource_type: str, created_at: str(date-time), download_url: str(uri)?, completed_at: str(date-time)}, new_resource_export: map{gid: str, resource_type: str, created_at: str(date-time), download_url: str(uri)?, completed_at: str(date-time)}}} # Successfully created the job to handle duplication.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endgroup\n\n@group projects\n@endpoint GET /projects/{project_gid}/tasks\n@desc Get tasks from a project\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include.}\n@returns(200) {data: [map], next_page: map?{offset: str, path: str, uri: str(uri)}} # Successfully retrieved the requested project's tasks.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endgroup\n\n@group sections\n@endpoint GET /sections/{section_gid}/tasks\n@desc Get tasks from a section\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include.}\n@returns(200) {data: [map], next_page: map?{offset: str, path: str, uri: str(uri)}} # Successfully retrieved the section's tasks.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endgroup\n\n@group tags\n@endpoint GET /tags/{tag_gid}/tasks\n@desc Get tasks from a tag\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include.}\n@returns(200) {data: [map], next_page: map?{offset: str, path: str, uri: str(uri)}} # Successfully retrieved the tasks associated with the specified tag.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endgroup\n\n@group user_task_lists\n@endpoint GET /user_task_lists/{user_task_list_gid}/tasks\n@desc Get tasks from a user task list\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include.}\n@returns(200) {data: [map], next_page: map?{offset: str, path: str, uri: str(uri)}} # Successfully retrieved the user task list's tasks.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endgroup\n\n@group tasks\n@endpoint GET /tasks/{task_gid}/subtasks\n@desc Get subtasks from a task\n@optional {limit: int # Results per page. The number of objects to return per page. The value must be between 1 and 100., offset: str # Offset token. An offset to the next page returned by the API. A pagination request will return an offset token, which can be used as an input parameter to the next request. If an offset is not passed in, the API will return the first page of results. *Note: You can only pass in an offset that was returned to you via a previously paginated request.*, opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include.}\n@returns(200) {data: [map], next_page: map?{offset: str, path: str, uri: str(uri)}} # Successfully retrieved the specified task's subtasks.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint POST /tasks/{task_gid}/subtasks\n@desc Create a subtask\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include., data: any}\n@returns(201) {data: any} # Successfully created the specified subtask.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint POST /tasks/{task_gid}/setParent\n@desc Set the parent of a task\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include., data: map{parent!: str, insert_after: str, insert_before: str}}\n@returns(200) {data: any} # Successfully changed the parent of the specified subtask.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint GET /tasks/{task_gid}/dependencies\n@desc Get dependencies from a task\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include.}\n@returns(200) {data: [map], next_page: map?{offset: str, path: str, uri: str(uri)}} # Successfully retrieved the specified task's dependencies.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 402: The request was valid, but the queried object or object mutation specified in the request is above your current premium level., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint POST /tasks/{task_gid}/addDependencies\n@desc Set dependencies for a task\n@optional {data: map{dependencies: [str]}}\n@returns(200) {data: map} # Successfully set the specified dependencies on the task.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 402: The request was valid, but the queried object or object mutation specified in the request is above your current premium level., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint POST /tasks/{task_gid}/removeDependencies\n@desc Unlink dependencies from a task\n@optional {data: map{dependencies: [str]}}\n@returns(200) {data: map} # Successfully unlinked the dependencies from the specified task.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 402: The request was valid, but the queried object or object mutation specified in the request is above your current premium level., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint GET /tasks/{task_gid}/dependents\n@desc Get dependents from a task\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include.}\n@returns(200) {data: [map], next_page: map?{offset: str, path: str, uri: str(uri)}} # Successfully retrieved the specified dependents of the task.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 402: The request was valid, but the queried object or object mutation specified in the request is above your current premium level., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint POST /tasks/{task_gid}/addDependents\n@desc Set dependents for a task\n@optional {data: map{dependents: [str]} # A set of dependent tasks.}\n@returns(200) {data: map} # Successfully set the specified dependents on the given task.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 402: The request was valid, but the queried object or object mutation specified in the request is above your current premium level., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint POST /tasks/{task_gid}/removeDependents\n@desc Unlink dependents from a task\n@optional {data: map{dependents: [str]} # A set of dependent tasks.}\n@returns(200) {data: map} # Successfully unlinked the specified tasks as dependents.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 402: The request was valid, but the queried object or object mutation specified in the request is above your current premium level., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint POST /tasks/{task_gid}/addProject\n@desc Add a project to a task\n@optional {data: map{project!: str, insert_after: str, insert_before: str, section: str}}\n@returns(200) {data: map} # Successfully added the specified project to the task.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n@example_request {\"data\":{\"project\":\"13579\",\"section\":\"987654\"}}\n\n@endpoint POST /tasks/{task_gid}/removeProject\n@desc Remove a project from a task\n@optional {data: map{project!: str}}\n@returns(200) {data: map} # Successfully removed the specified project from the task.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint POST /tasks/{task_gid}/addTag\n@desc Add a tag to a task\n@optional {data: map{tag!: str}}\n@returns(200) {data: map} # Successfully added the specified tag to the task.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint POST /tasks/{task_gid}/removeTag\n@desc Remove a tag from a task\n@optional {data: map{tag!: str}}\n@returns(200) {data: map} # Successfully removed the specified tag from the task.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint POST /tasks/{task_gid}/addFollowers\n@desc Add followers to a task\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include., data: map{followers!: [str]}}\n@returns(200) {data: any} # Successfully added the specified followers to the task.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint POST /tasks/{task_gid}/removeFollowers\n@desc Remove followers from a task\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include., data: map{followers!: [str]}}\n@returns(200) {data: any} # Successfully removed the specified followers from the task.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endgroup\n\n@group workspaces\n@endpoint GET /workspaces/{workspace_gid}/tasks/custom_id/{custom_id}\n@desc Get a task for a given custom ID\n@returns(200) {data: any} # Successfully retrieved task for given custom ID.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint GET /workspaces/{workspace_gid}/tasks/search\n@desc Search tasks in a workspace\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include.}\n@returns(200) {data: [map]} # Successfully retrieved the section's tasks.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endgroup\n\n@group team_memberships\n@endpoint GET /team_memberships/{team_membership_gid}\n@desc Get a team membership\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include.}\n@returns(200) {data: map{gid: str, resource_type: str, user: map{gid: str, resource_type: str, name: str}, team: map{gid: str, resource_type: str, name: str}, is_guest: bool, is_limited_access: bool, is_admin: bool}} # Successfully retrieved the requested team membership.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint GET /team_memberships\n@desc Get team memberships\n@optional {team: str # Globally unique identifier for the team., user: str # A string identifying a user. This can either be the string \"me\", an email, or the gid of a user. This parameter must be used with the workspace parameter., workspace: str # Globally unique identifier for the workspace. This parameter must be used with the user parameter., opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include.}\n@returns(200) {data: [map], next_page: map?{offset: str, path: str, uri: str(uri)}} # Successfully retrieved the requested team memberships.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endgroup\n\n@group teams\n@endpoint GET /teams/{team_gid}/team_memberships\n@desc Get memberships from a team\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include.}\n@returns(200) {data: [map], next_page: map?{offset: str, path: str, uri: str(uri)}} # Successfully retrieved the requested team's memberships.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endgroup\n\n@group users\n@endpoint GET /users/{user_gid}/team_memberships\n@desc Get memberships from a user\n@required {workspace: str # Globally unique identifier for the workspace.}\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include.}\n@returns(200) {data: [map], next_page: map?{offset: str, path: str, uri: str(uri)}} # Successfully retrieved the requested users's memberships.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endgroup\n\n@group teams\n@endpoint POST /teams\n@desc Create a team\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include., data: any}\n@returns(201) {data: any} # Successfully created a new team.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint GET /teams/{team_gid}\n@desc Get a team\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include.}\n@returns(200) {data: any} # Successfully retrieved the record for a single team.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint PUT /teams/{team_gid}\n@desc Update a team\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include., data: any}\n@returns(200) {data: any} # Successfully updated the team.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endgroup\n\n@group workspaces\n@endpoint GET /workspaces/{workspace_gid}/teams\n@desc Get teams in a workspace\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include.}\n@returns(200) {data: [map], next_page: map?{offset: str, path: str, uri: str(uri)}} # Returns the team records for all teams in the organization or workspace accessible to the authenticated user.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endgroup\n\n@group users\n@endpoint GET /users/{user_gid}/teams\n@desc Get teams for a user\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include.}\n@returns(200) {data: [map], next_page: map?{offset: str, path: str, uri: str(uri)}} # Returns the team records for all teams in the organization or workspace to which the given user is assigned.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endgroup\n\n@group teams\n@endpoint POST /teams/{team_gid}/addUser\n@desc Add a user to a team\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include., data: map{user: str} # A user identification object for specification with the addUser/removeUser endpoints.}\n@returns(200) {data: map{gid: str, resource_type: str, user: map{gid: str, resource_type: str, name: str}, team: map{gid: str, resource_type: str, name: str}, is_guest: bool, is_limited_access: bool, is_admin: bool}} # Successfully added user to the team.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint POST /teams/{team_gid}/removeUser\n@desc Remove a user from a team\n@optional {data: map{user: str} # A user identification object for specification with the addUser/removeUser endpoints.}\n@returns(200) {data: map} # Returns an empty data record\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endgroup\n\n@group time_periods\n@endpoint GET /time_periods/{time_period_gid}\n@desc Get a time period\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include.}\n@returns(200) {data: any} # Successfully retrieved the record for a single time period.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint GET /time_periods\n@desc Get time periods\n@required {workspace: str # Globally unique identifier for the workspace.}\n@optional {start_on: str(date) # ISO 8601 date string, end_on: str(date) # ISO 8601 date string, opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include.}\n@returns(200) {data: [map], next_page: map?{offset: str, path: str, uri: str(uri)}} # Successfully retrieved the requested time periods.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endgroup\n\n@group time_tracking_categories\n@endpoint GET /time_tracking_categories/{time_tracking_category_gid}\n@desc Get a time tracking category\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include.}\n@returns(200) {data: any} # Successfully retrieved the requested time tracking category.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint PUT /time_tracking_categories/{time_tracking_category_gid}\n@desc Update a time tracking category\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include., data: any}\n@returns(200) {data: any} # Successfully updated the time tracking category.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint DELETE /time_tracking_categories/{time_tracking_category_gid}\n@desc Delete a time tracking category\n@returns(200) {data: map} # Successfully deleted the specified time tracking category.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint GET /time_tracking_categories/{time_tracking_category_gid}/time_tracking_entries\n@desc Get time tracking entries for a time tracking category\n@optional {start_date: str(date) # The start date for filtering time tracking entries by their entry date., end_date: str(date) # The end date for filtering time tracking entries by their entry date., limit: int # Results per page. The number of objects to return per page. The value must be between 1 and 100., offset: str # Offset token. An offset to the next page returned by the API. A pagination request will return an offset token, which can be used as an input parameter to the next request. If an offset is not passed in, the API will return the first page of results. *Note: You can only pass in an offset that was returned to you via a previously paginated request.*, opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include.}\n@returns(200) {data: [map], next_page: map?{offset: str, path: str, uri: str(uri)}} # Successfully retrieved the requested time tracking entries.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint GET /time_tracking_categories\n@desc Get time tracking categories for a workspace\n@required {workspace: str # Globally unique identifier for the workspace.}\n@optional {is_archived: bool # Filter by archived status. If not provided, defaults to returning non-archived categories., limit: int # Results per page. The number of objects to return per page. The value must be between 1 and 100., offset: str # Offset token. An offset to the next page returned by the API. A pagination request will return an offset token, which can be used as an input parameter to the next request. If an offset is not passed in, the API will return the first page of results. *Note: You can only pass in an offset that was returned to you via a previously paginated request.*, opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include.}\n@returns(200) {data: [map], next_page: map?{offset: str, path: str, uri: str(uri)}} # Successfully retrieved the requested time tracking categories.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint POST /time_tracking_categories\n@desc Create a time tracking category\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include., data: any}\n@returns(201) {data: any} # Successfully created a time tracking category.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endgroup\n\n@group tasks\n@endpoint GET /tasks/{task_gid}/time_tracking_entries\n@desc Get time tracking entries for a task\n@optional {limit: int # Results per page. The number of objects to return per page. The value must be between 1 and 100., offset: str # Offset token. An offset to the next page returned by the API. A pagination request will return an offset token, which can be used as an input parameter to the next request. If an offset is not passed in, the API will return the first page of results. *Note: You can only pass in an offset that was returned to you via a previously paginated request.*, opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include.}\n@returns(200) {data: [map], next_page: map?{offset: str, path: str, uri: str(uri)}} # Successfully retrieved the requested time tracking entries.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint POST /tasks/{task_gid}/time_tracking_entries\n@desc Create a time tracking entry\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include., data: map{duration_minutes: int, entered_on: str(date), attributable_to: str, billable_status: str, description: str, categories: [str]}}\n@returns(201) {data: any} # Successfully created a time tracking entry for the task.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endgroup\n\n@group time_tracking_entries\n@endpoint GET /time_tracking_entries/{time_tracking_entry_gid}\n@desc Get a time tracking entry\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include.}\n@returns(200) {data: any} # Successfully retrieved the requested time tracking entry.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint PUT /time_tracking_entries/{time_tracking_entry_gid}\n@desc Update a time tracking entry\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include., data: map{duration_minutes: int, entered_on: str(date), attributable_to: str, billable_status: str, description: str, categories: [str]}}\n@returns(200) {data: any} # Successfully updated the time tracking entry.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint DELETE /time_tracking_entries/{time_tracking_entry_gid}\n@desc Delete a time tracking entry\n@returns(200) {data: map} # Successfully deleted the specified time tracking entry.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint GET /time_tracking_entries\n@desc Get multiple time tracking entries\n@optional {task: str # Globally unique identifier for the task to filter time tracking entries by., attributable_to: str # Globally unique identifier for the project the time tracking entries are attributed to., portfolio: str # Globally unique identifier for the portfolio to filter time tracking entries by., user: str # Globally unique identifier for the user to filter time tracking entries by., workspace: str # Globally unique identifier for the workspace. At least one of `entered_on_start_date` or `entered_on_end_date` must be provided when filtering by workspace., entered_on_start_date: str(date) # The start date for filtering time tracking entries by when they were entered., entered_on_end_date: str(date) # The end date for filtering time tracking entries by when they were entered., timesheet_approval_status: str # Globally unique identifier for the timesheet approval status to filter time tracking entries by., limit: int # Results per page. The number of objects to return per page. The value must be between 1 and 100., offset: str # Offset token. An offset to the next page returned by the API. A pagination request will return an offset token, which can be used as an input parameter to the next request. If an offset is not passed in, the API will return the first page of results. *Note: You can only pass in an offset that was returned to you via a previously paginated request.*, opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include.}\n@returns(200) {data: [map], next_page: map?{offset: str, path: str, uri: str(uri)}} # Successfully retrieved the requested time tracking entries.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 402: The request was valid, but the queried object or object mutation specified in the request is above your current premium level., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endgroup\n\n@group timesheet_approval_statuses\n@endpoint GET /timesheet_approval_statuses/{timesheet_approval_status_gid}\n@desc Get a timesheet approval status\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include.}\n@returns(200) {data: any} # Successfully retrieved the requested timesheet approval status.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint PUT /timesheet_approval_statuses/{timesheet_approval_status_gid}\n@desc Update a timesheet approval status\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include., data: map{approval_status!: str, message: str} # A request to update a timesheet approval status.}\n@returns(200) {data: any} # Successfully updated the requested timesheet approval status.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 402: The request was valid, but the queried object or object mutation specified in the request is above your current premium level., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint GET /timesheet_approval_statuses\n@desc Get multiple timesheet approval statuses\n@required {workspace: str # Globally unique identifier for the workspace.}\n@optional {user: str # Globally unique identifier for the user to filter timesheet approval statuses by., from_date: str(date) # The start date for filtering timesheet approval statuses., to_date: str(date) # The end date for filtering timesheet approval statuses., approval_statuses: str # Filter by approval status. Can be one or more of draft, submitted, approved, or rejected., limit: int # Results per page. The number of objects to return per page. The value must be between 1 and 100., offset: str # Offset token. An offset to the next page returned by the API. A pagination request will return an offset token, which can be used as an input parameter to the next request. If an offset is not passed in, the API will return the first page of results. *Note: You can only pass in an offset that was returned to you via a previously paginated request.*, opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include.}\n@returns(200) {data: [map], next_page: map?{offset: str, path: str, uri: str(uri)}} # Successfully retrieved the requested timesheet approval statuses.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint POST /timesheet_approval_statuses\n@desc Create a timesheet approval status\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include., data: map{user!: str, workspace!: str, start_date!: str(date), end_date!: str(date)} # A request to create a timesheet approval status.}\n@returns(201) {data: any} # Successfully created a timesheet approval status.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 402: The request was valid, but the queried object or object mutation specified in the request is above your current premium level., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endgroup\n\n@group workspaces\n@endpoint GET /workspaces/{workspace_gid}/typeahead\n@desc Get objects via typeahead\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include.}\n@returns(200) {data: [map]} # Successfully retrieved objects via a typeahead search algorithm.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endgroup\n\n@group user_task_lists\n@endpoint GET /user_task_lists/{user_task_list_gid}\n@desc Get a user task list\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include.}\n@returns(200) {data: map{gid: str, resource_type: str, name: str, owner: any, workspace: any}} # Successfully retrieved the user task list.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endgroup\n\n@group users\n@endpoint GET /users/{user_gid}/user_task_list\n@desc Get a user's task list\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include.}\n@returns(200) {data: map{gid: str, resource_type: str, name: str, owner: any, workspace: any}} # Successfully retrieved the user's task list.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint GET /users\n@desc Get multiple users\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include.}\n@returns(200) {data: [map], next_page: map?{offset: str, path: str, uri: str(uri)}} # Successfully retrieved the requested user records.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint GET /users/{user_gid}\n@desc Get a user\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include.}\n@returns(200) {data: any} # Returns the user specified.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint PUT /users/{user_gid}\n@desc Update a user\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include., data: any}\n@returns(200) {data: any} # Successfully updated the specified user.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint GET /users/{user_gid}/favorites\n@desc Get a user's favorites\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include.}\n@returns(200) {data: [map], next_page: map?{offset: str, path: str, uri: str(uri)}} # Returns the specified user's favorites.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endgroup\n\n@group teams\n@endpoint GET /teams/{team_gid}/users\n@desc Get users in a team\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include.}\n@returns(200) {data: [map]} # Returns the user records for all the members of the team, including guests and limited access users.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endgroup\n\n@group workspaces\n@endpoint GET /workspaces/{workspace_gid}/users\n@desc Get users in a workspace or organization\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include.}\n@returns(200) {data: [map]} # Return the users in the specified workspace or org.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint GET /workspaces/{workspace_gid}/users/{user_gid}\n@desc Get a user in a workspace or organization\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include.}\n@returns(200) {data: any} # Returns the user specified.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint PUT /workspaces/{workspace_gid}/users/{user_gid}\n@desc Update a user in a workspace or organization\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include., data: any}\n@returns(200) {data: any} # Successfully updated the specified user.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endgroup\n\n@group webhooks\n@endpoint GET /webhooks\n@desc Get multiple webhooks\n@required {workspace: str # The workspace to query for webhooks in.}\n@optional {limit: int # Results per page. The number of objects to return per page. The value must be between 1 and 100., offset: str # Offset token. An offset to the next page returned by the API. A pagination request will return an offset token, which can be used as an input parameter to the next request. If an offset is not passed in, the API will return the first page of results. *Note: You can only pass in an offset that was returned to you via a previously paginated request.*, resource: str # Only return webhooks for the given resource., opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include.}\n@returns(200) {data: [any], next_page: map?{offset: str, path: str, uri: str(uri)}} # Successfully retrieved the requested webhooks.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint POST /webhooks\n@desc Establish a webhook\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include., data: map{resource!: str, target!: str(uri), filters: [any]}}\n@returns(201) {data: any, X-Hook-Secret: str} # Successfully created the requested webhook.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint GET /webhooks/{webhook_gid}\n@desc Get a webhook\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include.}\n@returns(200) {data: any} # Successfully retrieved the requested webhook.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint PUT /webhooks/{webhook_gid}\n@desc Update a webhook\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include., data: map{filters: [any]}}\n@returns(200) {data: any} # Successfully updated the webhook.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint DELETE /webhooks/{webhook_gid}\n@desc Delete a webhook\n@returns(200) {data: map} # Successfully retrieved the requested webhook.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endgroup\n\n@group workspace_memberships\n@endpoint GET /workspace_memberships/{workspace_membership_gid}\n@desc Get a workspace membership\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include.}\n@returns(200) {data: any} # Successfully retrieved the requested workspace membership.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endgroup\n\n@group users\n@endpoint GET /users/{user_gid}/workspace_memberships\n@desc Get workspace memberships for a user\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include.}\n@returns(200) {data: [map], next_page: map?{offset: str, path: str, uri: str(uri)}} # Successfully retrieved the requested user's workspace memberships.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endgroup\n\n@group workspaces\n@endpoint GET /workspaces/{workspace_gid}/workspace_memberships\n@desc Get the workspace memberships for a workspace\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include.}\n@returns(200) {data: [map], next_page: map?{offset: str, path: str, uri: str(uri)}} # Successfully retrieved the requested workspace's memberships.\n\n@endpoint GET /workspaces\n@desc Get multiple workspaces\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include.}\n@returns(200) {data: [map], next_page: map?{offset: str, path: str, uri: str(uri)}} # Return all workspaces visible to the authorized user.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint GET /workspaces/{workspace_gid}\n@desc Get a workspace\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include.}\n@returns(200) {data: any} # Return the full workspace record.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint PUT /workspaces/{workspace_gid}\n@desc Update a workspace\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include., data: map{gid: str, resource_type: str, name: str} # A *workspace* is the highest-level organizational unit in Asana. All projects and tasks have an associated workspace.}\n@returns(200) {data: any} # Update for the workspace was successful.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint POST /workspaces/{workspace_gid}/addUser\n@desc Add a user to a workspace or organization\n@optional {opt_fields: [str] # This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include., data: map{user: str} # A user identification object for specification with the addUser/removeUser endpoints.}\n@returns(200) {data: any} # The user was added successfully to the workspace or organization.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint POST /workspaces/{workspace_gid}/removeUser\n@desc Remove a user from a workspace or organization\n@optional {data: map{user: str} # A user identification object for specification with the addUser/removeUser endpoints.}\n@returns(200) {data: map} # The user was removed successfully to the workspace or organization.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endpoint GET /workspaces/{workspace_gid}/events\n@desc Get workspace events\n@returns(200) {data: [map], sync: str, has_more: bool} # Successfully retrieved events.\n@errors {400: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again., 401: A valid authentication token was not provided with the request, so the API could not associate a user with the request., 403: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to., 404: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist., 500: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.}\n\n@endgroup\n\n@end\n"}