openapi: 3.0.0 info: description: >- This is the interface for interacting with the [Asana Platform](https://developers.asana.com). Our API reference is generated from our [OpenAPI spec] (https://raw.githubusercontent.com/Asana/openapi/master/defs/asana_oas.yaml). x-public-description: >- This is the interface for interacting with the [Asana Platform](https://developers.asana.com). Our API reference is generated from our [OpenAPI spec] (https://raw.githubusercontent.com/Asana/openapi/master/defs/asana_oas.yaml). title: Asana termsOfService: https://asana.com/terms contact: name: Asana Support url: https://asana.com/support license: name: Apache 2.0 url: https://www.apache.org/licenses/LICENSE-2.0 version: '1.0' x-docs-schema-whitelist: - AsanaResource - AsanaNamedResource - AuditLogEvent - AttachmentResponse - AttachmentCompact - BatchResponse - CustomFieldSettingResponse - CustomFieldSettingCompact - CustomTypeResponse - CustomTypeBase - CustomTypeCompact - CustomTypeStatusOptionResponse - CustomTypeStatusOptionBase - CustomTypeStatusOptionCompact - CustomFieldResponse - CustomFieldCompact - CustomFieldMembershipCompact - CustomFieldMembershipResponse - EnumOption - EventResponse - ErrorResponse - GoalResponse - GoalCompact - GoalMembershipCompact - GoalMembershipBase - GoalMembershipResponse - GoalRelationshipResponse - GoalRelationshipCompact - GraphExportResponse - GraphExportCompact - JobResponse - JobCompact - OrganizationExportResponse - OrganizationExportCompact - PortfolioMembershipResponse - PortfolioMembershipCompact - PortfolioResponse - PortfolioCompact - ProjectBriefResponse - ProjectBriefCompact - ProjectMembershipCompactResponse - ProjectMembershipNormalResponse - ProjectMembershipCompact - ProjectResponse - ProjectCompact - ProjectStatusResponse - ProjectStatusCompact - ProjectTemplateCompact - ProjectTemplateResponse - RuleTriggerResponse - ResourceExportResponse - ResourceExportCompact - SectionResponse - SectionCompact - StatusUpdateResponse - StatusUpdateCompact - StoryResponse - StoryCompact - TagResponse - TagCompact - TaskResponse - TaskCompact - TaskCountResponse - TeamMembershipResponse - TeamMembershipCompact - TeamResponse - TeamCompact - TimePeriodResponse - TimePeriodCompact - UserTaskListResponse - UserTaskListCompact - UserResponse - UserCompact - WebhookFilter - WebhookResponse - WebhookCompact - WorkspaceMembershipResponse - WorkspaceMembershipCompact - WorkspaceResponse - WorkspaceCompact servers: - url: https://app.asana.com/api/1.0 description: Main endpoint. security: - personalAccessToken: [] - oauth2: [] x-readme: proxy-enabled: false tags: - name: Access requests description: >- An access request object represents a user's request to an item, such as a project or portfolio, that they do not have access to. The request is sent to the owner of the item for approval. - name: Allocations description: >- An allocation object represents how much of a resource (e.g. person, team) is dedicated to a specific work object (e.g. project, portfolio) over a specific period of time. The effort value of an allocation object can be a percentage or number of hours. - name: Attachments description: >- An *attachment* object represents any file attached to a task in Asana, whether it's an uploaded file or one associated via a third-party service such as Dropbox or Google Drive. - name: Audit log API description: >- Asana's audit log is an immutable log of [important events](/docs/audit-log-events#supported-audit-log-events) in your organization's Asana instance. The audit log API allows you to monitor and act upon important security and compliance-related changes. Organizations might use this API endpoint to: * Set up proactive alerting with a Security Information and Event Management (SIEM) tool like [Splunk](https://asana.com/guide/help/api/splunk) * Conduct reactive investigations when a security incident takes place * Visualize key domain data in aggregate to identify security trends Note that since the API provides insight into what is happening in an Asana instance, the data is [read-only](/reference/getauditlogevents). That is, there are no "write" or "update" endpoints for audit log events. Only [Service Accounts](https://asana.com/guide/help/premium/service-accounts) in [Enterprise Domains](https://asana.com/enterprise) can access audit log API endpoints. Authentication with a Service Account's [personal access token](/docs/personal-access-token) is required. For a full list of supported events, see [supported AuditLogEvents](/docs/audit-log-events#supported-audit-log-events). - name: Batch API description: >- There are many cases where you want to accomplish a variety of work in the Asana API but want to minimize the number of HTTP requests you make. For example: * Modern browsers limit the number of requests that a single web page can make at once. * Mobile apps will use more battery life to keep the cellular radio on when making a series of requests. * There is an overhead cost to developing software that can make multiple requests in parallel. * Some cloud platforms handle parallelism poorly, or disallow it entirely. To make development easier in these use cases, Asana provides a **batch API** that enables developers to perform multiple “actions” by making only a single HTTP request. #### Making a batch request To make a batch request, send a `POST` request to `/batch`. Like other `POST` endpoints, the body should contain a `data` envelope. Inside this envelope should be a single `actions` field, containing a list of “action” objects. Each action represents a standard request to an existing endpoint in the Asana API. **The maximum number of actions allowed in a single batch request is 10**. Making a batch request with no actions in it will result in a `400 Bad Request`. When the batch API receives the list of actions to execute, it will dispatch those actions to the already-implemented endpoints specified by the `relative_path` and `method` for each action. This happens in parallel, so all actions in the request will be processed simultaneously. There is no guarantee of the execution order for these actions, nor is there a way to use the output of one action as the input of another action (such as creating a task and then commenting on it). The response to the batch request will contain (within the `data` envelope) a list of result objects, one for each action. The results are guaranteed to be in the same order as the actions in the request (e.g., the first result in the response corresponds to the first action in the request) The batch API will always attempt to return a `200 Success` response with individual result objects for each individual action in the request. Only in certain cases (such as missing authorization or malformed JSON in the body) will the entire request fail with another status code. Even if every individual action in the request fails, the batch API will still return a `200 Success` response, and each result object in the response will contain the errors encountered with each action. #### Rate limiting The batch API fully respects all of our rate limiting. This means that a batch request counts against *both* the standard rate limiter and the concurrent request limiter as though you had made a separate HTTP request for every individual action. For example, a batch request with five actions counts as five separate requests in the standard rate limiter, and counts as five concurrent requests in the concurrent request limiter. The batch request itself incurs no cost. If any of the actions in a batch request would exceed any of the enforced limits, the *entire* request will fail with a `429 Too Many Requests` error. This is to prevent the unpredictability of which actions might succeed if not all of them could succeed. #### Restrictions Not every endpoint can be accessed through the batch API. Specifically, the following actions cannot be taken and will result in a `400 Bad Request` for that action: * Uploading attachments * Creating, getting, or deleting organization exports * Any SCIM operations * Nested calls to the batch API - name: Budgets description: >- A *budget* object represents a budget for a specific *parent* resource (such as a project). Each budget tracks values either in *time* or *cost*, as determined by the *budget_type* field. When *budget_type* is `time`, all values are expressed in minutes. When *budget_type* is `cost`, all values are expressed in the domain’s currency. A budget can include up to three value objects: *estimate*, *actual*, and *total*. Each contains a `value`, `units`, and may include a `billable_status_filter` field. **estimate** Represents the aggregated estimated effort on tasks attributed to the *parent*. For time budgets: total estimated minutes. For cost budgets: total estimated cost, computed as (estimated time × resource rate). **actual** Represents the aggregated actual time logged on tasks attributed to the *parent*. For time budgets: total actual minutes from time tracking entries. For cost budgets: total actual cost, computed as (actual time × resource rate). The optional `billable_status_filter` limits aggregation to `billable`, `non_billable`, or `any` entries. **total** A user-defined target value for the budget. Stored independently per budget type, so switching between *time* and *cost* preserves each type's value. For time budgets: stored and read as minutes. For cost budgets: stored and read in the domain's currency. - name: Custom field settings description: >- Custom fields are attached to a particular project with the custom field settings resource. This resource both represents the many-to-many join of the custom field and project as well as stores information that is relevant to that particular pairing. For instance, the `is_important` property determines some possible application-specific handling of that custom field. - name: Custom fields description: >- _Note: Custom fields are a premium feature. Integrations which work with custom fields need to handle an assortment of use cases for free and premium users in context of free and premium organizations. For a detailed examination of which data users will have access in different circumstances, review the section below on access control._ In the Asana application, tasks, projects, and portfolios can hold user-specified [custom fields](https://asana.com/guide/help/premium/custom-fields) which provide extra information (e.g., a "priority" property with an associated value, or a number representing the time required to complete a task). This lets a user define the type of information that each item within a project or portfolio can contain in addition to the built-in fields that Asana provides. `display_value` is a read-only field that will always be a string. For apps that use custom fields, this is a great way to safely display/export the value of a custom field, regardless of its type. We suggest apps use this field in order to future-proof for changes to custom fields. #### Characteristics of custom fields * There is metadata that defines the custom field. This metadata can be shared across an entire workspace, or be specific to a project or portfolio. * Creating a custom field setting on a project or portfolio means each direct child will have the custom field. This is conceptually akin to adding columns in a database or a spreadsheet: every task (row) in the project (table) can contain information for that field, including "blank" values (i.e., `null` data). For portfolio custom fields, every project (row) in the portfolio (table) will contain information for the custom field. * Custom field settings only go one child deep. This means that a custom field setting on a portfolio will give each project the custom field, but not each task within those projects. * Tasks have custom field _values_ assigned to them. #### Types of custom fields Integrations using custom fields need to be aware of the six basic types that a custom field can adopt. These types are: * `text` - an arbitrary, relatively short string of text * `number` - a number with a defined level of precision * `enum` - a selection of a single option from a defined list of options (i.e., mutually exclusive selections) * `multi_enum` - a selection of one or more options from a defined list of options (i.e., mutually inclusive selections) * `date` - a reference date with an optional time value * `people` - a list of active contributors (i.e., where their relationship to the work is defined in the custom field title) #### Example use case Consider an organization that has defined a custom field for "Priority". This field is of `enum` type and can have user-defined values of `Low`, `Medium`, or `High`. This is the field metadata, and it is visible within, and shared across, the entire organization. A project is then created in the organization, called "Bugs", and the "Priority" custom field is associated with that project. This will allow all tasks within the "Bugs" project to have an associated "Priority". A new task is created within "Bugs". This task, then, has a field named "Priority" which can take on the custom field value of one of `[null]`, `Low`, `Medium`, and `High`. #### Custom fields in the API These custom fields are accessible via the API through a number of endpoints at the top level (e.g. `/custom_fields` and `/custom_field_settings`) and through requests on workspaces, portfolios, projects, and tasks resources. The API also provides a way to fetch both the metadata and data which define each particular custom field, so that a client application may render proper UI to display or edit the values. Text fields are currently limited to 1024 characters. On tasks, their custom field value will have a `text_value` property to represent this field. Number fields can have an arbitrary `precision` associated with them; for example, a precision of `2` would round its value to the second (hundredths) place (e.g., `1.2345` would round to `1.23`). On tasks, the custom field value will have a `number_value` property to represent this field. #### Enum fields Enum fields represent a selection from a list of options. On the metadata, they will contain all of the options in an array. Each option has 4 properties: * `gid` - the GID of this enum option. Note that this is the GID of the individual _option_. The custom field itself has a separate `gid`. * `name` - the name of the option (e.g., "Choice #1") * `enabled` - whether this field is enabled. Disabled fields are not available to choose from when disabled, and are visually hidden in the Asana application, but they remain in the metadata for custom field values which were set to the option before the option was disabled. * `color` - a color associated with this choice. On the task's custom field value, the enum will have an `enum_value` property which will be the same as one of the choices from the list defined in the custom field metadata. #### Querying an organization for its custom fields For custom fields shared across the workspace or organization, the workspace [can be queried](/reference/getcustomfieldsforworkspace) for its list of defined custom fields. Like other collection queries, the fields will be returned as a compact record; slightly different from most other compact records is the fact that the compact record for custom fields includes `type` as well as `gid` and `name`. #### Accessing custom field definitions The [custom fields](/reference/getcustomfield) reference describes how the metadata which defines a custom field is accessed. A GET request with a `gid` can be issued on the `/custom_fields` endpoint to fetch the full definition of a single custom field given its `gid` from (for instance) listing all custom fields on a workspace, or getting the `gid` from a custom field settings object or a task. #### Associating custom fields with a project or portfolio A mapping between a custom field and a project or portfolio is handled with a [custom field settings](/reference/custom-field-settings) object. This object contains a reference for each of the custom fields and the project or portfolio, as well as additional information about the status of that particular custom field (e.g., `is_important`, which defines whether or not the custom field will appear in the list/grid on the Asana application). #### Accessing custom field values on tasks or projects The [tasks](/reference/gettask) reference has information on how custom fields look on tasks. custom fields will return as an array on the property `custom_fields`, and each entry will contain, side-by-side, the compact representation of the custom field metadata and a `{typename}_value` property that stores the value set for the custom field. Of particular note is that the top-level `gid` of each entry in the `custom_fields` array is the `gid` of the custom field metadata, as it is the compact representation of this metadata. This can be used to refer to the full metadata by making a request to the `/custom_fields/{custom_fields_id}` endpoint as described above. Custom fields can be set just as in the Asana-defined fields on a task via `POST` or `PUT` requests. You can see an example in the [update a task](/reference/updatetask) endpoint. Custom fields on projects follow this same pattern. #### Warning: Program defensively with regards to custom field definitions Asana application users have the ability to change the definitions of custom field metadata. This means that as you write scripts or applications to work with them, it is possible for the definitions to change at any time, which may cause an application using them to break or malfunction if it makes assumptions about the metadata for a particular custom field. When using custom fields, it is a good idea to program *defensively*, meaning you your application should double-check that the custom field metadata are what it expects. Storing the state of the custom field metadata for too long if you dynamically create a model for it can cause your model to become out of sync with the model stored in Asana. For example, if you encounter an `enum` value on a task that does not match any option in your metadata model, your metadata model has become out of date with the custom field metadata. #### Enabled and disabled values When information that is contained in a custom field value loses a logical association with its metadata definition, the value becomes disabled. This can happen in a couple of simple ways, for example, if you remove the custom field metadata from a project, or move a task with a custom field to a different project which does not have the custom field metadata associated with it. The value remains on the task, and the custom field metadata can still be found and examined, but as the context in which the custom field makes sense is gone, the custom field cannot change its value; it can only be cleared. _Note: Tasks that are associated with multiple projects do not become disabled, so long as at least one of the projects is still associated with the custom field metadata. In other words, tasks with multiple projects will retain logically associated to the set of custom field metadata represented by all of their projects._ Moving the task back under a project with that custom field applied to it or applying the custom field metadata to the current project will return the custom field value to an enabled state. In this scenario, the custom field will be re-enabled and editable again. In the Asana application, disabled fields are grayed out and not allowed to change, other than to be discarded. In the API, we return a property `enabled: false` to inform the external application that the value has been disabled. Note that the API enforces the same operations on disabled custom field values as hold in the Asana application: they may not have their values changed, since the lack of context for the values of a custom field in general doesn't provide enough information to know what new values should be. Setting the custom field value to `null` will clear and remove the custom field value from the task. #### Custom field access control Custom fields are a complex feature of the Asana platform, and their access in the Asana application and in the API vary based on the status of the user and project. When building your application, it is best to be defensive and not assume the given user will have read or write access to a custom field, and fail gracefully when this occurs. - name: Custom types description: >- A custom type allows distinct categorizations of objects based on their specific purpose or functionality. Structuring objects through a defined custom type provides greater flexibility in work management allowing users to better match the object to their use case - name: Events description: >- An event is an object representing a change to a resource that was observed by an event subscription. Event streams rely on the same infrastructure as webhooks, which ensures events are delivered within a minute (on average). This system is designed for at most once delivery, meaning in exceptional circumstances a small number of events may be missing from the stream. For this reason, if your use case requires strong guarantees about processing all changes on a resource and cannot tolerate any missing events, regardless of how rare that might be, we recommend building a fallback polling system that fetches the resource periodically as well. Note that while webhooks cannot be replayed once delivered, events are retrievable from the event stream for 24 hours after being processed. In general, requesting events on a resource is faster and subject to higher rate limits than requesting the resource itself. Additionally, change events "bubble up" (e.g., listening to events on a project would include when stories are added to tasks in the project, and even to subtasks). Establish an initial sync token by making a request with no sync token. The response will be a `412 Precondition Failed` error - the same as if the sync token had expired. Subsequent requests should always provide the sync token from the immediately preceding call. Sync tokens may not be valid if you attempt to go "backward" in the history by requesting previous tokens, though re-requesting the current sync token is generally safe, and will always return the same results. When you receive a `412 Precondition Failed` error, it means that the sync token is either invalid or expired. If you are attempting to keep a set of data in sync, this signals you may need to re-crawl the data. Sync tokens always expire after 24 hours, but may expire sooner, depending on load on the service. - name: Exports description: |- Exports are a way to download data from Asana. The following types of exports are available: * **Graph exports**: Export of data about objects starting from a parent object, such as a team, portfolio, or project. * **Resource exports**: Bulk exports of resources such as tasks, teams, and messages for a workspace. * **Organization exports**: Exports the complete data of an organization in JSON format. Please refer to [Organization exports](/reference/organization-exports) for more details. ## Graph exports A `graph_export` object represents a request to export the data about objects starting from a parent object. Parent object can be a team, portfolio, or project. To create an export using this API: 1. Create a `graph_export` [request](/reference/createGraphExport) and store the ID that is returned. 2. Request the [jobs](/reference/getjob) endpoint every few minutes, until `status` field contains 'succeeded'. 3. Download the file located at the URL in the `download_url` field. Exports can take a long time, from several minutes to a few hours for large portfolios. *Note: Graph exports are only available to accounts of an [Enterprise](https://asana.com/enterprise)/Enterprise+ organization.* ## Resource exports A `resource_export` object represents a request to bulk export resources for a workspace. To create an export using this API: 1. Create a `resource_export` [request](/reference/createResourceExport) and store the job ID that is returned. 2. Request the [jobs](/reference/getjob) endpoint at some interval, until `status` field contains 'succeeded' and a `download_url` is available. 3. Download the file located at the URL in the `download_url` field. Exports can take a long time, from several minutes to a few hours for large workspaces. *Note: Resource exports are only available to [Service Accounts](https://asana.com/guide/help/premium/service-accounts) from an Enterprise+ organization or an organization with the Compliance Management Add-on. - name: Goal relationships description: >- A goal relationship is an object representing the relationship between a goal and another goal, a project, a task, or a portfolio. - name: Goals description: >- A goal is an object in the goal-tracking system that helps your organization drive measurable results. - name: Jobs description: >- Jobs represent processes that handle asynchronous work. A job created when an endpoint requests an action that will be handled asynchronously, such as project or task duplication. Only the creator of the duplication process can access the duplication status of the new object. *Note*: With any work that is handled asynchronously (e.g., [project instantation from a template](/reference/instantiateproject), duplicating a [task](/reference/duplicatetask) or [project](/reference/duplicateproject), etc.), the *intermittent states* of newly-created objects may not be consistent. That is, object properties may return different values each time when polled until the job `status` has returned a `succeeded` value. - name: Memberships description: |- A membership object represents the relationship between a team or user and an object in Asana. Currently, the supported types of memberships are for goals, projects, custom fields, custom types,and portfolios. For example, a project membership can be used to add a user to a project. - name: Organization exports description: >- An `organization_export` object represents a request to export the complete data of an organization in JSON format. To export an organization using this API: * Create an `organization_export` [request](/reference/createorganizationexport) and store the ID that is returned. * Request the `organization_export` every few minutes, until the `state` field contains ‘finished’. * Download the file located at the URL in the `download_url` field. * Exports can take a long time, from several minutes to a few hours for large organizations. *Note: These endpoints are only available to [Service Accounts](https://asana.com/guide/help/premium/service-accounts) of an [Enterprise](https://asana.com/enterprise) organization.* - name: Portfolio memberships description: >- This object determines if a user is a member of a portfolio. - name: Portfolios description: >- A portfolio gives a high-level overview of the status of multiple initiatives in Asana. Portfolios provide a dashboard overview of the state of multiple projects, including a progress report and the most recent [status update](/reference/status-updates). Portfolios have some restrictions on size. Each portfolio has a max of 1500 items and, like projects, a maximum of 20 custom fields. - name: Project briefs description: >- A project brief object represents a rich text document that describes a project. Please note that this API is in *preview*, and is expected to change. This API is to be used for development and testing only as an advance view into the upcoming rich text format experience in the task description. For more information, see [this post](https://forum.asana.com/t/project-brief-api-now-available-as-a-preview/150885) in the developer forum. - name: Project memberships description: >- With the introduction of “comment-only” projects in Asana, a user’s membership in a project comes with associated permissions. These permissions (i.e., whether a user has full access to the project or comment-only access) are accessible through the project memberships endpoints described here. - name: Project statuses description: |- *Deprecated: new integrations should prefer using [status updates](/reference/status-updates)* A project status is an update on the progress of a particular project, and is sent out to all project followers when created. These updates include both text describing the update and a color code intended to represent the overall state of the project: "green" for projects that are on track, "yellow" for projects at risk, "red" for projects that are behind, and "blue" for projects on hold. Project statuses can be created and deleted, but not modified. - name: Project templates description: |- A project template is an object that allows new projects to be created with a predefined setup, which may include tasks, sections, rules, etc. It simplifies the process of running a workflow that involves a similar set of work every time. Project templates in organizations are shared with a single team. Currently, the team of a project template cannot be changed via the API. - name: Projects description: >- A project represents a prioritized list of tasks in Asana or a board with columns of tasks represented as cards. A project exists in a single workspace or organization and is accessible to a subset of users in that workspace or organization, depending on its permissions. Projects in organizations are shared with a single team. Currently, the team of a project cannot be changed via the API. Non-organization workspaces do not have teams and so you should not specify the team of project in a regular workspace. Followers of a project are a subset of the members of that project. Followers of a project will receive all updates including tasks created, added and removed from that project. Members of the project have access to and will receive status updates of the project. Adding followers to a project will add them as members if they are not already, removing followers from a project will not affect membership. **Note:** You can use certain project endpoints to operate on [user task lists](/reference/user-task-lists) ([My Tasks](https://asana.com/guide/help/fundamentals/my-tasks)) by substituting the `{project_gid}` with the `{user_task_list_gid}`. For example, you can perform operations on the custom fields of a user task list by using the following projects endpoints: [Add a custom field to a project](/reference/addcustomfieldsettingforproject), [Remove a custom field from a project](/reference/removecustomfieldsettingforproject) and [Get a project's custom fields](/reference/getcustomfieldsettingsforproject) - name: Rates description: >- A rate object represents the rate of a resource for a parent object. - name: Reactions description: |- A reaction is an object that represents a user's emoji reaction on a status update, comment, task completion, or attachment. - name: Rules description: |- [Asana rules](https://help.asana.com/s/article/rules?language=en_US) allow you to automate common patterns and workflows in Asana. Rules comprise triggers that will automatically perform actions. For example, you can create a rule to automatically assign a task (action) when a due date is set (trigger). To support cross-application workflows, the API supports [incoming web requests](https://developers.asana.com/docs/incoming-web-requests) as a generic trigger to connect external applications to Asana through rules. This API allows users to set up workflows outside of Asana that can perform operations on data within Asana. - name: Sections description: >- A section is a subdivision of a project that groups tasks together. It can either be a header above a list of tasks in a list view or a column in a board view of a project. Sections are largely a shared idiom in Asana’s API for both list and board views of a project regardless of the project’s layout. The ‘memberships’ property when [getting a task](/reference/gettask) will return the information for the section or the column under ‘section’ in the response. - name: SSPM description: >- SSPM (SaaS Security Posture Management) is a set of APIs which allows centralized inspection and management of a customer's deployed SaaS apps via an SSPM provider. - name: Status updates description: |- A status update is an update on the progress of a particular object, and is sent out to all followers when created. These updates include both text describing the update and a `status_type` intended to represent the overall state of the project. These include: `on_track` for projects that are on track, `at_risk` for projects at risk, `off_track` for projects that are behind, and `on_hold` for projects on hold. Status updates can be created and deleted, but not modified. - name: Stories description: >- *See [our forum post](https://forum.asana.com/t/no-more-parsing-story-text-new-fields-on-stories/42924) for more info on when conditional fields are returned.* A story represents an activity associated with an object in the Asana system. Stories are generated by the system whenever users take actions such as creating or assigning tasks, or moving tasks between projects. "Comments" are also a form of user-generated story. - name: Tags description: >- A tag is a label that can be attached to any task in Asana. It exists in a single workspace or organization. Tags have some metadata associated with them, but it is possible that we will simplify them in the future so it is not encouraged to rely too heavily on it. Unlike projects, tags do not provide any ordering on the tasks they are associated with. - name: Task templates description: >- A task template is an object that allows new tasks to be created with a predefined setup, which may include followers, dependencies, custom fields, etc. It simplifies the process of running a workflow that involves a similar set of work every time. Task templates are contained within a single project. - name: Tasks description: >- The task is the basic object around which many operations in Asana are centered. In the Asana application, multiple tasks populate the middle pane according to some view parameters, and the set of selected tasks determines the more detailed information presented in the details pane. Sections are unique in that they will be included in the `memberships` field of task objects returned in the API when the task is within a section. They can also be used to manipulate the ordering of a task within a project. [Queries](/reference/gettasks) return a [compact representation of each task object](/reference/tasks). To retrieve *all* fields or *specific set* of the fields, use [field selectors](/docs/inputoutput-options) to manipulate what data is included in a response. - name: Team memberships description: >- This object determines if a user is a member of a team. - name: Teams description: >- A team is used to group related projects and people together within an organization. Each project in an organization is associated with a team. - name: Time periods description: >- A time period is an object that represents a domain-scoped date range that can be set on [goals](/reference/goals). - name: Time tracking entries description: >- Asana's native time tracking feature allows you to estimate the time needed to complete a task, as well as record the actual time spent. - name: Typeahead description: >- The typeahead search API provides search for objects from a single workspace. - name: User task lists description: >- A user task list represents the tasks assigned to a particular user. This list is the user's [My Tasks](https://asana.com/guide/help/fundamentals/my-tasks) list. - name: Users description: >- A user object represents an account in Asana that can be given access to various workspaces, projects, and tasks. Like other objects in the system, users are referred to by numerical IDs. However, the special string identifier `me` can be used anywhere a user ID is accepted, to refer to the current authenticated user (e.g, `GET /users/me`). - name: Webhooks description: >- Webhooks allow you to subscribe to notifications about events that occur on Asana resources (e.g., tasks, projects, stories, etc.). For a more detailed explanation of webhooks see the [overview of webhooks](/docs/webhooks-guide). - name: Workspace memberships description: >- This object determines if a user is a member of a workspace. - name: Workspaces description: >- A *workspace* is the highest-level organizational unit in Asana. All projects and tasks have an associated workspace. An *organization* is a special kind of workspace that represents a company. In an organization, you can group your projects into teams. You can read more about how organizations work on the Asana Guide. To tell if your workspace is an organization or not, check its `is_organization` property. Over time, we intend to migrate most workspaces into organizations and to release more organization-specific functionality. We may eventually deprecate using workspace-based APIs for organizations. Currently, and until after some reasonable grace period following any further announcements, you can still reference organizations in any `workspace` parameter. components: parameters: fields: name: opt_fields in: query description: >- Defines fields to return. Some requests return *compact* representations of objects in order to conserve resources and complete the request more efficiently. Other times requests return more information than you may need. This option allows you to list the exact set of fields that the API should be sure to return for the objects. The field names should be provided as paths, described below. The id of included objects will always be returned, regardless of the field options. example: - followers - assignee required: false schema: type: array items: type: string style: form explode: false pretty: name: opt_pretty in: query description: >- 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. required: false allowEmptyValue: true schema: type: boolean style: form example: true limit: name: limit in: query description: >- Results per page. The number of objects to return per page. The value must be between 1 and 100. example: 50 schema: type: integer minimum: 1 maximum: 100 offset: name: offset in: query description: >- 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.* example: eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9 schema: type: string archived_query_param: name: archived in: query description: >- Only return projects whose `archived` field takes on the value of this parameter. schema: type: boolean example: false access_request_gid: name: access_request_gid in: path description: >- Globally unique identifier for the access request. required: true schema: type: string example: '12345' x-env-variable: access_request attachment_path_gid: name: attachment_gid in: path description: >- Globally unique identifier for the attachment. required: true schema: type: string example: '12345' x-env-variable: attachment budget_path_gid: name: budget_gid in: path description: >- Globally unique identifier for the budget. required: true schema: type: string example: '12345' x-env-variable: budget custom_field_path_gid: name: custom_field_gid in: path description: >- Globally unique identifier for the custom field. required: true schema: type: string example: '12345' x-env-variable: custom_field custom_id: name: custom_id in: path description: >- Generated custom ID for a task. required: true schema: type: string example: EX-1 custom_type_gid: name: custom_type_gid in: path description: >- Globally unique identifier for the custom type. required: true schema: type: string example: '12345' goal_path_gid: name: goal_gid in: path description: >- Globally unique identifier for the goal. required: true schema: type: string example: '12345' x-env-variable: goal goal_relationship_path_gid: name: goal_relationship_gid in: path description: >- Globally unique identifier for the goal relationship. required: true schema: type: string example: '12345' x-env-variable: goal_relationship job_path_gid: name: job_gid in: path description: >- Globally unique identifier for the job. required: true schema: type: string example: '12345' x-env-variable: job membership_path_gid: name: membership_gid in: path description: >- Globally unique identifier for the membership. required: true schema: type: string example: '12345' x-env-variable: membership organization_export_path_gid: name: organization_export_gid in: path description: >- Globally unique identifier for the organization export. required: true schema: type: string example: '12345' x-env-variable: organization_export project_brief_path_gid: name: project_brief_gid in: path description: >- Globally unique identifier for the project brief. required: true schema: type: string example: '12345' x-env-variable: project_brief project_path_gid: name: project_gid in: path description: >- Globally unique identifier for the project. required: true schema: type: string example: '1331' x-env-variable: project project_query_param: name: project in: query description: >- Globally unique identifier for the project, which is used as a filter when retrieving all custom types. required: true schema: type: string example: '1331' x-env-variable: project project_template_path_gid: name: project_template_gid in: path description: >- Globally unique identifier for the project template. required: true schema: type: string example: '1331' x-env-variable: project_template project_membership_path_gid: name: project_membership_gid in: path required: true schema: type: string example: '1331' x-env-variable: project_membership project_status_path_gid: name: project_status_gid in: path required: true description: The project status update to get. schema: type: string example: '321654' x-env-variable: project_status rate_path_gid: name: rate_gid in: path description: >- Globally unique identifier for the rate. required: true schema: type: string example: '12345' x-env-variable: rate status_update_path_gid: name: status_update_gid in: path required: true description: The status update to get. schema: type: string example: '321654' x-env-variable: status portfolio_path_gid: name: portfolio_gid in: path description: >- Globally unique identifier for the portfolio. required: true schema: type: string example: '12345' x-env-variable: portfolio portfolio_membership_path_gid: name: portfolio_membership_gid in: path required: true schema: type: string example: '1331' x-env-variable: portfolio_membership portfolio_query_param: name: portfolio in: query description: The portfolio to filter results on. schema: type: string example: '12345' x-env-variable: portfolio rule_trigger_path_gid: name: rule_trigger_gid in: path required: true description: The ID of the incoming web request trigger. This value is a path parameter that is automatically generated for the API endpoint. schema: type: string example: '12345' x-env-variable: rule section_path_gid: name: section_gid in: path required: true description: The globally unique identifier for the section. schema: type: string example: '321654' x-env-variable: section story_path_gid: name: story_gid in: path description: Globally unique identifier for the story. required: true schema: type: string example: '35678' x-env-variable: story target_query_param: name: target in: query description: >- Globally unique identifier for the target object. required: true schema: type: string example: '1331' x-env-variable: target tag_path_gid: name: tag_gid in: path description: Globally unique identifier for the tag. required: true schema: type: string example: '11235' x-env-variable: tag task_path_gid: name: task_gid in: path required: true description: The task to operate on. schema: type: string example: '321654' x-env-variable: task task_template_path_gid: name: task_template_gid in: path description: >- Globally unique identifier for the task template. required: true schema: type: string example: '1331' x-env-variable: task_template team_path_gid: name: team_gid in: path description: Globally unique identifier for the team. required: true schema: type: string example: '159874' x-env-variable: team team_query_param: name: team in: query description: The team to filter projects on. schema: type: string example: '14916' x-env-variable: team team_membership_path_gid: name: team_membership_gid in: path required: true schema: type: string example: '724362' x-env-variable: team_membership time_period_path_gid: name: time_period_gid in: path description: >- Globally unique identifier for the time period. required: true schema: type: string example: '917392' x-env-variable: time_period time_tracking_entry_path_gid: name: time_tracking_entry_gid in: path description: >- Globally unique identifier for the time tracking entry. required: true schema: type: string example: '917392' x-env-variable: time_tracking_entry timesheet_approval_status_path_gid: name: timesheet_approval_status_gid in: path description: >- Globally unique identifier for the timesheet approval status. required: true schema: type: string example: '917392' x-env-variable: timesheet_approval_status user_query_param: name: user in: query description: >- A string identifying a user. This can either be the string "me", an email, or the gid of a user. schema: type: string x-env-variable: user example: me user_path_gid: name: user_gid in: path description: >- A string identifying a user. This can either be the string "me", an email, or the gid of a user. required: true schema: type: string x-env-variable: user example: me user_task_list_path_gid: name: user_task_list_gid in: path description: >- Globally unique identifier for the user task list. required: true schema: type: string example: '12345' x-env-variable: user_task_list webhook_path_gid: name: webhook_gid in: path description: >- Globally unique identifier for the webhook. required: true schema: type: string example: '12345' x-env-variable: webhook workspace_path_gid: name: workspace_gid in: path description: >- Globally unique identifier for the workspace or organization. required: true schema: type: string example: '12345' x-env-variable: workspace workspace_query_param: name: workspace in: query description: The workspace to filter results on. schema: type: string example: '12345' x-env-variable: workspace workspace_membership_path_gid: name: workspace_membership_gid in: path required: true schema: type: string example: '12345' x-env-variable: workspace_membership audit_log_start_at: name: start_at in: query description: Filter to events created after this time (inclusive). required: false schema: type: string format: date-time audit_log_end_at: name: end_at in: query description: Filter to events created before this time (exclusive). required: false schema: type: string format: date-time audit_log_event_type: name: event_type in: query description: >- Filter to events of this type. Refer to the [supported audit log events](/docs/audit-log-events#supported-audit-log-events) for a full list of values. required: false schema: type: string audit_log_actor_type: name: actor_type in: query description: >- Filter to events with an actor of this type. This only needs to be included if querying for actor types without an ID. If `actor_gid` is included, this should be excluded. required: false schema: type: string enum: - user - asana - asana_support - anonymous - external_administrator audit_log_actor_gid: name: actor_gid in: query description: >- Filter to events triggered by the actor with this ID. required: false schema: type: string audit_log_resource_gid: name: resource_gid in: query description: Filter to events with this resource ID. required: false schema: type: string completed_since: name: completed_since in: query required: false description: > Only return tasks that are either incomplete or that have been completed since this time. Accepts a date-time string or the keyword *now*. schema: type: string example: '2012-02-22T02:06:58.158Z' member: name: member in: query required: false description: > Member object gid can be user or team. schema: type: string example: '123' message_path_gid: name: message_gid in: path required: true description: The message to get. schema: type: string example: '321654' x-env-variable: message allocation_path_gid: name: allocation_gid in: path description: >- Globally unique identifier for the allocation. required: true schema: type: string example: '77688' x-env-variable: allocation role_path_gid: name: role_gid in: path description: >- Globally unique identifier for the role. required: true schema: type: string example: '12345' x-env-variable: role responses: GenericErrorResponse: description: >- Sadly, sometimes requests to the API are not successful. Failures can occur for a wide range of reasons. In all cases, the API should return an HTTP Status Code that indicates the nature of the failure, with a response body in JSON format containing additional information. In the event of a server error the response body will contain an error phrase. These phrases are automatically generated using the [node-asana-phrase library](https://github.com/Asana/node-asana-phrase) and can be used by Asana support to quickly look up the incident that caused the server error. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' BadRequest: description: >- This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' Unauthorized: description: >- A valid authentication token was not provided with the request, so the API could not associate a user with the request. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' PaymentRequired: description: >- The request was valid, but the queried object or object mutation specified in the request is above your current premium level. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' Forbidden: description: >- 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. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' NotFound: description: >- 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. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' TooManyRequests: description: >- 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. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' InternalServerError: description: >- 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. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' BadGateway: description: >- There is an issue between the load balancers and Asana's API. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' ServiceUnavailable: description: >- Either the upstream service is unavailable to the API, or the API has been intentionally shut off. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' GatewayTimeout: description: >- This request took too long to complete. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' schemas: AllocationBase: description: >- A generic Asana Resource, containing a globally unique identifier. type: object properties: gid: description: >- Globally unique identifier of the resource, as a string. type: string readOnly: true example: '12345' x-insert-after: false resource_type: description: The base type of this resource. type: string readOnly: true example: allocation x-insert-after: gid start_date: type: string format: date description: >- The localized day on which the allocation starts. example: '2024-02-28' end_date: type: string format: date description: >- The localized day on which the allocation ends. example: '2024-02-28' effort: type: object nullable: true description: >- The amount of time associated with the allocation, represented as a percentage or number of hours. properties: type: type: string description: >- The units used for tracking effort on an allocation, either "hours" or "percent". enum: - hours - percent value: type: number description: >- The numeric effort value on the allocation. example: 50 AllocationResponse: allOf: - $ref: '#/components/schemas/AllocationBase' - type: object properties: assignee: allOf: - $ref: '#/components/schemas/UserCompact' - type: object description: >- The user or placeholder assigned to the allocation. properties: name: type: string description: >- The name of allocation resource. example: Greg Sanchez created_by: $ref: '#/components/schemas/UserCompact' type: object description: >- The user who created the allocation. parent: $ref: '#/components/schemas/ProjectCompact' type: object description: >- The project the allocation is on. resource_subtype: description: The subtype of the allocation. type: string example: project_allocation AllocationRequest: allOf: - $ref: '#/components/schemas/AllocationBase' - type: object properties: assignee: type: string description: >- Globally unique identifier for the user or placeholder assigned to the allocation. parent: type: string description: >- Globally unique identifier for the project the allocation is on. AddCustomFieldSettingRequest: type: object required: - custom_field properties: custom_field: oneOf: - type: string description: The custom field to associate with this container. example: '14916' - $ref: '#/components/schemas/CustomFieldCreateRequest' is_important: description: >- Whether this field should be considered important to this container (for instance, to display in the list view of items in the container). type: boolean example: true insert_before: description: >- A gid of a Custom Field Setting on this container, before which the new Custom Field Setting will be added. `insert_before` and `insert_after` parameters cannot both be specified. type: string example: '1331' insert_after: description: >- A gid of a Custom Field Setting on this container, after which the new Custom Field Setting will be added. `insert_before` and `insert_after` parameters cannot both be specified. type: string example: '1331' AddFollowersRequest: type: object required: - followers properties: followers: description: >- An array of strings identifying users. These can either be the string "me", an email, or the gid of a user. type: string example: 521621,621373 AddMembersRequest: type: object required: - members properties: members: description: >- An array of strings identifying users. These can either be the string "me", an email, or the gid of a user. type: string example: 521621,621373 AsanaNamedResource: description: >- A generic Asana Resource, containing a globally unique identifier. type: object properties: gid: description: >- Globally unique identifier of the resource, as a string. type: string readOnly: true example: '12345' x-insert-after: false resource_type: description: The base type of this resource. type: string readOnly: true example: task x-insert-after: gid name: description: The name of the object. type: string example: Bug Task AsanaResource: description: >- A generic Asana Resource, containing a globally unique identifier. type: object properties: gid: description: >- Globally unique identifier of the resource, as a string. type: string readOnly: true example: '12345' x-insert-after: false resource_type: description: The base type of this resource. type: string readOnly: true example: task x-insert-after: gid AttachmentBase: $ref: '#/components/schemas/AttachmentCompact' AttachmentCompact: description: >- An *attachment* object represents any file attached to a task in Asana, whether it's an uploaded file or one associated via a third-party service such as Dropbox or Google Drive. type: object properties: gid: description: >- Globally unique identifier of the resource, as a string. type: string readOnly: true example: '12345' x-insert-after: false resource_type: description: The base type of this resource. type: string readOnly: true example: attachment x-insert-after: gid name: description: The name of the file. type: string readOnly: true example: Screenshot.png resource_subtype: description: >- The service hosting the attachment. Valid values are `asana`, `dropbox`, `gdrive`, `onedrive`, `box`, `vimeo`, and `external`. type: string example: dropbox AttachmentRequest: type: object required: - parent properties: resource_subtype: description: > The type of the attachment. Must be one of the given values. If not specified, a file attachment of type `asana` will be assumed. Note that if the value of `resource_subtype` is `external`, a `parent`, `name`, and `url` must also be provided. type: string example: external enum: - asana - external file: description: > Required for `asana` attachments. type: string format: binary parent: description: > Required identifier of the parent task, project, or project_brief, as a string. type: string url: description: > The URL of the external resource being attached. Required for attachments of type `external`. type: string name: description: > The name of the external resource being attached. Required for attachments of type `external`. type: string connect_to_app: description: |- *Optional*. Only relevant for external attachments with a parent task. A boolean indicating whether the current app should be connected with the attachment for the purposes of showing an app components widget. Requires the app to have been added to a project the parent task is in. This property can only be set if an OAuth token is used to authenticate the request. Criteria for displaying app widget: 1. An OAuth token must be used to authenticate the request 2. The app needs to have its `widget_metadata_url` configured in the developer console 3. The task the attachment is being attached to must be in a project with the app installed type: boolean AttachmentResponse: allOf: - $ref: '#/components/schemas/AttachmentBase' - type: object properties: created_at: description: The time at which this resource was created. type: string format: date-time readOnly: true example: '2012-02-22T02:06:58.147Z' download_url: description: >- The URL containing the content of the attachment. *Note:* May be null if the attachment is hosted by [Box](https://www.box.com/) and will be null if the attachment is a Video Message hosted by [Vimeo](https://vimeo.com/). If present, this URL may only be valid for two minutes from the time of retrieval. You should avoid persisting this URL somewhere and just refresh it on demand to ensure you do not keep stale URLs. type: string format: uri readOnly: true nullable: true example: https://s3.amazonaws.com/assets/1234/Screenshot.png permanent_url: description: >- A stable URL for accessing the attachment through the Asana web application. This URL redirects to the file download location (e.g., an S3 link) if the user is authenticated and authorized to view the parent object (e.g., a task). Unauthorized users will receive a `403 Forbidden` response. This link is persistent and does not expire, but requires an active session to resolve. type: string format: uri readOnly: true nullable: true example: https://app.asana.com/app/asana/-/get_asset?asset_id=1234567890 host: description: >- The service hosting the attachment. Valid values are `asana`, `dropbox`, `gdrive`, `onedrive`, `box`, `vimeo`, and `external`. type: string readOnly: true example: dropbox parent: allOf: - $ref: '#/components/schemas/TaskCompact' - type: object nullable: true description: The task this attachment is attached to. readOnly: true properties: resource_subtype: description: >- The resource subtype of the parent resource that the filter applies to. type: string example: default_task nullable: true size: description: >- The size of the attachment in bytes. Only present when the `resource_subtype` is `asana`. type: integer readOnly: true example: 12345 view_url: description: >- The URL where the attachment can be viewed, which may be friendlier to users in a browser than just directing them to a raw file. May be null if no view URL exists for the service. type: string format: uri readOnly: true nullable: true example: https://www.dropbox.com/s/123/Screenshot.png connected_to_app: description: >- Whether the attachment is connected to the app making the request for the purposes of showing an app components widget. Only present when the `resource_subtype` is `external` or `gdrive`. type: boolean readOnly: true AuditLogEvent: description: >- An object representing a single event within an Asana domain. Every audit log event is comprised of an `event_type`, `actor`, `resource`, and `context`. Some events will include additional metadata about the event under `details`. See our [currently supported list of events](/docs/audit-log-events#supported-audit-log-events) for more details. type: object properties: gid: description: >- Globally unique identifier of the `AuditLogEvent`, as a string. type: string example: '12345' x-insert-after: false created_at: description: The time the event was created. type: string format: date-time example: '2021-01-01T00:00:00.000Z' event_type: description: The type of the event. type: string example: task_deleted event_category: description: The category that this `event_type` belongs to. type: string example: deletion actor: $ref: '#/components/schemas/AuditLogEventActor' resource: $ref: '#/components/schemas/AuditLogEventResource' details: $ref: '#/components/schemas/AuditLogEventDetails' context: $ref: '#/components/schemas/AuditLogEventContext' AuditLogEventActor: description: >- The entity that triggered the event. Will typically be a user. type: object properties: actor_type: description: >- The type of actor. Can be one of `user`, `asana`, `asana_support`, `anonymous`, or `external_administrator`. type: string enum: - user - asana - asana_support - anonymous - external_administrator example: user gid: description: >- Globally unique identifier of the actor, if it is a user. type: string example: '1111' name: description: The name of the actor, if it is a user. type: string example: Greg Sanchez email: description: The email of the actor, if it is a user. type: string example: gregsanchez@example.com AuditLogEventContext: description: The context from which this event originated. type: object properties: context_type: description: >- The type of context. Can be one of `web`, `desktop`, `mobile`, `asana_support`, `asana`, `email`, or `api`. type: string enum: - web - desktop - mobile - asana_support - asana - email - api example: web api_authentication_method: description: >- The authentication method used in the context of an API request. Only present if the `context_type` is `api`. Can be one of `cookie`, `oauth`, `personal_access_token`, or `service_account`. type: string enum: - cookie - oauth - personal_access_token - service_account client_ip_address: description: The IP address of the client that initiated the event, if applicable. type: string example: 1.1.1.1 user_agent: description: The user agent of the client that initiated the event, if applicable. type: string example: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36 oauth_app_name: description: >- The name of the OAuth App that initiated the event. Only present if the `api_authentication_method` is `oauth`. type: string rule_name: description: >- The name of the automation rule that initiated the event. type: string example: When Task is added to this project on_behalf_of_user_id: description: >- The ID of the user who requested a change via support. type: integer example: 12345 AuditLogEventDetails: description: Event specific details. The schema will vary depending on the `event_type`. type: object properties: old_value: description: >- The previous value of the field that was modified in the audited event. type: string nullable: true new_value: description: >- The new value after the modification in the audited event. type: string nullable: true group: description: >- The division or organizational unit where the event occurred. Primarily used to scope role change events (e.g., `user_division_admin_role_changed`), but may appear in other contexts involving group-level changes. type: object additionalProperties: true saml_response: description: >- The response received from the IdP when a user logs in with SAML SSO. Present on `user_login_failed` and `user_login_succeeded` events. type: string nullable: true additionalProperties: true AuditLogEventResource: description: The primary object that was affected by this event. type: object properties: resource_type: description: The type of resource. type: string example: task resource_subtype: description: The subtype of resource. Most resources will not have a subtype. type: string example: milestone gid: description: Globally unique identifier of the resource. type: string example: '1111' name: description: The name of the resource. type: string nullable: true example: Example Task email: description: The email of the resource, if applicable. type: string BatchRequest: description: A request object for use in a batch request. type: object properties: actions: type: array items: $ref: '#/components/schemas/BatchRequestAction' BatchRequestAction: description: An action object for use in a batch request. type: object properties: relative_path: description: >- The path of the desired endpoint relative to the API’s base URL. Query parameters are not accepted here; put them in `data` instead. type: string example: /tasks/123 method: description: The HTTP method you wish to emulate for the action. type: string enum: - get - post - put - delete - patch - head example: get data: description: >- For `GET` requests, this should be a map of query parameters you would have normally passed in the URL. Options and pagination are not accepted here; put them in `options` instead. For `POST`, `PATCH`, and `PUT` methods, this should be the content you would have normally put in the data field of the body. type: object example: assignee: me workspace: '1337' options: description: >- Pagination (`limit` and `offset`) and output options (`fields` or `expand`) for the action. “Pretty” JSON output is not an available option on individual actions; if you want pretty output, specify that option on the parent request. type: object properties: limit: description: Pagination limit for the request. type: integer example: 50 offset: description: Pagination offset for the request. type: integer example: eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9 fields: description: The fields to retrieve in the request. type: array items: type: string example: - name - gid - notes - completed example: limit: 3 fields: - name - notes - completed required: - relative_path - method BatchResponse: description: A response object returned from a batch request. type: object properties: status_code: description: The HTTP status code that the invoked endpoint returned. type: integer example: 200 headers: description: >- A map of HTTP headers specific to this result. This is primarily used for returning a `Location` header to accompany a `201 Created` result. The parent HTTP response will contain all common headers. type: object example: location: /tasks/1234 body: description: The JSON body that the invoked endpoint returned. type: object example: data: gid: '1967' completed: false name: Hello, world! notes: How are you today? BudgetCompact: description: >- A *budget* object represents a budget for a given parent. type: object properties: gid: description: >- Globally unique identifier of the resource, as a string. type: string readOnly: true example: '12345' x-insert-after: false resource_type: description: The base type of this resource. type: string readOnly: true example: budget x-insert-after: gid budget_type: type: string description: The type of the budget, in "cost" or "time". The value of this property will dictate how the corresponding values for actual, estimate, and total are interpreted. enum: - cost - time BudgetResponse: allOf: - $ref: '#/components/schemas/BudgetCompact' - type: object properties: estimate: allOf: - $ref: '#/components/schemas/BudgetEstimateResponse' actual: allOf: - $ref: '#/components/schemas/BudgetActualResponse' total: allOf: - $ref: '#/components/schemas/BudgetTotalResponse' parent: allOf: - $ref: '#/components/schemas/ProjectCompact' - type: object BudgetRequest: allOf: - $ref: '#/components/schemas/BudgetCompact' - type: object properties: estimate: allOf: - $ref: '#/components/schemas/BudgetEstimateRequest' actual: allOf: - $ref: '#/components/schemas/BudgetActualRequest' total: allOf: - $ref: '#/components/schemas/BudgetTotalRequest' parent: description: >- Globally unique ID of the parent object: project. Can only be set on create, immutable thereafter. type: string example: '181636' BudgetEstimateRequest: description: >- Defines how the estimate portion of a budget is configured. This object controls whether the estimate is enabled, what data source it uses, and which tasks (by billable status) are included in calculating the estimate value. When disabled (enabled: false and source: none), the estimate is hidden and the API response will return `value: null` and `units: null` for this field. type: object properties: billable_status_filter: description: >- Billable status filter applied to the estimate when `source` is `tasks`. Ignored when `source` is `capacity_plans` or `none`. When not provided, defaults to `billable`. type: string enum: - billable - non_billable - any source: description: >- The data source for the estimate. `tasks`: use task-level estimated time attributed to the parent. `capacity_plans`: use capacity plan estimates attributed to the parent. `none`: disables the estimate; only valid when `enabled` is `false`. When `enabled` is `true`, `source` must not be `none`. type: string example: tasks enum: - none - tasks - capacity_plans enabled: description: >- Controls whether the estimate is displayed in the budget. This flag primarily affects UI presentation and the response payload. When `false` (and `source` is `none`), the estimate is hidden and the API response will return `value: null` and `units: null` for this field. type: boolean example: true BudgetEstimateResponse: allOf: - $ref: '#/components/schemas/BudgetEstimateRequest' - type: object description: >- Represents the computed estimate portion of a budget. This object includes the calculated estimate value and its corresponding units. The estimate reflects aggregated data from the configured source, and when source is tasks, the specified billable_status_filter determines which tasks contribute. When disabled (enabled: false and source: none), both value and units will be null. properties: units: description: >- The units of the estimate value. When `budget_type` is `time`, units are `"minutes"`. When `budget_type` is `cost`, units are the ISO 4217 currency code configured at the domain level. When `source` is `none` and `enabled` is `false`, this field will be `null`. type: string example: USD readOnly: true value: description: >- The aggregated estimate value for the budget. This value is computed based on the selected `source` and, when `source` is `tasks`, the specified `billable_status_filter`. When `budget_type` is `time`, represents the aggregated estimated minutes on the parent. When `budget_type` is `cost`, represents the aggregated estimated cost on the parent (estimated time x resource rate). When `source` is `none` and `enabled` is `false`, this field will be `null`. type: number example: 100 readOnly: true BudgetActualRequest: type: object description: >- Defines the configuration of the actual portion of a budget. The actual value represents aggregated time tracking data attributed to the budget’s parent. This object controls which time entries are included based on their billable status. When no entries match the selected filter, the value will be 0. properties: billable_status_filter: type: string description: >- Billable status filter applied to time tracking entries contributing to the actual value. Determines which entries are included in aggregation. When not provided, defaults to `billable`. enum: - billable - non_billable - any example: billable BudgetActualResponse: allOf: - $ref: '#/components/schemas/BudgetActualRequest' - type: object description: >- Represents the computed actual portion of a budget. The actual value is derived from time tracking entries attributed to the budget’s parent, filtered according to the specified billable_status_filter. When budget_type is time, it represents minutes; when budget_type is cost, it represents total cost (actual time × resource rate). When no applicable entries exist, value will be 0. properties: value: description: >- The aggregated actual value for the budget. * When `budget_type` is `time`, represents the total actual minutes from time tracking entries. * When `budget_type` is `cost`, represents the total actual cost, computed as (actual time × resource rate). type: number example: 100 readOnly: true units: description: >- The units of the actual value. * When `budget_type` is `time`, units are `"minutes"`. * When `budget_type` is `cost`, units are the ISO 4217 currency code configured at the domain level. type: string example: USD readOnly: true BudgetTotalRequest: type: object description: >- Defines how the total portion of a budget is configured. The total represents a user-defined target value, not an aggregated one. This object specifies whether the total is displayed and the current value for the selected budget_type. properties: enabled: description: >- Indicates whether the total value is active and should be displayed in the budget. This flag primarily affects UI presentation and the response payload. type: boolean example: true value: description: >- The user-set value for the total budget. When `budget_type` is `time`, represents minutes. When `budget_type` is `cost`, represents the monetary amount in the domain's currency. This value is stored separately for each `budget_type`, so switching between types preserves each value. type: number example: 100 BudgetTotalResponse: allOf: - $ref: '#/components/schemas/BudgetTotalRequest' - type: object description: >- Represents the configured total portion of a budget. The total value is user-defined and may differ for each budget_type. When budget_type is time, it is expressed in minutes; when budget_type is cost, it is expressed in the domain’s ISO 4217 currency code. When enabled is false, both value and units will be null. properties: units: description: >- The units of the total value. When `budget_type` is `time`, units are `"minutes"`. When `budget_type` is `cost`, units are the ISO 4217 currency code configured at the domain level. When `enabled` is `false`, this field will be `null`. type: string example: USD readOnly: true CustomFieldBase: allOf: - $ref: '#/components/schemas/CustomFieldCompact' - type: object properties: description: description: >- [Opt In](/docs/inputoutput-options). The description of the custom field. type: string example: Development team priority enum_options: description: >- *Conditional*. Only relevant for custom fields of type `enum` or `multi_enum`. This array specifies the possible values which an `enum` custom field can adopt. To modify the enum options, refer to [working with enum options](/reference/createenumoptionforcustomfield). type: array items: $ref: '#/components/schemas/EnumOption' precision: description: >- Only relevant for custom fields of type `Number`. This field dictates the number of places after the decimal to round to, i.e. 0 is integer values, 1 rounds to the nearest tenth, and so on. Must be between 0 and 6, inclusive. For percentage format, this may be unintuitive, as a value of 0.25 has a precision of 0, while a value of 0.251 has a precision of 1. This is due to 0.25 being displayed as 25%. The identifier format will always have a precision of 0. type: integer example: 2 format: description: >- The format of this custom field. type: string enum: - currency - identifier - percentage - custom - duration - none example: custom currency_code: description: >- ISO 4217 currency code to format this custom field. This will be null if the `format` is not `currency`. type: string nullable: true example: EUR custom_label: description: >- This is the string that appears next to the custom field value. This will be null if the `format` is not `custom`. type: string nullable: true example: gold pieces custom_label_position: description: >- Only relevant for custom fields with `custom` format. This depicts where to place the custom label. This will be null if the `format` is not `custom`. type: string nullable: true enum: - prefix - suffix - null example: suffix is_global_to_workspace: description: >- This flag describes whether this custom field is available to every container in the workspace. Before project-specific custom fields, this field was always true. type: boolean example: true readOnly: true has_notifications_enabled: description: >- *Conditional*. This flag describes whether a follower of a task with this field should receive inbox notifications from changes to this field. type: boolean example: true asana_created_field: description: >- *Conditional*. A unique identifier to associate this field with the template source of truth. type: string readOnly: true nullable: true enum: - a_v_requirements - account_name - actionable - align_shipping_link - align_status - allotted_time - appointment - approval_stage - approved - article_series - board_committee - browser - campaign_audience - campaign_project_status - campaign_regions - channel_primary - client_topic_type - complete_by - contact - contact_email_address - content_channels - content_channels_needed - content_stage - content_type - contract - contract_status - cost - creation_stage - creative_channel - creative_needed - creative_needs - data_sensitivity - deal_size - delivery_appt - delivery_appt_date - department - department_responsible - design_request_needed - design_request_type - discussion_category - do_this_task - editorial_content_status - editorial_content_tag - editorial_content_type - effort - effort_level - est_completion_date - estimated_time - estimated_value - expected_cost - external_steps_needed - favorite_idea - feedback_type - financial - funding_amount - grant_application_process - hiring_candidate_status - idea_status - ids_link - ids_patient_link - implementation_stage - insurance - interview_area - interview_question_score - itero_scan_link - job_s_applied_to - lab - launch_status - lead_status - localization_language - localization_market_team - localization_status - meeting_minutes - meeting_needed - minutes - mrr - must_localize - name_of_foundation - need_to_follow_up - next_appointment - next_steps_sales - num_people - number_of_user_reports - office_location - onboarding_activity - owner - participants_needed - patient_date_of_birth - patient_email - patient_phone - patient_status - phone_number - planning_category - point_of_contact - position - post_format - prescription - priority - priority_level - product - product_stage - progress - project_size - project_status - proposed_budget - publish_status - reason_for_scan - referral - request_type - research_status - responsible_department - responsible_team - risk_assessment_status - room_name - sales_counterpart - sentiment - shipping_link - social_channels - stage - status - status_design - status_of_initiative - system_setup - task_progress - team - team_marketing - team_responsible - time_it_takes_to_complete_tasks - timeframe - treatment_type - type_work_requests_it - use_agency - user_name - vendor_category - vendor_type - word_count - null example: priority CustomFieldCompact: description: >- Custom Fields store the metadata that is used in order to add user-specified information to tasks in Asana. Be sure to reference the [custom fields](/reference/custom-fields) developer documentation for more information about how custom fields relate to various resources in Asana. Users in Asana can [lock custom fields](https://asana.com/guide/help/premium/custom-fields#gl-lock-fields), which will make them read-only when accessed by other users. Attempting to edit a locked custom field will return HTTP error code `403 Forbidden`. type: object properties: gid: description: >- Globally unique identifier of the resource, as a string. type: string readOnly: true example: '12345' x-insert-after: false resource_type: description: The base type of this resource. type: string readOnly: true example: custom_field x-insert-after: gid name: description: The name of the custom field. type: string example: Status type: description: > *Deprecated: new integrations should prefer the resource_subtype field.* The type of the custom field. Must be one of the given values. type: string readOnly: true enum: - text - enum - multi_enum - number - date - people enum_options: description: >- *Conditional*. Only relevant for custom fields of type `enum` or `multi_enum`. This array specifies the possible values which an `enum` custom field can adopt. To modify the enum options, refer to [working with enum options](/reference/createenumoptionforcustomfield). type: array items: $ref: '#/components/schemas/EnumOption' enabled: description: >- *Conditional*. This field applies only to [custom field values](/docs/custom-fields-guide#/accessing-custom-field-values-on-tasks-or-projects) and is not available for [custom field definitions](/docs/custom-fields-guide#/accessing-custom-field-definitions). Determines if the custom field is enabled or not. For more details, see the [Custom Fields documentation](/docs/custom-fields-guide#/enabled-and-disabled-values). type: boolean readOnly: true example: true representation_type: description: >- This field tells the type of the custom field. type: string example: number readOnly: true enum: - text - enum - multi_enum - number - date - people - formula - custom_id id_prefix: description: >- This field is the unique custom ID string for the custom field. type: string nullable: true example: ID input_restrictions: description: >- *Conditional*. Only relevant for custom fields of type `reference`. This array of strings reflects the allowed types of objects that can be written to a `reference` custom field value. type: array items: type: string example: task is_formula_field: description: >- *Conditional*. This flag describes whether a custom field is a formula custom field. type: boolean example: false date_value: description: >- *Conditional*. Only relevant for custom fields of type `date`. This object reflects the chosen date (and optionally, time) value of a `date` custom field. If no date is selected, the value of `date_value` will be `null`. type: object nullable: true properties: date: type: string description: >- A string representing the date in YYYY-MM-DD format. example: '2024-08-23' date_time: type: string description: >- A string representing the date in ISO 8601 format. If no time value is selected, the value of `date-time` will be `null`. example: '2024-08-23T22:00:00.000Z' enum_value: allOf: - $ref: '#/components/schemas/EnumOption' - type: object nullable: true description: >- *Conditional*. Only relevant for custom fields of type `enum`. This object is the chosen value of an `enum` custom field. multi_enum_values: description: >- *Conditional*. Only relevant for custom fields of type `multi_enum`. This object is the chosen values of a `multi_enum` custom field. type: array items: $ref: '#/components/schemas/EnumOption' number_value: description: >- *Conditional*. This number is the value of a `number` custom field. type: number nullable: true example: 5.2 text_value: description: >- *Conditional*. This string is the value of a `text` custom field. type: string nullable: true example: Some Value display_value: description: >- A string representation for the value of the custom field. Integrations that don't require the underlying type should use this field to read values. Using this field will future-proof an app against new custom field types. type: string readOnly: true example: blue nullable: true CustomFieldRequest: allOf: - $ref: '#/components/schemas/CustomFieldBase' - type: object required: - workspace properties: workspace: type: string description: >- *Create-Only* The workspace to create a custom field in. example: '1331' owned_by_app: type: boolean description: >- *Allow-listed*. Instructs the API that this Custom Field is app-owned. This parameter is allow-listed to specific apps at this point in time. For apps that are not allow-listed, providing this parameter will result in a `403 Forbidden`. people_value: description: >- *Conditional*. Only relevant for custom fields of type `people`. This array of user GIDs reflects the users to be written to a `people` custom field. Note that *write* operations will replace existing users (if any) in the custom field with the users specified in this array. type: array items: type: string description: >- The GID of a user. example: - '12345' reference_value: description: >- *Conditional*. Only relevant for custom fields of type `reference`. This array of GIDs reflects the objects to be written to a `reference` custom field. Note that *write* operations will replace existing objects (if any) in the custom field with the objects specified in this array. type: array items: type: string description: >- The GID of an object. example: - '12345' CustomFieldCreateRequest: allOf: - $ref: '#/components/schemas/CustomFieldRequest' - type: object required: - resource_subtype properties: resource_subtype: description: >- The type of the custom field. Must be one of the given values. type: string example: text enum: - text - enum - multi_enum - number - date - people - reference CustomFieldResponse: allOf: - $ref: '#/components/schemas/CustomFieldBase' - type: object properties: representation_type: description: >- This field tells the type of the custom field. type: string example: number readOnly: true enum: - text - enum - multi_enum - number - date - people - formula - custom_id - reference id_prefix: description: >- This field is the unique custom ID string for the custom field. type: string nullable: true example: ID input_restrictions: description: >- *Conditional*. Only relevant for custom fields of type `reference`. This array of strings reflects the allowed types of objects that can be written to a `reference` custom field value. type: array items: type: string example: task is_formula_field: description: >- *Conditional*. This flag describes whether a custom field is a formula custom field. type: boolean example: false is_value_read_only: description: >- *Conditional*. This flag describes whether a custom field is read only. type: boolean example: false created_by: allOf: - $ref: '#/components/schemas/UserCompact' - nullable: true people_value: description: >- *Conditional*. Only relevant for custom fields of type `people`. This array of [compact user](/reference/users) objects reflects the values of a `people` custom field. type: array items: $ref: '#/components/schemas/UserCompact' reference_value: description: >- *Conditional*. Only relevant for custom fields of type `reference`. This array of objects reflects the values of a `reference` custom field. type: array items: $ref: '#/components/schemas/AsanaNamedResource' privacy_setting: description: >- The privacy setting of the custom field. *Note: Administrators in your organization may restrict the values of `privacy_setting`.* type: string enum: - public_with_guests - public - private example: public_with_guests default_access_level: description: >- The default access level when inviting new members to the custom field. This isn't applied when the `privacy_setting` is `private`, or the user is a guest. For local fields in a project or portfolio, the user must additionally have permission to modify the container itself. type: string enum: - admin - editor - user example: user resource_subtype: description: > The type of the custom field. Must be one of the given values. type: string readOnly: true example: text enum: - text - enum - multi_enum - number - date - people - reference CustomFieldSettingBase: $ref: '#/components/schemas/CustomFieldSettingCompact' CustomFieldSettingCompact: description: >- Custom Fields Settings objects represent the many-to-many join of the Custom Field and Project as well as stores information that is relevant to that particular pairing. type: object properties: gid: description: >- Globally unique identifier of the resource, as a string. type: string readOnly: true example: '12345' x-insert-after: false resource_type: description: The base type of this resource. type: string readOnly: true example: custom_field_setting x-insert-after: gid CustomFieldSettingResponse: allOf: - $ref: '#/components/schemas/CustomFieldSettingBase' - type: object properties: project: allOf: - $ref: '#/components/schemas/ProjectCompact' - type: object description: >- *Deprecated: new integrations should prefer the `parent` field.* The id of the project that this custom field settings refers to. readOnly: true is_important: description: >- `is_important` is used in the Asana web application to determine if this custom field is displayed in the list/grid view of a project or portfolio. type: boolean readOnly: true example: false parent: allOf: - $ref: '#/components/schemas/ProjectCompact' - type: object description: >- The parent to which the custom field is applied. This can be a project or portfolio and indicates that the tasks or projects that the parent contains may be given custom field values for this custom field. readOnly: true custom_field: allOf: - $ref: '#/components/schemas/CustomFieldResponse' - type: object description: >- The custom field that is applied to the `parent`. readOnly: true CustomTypeBase: $ref: '#/components/schemas/CustomTypeCompact' CustomTypeCompact: description: >- Custom Types extend the types of Asana Objects, currently only Custom Tasks are supported. type: object properties: gid: description: >- Globally unique identifier of the resource, as a string. type: string readOnly: true example: '12345' x-insert-after: false resource_type: description: The base type of this resource. type: string readOnly: true example: custom_type x-insert-after: gid name: type: string description: The name of the custom type. example: Bug ticket CustomTypeResponse: allOf: - $ref: '#/components/schemas/CustomTypeBase' - type: object properties: status_options: type: array nullable: true description: >- The available options for the custom type. items: $ref: '#/components/schemas/CustomTypeStatusOptionResponse' CustomTypeStatusOptionBase: $ref: '#/components/schemas/CustomTypeStatusOptionCompact' CustomTypeStatusOptionCompact: description: >- A generic Asana Resource, containing a globally unique identifier. type: object properties: gid: description: >- Globally unique identifier of the resource, as a string. type: string readOnly: true example: '12345' x-insert-after: false resource_type: description: The base type of this resource. type: string readOnly: true example: custom_type_status_option x-insert-after: gid name: type: string description: The name of the custom type status option. example: Solution pending CustomTypeStatusOptionResponse: allOf: - $ref: '#/components/schemas/CustomTypeStatusOptionBase' - type: object properties: completion_state: description: >- The completion state the custom type status option corresponds to, all custom types must have one ‘Incomplete’ and ‘Complete’ status option. type: string example: Incomplete nullable: true enabled: description: >- Whether or not the custom type status option is a selectable value for the custom type. type: boolean example: true nullable: true color: description: >- The color associated with the custom type status option. Defaults to ‘none’. type: string example: blue nullable: true EmptyResponse: type: object description: >- An empty object. Some endpoints do not return an object on success. The success is conveyed through a 2-- status code and returning an empty object. EnumOption: description: >- 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. type: object properties: gid: description: >- Globally unique identifier of the resource, as a string. type: string readOnly: true example: '12345' x-insert-after: false resource_type: description: The base type of this resource. type: string readOnly: true example: enum_option x-insert-after: gid name: description: The name of the enum option. type: string example: Low enabled: description: >- Whether or not the enum option is a selectable value for the custom field. type: boolean example: true color: description: >- The color of the enum option. Defaults to `none`. type: string example: blue EnumOptionBase: $ref: '#/components/schemas/EnumOption' EnumOptionInsertRequest: type: object required: - enum_option properties: enum_option: type: string description: The gid of the enum option to relocate. example: '97285' before_enum_option: type: string description: >- An existing enum option within this custom field before which the new enum option should be inserted. Cannot be provided together with after_enum_option. example: '12345' after_enum_option: type: string description: >- An existing enum option within this custom field after which the new enum option should be inserted. Cannot be provided together with before_enum_option. example: '12345' EnumOptionRequest: allOf: - $ref: '#/components/schemas/EnumOptionBase' - type: object properties: insert_before: type: string description: >- An existing enum option within this custom field before which the new enum option should be inserted. Cannot be provided together with after_enum_option. example: '12345' insert_after: type: string description: >- An existing enum option within this custom field after which the new enum option should be inserted. Cannot be provided together with before_enum_option. example: '12345' Error: type: object properties: message: type: string readOnly: true description: >- Message providing more detail about the error that occurred, if available. example: 'project: Missing input' help: type: string readOnly: true description: >- Additional information directing developers to resources on how to address and fix the problem, if available. example: >- For more information on API status codes and how to handle them, read the docs on errors: https://asana.github.io/developer-docs/#errors' phrase: type: string readOnly: true description: >- *500 errors only*. A unique error phrase which can be used when contacting developer support to help identify the exact occurrence of the problem in Asana's logs. example: 6 sad squid snuggle softly ErrorResponse: description: |- Sadly, sometimes requests to the API are not successful. Failures can occur for a wide range of reasons. In all cases, the API should return an HTTP Status Code that indicates the nature of the failure, with a response body in JSON format containing additional information. In the event of a server error the response body will contain an error phrase. These phrases are automatically generated using the [node-asana-phrase library](https://github.com/Asana/node-asana-phrase) and can be used by Asana support to quickly look up the incident that caused the server error. type: object properties: errors: type: array items: $ref: '#/components/schemas/Error' EventResponse: description: |- An *event* is an object representing a change to a resource that was observed by an event subscription or delivered asynchronously to the target location of an active webhook. The event may be triggered by a different `user` than the subscriber. For example, if user A subscribes to a task and user B modified it, the event's user will be user B. Note: Some events are generated by the system, and will have `null` as the user. API consumers should make sure to handle this case. The `resource` that triggered the event may be different from the one that the events were requested for or the webhook is subscribed to. For example, a subscription to a project will contain events for tasks contained within the project. **Note:** pay close attention to the relationship between the fields `Event.action` and `Event.change.action`. `Event.action` represents the action taken on the resource itself, and `Event.change.action` represents how the information within the resource's fields have been modified. For instance, consider these scenarios: * When at task is added to a project, `Event.action` will be `added`, `Event.parent` will be an object with the `id` and `type` of the project, and there will be no `change` field. * When an assignee is set on the task, `Event.parent` will be `null`, `Event.action` will be `changed`, `Event.change.action` will be `changed`, and `new_value` will be an object with the user's `id` and `type`. * When a collaborator is added to the task, `Event.parent` will be `null`, `Event.action` will be `changed`, `Event.change.action` will be `added`, and `added_value` will be an object with the user's `id` and `type`. type: object properties: user: allOf: - $ref: '#/components/schemas/UserCompact' - description: >- The user who triggered the event. resource: allOf: - $ref: '#/components/schemas/AsanaNamedResource' - description: >- The resource which has triggered the event by being modified in some way. type: description: >- *Deprecated: Refer to the resource_type of the resource.* The type of the resource that generated the event. type: string readOnly: true example: task action: description: >- The type of action taken on the **resource** that triggered the event. This can be one of `changed`, `added`, `removed`, `deleted`, or `undeleted` depending on the nature of the event. type: string readOnly: true example: changed parent: allOf: - $ref: '#/components/schemas/AsanaNamedResource' - description: >- For added/removed events, the parent object that resource was added to or removed from. The parent will be `null` for other event types. created_at: description: The timestamp when the event occurred. type: string format: date-time readOnly: true example: '2012-02-22T02:06:58.147Z' change: type: object description: >- Information about the type of change that has occurred. This field is only present when the value of the property `action`, describing the action taken on the **resource**, is `changed`. readOnly: true properties: field: description: The name of the field that has changed in the resource. type: string readOnly: true example: assignee action: description: >- The type of action taken on the **field** which has been changed. This can be one of `changed`, `added`, or `removed` depending on the nature of the change. type: string readOnly: true example: changed new_value: description: >- *Conditional.* This property is only present when the value of the event's `change.action` is `changed` _and_ the `new_value` is an Asana resource. This will be only the `gid` and `resource_type` of the resource when the events come from webhooks; this will be the compact representation (and can have fields expanded with [opt_fields](/docs/inputoutput-options)) when using the [get events](/reference/getevents) endpoint. example: gid: '12345' resource_type: user added_value: description: >- *Conditional.* This property is only present when the value of the event's `change.action` is `added` _and_ the `added_value` is an Asana resource. This will be only the `gid` and `resource_type` of the resource when the events come from webhooks; this will be the compact representation (and can have fields expanded with [opt_fields](/docs/inputoutput-options)) when using the [get events](/reference/getevents) endpoint. example: gid: '12345' resource_type: user removed_value: description: >- *Conditional.* This property is only present when the value of the event's `change.action` is `removed` _and_ the `removed_value` is an Asana resource. This will be only the `gid` and `resource_type` of the resource when the events come from webhooks; this will be the compact representation (and can have fields expanded with [opt_fields](/docs/inputoutput-options)) when using the [get events](/reference/getevents) endpoint. example: gid: '12345' resource_type: user GoalAddSubgoalRequest: type: object required: - subgoal properties: subgoal: description: >- The goal gid to add as subgoal to a parent goal type: string example: '1331' insert_before: description: >- An id of a subgoal of this parent goal. The new subgoal will be added before the one specified here. `insert_before` and `insert_after` parameters cannot both be specified. type: string example: '1331' insert_after: description: >- An id of a subgoal of this parent goal. The new subgoal will be added after the one specified here. `insert_before` and `insert_after` parameters cannot both be specified. type: string example: '1331' GoalAddSupportingWorkRequest: type: object required: - supporting_work properties: supporting_work: description: >- The project/task/portfolio gid to add as supporting work for a goal type: string example: '1331' GoalBase: description: >- A generic Asana Resource, containing a globally unique identifier. type: object properties: gid: description: >- Globally unique identifier of the resource, as a string. type: string readOnly: true example: '12345' x-insert-after: false resource_type: description: The base type of this resource. type: string readOnly: true example: goal x-insert-after: gid name: type: string description: The name of the goal. example: Grow web traffic by 30% html_notes: type: string description: >- The notes of the goal with formatting as HTML. example: Start building brand awareness. notes: type: string description: >- Free-form textual information associated with the goal (i.e. its description). example: Start building brand awareness. due_on: type: string description: >- The localized day on which this goal is due. This takes a date with format `YYYY-MM-DD`. example: '2019-09-15' nullable: true start_on: type: string description: >- The day on which work for this goal begins, or null if the goal has no start date. This takes a date with `YYYY-MM-DD` format, and cannot be set unless there is an accompanying due date. example: '2019-09-14' nullable: true is_workspace_level: type: boolean description: >- *Conditional*. This property is only present when the `workspace` provided is an organization. Whether the goal belongs to the `workspace` (and is listed as part of the workspace’s goals) or not. If it isn’t a workspace-level goal, it is a team-level goal, and is associated with the goal’s team. example: true liked: type: boolean description: >- True if the goal is liked by the authorized user, false if not. example: false GoalCompact: description: >- A generic Asana Resource, containing a globally unique identifier. type: object properties: gid: description: >- Globally unique identifier of the resource, as a string. type: string readOnly: true example: '12345' x-insert-after: false resource_type: description: The base type of this resource. type: string readOnly: true example: goal x-insert-after: gid name: type: string description: The name of the goal. example: Grow web traffic by 30% owner: allOf: - $ref: '#/components/schemas/UserCompact' - type: object nullable: true GoalMetricBase: description: >- A generic Asana Resource, containing a globally unique identifier. type: object properties: gid: description: >- Globally unique identifier of the resource, as a string. type: string readOnly: true example: '12345' x-insert-after: false resource_type: description: The base type of this resource. type: string readOnly: true example: task x-insert-after: gid resource_subtype: description: >- The subtype of this resource. Different subtypes retain many of the same fields and behavior, but may render differently in Asana or represent resources with different semantic meaning. type: string readOnly: true example: number enum: - number precision: description: >- *Conditional*. Only relevant for goal metrics of type `Number`. This field dictates the number of places after the decimal to round to, i.e. 0 is integer values, 1 rounds to the nearest tenth, and so on. Must be between 0 and 6, inclusive. For percentage format, this may be unintuitive, as a value of 0.25 has a precision of 0, while a value of 0.251 has a precision of 1. This is due to 0.25 being displayed as 25%. type: integer example: 2 unit: description: >- A supported unit of measure for the goal metric, or none. type: string enum: - none - currency - percentage currency_code: description: >- ISO 4217 currency code to format this custom field. This will be null if the `unit` is not `currency`. type: string nullable: true example: EUR initial_number_value: description: >- This number is the start value of a goal metric of type number. type: number example: 5.2 target_number_value: description: >- This number is the end value of a goal metric of type number. This number cannot equal `initial_number_value`. type: number example: 10.2 current_number_value: description: >- This number is the current value of a goal metric of type number. type: number example: 8.12 current_display_value: description: >- This string is the current value of a goal metric of type string. type: string readOnly: true example: '8.12' progress_source: description: >- This field defines how the progress value of a goal metric is being calculated. A goal's progress can be provided manually by the user, calculated automatically from contributing subgoals, projects, or tasks, or managed by an integration with an external data source, such as Salesforce. type: string enum: - manual - subgoal_progress - project_task_completion - project_milestone_completion - task_completion - external example: manual is_custom_weight: description: >- *Conditional*. Only relevant if `metric.progress_source` is one of `subgoal_progress`, `project_task_completion`, `project_milestone_completion`, or `task_completion`. If true, we use the supporting object's custom weight to calculate the goal's progress. If false, we treat all supporting objects as equally weighted type: boolean example: false GoalRemoveSupportingRelationshipRequest: type: object required: - supporting_resource properties: supporting_resource: description: >- The gid of the supporting resource to remove from the parent goal. Must be the gid of a goal, project, task, or portfolio. type: string example: '12345' GoalAddSupportingRelationshipRequest: type: object required: - supporting_resource properties: supporting_resource: description: >- The gid of the supporting resource to add to the parent goal. Must be the gid of a goal, project, task, or portfolio. type: string example: '12345' insert_before: description: >- An id of a subgoal of this parent goal. The new subgoal will be added before the one specified here. `insert_before` and `insert_after` parameters cannot both be specified. Currently only supported when adding a subgoal. type: string example: '1331' insert_after: description: >- An id of a subgoal of this parent goal. The new subgoal will be added after the one specified here. `insert_before` and `insert_after` parameters cannot both be specified. Currently only supported when adding a subgoal. type: string example: '1331' contribution_weight: description: >- Defines how much the supporting goal’s progress contributes to the parent goal’s overall progress. When used with automatically calculated [Goal Metrics](/reference/creategoalmetric) (such as `progress_source = subgoal_progress`), this value must be greater than 0 for the subgoal to count toward the parent goal’s progress. Accepts a number between 0 and 1 (inclusive). Defaults to `0`. type: number example: 0 GoalMetricCurrentValueRequest: description: >- A generic Asana Resource, containing a globally unique identifier. type: object properties: gid: description: >- Globally unique identifier of the resource, as a string. type: string readOnly: true example: '12345' x-insert-after: false resource_type: description: The base type of this resource. type: string readOnly: true example: task x-insert-after: gid current_number_value: description: >- *Conditional*. This number is the current value of a goal metric of type number. type: number example: 8.12 GoalMetricRequest: $ref: '#/components/schemas/GoalMetricBase' GoalRemoveSubgoalRequest: type: object required: - subgoal properties: subgoal: description: >- The goal gid to remove as subgoal from the parent goal type: string example: '1331' GoalRequestBase: allOf: - $ref: '#/components/schemas/GoalBase' - type: object properties: team: type: string description: >- *Conditional*. This property is only present when the `workspace` provided is an organization. example: '12345' nullable: true workspace: type: string description: >- The `gid` of a workspace. example: '12345' time_period: type: string description: >- The `gid` of a time period. example: '12345' nullable: true owner: type: string description: >- The `gid` of a user. example: '12345' nullable: true GoalRequest: allOf: - $ref: '#/components/schemas/GoalRequestBase' - type: object properties: followers: type: array items: type: string description: >- The `gid` of a user. example: - '12345' GoalUpdateRequest: allOf: - $ref: '#/components/schemas/GoalRequestBase' - type: object properties: status: type: string description: >- The current status of this goal. When the goal is open, its status can be `green`, `yellow`, and `red` to reflect "On Track", "At Risk", and "Off Track", respectively. When the goal is closed, the value can be `missed`, `achieved`, `partial`, or `dropped`. *Note* you can only write to this property if `metric` is set. example: green nullable: true custom_fields: description: >- An object where each key is the GID of a custom field and its corresponding value is either an enum GID, string, number, or object (depending on the custom field type). See the [custom fields guide](/docs/custom-fields-guide) for details on creating and updating custom field values. type: object additionalProperties: type: string description: >- "{custom_field_gid}" => Value (can be text, enum GID, a number, etc.). For date, use format "YYYY-MM-DD" (e.g., 2019-09-15). For date-time, use ISO 8601 date string in UTC (e.g., 2019-09-15T02:06:58.147Z). example: '5678904321': On Hold '4578152156': Not Started GoalResponse: allOf: - $ref: '#/components/schemas/GoalBase' - type: object properties: likes: description: >- Array of likes for users who have liked this goal. type: array items: $ref: '#/components/schemas/Like' readOnly: true num_likes: description: >- The number of users who have liked this goal. type: integer readOnly: true example: 5 team: allOf: - $ref: '#/components/schemas/TeamCompact' - type: object nullable: true description: >- *Conditional*. This property is only present when the `workspace` provided is an organization. workspace: allOf: - $ref: '#/components/schemas/WorkspaceCompact' - type: object followers: type: array items: $ref: '#/components/schemas/UserCompact' description: >- Array of users who are members of this goal. time_period: allOf: - $ref: '#/components/schemas/TimePeriodCompact' - type: object nullable: true metric: allOf: - $ref: '#/components/schemas/GoalMetricBase' - type: object nullable: true properties: can_manage: description: >- *Conditional*. Only relevant for `progress_source` of type `external`. This boolean indicates whether the requester has the ability to update the current value of this metric. This returns `true` if the external metric was created by the requester, `false` otherwise. type: boolean readOnly: true example: true owner: allOf: - $ref: '#/components/schemas/UserCompact' - type: object nullable: true current_status_update: allOf: - $ref: '#/components/schemas/StatusUpdateCompact' - description: The latest `status_update` posted to this goal. nullable: true status: type: string readOnly: true description: >- The current status of this goal. When the goal is open, its status can be `green`, `yellow`, and `red` to reflect "On Track", "At Risk", and "Off Track", respectively. When the goal is closed, the value can be `missed`, `achieved`, `partial`, or `dropped`. *Note* you can only write to this property if `metric` is set. example: green nullable: true custom_fields: description: >- Array of custom field values applied directly to the goal itself. These represent the values set on the goal, not the fields available for items in the goal. type: array items: $ref: '#/components/schemas/CustomFieldCompact' custom_field_settings: description: >- Array of custom field definitions that are enabled for the goal. These represent which custom fields are available to be used on items within the goal, but do not include any values. type: array items: $ref: '#/components/schemas/CustomFieldSettingResponse' GoalRelationshipBase: allOf: - $ref: '#/components/schemas/GoalRelationshipCompact' - type: object properties: supported_goal: allOf: - $ref: '#/components/schemas/GoalCompact' - type: object readOnly: true description: >- The goal that the supporting resource supports. GoalRelationshipCompact: description: >- A *goal relationship* is an object representing the relationship between a goal and another goal, a project, a task, or a portfolio. type: object properties: gid: description: >- Globally unique identifier of the resource, as a string. type: string readOnly: true example: '12345' x-insert-after: false resource_type: description: The base type of this resource. type: string readOnly: true example: goal_relationship x-insert-after: gid resource_subtype: description: >- The subtype of this resource. Different subtypes retain many of the same fields and behavior, but may render differently in Asana or represent resources with different semantic meaning. type: string readOnly: true example: subgoal enum: - subgoal - supporting_work supporting_resource: allOf: - $ref: '#/components/schemas/ProjectCompact' - type: object readOnly: true description: >- The supporting resource that supports the goal. This can be either a project, task, portfolio, or goal. contribution_weight: description: The weight that the supporting resource's progress contributes to the supported goal's progress. This can be 0, 1, or any value in between. type: number example: 1.0 GoalRelationshipRequest: allOf: - $ref: '#/components/schemas/GoalRelationshipBase' - type: object GoalRelationshipResponse: allOf: - $ref: '#/components/schemas/GoalRelationshipBase' - type: object JobBase: $ref: '#/components/schemas/JobCompact' JobCompact: description: >- A *job* is an object representing a process that handles asynchronous work. type: object properties: gid: description: >- Globally unique identifier of the resource, as a string. type: string readOnly: true example: '12345' x-insert-after: false resource_type: description: The base type of this resource. type: string readOnly: true example: job x-insert-after: gid resource_subtype: description: >- The subtype of this resource. Different subtypes retain many of the same fields and behavior, but may render differently in Asana or represent resources with different semantic meaning. type: string readOnly: true example: duplicate_task status: description: >- The current status of this job. type: string enum: - not_started - in_progress - succeeded - failed readOnly: true example: in_progress new_project: $ref: '#/components/schemas/ProjectCompact' new_task: allOf: - $ref: '#/components/schemas/TaskCompact' - type: object nullable: true new_project_template: $ref: '#/components/schemas/ProjectTemplateCompact' new_graph_export: $ref: '#/components/schemas/GraphExportCompact' new_resource_export: $ref: '#/components/schemas/ResourceExportCompact' JobResponse: $ref: '#/components/schemas/JobBase' Like: type: object description: >- An object to represent a user's like. properties: gid: description: >- Globally unique identifier of the object, as a string. type: string readOnly: true example: '12345' user: $ref: '#/components/schemas/UserCompact' MemberCompact: description: A *member* object represents either a team or user. type: object properties: gid: description: >- Globally unique identifier of the resource, as a string. type: string readOnly: true example: '12345' x-insert-after: false resource_type: type: string description: The type of the member (team or user) example: user name: type: string description: The name of the member example: Greg Sanchez MembershipCompact: anyOf: - $ref: '#/components/schemas/GoalMembershipCompact' - $ref: '#/components/schemas/ProjectMembershipCompactResponse' - $ref: '#/components/schemas/PortfolioMembershipCompactResponse' - $ref: '#/components/schemas/CustomFieldMembershipCompact' - $ref: '#/components/schemas/CustomTypeMembershipCompact' ModifyDependenciesRequest: type: object properties: dependencies: description: An array of task gids that a task depends on. type: array items: type: string example: dependencies: - '133713' - '184253' ModifyDependentsRequest: description: A set of dependent tasks. type: object properties: dependents: description: An array of task gids that are dependents of the given task. type: array items: type: string example: dependents: - '133713' - '184253' NextPage: type: object nullable: true description: >- *Conditional*. This property is only present when a limit query parameter is provided in the request. When making a paginated request, the API will return a number of results as specified by the limit parameter. If more results exist, then the response will contain a next_page attribute, which will include an offset, a relative path attribute, and a full uri attribute. If there are no more pages available, next_page will be null and no offset will be provided. Note that an offset token will expire after some time, as data may have changed. properties: offset: type: string readOnly: true description: Pagination offset for the request. example: eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9 path: type: string readOnly: true description: A relative path containing the query parameters to fetch for next_page example: /tasks/12345/attachments?limit=2&offset=eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9 uri: type: string format: uri readOnly: true description: A full uri containing the query parameters to fetch for next_page example: https://app.asana.com/api/1.0/tasks/12345/attachments?limit=2&offset=eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9 OrganizationExportBase: $ref: '#/components/schemas/OrganizationExportCompact' OrganizationExportCompact: description: >- An *organization_export* object represents a request to export the complete data of an Organization in JSON format. type: object properties: gid: description: >- Globally unique identifier of the resource, as a string. type: string readOnly: true example: '12345' x-insert-after: false resource_type: description: The base type of this resource. type: string readOnly: true example: organization_export x-insert-after: gid created_at: description: The time at which this resource was created. type: string format: date-time readOnly: true example: '2012-02-22T02:06:58.147Z' download_url: description: |- Download this URL to retrieve the full export of the organization in JSON format. It will be compressed in a gzip (.gz) container. *Note: May be null if the export is still in progress or failed. If present, this URL may only be valid for 1 hour from the time of retrieval. You should avoid persisting this URL somewhere and rather refresh on demand to ensure you do not keep stale URLs.* type: string format: uri readOnly: true nullable: true example: >- https://asana-export-us-east-1.s3.us-east-1.amazonaws.com/2563645399633793/domain_export/7588024658887731/download/ domain_export_2563645399633793_7588024658887731_2023018-201726.json.gz?X-Amz-Algorithm=AWS4-HMAC-SHA256& X-Amz-Content-Sha256=xxxxxxxx&X-Amz-Date=xxxxxxxx&X-Amz-Expires=300&X-Amz-Security-Token=xxxxxxxx& X-Amz-Signature=xxxxxxxx&X-Amz-SignedHeaders=host&x-id=GetObject#_=_ state: description: The current state of the export. type: string enum: - pending - started - finished - error readOnly: true example: started organization: $ref: '#/components/schemas/WorkspaceCompact' OrganizationExportRequest: type: object description: >- An *organization_export* request starts a job to export the complete data of the given Organization. properties: organization: description: >- Globally unique identifier for the workspace or organization. type: string example: '1331' OrganizationExportResponse: $ref: '#/components/schemas/OrganizationExportBase' PortfolioAddItemRequest: type: object required: - item properties: item: description: >- The item to add to the portfolio. type: string example: '1331' insert_before: description: >- An id of an item in this portfolio. The new item will be added before the one specified here. `insert_before` and `insert_after` parameters cannot both be specified. type: string example: '1331' insert_after: description: >- An id of an item in this portfolio. The new item will be added after the one specified here. `insert_before` and `insert_after` parameters cannot both be specified. type: string example: '1331' PortfolioBase: allOf: - $ref: '#/components/schemas/PortfolioCompact' - type: object properties: archived: description: >- [Opt In](/docs/inputoutput-options). True if the portfolio is archived, false if not. Archived portfolios do not show in the UI by default and may be treated differently for queries. type: boolean example: false color: description: Color of the portfolio. type: string enum: - dark-pink - dark-green - dark-blue - dark-red - dark-teal - dark-brown - dark-orange - dark-purple - dark-warm-gray - light-pink - light-green - light-blue - light-red - light-teal - light-brown - light-orange - light-purple - light-warm-gray example: light-green start_on: description: >- The day on which work for this portfolio begins, or null if the portfolio has no start date. This takes a date with `YYYY-MM-DD` format. *Note: `due_on` must be present in the request when setting or unsetting the `start_on` parameter. Additionally, `start_on` and `due_on` cannot be the same date.* type: string nullable: true format: date example: '2019-09-14' due_on: description: >- The day on which this portfolio is due. This takes a date with format YYYY-MM-DD. type: string nullable: true format: date example: '2019-09-15' default_access_level: description: >- The default access level when inviting new members to the portfolio type: string enum: - admin - editor - viewer example: viewer PortfolioCompact: description: >- A *portfolio* gives a high-level overview of the status of multiple initiatives in Asana. Portfolios provide a dashboard overview of the state of multiple projects, including a progress report and the most recent [project status](/reference/project-statuses) update. Portfolios have some restrictions on size. Each portfolio has a max of 1500 items and, like projects, a max of 20 custom fields. type: object properties: gid: description: >- Globally unique identifier of the resource, as a string. type: string readOnly: true example: '12345' x-insert-after: false resource_type: description: The base type of this resource. type: string readOnly: true example: portfolio x-insert-after: gid name: description: The name of the portfolio. type: string example: Bug Portfolio PortfolioMembershipBase: $ref: '#/components/schemas/PortfolioMembershipCompact' DeprecatedPortfolioMembershipBase: $ref: '#/components/schemas/DeprecatedPortfolioMembershipCompact' DeprecatedPortfolioMembershipResponse: $ref: '#/components/schemas/DeprecatedPortfolioMembershipBase' DeprecatedPortfolioMembershipCompact: description: >- This object determines if a user is a member of a portfolio. type: object properties: gid: description: >- Globally unique identifier of the resource, as a string. type: string readOnly: true example: '12345' x-insert-after: false resource_type: description: The base type of this resource. type: string readOnly: true example: portfolio_membership x-insert-after: gid portfolio: description: >- [Opt In](/docs/inputoutput-options). The portfolio the user is a member of. $ref: '#/components/schemas/PortfolioCompact' user: $ref: '#/components/schemas/UserCompact' access_level: description: >- Whether the member has admin, editor, or viewer access to the portfolio. Portfolios do not support commenter access yet. type: string enum: - admin - editor - viewer readOnly: true example: admin PortfolioMembershipCompact: description: >- This object determines if a user is a member of a portfolio. type: object properties: gid: description: >- Globally unique identifier of the resource, as a string. type: string readOnly: true example: '12345' x-insert-after: false resource_type: description: The base type of this resource. type: string readOnly: true example: portfolio_membership x-insert-after: gid parent: description: >- The portfolio the user is a member of. $ref: '#/components/schemas/PortfolioCompact' member: description: Member can be a user or a team. $ref: '#/components/schemas/MemberCompact' access_level: description: >- Whether the member has admin, editor, or viewer access to the portfolio. Portfolios do not support commenter access yet. type: string enum: - admin - editor - viewer readOnly: true example: admin PortfolioMembershipCompactResponse: allOf: - $ref: '#/components/schemas/PortfolioMembershipCompact' - type: object properties: resource_type: description: The base type of this resource. type: string example: membership resource_subtype: description: Type of the membership. type: string example: portfolio_membership PortfolioMembershipResponse: $ref: '#/components/schemas/PortfolioMembershipBase' PortfolioRemoveItemRequest: type: object required: - item properties: item: description: >- The item to remove from the portfolio. type: string example: '1331' PortfolioRequest: allOf: - $ref: '#/components/schemas/PortfolioBase' - type: object properties: workspace: type: string description: >- *Create-only*. The workspace or organization that the portfolio belongs to. example: '167589' public: description: >- *Deprecated:* new integrations use `privacy_setting` instead. type: boolean deprecated: true example: false PortfolioUpdateRequest: allOf: - $ref: '#/components/schemas/PortfolioBase' - type: object properties: custom_fields: description: >- An object where each key is the GID of a custom field and its corresponding value is either an enum GID, string, number, or object (depending on the custom field type). See the [custom fields guide](/docs/custom-fields-guide) for details on creating and updating custom field values. type: object additionalProperties: type: string description: >- "{custom_field_gid}" => Value (can be text, enum GID, a number, etc.). For date, use format "YYYY-MM-DD" (e.g., 2019-09-15). For date-time, use ISO 8601 date string in UTC (e.g., 2019-09-15T02:06:58.147Z). example: '5678904321': On Hold '4578152156': Not Started PortfolioResponse: allOf: - $ref: '#/components/schemas/PortfolioBase' - type: object properties: created_at: description: The time at which this resource was created. type: string format: date-time readOnly: true example: '2012-02-22T02:06:58.147Z' created_by: $ref: '#/components/schemas/UserCompact' custom_field_settings: description: >- Array of custom field definitions that are enabled for the portfolio. These represent which custom fields are available to be used on items within the portfolio, but do not include any values. type: array items: $ref: '#/components/schemas/CustomFieldSettingResponse' current_status_update: allOf: - $ref: '#/components/schemas/StatusUpdateCompact' - description: The latest `status_update` posted to this portfolio. nullable: true custom_fields: description: >- Array of custom field values applied directly to the portfolio itself. These represent the values set on the portfolio, not the fields available for items in the portfolio. type: array items: $ref: '#/components/schemas/CustomFieldCompact' members: type: array readOnly: true items: $ref: '#/components/schemas/UserCompact' owner: $ref: '#/components/schemas/UserCompact' workspace: allOf: - $ref: '#/components/schemas/WorkspaceCompact' - type: object description: >- *Create-only*. The workspace or organization that the portfolio belongs to. permalink_url: type: string readOnly: true description: >- A url that points directly to the object within Asana. example: https://app.asana.com/0/resource/123456789/list public: description: >- True if the portfolio is public to its workspace members. type: boolean example: false privacy_setting: description: >- The privacy setting of the portfolio. *Note: Administrators in your organization may restrict the values of `privacy_setting`.* type: string enum: - public_to_domain - members_only example: members_only project_templates: description: >- Array of project templates that are in the portfolio type: array readOnly: true items: $ref: '#/components/schemas/ProjectTemplateCompact' Preview: type: object description: >- A collection of rich text that will be displayed as a preview to another app. This is read-only except for a small group of whitelisted apps. readOnly: true properties: fallback: description: Some fallback text to display if unable to display the full preview. type: string example: >- Greg: Great! I like this idea.\n\nhttps//a_company.slack.com/archives/ABCDEFG/12345678 footer: description: Text to display in the footer. type: string example: Mar 17, 2019 1:25 PM header: description: Text to display in the header. type: string example: Asana for Slack header_link: description: Where the header will link to. type: string example: https://asana.comn/apps/slack html_text: description: HTML formatted text for the body of the preview. type: string example: Great! I like this idea. text: description: Text for the body of the preview. type: string example: Great! I like this idea. title: description: Text to display as the title. type: string example: Greg title_link: description: Where to title will link to. type: string example: https://asana.slack.com/archives/ABCDEFG/12345678 ProjectBase: allOf: - $ref: '#/components/schemas/ProjectCompact' - type: object properties: archived: description: >- True if the project is archived, false if not. Archived projects do not show in the UI by default and may be treated differently for queries. type: boolean example: false color: description: Color of the project. type: string nullable: true enum: - dark-pink - dark-green - dark-blue - dark-red - dark-teal - dark-brown - dark-orange - dark-purple - dark-warm-gray - light-pink - light-green - light-blue - light-red - light-teal - light-brown - light-orange - light-purple - light-warm-gray - none - null example: light-green icon: description: >- The icon for a project. type: string nullable: true enum: - list - board - timeline - calendar - rocket - people - graph - star - bug - light_bulb - globe - gear - notebook - computer - check - target - html - megaphone - chat_bubbles - briefcase - page_layout - mountain_flag - puzzle - presentation - line_and_symbols - speed_dial - ribbon - shoe - shopping_basket - map - ticket - coins example: chat_bubbles created_at: description: The time at which this resource was created. type: string format: date-time readOnly: true example: '2012-02-22T02:06:58.147Z' current_status: allOf: - $ref: '#/components/schemas/ProjectStatusResponse' - type: object nullable: true description: >- *Deprecated: new integrations should prefer the `current_status_update` resource.* current_status_update: allOf: - $ref: '#/components/schemas/StatusUpdateCompact' - type: object nullable: true description: The latest `status_update` posted to this project. custom_field_settings: description: >- Array of custom field definitions that are enabled for the project. These represent which custom fields are available to be used on tasks within the project, but do not include any values. readOnly: true type: array items: $ref: '#/components/schemas/CustomFieldSettingResponse' default_view: description: The default view (list, board, calendar, or timeline) of a project. type: string enum: - list - board - calendar - timeline example: calendar due_date: description: >- *Deprecated: new integrations should prefer the `due_on` field.* type: string nullable: true format: date example: '2019-09-15' due_on: description: >- The day on which this project is due. This takes a date with format YYYY-MM-DD. type: string nullable: true format: date example: '2019-09-15' html_notes: description: >- [Opt In](/docs/inputoutput-options). The notes of the project with formatting as HTML. type: string example: These are things we need to purchase. members: description: Array of users who are members of this project. type: array items: $ref: '#/components/schemas/UserCompact' readOnly: true modified_at: description: >- The time at which this project was last modified. *Note: This does not currently reflect any changes in associations such as tasks or comments that may have been added or removed from the project.* type: string readOnly: true format: date-time example: '2012-02-22T02:06:58.147Z' notes: description: >- Free-form textual information associated with the project (ie., its description). type: string example: These are things we need to purchase. public: description: >- *Deprecated:* new integrations use `privacy_setting` instead. type: boolean deprecated: true example: false privacy_setting: description: >- The privacy setting of the project. *Note: Administrators in your organization may restrict the values of `privacy_setting`.* The value `private_to_team` is deprecated. Use `POST /memberships` to share a project with a team after creation. type: string enum: - public_to_workspace - private_to_team - private example: public_to_workspace start_on: description: >- The day on which work for this project begins, or null if the project has no start date. This takes a date with `YYYY-MM-DD` format. *Note: `due_on` or `due_at` must be present in the request when setting or unsetting the `start_on` parameter. Additionally, `start_on` and `due_on` cannot be the same date.* type: string nullable: true format: date example: '2019-09-14' default_access_level: description: >- The default access for users or teams who join or are added as members to the project. type: string enum: - admin - editor - commenter - viewer example: admin minimum_access_level_for_customization: description: >- The minimum access level needed for project members to modify this project's workflow and appearance. type: string enum: - admin - editor example: admin minimum_access_level_for_sharing: description: >- The minimum access level needed for project members to share the project and manage project memberships. type: string enum: - admin - editor example: admin ProjectBriefBase: allOf: - $ref: '#/components/schemas/ProjectBriefCompact' - type: object properties: title: description: >- The title of the project brief. type: string example: Stuff to buy — Project Brief html_text: description: >- HTML formatted text for the project brief. type: string example: This is a project brief. ProjectBriefCompact: description: >- A *Project Brief* allows you to explain the what and why of the project to your team. type: object properties: gid: description: >- Globally unique identifier of the resource, as a string. type: string readOnly: true example: '12345' x-insert-after: false resource_type: description: The base type of this resource. type: string readOnly: true example: project_brief x-insert-after: gid ProjectBriefRequest: allOf: - $ref: '#/components/schemas/ProjectBriefBase' - type: object properties: text: description: >- The plain text of the project brief. When writing to a project brief, you can specify either `html_text` (preferred) or `text`, but not both. type: string example: This is a project brief. ProjectBriefResponse: allOf: - $ref: '#/components/schemas/ProjectBriefBase' - type: object properties: text: description: >- [Opt In](/docs/inputoutput-options). The plain text of the project brief. type: string example: This is a project brief. permalink_url: type: string readOnly: true description: >- A url that points directly to the object within Asana. example: https://app.asana.com/0/11111111/22222222 project: allOf: - $ref: '#/components/schemas/ProjectCompact' - type: object description: >- The project with which this project brief is associated. ProjectCompact: description: >- A *project* represents a prioritized list of tasks in Asana or a board with columns of tasks represented as cards. It exists in a single workspace or organization and is accessible to a subset of users in that workspace or organization, depending on its permissions. type: object properties: gid: description: >- Globally unique identifier of the resource, as a string. type: string readOnly: true example: '12345' x-insert-after: false resource_type: description: The base type of this resource. type: string readOnly: true example: project x-insert-after: gid name: description: >- Name of the project. This is generally a short sentence fragment that fits on a line in the UI for maximum readability. However, it can be longer. type: string example: Stuff to buy ProjectDuplicateRequest: type: object required: - name properties: name: description: The name of the new project. type: string example: New Project Name team: description: >- Sets the team of the new project. If team is not defined, the new project will be in the same team as the the original project. type: string example: '12345' include: description: |- A comma-separated list of elements to include when duplicating a project. Some elements are automatically included and cannot be excluded, while others are **optional** and must be explicitly specified in this field. **Auto-included fields (non-configurable)** - Tasks - [Project Views](https://asana.com/features/project-management/project-views) (i.e., tabs in a project such as List, Board, Dashboard, etc.) - [Rules](https://help.asana.com/s/article/rules) *Note: The Owner of the Rules copied to the new project is the user who performs the API call. If the duplication is performed using a [Service Account](/docs/authentication#/service-account), note that Service Accounts cannot access the UI to modify or pause Rules. To prevent unwanted automation behavior, consider pausing Rules in the source project before duplication — their active/paused state is preserved in the new project.* **Optional fields (configurable)** - allocations - forms - members - notes - permissions - task_assignee - task_attachments - task_dates - task_dependencies - task_followers - task_notes - task_projects - task_subtasks - task_tags - task_templates - task_type_default type: string pattern: ([allocations|forms|members|notes|permissions|task_assignee|task_attachments|task_dates|task_dependencies|task_followers|task_notes|task_projects|task_subtasks|task_tags|task_templates|task_type_default])(,\1)* example: - allocations,forms,members,notes,permissions,task_assignee,task_attachments,task_dates,task_dependencies,task_followers,task_notes,task_projects,task_subtasks,task_tags,task_templates,task_type_default schedule_dates: description: >- A dictionary of options to auto-shift dates. `task_dates` must be included to use this option. Requires `should_skip_weekends` and either `start_on` or `due_on`, but not both. type: object properties: should_skip_weekends: description: >- **Required**: Determines if the auto-shifted dates should skip weekends. type: boolean example: true due_on: description: >- Sets the last due date in the duplicated project to the given date. The rest of the due dates will be offset by the same amount as the due dates in the original project. type: string example: '2019-05-21' start_on: description: >- Sets the first start date in the duplicated project to the given date. The rest of the start dates will be offset by the same amount as the start dates in the original project. type: string example: '2019-05-21' CustomFieldMembershipBase: $ref: '#/components/schemas/CustomFieldMembershipCompact' CustomFieldMembershipCompact: description: >- This object describes a user or team's membership to a custom field including their level of access (Admin, Editor, or User). type: object properties: gid: description: >- Globally unique identifier of the resource, as a string. type: string readOnly: true example: '12345' x-insert-after: false resource_type: description: The base type of this resource. type: string readOnly: true example: custom_field_membership x-insert-after: gid resource_subtype: description: Type of the membership. type: string example: custom_field_membership parent: description: >- The custom field the user or team is a member of. $ref: '#/components/schemas/CustomFieldCompact' member: description: Member can be a user or a team. $ref: '#/components/schemas/MemberCompact' access_level: description: >- Whether the member has admin, editor, or user access to the custom field. type: string enum: - admin - editor - user readOnly: true example: admin CustomFieldMembershipResponse: $ref: '#/components/schemas/CustomFieldMembershipBase' CustomTypeMembershipBase: $ref: '#/components/schemas/CustomTypeMembershipCompact' CustomTypeMembershipCompact: description: >- This object describes a user or team's membership to a custom type including their level of access (Admin, Editor, User, or Viewer). type: object properties: gid: description: >- Globally unique identifier of the resource, as a string. type: string readOnly: true example: '12345' x-insert-after: false resource_type: description: The base type of this resource. type: string readOnly: true example: custom_type_membership x-insert-after: gid resource_subtype: description: Type of the membership. type: string example: custom_type_membership parent: description: >- The custom type the user or team is a member of. $ref: '#/components/schemas/CustomTypeCompact' member: description: Member can be a user or a team. $ref: '#/components/schemas/MemberCompact' access_level: description: >- Whether the member has admin, editor, user, or viewer access to the custom type. type: string enum: - admin - editor - user - viewer readOnly: true example: admin CustomTypeMembershipResponse: $ref: '#/components/schemas/CustomTypeMembershipBase' ProjectMembershipBase: $ref: '#/components/schemas/ProjectMembershipCompact' ProjectMembershipCompact: description: >- This object describes a team or a user's membership to a project including their level of access (Admin, Editor, Commenter, or Viewer). type: object properties: gid: description: >- Globally unique identifier of the resource, as a string. type: string readOnly: true example: '12345' x-insert-after: false resource_type: description: The base type of this resource. type: string readOnly: true example: project_membership x-insert-after: gid parent: description: >- [Opt In](/docs/inputoutput-options). The project the user is a member of. $ref: '#/components/schemas/ProjectCompact' member: description: Member can be a user or a team. $ref: '#/components/schemas/MemberCompact' access_level: description: >- Whether the member has admin, editor, commenter, or viewer access to the project. type: string enum: - admin - editor - commenter - viewer readOnly: true example: admin ProjectMembershipCompactResponse: allOf: - $ref: '#/components/schemas/ProjectMembershipCompact' - type: object properties: resource_type: description: The base type of this resource. type: string example: membership resource_subtype: description: Type of the membership. type: string example: project_membership ProjectMembershipNormalResponse: allOf: - $ref: '#/components/schemas/ProjectMembershipBase' - type: object properties: user: $ref: '#/components/schemas/UserCompact' project: description: >- [Opt In](/docs/inputoutput-options). The project the user is a member of. $ref: '#/components/schemas/ProjectCompact' resource_type: description: The base type of this resource. type: string example: project_membership write_access: description: >- Whether the member has full access or comment-only access to the project. type: string enum: - full_write - comment_only readOnly: true example: full_write ProjectRequest: allOf: - $ref: '#/components/schemas/ProjectBase' - type: object properties: custom_fields: description: >- An object where each key is the GID of a custom field and its corresponding value is either an enum GID, string, number, or object (depending on the custom field type). See the [custom fields guide](/docs/custom-fields-guide) for details on creating and updating custom field values. type: object additionalProperties: type: string description: >- "{custom_field_gid}" => Value (can be text, a number, etc.). For date, use format "YYYY-MM-DD" (e.g., 2019-09-15). For date-time, use ISO 8601 date string in UTC (e.g., 2019-09-15T02:06:58.147Z). example: '5678904321': On Hold '4578152156': Not Started followers: description: >- *Create-only*. Comma separated string of users. Followers are a subset of members who have opted in to receive "tasks added" notifications for a project. type: string example: 12345,23456 owner: description: >- The current owner of the project, may be null. nullable: true type: string example: '12345' team: description: >- *Deprecated:* The team to share this project with is deprecated. Use `POST /memberships` with `{ parent: project, member: team }` to share a project with a team after creation. deprecated: true type: string example: '12345' workspace: type: string description: >- The `gid` of a workspace. example: '12345' ProjectUpdateRequest: allOf: - $ref: '#/components/schemas/ProjectBase' - type: object properties: custom_fields: description: >- An object where each key is the GID of a custom field and its corresponding value is either an enum GID, string, number, or object (depending on the custom field type). See the [custom fields guide](/docs/custom-fields-guide) for details on creating and updating custom field values. type: object additionalProperties: type: string description: >- "{custom_field_gid}" => Value (can be text, a number, etc.). For date, use format "YYYY-MM-DD" (e.g., 2019-09-15). For date-time, use ISO 8601 date string in UTC (e.g., 2019-09-15T02:06:58.147Z). example: '5678904321': On Hold '4578152156': Not Started followers: description: >- *Create-only*. Comma separated string of users. Followers are a subset of members who have opted in to receive "tasks added" notifications for a project. type: string example: 12345,23456 owner: description: >- The current owner of the project, may be null. nullable: true type: string example: '12345' team: description: >- *Deprecated:* Updating the team a project is shared with is deprecated. Use `POST /memberships` with `{ parent: project, member: team }` instead to manage team sharing. deprecated: true type: string example: '12345' ProjectResponse: allOf: - $ref: '#/components/schemas/ProjectBase' - type: object properties: custom_fields: description: >- Array of custom field values applied directly to the project itself. These represent the values set on the project, not the fields available for tasks in the project. readOnly: true type: array items: $ref: '#/components/schemas/CustomFieldCompact' completed: description: >- True if the project is currently marked complete, false if not. type: boolean readOnly: true example: false completed_at: description: >- The time at which this project was completed, or null if the project is not completed. type: string format: date-time readOnly: true nullable: true example: '2012-02-22T02:06:58.147Z' completed_by: allOf: - $ref: '#/components/schemas/UserCompact' - description: >- The user that marked this project complete, or null if the project is not completed. readOnly: true nullable: true followers: description: >- Array of users following this project. Followers are a subset of members who have opted in to receive "tasks added" notifications for a project. type: array items: $ref: '#/components/schemas/UserCompact' readOnly: true owner: description: >- The current owner of the project, may be null. allOf: - $ref: '#/components/schemas/UserCompact' - type: object nullable: true team: allOf: - $ref: '#/components/schemas/TeamCompact' - type: object description: >- The team that this project is shared with. permalink_url: type: string readOnly: true description: >- A url that points directly to the object within Asana. example: https://app.asana.com/1/12345/project/123456789 project_brief: allOf: - $ref: '#/components/schemas/ProjectBriefCompact' - type: object description: >- [Opt In](/docs/inputoutput-options). The project brief associated with this project. nullable: true created_from_template: allOf: - $ref: '#/components/schemas/ProjectTemplateCompact' - type: object description: >- [Opt In](/docs/inputoutput-options). The project template from which this project was created. If the project was not created from a template, this field will be null. nullable: true workspace: allOf: - $ref: '#/components/schemas/WorkspaceCompact' - type: object readOnly: true description: >- *Create-only*. The workspace or organization this project is associated with. Once created, projects cannot be moved to a different workspace. This attribute can only be specified at creation time. If the workspace for your project is an organization, you must also supply a `team` in the request body. ProjectSectionInsertRequest: type: object properties: section: description: The section to reorder. type: string example: '321654' before_section: description: >- Insert the given section immediately before the section specified by this parameter. type: string example: '86420' after_section: description: >- Insert the given section immediately after the section specified by this parameter. type: string example: '987654' required: - section ProjectStatusBase: allOf: - $ref: '#/components/schemas/ProjectStatusCompact' - type: object properties: text: description: The text content of the status update. type: string example: The project is moving forward according to plan... html_text: description: >- [Opt In](/docs/inputoutput-options). The text content of the status update with formatting as HTML. type: string example: >- The project is moving forward according to plan... color: description: The color associated with the status update. type: string enum: - green - yellow - red - blue - complete ProjectStatusCompact: description: >- *Deprecated: new integrations should prefer the `status_update` resource.* A *project status* is an update on the progress of a particular project, and is sent out to all project followers when created. These updates include both text describing the update and a color code intended to represent the overall state of the project: "green" for projects that are on track, "yellow" for projects at risk, and "red" for projects that are behind. type: object properties: gid: description: >- Globally unique identifier of the resource, as a string. type: string readOnly: true example: '12345' x-insert-after: false resource_type: description: The base type of this resource. type: string readOnly: true example: project_status x-insert-after: gid title: description: The title of the project status update. type: string example: Status Update - Jun 15 ProjectStatusRequest: $ref: '#/components/schemas/ProjectStatusBase' ProjectStatusResponse: allOf: - $ref: '#/components/schemas/ProjectStatusBase' - type: object properties: author: $ref: '#/components/schemas/UserCompact' created_at: description: The time at which this resource was created. type: string format: date-time readOnly: true example: '2012-02-22T02:06:58.147Z' created_by: $ref: '#/components/schemas/UserCompact' modified_at: description: >- The time at which this project status was last modified. *Note: This does not currently reflect any changes in associations such as comments that may have been added or removed from the project status.* type: string format: date-time readOnly: true example: '2012-02-22T02:06:58.147Z' ProjectTemplateCompact: description: >- A *project template* is an object that allows new projects to be created with a predefined setup, which may include tasks, sections, Rules, etc. It simplifies the process of running a workflow that involves a similar set of work every time. type: object properties: gid: description: >- Globally unique identifier of the resource, as a string. type: string readOnly: true example: '12345' x-insert-after: false resource_type: description: The base type of this resource. type: string readOnly: true example: project_template x-insert-after: gid name: description: >- Name of the project template. type: string example: Packing list ProjectTemplateBase: allOf: - $ref: '#/components/schemas/ProjectTemplateCompact' - type: object properties: description: description: >- Free-form textual information associated with the project template type: string example: These are things we need to pack for a trip. html_description: description: >- The description of the project template with formatting as HTML. type: string example: These are things we need to pack for a trip. public: description: >- True if the project template is public to its team. type: boolean example: false owner: description: >- The current owner of the project template, may be null. allOf: - $ref: '#/components/schemas/UserCompact' - type: object nullable: true team: allOf: - $ref: '#/components/schemas/TeamCompact' requested_dates: description: >- Array of date variables in this project template. Calendar dates must be provided for these variables when instantiating a project. type: array items: $ref: '#/components/schemas/DateVariableCompact' readOnly: true color: description: Color of the project template. type: string nullable: true enum: - dark-pink - dark-green - dark-blue - dark-red - dark-teal - dark-brown - dark-orange - dark-purple - dark-warm-gray - light-pink - light-green - light-blue - light-red - light-teal - light-brown - light-orange - light-purple - light-warm-gray - null example: light-green requested_roles: description: >- Array of template roles in this project template. User Ids can be provided for these variables when instantiating a project to assign template tasks to the user. type: array items: $ref: '#/components/schemas/TemplateRole' ProjectTemplateResponse: allOf: - $ref: '#/components/schemas/ProjectTemplateBase' ProjectTemplateInstantiateProjectRequest: type: object required: - name properties: name: description: The name of the new project. type: string example: New Project Name team: description: >- *Optional*. Sets the team of the new project. If the project template exists in an _organization_, you may specify a value for `team`. If no value is provided then it defaults to the same team as the project template. type: string example: '12345' public: description: >- *Deprecated:* new integrations use `privacy_setting` instead. deprecated: true type: boolean example: true privacy_setting: description: >- The privacy setting of the project. *Note: Administrators in your organization may restrict the values of `privacy_setting`.* The value `private_to_team` is deprecated. Use `POST /memberships` to share a project with a team after creation. type: string enum: - public_to_workspace - private_to_team - private example: public_to_workspace is_strict: description: >- *Optional*. If set to `true`, the endpoint returns an "Unprocessable Entity" error if you fail to provide a calendar date value for any date variable. If set to `false`, a default date is used for each unfulfilled date variable (e.g., the current date is used as the Start Date of a project). type: boolean example: true requested_dates: description: >- *Conditional*. Array of mappings of date variables to calendar dates. This property is required in the instantiation request if the project template includes dates (e.g., a start date on a task). type: array items: $ref: '#/components/schemas/DateVariableRequest' requested_roles: description: >- Array of mappings of template roles to user ids type: array items: $ref: '#/components/schemas/RequestedRoleRequest' DateVariableCompact: type: object properties: gid: description: >- Globally unique identifier of the date field in the project template. A value of `1` refers to the project start date, while `2` refers to the project due date. type: string readOnly: true example: '1' name: description: >- The name of the date variable. type: string readOnly: true example: Start Date description: description: >- The description of what the date variable is used for when instantiating a project. type: string readOnly: true example: Choose a start date for your project. DateVariableRequest: type: object properties: gid: description: >- Globally unique identifier of the date field in the project template. A value of `1` refers to the project start date, while `2` refers to the project due date. type: string example: '1' value: description: >- The date with which the date variable should be replaced when instantiating a project. This takes a date with `YYYY-MM-DD` format. type: string nullable: true format: date-time example: '2022-01-01' RequestedRoleRequest: type: object properties: gid: description: >- Globally unique identifier of the template role in the project template. type: string example: '1' value: description: >- The user id that should be assigned to the template role. type: string example: '123' ProjectSaveAsTemplateRequest: type: object required: - name - public properties: name: description: The name of the new project template. type: string example: New Project Template team: description: >- Sets the team of the new project template. If the project exists in an organization, specify team and not workspace. type: string example: '12345' workspace: description: >- Sets the workspace of the new project template. Only specify workspace if the project exists in a workspace. type: string example: '12345' public: description: >- Sets the project template to public to its team. type: boolean example: true RuleTriggerRequest: type: object properties: resource: description: >- The ID of the resource. For the duration of the beta, this resource is always a task, and this task must exist in the project in which the rule is created. type: string example: '12345' action_data: type: object additionalProperties: true description: >- The dynamic keys and values of the request. These fields are intended to be used in the action for the rule associated with this trigger. example: jira_ticket_name: Test jira_ticket_id: '123' required: - resource - action_data RuleTriggerResponse: type: object properties: message: description: >- Message providing more detail about the result type: string example: Successfully saved the payload and ran the rule RemoveCustomFieldSettingRequest: type: object required: - custom_field properties: custom_field: description: The custom field to remove from this portfolio. type: string example: '14916' RemoveFollowersRequest: type: object required: - followers properties: followers: description: >- An array of strings identifying users. These can either be the string "me", an email, or the gid of a user. type: string example: 521621,621373 RemoveMembersRequest: type: object required: - members properties: members: description: >- An array of strings identifying users. These can either be the string "me", an email, or the gid of a user. type: string example: 521621,621373 ResourceExportFilters: type: object description: >- Filters to apply to a resource that will be exported. These filters can be used to narrow down the resources that are included in the export. properties: assigned_by.any: description: >- Filter by the users who assigned the resource. This array accepts a list of user GIDs. This is only applicable to tasks. type: array items: type: string example: '12345' assignee.any: description: >- Filter by the users who are assigned to the resource. This array accepts a list of user GIDs. This is only applicable to tasks. type: array items: type: string example: '12345' commented_on_by.any: description: >- Filter by the users who commented on the resource. This array accepts a list of user GIDs. type: array items: type: string example: '12345' created_at.after: description: >- Filter results to resources created after a specified date and time. type: string format: date-time example: '2023-01-01T00:00:00Z' created_at.before: description: >- Filter results to resources created before a specified date and time. type: string format: date-time example: '2023-01-01T00:00:00Z' created_by.any: description: >- Filter by the users who created the resource. This array accepts a list of user GIDs. type: array items: type: string example: '12345' followers.any: description: >- Filter by the users who are following the resource. This array accepts a list of user GIDs. type: array items: type: string example: '12345' liked_by.any: description: >- Filter by the users who liked the resource. This array accepts a list of user GIDs. type: array items: type: string example: '12345' modified_at.after: description: >- Filter results to resources modified after a specified date and time. type: string format: date-time example: '2023-01-01T00:00:00Z' modified_at.before: description: >- Filter results to resources modified before a specified date and time. type: string format: date-time example: '2023-01-01T00:00:00Z' ResourceExportRequestParameter: type: object properties: resource_type: type: string description: >- The type of the resource to be exported. This can be a task, team, or message. example: task filters: $ref: '#/components/schemas/ResourceExportFilters' fields: type: array description: >- An array of fields to include for the resource type. If not provided, all non-optional fields for the resource type will be included. This conforms to the fields optional parameter available for all Asana endpoints which is documented [here](https://developers.asana.com/docs/inputoutput-options) items: type: string example: gid ResourceExportRequest: type: object description: >- A *resource_export* request starts a job to bulk export objects for one or more resources. properties: workspace: type: string description: >- Gid of a workspace. example: '12345' export_request_parameters: type: array description: >- An object containing the parameters for the export request. The keys of this object are the GIDs of the resources to be exported. The values are objects with additional parameters for each resource. items: $ref: '#/components/schemas/ResourceExportRequestParameter' ResourceExportCompact: description: >- A *resource_export* object represents a request to bulk export objects for one or more resources. type: object properties: gid: description: >- Globally unique identifier of the resource, as a string. type: string readOnly: true example: '12345' x-insert-after: false resource_type: description: The base type of this resource. type: string readOnly: true example: export_request x-insert-after: gid created_at: description: The time at which the resource export object was created. type: string format: date-time readOnly: true example: '2012-02-22T02:06:58.147Z' download_url: description: |- Download this URL to retrieve the full export in [JSON Lines](https://jsonlines.org/) format. It will be compressed in a gzip (.gz) container. *Note: May be null if the export is still in progress or failed.* type: string format: uri readOnly: true nullable: true example: >- https://asana-export-us-east-1.s3.us-east-1.amazonaws.com/2563645399633793/object_export/7588024658887731/download/ object_export_2563645399633793_7588024658887731_2023018-201726.jsonl.gz?X-Amz-Algorithm=AWS4-HMAC-SHA256& X-Amz-Credential=xxxxxxxx&X-Amz-Date=xxxxxxxx&X-Amz-Expires=300&X-Amz-Security-Token=xxxxxxxx& X-Amz-Signature=xxxxxxxx&X-Amz-SignedHeaders=host completed_at: description: The time at which this resource was completed. This will be null if the export is still in progress. type: string format: date-time readOnly: true example: '2012-02-22T03:06:58.147Z' ResourceExportResponse: description: >- A generic Asana Resource, containing a globally unique identifier. type: object properties: gid: description: >- Globally unique identifier of the resource, as a string. type: string readOnly: true example: '12345' x-insert-after: false resource_type: description: The base type of this resource. type: string readOnly: true example: job x-insert-after: gid resource_subtype: description: >- A *resource_export* object represents a request to bulk export objects for one or more resources. type: string readOnly: true example: export_request status: description: >- The current status of this job. type: string enum: - not_started - in_progress - succeeded - failed readOnly: true example: succeeded new_resource_export: $ref: '#/components/schemas/ResourceExportCompact' GraphExportRequest: type: object description: >- A *graph_export* request starts a job to export data starting from a parent object. properties: parent: description: >- Globally unique ID of the parent object: goal, project, portfolio, or team. type: string example: '181636' GraphExportCompact: description: >- A *graph_export* object represents a request to export the data starting from a parent object type: object properties: gid: description: >- Globally unique identifier of the resource, as a string. type: string readOnly: true example: '12345' x-insert-after: false resource_type: description: The base type of this resource. type: string readOnly: true example: graph_export x-insert-after: gid created_at: description: The time at which this resource was created. type: string format: date-time readOnly: true example: '2012-02-22T02:06:58.147Z' download_url: description: |- Download this URL to retrieve the full export in JSON format. It will be compressed in a gzip (.gz) container. *Note: May be null if the export is still in progress or failed. If present, this URL may only be valid for 1 hour from the time of retrieval. You should avoid persisting this URL somewhere and rather refresh on demand to ensure you do not keep stale URLs.* type: string format: uri readOnly: true nullable: true example: >- https://asana-export-us-east-1.s3.us-east-1.amazonaws.com/2563645399633793/domain_export/7588024658887731/download/ domain_export_2563645399633793_7588024658887731_2023018-201726.json.gz?X-Amz-Algorithm=AWS4-HMAC-SHA256& X-Amz-Content-Sha256=xxxxxxxx&X-Amz-Date=xxxxxxxx&X-Amz-Expires=300&X-Amz-Security-Token=xxxxxxxx& X-Amz-Signature=xxxxxxxx&X-Amz-SignedHeaders=host&x-id=GetObject#_=_ completed_at: description: The time at which this resource was completed. type: string format: date-time readOnly: true example: '2012-02-22T03:06:58.147Z' GraphExportResponse: description: >- A generic Asana Resource, containing a globally unique identifier. type: object properties: gid: description: >- Globally unique identifier of the resource, as a string. type: string readOnly: true example: '12345' x-insert-after: false resource_type: description: The base type of this resource. type: string readOnly: true example: job x-insert-after: gid resource_subtype: description: >- A *graph_export* object represents a request to export the data starting from a parent object type: string readOnly: true example: graph_export_request status: description: >- The current status of this job. type: string enum: - not_started - in_progress - succeeded - failed readOnly: true example: succeeded new_graph_export: $ref: '#/components/schemas/GraphExportCompact' RateBase: $ref: '#/components/schemas/RateCompact' RateCompact: description: >- A *rate* is a monetary value assigned to a resource - `user` or `placeholder` - for a given `parent` object. type: object properties: gid: description: >- Globally unique identifier of the resource, as a string. type: string readOnly: true example: '12345' x-insert-after: false resource_type: description: The base type of this resource. type: string readOnly: true example: rate x-insert-after: gid parent: $ref: '#/components/schemas/ProjectCompact' resource: $ref: '#/components/schemas/UserCompact' rate: type: number description: >- The monetary value of the rate. example: 100 currency_code: type: string description: >- The currency code of the rate, set at the domain level. example: USD readOnly: true created_by: $ref: '#/components/schemas/UserCompact' readOnly: true RateRequest: description: >- A generic Asana Resource, containing a globally unique identifier. type: object properties: gid: description: >- Globally unique identifier of the resource, as a string. type: string readOnly: true example: '12345' x-insert-after: false resource_type: description: The base type of this resource. type: string readOnly: true example: task x-insert-after: gid parent: description: >- Globally unique ID of the parent object: project. type: string example: '12345' resource: description: >- Globally unique ID of the resource object: user or placeholder. type: string example: '12345' rate: description: >- The monetary value of the rate. type: number example: 100 required: - parent - resource - rate RateUpdateRequest: description: >- A generic Asana Resource, containing a globally unique identifier. type: object properties: gid: description: >- Globally unique identifier of the resource, as a string. type: string readOnly: true example: '12345' x-insert-after: false resource_type: description: The base type of this resource. type: string readOnly: true example: task x-insert-after: gid rate: description: >- The monetary value of the rate. type: number example: 100 RateResponse: allOf: - $ref: '#/components/schemas/RateCompact' - type: object RateOrPlaceholderCompact: anyOf: - $ref: '#/components/schemas/RateCompact' - $ref: '#/components/schemas/PlaceholderRateCompact' PlaceholderCompact: description: >- A *placeholder* object represents a placeholder in Asana that can be used to represent a placeholder user. type: object properties: gid: description: >- Globally unique identifier of the resource, as a string. type: string readOnly: true example: '12345' x-insert-after: false resource_type: description: The base type of this resource. type: string readOnly: true example: user x-insert-after: gid name: type: string description: >- The placeholder's name. example: Greg-Placeholder Sanchez PlaceholderRateCompact: allOf: - $ref: '#/components/schemas/RateCompact' - type: object properties: resource: $ref: '#/components/schemas/PlaceholderCompact' SectionBase: $ref: '#/components/schemas/SectionCompact' SectionCompact: description: >- A *section* is a subdivision of a project that groups tasks together. It can either be a header above a list of tasks in a list view or a column in a board view of a project. type: object properties: gid: description: >- Globally unique identifier of the resource, as a string. type: string readOnly: true example: '12345' x-insert-after: false resource_type: description: The base type of this resource. type: string readOnly: true example: section x-insert-after: gid name: description: >- The name of the section (i.e. the text displayed as the section header). type: string example: Next Actions SectionRequest: type: object properties: name: description: >- The text to be displayed as the section name. This cannot be an empty string. type: string example: Next Actions insert_before: description: >- An existing section within this project before which the added section should be inserted. Cannot be provided together with insert_after. type: string example: '86420' insert_after: description: >- An existing section within this project after which the added section should be inserted. Cannot be provided together with insert_before. type: string example: '987654' required: - name SectionResponse: allOf: - $ref: '#/components/schemas/SectionBase' - type: object properties: created_at: description: The time at which this resource was created. type: string format: date-time readOnly: true example: '2012-02-22T02:06:58.147Z' project: $ref: '#/components/schemas/ProjectCompact' projects: description: >- *Deprecated - please use project instead* type: array readOnly: true items: $ref: '#/components/schemas/ProjectCompact' SectionTaskInsertRequest: type: object properties: task: description: The task to add to this section. type: string example: '123456' insert_before: description: >- An existing task within this section before which the added task should be inserted. Cannot be provided together with insert_after. type: string example: '86420' insert_after: description: >- An existing task within this section after which the added task should be inserted. Cannot be provided together with insert_before. type: string example: '987654' required: - task StatusUpdateBase: allOf: - $ref: '#/components/schemas/StatusUpdateCompact' - type: object required: - text - status_type properties: text: description: The text content of the status update. type: string example: The project is moving forward according to plan... html_text: description: >- [Opt In](/docs/inputoutput-options). The text content of the status update with formatting as HTML. type: string example: >- The project is moving forward according to plan... status_type: description: The type associated with the status update. This represents the current state of the object this object is on. type: string enum: - on_track - at_risk - off_track - on_hold - complete - achieved - partial - missed - dropped StatusUpdateCompact: description: >- A *status update* is an update on the progress of a particular project, portfolio, or goal, and is sent out to all of its parent's followers when created. These updates include both text describing the update and a `status_type` intended to represent the overall state of the project. type: object properties: gid: description: >- Globally unique identifier of the resource, as a string. type: string readOnly: true example: '12345' x-insert-after: false resource_type: description: The base type of this resource. type: string readOnly: true example: status_update x-insert-after: gid title: description: The title of the status update. type: string example: Status Update - Jun 15 resource_subtype: type: string description: >- The subtype of this resource. Different subtypes retain many of the same fields and behavior, but may render differently in Asana or represent resources with different semantic meaning. The `resource_subtype`s for `status` objects represent the type of their parent. enum: - project_status_update - portfolio_status_update - goal_status_update example: project_status_update readOnly: true StatusUpdateRequest: allOf: - $ref: '#/components/schemas/StatusUpdateBase' - type: object required: - parent properties: parent: allOf: - type: string description: >- The id of parent to send this status update to. This can be a project, goal or portfolio. StatusUpdateResponse: allOf: - $ref: '#/components/schemas/StatusUpdateBase' - type: object properties: author: $ref: '#/components/schemas/UserCompact' created_at: description: The time at which this resource was created. type: string format: date-time readOnly: true example: '2012-02-22T02:06:58.147Z' created_by: $ref: '#/components/schemas/UserCompact' hearted: description: >- *Deprecated - please use liked instead* True if the status is hearted by the authorized user, false if not. type: boolean example: true readOnly: true hearts: description: >- *Deprecated - please use likes instead* Array of likes for users who have hearted this status. type: array items: $ref: '#/components/schemas/Like' readOnly: true liked: description: >- True if the status is liked by the authorized user, false if not. type: boolean example: true likes: description: Array of likes for users who have liked this status. type: array items: $ref: '#/components/schemas/Like' readOnly: true reaction_summary: description: Summary of emoji reactions on this status. type: array items: $ref: '#/components/schemas/ReactionSummaryItemCompact' readOnly: true modified_at: description: >- The time at which this project status was last modified. *Note: This does not currently reflect any changes in associations such as comments that may have been added or removed from the status.* type: string format: date-time readOnly: true example: '2012-02-22T02:06:58.147Z' num_hearts: description: >- *Deprecated - please use likes instead* The number of users who have hearted this status. type: integer example: 5 readOnly: true num_likes: description: The number of users who have liked this status. type: integer example: 5 readOnly: true parent: allOf: - $ref: '#/components/schemas/ProjectCompact' - type: object description: >- The parent of the status update. This can be a project, goal or portfolio, and indicates that this status was sent on that object. StoryBase: description: >- A story represents an activity associated with an object in the Asana system. type: object properties: gid: description: >- Globally unique identifier of the resource, as a string. type: string readOnly: true example: '12345' x-insert-after: false resource_type: description: The base type of this resource. type: string readOnly: true example: story x-insert-after: gid created_at: description: The time at which this resource was created. type: string format: date-time readOnly: true example: '2012-02-22T02:06:58.147Z' resource_subtype: description: >- The subtype of this resource. Different subtypes retain many of the same fields and behavior, but may render differently in Asana or represent resources with different semantic meaning. type: string readOnly: true example: comment_added text: description: The plain text of the comment to add. Cannot be used with html_text. type: string example: This is a comment. html_text: description: >- [Opt In](/docs/inputoutput-options). HTML formatted text for a comment. This will not include the name of the creator. type: string example: This is a comment. is_pinned: description: >- *Conditional*. Whether the story should be pinned on the resource. type: boolean example: false sticker_name: description: >- The name of the sticker in this story. `null` if there is no sticker. type: string enum: - green_checkmark - people_dancing - dancing_unicorn - heart - party_popper - people_waving_flags - splashing_narwhal - trophy - yeti_riding_unicorn - celebrating_people - determined_climbers - phoenix_spreading_love example: dancing_unicorn StoryCompact: description: >- A story represents an activity associated with an object in the Asana system. type: object properties: gid: description: >- Globally unique identifier of the resource, as a string. type: string readOnly: true example: '12345' x-insert-after: false resource_type: description: The base type of this resource. type: string readOnly: true example: story x-insert-after: gid created_at: description: The time at which this resource was created. type: string format: date-time readOnly: true example: '2012-02-22T02:06:58.147Z' created_by: $ref: '#/components/schemas/UserCompact' resource_subtype: description: >- The subtype of this resource. Different subtypes retain many of the same fields and behavior, but may render differently in Asana or represent resources with different semantic meaning. type: string readOnly: true example: comment_added text: description: >- *Create-only*. Human-readable text for the story or comment. This will not include the name of the creator. *Note: This is not guaranteed to be stable for a given type of story. For example, text for a reassignment may not always say “assigned to …” as the text for a story can both be edited and change based on the language settings of the user making the request.* Use the `resource_subtype` property to discover the action that created the story. type: string example: marked today StoryRequest: $ref: '#/components/schemas/StoryBase' StoryResponse: allOf: - $ref: '#/components/schemas/StoryBase' - type: object properties: created_by: $ref: '#/components/schemas/UserCompact' type: type: string enum: - comment - system readOnly: true example: comment is_editable: description: >- *Conditional*. Whether the text of the story can be edited after creation. type: boolean readOnly: true example: false is_edited: description: >- *Conditional*. Whether the text of the story has been edited after creation. type: boolean readOnly: true example: false hearted: description: >- *Deprecated - please use likes instead* *Conditional*. True if the story is hearted by the authorized user, false if not. type: boolean readOnly: true example: false hearts: description: |- *Deprecated - please use likes instead* *Conditional*. Array of likes for users who have hearted this story. type: array items: $ref: '#/components/schemas/Like' readOnly: true num_hearts: description: |- *Deprecated - please use likes instead* *Conditional*. The number of users who have hearted this story. type: integer readOnly: true example: 5 liked: description: >- *Conditional*. True if the story is liked by the authorized user, false if not. type: boolean readOnly: true example: false likes: description: >- *Conditional*. Array of likes for users who have liked this story. type: array items: $ref: '#/components/schemas/Like' readOnly: true num_likes: description: >- *Conditional*. The number of users who have liked this story. type: integer readOnly: true example: 5 reaction_summary: description: Summary of emoji reactions on this story. type: array items: $ref: '#/components/schemas/ReactionSummaryItemCompact' readOnly: true previews: description: >-

Full object requires scope: attachments:read

*Conditional*. A collection of previews to be displayed in the story. *Note: This property only exists for comment stories.* type: array items: $ref: '#/components/schemas/Preview' readOnly: true old_name: description: >- *Conditional* The previous name of the task before a name change. type: string example: This was the old name new_name: description: >- *Conditional* The updated name of the task after a name change. type: string nullable: true readOnly: true example: This is the new name old_dates: $ref: '#/components/schemas/StoryResponseDates' new_dates: $ref: '#/components/schemas/StoryResponseDates' old_resource_subtype: description: >- *Conditional* type: string readOnly: true example: default_task new_resource_subtype: description: >- *Conditional* type: string readOnly: true example: milestone story: description: >- *Conditional* $ref: '#/components/schemas/StoryCompact' readOnly: true assignee: description: >- *Conditional* $ref: '#/components/schemas/UserCompact' readOnly: true follower: description: >- *Conditional* $ref: '#/components/schemas/UserCompact' readOnly: true old_section: description: >- *Conditional* $ref: '#/components/schemas/SectionCompact' readOnly: true new_section: description: >- *Conditional* $ref: '#/components/schemas/SectionCompact' readOnly: true task: description: >- *Conditional* $ref: '#/components/schemas/TaskCompact' readOnly: true project: description: >- *Conditional* $ref: '#/components/schemas/ProjectCompact' readOnly: true tag: description: >- *Conditional* $ref: '#/components/schemas/TagCompact' readOnly: true custom_field: description: >- *Conditional* $ref: '#/components/schemas/CustomFieldCompact' readOnly: true old_text_value: description: >- *Conditional* The previous value of a text-type field before it was updated. type: string readOnly: true example: This was the old text new_text_value: description: >- *Conditional* The new value of a text-type field after it was updated. type: string readOnly: true example: This is the new text old_number_value: description: >- *Conditional* The previous value of a number-type custom field before the update. type: integer nullable: true readOnly: true example: 1 new_number_value: description: >- *Conditional* The new value of a number-type custom field after the update. type: integer readOnly: true example: 2 old_enum_value: description: >- *Conditional* $ref: '#/components/schemas/EnumOption' readOnly: true new_enum_value: description: >- *Conditional* $ref: '#/components/schemas/EnumOption' readOnly: true old_date_value: allOf: - $ref: '#/components/schemas/StoryResponseDates' - description: >- *Conditional*. The old value of a date custom field story. readOnly: true new_date_value: allOf: - $ref: '#/components/schemas/StoryResponseDates' - description: >- *Conditional* The new value of a date custom field story. readOnly: true old_people_value: description: >- *Conditional*. The old value of a people custom field story. type: array items: $ref: '#/components/schemas/UserCompact' readOnly: true new_people_value: description: >- *Conditional*. The new value of a people custom field story. type: array items: $ref: '#/components/schemas/UserCompact' readOnly: true old_multi_enum_values: description: >- *Conditional*. The old value of a multi-enum custom field story. type: array items: $ref: '#/components/schemas/EnumOption' readOnly: true new_multi_enum_values: description: >- *Conditional*. The new value of a multi-enum custom field story. type: array items: $ref: '#/components/schemas/EnumOption' readOnly: true new_approval_status: description: >- *Conditional*. The new value of approval status. type: string readOnly: true example: approved old_approval_status: description: >- *Conditional*. The old value of approval status. type: string readOnly: true example: pending duplicate_of: description: >- *Conditional* $ref: '#/components/schemas/TaskCompact' readOnly: true duplicated_from: description: >- *Conditional* $ref: '#/components/schemas/TaskCompact' readOnly: true dependency: description: >- *Conditional* $ref: '#/components/schemas/TaskCompact' readOnly: true source: description: >- The component of the Asana product the user used to trigger the story. type: string enum: - web - email - mobile - api - unknown readOnly: true example: web target: allOf: - $ref: '#/components/schemas/TaskCompact' - type: object readOnly: true description: >- The object this story is associated with. Currently may only be a task. StoryResponseDates: description: >- *Conditional* type: object readOnly: true properties: start_on: description: >- The day on which work for this goal begins, or null if the goal has no start date. This takes a date with `YYYY-MM-DD` format, and cannot be set unless there is an accompanying due date. type: string format: date example: '2019-09-14' nullable: true due_at: description: >- The UTC date and time on which this task is due, or null if the task has no due time. This takes an ISO 8601 date string in UTC and should not be used together with `due_on`. type: string format: date-time example: '2019-09-15T02:06:58.158Z' nullable: true due_on: description: >- The localized day on which this goal is due. This takes a date with format `YYYY-MM-DD`. type: string format: date example: '2019-09-15' TagBase: allOf: - $ref: '#/components/schemas/TagCompact' - type: object properties: color: type: string description: Color of the tag. nullable: true enum: - dark-pink - dark-green - dark-blue - dark-red - dark-teal - dark-brown - dark-orange - dark-purple - dark-warm-gray - light-pink - light-green - light-blue - light-red - light-teal - light-brown - light-orange - light-purple - light-warm-gray - null example: light-green notes: description: >- Free-form textual information associated with the tag (i.e. its description). type: string example: Mittens really likes the stuff from Humboldt. TagCompact: description: >- A *tag* is a label that can be attached to any task in Asana. It exists in a single workspace or organization. type: object properties: gid: description: >- Globally unique identifier of the resource, as a string. type: string readOnly: true example: '12345' x-insert-after: false resource_type: description: The base type of this resource. type: string readOnly: true example: tag x-insert-after: gid name: description: >- Name of the tag. This is generally a short sentence fragment that fits on a line in the UI for maximum readability. However, it can be longer. type: string example: Stuff to buy TagCreateTagForWorkspaceRequest: allOf: - $ref: '#/components/schemas/TagBase' - type: object properties: followers: type: array description: >- An array of strings identifying users. These can either be the string "me", an email, or the gid of a user. items: type: string example: - '12345' - '42563' TagBaseRequest: $ref: '#/components/schemas/TagBase' TagCreateRequest: allOf: - $ref: '#/components/schemas/TagBaseRequest' - type: object properties: followers: type: array description: >- An array of strings identifying users. These can either be the string "me", an email, or the gid of a user. items: type: string example: - '12345' - '42563' workspace: type: string x-env-variable: true description: >- Gid of an object. example: '12345' TagUpdateRequest: $ref: '#/components/schemas/TagBaseRequest' TagResponse: allOf: - $ref: '#/components/schemas/TagBase' - type: object properties: created_at: description: The time at which this resource was created. type: string format: date-time readOnly: true example: '2012-02-22T02:06:58.147Z' followers: description: Array of users following this tag. type: array readOnly: true items: $ref: '#/components/schemas/UserCompact' workspace: $ref: '#/components/schemas/WorkspaceCompact' permalink_url: type: string readOnly: true description: >- A url that points directly to the object within Asana. example: https://app.asana.com/0/resource/123456789/list TaskAddFollowersRequest: type: object properties: followers: description: >- An array of strings identifying users. These can either be the string "me", an email, or the gid of a user. type: array items: type: string example: - '13579' - '321654' required: - followers TaskAddProjectRequest: type: object properties: project: description: The project to add the task to. type: string example: '13579' insert_after: description: >- A task in the project to insert the task after, or `null` to insert at the beginning of the list. When used with `section`, `null` will insert at the beginning of the specified section, otherwise the task must be in the specified section. type: string nullable: true example: '124816' insert_before: description: >- A task in the project to insert the task before, or `null` to insert at the end of the list. When used with `section`, `null` will insert at the end of the specified section, otherwise the task must be in the specified section. type: string nullable: true example: '432134' section: description: >- A section in the project to insert the task into. The task will be inserted at the bottom of the section unless combined with `insert_before: null` (end of section) or `insert_after: null` (beginning of section). Can also be combined with non-null `insert_before` or `insert_after` to position relative to a task within the section. type: string nullable: true example: '987654' required: - project TaskAddTagRequest: type: object properties: tag: description: The tag's gid to add to the task. type: string example: '13579' required: - tag TaskBase: allOf: - $ref: '#/components/schemas/TaskCompact' - type: object properties: approval_status: type: string description: >- *Conditional* Reflects the approval status of this task. This field is kept in sync with `completed`, meaning `pending` translates to false while `approved`, `rejected`, and `changes_requested` translate to true. If you set completed to true, this field will be set to `approved`. enum: - pending - approved - rejected - changes_requested example: pending assignee_status: description: >- *Deprecated* Scheduling status of this task for the user it is assigned to. This field can only be set if the assignee is non-null. Setting this field to "inbox" or "upcoming" inserts it at the top of the section, while the other options will insert at the bottom. type: string enum: - today - upcoming - later - new - inbox example: upcoming assigned_by: allOf: - $ref: '#/components/schemas/UserCompact' - readOnly: true nullable: true description: >- The user who assigned the task. This field is only returned when requesting it via opt_fields, and will be null if the task has no specific assigner (e.g., tasks created without an explicit assigner). completed: description: >- True if the task is currently marked complete, false if not. type: boolean example: false completed_at: description: >- The time at which this task was completed, or null if the task is incomplete. type: string format: date-time readOnly: true nullable: true example: '2012-02-22T02:06:58.147Z' completed_by: allOf: - $ref: '#/components/schemas/UserCompact' - readOnly: true nullable: true created_at: description: The time at which this resource was created. type: string format: date-time readOnly: true example: '2012-02-22T02:06:58.147Z' dependencies: description: >- [Opt In](/docs/inputoutput-options). Array of resources referencing tasks that this task depends on. The objects contain only the gid of the dependency. type: array items: $ref: '#/components/schemas/AsanaResource' readOnly: true dependents: description: >- [Opt In](/docs/inputoutput-options). Array of resources referencing tasks that depend on this task. The objects contain only the ID of the dependent. type: array items: $ref: '#/components/schemas/AsanaResource' readOnly: true due_at: description: >- The UTC date and time on which this task is due, or null if the task has no due time. This takes an ISO 8601 date string in UTC and should not be used together with `due_on`. type: string format: date-time example: '2019-09-15T02:06:58.147Z' nullable: true due_on: description: >- The localized date on which this task is due, or null if the task has no due date. This takes a date with `YYYY-MM-DD` format and should not be used together with `due_at`. type: string format: date example: '2019-09-15' nullable: true external: description: >- *OAuth Required*. *Conditional*. This field is returned only if external values are set or included by using [Opt In] (/docs/inputoutput-options). The external field allows you to store app-specific metadata on tasks, including a gid that can be used to retrieve tasks and a data blob that can store app-specific character strings. Note that you will need to authenticate with Oauth to access or modify this data. Once an external gid is set, you can use the notation `external:custom_gid` to reference your object anywhere in the API where you may use the original object gid. See the page on Custom External Data for more details. type: object properties: gid: type: string example: '1234' data: type: string example: A blob of information. example: gid: my_gid data: A blob of information html_notes: description: >- [Opt In](/docs/inputoutput-options). The notes of the text with formatting as HTML. type: string example: >- Mittens really likes the stuff from Humboldt. hearted: description: >- *Deprecated - please use liked instead* True if the task is hearted by the authorized user, false if not. type: boolean example: true readOnly: true hearts: description: >- *Deprecated - please use likes instead* Array of likes for users who have hearted this task. type: array items: $ref: '#/components/schemas/Like' readOnly: true is_rendered_as_separator: description: >- [Opt In](/docs/inputoutput-options). In some contexts tasks can be rendered as a visual separator; for instance, subtasks can appear similar to [sections](/reference/sections) without being true `section` objects. If a `task` object is rendered this way in any context it will have the property `is_rendered_as_separator` set to `true`. This parameter only applies to regular tasks with `resource_subtype` of `default_task`. Tasks with `resource_subtype` of `milestone`, `approval`, or custom task types will not have this property and cannot be rendered as separators. type: boolean example: false readOnly: true liked: description: >- True if the task is liked by the authorized user, false if not. type: boolean example: true likes: description: Array of likes for users who have liked this task. type: array items: $ref: '#/components/schemas/Like' readOnly: true memberships: description: >-

Full object requires scope: projects:read, project_sections:read

*Create-only*. Array of projects this task is associated with and the section it is in. At task creation time, this array can be used to add the task to specific sections. After task creation, these associations can be modified using the `addProject` and `removeProject` endpoints. Note that over time, more types of memberships may be added to this property. type: array readOnly: true items: type: object properties: project: $ref: '#/components/schemas/ProjectCompact' section: $ref: '#/components/schemas/SectionCompact' modified_at: description: |- The time at which this task was last modified. The following conditions will change `modified_at`: - story is created on a task - story is trashed on a task - attachment is trashed on a task - task is assigned or unassigned - custom field value is changed - the task itself is trashed - Or if any of the following fields are updated: - completed - name - due_date - description - attachments - items - schedule_status The following conditions will _not_ change `modified_at`: - moving to a new container (project, portfolio, etc) - comments being added to the task (but the stories they generate _will_ affect `modified_at`) type: string format: date-time readOnly: true example: '2012-02-22T02:06:58.147Z' name: description: >- Name of the task. This is generally a short sentence fragment that fits on a line in the UI for maximum readability. However, it can be longer. type: string example: Buy catnip notes: description: >- Free-form textual information associated with the task (i.e. its description). type: string example: Mittens really likes the stuff from Humboldt. num_hearts: description: >- *Deprecated - please use likes instead* The number of users who have hearted this task. type: integer example: 5 readOnly: true num_likes: description: The number of users who have liked this task. type: integer example: 5 readOnly: true num_subtasks: description: > [Opt In](/docs/inputoutput-options). The number of subtasks on this task. type: integer example: 3 readOnly: true start_at: description: >- Date and time on which work begins for the task, or null if the task has no start time. This takes an ISO 8601 date string in UTC and should not be used together with `start_on`. *Note: `due_at` must be present in the request when setting or unsetting the `start_at` parameter.* type: string nullable: true format: date-time example: '2019-09-14T02:06:58.147Z' start_on: description: >- The day on which work begins for the task , or null if the task has no start date. This takes a date with `YYYY-MM-DD` format and should not be used together with `start_at`. *Note: `due_on` or `due_at` must be present in the request when setting or unsetting the `start_on` parameter.* type: string nullable: true format: date example: '2019-09-14' actual_time_minutes: description: >-

Full object requires scope: time_tracking_entries:read

This value represents the sum of all the Time Tracking entries in the Actual Time field on a given Task. It is represented as a nullable long value. type: number example: 200 readOnly: true nullable: true TaskCompact: description: "

Full object requires scope: tasks:read

\n\nThe *task* is the basic object around which many operations in Asana are centered." type: object properties: gid: description: >- Globally unique identifier of the resource, as a string. type: string readOnly: true example: '12345' x-insert-after: false resource_type: description: The base type of this resource. type: string readOnly: true example: task x-insert-after: gid name: description: The name of the task. type: string example: Bug Task resource_subtype: type: string description: >- The subtype of this resource. Different subtypes retain many of the same fields and behavior, but may render differently in Asana or represent resources with different semantic meaning. The resource_subtype `milestone` represent a single moment in time. This means tasks with this subtype cannot have a start_date. enum: - default_task - milestone - approval - custom example: default_task created_by: type: object readOnly: true description: >- [Opt In](/docs/inputoutput-options). A *user* object represents an account in Asana that can be given access to various workspaces, projects, and tasks. properties: gid: description: Globally unique identifier of the resource. type: string example: '1111' resource_type: description: The type of resource. type: string example: user TaskTemplateCompact: description: >- A *task template* is an object that allows new tasks to be created with a predefined setup. type: object properties: gid: description: >- Globally unique identifier of the resource, as a string. type: string readOnly: true example: '12345' x-insert-after: false resource_type: description: The base type of this resource. type: string readOnly: true example: task_template x-insert-after: gid name: description: >- Name of the task template. type: string example: Packing list TaskTemplateBase: allOf: - $ref: '#/components/schemas/TaskTemplateCompact' TaskTemplateRecipeCompact: type: object properties: name: description: >- Name of the task that will be created from this template. type: string example: Bug Report task_resource_subtype: type: string description: >- The subtype of the task that will be created from this template. enum: - default_task - milestone_task - approval_task example: default_task TaskTemplateRecipe: allOf: - $ref: '#/components/schemas/TaskTemplateRecipeCompact' - type: object properties: description: description: >- Description of the task that will be created from this template. type: string example: >- Please describe the bug you found and how to reproduce it. html_description: description: >- HTML description of the task that will be created from this template. type: string example: >- Please describe the bug you found and how to reproduce it. memberships: description: >- Array of projects that the task created from this template will be added to type: array items: $ref: '#/components/schemas/ProjectCompact' relative_start_on: nullable: true description: >- The number of days after the task has been instantiated on which that the task will start type: integer example: 1 relative_due_on: nullable: true description: >- The number of days after the task has been instantiated on which that the task will be due type: integer example: 2 due_time: nullable: true description: >- The time of day that the task will be due type: string example: 13:15:00.000Z dependencies: description: >- Array of task templates that the task created from this template will depend on type: array items: $ref: '#/components/schemas/TaskTemplateRecipeCompact' dependents: description: >- Array of task templates that will depend on the task created from this template type: array items: $ref: '#/components/schemas/TaskTemplateRecipeCompact' followers: description: >- Array of users that will be added as followers to the task created from this template type: array items: $ref: '#/components/schemas/UserCompact' attachments: description: >- Array of attachments that will be added to the task created from this template type: array items: $ref: '#/components/schemas/AttachmentCompact' subtasks: description: >- Array of subtasks that will be added to the task created from this template type: array items: $ref: '#/components/schemas/TaskTemplateRecipeCompact' custom_fields: description: >- Array of custom fields that will be added to the task created from this template type: array items: $ref: '#/components/schemas/CustomFieldCompact' TaskTemplateResponse: allOf: - $ref: '#/components/schemas/TaskTemplateBase' - type: object properties: name: description: >- Name of the task template. type: string example: Bug Report Template project: description: >- The project that this task template belongs to. nullable: true allOf: - $ref: '#/components/schemas/ProjectCompact' template: description: >- The configuration for the task that will be created from this template. allOf: - $ref: '#/components/schemas/TaskTemplateRecipe' created_by: description: >- The user who created this task template. allOf: - $ref: '#/components/schemas/UserCompact' created_at: description: >- The time at which this task template was created. type: string format: date-time example: '2019-01-01T00:00:00.000Z' TaskCountResponse: description: A response object returned from the task count endpoint. type: object properties: num_tasks: description: The number of tasks in a project. type: integer example: 200 num_incomplete_tasks: description: The number of incomplete tasks in a project. type: integer example: 50 num_completed_tasks: description: The number of completed tasks in a project. type: integer example: 150 num_milestones: description: The number of milestones in a project. type: integer example: 10 num_incomplete_milestones: description: The number of incomplete milestones in a project. type: integer example: 7 num_completed_milestones: description: The number of completed milestones in a project. type: integer example: 3 TaskDuplicateRequest: type: object properties: name: description: The name of the new task. type: string example: New Task Name include: description: >- A comma-separated list of fields that will be duplicated to the new task. ##### Fields - assignee - attachments - dates - dependencies - followers - notes - parent - projects - subtasks - tags type: string pattern: ([notes|assignee|subtasks|attachments|tags|followers|projects|dates|dependencies|parent])(,\1)* example: - notes,assignee,subtasks,attachments,tags,followers,projects,dates,dependencies,parent TaskRemoveFollowersRequest: type: object properties: followers: description: >- An array of strings identifying users. These can either be the string "me", an email, or the gid of a user. type: array items: type: string example: - '13579' - '321654' required: - followers TaskRemoveProjectRequest: type: object properties: project: description: The project to remove the task from. type: string example: '13579' required: - project TaskRemoveTagRequest: type: object properties: tag: description: The tag's gid to remove from the task. type: string example: '13579' required: - tag TaskTemplateInstantiateTaskRequest: type: object properties: name: description: The name of the new task. If not provided, the name of the task template will be used. type: string example: New Task TaskRequest: allOf: - $ref: '#/components/schemas/TaskBase' - type: object properties: assignee: type: string readOnly: false x-env-variable: true description: >- Gid of a user. example: '12345' nullable: true assignee_section: nullable: true type: string description: >- The *assignee section* is a subdivision of a project that groups tasks together in the assignee's "My tasks" list. It can either be a header above a list of tasks in a list view or a column in a board view of "My tasks." The `assignee_section` property will be returned in the response only if the request was sent by the user who is the assignee of the task. Note that you can only write to `assignee_section` with the gid of an existing section visible in the user's "My tasks" list. example: '12345' custom_fields: description: >- An object where each key is the GID of a custom field and its corresponding value is either an enum GID, string, number, object, or array (depending on the custom field type). See the [custom fields guide](/docs/custom-fields-guide) for details on creating and updating custom field values. type: object additionalProperties: type: string description: >- "{custom_field_gid}" => Value (can be text, a number, etc.). For date, use format "YYYY-MM-DD" (e.g., 2019-09-15). For date-time, use ISO 8601 date string in UTC (e.g., 2019-09-15T02:06:58.147Z). example: '5678904321': On Hold '4578152156': Not Started followers: type: array description: >- *Create-Only* An array of strings identifying users. These can either be the string "me", an email, or the gid of a user. In order to change followers on an existing task use `addFollowers` and `removeFollowers`. items: type: string description: >- Gid of a user. example: - '12345' parent: type: string readOnly: false x-env-variable: true description: >- Gid of a task. example: '12345' nullable: true projects: type: array description: >- *Create-Only* Array of project gids. In order to change projects on an existing task use `addProject` and `removeProject`. items: type: string description: >- Gid of a project. example: - '12345' tags: type: array description: >- *Create-Only* Array of tag gids. In order to change tags on an existing task use `addTag` and `removeTag`. items: type: string description: >- Gid of a tag. example: - '12345' workspace: type: string readOnly: false x-env-variable: true description: >- Gid of a workspace. example: '12345' custom_type: type: string readOnly: false x-env-variable: true description: >- *Conditional:* You can only set custom_type if task `resource_subtype` is `custom`. GID or globally-unique identifier of a task's custom type. example: '12345' nullable: true custom_type_status_option: type: string readOnly: false x-env-variable: true description: >- *Conditional:* You can only set custom_type_status_option if task `resource_subtype` is `custom` GID or globally-unique identifier of a custom type's status option. example: '12345' nullable: true TaskResponse: allOf: - $ref: '#/components/schemas/TaskBase' - type: object properties: assignee: allOf: - $ref: '#/components/schemas/UserCompact' - nullable: true assignee_section: allOf: - $ref: '#/components/schemas/SectionCompact' - type: object nullable: true description: >- The *assignee section* is a subdivision of a project that groups tasks together in the assignee's "My tasks" list. It can either be a header above a list of tasks in a list view or a column in a board view of "My tasks." The `assignee_section` property will be returned in the response only if the request was sent by the user who is the assignee of the task. Note that you can only write to `assignee_section` with the gid of an existing section visible in the user's "My tasks" list. custom_fields: description: >- Array of custom field values applied to the task. These represent the custom field values recorded on this project for a particular custom field. For example, these custom field values will contain an `enum_value` property for custom fields of type `enum`, a `text_value` property for custom fields of type `text`, and so on. Please note that the `gid` returned on each custom field value *is identical* to the `gid` of the custom field, which allows referencing the custom field metadata through the `/custom_fields/custom_field_gid` endpoint. type: array items: $ref: '#/components/schemas/CustomFieldResponse' readOnly: true custom_type: allOf: - $ref: '#/components/schemas/CustomTypeCompact' - nullable: true custom_type_status_option: allOf: - $ref: '#/components/schemas/CustomTypeStatusOptionCompact' - nullable: true followers: description: Array of users following this task. type: array readOnly: true items: $ref: '#/components/schemas/UserCompact' parent: allOf: - $ref: '#/components/schemas/TaskCompact' - type: object readOnly: true description: >- The parent of this task, or `null` if this is not a subtask. This property cannot be modified using a PUT request but you can change it with the `setParent` endpoint. You can create subtasks by using the subtasks endpoint. nullable: true projects: description: >- *Create-only.* Array of projects this task is associated with. At task creation time, this array can be used to add the task to many projects at once. After task creation, these associations can be modified using the addProject and removeProject endpoints. type: array readOnly: true items: $ref: '#/components/schemas/ProjectCompact' tags: description: >- Array of tags associated with this task. In order to change tags on an existing task use `addTag` and `removeTag`. type: array readOnly: true items: $ref: '#/components/schemas/TagCompact' example: - gid: '59746' name: Grade A workspace: allOf: - $ref: '#/components/schemas/WorkspaceCompact' - type: object readOnly: true description: >- *Create-only*. The workspace this task is associated with. Once created, task cannot be moved to a different workspace. This attribute can only be specified at creation time. permalink_url: type: string readOnly: true description: >- A url that points directly to the object within Asana. example: https://app.asana.com/1/12345/task/123456789 TaskSetParentRequest: type: object properties: parent: description: >- The new parent of the task, or `null` for no parent. type: string example: '987654' insert_after: description: >- A subtask of the parent to insert the task after, or `null` to insert at the beginning of the list. type: string example: 'null' insert_before: description: >- A subtask of the parent to insert the task before, or `null` to insert at the end of the list. type: string example: '124816' required: - parent TeamAddUserRequest: type: object description: A user identification object for specification with the addUser/removeUser endpoints. properties: user: description: >- A string identifying a user. This can either be the string "me", an email, or the gid of a user. type: string example: '12345' TeamBase: $ref: '#/components/schemas/TeamCompact' TeamCompact: description: "

Full object requires scope: teams:read

\n\nA *team* is used to group related projects and people together within an organization. Each project in an organization is associated with a team." type: object properties: gid: description: >- Globally unique identifier of the resource, as a string. type: string readOnly: true example: '12345' x-insert-after: false resource_type: description: The base type of this resource. type: string readOnly: true example: team x-insert-after: gid name: description: The name of the team. type: string example: Marketing TeamMembershipBase: $ref: '#/components/schemas/TeamMembershipCompact' TeamMembershipCompact: description: >- This object represents a user's connection to a team. type: object properties: gid: description: >- Globally unique identifier of the resource, as a string. type: string readOnly: true example: '12345' x-insert-after: false resource_type: description: The base type of this resource. type: string readOnly: true example: team_membership x-insert-after: gid user: $ref: '#/components/schemas/UserCompact' team: $ref: '#/components/schemas/TeamCompact' is_guest: type: boolean description: >- Describes if the user is a guest in the team. example: false is_limited_access: type: boolean readOnly: true description: >- Describes if the user has limited access to the team. example: false is_admin: type: boolean description: >- Describes if the user is a team admin. example: false TeamMembershipResponse: $ref: '#/components/schemas/TeamMembershipBase' TeamRemoveUserRequest: type: object description: A user identification object for specification with the addUser/removeUser endpoints. properties: user: description: >- A string identifying a user. This can either be the string "me", an email, or the gid of a user. type: string example: '12345' TeamRequest: allOf: - $ref: '#/components/schemas/TeamBase' - type: object properties: description: description: > The description of the team. type: string example: All developers should be members of this team. html_description: description: > The description of the team with formatting as HTML. type: string example: >- All developers should be members of this team. organization: type: string description: > The organization/workspace the team belongs to. This must be the same organization you are in and cannot be changed once set. example: '123456789' visibility: description: > The visibility of the team to users in the same organization type: string enum: - secret - request_to_join - public edit_team_name_or_description_access_level: description: > Controls who can edit team name and description type: string enum: - all_team_members - only_team_admins edit_team_visibility_or_trash_team_access_level: description: > Controls who can edit team visibility and trash teams type: string enum: - all_team_members - only_team_admins member_invite_management_access_level: description: > Controls who can accept or deny member invites for a given team type: string enum: - all_team_members - only_team_admins guest_invite_management_access_level: description: > Controls who can accept or deny guest invites for a given team type: string enum: - all_team_members - only_team_admins join_request_management_access_level: description: > Controls who can accept or deny join team requests for a Membership by Request team. This field can only be updated when the team's `visibility` field is `request_to_join`. type: string enum: - all_team_members - only_team_admins team_member_removal_access_level: description: > Controls who can remove team members type: string enum: - all_team_members - only_team_admins team_content_management_access_level: description: > Controls who can create and share content with the team type: string enum: - no_restriction - only_team_admins endorsed: description: > Whether the team has been endorsed type: boolean example: false TeamResponse: allOf: - $ref: '#/components/schemas/TeamBase' - type: object properties: description: description: > [Opt In](/docs/inputoutput-options). The description of the team. type: string example: All developers should be members of this team. html_description: description: > [Opt In](/docs/inputoutput-options). The description of the team with formatting as HTML. type: string example: >- All developers should be members of this team. organization: allOf: - $ref: '#/components/schemas/WorkspaceCompact' - type: object description: | The organization/workspace the team belongs to. permalink_url: type: string readOnly: true description: >- A url that points directly to the object within Asana. example: https://app.asana.com/0/resource/123456789/list visibility: description: > The visibility of the team to users in the same organization type: string enum: - secret - request_to_join - public edit_team_name_or_description_access_level: description: > Controls who can edit team name and description type: string enum: - all_team_members - only_team_admins edit_team_visibility_or_trash_team_access_level: description: > Controls who can edit team visibility and trash teams type: string enum: - all_team_members - only_team_admins member_invite_management_access_level: description: > Controls who can accept or deny member invites for a given team type: string enum: - all_team_members - only_team_admins guest_invite_management_access_level: description: > Controls who can accept or deny guest invites for a given team type: string enum: - all_team_members - only_team_admins join_request_management_access_level: description: > Controls who can accept or deny join team requests for a Membership by Request team. This field can only be updated when the team's `visibility` field is `request_to_join`. type: string enum: - all_team_members - only_team_admins team_member_removal_access_level: description: > Controls who can remove team members type: string enum: - all_team_members - only_team_admins team_content_management_access_level: description: > Controls who can create and share content with the team type: string enum: - no_restriction - only_team_admins endorsed: description: > Whether the team has been endorsed type: boolean example: false custom_field_settings: description: Array of Custom Field Settings applied to the team. type: array items: $ref: '#/components/schemas/CustomFieldSettingResponse' TemplateRole: description: >- A generic Asana Resource, containing a globally unique identifier. type: object properties: gid: description: >- Globally unique identifier of the resource, as a string. type: string readOnly: true example: '12345' x-insert-after: false resource_type: description: The base type of this resource. type: string readOnly: true example: task x-insert-after: gid name: type: string description: >- Name of the template role. example: Designer TimePeriodBase: allOf: - $ref: '#/components/schemas/TimePeriodCompact' - type: object properties: parent: allOf: - $ref: '#/components/schemas/TimePeriodCompact' - nullable: true TimePeriodCompact: description: "

Full object requires scope: time_periods:read

\n\nA generic Asana Resource, containing a globally unique identifier." type: object properties: gid: description: >- Globally unique identifier of the resource, as a string. type: string readOnly: true example: '12345' x-insert-after: false resource_type: description: The base type of this resource. type: string readOnly: true example: time_period x-insert-after: gid end_on: type: string description: >- The localized end date of the time period in `YYYY-MM-DD` format. example: '2019-09-14' start_on: type: string description: >- The localized start date of the time period in `YYYY-MM-DD` format. example: '2019-09-13' period: type: string description: >- The cadence and index of the time period. enum: - FY - H1 - H2 - Q1 - Q2 - Q3 - Q4 example: Q1 display_name: type: string description: >- A string representing the cadence code and the fiscal year. example: Q1 FY22 TimePeriodResponse: $ref: '#/components/schemas/TimePeriodBase' UserBase: $ref: '#/components/schemas/UserCompact' UserCompact: description: >- A *user* object represents an account in Asana that can be given access to various workspaces, projects, and tasks. type: object properties: gid: description: >- Globally unique identifier of the resource, as a string. type: string readOnly: true example: '12345' x-insert-after: false resource_type: description: The base type of this resource. type: string readOnly: true example: user x-insert-after: gid name: type: string description: >- *Read-only except when same user as requester*. The user's name. example: Greg Sanchez UserRequest: $ref: '#/components/schemas/UserBase' UserUpdateRequest: allOf: - $ref: '#/components/schemas/UserRequest' - type: object properties: custom_fields: description: >- An object where each key is the GID of a custom field and its corresponding value is either an enum GID, string, number, or object (depending on the custom field type). See the [custom fields guide](/docs/custom-fields-guide) for details on creating and updating custom field values. type: object additionalProperties: type: string description: >- "{custom_field_gid}" => Value (can be text, enum GID, a number, etc.). For date, use format "YYYY-MM-DD" (e.g., 2019-09-15). For date-time, use ISO 8601 date string in UTC (e.g., 2019-09-15T02:06:58.147Z). example: '5678904321': On Hold '4578152156': Not Started UserBaseResponse: allOf: - $ref: '#/components/schemas/UserBase' - type: object properties: email: type: string format: email readOnly: true description: The user's email address. example: gsanchez@example.com photo: type: object nullable: true properties: image_21x21: type: string format: uri description: PNG image of the user at 21x21 pixels. image_27x27: type: string format: uri description: PNG image of the user at 27x27 pixels. image_36x36: type: string format: uri description: PNG image of the user at 36x36 pixels. image_60x60: type: string format: uri description: PNG image of the user at 60x60 pixels. image_128x128: type: string format: uri description: PNG image of the user at 128x128 pixels. image_1024x1024: type: string format: uri description: JPEG image of the user at 1024x1024 pixels. readOnly: true description: >- A map of the user's profile photo in various sizes, or null if no photo is set. Sizes provided are 21, 27, 36, 60, 128, and 1024. All images are in PNG format, except for 1024 (which is in JPEG format). example: image_21x21: https://... image_27x27: https://... image_36x36: https://... image_60x60: https://... image_128x128: https://... image_1024x1024: https://... UserResponse: allOf: - $ref: '#/components/schemas/UserBaseResponse' - type: object properties: workspaces: description: >- Workspaces and organizations this user may access. Note\: The API will only return workspaces and organizations that also contain the authenticated user. readOnly: true type: array items: $ref: '#/components/schemas/WorkspaceCompact' custom_fields: description: Array of Custom Fields. type: array items: $ref: '#/components/schemas/CustomFieldCompact' UserTaskListBase: $ref: '#/components/schemas/UserTaskListCompact' UserTaskListCompact: description: >- A user task list represents the tasks assigned to a particular user. It provides API access to a user’s [My tasks](https://asana.com/guide/help/fundamentals/my-tasks) view in Asana. type: object properties: gid: description: >- Globally unique identifier of the resource, as a string. type: string readOnly: true example: '12345' x-insert-after: false resource_type: description: The base type of this resource. type: string readOnly: true example: user_task_list x-insert-after: gid name: description: The name of the user task list. type: string example: My tasks in My Workspace owner: description: >- The owner of the user task list, i.e. the person whose My Tasks is represented by this resource. readOnly: true allOf: - $ref: '#/components/schemas/UserCompact' workspace: description: The workspace in which the user task list is located. readOnly: true allOf: - $ref: '#/components/schemas/WorkspaceCompact' UserTaskListRequest: $ref: '#/components/schemas/UserTaskListBase' UserTaskListResponse: $ref: '#/components/schemas/UserTaskListBase' WebhookCompact: description: >- Webhook objects represent the state of an active subscription for a server to be updated with information from Asana. This schema represents the subscription itself, not the objects that are sent to the server. For information on those please refer to the [event](/reference/events) schema. type: object properties: gid: description: >- Globally unique identifier of the resource, as a string. type: string readOnly: true example: '12345' x-insert-after: false resource_type: description: The base type of this resource. type: string readOnly: true example: webhook x-insert-after: gid active: description: >- If true, the webhook will send events - if false it is considered inactive and will not generate events. type: boolean readOnly: true example: false resource: $ref: '#/components/schemas/AsanaNamedResource' target: description: The URL to receive the HTTP POST. type: string format: uri readOnly: true example: https://example.com/receive-webhook/7654 WebhookFilter: type: object description: >- A WebhookFilter can be passed on creation of a webhook in order to filter the types of actions that trigger delivery of an [event](/reference/events) properties: resource_type: type: string description: >- The type of the resource which created the event when modified; for example, to filter to changes on regular tasks this field should be set to `task`. example: task resource_subtype: description: >- The resource subtype of the resource that the filter applies to. This should be set to the same value as is returned on the `resource_subtype` field on the resources themselves. type: string example: milestone action: type: string description: >- The type of change on the **resource** to pass through the filter. For more information refer to `Event.action` in the [event](/reference/events) schema. This can be one of `changed`, `added`, `removed`, `deleted`, and `undeleted` depending on the nature of what has occurred on the resource. example: changed fields: type: array description: >- *Conditional.* A whitelist of fields for events which will pass the filter when the resource is changed. These can be any combination of the fields on the resources themselves. This field is only valid for `action` of type `changed` *Note: Subscriptions created on higher-level resources such as a Workspace, Team, or Portfolio do not support fields.* items: type: string example: - due_at - due_on - dependencies WebhookRequest: type: object properties: resource: description: >- A resource ID to subscribe to. Many Asana resources are valid to create webhooks on, but higher-level resources require filters. type: string example: '12345' target: description: >- The URL to receive the HTTP POST. The full URL will be used to deliver events from this webhook (including parameters) which allows encoding of application-specific state when the webhook is created. type: string format: uri example: >- https://example.com/receive-webhook/7654?app_specific_param=app_specific_value filters: type: array description: >- An array of WebhookFilter objects to specify a whitelist of filters to apply to events from this webhook. If a webhook event passes any of the filters the event will be delivered; otherwise no event will be sent to the receiving server. items: allOf: - $ref: '#/components/schemas/WebhookFilter' - description: >- A set of filters to specify a whitelist for what types of events will be delivered. - type: object required: - resource - target WebhookResponse: allOf: - $ref: '#/components/schemas/WebhookCompact' - type: object properties: created_at: description: The time at which this resource was created. type: string format: date-time readOnly: true example: '2012-02-22T02:06:58.147Z' last_failure_at: description: >- The timestamp when the webhook last received an error when sending an event to the target. type: string format: date-time readOnly: true example: '2012-02-22T02:06:58.147Z' last_failure_content: description: >- The contents of the last error response sent to the webhook when attempting to deliver events to the target. type: string readOnly: true example: 500 Server Error\n\nCould not complete the request last_success_at: description: >- The timestamp when the webhook last successfully sent an event to the target. type: string format: date-time readOnly: true example: '2012-02-22T02:06:58.147Z' delivery_retry_count: description: >- The number of times the webhook has retried delivery of events to the target (resets after a successful attempt). type: integer readOnly: true example: 3 next_attempt_after: description: >- The timestamp after which the webhook will next attempt to deliver an event to the target. type: string format: date-time readOnly: true example: '2012-02-22T02:06:58.147Z' failure_deletion_timestamp: description: >- The timestamp when the webhook will be deleted if there is no successful attempt to deliver events to the target type: string format: date-time readOnly: true example: '2012-02-22T02:06:58.147Z' filters: description: >- Whitelist of filters to apply to events from this webhook. If a webhook event passes any of the filters the event will be delivered; otherwise no event will be sent to the receiving server. type: array items: allOf: - $ref: '#/components/schemas/WebhookFilter' - description: A set of filters to specify a whitelist for what types of events will be delivered. - type: object WebhookUpdateRequest: type: object properties: filters: type: array description: >- An array of WebhookFilter objects to specify a whitelist of filters to apply to events from this webhook. If a webhook event passes any of the filters the event will be delivered; otherwise no event will be sent to the receiving server. items: allOf: - $ref: '#/components/schemas/WebhookFilter' - description: >- A set of filters to specify a whitelist for what types of events will be delivered. - type: object WorkspaceAddUserRequest: type: object description: A user identification object for specification with the addUser/removeUser endpoints. properties: user: description: >- A string identifying a user. This can either be the string "me", an email, or the gid of a user. type: string example: '12345' WorkspaceBase: $ref: '#/components/schemas/WorkspaceCompact' WorkspaceCompact: description: >- A *workspace* is the highest-level organizational unit in Asana. All projects and tasks have an associated workspace. type: object properties: gid: description: >- Globally unique identifier of the resource, as a string. type: string readOnly: true example: '12345' x-insert-after: false resource_type: description: The base type of this resource. type: string readOnly: true example: workspace x-insert-after: gid name: description: The name of the workspace. type: string example: My Company Workspace WorkspaceMembershipBase: $ref: '#/components/schemas/WorkspaceMembershipCompact' WorkspaceMembershipCompact: description: >- This object determines if a user is a member of a workspace. type: object properties: gid: description: >- Globally unique identifier of the resource, as a string. type: string readOnly: true example: '12345' x-insert-after: false resource_type: description: The base type of this resource. type: string readOnly: true example: workspace_membership x-insert-after: gid user: $ref: '#/components/schemas/UserCompact' workspace: $ref: '#/components/schemas/WorkspaceCompact' WorkspaceMembershipRequest: $ref: '#/components/schemas/WorkspaceMembershipBase' WorkspaceMembershipResponse: allOf: - $ref: '#/components/schemas/WorkspaceMembershipBase' - type: object properties: user_task_list: $ref: '#/components/schemas/UserTaskListResponse' description: >- The user's "My tasks" in the workspace. readOnly: true is_active: type: boolean readOnly: true description: >- Indicates whether the user is currently associated with the workspace. Returns `true` for users who have joined the workspace or have been invited but not yet accepted. is_admin: type: boolean readOnly: true description: >- Reflects if this user is an admin of the workspace. is_guest: type: boolean readOnly: true description: >- Reflects if this user is a guest of the workspace. is_view_only: type: boolean readOnly: true description: >- Reflects if this user has view only license in the workspace. vacation_dates: type: object readOnly: true nullable: true description: >- Contains keys `start_on` and `end_on` for the vacation dates for the user in this workspace. If `start_on` is null, the entire `vacation_dates` object will be null. If `end_on` is before today, the entire `vacation_dates` object will be null. properties: start_on: description: The day on which the user's vacation in this workspace starts. This is a date with `YYYY-MM-DD` format. type: string example: '2022-11-05' end_on: description: The day on which the user's vacation in this workspace ends, or null if there is no end date. This is a date with `YYYY-MM-DD` format. nullable: true type: string example: '2022-11-07' created_at: description: The time at which this resource was created. type: string format: date-time readOnly: true example: '2012-02-22T02:06:58.147Z' WorkspaceRemoveUserRequest: type: object description: A user identification object for specification with the addUser/removeUser endpoints. properties: user: description: >- A string identifying a user. This can either be the string "me", an email, or the gid of a user. type: string example: '12345' WorkspaceRequest: $ref: '#/components/schemas/WorkspaceBase' WorkspaceResponse: allOf: - $ref: '#/components/schemas/WorkspaceBase' - type: object properties: email_domains: description: The email domains that are associated with this workspace. type: array items: type: string format: uri example: - asana.com is_organization: description: Whether the workspace is an *organization*. type: boolean example: false GoalMembershipBase: description: This object represents a user's connection to a goal. type: object properties: gid: description: >- Globally unique identifier of the resource, as a string. type: string readOnly: true example: '12345' x-insert-after: false resource_type: description: The base type of this resource. type: string example: membership resource_subtype: type: string readOnly: true description: The type of membership. example: goal_membership member: $ref: '#/components/schemas/MemberCompact' parent: allOf: - $ref: '#/components/schemas/GoalCompact' - type: object readOnly: true role: type: string description: >- *Deprecated: Describes if the member is a commenter or editor in goal.* enum: - commenter - editor deprecated: true example: editor access_level: type: string description: >- "Describes the membership access level for the goal. This is preferred over role." enum: - viewer - commenter - editor - admin example: editor goal: allOf: - $ref: '#/components/schemas/GoalCompact' - type: object readOnly: true deprecated: true description: >- *Deprecated: new integrations should prefer the `parent` field.* A *Goal* is an object in the goal-tracking system that helps your organization drive measurable results. GoalMembershipCompact: allOf: - $ref: '#/components/schemas/GoalMembershipBase' - type: object properties: is_commenter: type: boolean deprecated: true readOnly: true description: >- *Deprecated: new integrations should prefer the `access_level` field.* Describes if the member is comment only in goal. This field is deprecated and will always be null. example: false is_editor: type: boolean deprecated: true readOnly: true description: >- *Deprecated: new integrations should prefer the `access_level` field.* Describes if the member is editor in goal. This field is deprecated and will always be null. example: false GoalMembershipResponse: allOf: - $ref: '#/components/schemas/GoalMembershipBase' - type: object properties: user: allOf: - $ref: '#/components/schemas/UserCompact' - type: object deprecated: true readOnly: true description: >- *Deprecated: new integrations should prefer the `member` field.* A *user* object represents an account in Asana that can be given access to various workspaces, projects, and tasks. workspace: allOf: - $ref: '#/components/schemas/WorkspaceCompact' - type: object deprecated: true readOnly: true description: >- *Deprecated:* A *workspace* is the highest-level organizational unit in Asana. All projects and tasks have an associated workspace. MembershipUpdateRequest: type: object properties: access_level: description: The role given to the member. Goals can have access levels `editor` or `commenter`. Projects can have access levels `admin`, `editor` or `commenter`. Portfolios can have access levels `admin`, `editor` or `viewer`. type: string example: editor MembershipRequest: type: object properties: access_level: description: >- Sets the access level for the member. Goals can have access levels `viewer`, `commenter`, `editor` or `admin`. Projects can have access levels `admin`, `editor` or `commenter`. Portfolios can have access levels `admin`, `editor` or `viewer`. Custom Fields can have access levels `admin`, `editor` or `user`. type: string example: editor CreateMembershipRequest: allOf: - $ref: '#/components/schemas/MembershipRequest' - type: object properties: member: description: The gid of the user or team. type: string example: 12345 parent: description: The gid of the `goal`, `project`, or `portfolio` to add the member to. type: string example: '987654' role: description: >- *Deprecated: new integrations should use access_level* The role given to the member. Optional argument, will default to `commenter` for goals and the default project role for projects. Can be `editor` or `commenter` for goals. Can be `admin`,`editor` or `commenter` for projects. type: string deprecated: true example: editor MembershipResponse: anyOf: - $ref: '#/components/schemas/GoalMembershipResponse' - $ref: '#/components/schemas/ProjectMembershipCompactResponse' - $ref: '#/components/schemas/PortfolioMembershipResponse' - $ref: '#/components/schemas/CustomFieldMembershipResponse' - $ref: '#/components/schemas/CustomTypeMembershipResponse' UpdateTimeTrackingEntryRequest: type: object properties: duration_minutes: description: >- *Optional*. Time in minutes tracked by the entry type: integer example: 12 entered_on: description: >- *Optional*. The day that this entry is logged on. Defaults to today if no day specified type: string format: date example: '2023-03-19' attributable_to: type: string description: >- *Optional*. The gid of the project which the time is attributable to. example: '987654' CreateTimeTrackingEntryRequest: type: object properties: duration_minutes: description: >- Time in minutes tracked by the entry. Must be greater than 0 type: integer example: 12 entered_on: description: >- *Optional*. The day that this entry is logged on. Defaults to today if not specified type: string format: date example: '2023-03-19' attributable_to: type: string description: >- *Optional*. The gid of the project which the time is attributable to. example: '987654' TimeTrackingEntryCompact: description: >- A generic Asana Resource, containing a globally unique identifier. type: object properties: gid: description: >- Globally unique identifier of the resource, as a string. type: string readOnly: true example: '12345' x-insert-after: false resource_type: description: The base type of this resource. type: string readOnly: true example: time_tracking_entry x-insert-after: gid duration_minutes: description: >- Time in minutes tracked by the entry. type: integer example: 12 entered_on: description: >- The day that this entry is logged on. type: string format: date example: '2015-03-14' attributable_to: allOf: - $ref: '#/components/schemas/ProjectCompact' - type: object description: >- The attributable to project specifies which project's budget a time entry should be counted toward, if the task belongs to more than one project. If it only belongs to one project, it should be that project. created_by: $ref: '#/components/schemas/UserCompact' readOnly: true TimeTrackingEntryBase: allOf: - $ref: '#/components/schemas/TimeTrackingEntryCompact' - type: object properties: task: $ref: '#/components/schemas/TaskCompact' readOnly: true created_at: description: The time at which this resource was created. type: string format: date-time readOnly: true example: '2012-02-22T02:06:58.147Z' approval_status: description: >- *Optional*. The current approval status of the entry. type: string readOnly: true enum: - DRAFT - SUBMITTED - APPROVED - REJECTED example: DRAFT billable_status: description: >- *Optional*. The current billable status of the entry. type: string readOnly: true enum: - billable - nonBillable - notApplicable example: billable description: description: >- *Optional*. The description of the entry. type: string readOnly: true example: My description of work done on this entry AccessRequestResponse: description: >- A *access request* object represents a request to access a shareable resource within Asana. It includes the requester's information, approval status, and target resource details. type: object properties: gid: description: >- Globally unique identifier of the resource, as a string. type: string readOnly: true example: '12345' x-insert-after: false resource_type: description: The base type of this resource. type: string readOnly: true example: access_request x-insert-after: gid message: description: >- The message included in the access request, if any. type: string example: Please grant me access to this resource. approval_status: description: >- The current approval status of the request. type: string enum: - pending - approved - denied example: pending requester: $ref: '#/components/schemas/UserCompact' description: >- The user who made the access request. readOnly: true target: $ref: '#/components/schemas/AccessRequestTargetIdCompact' description: >- The target resource that the requester wants access to. readOnly: true AccessRequestTargetIdCompact: description: >- A *target id* object represents the target resource that the requester wants access to. type: object properties: gid: description: >- Globally unique identifier of the resource, as a string. type: string readOnly: true example: '12345' x-insert-after: false resource_type: description: The base type of this resource. type: string readOnly: true example: project x-insert-after: gid AccessRequestCreateRequest: type: object required: - target description: A request to create shareable access for a user. properties: target: description: >- The access requestable object that the user is requesting access to. This is the gid of the target. Supports projects and portfolios. type: string example: '12345' message: type: string description: >- The optional message to include with the access request. This can be used to provide context or additional information about the request. example: I'm looking to request access to this item. nullable: true AccessRequestApproveRequest: type: object description: A request to approve access for a user. properties: access_request_gid: description: >- The ID of the access request that the user is approving. type: string example: '12345' AccessRequestRejectRequest: type: object description: A request to reject access for a user. properties: access_request_gid: description: >- The ID of the access request that the user is rejecting. type: string example: '12345' ReactionCompact: type: object description: An emoji reaction on an object. properties: gid: description: >- The ID of the reaction object. type: string example: '12345' emoji: description: >- The emoji string used in the reaction. type: string example: 👍 user: $ref: '#/components/schemas/UserCompact' readOnly: true ReactionSummaryItemCompact: type: object description: A summary of an emoji reaction on an object. properties: emoji_base: description: >- The emoji base character used in the reaction. type: string example: 👎 variant: description: >- The full emoji string used in the reaction. type: string example: 👎🏼 count: description: >- The number of reactions with the emoji variant on the object. type: number example: 1 reacted: description: >- Whether the current user has reacted with the emoji variant on the object. type: boolean example: false securitySchemes: personalAccessToken: type: http description: >- A personal access token allows access to the api for the user who created it. This should be kept a secret and be treated like a password. scheme: bearer oauth2: type: oauth2 description: >- We require that applications designed to access the Asana API on behalf of multiple users implement OAuth 2.0. Asana supports the Authorization Code Grant flow. flows: authorizationCode: authorizationUrl: https://app.asana.com/-/oauth_authorize tokenUrl: https://app.asana.com/-/oauth_token refreshUrl: https://app.asana.com/-/oauth_token scopes: default: >- Provides access to all endpoints documented in our API reference. If no scopes are requested, this scope is assumed by default. openid: >- Provides access to OpenID Connect ID tokens and the OpenID Connect user info endpoint. email: >- Provides access to the user’s email through the OpenID Connect user info endpoint. profile: >- Provides access to the user’s name and profile photo through the OpenID Connect user info endpoint. attachments:read: View access to attachments attachments:write: Create and modify access to attachments attachments:delete: Delete access to attachments custom_fields:read: View access to custom fields custom_fields:write: Create and modify access to custom fields goals:read: View access to goals jobs:read: View access to jobs tasks:read: View access to tasks tasks:write: Create and modify access to tasks tasks:delete: Delete access to tasks task_custom_types:read: View access to task custom types task_templates:read: View access to task templates team_memberships:read: View access to team memberships portfolios:read: View access to portfolios portfolios:write: Create and modify access to portfolios project_templates:read: View access to project templates projects:delete: Delete access to projects projects:read: View access to projects projects:write: Create and modify access to projects roles:read: View access to roles roles:write: Create and modify access to roles roles:delete: Delete access to roles users:read: View access to users teams:read: View access to teams time_tracking_entries:read: View access to time tracking entries timesheet_approval_statuses:read: View access to timesheet approval statuses timesheet_approval_statuses:write: Create and modify access to timesheet approval statuses stories:read: View access to stories stories:write: Create and modify access to stories tags:read: View access to tags tags:write: Create and modify access to tags webhooks:read: View access to webhooks webhooks:write: Create and modify access to webhooks webhooks:delete: Delete access to webhooks workspaces:read: View access to workspaces paths: /access_requests: get: summary: Get access requests description: Returns the pending access requests for a target object or a target object filtered by user. tags: - Access requests operationId: getAccessRequests parameters: - $ref: '#/components/parameters/target_query_param' - $ref: '#/components/parameters/user_query_param' - $ref: '#/components/parameters/pretty' - name: opt_fields in: query description: 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. required: false example: - approval_status - message - requester - requester.name - target schema: type: array items: type: string enum: - approval_status - message - requester - requester.name - target style: form explode: false responses: 200: description: Successfully retrieved access requests. content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/AccessRequestResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 402: $ref: '#/components/responses/PaymentRequired' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: [] x-readme: code-samples: - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let accessRequestsApiInstance = new Asana.AccessRequestsApi(client); let target = "1331"; // String | Globally unique identifier for the target object. let opts = { 'user': "me", 'opt_fields': "approval_status,message,requester,requester.name,target" }; accessRequestsApiInstance.getAccessRequests(target, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class access_requests_api_instance = asana.AccessRequestsApi(api_client) target = "1331" # str | Globally unique identifier for the target object. opts = { 'user': "me", # str | A string identifying a user. This can either be the string \"me\", an email, or the gid of a user. 'opt_fields': "approval_status,message,requester,requester.name,target", # list[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. } try: # Get access requests api_response = access_requests_api_instance.get_access_requests(target, opts) for data in api_response: pprint(data) except ApiException as e: print("Exception when calling AccessRequestsApi->get_access_requests: %s\n" % e) name: python-sdk-v5 post: summary: Create an access request description: Submits a new access request for a private object. Currently supports projects and portfolios. operationId: createAccessRequest tags: - Access requests requestBody: required: true content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/AccessRequestCreateRequest' responses: 201: description: Successfully created a new access request. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/AccessRequestResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 402: $ref: '#/components/responses/PaymentRequired' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: [] x-readme: code-samples: - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let accessRequestsApiInstance = new Asana.AccessRequestsApi(client); let body = {"data": {"": "", "": "",}}; // Object | accessRequestsApiInstance.createAccessRequest(body).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class access_requests_api_instance = asana.AccessRequestsApi(api_client) body = {"data": {"": "", "": "",}} # dict | try: # Create an access request api_response = access_requests_api_instance.create_access_request(body) pprint(api_response) except ApiException as e: print("Exception when calling AccessRequestsApi->create_access_request: %s\n" % e) name: python-sdk-v5 /access_requests/{access_request_gid}/approve: post: summary: Approve an access request description: Approves an access request for a target object. tags: - Access requests operationId: approveAccessRequest parameters: - $ref: '#/components/parameters/access_request_gid' responses: 200: description: Successfully approved an access request. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/EmptyResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: [] x-readme: code-samples: - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let accessRequestsApiInstance = new Asana.AccessRequestsApi(client); let access_request_gid = "12345"; // String | Globally unique identifier for the access request. accessRequestsApiInstance.approveAccessRequest(access_request_gid).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class access_requests_api_instance = asana.AccessRequestsApi(api_client) access_request_gid = "12345" # str | Globally unique identifier for the access request. try: # Approve an access request api_response = access_requests_api_instance.approve_access_request(access_request_gid) pprint(api_response) except ApiException as e: print("Exception when calling AccessRequestsApi->approve_access_request: %s\n" % e) name: python-sdk-v5 /access_requests/{access_request_gid}/reject: post: summary: Reject an access request description: Rejects an access request for a target object. tags: - Access requests operationId: rejectAccessRequest parameters: - $ref: '#/components/parameters/access_request_gid' responses: 200: description: Successfully rejected an access request. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/EmptyResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: [] x-readme: code-samples: - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let accessRequestsApiInstance = new Asana.AccessRequestsApi(client); let access_request_gid = "12345"; // String | Globally unique identifier for the access request. accessRequestsApiInstance.rejectAccessRequest(access_request_gid).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class access_requests_api_instance = asana.AccessRequestsApi(api_client) access_request_gid = "12345" # str | Globally unique identifier for the access request. try: # Reject an access request api_response = access_requests_api_instance.reject_access_request(access_request_gid) pprint(api_response) except ApiException as e: print("Exception when calling AccessRequestsApi->reject_access_request: %s\n" % e) name: python-sdk-v5 /allocations/{allocation_gid}: parameters: - $ref: '#/components/parameters/allocation_path_gid' - $ref: '#/components/parameters/pretty' get: summary: Get an allocation description: Returns the complete allocation record for a single allocation. tags: - Allocations operationId: getAllocation parameters: - name: opt_fields in: query description: 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. required: false example: - assignee - assignee.name - created_by - created_by.name - effort - effort.type - effort.value - end_date - parent - parent.name - resource_subtype - start_date schema: type: array items: type: string enum: - assignee - assignee.name - created_by - created_by.name - effort - effort.type - effort.value - end_date - parent - parent.name - resource_subtype - start_date style: form explode: false responses: 200: description: Successfully retrieved the record for a single allocation. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/AllocationResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 402: $ref: '#/components/responses/PaymentRequired' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: [] x-readme: code-samples: - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let allocationsApiInstance = new Asana.AllocationsApi(client); let allocation_gid = "77688"; // String | Globally unique identifier for the allocation. let opts = { 'opt_fields': "assignee,assignee.name,created_by,created_by.name,effort,effort.type,effort.value,end_date,parent,parent.name,resource_subtype,start_date" }; allocationsApiInstance.getAllocation(allocation_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.allocations.getAllocation(allocationGid, {param: "value", param: "value", opt_pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class allocations_api_instance = asana.AllocationsApi(api_client) allocation_gid = "77688" # str | Globally unique identifier for the allocation. opts = { 'opt_fields': "assignee,assignee.name,created_by,created_by.name,effort,effort.type,effort.value,end_date,parent,parent.name,resource_subtype,start_date", # list[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. } try: # Get an allocation api_response = allocations_api_instance.get_allocation(allocation_gid, opts) pprint(api_response) except ApiException as e: print("Exception when calling AllocationsApi->get_allocation: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.allocations.get_allocation(allocation_gid, {'param': 'value', 'param': 'value'}, opt_pretty=True) name: python-sdk-v3 put: summary: Update an allocation description: |- An existing allocation can be updated by making a PUT request on the URL for that allocation. Only the fields provided in the `data` block will be updated; any unspecified fields will remain unchanged. Returns the complete updated allocation record. tags: - Allocations operationId: updateAllocation parameters: - name: opt_fields in: query description: 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. required: false example: - assignee - assignee.name - created_by - created_by.name - effort - effort.type - effort.value - end_date - parent - parent.name - resource_subtype - start_date schema: type: array items: type: string enum: - assignee - assignee.name - created_by - created_by.name - effort - effort.type - effort.value - end_date - parent - parent.name - resource_subtype - start_date style: form explode: false requestBody: description: The updated fields for the allocation. required: true content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/AllocationRequest' responses: 200: description: Successfully updated the allocation. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/AllocationResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: [] x-readme: code-samples: - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let allocationsApiInstance = new Asana.AllocationsApi(client); let body = {"data": {"": "", "": "",}}; // Object | The updated fields for the allocation. let allocation_gid = "77688"; // String | Globally unique identifier for the allocation. let opts = { 'opt_fields': "assignee,assignee.name,created_by,created_by.name,effort,effort.type,effort.value,end_date,parent,parent.name,resource_subtype,start_date" }; allocationsApiInstance.updateAllocation(body, allocation_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.allocations.updateAllocation(allocationGid, {field: "value", field: "value", pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class allocations_api_instance = asana.AllocationsApi(api_client) body = {"data": {"": "", "": "",}} # dict | The updated fields for the allocation. allocation_gid = "77688" # str | Globally unique identifier for the allocation. opts = { 'opt_fields': "assignee,assignee.name,created_by,created_by.name,effort,effort.type,effort.value,end_date,parent,parent.name,resource_subtype,start_date", # list[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. } try: # Update an allocation api_response = allocations_api_instance.update_allocation(body, allocation_gid, opts) pprint(api_response) except ApiException as e: print("Exception when calling AllocationsApi->update_allocation: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.allocations.update_allocation(allocation_gid, {'field': 'value', 'field': 'value'}, opt_pretty=True) name: python-sdk-v3 delete: summary: Delete an allocation description: |- A specific, existing allocation can be deleted by making a DELETE request on the URL for that allocation. Returns an empty data record. tags: - Allocations operationId: deleteAllocation responses: 200: description: Successfully deleted the specified allocation. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/EmptyResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 402: $ref: '#/components/responses/PaymentRequired' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: [] x-readme: code-samples: - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let allocationsApiInstance = new Asana.AllocationsApi(client); let allocation_gid = "77688"; // String | Globally unique identifier for the allocation. allocationsApiInstance.deleteAllocation(allocation_gid).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.allocations.deleteAllocation(allocationGid) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class allocations_api_instance = asana.AllocationsApi(api_client) allocation_gid = "77688" # str | Globally unique identifier for the allocation. try: # Delete an allocation api_response = allocations_api_instance.delete_allocation(allocation_gid) pprint(api_response) except ApiException as e: print("Exception when calling AllocationsApi->delete_allocation: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.allocations.delete_allocation(allocation_gid, opt_pretty=True) name: python-sdk-v3 /allocations: parameters: - $ref: '#/components/parameters/pretty' get: summary: Get multiple allocations description: >- Returns a list of allocations filtered to a specific project, user or placeholder. tags: - Allocations operationId: getAllocations parameters: - name: parent in: query description: Globally unique identifier for the project to filter allocations by. schema: type: string example: '77688' - name: assignee in: query description: Globally unique identifier for the user or placeholder the allocation is assigned to. schema: type: string example: '12345' - name: workspace in: query description: Globally unique identifier for the workspace. schema: type: string example: '98765' - $ref: '#/components/parameters/limit' - $ref: '#/components/parameters/offset' - name: opt_fields in: query description: 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. required: false example: - assignee - assignee.name - created_by - created_by.name - effort - effort.type - effort.value - end_date - offset - parent - parent.name - path - resource_subtype - start_date - uri schema: type: array items: type: string enum: - assignee - assignee.name - created_by - created_by.name - effort - effort.type - effort.value - end_date - offset - parent - parent.name - path - resource_subtype - start_date - uri style: form explode: false responses: 200: description: >- Successfully retrieved the requested allocations. content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/AllocationResponse' next_page: $ref: '#/components/schemas/NextPage' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 402: $ref: '#/components/responses/PaymentRequired' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: [] x-readme: code-samples: - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let allocationsApiInstance = new Asana.AllocationsApi(client); let opts = { 'parent': "77688", 'assignee': "12345", 'workspace': "98765", 'limit': 50, 'offset': "eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9", 'opt_fields': "assignee,assignee.name,created_by,created_by.name,effort,effort.type,effort.value,end_date,offset,parent,parent.name,path,resource_subtype,start_date,uri" }; allocationsApiInstance.getAllocations(opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.allocations.getAllocations({param: "value", param: "value", opt_pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class allocations_api_instance = asana.AllocationsApi(api_client) opts = { 'parent': "77688", # str | Globally unique identifier for the project to filter allocations by. 'assignee': "12345", # str | Globally unique identifier for the user or placeholder the allocation is assigned to. 'workspace': "98765", # str | Globally unique identifier for the workspace. 'limit': 50, # int | Results per page. The number of objects to return per page. The value must be between 1 and 100. 'offset': "eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9", # 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': "assignee,assignee.name,created_by,created_by.name,effort,effort.type,effort.value,end_date,offset,parent,parent.name,path,resource_subtype,start_date,uri", # list[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. } try: # Get multiple allocations api_response = allocations_api_instance.get_allocations(opts) for data in api_response: pprint(data) except ApiException as e: print("Exception when calling AllocationsApi->get_allocations: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.allocations.get_allocations({'param': 'value', 'param': 'value'}, opt_pretty=True) name: python-sdk-v3 post: summary: Create an allocation description: |- Creates a new allocation. Returns the full record of the newly created allocation. tags: - Allocations operationId: createAllocation parameters: - name: opt_fields in: query description: 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. required: false example: - assignee - assignee.name - created_by - created_by.name - effort - effort.type - effort.value - end_date - parent - parent.name - resource_subtype - start_date schema: type: array items: type: string enum: - assignee - assignee.name - created_by - created_by.name - effort - effort.type - effort.value - end_date - parent - parent.name - resource_subtype - start_date style: form explode: false requestBody: description: The allocation to create. required: true content: application/json: schema: type: object properties: data: allOf: - $ref: '#/components/schemas/AllocationRequest' - type: object required: - assignee - end_date - parent - start_date responses: 201: description: Successfully created a new allocation. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/AllocationResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 402: $ref: '#/components/responses/PaymentRequired' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: [] x-readme: code-samples: - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let allocationsApiInstance = new Asana.AllocationsApi(client); let body = {"data": {"": "", "": "",}}; // Object | The allocation to create. let opts = { 'opt_fields': "assignee,assignee.name,created_by,created_by.name,effort,effort.type,effort.value,end_date,parent,parent.name,resource_subtype,start_date" }; allocationsApiInstance.createAllocation(body, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.allocations.createAllocation({field: "value", field: "value", pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class allocations_api_instance = asana.AllocationsApi(api_client) body = {"data": {"": "", "": "",}} # dict | The allocation to create. opts = { 'opt_fields': "assignee,assignee.name,created_by,created_by.name,effort,effort.type,effort.value,end_date,parent,parent.name,resource_subtype,start_date", # list[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. } try: # Create an allocation api_response = allocations_api_instance.create_allocation(body, opts) pprint(api_response) except ApiException as e: print("Exception when calling AllocationsApi->create_allocation: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.allocations.create_allocation({'field': 'value', 'field': 'value'}, opt_pretty=True) name: python-sdk-v3 /attachments/{attachment_gid}: parameters: - $ref: '#/components/parameters/attachment_path_gid' - $ref: '#/components/parameters/pretty' get: summary: Get an attachment description: |- Required scope: attachments:read Get the full record for a single attachment. tags: - Attachments operationId: getAttachment parameters: - name: opt_fields in: query description: 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. required: false example: - connected_to_app - created_at - download_url - host - name - parent - parent.created_by - parent.name - parent.resource_subtype - permanent_url - resource_subtype - size - view_url schema: type: array items: type: string enum: - connected_to_app - created_at - download_url - host - name - parent - parent.created_by - parent.name - parent.resource_subtype - permanent_url - resource_subtype - size - view_url style: form explode: false responses: 200: description: Successfully retrieved the record for a single attachment. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/AttachmentResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 402: $ref: '#/components/responses/PaymentRequired' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 424: $ref: '#/components/responses/TooManyRequests' 500: $ref: '#/components/responses/InternalServerError' 501: $ref: '#/components/responses/BadGateway' 503: $ref: '#/components/responses/ServiceUnavailable' 504: $ref: '#/components/responses/GatewayTimeout' security: - personalAccessToken: [] - oauth2: - attachments:read x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); Attachment result = client.attachments.getAttachment(attachmentGid) .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let attachmentsApiInstance = new Asana.AttachmentsApi(client); let attachment_gid = "12345"; // String | Globally unique identifier for the attachment. let opts = { 'opt_fields': "connected_to_app,created_at,download_url,host,name,parent,parent.created_by,parent.name,parent.resource_subtype,permanent_url,resource_subtype,size,view_url" }; attachmentsApiInstance.getAttachment(attachment_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.attachments.getAttachment(attachmentGid, {param: "value", param: "value", opt_pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class attachments_api_instance = asana.AttachmentsApi(api_client) attachment_gid = "12345" # str | Globally unique identifier for the attachment. opts = { 'opt_fields': "connected_to_app,created_at,download_url,host,name,parent,parent.created_by,parent.name,parent.resource_subtype,permanent_url,resource_subtype,size,view_url", # list[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. } try: # Get an attachment api_response = attachments_api_instance.get_attachment(attachment_gid, opts) pprint(api_response) except ApiException as e: print("Exception when calling AttachmentsApi->get_attachment: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.attachments.get_attachment(attachment_gid, {'param': 'value', 'param': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- attachments->getAttachment($attachment_gid, array('param' => 'value', 'param' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.attachments.get_attachment(attachment_gid: 'attachment_gid', param: "value", param: "value", options: {pretty: true}) delete: summary: Delete an attachment description: |- Required scope: attachments:delete Deletes a specific, existing attachment. Returns an empty data record. tags: - Attachments operationId: deleteAttachment responses: 200: description: Successfully deleted the specified attachment. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/EmptyResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: - attachments:delete x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); JsonElement result = client.attachments.deleteAttachment(attachmentGid) .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let attachmentsApiInstance = new Asana.AttachmentsApi(client); let attachment_gid = "12345"; // String | Globally unique identifier for the attachment. attachmentsApiInstance.deleteAttachment(attachment_gid).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.attachments.deleteAttachment(attachmentGid) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class attachments_api_instance = asana.AttachmentsApi(api_client) attachment_gid = "12345" # str | Globally unique identifier for the attachment. try: # Delete an attachment api_response = attachments_api_instance.delete_attachment(attachment_gid) pprint(api_response) except ApiException as e: print("Exception when calling AttachmentsApi->delete_attachment: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.attachments.delete_attachment(attachment_gid, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- attachments->deleteAttachment($attachment_gid, array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.attachments.delete_attachment(attachment_gid: 'attachment_gid', options: {pretty: true}) /attachments: parameters: - $ref: '#/components/parameters/pretty' get: summary: Get attachments from an object description: |- Required scope: attachments:read Returns the compact records for all attachments on the object. There are three possible `parent` values for this request: `project`, `project_brief`, and `task`. For a project, an attachment refers to a file uploaded to the "Key resources" section in the project Overview. For a project brief, an attachment refers to inline files in the project brief itself. For a task, an attachment refers to a file directly associated to that task. Note that within the Asana app, inline images in the task description do not appear in the index of image thumbnails nor as stories in the task. However, requests made to `GET /attachments` for a task will return all of the images in the task, including inline images. tags: - Attachments operationId: getAttachmentsForObject parameters: - $ref: '#/components/parameters/limit' - $ref: '#/components/parameters/offset' - name: parent required: true in: query description: >- Globally unique identifier for object to fetch statuses from. Must be a GID for a `project`, `project_brief`, or `task`. schema: type: string example: '159874' - name: opt_fields in: query description: 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. required: false example: - connected_to_app - created_at - download_url - host - name - offset - parent - parent.created_by - parent.name - parent.resource_subtype - path - permanent_url - resource_subtype - size - uri - view_url schema: type: array items: type: string enum: - connected_to_app - created_at - download_url - host - name - offset - parent - parent.created_by - parent.name - parent.resource_subtype - path - permanent_url - resource_subtype - size - uri - view_url style: form explode: false responses: 200: description: >- Successfully retrieved the specified object's attachments. content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/AttachmentCompact' next_page: $ref: '#/components/schemas/NextPage' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: - attachments:read x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); List result = client.attachments.getAttachmentsForObject(parent) .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let attachmentsApiInstance = new Asana.AttachmentsApi(client); let parent = "159874"; // String | Globally unique identifier for object to fetch statuses from. Must be a GID for a `project`, `project_brief`, or `task`. let opts = { 'limit': 50, 'offset': "eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9", 'opt_fields': "connected_to_app,created_at,download_url,host,name,offset,parent,parent.created_by,parent.name,parent.resource_subtype,path,permanent_url,resource_subtype,size,uri,view_url" }; attachmentsApiInstance.getAttachmentsForObject(parent, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.attachments.getAttachmentsForObject({param: "value", param: "value", opt_pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class attachments_api_instance = asana.AttachmentsApi(api_client) parent = "159874" # str | Globally unique identifier for object to fetch statuses from. Must be a GID for a `project`, `project_brief`, or `task`. opts = { 'limit': 50, # int | Results per page. The number of objects to return per page. The value must be between 1 and 100. 'offset': "eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9", # 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': "connected_to_app,created_at,download_url,host,name,offset,parent,parent.created_by,parent.name,parent.resource_subtype,path,permanent_url,resource_subtype,size,uri,view_url", # list[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. } try: # Get attachments from an object api_response = attachments_api_instance.get_attachments_for_object(parent, opts) for data in api_response: pprint(data) except ApiException as e: print("Exception when calling AttachmentsApi->get_attachments_for_object: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.attachments.get_attachments_for_object({'param': 'value', 'param': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- attachments->getAttachmentsForObject(array('param' => 'value', 'param' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.attachments.get_attachments_for_object(parent: ''parent_example'', param: "value", param: "value", options: {pretty: true}) post: summary: Upload an attachment description: |- Required scope: attachments:write Upload an attachment. This method uploads an attachment on an object and returns the compact record for the created attachment object. This is possible by either: - Providing the URL of the external resource being attached, or - Downloading the file content first and then uploading it as any other attachment. Note that it is not possible to attach files from third party services such as Dropbox, Box, Vimeo & Google Drive via the API The 100MB size limit on attachments in Asana is enforced on this endpoint. This endpoint expects a multipart/form-data encoded request containing the full contents of the file to be uploaded. Requests made should follow the HTTP/1.1 specification that line terminators are of the form `CRLF` or `\r\n` outlined [here](http://www.w3.org/Protocols/HTTP/1.1/draft-ietf-http-v11-spec-01#Basic-Rules) in order for the server to reliably and properly handle the request. For file names that contain non-ASCII characters, the file name should be URL-encoded. For example, a file named `résumé.pdf` should be encoded as `r%C3%A9sum%C3%A9.pdf` and the `filename` parameter in the `Content-Disposition` header should be set to the encoded file name. Below is an example of a cURL request with the `Content-Disposition` header: ``` export ASANA_PAT="" export PARENT_ID="" export ENCODED_NAME="r%C3%A9sum%C3%A9.pdf" curl --location 'https://app.asana.com/api/1.0/attachments' \ --header 'Content-Type: multipart/form-data' \ --header 'Accept: application/json' \ --header "Authorization: Bearer $ASANA_PAT" \ --form "parent=$PARENT_ID" \ --form "file=@/Users/exampleUser/Downloads/résumé.pdf;headers=\"Content-Disposition: form-data; name="file"; filename="$ENCODED_NAME.pdf"; filename*=UTF-8''$ENCODED_NAME.pdf\"" ``` tags: - Attachments operationId: createAttachmentForObject parameters: - name: opt_fields in: query description: 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. required: false example: - connected_to_app - created_at - download_url - host - name - parent - parent.created_by - parent.name - parent.resource_subtype - permanent_url - resource_subtype - size - view_url schema: type: array items: type: string enum: - connected_to_app - created_at - download_url - host - name - parent - parent.created_by - parent.name - parent.resource_subtype - permanent_url - resource_subtype - size - view_url style: form explode: false requestBody: description: |- The file you want to upload. *Note when using curl:* Be sure to add an `‘@’` before the file path, and use the `--form` option instead of the `-d` option. When uploading PDFs with curl, force the content-type to be pdf by appending the content type to the file path: `--form "file=@file.pdf;type=application/pdf"`. content: multipart/form-data: schema: $ref: '#/components/schemas/AttachmentRequest' responses: 200: description: Successfully uploaded the attachment to the parent object. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/AttachmentResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: - attachments:write x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); Attachment result = client.attachments.createAttachmentForObject(file, parent, url, name) .data("field", "value") .data("field", "value") .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); const fs = require("fs"); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let attachmentsApiInstance = new Asana.AttachmentsApi(client); let opts = { 'resource_subtype': "external", 'file': fs.createReadStream("file_example"), 'parent': "parent_example", 'url': "url_example", 'name': "name_example", 'connect_to_app': true, 'opt_fields': "connected_to_app,created_at,download_url,host,name,parent,parent.created_by,parent.name,parent.resource_subtype,permanent_url,resource_subtype,size,view_url" }; attachmentsApiInstance.createAttachmentForObject(opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.attachments.createAttachmentForObject({field: "value", field: "value", pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class attachments_api_instance = asana.AttachmentsApi(api_client) opts = { 'resource_subtype': "external", # str | 'file': "file_example", # str | 'parent': "parent_example", # str | 'url': "url_example", # str | 'name': "name_example", # str | 'connect_to_app': True, # bool | 'opt_fields': "connected_to_app,created_at,download_url,host,name,parent,parent.created_by,parent.name,parent.resource_subtype,permanent_url,resource_subtype,size,view_url", # list[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. } try: # Upload an attachment api_response = attachments_api_instance.create_attachment_for_object(opts) pprint(api_response) except ApiException as e: print("Exception when calling AttachmentsApi->create_attachment_for_object: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.attachments.create_attachment_for_object({'field': 'value', 'field': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- attachments->createAttachmentForObject(array('field' => 'value', 'field' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.attachments.create_attachment_for_object(field: "value", field: "value", options: {pretty: true}) /workspaces/{workspace_gid}/audit_log_events: parameters: - $ref: '#/components/parameters/workspace_path_gid' - $ref: '#/components/parameters/audit_log_start_at' - $ref: '#/components/parameters/audit_log_end_at' - $ref: '#/components/parameters/audit_log_event_type' - $ref: '#/components/parameters/audit_log_actor_type' - $ref: '#/components/parameters/audit_log_actor_gid' - $ref: '#/components/parameters/audit_log_resource_gid' - $ref: '#/components/parameters/limit' - $ref: '#/components/parameters/offset' get: summary: Get audit log events description: >- Retrieve the audit log events that have been captured in your domain. This endpoint will return a list of [AuditLogEvent](/reference/audit-log-api) objects, sorted by creation time in ascending order. Note that the Audit Log API captures events from October 8th, 2021 and later. Queries for events before this date will not return results. There are a number of query parameters (below) that can be used to filter the set of [AuditLogEvent](/reference/audit-log-api) objects that are returned in the response. Any combination of query parameters is valid. When no filters are provided, all of the events that have been captured in your domain will match. The list of events will always be [paginated](/docs/pagination). The default limit is 1000 events. The next set of events can be retrieved using the `offset` from the previous response. If there are no events that match the provided filters in your domain, the endpoint will return `null` for the `next_page` field. Querying again with the same filters may return new events if they were captured after the last request. Once a response includes a `next_page` with an `offset`, subsequent requests can be made with the latest `offset` to poll for new events that match the provided filters. *Note: If the filters you provided match events in your domain and `next_page` is present in the response, we will continue to send `next_page` on subsequent requests even when there are no more events that match the filters. This was put in place so that you can implement an audit log stream that will return future events that match these filters. If you are not interested in future events that match the filters you have defined, you can rely on checking empty `data` response for the end of current events that match your filters.* When no `offset` is provided, the response will begin with the oldest events that match the provided filters. It is important to note that [AuditLogEvent](/reference/audit-log-api) objects will be permanently deleted from our systems after 90 days. If you wish to keep a permanent record of these events, we recommend using a SIEM tool to ingest and store these logs. tags: - Audit log API operationId: getAuditLogEvents responses: 200: description: >- AuditLogEvents were successfully retrieved. content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/AuditLogEvent' next_page: $ref: '#/components/schemas/NextPage' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: [] x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); List result = client.auditlogapi.getAuditLogEvents(workspaceGid, resourceGid, actorGid, actorType, eventType, endAt, startAt) .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let auditLogApiApiInstance = new Asana.AuditLogAPIApi(client); let workspace_gid = "12345"; // String | Globally unique identifier for the workspace or organization. let opts = { 'start_at': "2013-10-20T19:20:30+01:00", 'end_at': "2013-10-20T19:20:30+01:00", 'event_type': "event_type_example", 'actor_type': "actor_type_example", 'actor_gid': "actor_gid_example", 'resource_gid': "resource_gid_example", 'limit': 50, 'offset': "eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9" }; auditLogApiApiInstance.getAuditLogEvents(workspace_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.auditlogapi.getAuditLogEvents(workspaceGid, {param: "value", param: "value", opt_pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class audit_log_api_api_instance = asana.AuditLogAPIApi(api_client) workspace_gid = "12345" # str | Globally unique identifier for the workspace or organization. opts = { 'start_at': '2013-10-20T19:20:30+01:00', # datetime | Filter to events created after this time (inclusive). 'end_at': '2013-10-20T19:20:30+01:00', # datetime | Filter to events created before this time (exclusive). 'event_type': "event_type_example", # str | Filter to events of this type. Refer to the [supported audit log events](/docs/audit-log-events#supported-audit-log-events) for a full list of values. 'actor_type': "actor_type_example", # str | Filter to events with an actor of this type. This only needs to be included if querying for actor types without an ID. If `actor_gid` is included, this should be excluded. 'actor_gid': "actor_gid_example", # str | Filter to events triggered by the actor with this ID. 'resource_gid': "resource_gid_example", # str | Filter to events with this resource ID. 'limit': 50, # int | Results per page. The number of objects to return per page. The value must be between 1 and 100. 'offset': "eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9", # 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.* } try: # Get audit log events api_response = audit_log_api_api_instance.get_audit_log_events(workspace_gid, opts) for data in api_response: pprint(data) except ApiException as e: print("Exception when calling AuditLogAPIApi->get_audit_log_events: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.audit_log_api.get_audit_log_events(workspace_gid, {'param': 'value', 'param': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- auditlogapi->getAuditLogEvents($workspace_gid, array('param' => 'value', 'param' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.audit_log_api.get_audit_log_events(workspace_gid: 'workspace_gid', param: "value", param: "value", options: {pretty: true}) /batch: parameters: - $ref: '#/components/parameters/pretty' post: summary: Submit parallel requests description: |- Make multiple requests in parallel to Asana's API. tags: - Batch API operationId: createBatchRequest parameters: - name: opt_fields in: query description: 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. required: false example: - body - headers - status_code schema: type: array items: type: string enum: - body - headers - status_code style: form explode: false requestBody: description: >- The requests to batch together via the Batch API. required: true content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/BatchRequest' responses: 200: description: Successfully completed the requested batch API operations. content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/BatchResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: [] x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); List result = client.batchapi.createBatchRequest() .data("field", "value") .data("field", "value") .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let batchApiApiInstance = new Asana.BatchAPIApi(client); let body = {"data": {"": "", "": "",}}; // Object | The requests to batch together via the Batch API. let opts = { 'opt_fields': "body,headers,status_code" }; batchApiApiInstance.createBatchRequest(body, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.batchapi.createBatchRequest({field: "value", field: "value", pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class batch_api_api_instance = asana.BatchAPIApi(api_client) body = {"data": {"": "", "": "",}} # dict | The requests to batch together via the Batch API. opts = { 'opt_fields': "body,headers,status_code", # list[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. } try: # Submit parallel requests api_response = batch_api_api_instance.create_batch_request(body, opts) for data in api_response: pprint(data) except ApiException as e: print("Exception when calling BatchAPIApi->create_batch_request: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.batch_api.create_batch_request({'field': 'value', 'field': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- batchapi->createBatchRequest(array('field' => 'value', 'field' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.batch_api.create_batch_request(field: "value", field: "value", options: {pretty: true}) /budgets: parameters: - $ref: '#/components/parameters/pretty' get: summary: Get all budgets description: Gets all budgets for a given *parent*. This will at most return a list of size 1 for a given *parent*. operationId: getBudgets tags: - Budgets parameters: - name: parent in: query required: true description: Globally unique identifier for the budget's parent object. This currently can only be a `project`. schema: type: string example: '1331' responses: 200: description: Successfully retrieved the requested budgets. content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/BudgetResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 402: $ref: '#/components/responses/PaymentRequired' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: [] x-readme: code-samples: - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let budgetsApiInstance = new Asana.BudgetsApi(client); let parent = "1331"; // String | Globally unique identifier for the budget's parent object. This currently can only be a `project`. budgetsApiInstance.getBudgets(parent).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 post: summary: Create a budget description: |- Creates a new budget. tags: - Budgets operationId: createBudget requestBody: description: The budget to create. required: true content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/BudgetRequest' responses: 201: description: Successfully created a new budget. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/BudgetResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 402: $ref: '#/components/responses/PaymentRequired' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: [] x-readme: code-samples: - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let budgetsApiInstance = new Asana.BudgetsApi(client); let body = {"data": {"": "", "": "",}}; // Object | The budget to create. budgetsApiInstance.createBudget(body).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 /budgets/{budget_gid}: parameters: - $ref: '#/components/parameters/budget_path_gid' - $ref: '#/components/parameters/pretty' get: summary: Get a budget description: Returns the complete budget record for a single budget. tags: - Budgets operationId: getBudget parameters: - name: opt_fields in: query description: 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. required: false example: - actual - actual.billable_status_filter - actual.units - actual.value - budget_type - estimate - estimate.billable_status_filter - estimate.enabled - estimate.source - estimate.units - estimate.value - parent - parent.name - total - total.enabled - total.units - total.value schema: type: array items: type: string enum: - actual - actual.billable_status_filter - actual.units - actual.value - budget_type - estimate - estimate.billable_status_filter - estimate.enabled - estimate.source - estimate.units - estimate.value - parent - parent.name - total - total.enabled - total.units - total.value style: form explode: false responses: 200: description: Successfully retrieved the requested budget. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/BudgetResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 402: $ref: '#/components/responses/PaymentRequired' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: [] x-readme: code-samples: - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let budgetsApiInstance = new Asana.BudgetsApi(client); let budget_gid = "12345"; // String | Globally unique identifier for the budget. let opts = { 'opt_fields': "actual,actual.billable_status_filter,actual.units,actual.value,budget_type,estimate,estimate.billable_status_filter,estimate.enabled,estimate.source,estimate.units,estimate.value,parent,parent.name,total,total.enabled,total.units,total.value" }; budgetsApiInstance.getBudget(budget_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 put: summary: Update a budget description: |- An existing budget can be updated by making a PUT request on the URL for that budget. Only the fields provided in the `data` block will be updated; any unspecified fields will remain unchanged. tags: - Budgets operationId: updateBudget parameters: - name: opt_fields in: query description: 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. required: false example: - actual - actual.billable_status_filter - actual.units - actual.value - budget_type - estimate - estimate.billable_status_filter - estimate.enabled - estimate.source - estimate.units - estimate.value - parent - parent.name - total - total.enabled - total.units - total.value schema: type: array items: type: string enum: - actual - actual.billable_status_filter - actual.units - actual.value - budget_type - estimate - estimate.billable_status_filter - estimate.enabled - estimate.source - estimate.units - estimate.value - parent - parent.name - total - total.enabled - total.units - total.value style: form explode: false requestBody: description: The budget to update. required: true content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/BudgetRequest' responses: 200: description: Successfully updated the budget. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/BudgetResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 402: $ref: '#/components/responses/PaymentRequired' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: [] x-readme: code-samples: - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let budgetsApiInstance = new Asana.BudgetsApi(client); let body = {"data": {"": "", "": "",}}; // Object | The budget to update. let budget_gid = "12345"; // String | Globally unique identifier for the budget. let opts = { 'opt_fields': "actual,actual.billable_status_filter,actual.units,actual.value,budget_type,estimate,estimate.billable_status_filter,estimate.enabled,estimate.source,estimate.units,estimate.value,parent,parent.name,total,total.enabled,total.units,total.value" }; budgetsApiInstance.updateBudget(body, budget_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 delete: summary: Delete a budget description: |- A specific, existing budget can be deleted by making a DELETE request on the URL for that budget. Returns an empty data record. tags: - Budgets operationId: deleteBudget responses: 200: description: Successfully deleted the specified budget. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/EmptyResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 402: $ref: '#/components/responses/PaymentRequired' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: [] x-readme: code-samples: - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let budgetsApiInstance = new Asana.BudgetsApi(client); let budget_gid = "12345"; // String | Globally unique identifier for the budget. budgetsApiInstance.deleteBudget(budget_gid).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 /projects/{project_gid}/custom_field_settings: parameters: - $ref: '#/components/parameters/project_path_gid' - $ref: '#/components/parameters/pretty' - $ref: '#/components/parameters/limit' - $ref: '#/components/parameters/offset' get: summary: Get a project's custom fields description: |- Required scope: projects:read Returns a list of all of the custom fields settings on a project, in compact form. Note that, as in all queries to collections which return compact representation, `opt_fields` can be used to include more data than is returned in the compact representation. See the [documentation for input/output options](https://developers.asana.com/docs/inputoutput-options) for more information. tags: - Custom field settings operationId: getCustomFieldSettingsForProject parameters: - name: opt_fields in: query description: 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. required: false example: - custom_field - custom_field.asana_created_field - custom_field.created_by - custom_field.created_by.name - custom_field.currency_code - custom_field.custom_label - custom_field.custom_label_position - custom_field.date_value - custom_field.date_value.date - custom_field.date_value.date_time - custom_field.default_access_level - custom_field.description - custom_field.display_value - custom_field.enabled - custom_field.enum_options - custom_field.enum_options.color - custom_field.enum_options.enabled - custom_field.enum_options.name - custom_field.enum_value - custom_field.enum_value.color - custom_field.enum_value.enabled - custom_field.enum_value.name - custom_field.format - custom_field.has_notifications_enabled - custom_field.id_prefix - custom_field.input_restrictions - custom_field.is_formula_field - custom_field.is_global_to_workspace - custom_field.is_value_read_only - custom_field.multi_enum_values - custom_field.multi_enum_values.color - custom_field.multi_enum_values.enabled - custom_field.multi_enum_values.name - custom_field.name - custom_field.number_value - custom_field.people_value - custom_field.people_value.name - custom_field.precision - custom_field.privacy_setting - custom_field.reference_value - custom_field.reference_value.name - custom_field.representation_type - custom_field.resource_subtype - custom_field.text_value - custom_field.type - is_important - offset - parent - parent.name - path - project - project.name - uri schema: type: array items: type: string enum: - custom_field - custom_field.asana_created_field - custom_field.created_by - custom_field.created_by.name - custom_field.currency_code - custom_field.custom_label - custom_field.custom_label_position - custom_field.date_value - custom_field.date_value.date - custom_field.date_value.date_time - custom_field.default_access_level - custom_field.description - custom_field.display_value - custom_field.enabled - custom_field.enum_options - custom_field.enum_options.color - custom_field.enum_options.enabled - custom_field.enum_options.name - custom_field.enum_value - custom_field.enum_value.color - custom_field.enum_value.enabled - custom_field.enum_value.name - custom_field.format - custom_field.has_notifications_enabled - custom_field.id_prefix - custom_field.input_restrictions - custom_field.is_formula_field - custom_field.is_global_to_workspace - custom_field.is_value_read_only - custom_field.multi_enum_values - custom_field.multi_enum_values.color - custom_field.multi_enum_values.enabled - custom_field.multi_enum_values.name - custom_field.name - custom_field.number_value - custom_field.people_value - custom_field.people_value.name - custom_field.precision - custom_field.privacy_setting - custom_field.reference_value - custom_field.reference_value.name - custom_field.representation_type - custom_field.resource_subtype - custom_field.text_value - custom_field.type - is_important - offset - parent - parent.name - path - project - project.name - uri style: form explode: false responses: 200: description: >- Successfully retrieved custom field settings objects for a project. content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/CustomFieldSettingResponse' next_page: $ref: '#/components/schemas/NextPage' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: - projects:read x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); List result = client.customfieldsettings.getCustomFieldSettingsForProject(projectGid) .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let customFieldSettingsApiInstance = new Asana.CustomFieldSettingsApi(client); let project_gid = "1331"; // String | Globally unique identifier for the project. let opts = { 'limit': 50, 'offset': "eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9", 'opt_fields': "custom_field,custom_field.asana_created_field,custom_field.created_by,custom_field.created_by.name,custom_field.currency_code,custom_field.custom_label,custom_field.custom_label_position,custom_field.date_value,custom_field.date_value.date,custom_field.date_value.date_time,custom_field.default_access_level,custom_field.description,custom_field.display_value,custom_field.enabled,custom_field.enum_options,custom_field.enum_options.color,custom_field.enum_options.enabled,custom_field.enum_options.name,custom_field.enum_value,custom_field.enum_value.color,custom_field.enum_value.enabled,custom_field.enum_value.name,custom_field.format,custom_field.has_notifications_enabled,custom_field.id_prefix,custom_field.input_restrictions,custom_field.is_formula_field,custom_field.is_global_to_workspace,custom_field.is_value_read_only,custom_field.multi_enum_values,custom_field.multi_enum_values.color,custom_field.multi_enum_values.enabled,custom_field.multi_enum_values.name,custom_field.name,custom_field.number_value,custom_field.people_value,custom_field.people_value.name,custom_field.precision,custom_field.privacy_setting,custom_field.reference_value,custom_field.reference_value.name,custom_field.representation_type,custom_field.resource_subtype,custom_field.text_value,custom_field.type,is_important,offset,parent,parent.name,path,project,project.name,uri" }; customFieldSettingsApiInstance.getCustomFieldSettingsForProject(project_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.customfieldsettings.getCustomFieldSettingsForProject(projectGid, {param: "value", param: "value", opt_pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class custom_field_settings_api_instance = asana.CustomFieldSettingsApi(api_client) project_gid = "1331" # str | Globally unique identifier for the project. opts = { 'limit': 50, # int | Results per page. The number of objects to return per page. The value must be between 1 and 100. 'offset': "eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9", # 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': "custom_field,custom_field.asana_created_field,custom_field.created_by,custom_field.created_by.name,custom_field.currency_code,custom_field.custom_label,custom_field.custom_label_position,custom_field.date_value,custom_field.date_value.date,custom_field.date_value.date_time,custom_field.default_access_level,custom_field.description,custom_field.display_value,custom_field.enabled,custom_field.enum_options,custom_field.enum_options.color,custom_field.enum_options.enabled,custom_field.enum_options.name,custom_field.enum_value,custom_field.enum_value.color,custom_field.enum_value.enabled,custom_field.enum_value.name,custom_field.format,custom_field.has_notifications_enabled,custom_field.id_prefix,custom_field.input_restrictions,custom_field.is_formula_field,custom_field.is_global_to_workspace,custom_field.is_value_read_only,custom_field.multi_enum_values,custom_field.multi_enum_values.color,custom_field.multi_enum_values.enabled,custom_field.multi_enum_values.name,custom_field.name,custom_field.number_value,custom_field.people_value,custom_field.people_value.name,custom_field.precision,custom_field.privacy_setting,custom_field.reference_value,custom_field.reference_value.name,custom_field.representation_type,custom_field.resource_subtype,custom_field.text_value,custom_field.type,is_important,offset,parent,parent.name,path,project,project.name,uri", # list[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. } try: # Get a project's custom fields api_response = custom_field_settings_api_instance.get_custom_field_settings_for_project(project_gid, opts) for data in api_response: pprint(data) except ApiException as e: print("Exception when calling CustomFieldSettingsApi->get_custom_field_settings_for_project: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.custom_field_settings.get_custom_field_settings_for_project(project_gid, {'param': 'value', 'param': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- customfieldsettings->getCustomFieldSettingsForProject($project_gid, array('param' => 'value', 'param' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.custom_field_settings.get_custom_field_settings_for_project(project_gid: 'project_gid', param: "value", param: "value", options: {pretty: true}) /portfolios/{portfolio_gid}/custom_field_settings: parameters: - $ref: '#/components/parameters/portfolio_path_gid' - $ref: '#/components/parameters/pretty' - $ref: '#/components/parameters/limit' - $ref: '#/components/parameters/offset' get: summary: Get a portfolio's custom fields description: |- Required scope: portfolios:read Returns a list of all of the custom fields settings on a portfolio, in compact form. tags: - Custom field settings operationId: getCustomFieldSettingsForPortfolio parameters: - name: opt_fields in: query description: 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. required: false example: - custom_field - custom_field.asana_created_field - custom_field.created_by - custom_field.created_by.name - custom_field.currency_code - custom_field.custom_label - custom_field.custom_label_position - custom_field.date_value - custom_field.date_value.date - custom_field.date_value.date_time - custom_field.default_access_level - custom_field.description - custom_field.display_value - custom_field.enabled - custom_field.enum_options - custom_field.enum_options.color - custom_field.enum_options.enabled - custom_field.enum_options.name - custom_field.enum_value - custom_field.enum_value.color - custom_field.enum_value.enabled - custom_field.enum_value.name - custom_field.format - custom_field.has_notifications_enabled - custom_field.id_prefix - custom_field.input_restrictions - custom_field.is_formula_field - custom_field.is_global_to_workspace - custom_field.is_value_read_only - custom_field.multi_enum_values - custom_field.multi_enum_values.color - custom_field.multi_enum_values.enabled - custom_field.multi_enum_values.name - custom_field.name - custom_field.number_value - custom_field.people_value - custom_field.people_value.name - custom_field.precision - custom_field.privacy_setting - custom_field.reference_value - custom_field.reference_value.name - custom_field.representation_type - custom_field.resource_subtype - custom_field.text_value - custom_field.type - is_important - offset - parent - parent.name - path - project - project.name - uri schema: type: array items: type: string enum: - custom_field - custom_field.asana_created_field - custom_field.created_by - custom_field.created_by.name - custom_field.currency_code - custom_field.custom_label - custom_field.custom_label_position - custom_field.date_value - custom_field.date_value.date - custom_field.date_value.date_time - custom_field.default_access_level - custom_field.description - custom_field.display_value - custom_field.enabled - custom_field.enum_options - custom_field.enum_options.color - custom_field.enum_options.enabled - custom_field.enum_options.name - custom_field.enum_value - custom_field.enum_value.color - custom_field.enum_value.enabled - custom_field.enum_value.name - custom_field.format - custom_field.has_notifications_enabled - custom_field.id_prefix - custom_field.input_restrictions - custom_field.is_formula_field - custom_field.is_global_to_workspace - custom_field.is_value_read_only - custom_field.multi_enum_values - custom_field.multi_enum_values.color - custom_field.multi_enum_values.enabled - custom_field.multi_enum_values.name - custom_field.name - custom_field.number_value - custom_field.people_value - custom_field.people_value.name - custom_field.precision - custom_field.privacy_setting - custom_field.reference_value - custom_field.reference_value.name - custom_field.representation_type - custom_field.resource_subtype - custom_field.text_value - custom_field.type - is_important - offset - parent - parent.name - path - project - project.name - uri style: form explode: false responses: 200: description: >- Successfully retrieved custom field settings objects for a portfolio. content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/CustomFieldSettingResponse' next_page: $ref: '#/components/schemas/NextPage' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: - portfolios:read x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); List result = client.customfieldsettings.getCustomFieldSettingsForPortfolio(portfolioGid) .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let customFieldSettingsApiInstance = new Asana.CustomFieldSettingsApi(client); let portfolio_gid = "12345"; // String | Globally unique identifier for the portfolio. let opts = { 'limit': 50, 'offset': "eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9", 'opt_fields': "custom_field,custom_field.asana_created_field,custom_field.created_by,custom_field.created_by.name,custom_field.currency_code,custom_field.custom_label,custom_field.custom_label_position,custom_field.date_value,custom_field.date_value.date,custom_field.date_value.date_time,custom_field.default_access_level,custom_field.description,custom_field.display_value,custom_field.enabled,custom_field.enum_options,custom_field.enum_options.color,custom_field.enum_options.enabled,custom_field.enum_options.name,custom_field.enum_value,custom_field.enum_value.color,custom_field.enum_value.enabled,custom_field.enum_value.name,custom_field.format,custom_field.has_notifications_enabled,custom_field.id_prefix,custom_field.input_restrictions,custom_field.is_formula_field,custom_field.is_global_to_workspace,custom_field.is_value_read_only,custom_field.multi_enum_values,custom_field.multi_enum_values.color,custom_field.multi_enum_values.enabled,custom_field.multi_enum_values.name,custom_field.name,custom_field.number_value,custom_field.people_value,custom_field.people_value.name,custom_field.precision,custom_field.privacy_setting,custom_field.reference_value,custom_field.reference_value.name,custom_field.representation_type,custom_field.resource_subtype,custom_field.text_value,custom_field.type,is_important,offset,parent,parent.name,path,project,project.name,uri" }; customFieldSettingsApiInstance.getCustomFieldSettingsForPortfolio(portfolio_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.customfieldsettings.getCustomFieldSettingsForPortfolio(portfolioGid, {param: "value", param: "value", opt_pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class custom_field_settings_api_instance = asana.CustomFieldSettingsApi(api_client) portfolio_gid = "12345" # str | Globally unique identifier for the portfolio. opts = { 'limit': 50, # int | Results per page. The number of objects to return per page. The value must be between 1 and 100. 'offset': "eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9", # 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': "custom_field,custom_field.asana_created_field,custom_field.created_by,custom_field.created_by.name,custom_field.currency_code,custom_field.custom_label,custom_field.custom_label_position,custom_field.date_value,custom_field.date_value.date,custom_field.date_value.date_time,custom_field.default_access_level,custom_field.description,custom_field.display_value,custom_field.enabled,custom_field.enum_options,custom_field.enum_options.color,custom_field.enum_options.enabled,custom_field.enum_options.name,custom_field.enum_value,custom_field.enum_value.color,custom_field.enum_value.enabled,custom_field.enum_value.name,custom_field.format,custom_field.has_notifications_enabled,custom_field.id_prefix,custom_field.input_restrictions,custom_field.is_formula_field,custom_field.is_global_to_workspace,custom_field.is_value_read_only,custom_field.multi_enum_values,custom_field.multi_enum_values.color,custom_field.multi_enum_values.enabled,custom_field.multi_enum_values.name,custom_field.name,custom_field.number_value,custom_field.people_value,custom_field.people_value.name,custom_field.precision,custom_field.privacy_setting,custom_field.reference_value,custom_field.reference_value.name,custom_field.representation_type,custom_field.resource_subtype,custom_field.text_value,custom_field.type,is_important,offset,parent,parent.name,path,project,project.name,uri", # list[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. } try: # Get a portfolio's custom fields api_response = custom_field_settings_api_instance.get_custom_field_settings_for_portfolio(portfolio_gid, opts) for data in api_response: pprint(data) except ApiException as e: print("Exception when calling CustomFieldSettingsApi->get_custom_field_settings_for_portfolio: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.custom_field_settings.get_custom_field_settings_for_portfolio(portfolio_gid, {'param': 'value', 'param': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- customfieldsettings->getCustomFieldSettingsForPortfolio($portfolio_gid, array('param' => 'value', 'param' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.custom_field_settings.get_custom_field_settings_for_portfolio(portfolio_gid: 'portfolio_gid', param: "value", param: "value", options: {pretty: true}) /goals/{goal_gid}/custom_field_settings: parameters: - $ref: '#/components/parameters/goal_path_gid' - $ref: '#/components/parameters/pretty' - $ref: '#/components/parameters/limit' - $ref: '#/components/parameters/offset' get: summary: Get a goal's custom fields description: |- Required scope: goals:read Returns a list of all of the custom fields settings on a goal, in compact form. Note that, as in all queries to collections which return compact representation, `opt_fields` can be used to include more data than is returned in the compact representation. See the [documentation for input/output options](https://developers.asana.com/docs/inputoutput-options) for more information. tags: - Custom field settings operationId: getCustomFieldSettingsForGoal parameters: - name: opt_fields in: query description: 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. required: false example: - custom_field - custom_field.asana_created_field - custom_field.created_by - custom_field.created_by.name - custom_field.currency_code - custom_field.custom_label - custom_field.custom_label_position - custom_field.date_value - custom_field.date_value.date - custom_field.date_value.date_time - custom_field.default_access_level - custom_field.description - custom_field.display_value - custom_field.enabled - custom_field.enum_options - custom_field.enum_options.color - custom_field.enum_options.enabled - custom_field.enum_options.name - custom_field.enum_value - custom_field.enum_value.color - custom_field.enum_value.enabled - custom_field.enum_value.name - custom_field.format - custom_field.has_notifications_enabled - custom_field.id_prefix - custom_field.input_restrictions - custom_field.is_formula_field - custom_field.is_global_to_workspace - custom_field.is_value_read_only - custom_field.multi_enum_values - custom_field.multi_enum_values.color - custom_field.multi_enum_values.enabled - custom_field.multi_enum_values.name - custom_field.name - custom_field.number_value - custom_field.people_value - custom_field.people_value.name - custom_field.precision - custom_field.privacy_setting - custom_field.reference_value - custom_field.reference_value.name - custom_field.representation_type - custom_field.resource_subtype - custom_field.text_value - custom_field.type - is_important - offset - parent - parent.name - path - project - project.name - uri schema: type: array items: type: string enum: - custom_field - custom_field.asana_created_field - custom_field.created_by - custom_field.created_by.name - custom_field.currency_code - custom_field.custom_label - custom_field.custom_label_position - custom_field.date_value - custom_field.date_value.date - custom_field.date_value.date_time - custom_field.default_access_level - custom_field.description - custom_field.display_value - custom_field.enabled - custom_field.enum_options - custom_field.enum_options.color - custom_field.enum_options.enabled - custom_field.enum_options.name - custom_field.enum_value - custom_field.enum_value.color - custom_field.enum_value.enabled - custom_field.enum_value.name - custom_field.format - custom_field.has_notifications_enabled - custom_field.id_prefix - custom_field.input_restrictions - custom_field.is_formula_field - custom_field.is_global_to_workspace - custom_field.is_value_read_only - custom_field.multi_enum_values - custom_field.multi_enum_values.color - custom_field.multi_enum_values.enabled - custom_field.multi_enum_values.name - custom_field.name - custom_field.number_value - custom_field.people_value - custom_field.people_value.name - custom_field.precision - custom_field.privacy_setting - custom_field.reference_value - custom_field.reference_value.name - custom_field.representation_type - custom_field.resource_subtype - custom_field.text_value - custom_field.type - is_important - offset - parent - parent.name - path - project - project.name - uri style: form explode: false responses: 200: description: >- Successfully retrieved custom field settings objects for a goal. content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/CustomFieldSettingResponse' next_page: $ref: '#/components/schemas/NextPage' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: - goals:read x-readme: code-samples: - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let customFieldSettingsApiInstance = new Asana.CustomFieldSettingsApi(client); let goal_gid = "12345"; // String | Globally unique identifier for the goal. let opts = { 'limit': 50, 'offset': "eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9", 'opt_fields': "custom_field,custom_field.asana_created_field,custom_field.created_by,custom_field.created_by.name,custom_field.currency_code,custom_field.custom_label,custom_field.custom_label_position,custom_field.date_value,custom_field.date_value.date,custom_field.date_value.date_time,custom_field.default_access_level,custom_field.description,custom_field.display_value,custom_field.enabled,custom_field.enum_options,custom_field.enum_options.color,custom_field.enum_options.enabled,custom_field.enum_options.name,custom_field.enum_value,custom_field.enum_value.color,custom_field.enum_value.enabled,custom_field.enum_value.name,custom_field.format,custom_field.has_notifications_enabled,custom_field.id_prefix,custom_field.input_restrictions,custom_field.is_formula_field,custom_field.is_global_to_workspace,custom_field.is_value_read_only,custom_field.multi_enum_values,custom_field.multi_enum_values.color,custom_field.multi_enum_values.enabled,custom_field.multi_enum_values.name,custom_field.name,custom_field.number_value,custom_field.people_value,custom_field.people_value.name,custom_field.precision,custom_field.privacy_setting,custom_field.reference_value,custom_field.reference_value.name,custom_field.representation_type,custom_field.resource_subtype,custom_field.text_value,custom_field.type,is_important,offset,parent,parent.name,path,project,project.name,uri" }; customFieldSettingsApiInstance.getCustomFieldSettingsForGoal(goal_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 /teams/{team_gid}/custom_field_settings: parameters: - $ref: '#/components/parameters/team_path_gid' - $ref: '#/components/parameters/pretty' get: summary: Get a team's custom fields description: |- Required scope: teams:read Returns a list of all of the custom fields settings on a team, in compact form. Note that, as in all queries to collections which return compact representation, `opt_fields` can be used to include more data than is returned in the compact representation. See the [documentation for input/output options](https://developers.asana.com/docs/inputoutput-options) for more information. tags: - Custom field settings operationId: getCustomFieldSettingsForTeam parameters: - name: opt_fields in: query description: 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. required: false example: - custom_field - custom_field.asana_created_field - custom_field.created_by - custom_field.created_by.name - custom_field.currency_code - custom_field.custom_label - custom_field.custom_label_position - custom_field.date_value - custom_field.date_value.date - custom_field.date_value.date_time - custom_field.default_access_level - custom_field.description - custom_field.display_value - custom_field.enabled - custom_field.enum_options - custom_field.enum_options.color - custom_field.enum_options.enabled - custom_field.enum_options.name - custom_field.enum_value - custom_field.enum_value.color - custom_field.enum_value.enabled - custom_field.enum_value.name - custom_field.format - custom_field.has_notifications_enabled - custom_field.id_prefix - custom_field.input_restrictions - custom_field.is_formula_field - custom_field.is_global_to_workspace - custom_field.is_value_read_only - custom_field.multi_enum_values - custom_field.multi_enum_values.color - custom_field.multi_enum_values.enabled - custom_field.multi_enum_values.name - custom_field.name - custom_field.number_value - custom_field.people_value - custom_field.people_value.name - custom_field.precision - custom_field.privacy_setting - custom_field.reference_value - custom_field.reference_value.name - custom_field.representation_type - custom_field.resource_subtype - custom_field.text_value - custom_field.type - is_important - parent - parent.name - project - project.name schema: type: array items: type: string enum: - custom_field - custom_field.asana_created_field - custom_field.created_by - custom_field.created_by.name - custom_field.currency_code - custom_field.custom_label - custom_field.custom_label_position - custom_field.date_value - custom_field.date_value.date - custom_field.date_value.date_time - custom_field.default_access_level - custom_field.description - custom_field.display_value - custom_field.enabled - custom_field.enum_options - custom_field.enum_options.color - custom_field.enum_options.enabled - custom_field.enum_options.name - custom_field.enum_value - custom_field.enum_value.color - custom_field.enum_value.enabled - custom_field.enum_value.name - custom_field.format - custom_field.has_notifications_enabled - custom_field.id_prefix - custom_field.input_restrictions - custom_field.is_formula_field - custom_field.is_global_to_workspace - custom_field.is_value_read_only - custom_field.multi_enum_values - custom_field.multi_enum_values.color - custom_field.multi_enum_values.enabled - custom_field.multi_enum_values.name - custom_field.name - custom_field.number_value - custom_field.people_value - custom_field.people_value.name - custom_field.precision - custom_field.privacy_setting - custom_field.reference_value - custom_field.reference_value.name - custom_field.representation_type - custom_field.resource_subtype - custom_field.text_value - custom_field.type - is_important - parent - parent.name - project - project.name style: form explode: false responses: 200: description: >- Successfully retrieved custom field settings objects for a team. content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/CustomFieldSettingResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: - teams:read x-readme: code-samples: - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let customFieldSettingsApiInstance = new Asana.CustomFieldSettingsApi(client); let team_gid = "159874"; // String | Globally unique identifier for the team. let opts = { 'opt_fields': "custom_field,custom_field.asana_created_field,custom_field.created_by,custom_field.created_by.name,custom_field.currency_code,custom_field.custom_label,custom_field.custom_label_position,custom_field.date_value,custom_field.date_value.date,custom_field.date_value.date_time,custom_field.default_access_level,custom_field.description,custom_field.display_value,custom_field.enabled,custom_field.enum_options,custom_field.enum_options.color,custom_field.enum_options.enabled,custom_field.enum_options.name,custom_field.enum_value,custom_field.enum_value.color,custom_field.enum_value.enabled,custom_field.enum_value.name,custom_field.format,custom_field.has_notifications_enabled,custom_field.id_prefix,custom_field.input_restrictions,custom_field.is_formula_field,custom_field.is_global_to_workspace,custom_field.is_value_read_only,custom_field.multi_enum_values,custom_field.multi_enum_values.color,custom_field.multi_enum_values.enabled,custom_field.multi_enum_values.name,custom_field.name,custom_field.number_value,custom_field.people_value,custom_field.people_value.name,custom_field.precision,custom_field.privacy_setting,custom_field.reference_value,custom_field.reference_value.name,custom_field.representation_type,custom_field.resource_subtype,custom_field.text_value,custom_field.type,is_important,parent,parent.name,project,project.name" }; customFieldSettingsApiInstance.getCustomFieldSettingsForTeam(team_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 /custom_fields: parameters: - $ref: '#/components/parameters/pretty' post: summary: Create a custom field description: |- Required scope: custom_fields:write Creates a new custom field in a workspace. Every custom field is required to be created in a specific workspace, and this workspace cannot be changed once set. A custom field’s name must be unique within a workspace and not conflict with names of existing task properties such as `Due Date` or `Assignee`. A custom field’s type must be one of `text`, `enum`, `multi_enum`, `number`, `date`, or `people`. Returns the full record of the newly created custom field. tags: - Custom fields operationId: createCustomField parameters: - name: opt_fields in: query description: 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. required: false example: - asana_created_field - created_by - created_by.name - currency_code - custom_label - custom_label_position - date_value - date_value.date - date_value.date_time - default_access_level - description - display_value - enabled - enum_options - enum_options.color - enum_options.enabled - enum_options.name - enum_value - enum_value.color - enum_value.enabled - enum_value.name - format - has_notifications_enabled - id_prefix - input_restrictions - is_formula_field - is_global_to_workspace - is_value_read_only - multi_enum_values - multi_enum_values.color - multi_enum_values.enabled - multi_enum_values.name - name - number_value - people_value - people_value.name - precision - privacy_setting - reference_value - reference_value.name - representation_type - resource_subtype - text_value - type schema: type: array items: type: string enum: - asana_created_field - created_by - created_by.name - currency_code - custom_label - custom_label_position - date_value - date_value.date - date_value.date_time - default_access_level - description - display_value - enabled - enum_options - enum_options.color - enum_options.enabled - enum_options.name - enum_value - enum_value.color - enum_value.enabled - enum_value.name - format - has_notifications_enabled - id_prefix - input_restrictions - is_formula_field - is_global_to_workspace - is_value_read_only - multi_enum_values - multi_enum_values.color - multi_enum_values.enabled - multi_enum_values.name - name - number_value - people_value - people_value.name - precision - privacy_setting - reference_value - reference_value.name - representation_type - resource_subtype - text_value - type style: form explode: false requestBody: description: The custom field object to create. required: true content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/CustomFieldCreateRequest' responses: 201: description: Custom field successfully created. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/CustomFieldResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: - custom_fields:write x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); CustomField result = client.customfields.createCustomField() .data("field", "value") .data("field", "value") .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let customFieldsApiInstance = new Asana.CustomFieldsApi(client); let body = {"data": {"": "", "": "",}}; // Object | The custom field object to create. let opts = { 'opt_fields': "asana_created_field,created_by,created_by.name,currency_code,custom_label,custom_label_position,date_value,date_value.date,date_value.date_time,default_access_level,description,display_value,enabled,enum_options,enum_options.color,enum_options.enabled,enum_options.name,enum_value,enum_value.color,enum_value.enabled,enum_value.name,format,has_notifications_enabled,id_prefix,input_restrictions,is_formula_field,is_global_to_workspace,is_value_read_only,multi_enum_values,multi_enum_values.color,multi_enum_values.enabled,multi_enum_values.name,name,number_value,people_value,people_value.name,precision,privacy_setting,reference_value,reference_value.name,representation_type,resource_subtype,text_value,type" }; customFieldsApiInstance.createCustomField(body, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.customfields.createCustomField({field: "value", field: "value", pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class custom_fields_api_instance = asana.CustomFieldsApi(api_client) body = {"data": {"": "", "": "",}} # dict | The custom field object to create. opts = { 'opt_fields': "asana_created_field,created_by,created_by.name,currency_code,custom_label,custom_label_position,date_value,date_value.date,date_value.date_time,default_access_level,description,display_value,enabled,enum_options,enum_options.color,enum_options.enabled,enum_options.name,enum_value,enum_value.color,enum_value.enabled,enum_value.name,format,has_notifications_enabled,id_prefix,input_restrictions,is_formula_field,is_global_to_workspace,is_value_read_only,multi_enum_values,multi_enum_values.color,multi_enum_values.enabled,multi_enum_values.name,name,number_value,people_value,people_value.name,precision,privacy_setting,reference_value,reference_value.name,representation_type,resource_subtype,text_value,type", # list[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. } try: # Create a custom field api_response = custom_fields_api_instance.create_custom_field(body, opts) pprint(api_response) except ApiException as e: print("Exception when calling CustomFieldsApi->create_custom_field: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.custom_fields.create_custom_field({'field': 'value', 'field': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- customfields->createCustomField(array('field' => 'value', 'field' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.custom_fields.create_custom_field(field: "value", field: "value", options: {pretty: true}) /custom_fields/{custom_field_gid}: parameters: - $ref: '#/components/parameters/custom_field_path_gid' - $ref: '#/components/parameters/pretty' get: summary: Get a custom field description: |- Required scope: custom_fields:read Get the complete definition of a custom field’s metadata. Since custom fields can be defined for one of a number of types, and these types have different data and behaviors, there are fields that are relevant to a particular type. For instance, as noted above, enum_options is only relevant for the enum type and defines the set of choices that the enum could represent. The examples below show some of these type-specific custom field definitions. tags: - Custom fields operationId: getCustomField parameters: - name: opt_fields in: query description: 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. required: false example: - asana_created_field - created_by - created_by.name - currency_code - custom_label - custom_label_position - date_value - date_value.date - date_value.date_time - default_access_level - description - display_value - enabled - enum_options - enum_options.color - enum_options.enabled - enum_options.name - enum_value - enum_value.color - enum_value.enabled - enum_value.name - format - has_notifications_enabled - id_prefix - input_restrictions - is_formula_field - is_global_to_workspace - is_value_read_only - multi_enum_values - multi_enum_values.color - multi_enum_values.enabled - multi_enum_values.name - name - number_value - people_value - people_value.name - precision - privacy_setting - reference_value - reference_value.name - representation_type - resource_subtype - text_value - type schema: type: array items: type: string enum: - asana_created_field - created_by - created_by.name - currency_code - custom_label - custom_label_position - date_value - date_value.date - date_value.date_time - default_access_level - description - display_value - enabled - enum_options - enum_options.color - enum_options.enabled - enum_options.name - enum_value - enum_value.color - enum_value.enabled - enum_value.name - format - has_notifications_enabled - id_prefix - input_restrictions - is_formula_field - is_global_to_workspace - is_value_read_only - multi_enum_values - multi_enum_values.color - multi_enum_values.enabled - multi_enum_values.name - name - number_value - people_value - people_value.name - precision - privacy_setting - reference_value - reference_value.name - representation_type - resource_subtype - text_value - type style: form explode: false responses: 200: description: >- Successfully retrieved the complete definition of a custom field’s metadata. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/CustomFieldResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: - custom_fields:read x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); CustomField result = client.customfields.getCustomField(customFieldGid) .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let customFieldsApiInstance = new Asana.CustomFieldsApi(client); let custom_field_gid = "12345"; // String | Globally unique identifier for the custom field. let opts = { 'opt_fields': "asana_created_field,created_by,created_by.name,currency_code,custom_label,custom_label_position,date_value,date_value.date,date_value.date_time,default_access_level,description,display_value,enabled,enum_options,enum_options.color,enum_options.enabled,enum_options.name,enum_value,enum_value.color,enum_value.enabled,enum_value.name,format,has_notifications_enabled,id_prefix,input_restrictions,is_formula_field,is_global_to_workspace,is_value_read_only,multi_enum_values,multi_enum_values.color,multi_enum_values.enabled,multi_enum_values.name,name,number_value,people_value,people_value.name,precision,privacy_setting,reference_value,reference_value.name,representation_type,resource_subtype,text_value,type" }; customFieldsApiInstance.getCustomField(custom_field_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.customfields.getCustomField(customFieldGid, {param: "value", param: "value", opt_pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class custom_fields_api_instance = asana.CustomFieldsApi(api_client) custom_field_gid = "12345" # str | Globally unique identifier for the custom field. opts = { 'opt_fields': "asana_created_field,created_by,created_by.name,currency_code,custom_label,custom_label_position,date_value,date_value.date,date_value.date_time,default_access_level,description,display_value,enabled,enum_options,enum_options.color,enum_options.enabled,enum_options.name,enum_value,enum_value.color,enum_value.enabled,enum_value.name,format,has_notifications_enabled,id_prefix,input_restrictions,is_formula_field,is_global_to_workspace,is_value_read_only,multi_enum_values,multi_enum_values.color,multi_enum_values.enabled,multi_enum_values.name,name,number_value,people_value,people_value.name,precision,privacy_setting,reference_value,reference_value.name,representation_type,resource_subtype,text_value,type", # list[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. } try: # Get a custom field api_response = custom_fields_api_instance.get_custom_field(custom_field_gid, opts) pprint(api_response) except ApiException as e: print("Exception when calling CustomFieldsApi->get_custom_field: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.custom_fields.get_custom_field(custom_field_gid, {'param': 'value', 'param': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- customfields->getCustomField($custom_field_gid, array('param' => 'value', 'param' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.custom_fields.get_custom_field(custom_field_gid: 'custom_field_gid', param: "value", param: "value", options: {pretty: true}) put: summary: Update a custom field description: |- Required scope: custom_fields:write A specific, existing custom field can be updated by making a PUT request on the URL for that custom field. Only the fields provided in the `data` block will be updated; any unspecified fields will remain unchanged When using this method, it is best to specify only those fields you wish to change, or else you may overwrite changes made by another user since you last retrieved the custom field. A custom field’s `type` cannot be updated. An enum custom field’s `enum_options` cannot be updated with this endpoint. Instead see “Work With Enum Options” for information on how to update `enum_options`. Locked custom fields can only be updated by the user who locked the field. Returns the complete updated custom field record. tags: - Custom fields operationId: updateCustomField parameters: - name: opt_fields in: query description: 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. required: false example: - asana_created_field - created_by - created_by.name - currency_code - custom_label - custom_label_position - date_value - date_value.date - date_value.date_time - default_access_level - description - display_value - enabled - enum_options - enum_options.color - enum_options.enabled - enum_options.name - enum_value - enum_value.color - enum_value.enabled - enum_value.name - format - has_notifications_enabled - id_prefix - input_restrictions - is_formula_field - is_global_to_workspace - is_value_read_only - multi_enum_values - multi_enum_values.color - multi_enum_values.enabled - multi_enum_values.name - name - number_value - people_value - people_value.name - precision - privacy_setting - reference_value - reference_value.name - representation_type - resource_subtype - text_value - type schema: type: array items: type: string enum: - asana_created_field - created_by - created_by.name - currency_code - custom_label - custom_label_position - date_value - date_value.date - date_value.date_time - default_access_level - description - display_value - enabled - enum_options - enum_options.color - enum_options.enabled - enum_options.name - enum_value - enum_value.color - enum_value.enabled - enum_value.name - format - has_notifications_enabled - id_prefix - input_restrictions - is_formula_field - is_global_to_workspace - is_value_read_only - multi_enum_values - multi_enum_values.color - multi_enum_values.enabled - multi_enum_values.name - name - number_value - people_value - people_value.name - precision - privacy_setting - reference_value - reference_value.name - representation_type - resource_subtype - text_value - type style: form explode: false requestBody: description: The custom field object with all updated properties. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/CustomFieldRequest' responses: 200: description: The custom field was successfully updated. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/CustomFieldResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: - custom_fields:write x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); CustomField result = client.customfields.updateCustomField(customFieldGid) .data("field", "value") .data("field", "value") .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let customFieldsApiInstance = new Asana.CustomFieldsApi(client); let custom_field_gid = "12345"; // String | Globally unique identifier for the custom field. let opts = { 'body': {"data": {"": "", "": "",}}, 'opt_fields': "asana_created_field,created_by,created_by.name,currency_code,custom_label,custom_label_position,date_value,date_value.date,date_value.date_time,default_access_level,description,display_value,enabled,enum_options,enum_options.color,enum_options.enabled,enum_options.name,enum_value,enum_value.color,enum_value.enabled,enum_value.name,format,has_notifications_enabled,id_prefix,input_restrictions,is_formula_field,is_global_to_workspace,is_value_read_only,multi_enum_values,multi_enum_values.color,multi_enum_values.enabled,multi_enum_values.name,name,number_value,people_value,people_value.name,precision,privacy_setting,reference_value,reference_value.name,representation_type,resource_subtype,text_value,type" }; customFieldsApiInstance.updateCustomField(custom_field_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.customfields.updateCustomField(customFieldGid, {field: "value", field: "value", pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class custom_fields_api_instance = asana.CustomFieldsApi(api_client) custom_field_gid = "12345" # str | Globally unique identifier for the custom field. opts = { 'body': {"data": {"": "", "": "",}}, # dict | The custom field object with all updated properties. 'opt_fields': "asana_created_field,created_by,created_by.name,currency_code,custom_label,custom_label_position,date_value,date_value.date,date_value.date_time,default_access_level,description,display_value,enabled,enum_options,enum_options.color,enum_options.enabled,enum_options.name,enum_value,enum_value.color,enum_value.enabled,enum_value.name,format,has_notifications_enabled,id_prefix,input_restrictions,is_formula_field,is_global_to_workspace,is_value_read_only,multi_enum_values,multi_enum_values.color,multi_enum_values.enabled,multi_enum_values.name,name,number_value,people_value,people_value.name,precision,privacy_setting,reference_value,reference_value.name,representation_type,resource_subtype,text_value,type", # list[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. } try: # Update a custom field api_response = custom_fields_api_instance.update_custom_field(custom_field_gid, opts) pprint(api_response) except ApiException as e: print("Exception when calling CustomFieldsApi->update_custom_field: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.custom_fields.update_custom_field(custom_field_gid, {'field': 'value', 'field': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- customfields->updateCustomField($custom_field_gid, array('field' => 'value', 'field' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.custom_fields.update_custom_field(custom_field_gid: 'custom_field_gid', field: "value", field: "value", options: {pretty: true}) delete: summary: Delete a custom field description: >- A specific, existing custom field can be deleted by making a DELETE request on the URL for that custom field. Locked custom fields can only be deleted by the user who locked the field. Returns an empty data record. tags: - Custom fields operationId: deleteCustomField responses: 200: description: The custom field was successfully deleted. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/EmptyResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: [] x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); JsonElement result = client.customfields.deleteCustomField(customFieldGid) .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let customFieldsApiInstance = new Asana.CustomFieldsApi(client); let custom_field_gid = "12345"; // String | Globally unique identifier for the custom field. customFieldsApiInstance.deleteCustomField(custom_field_gid).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.customfields.deleteCustomField(customFieldGid) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class custom_fields_api_instance = asana.CustomFieldsApi(api_client) custom_field_gid = "12345" # str | Globally unique identifier for the custom field. try: # Delete a custom field api_response = custom_fields_api_instance.delete_custom_field(custom_field_gid) pprint(api_response) except ApiException as e: print("Exception when calling CustomFieldsApi->delete_custom_field: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.custom_fields.delete_custom_field(custom_field_gid, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- customfields->deleteCustomField($custom_field_gid, array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.custom_fields.delete_custom_field(custom_field_gid: 'custom_field_gid', options: {pretty: true}) /workspaces/{workspace_gid}/custom_fields: parameters: - $ref: '#/components/parameters/workspace_path_gid' - $ref: '#/components/parameters/pretty' - $ref: '#/components/parameters/limit' - $ref: '#/components/parameters/offset' get: summary: Get a workspace's custom fields description: |- Required scope: custom_fields:read Returns a list of the compact representation of all of the custom fields in a workspace. tags: - Custom fields operationId: getCustomFieldsForWorkspace parameters: - name: opt_fields in: query description: 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. required: false example: - asana_created_field - created_by - created_by.name - currency_code - custom_label - custom_label_position - date_value - date_value.date - date_value.date_time - default_access_level - description - display_value - enabled - enum_options - enum_options.color - enum_options.enabled - enum_options.name - enum_value - enum_value.color - enum_value.enabled - enum_value.name - format - has_notifications_enabled - id_prefix - input_restrictions - is_formula_field - is_global_to_workspace - is_value_read_only - multi_enum_values - multi_enum_values.color - multi_enum_values.enabled - multi_enum_values.name - name - number_value - offset - path - people_value - people_value.name - precision - privacy_setting - reference_value - reference_value.name - representation_type - resource_subtype - text_value - type - uri schema: type: array items: type: string enum: - asana_created_field - created_by - created_by.name - currency_code - custom_label - custom_label_position - date_value - date_value.date - date_value.date_time - default_access_level - description - display_value - enabled - enum_options - enum_options.color - enum_options.enabled - enum_options.name - enum_value - enum_value.color - enum_value.enabled - enum_value.name - format - has_notifications_enabled - id_prefix - input_restrictions - is_formula_field - is_global_to_workspace - is_value_read_only - multi_enum_values - multi_enum_values.color - multi_enum_values.enabled - multi_enum_values.name - name - number_value - offset - path - people_value - people_value.name - precision - privacy_setting - reference_value - reference_value.name - representation_type - resource_subtype - text_value - type - uri style: form explode: false responses: 200: description: >- Successfully retrieved all custom fields for the given workspace. content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/CustomFieldResponse' next_page: $ref: '#/components/schemas/NextPage' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: - custom_fields:read x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); List result = client.customfields.getCustomFieldsForWorkspace(workspaceGid) .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let customFieldsApiInstance = new Asana.CustomFieldsApi(client); let workspace_gid = "12345"; // String | Globally unique identifier for the workspace or organization. let opts = { 'limit': 50, 'offset': "eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9", 'opt_fields': "asana_created_field,created_by,created_by.name,currency_code,custom_label,custom_label_position,date_value,date_value.date,date_value.date_time,default_access_level,description,display_value,enabled,enum_options,enum_options.color,enum_options.enabled,enum_options.name,enum_value,enum_value.color,enum_value.enabled,enum_value.name,format,has_notifications_enabled,id_prefix,input_restrictions,is_formula_field,is_global_to_workspace,is_value_read_only,multi_enum_values,multi_enum_values.color,multi_enum_values.enabled,multi_enum_values.name,name,number_value,offset,path,people_value,people_value.name,precision,privacy_setting,reference_value,reference_value.name,representation_type,resource_subtype,text_value,type,uri" }; customFieldsApiInstance.getCustomFieldsForWorkspace(workspace_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.customfields.getCustomFieldsForWorkspace(workspaceGid, {param: "value", param: "value", opt_pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class custom_fields_api_instance = asana.CustomFieldsApi(api_client) workspace_gid = "12345" # str | Globally unique identifier for the workspace or organization. opts = { 'limit': 50, # int | Results per page. The number of objects to return per page. The value must be between 1 and 100. 'offset': "eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9", # 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': "asana_created_field,created_by,created_by.name,currency_code,custom_label,custom_label_position,date_value,date_value.date,date_value.date_time,default_access_level,description,display_value,enabled,enum_options,enum_options.color,enum_options.enabled,enum_options.name,enum_value,enum_value.color,enum_value.enabled,enum_value.name,format,has_notifications_enabled,id_prefix,input_restrictions,is_formula_field,is_global_to_workspace,is_value_read_only,multi_enum_values,multi_enum_values.color,multi_enum_values.enabled,multi_enum_values.name,name,number_value,offset,path,people_value,people_value.name,precision,privacy_setting,reference_value,reference_value.name,representation_type,resource_subtype,text_value,type,uri", # list[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. } try: # Get a workspace's custom fields api_response = custom_fields_api_instance.get_custom_fields_for_workspace(workspace_gid, opts) for data in api_response: pprint(data) except ApiException as e: print("Exception when calling CustomFieldsApi->get_custom_fields_for_workspace: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.custom_fields.get_custom_fields_for_workspace(workspace_gid, {'param': 'value', 'param': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- customfields->getCustomFieldsForWorkspace($workspace_gid, array('param' => 'value', 'param' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.custom_fields.get_custom_fields_for_workspace(workspace_gid: 'workspace_gid', param: "value", param: "value", options: {pretty: true}) /custom_fields/{custom_field_gid}/enum_options: parameters: - $ref: '#/components/parameters/custom_field_path_gid' - $ref: '#/components/parameters/pretty' post: summary: Create an enum option description: |- Required scope: custom_fields:write Creates an enum option and adds it to this custom field’s list of enum options. A custom field can have at most 500 enum options (including disabled options). By default new enum options are inserted at the end of a custom field’s list. Locked custom fields can only have enum options added by the user who locked the field. Returns the full record of the newly created enum option. tags: - Custom fields operationId: createEnumOptionForCustomField parameters: - name: opt_fields in: query description: 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. required: false example: - color - enabled - name schema: type: array items: type: string enum: - color - enabled - name style: form explode: false requestBody: description: The enum option object to create. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/EnumOptionRequest' responses: 201: description: Custom field enum option successfully created. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/EnumOption' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: - custom_fields:write x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); JsonElement result = client.customfields.createEnumOptionForCustomField(customFieldGid) .data("field", "value") .data("field", "value") .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let customFieldsApiInstance = new Asana.CustomFieldsApi(client); let custom_field_gid = "12345"; // String | Globally unique identifier for the custom field. let opts = { 'body': {"data": {"": "", "": "",}}, 'opt_fields': "color,enabled,name" }; customFieldsApiInstance.createEnumOptionForCustomField(custom_field_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.customfields.createEnumOptionForCustomField(customFieldGid, {field: "value", field: "value", pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class custom_fields_api_instance = asana.CustomFieldsApi(api_client) custom_field_gid = "12345" # str | Globally unique identifier for the custom field. opts = { 'body': {"data": {"": "", "": "",}}, # dict | The enum option object to create. 'opt_fields': "color,enabled,name", # list[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. } try: # Create an enum option api_response = custom_fields_api_instance.create_enum_option_for_custom_field(custom_field_gid, opts) pprint(api_response) except ApiException as e: print("Exception when calling CustomFieldsApi->create_enum_option_for_custom_field: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.custom_fields.create_enum_option_for_custom_field(custom_field_gid, {'field': 'value', 'field': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- customfields->createEnumOptionForCustomField($custom_field_gid, array('field' => 'value', 'field' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.custom_fields.create_enum_option_for_custom_field(custom_field_gid: 'custom_field_gid', field: "value", field: "value", options: {pretty: true}) /custom_fields/{custom_field_gid}/enum_options/insert: parameters: - $ref: '#/components/parameters/custom_field_path_gid' - $ref: '#/components/parameters/pretty' post: summary: Reorder a custom field's enum description: |- Required scope: custom_fields:write Moves a particular enum option to be either before or after another specified enum option in the custom field. Locked custom fields can only be reordered by the user who locked the field. tags: - Custom fields operationId: insertEnumOptionForCustomField parameters: - name: opt_fields in: query description: 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. required: false example: - color - enabled - name schema: type: array items: type: string enum: - color - enabled - name style: form explode: false requestBody: description: The enum option object to create. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/EnumOptionInsertRequest' responses: 200: description: Custom field enum option successfully reordered. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/EnumOption' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: - custom_fields:write x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); JsonElement result = client.customfields.insertEnumOptionForCustomField(customFieldGid) .data("field", "value") .data("field", "value") .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let customFieldsApiInstance = new Asana.CustomFieldsApi(client); let custom_field_gid = "12345"; // String | Globally unique identifier for the custom field. let opts = { 'body': {"data": {"": "", "": "",}}, 'opt_fields': "color,enabled,name" }; customFieldsApiInstance.insertEnumOptionForCustomField(custom_field_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.customfields.insertEnumOptionForCustomField(customFieldGid, {field: "value", field: "value", pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class custom_fields_api_instance = asana.CustomFieldsApi(api_client) custom_field_gid = "12345" # str | Globally unique identifier for the custom field. opts = { 'body': {"data": {"": "", "": "",}}, # dict | The enum option object to create. 'opt_fields': "color,enabled,name", # list[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. } try: # Reorder a custom field's enum api_response = custom_fields_api_instance.insert_enum_option_for_custom_field(custom_field_gid, opts) pprint(api_response) except ApiException as e: print("Exception when calling CustomFieldsApi->insert_enum_option_for_custom_field: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.custom_fields.insert_enum_option_for_custom_field(custom_field_gid, {'field': 'value', 'field': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- customfields->insertEnumOptionForCustomField($custom_field_gid, array('field' => 'value', 'field' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.custom_fields.insert_enum_option_for_custom_field(custom_field_gid: 'custom_field_gid', field: "value", field: "value", options: {pretty: true}) /enum_options/{enum_option_gid}: parameters: - name: enum_option_gid in: path required: true description: >- Globally unique identifier for the enum option. schema: type: string example: '124578' - $ref: '#/components/parameters/pretty' put: summary: Update an enum option description: |- Required scope: custom_fields:write Updates an existing enum option. Enum custom fields require at least one enabled enum option. Locked custom fields can only be updated by the user who locked the field. Returns the full record of the updated enum option. tags: - Custom fields operationId: updateEnumOption parameters: - name: opt_fields in: query description: 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. required: false example: - color - enabled - name schema: type: array items: type: string enum: - color - enabled - name style: form explode: false requestBody: description: The enum option object to update content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/EnumOptionBase' responses: 200: description: Successfully updated the specified custom field enum. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/EnumOption' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: - custom_fields:write x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); JsonElement result = client.customfields.updateEnumOption(enumOptionGid) .data("field", "value") .data("field", "value") .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let customFieldsApiInstance = new Asana.CustomFieldsApi(client); let enum_option_gid = "124578"; // String | Globally unique identifier for the enum option. let opts = { 'body': {"data": {"": "", "": "",}}, 'opt_fields': "color,enabled,name" }; customFieldsApiInstance.updateEnumOption(enum_option_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.customfields.updateEnumOption(enumOptionGid, {field: "value", field: "value", pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class custom_fields_api_instance = asana.CustomFieldsApi(api_client) enum_option_gid = "124578" # str | Globally unique identifier for the enum option. opts = { 'body': {"data": {"": "", "": "",}}, # dict | The enum option object to update 'opt_fields': "color,enabled,name", # list[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. } try: # Update an enum option api_response = custom_fields_api_instance.update_enum_option(enum_option_gid, opts) pprint(api_response) except ApiException as e: print("Exception when calling CustomFieldsApi->update_enum_option: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.custom_fields.update_enum_option(enum_option_gid, {'field': 'value', 'field': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- customfields->updateEnumOption($enum_option_gid, array('field' => 'value', 'field' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.custom_fields.update_enum_option(enum_option_gid: 'enum_option_gid', field: "value", field: "value", options: {pretty: true}) /custom_types: parameters: - $ref: '#/components/parameters/project_query_param' - $ref: '#/components/parameters/pretty' - $ref: '#/components/parameters/limit' - $ref: '#/components/parameters/offset' get: summary: Get all custom types associated with an object description: >- Returns a list of all of the custom types associated with an object. Currently, only projects are supported. Note that, as in all queries to collections which return compact representation, `opt_fields` can be used to include more data than is returned in the compact representation. See the [documentation for input/output options](https://developers.asana.com/docs/inputoutput-options) for more information. tags: - Custom types operationId: getCustomTypes parameters: - name: opt_fields in: query description: 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. required: false example: - name - offset - path - status_options - status_options.color - status_options.completion_state - status_options.enabled - status_options.name - uri schema: type: array items: type: string enum: - name - offset - path - status_options - status_options.color - status_options.completion_state - status_options.enabled - status_options.name - uri style: form explode: false responses: 200: description: >- Successfully retrieved custom types content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/CustomTypeResponse' next_page: $ref: '#/components/schemas/NextPage' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: [] x-readme: code-samples: - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let customTypesApiInstance = new Asana.CustomTypesApi(client); let project = "1331"; // String | Globally unique identifier for the project, which is used as a filter when retrieving all custom types. let opts = { 'limit': 50, 'offset': "eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9", 'opt_fields': "name,offset,path,status_options,status_options.color,status_options.completion_state,status_options.enabled,status_options.name,uri" }; customTypesApiInstance.getCustomTypes(project, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class custom_types_api_instance = asana.CustomTypesApi(api_client) project = "1331" # str | Globally unique identifier for the project, which is used as a filter when retrieving all custom types. opts = { 'limit': 50, # int | Results per page. The number of objects to return per page. The value must be between 1 and 100. 'offset': "eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9", # 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': "name,offset,path,status_options,status_options.color,status_options.completion_state,status_options.enabled,status_options.name,uri", # list[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. } try: # Get all custom types associated with an object api_response = custom_types_api_instance.get_custom_types(project, opts) for data in api_response: pprint(data) except ApiException as e: print("Exception when calling CustomTypesApi->get_custom_types: %s\n" % e) name: python-sdk-v5 /custom_types/{custom_type_gid}: parameters: - $ref: '#/components/parameters/custom_type_gid' - $ref: '#/components/parameters/pretty' get: summary: Get a custom type description: |- Returns the complete custom type record for a single custom type. tags: - Custom types operationId: getCustomType parameters: - name: opt_fields in: query description: 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. required: false example: - name - status_options - status_options.color - status_options.completion_state - status_options.enabled - status_options.name schema: type: array items: type: string enum: - name - status_options - status_options.color - status_options.completion_state - status_options.enabled - status_options.name style: form explode: false responses: 200: description: >- Successfully retrieved the requested custom type. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/CustomTypeResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: [] x-readme: code-samples: - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let customTypesApiInstance = new Asana.CustomTypesApi(client); let custom_type_gid = "12345"; // String | Globally unique identifier for the custom type. let opts = { 'opt_fields': "name,status_options,status_options.color,status_options.completion_state,status_options.enabled,status_options.name" }; customTypesApiInstance.getCustomType(custom_type_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class custom_types_api_instance = asana.CustomTypesApi(api_client) custom_type_gid = "12345" # str | Globally unique identifier for the custom type. opts = { 'opt_fields': "name,status_options,status_options.color,status_options.completion_state,status_options.enabled,status_options.name", # list[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. } try: # Get a custom type api_response = custom_types_api_instance.get_custom_type(custom_type_gid, opts) pprint(api_response) except ApiException as e: print("Exception when calling CustomTypesApi->get_custom_type: %s\n" % e) name: python-sdk-v5 /events: parameters: - name: resource in: query required: true description: >- A resource ID to subscribe to. The resource can be a task, project, or goal. schema: type: string example: '12345' - name: sync in: query required: false description: >- A sync token received from the last request, or none on first sync. Events will be returned from the point in time that the sync token was generated. *Note: On your first request, omit the sync token. The response will be the same as for an expired sync token, and will include a new valid sync token.If the sync token is too old (which may happen from time to time) the API will return a `412 Precondition Failed` error, and include a fresh sync token in the response.* schema: type: string example: de4774f6915eae04714ca93bb2f5ee81 - $ref: '#/components/parameters/pretty' get: summary: Get events on a resource description: |- Returns the full record for all events that have occurred since the sync token was created. A `GET` request to the endpoint `/[path_to_resource]/events` can be made in lieu of including the resource ID in the data for the request. Asana limits a single sync token to 100 events. If more than 100 events exist for a given resource, `has_more: true` will be returned in the response, indicating that there are more events to pull. *Note: The resource returned will be the resource that triggered the event. This may be different from the one that the events were requested for. For example, a subscription to a project will contain events for tasks contained within the project.* tags: - Events operationId: getEvents parameters: - name: opt_fields in: query description: 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. required: false example: - action - change - change.action - change.added_value - change.field - change.new_value - change.removed_value - created_at - parent - parent.name - resource - resource.name - type - user - user.name schema: type: array items: type: string enum: - action - change - change.action - change.added_value - change.field - change.new_value - change.removed_value - created_at - parent - parent.name - resource - resource.name - type - user - user.name style: form explode: false responses: 200: description: Successfully retrieved events. content: application/json: schema: type: object description: >- The full record for all events that have occurred since the sync token was created. properties: data: type: array items: $ref: '#/components/schemas/EventResponse' sync: description: A sync token to be used with the next call to the /events endpoint. type: string example: de4774f6915eae04714ca93bb2f5ee81 has_more: description: Indicates whether there are more events to pull. type: boolean example: true 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 412: description: >- The request is missing or has an expired sync token. content: application/json: schema: type: object properties: errors: type: array items: type: object properties: message: type: string readOnly: true description: >- Message providing more detail about the error that occurred, if available. example: Sync token invalid or too old. If you are attempting to keep resources in sync, you must fetch the full dataset for this query now and use the new sync token for the next sync. sync: type: string readOnly: true description: A sync token to be used with the next call to the /events endpoint. example: de4774f6915eae04714ca93bb2f5ee81 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: [] x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); List result = client.events.getEvents(sync, resource) .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let eventsApiInstance = new Asana.EventsApi(client); let resource = "12345"; // String | A resource ID to subscribe to. The resource can be a task, project, or goal. let opts = { 'sync': "de4774f6915eae04714ca93bb2f5ee81", 'opt_fields': "action,change,change.action,change.added_value,change.field,change.new_value,change.removed_value,created_at,parent,parent.name,resource,resource.name,type,user,user.name" }; eventsApiInstance.getEvents(resource, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.events.getEvents({param: "value", param: "value", opt_pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class events_api_instance = asana.EventsApi(api_client) resource = "12345" # str | A resource ID to subscribe to. The resource can be a task, project, or goal. opts = { 'sync': "de4774f6915eae04714ca93bb2f5ee81", # str | A sync token received from the last request, or none on first sync. Events will be returned from the point in time that the sync token was generated. *Note: On your first request, omit the sync token. The response will be the same as for an expired sync token, and will include a new valid sync token.If the sync token is too old (which may happen from time to time) the API will return a `412 Precondition Failed` error, and include a fresh sync token in the response.* 'opt_fields': "action,change,change.action,change.added_value,change.field,change.new_value,change.removed_value,created_at,parent,parent.name,resource,resource.name,type,user,user.name", # list[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. } try: # Get events on a resource api_response = events_api_instance.get_events(resource, opts) for data in api_response: pprint(data) except ApiException as e: print("Exception when calling EventsApi->get_events: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.events.get_events({'param': 'value', 'param': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- events->getEvents(array('param' => 'value', 'param' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.events.get_events(resource: ''resource_example'', param: "value", param: "value", options: {pretty: true}) /exports/graph: post: summary: Initiate a graph export description: |- Initiates a graph export job for a given parent object (goal, team, portfolio, or project). The export will be processed asynchronously. Once initiated, use the [jobs](/reference/getjob) endpoint to monitor progress. **Export Caching:** When exporting more than 1,000 tasks, the results are cached for 4 hours. Any new export requests made within this 4-hour window will return the same cached results rather than generating a fresh export. tags: - Exports operationId: createGraphExport requestBody: description: A JSON payload specifying the parent object to export. required: true content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/GraphExportRequest' responses: 201: description: Successfully created Graph export request. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/GraphExportResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: [] x-readme: code-samples: - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let exportsApiInstance = new Asana.ExportsApi(client); let body = {"data": {"": "", "": "",}}; // Object | A JSON payload specifying the parent object to export. exportsApiInstance.createGraphExport(body).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class exports_api_instance = asana.ExportsApi(api_client) body = {"data": {"": "", "": "",}} # dict | A JSON payload specifying the parent object to export. try: # Initiate a graph export api_response = exports_api_instance.create_graph_export(body) pprint(api_response) except ApiException as e: print("Exception when calling ExportsApi->create_graph_export: %s\n" % e) name: python-sdk-v5 /exports/resource: post: summary: Initiate a resource export description: |- Initiates a bulk export of resources for a workspace. The export will be processed asynchronously. Once the export has been requested, its progress can be monitored using the [jobs](/reference/getjob) endpoint. ## Supported resource types This endpoint currently supports exporting tasks, teams and messages within a workspace. Resources can be requested to be part of the export by providing the `export_request_parameters` parameter. The following resource types are supported: ### Tasks: Tasks are formatted for exports with some differences from their documented [schema](/reference/tasks): - `attachments` are included by default and returns an array of associated attachments. - Attachment objects do not include `download_url` or `view_url`. The `attachments` [endpoint](/reference/attachment) should be queried for up-to-date URLs. - `stories` are included by default and returns an array of comments and other changes made to a task ### Teams: Teams are formatted for exports with these differences from their documented [schema](/reference/teams): - `members` are included by default and returns an array of Users that are members of the team - Filtering is not supported for teams. ### Messages: The returned schema encompasses both default messages and status updates and is similar to the status update schema. The available fields for messages are: - `gid` - The globally unique identifier for the message. - `resource_type` - The type of resource, which is always "message". - `resource_subtype` - Optional. The subtype of the message, which can be "default" or "status_update". - `status_type` - The type associated with the status update. This can be one of: “on_track”, “at_risk”, “off_track”, “on_hold”, “complete”, “achieved”, “partial”, “missed”, “dropped” - `created_by` - The user who created the message. - `created_at` - The time at which this resource was created and sent available to other users. - `modified_at` - The time at which this resource was last modified. - `title` - The title of the message. - `text` - The text content of the message. - `html_notes` - The text content of the message with formatting as HTML. Not included by default. Can be included by using “fields” in the initial request. - `num_likes` - The number of users who have liked this message. - `likes` - An array of users who have liked this message. - `stories` - Optional. Array of stories applied to the message. - `attachments` - Optional. Array of attachments added to the message. - `followers` - Optional. Array of users currently following the message. Users that were sent the message are treated as followers. - `parents` - Array of objects the message was sent to. Can be a Project, Portfolio, Team or Goal. Limited to a single object for status updates. ## Export file The final export file will be in JSON Lines format and compressed in a gzip container. Objects are formatted according to their corresponding API schema, or limited to the fields included in the `fields` parameter. Exports currently include undeleted objects. An object in the export will be up to date anywhere between the exports `created_at` and `completed_at`. There is no guaranteed ordering of objects in the export. Access to the export file expires 30 days after its completion. ## Exporting specific fields By default, each object in an export includes a predefined set of fields based on its schema. If a more limited set of fields or fields not included by default are required, the Export API allows for specifying which fields to include in the requested export. Fields can be specified using the `fields` parameter. The fields parameter conforms to the fields optional parameter available for all Asana endpoints which is documented [here](https://developers.asana.com/docs/inputoutput-options). Utilizing the `fields` parameter is recommended if the full object is not required, especially when a large number of objects are being exported, to reduce the overall export time. ## Filtering resources A disjunction of two or more filters can be achieved by providing multiple `export_request_parameters` for the same resource, each with different filters. However, this approach may result in duplicate resources being returned. ## Rate Limits A workspace is currently limited to *one* in progress export request at a given time. The request will return with a 403 Forbidden status code if the limit is exceeded. tags: - Exports operationId: createResourceExport requestBody: description: A JSON payload specifying the resources to export, including filters to apply and fields to be exported. required: true content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/ResourceExportRequest' responses: 201: description: Successfully created a Resource export request. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/ResourceExportResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: [] x-readme: code-samples: - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let exportsApiInstance = new Asana.ExportsApi(client); let body = {"data": {"": "", "": "",}}; // Object | A JSON payload specifying the resources to export, including filters to apply and fields to be exported. exportsApiInstance.createResourceExport(body).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class exports_api_instance = asana.ExportsApi(api_client) body = {"data": {"": "", "": "",}} # dict | A JSON payload specifying the resources to export, including filters to apply and fields to be exported. try: # Initiate a resource export api_response = exports_api_instance.create_resource_export(body) pprint(api_response) except ApiException as e: print("Exception when calling ExportsApi->create_resource_export: %s\n" % e) name: python-sdk-v5 /goal_relationships/{goal_relationship_gid}: parameters: - $ref: '#/components/parameters/goal_relationship_path_gid' - $ref: '#/components/parameters/pretty' get: summary: Get a goal relationship description: |- Returns the complete updated goal relationship record for a single goal relationship. tags: - Goal relationships operationId: getGoalRelationship parameters: - name: opt_fields in: query description: 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. required: false example: - contribution_weight - resource_subtype - supported_goal - supported_goal.name - supported_goal.owner - supported_goal.owner.name - supporting_resource - supporting_resource.name schema: type: array items: type: string enum: - contribution_weight - resource_subtype - supported_goal - supported_goal.name - supported_goal.owner - supported_goal.owner.name - supporting_resource - supporting_resource.name style: form explode: false responses: 200: description: Successfully retrieved the record for the goal relationship. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/GoalRelationshipResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: [] x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); JsonElement result = client.goalrelationships.getGoalRelationship(goalRelationshipGid) .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let goalRelationshipsApiInstance = new Asana.GoalRelationshipsApi(client); let goal_relationship_gid = "12345"; // String | Globally unique identifier for the goal relationship. let opts = { 'opt_fields': "contribution_weight,resource_subtype,supported_goal,supported_goal.name,supported_goal.owner,supported_goal.owner.name,supporting_resource,supporting_resource.name" }; goalRelationshipsApiInstance.getGoalRelationship(goal_relationship_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.goalrelationships.getGoalRelationship(goalRelationshipGid, {param: "value", param: "value", opt_pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class goal_relationships_api_instance = asana.GoalRelationshipsApi(api_client) goal_relationship_gid = "12345" # str | Globally unique identifier for the goal relationship. opts = { 'opt_fields': "contribution_weight,resource_subtype,supported_goal,supported_goal.name,supported_goal.owner,supported_goal.owner.name,supporting_resource,supporting_resource.name", # list[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. } try: # Get a goal relationship api_response = goal_relationships_api_instance.get_goal_relationship(goal_relationship_gid, opts) pprint(api_response) except ApiException as e: print("Exception when calling GoalRelationshipsApi->get_goal_relationship: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.goal_relationships.get_goal_relationship(goal_relationship_gid, {'param': 'value', 'param': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- goalrelationships->getGoalRelationship($goal_relationship_gid, array('param' => 'value', 'param' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.goal_relationships.get_goal_relationship(goal_relationship_gid: 'goal_relationship_gid', param: "value", param: "value", options: {pretty: true}) put: summary: Update a goal relationship description: |- An existing goal relationship can be updated by making a PUT request on the URL for that goal relationship. Only the fields provided in the `data` block will be updated; any unspecified fields will remain unchanged. Returns the complete updated goal relationship record. tags: - Goal relationships operationId: updateGoalRelationship parameters: - name: opt_fields in: query description: 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. required: false example: - contribution_weight - resource_subtype - supported_goal - supported_goal.name - supported_goal.owner - supported_goal.owner.name - supporting_resource - supporting_resource.name schema: type: array items: type: string enum: - contribution_weight - resource_subtype - supported_goal - supported_goal.name - supported_goal.owner - supported_goal.owner.name - supporting_resource - supporting_resource.name style: form explode: false requestBody: description: The updated fields for the goal relationship. required: true content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/GoalRelationshipRequest' responses: 200: description: Successfully updated the goal relationship. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/GoalRelationshipResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: [] x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); JsonElement result = client.goalrelationships.updateGoalRelationship(goalRelationshipGid) .data("field", "value") .data("field", "value") .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let goalRelationshipsApiInstance = new Asana.GoalRelationshipsApi(client); let body = {"data": {"": "", "": "",}}; // Object | The updated fields for the goal relationship. let goal_relationship_gid = "12345"; // String | Globally unique identifier for the goal relationship. let opts = { 'opt_fields': "contribution_weight,resource_subtype,supported_goal,supported_goal.name,supported_goal.owner,supported_goal.owner.name,supporting_resource,supporting_resource.name" }; goalRelationshipsApiInstance.updateGoalRelationship(body, goal_relationship_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.goalrelationships.updateGoalRelationship(goalRelationshipGid, {field: "value", field: "value", pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class goal_relationships_api_instance = asana.GoalRelationshipsApi(api_client) body = {"data": {"": "", "": "",}} # dict | The updated fields for the goal relationship. goal_relationship_gid = "12345" # str | Globally unique identifier for the goal relationship. opts = { 'opt_fields': "contribution_weight,resource_subtype,supported_goal,supported_goal.name,supported_goal.owner,supported_goal.owner.name,supporting_resource,supporting_resource.name", # list[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. } try: # Update a goal relationship api_response = goal_relationships_api_instance.update_goal_relationship(body, goal_relationship_gid, opts) pprint(api_response) except ApiException as e: print("Exception when calling GoalRelationshipsApi->update_goal_relationship: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.goal_relationships.update_goal_relationship(goal_relationship_gid, {'field': 'value', 'field': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- goalrelationships->updateGoalRelationship($goal_relationship_gid, array('field' => 'value', 'field' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.goal_relationships.update_goal_relationship(goal_relationship_gid: 'goal_relationship_gid', field: "value", field: "value", options: {pretty: true}) /goal_relationships: get: summary: Get goal relationships description: |- Returns compact goal relationship records. tags: - Goal relationships operationId: getGoalRelationships parameters: - $ref: '#/components/parameters/pretty' - $ref: '#/components/parameters/limit' - $ref: '#/components/parameters/offset' - name: supported_goal required: true in: query description: Globally unique identifier for the supported goal in the goal relationship. schema: type: string example: '12345' - name: resource_subtype in: query description: If provided, filter to goal relationships with a given resource_subtype. schema: type: string example: subgoal - name: opt_fields in: query description: 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. required: false example: - contribution_weight - offset - path - resource_subtype - supported_goal - supported_goal.name - supported_goal.owner - supported_goal.owner.name - supporting_resource - supporting_resource.name - uri schema: type: array items: type: string enum: - contribution_weight - offset - path - resource_subtype - supported_goal - supported_goal.name - supported_goal.owner - supported_goal.owner.name - supporting_resource - supporting_resource.name - uri style: form explode: false responses: 200: description: Successfully retrieved the requested goal relationships. content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/GoalRelationshipCompact' next_page: $ref: '#/components/schemas/NextPage' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: [] x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); List result = client.goalrelationships.getGoalRelationships(resourceSubtype, supportedGoal) .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let goalRelationshipsApiInstance = new Asana.GoalRelationshipsApi(client); let supported_goal = "12345"; // String | Globally unique identifier for the supported goal in the goal relationship. let opts = { 'limit': 50, 'offset': "eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9", 'resource_subtype': "subgoal", 'opt_fields': "contribution_weight,offset,path,resource_subtype,supported_goal,supported_goal.name,supported_goal.owner,supported_goal.owner.name,supporting_resource,supporting_resource.name,uri" }; goalRelationshipsApiInstance.getGoalRelationships(supported_goal, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.goalrelationships.getGoalRelationships({param: "value", param: "value", opt_pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class goal_relationships_api_instance = asana.GoalRelationshipsApi(api_client) supported_goal = "12345" # str | Globally unique identifier for the supported goal in the goal relationship. opts = { 'limit': 50, # int | Results per page. The number of objects to return per page. The value must be between 1 and 100. 'offset': "eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9", # 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': "subgoal", # str | If provided, filter to goal relationships with a given resource_subtype. 'opt_fields': "contribution_weight,offset,path,resource_subtype,supported_goal,supported_goal.name,supported_goal.owner,supported_goal.owner.name,supporting_resource,supporting_resource.name,uri", # list[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. } try: # Get goal relationships api_response = goal_relationships_api_instance.get_goal_relationships(supported_goal, opts) for data in api_response: pprint(data) except ApiException as e: print("Exception when calling GoalRelationshipsApi->get_goal_relationships: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.goal_relationships.get_goal_relationships({'param': 'value', 'param': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- goalrelationships->getGoalRelationships(array('param' => 'value', 'param' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.goal_relationships.get_goal_relationships(supported_goal: ''supported_goal_example'', param: "value", param: "value", options: {pretty: true}) /goals/{goal_gid}/addSupportingRelationship: parameters: - $ref: '#/components/parameters/goal_path_gid' - $ref: '#/components/parameters/pretty' post: summary: Add a supporting goal relationship description: |- Creates a goal relationship by adding a supporting resource to a given goal. Returns the newly created goal relationship record. tags: - Goal relationships operationId: addSupportingRelationship parameters: - name: opt_fields in: query description: 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. required: false example: - contribution_weight - resource_subtype - supported_goal - supported_goal.name - supported_goal.owner - supported_goal.owner.name - supporting_resource - supporting_resource.name schema: type: array items: type: string enum: - contribution_weight - resource_subtype - supported_goal - supported_goal.name - supported_goal.owner - supported_goal.owner.name - supporting_resource - supporting_resource.name style: form explode: false requestBody: description: The supporting resource to be added to the goal required: true content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/GoalAddSupportingRelationshipRequest' responses: 200: description: Successfully created the goal relationship. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/GoalRelationshipResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: [] x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); JsonElement result = client.goalrelationships.addSupportingRelationship(goalGid) .data("field", "value") .data("field", "value") .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let goalRelationshipsApiInstance = new Asana.GoalRelationshipsApi(client); let body = {"data": {"": "", "": "",}}; // Object | The supporting resource to be added to the goal let goal_gid = "12345"; // String | Globally unique identifier for the goal. let opts = { 'opt_fields': "contribution_weight,resource_subtype,supported_goal,supported_goal.name,supported_goal.owner,supported_goal.owner.name,supporting_resource,supporting_resource.name" }; goalRelationshipsApiInstance.addSupportingRelationship(body, goal_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.goalrelationships.addSupportingRelationship(goalGid, {field: "value", field: "value", pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class goal_relationships_api_instance = asana.GoalRelationshipsApi(api_client) body = {"data": {"": "", "": "",}} # dict | The supporting resource to be added to the goal goal_gid = "12345" # str | Globally unique identifier for the goal. opts = { 'opt_fields': "contribution_weight,resource_subtype,supported_goal,supported_goal.name,supported_goal.owner,supported_goal.owner.name,supporting_resource,supporting_resource.name", # list[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. } try: # Add a supporting goal relationship api_response = goal_relationships_api_instance.add_supporting_relationship(body, goal_gid, opts) pprint(api_response) except ApiException as e: print("Exception when calling GoalRelationshipsApi->add_supporting_relationship: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.goal_relationships.add_supporting_relationship(goal_gid, {'field': 'value', 'field': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- goalrelationships->addSupportingRelationship($goal_gid, array('field' => 'value', 'field' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.goal_relationships.add_supporting_relationship(goal_gid: 'goal_gid', field: "value", field: "value", options: {pretty: true}) /goals/{goal_gid}/removeSupportingRelationship: parameters: - $ref: '#/components/parameters/goal_path_gid' - $ref: '#/components/parameters/pretty' post: summary: Removes a supporting goal relationship description: |- Removes a goal relationship for a given parent goal. tags: - Goal relationships operationId: removeSupportingRelationship requestBody: description: The supporting resource to be removed from the goal required: true content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/GoalRemoveSupportingRelationshipRequest' responses: 200: description: Successfully removed the goal relationship. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/EmptyResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: [] x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); JsonElement result = client.goalrelationships.removeSupportingRelationship(goalGid) .data("field", "value") .data("field", "value") .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let goalRelationshipsApiInstance = new Asana.GoalRelationshipsApi(client); let body = {"data": {"": "", "": "",}}; // Object | The supporting resource to be removed from the goal let goal_gid = "12345"; // String | Globally unique identifier for the goal. goalRelationshipsApiInstance.removeSupportingRelationship(body, goal_gid).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.goalrelationships.removeSupportingRelationship(goalGid, {field: "value", field: "value", pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class goal_relationships_api_instance = asana.GoalRelationshipsApi(api_client) body = {"data": {"": "", "": "",}} # dict | The supporting resource to be removed from the goal goal_gid = "12345" # str | Globally unique identifier for the goal. try: # Removes a supporting goal relationship api_response = goal_relationships_api_instance.remove_supporting_relationship(body, goal_gid) pprint(api_response) except ApiException as e: print("Exception when calling GoalRelationshipsApi->remove_supporting_relationship: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.goal_relationships.remove_supporting_relationship(goal_gid, {'field': 'value', 'field': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- goalrelationships->removeSupportingRelationship($goal_gid, array('field' => 'value', 'field' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.goal_relationships.remove_supporting_relationship(goal_gid: 'goal_gid', field: "value", field: "value", options: {pretty: true}) /goals/{goal_gid}: parameters: - $ref: '#/components/parameters/goal_path_gid' - $ref: '#/components/parameters/pretty' get: summary: Get a goal description: |- Required scope: goals:read
Field Required Scope
time_period time_periods:read
Returns the complete goal record for a single goal. tags: - Goals operationId: getGoal parameters: - name: opt_fields in: query description: 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. required: false example: - current_status_update - current_status_update.resource_subtype - current_status_update.title - custom_field_settings - custom_field_settings.custom_field - custom_field_settings.custom_field.asana_created_field - custom_field_settings.custom_field.created_by - custom_field_settings.custom_field.created_by.name - custom_field_settings.custom_field.currency_code - custom_field_settings.custom_field.custom_label - custom_field_settings.custom_field.custom_label_position - custom_field_settings.custom_field.date_value - custom_field_settings.custom_field.date_value.date - custom_field_settings.custom_field.date_value.date_time - custom_field_settings.custom_field.default_access_level - custom_field_settings.custom_field.description - custom_field_settings.custom_field.display_value - custom_field_settings.custom_field.enabled - custom_field_settings.custom_field.enum_options - custom_field_settings.custom_field.enum_options.color - custom_field_settings.custom_field.enum_options.enabled - custom_field_settings.custom_field.enum_options.name - custom_field_settings.custom_field.enum_value - custom_field_settings.custom_field.enum_value.color - custom_field_settings.custom_field.enum_value.enabled - custom_field_settings.custom_field.enum_value.name - custom_field_settings.custom_field.format - custom_field_settings.custom_field.has_notifications_enabled - custom_field_settings.custom_field.id_prefix - custom_field_settings.custom_field.input_restrictions - custom_field_settings.custom_field.is_formula_field - custom_field_settings.custom_field.is_global_to_workspace - custom_field_settings.custom_field.is_value_read_only - custom_field_settings.custom_field.multi_enum_values - custom_field_settings.custom_field.multi_enum_values.color - custom_field_settings.custom_field.multi_enum_values.enabled - custom_field_settings.custom_field.multi_enum_values.name - custom_field_settings.custom_field.name - custom_field_settings.custom_field.number_value - custom_field_settings.custom_field.people_value - custom_field_settings.custom_field.people_value.name - custom_field_settings.custom_field.precision - custom_field_settings.custom_field.privacy_setting - custom_field_settings.custom_field.reference_value - custom_field_settings.custom_field.reference_value.name - custom_field_settings.custom_field.representation_type - custom_field_settings.custom_field.resource_subtype - custom_field_settings.custom_field.text_value - custom_field_settings.custom_field.type - custom_field_settings.is_important - custom_field_settings.parent - custom_field_settings.parent.name - custom_field_settings.project - custom_field_settings.project.name - custom_fields - custom_fields.date_value - custom_fields.date_value.date - custom_fields.date_value.date_time - custom_fields.display_value - custom_fields.enabled - custom_fields.enum_options - custom_fields.enum_options.color - custom_fields.enum_options.enabled - custom_fields.enum_options.name - custom_fields.enum_value - custom_fields.enum_value.color - custom_fields.enum_value.enabled - custom_fields.enum_value.name - custom_fields.id_prefix - custom_fields.input_restrictions - custom_fields.is_formula_field - custom_fields.multi_enum_values - custom_fields.multi_enum_values.color - custom_fields.multi_enum_values.enabled - custom_fields.multi_enum_values.name - custom_fields.name - custom_fields.number_value - custom_fields.representation_type - custom_fields.text_value - custom_fields.type - due_on - followers - followers.name - html_notes - is_workspace_level - liked - likes - likes.user - likes.user.name - metric - metric.can_manage - metric.currency_code - metric.current_display_value - metric.current_number_value - metric.initial_number_value - metric.is_custom_weight - metric.precision - metric.progress_source - metric.resource_subtype - metric.target_number_value - metric.unit - name - notes - num_likes - owner - owner.name - start_on - status - team - team.name - time_period - time_period.display_name - time_period.end_on - time_period.period - time_period.start_on - workspace - workspace.name schema: type: array items: type: string enum: - current_status_update - current_status_update.resource_subtype - current_status_update.title - custom_field_settings - custom_field_settings.custom_field - custom_field_settings.custom_field.asana_created_field - custom_field_settings.custom_field.created_by - custom_field_settings.custom_field.created_by.name - custom_field_settings.custom_field.currency_code - custom_field_settings.custom_field.custom_label - custom_field_settings.custom_field.custom_label_position - custom_field_settings.custom_field.date_value - custom_field_settings.custom_field.date_value.date - custom_field_settings.custom_field.date_value.date_time - custom_field_settings.custom_field.default_access_level - custom_field_settings.custom_field.description - custom_field_settings.custom_field.display_value - custom_field_settings.custom_field.enabled - custom_field_settings.custom_field.enum_options - custom_field_settings.custom_field.enum_options.color - custom_field_settings.custom_field.enum_options.enabled - custom_field_settings.custom_field.enum_options.name - custom_field_settings.custom_field.enum_value - custom_field_settings.custom_field.enum_value.color - custom_field_settings.custom_field.enum_value.enabled - custom_field_settings.custom_field.enum_value.name - custom_field_settings.custom_field.format - custom_field_settings.custom_field.has_notifications_enabled - custom_field_settings.custom_field.id_prefix - custom_field_settings.custom_field.input_restrictions - custom_field_settings.custom_field.is_formula_field - custom_field_settings.custom_field.is_global_to_workspace - custom_field_settings.custom_field.is_value_read_only - custom_field_settings.custom_field.multi_enum_values - custom_field_settings.custom_field.multi_enum_values.color - custom_field_settings.custom_field.multi_enum_values.enabled - custom_field_settings.custom_field.multi_enum_values.name - custom_field_settings.custom_field.name - custom_field_settings.custom_field.number_value - custom_field_settings.custom_field.people_value - custom_field_settings.custom_field.people_value.name - custom_field_settings.custom_field.precision - custom_field_settings.custom_field.privacy_setting - custom_field_settings.custom_field.reference_value - custom_field_settings.custom_field.reference_value.name - custom_field_settings.custom_field.representation_type - custom_field_settings.custom_field.resource_subtype - custom_field_settings.custom_field.text_value - custom_field_settings.custom_field.type - custom_field_settings.is_important - custom_field_settings.parent - custom_field_settings.parent.name - custom_field_settings.project - custom_field_settings.project.name - custom_fields - custom_fields.date_value - custom_fields.date_value.date - custom_fields.date_value.date_time - custom_fields.display_value - custom_fields.enabled - custom_fields.enum_options - custom_fields.enum_options.color - custom_fields.enum_options.enabled - custom_fields.enum_options.name - custom_fields.enum_value - custom_fields.enum_value.color - custom_fields.enum_value.enabled - custom_fields.enum_value.name - custom_fields.id_prefix - custom_fields.input_restrictions - custom_fields.is_formula_field - custom_fields.multi_enum_values - custom_fields.multi_enum_values.color - custom_fields.multi_enum_values.enabled - custom_fields.multi_enum_values.name - custom_fields.name - custom_fields.number_value - custom_fields.representation_type - custom_fields.text_value - custom_fields.type - due_on - followers - followers.name - html_notes - is_workspace_level - liked - likes - likes.user - likes.user.name - metric - metric.can_manage - metric.currency_code - metric.current_display_value - metric.current_number_value - metric.initial_number_value - metric.is_custom_weight - metric.precision - metric.progress_source - metric.resource_subtype - metric.target_number_value - metric.unit - name - notes - num_likes - owner - owner.name - start_on - status - team - team.name - time_period - time_period.display_name - time_period.end_on - time_period.period - time_period.start_on - workspace - workspace.name style: form explode: false responses: 200: description: Successfully retrieved the record for a single goal. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/GoalResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 402: $ref: '#/components/responses/PaymentRequired' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: - goals:read x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); JsonElement result = client.goals.getGoal(goalGid) .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let goalsApiInstance = new Asana.GoalsApi(client); let goal_gid = "12345"; // String | Globally unique identifier for the goal. let opts = { 'opt_fields': "current_status_update,current_status_update.resource_subtype,current_status_update.title,custom_field_settings,custom_field_settings.custom_field,custom_field_settings.custom_field.asana_created_field,custom_field_settings.custom_field.created_by,custom_field_settings.custom_field.created_by.name,custom_field_settings.custom_field.currency_code,custom_field_settings.custom_field.custom_label,custom_field_settings.custom_field.custom_label_position,custom_field_settings.custom_field.date_value,custom_field_settings.custom_field.date_value.date,custom_field_settings.custom_field.date_value.date_time,custom_field_settings.custom_field.default_access_level,custom_field_settings.custom_field.description,custom_field_settings.custom_field.display_value,custom_field_settings.custom_field.enabled,custom_field_settings.custom_field.enum_options,custom_field_settings.custom_field.enum_options.color,custom_field_settings.custom_field.enum_options.enabled,custom_field_settings.custom_field.enum_options.name,custom_field_settings.custom_field.enum_value,custom_field_settings.custom_field.enum_value.color,custom_field_settings.custom_field.enum_value.enabled,custom_field_settings.custom_field.enum_value.name,custom_field_settings.custom_field.format,custom_field_settings.custom_field.has_notifications_enabled,custom_field_settings.custom_field.id_prefix,custom_field_settings.custom_field.input_restrictions,custom_field_settings.custom_field.is_formula_field,custom_field_settings.custom_field.is_global_to_workspace,custom_field_settings.custom_field.is_value_read_only,custom_field_settings.custom_field.multi_enum_values,custom_field_settings.custom_field.multi_enum_values.color,custom_field_settings.custom_field.multi_enum_values.enabled,custom_field_settings.custom_field.multi_enum_values.name,custom_field_settings.custom_field.name,custom_field_settings.custom_field.number_value,custom_field_settings.custom_field.people_value,custom_field_settings.custom_field.people_value.name,custom_field_settings.custom_field.precision,custom_field_settings.custom_field.privacy_setting,custom_field_settings.custom_field.reference_value,custom_field_settings.custom_field.reference_value.name,custom_field_settings.custom_field.representation_type,custom_field_settings.custom_field.resource_subtype,custom_field_settings.custom_field.text_value,custom_field_settings.custom_field.type,custom_field_settings.is_important,custom_field_settings.parent,custom_field_settings.parent.name,custom_field_settings.project,custom_field_settings.project.name,custom_fields,custom_fields.date_value,custom_fields.date_value.date,custom_fields.date_value.date_time,custom_fields.display_value,custom_fields.enabled,custom_fields.enum_options,custom_fields.enum_options.color,custom_fields.enum_options.enabled,custom_fields.enum_options.name,custom_fields.enum_value,custom_fields.enum_value.color,custom_fields.enum_value.enabled,custom_fields.enum_value.name,custom_fields.id_prefix,custom_fields.input_restrictions,custom_fields.is_formula_field,custom_fields.multi_enum_values,custom_fields.multi_enum_values.color,custom_fields.multi_enum_values.enabled,custom_fields.multi_enum_values.name,custom_fields.name,custom_fields.number_value,custom_fields.representation_type,custom_fields.text_value,custom_fields.type,due_on,followers,followers.name,html_notes,is_workspace_level,liked,likes,likes.user,likes.user.name,metric,metric.can_manage,metric.currency_code,metric.current_display_value,metric.current_number_value,metric.initial_number_value,metric.is_custom_weight,metric.precision,metric.progress_source,metric.resource_subtype,metric.target_number_value,metric.unit,name,notes,num_likes,owner,owner.name,start_on,status,team,team.name,time_period,time_period.display_name,time_period.end_on,time_period.period,time_period.start_on,workspace,workspace.name" }; goalsApiInstance.getGoal(goal_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.goals.getGoal(goalGid, {param: "value", param: "value", opt_pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class goals_api_instance = asana.GoalsApi(api_client) goal_gid = "12345" # str | Globally unique identifier for the goal. opts = { 'opt_fields': "current_status_update,current_status_update.resource_subtype,current_status_update.title,due_on,followers,followers.name,html_notes,is_workspace_level,liked,likes,likes.user,likes.user.name,metric,metric.can_manage,metric.currency_code,metric.current_display_value,metric.current_number_value,metric.initial_number_value,metric.is_custom_weight,metric.precision,metric.progress_source,metric.resource_subtype,metric.target_number_value,metric.unit,name,notes,num_likes,owner,owner.name,start_on,status,team,team.name,time_period,time_period.display_name,time_period.end_on,time_period.period,time_period.start_on,workspace,workspace.name", # list[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. } try: # Get a goal api_response = goals_api_instance.get_goal(goal_gid, opts) pprint(api_response) except ApiException as e: print("Exception when calling GoalsApi->get_goal: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.goals.get_goal(goal_gid, {'param': 'value', 'param': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- goals->getGoal($goal_gid, array('param' => 'value', 'param' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.goals.get_goal(goal_gid: 'goal_gid', param: "value", param: "value", options: {pretty: true}) put: summary: Update a goal description: |- An existing goal can be updated by making a PUT request on the URL for that goal. Only the fields provided in the `data` block will be updated; any unspecified fields will remain unchanged. Returns the complete updated goal record. tags: - Goals operationId: updateGoal parameters: - name: opt_fields in: query description: 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. required: false example: - current_status_update - current_status_update.resource_subtype - current_status_update.title - custom_field_settings - custom_field_settings.custom_field - custom_field_settings.custom_field.asana_created_field - custom_field_settings.custom_field.created_by - custom_field_settings.custom_field.created_by.name - custom_field_settings.custom_field.currency_code - custom_field_settings.custom_field.custom_label - custom_field_settings.custom_field.custom_label_position - custom_field_settings.custom_field.date_value - custom_field_settings.custom_field.date_value.date - custom_field_settings.custom_field.date_value.date_time - custom_field_settings.custom_field.default_access_level - custom_field_settings.custom_field.description - custom_field_settings.custom_field.display_value - custom_field_settings.custom_field.enabled - custom_field_settings.custom_field.enum_options - custom_field_settings.custom_field.enum_options.color - custom_field_settings.custom_field.enum_options.enabled - custom_field_settings.custom_field.enum_options.name - custom_field_settings.custom_field.enum_value - custom_field_settings.custom_field.enum_value.color - custom_field_settings.custom_field.enum_value.enabled - custom_field_settings.custom_field.enum_value.name - custom_field_settings.custom_field.format - custom_field_settings.custom_field.has_notifications_enabled - custom_field_settings.custom_field.id_prefix - custom_field_settings.custom_field.input_restrictions - custom_field_settings.custom_field.is_formula_field - custom_field_settings.custom_field.is_global_to_workspace - custom_field_settings.custom_field.is_value_read_only - custom_field_settings.custom_field.multi_enum_values - custom_field_settings.custom_field.multi_enum_values.color - custom_field_settings.custom_field.multi_enum_values.enabled - custom_field_settings.custom_field.multi_enum_values.name - custom_field_settings.custom_field.name - custom_field_settings.custom_field.number_value - custom_field_settings.custom_field.people_value - custom_field_settings.custom_field.people_value.name - custom_field_settings.custom_field.precision - custom_field_settings.custom_field.privacy_setting - custom_field_settings.custom_field.reference_value - custom_field_settings.custom_field.reference_value.name - custom_field_settings.custom_field.representation_type - custom_field_settings.custom_field.resource_subtype - custom_field_settings.custom_field.text_value - custom_field_settings.custom_field.type - custom_field_settings.is_important - custom_field_settings.parent - custom_field_settings.parent.name - custom_field_settings.project - custom_field_settings.project.name - custom_fields - custom_fields.date_value - custom_fields.date_value.date - custom_fields.date_value.date_time - custom_fields.display_value - custom_fields.enabled - custom_fields.enum_options - custom_fields.enum_options.color - custom_fields.enum_options.enabled - custom_fields.enum_options.name - custom_fields.enum_value - custom_fields.enum_value.color - custom_fields.enum_value.enabled - custom_fields.enum_value.name - custom_fields.id_prefix - custom_fields.input_restrictions - custom_fields.is_formula_field - custom_fields.multi_enum_values - custom_fields.multi_enum_values.color - custom_fields.multi_enum_values.enabled - custom_fields.multi_enum_values.name - custom_fields.name - custom_fields.number_value - custom_fields.representation_type - custom_fields.text_value - custom_fields.type - due_on - followers - followers.name - html_notes - is_workspace_level - liked - likes - likes.user - likes.user.name - metric - metric.can_manage - metric.currency_code - metric.current_display_value - metric.current_number_value - metric.initial_number_value - metric.is_custom_weight - metric.precision - metric.progress_source - metric.resource_subtype - metric.target_number_value - metric.unit - name - notes - num_likes - owner - owner.name - start_on - status - team - team.name - time_period - time_period.display_name - time_period.end_on - time_period.period - time_period.start_on - workspace - workspace.name schema: type: array items: type: string enum: - current_status_update - current_status_update.resource_subtype - current_status_update.title - custom_field_settings - custom_field_settings.custom_field - custom_field_settings.custom_field.asana_created_field - custom_field_settings.custom_field.created_by - custom_field_settings.custom_field.created_by.name - custom_field_settings.custom_field.currency_code - custom_field_settings.custom_field.custom_label - custom_field_settings.custom_field.custom_label_position - custom_field_settings.custom_field.date_value - custom_field_settings.custom_field.date_value.date - custom_field_settings.custom_field.date_value.date_time - custom_field_settings.custom_field.default_access_level - custom_field_settings.custom_field.description - custom_field_settings.custom_field.display_value - custom_field_settings.custom_field.enabled - custom_field_settings.custom_field.enum_options - custom_field_settings.custom_field.enum_options.color - custom_field_settings.custom_field.enum_options.enabled - custom_field_settings.custom_field.enum_options.name - custom_field_settings.custom_field.enum_value - custom_field_settings.custom_field.enum_value.color - custom_field_settings.custom_field.enum_value.enabled - custom_field_settings.custom_field.enum_value.name - custom_field_settings.custom_field.format - custom_field_settings.custom_field.has_notifications_enabled - custom_field_settings.custom_field.id_prefix - custom_field_settings.custom_field.input_restrictions - custom_field_settings.custom_field.is_formula_field - custom_field_settings.custom_field.is_global_to_workspace - custom_field_settings.custom_field.is_value_read_only - custom_field_settings.custom_field.multi_enum_values - custom_field_settings.custom_field.multi_enum_values.color - custom_field_settings.custom_field.multi_enum_values.enabled - custom_field_settings.custom_field.multi_enum_values.name - custom_field_settings.custom_field.name - custom_field_settings.custom_field.number_value - custom_field_settings.custom_field.people_value - custom_field_settings.custom_field.people_value.name - custom_field_settings.custom_field.precision - custom_field_settings.custom_field.privacy_setting - custom_field_settings.custom_field.reference_value - custom_field_settings.custom_field.reference_value.name - custom_field_settings.custom_field.representation_type - custom_field_settings.custom_field.resource_subtype - custom_field_settings.custom_field.text_value - custom_field_settings.custom_field.type - custom_field_settings.is_important - custom_field_settings.parent - custom_field_settings.parent.name - custom_field_settings.project - custom_field_settings.project.name - custom_fields - custom_fields.date_value - custom_fields.date_value.date - custom_fields.date_value.date_time - custom_fields.display_value - custom_fields.enabled - custom_fields.enum_options - custom_fields.enum_options.color - custom_fields.enum_options.enabled - custom_fields.enum_options.name - custom_fields.enum_value - custom_fields.enum_value.color - custom_fields.enum_value.enabled - custom_fields.enum_value.name - custom_fields.id_prefix - custom_fields.input_restrictions - custom_fields.is_formula_field - custom_fields.multi_enum_values - custom_fields.multi_enum_values.color - custom_fields.multi_enum_values.enabled - custom_fields.multi_enum_values.name - custom_fields.name - custom_fields.number_value - custom_fields.representation_type - custom_fields.text_value - custom_fields.type - due_on - followers - followers.name - html_notes - is_workspace_level - liked - likes - likes.user - likes.user.name - metric - metric.can_manage - metric.currency_code - metric.current_display_value - metric.current_number_value - metric.initial_number_value - metric.is_custom_weight - metric.precision - metric.progress_source - metric.resource_subtype - metric.target_number_value - metric.unit - name - notes - num_likes - owner - owner.name - start_on - status - team - team.name - time_period - time_period.display_name - time_period.end_on - time_period.period - time_period.start_on - workspace - workspace.name style: form explode: false requestBody: description: The updated fields for the goal. required: true content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/GoalUpdateRequest' responses: 200: description: Successfully updated the goal. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/GoalResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: [] x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); JsonElement result = client.goals.updateGoal(goalGid) .data("field", "value") .data("field", "value") .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let goalsApiInstance = new Asana.GoalsApi(client); let body = {"data": {"": "", "": "",}}; // Object | The updated fields for the goal. let goal_gid = "12345"; // String | Globally unique identifier for the goal. let opts = { 'opt_fields': "current_status_update,current_status_update.resource_subtype,current_status_update.title,custom_field_settings,custom_field_settings.custom_field,custom_field_settings.custom_field.asana_created_field,custom_field_settings.custom_field.created_by,custom_field_settings.custom_field.created_by.name,custom_field_settings.custom_field.currency_code,custom_field_settings.custom_field.custom_label,custom_field_settings.custom_field.custom_label_position,custom_field_settings.custom_field.date_value,custom_field_settings.custom_field.date_value.date,custom_field_settings.custom_field.date_value.date_time,custom_field_settings.custom_field.default_access_level,custom_field_settings.custom_field.description,custom_field_settings.custom_field.display_value,custom_field_settings.custom_field.enabled,custom_field_settings.custom_field.enum_options,custom_field_settings.custom_field.enum_options.color,custom_field_settings.custom_field.enum_options.enabled,custom_field_settings.custom_field.enum_options.name,custom_field_settings.custom_field.enum_value,custom_field_settings.custom_field.enum_value.color,custom_field_settings.custom_field.enum_value.enabled,custom_field_settings.custom_field.enum_value.name,custom_field_settings.custom_field.format,custom_field_settings.custom_field.has_notifications_enabled,custom_field_settings.custom_field.id_prefix,custom_field_settings.custom_field.input_restrictions,custom_field_settings.custom_field.is_formula_field,custom_field_settings.custom_field.is_global_to_workspace,custom_field_settings.custom_field.is_value_read_only,custom_field_settings.custom_field.multi_enum_values,custom_field_settings.custom_field.multi_enum_values.color,custom_field_settings.custom_field.multi_enum_values.enabled,custom_field_settings.custom_field.multi_enum_values.name,custom_field_settings.custom_field.name,custom_field_settings.custom_field.number_value,custom_field_settings.custom_field.people_value,custom_field_settings.custom_field.people_value.name,custom_field_settings.custom_field.precision,custom_field_settings.custom_field.privacy_setting,custom_field_settings.custom_field.reference_value,custom_field_settings.custom_field.reference_value.name,custom_field_settings.custom_field.representation_type,custom_field_settings.custom_field.resource_subtype,custom_field_settings.custom_field.text_value,custom_field_settings.custom_field.type,custom_field_settings.is_important,custom_field_settings.parent,custom_field_settings.parent.name,custom_field_settings.project,custom_field_settings.project.name,custom_fields,custom_fields.date_value,custom_fields.date_value.date,custom_fields.date_value.date_time,custom_fields.display_value,custom_fields.enabled,custom_fields.enum_options,custom_fields.enum_options.color,custom_fields.enum_options.enabled,custom_fields.enum_options.name,custom_fields.enum_value,custom_fields.enum_value.color,custom_fields.enum_value.enabled,custom_fields.enum_value.name,custom_fields.id_prefix,custom_fields.input_restrictions,custom_fields.is_formula_field,custom_fields.multi_enum_values,custom_fields.multi_enum_values.color,custom_fields.multi_enum_values.enabled,custom_fields.multi_enum_values.name,custom_fields.name,custom_fields.number_value,custom_fields.representation_type,custom_fields.text_value,custom_fields.type,due_on,followers,followers.name,html_notes,is_workspace_level,liked,likes,likes.user,likes.user.name,metric,metric.can_manage,metric.currency_code,metric.current_display_value,metric.current_number_value,metric.initial_number_value,metric.is_custom_weight,metric.precision,metric.progress_source,metric.resource_subtype,metric.target_number_value,metric.unit,name,notes,num_likes,owner,owner.name,start_on,status,team,team.name,time_period,time_period.display_name,time_period.end_on,time_period.period,time_period.start_on,workspace,workspace.name" }; goalsApiInstance.updateGoal(body, goal_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.goals.updateGoal(goalGid, {field: "value", field: "value", pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class goals_api_instance = asana.GoalsApi(api_client) body = {"data": {"": "", "": "",}} # dict | The updated fields for the goal. goal_gid = "12345" # str | Globally unique identifier for the goal. opts = { 'opt_fields': "current_status_update,current_status_update.resource_subtype,current_status_update.title,due_on,followers,followers.name,html_notes,is_workspace_level,liked,likes,likes.user,likes.user.name,metric,metric.can_manage,metric.currency_code,metric.current_display_value,metric.current_number_value,metric.initial_number_value,metric.is_custom_weight,metric.precision,metric.progress_source,metric.resource_subtype,metric.target_number_value,metric.unit,name,notes,num_likes,owner,owner.name,start_on,status,team,team.name,time_period,time_period.display_name,time_period.end_on,time_period.period,time_period.start_on,workspace,workspace.name", # list[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. } try: # Update a goal api_response = goals_api_instance.update_goal(body, goal_gid, opts) pprint(api_response) except ApiException as e: print("Exception when calling GoalsApi->update_goal: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.goals.update_goal(goal_gid, {'field': 'value', 'field': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- goals->updateGoal($goal_gid, array('field' => 'value', 'field' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.goals.update_goal(goal_gid: 'goal_gid', field: "value", field: "value", options: {pretty: true}) delete: summary: Delete a goal description: |- A specific, existing goal can be deleted by making a DELETE request on the URL for that goal. Returns an empty data record. tags: - Goals operationId: deleteGoal responses: 200: description: Successfully deleted the specified goal. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/EmptyResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 402: $ref: '#/components/responses/PaymentRequired' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: [] x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); JsonElement result = client.goals.deleteGoal(goalGid) .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let goalsApiInstance = new Asana.GoalsApi(client); let goal_gid = "12345"; // String | Globally unique identifier for the goal. goalsApiInstance.deleteGoal(goal_gid).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.goals.deleteGoal(goalGid) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class goals_api_instance = asana.GoalsApi(api_client) goal_gid = "12345" # str | Globally unique identifier for the goal. try: # Delete a goal api_response = goals_api_instance.delete_goal(goal_gid) pprint(api_response) except ApiException as e: print("Exception when calling GoalsApi->delete_goal: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.goals.delete_goal(goal_gid, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- goals->deleteGoal($goal_gid, array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.goals.delete_goal(goal_gid: 'goal_gid', options: {pretty: true}) /goals: parameters: - $ref: '#/components/parameters/pretty' get: summary: Get goals description: |- Required scope: goals:read Returns compact goal records. tags: - Goals operationId: getGoals parameters: - name: portfolio in: query description: Globally unique identifier for supporting portfolio. schema: type: string example: '159874' - name: project in: query description: Globally unique identifier for supporting project. schema: type: string example: '512241' - name: task in: query description: Globally unique identifier for supporting task. schema: type: string example: '78424' - name: is_workspace_level in: query description: Filter to goals with is_workspace_level set to query value. Must be used with the workspace parameter. schema: type: boolean example: false - name: team in: query description: Globally unique identifier for the team. schema: type: string example: '31326' - name: workspace in: query description: Globally unique identifier for the workspace. schema: type: string example: '31326' - name: time_periods in: query description: Globally unique identifiers for the time periods. schema: type: array items: type: string example: 221693,506165 - $ref: '#/components/parameters/limit' - $ref: '#/components/parameters/offset' - name: opt_fields in: query description: 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. required: false example: - current_status_update - current_status_update.resource_subtype - current_status_update.title - custom_field_settings - custom_field_settings.custom_field - custom_field_settings.custom_field.asana_created_field - custom_field_settings.custom_field.created_by - custom_field_settings.custom_field.created_by.name - custom_field_settings.custom_field.currency_code - custom_field_settings.custom_field.custom_label - custom_field_settings.custom_field.custom_label_position - custom_field_settings.custom_field.date_value - custom_field_settings.custom_field.date_value.date - custom_field_settings.custom_field.date_value.date_time - custom_field_settings.custom_field.default_access_level - custom_field_settings.custom_field.description - custom_field_settings.custom_field.display_value - custom_field_settings.custom_field.enabled - custom_field_settings.custom_field.enum_options - custom_field_settings.custom_field.enum_options.color - custom_field_settings.custom_field.enum_options.enabled - custom_field_settings.custom_field.enum_options.name - custom_field_settings.custom_field.enum_value - custom_field_settings.custom_field.enum_value.color - custom_field_settings.custom_field.enum_value.enabled - custom_field_settings.custom_field.enum_value.name - custom_field_settings.custom_field.format - custom_field_settings.custom_field.has_notifications_enabled - custom_field_settings.custom_field.id_prefix - custom_field_settings.custom_field.input_restrictions - custom_field_settings.custom_field.is_formula_field - custom_field_settings.custom_field.is_global_to_workspace - custom_field_settings.custom_field.is_value_read_only - custom_field_settings.custom_field.multi_enum_values - custom_field_settings.custom_field.multi_enum_values.color - custom_field_settings.custom_field.multi_enum_values.enabled - custom_field_settings.custom_field.multi_enum_values.name - custom_field_settings.custom_field.name - custom_field_settings.custom_field.number_value - custom_field_settings.custom_field.people_value - custom_field_settings.custom_field.people_value.name - custom_field_settings.custom_field.precision - custom_field_settings.custom_field.privacy_setting - custom_field_settings.custom_field.reference_value - custom_field_settings.custom_field.reference_value.name - custom_field_settings.custom_field.representation_type - custom_field_settings.custom_field.resource_subtype - custom_field_settings.custom_field.text_value - custom_field_settings.custom_field.type - custom_field_settings.is_important - custom_field_settings.parent - custom_field_settings.parent.name - custom_field_settings.project - custom_field_settings.project.name - custom_fields - custom_fields.date_value - custom_fields.date_value.date - custom_fields.date_value.date_time - custom_fields.display_value - custom_fields.enabled - custom_fields.enum_options - custom_fields.enum_options.color - custom_fields.enum_options.enabled - custom_fields.enum_options.name - custom_fields.enum_value - custom_fields.enum_value.color - custom_fields.enum_value.enabled - custom_fields.enum_value.name - custom_fields.id_prefix - custom_fields.input_restrictions - custom_fields.is_formula_field - custom_fields.multi_enum_values - custom_fields.multi_enum_values.color - custom_fields.multi_enum_values.enabled - custom_fields.multi_enum_values.name - custom_fields.name - custom_fields.number_value - custom_fields.representation_type - custom_fields.text_value - custom_fields.type - due_on - followers - followers.name - html_notes - is_workspace_level - liked - likes - likes.user - likes.user.name - metric - metric.can_manage - metric.currency_code - metric.current_display_value - metric.current_number_value - metric.initial_number_value - metric.is_custom_weight - metric.precision - metric.progress_source - metric.resource_subtype - metric.target_number_value - metric.unit - name - notes - num_likes - offset - owner - owner.name - path - start_on - status - team - team.name - time_period - time_period.display_name - time_period.end_on - time_period.period - time_period.start_on - uri - workspace - workspace.name schema: type: array items: type: string enum: - current_status_update - current_status_update.resource_subtype - current_status_update.title - custom_field_settings - custom_field_settings.custom_field - custom_field_settings.custom_field.asana_created_field - custom_field_settings.custom_field.created_by - custom_field_settings.custom_field.created_by.name - custom_field_settings.custom_field.currency_code - custom_field_settings.custom_field.custom_label - custom_field_settings.custom_field.custom_label_position - custom_field_settings.custom_field.date_value - custom_field_settings.custom_field.date_value.date - custom_field_settings.custom_field.date_value.date_time - custom_field_settings.custom_field.default_access_level - custom_field_settings.custom_field.description - custom_field_settings.custom_field.display_value - custom_field_settings.custom_field.enabled - custom_field_settings.custom_field.enum_options - custom_field_settings.custom_field.enum_options.color - custom_field_settings.custom_field.enum_options.enabled - custom_field_settings.custom_field.enum_options.name - custom_field_settings.custom_field.enum_value - custom_field_settings.custom_field.enum_value.color - custom_field_settings.custom_field.enum_value.enabled - custom_field_settings.custom_field.enum_value.name - custom_field_settings.custom_field.format - custom_field_settings.custom_field.has_notifications_enabled - custom_field_settings.custom_field.id_prefix - custom_field_settings.custom_field.input_restrictions - custom_field_settings.custom_field.is_formula_field - custom_field_settings.custom_field.is_global_to_workspace - custom_field_settings.custom_field.is_value_read_only - custom_field_settings.custom_field.multi_enum_values - custom_field_settings.custom_field.multi_enum_values.color - custom_field_settings.custom_field.multi_enum_values.enabled - custom_field_settings.custom_field.multi_enum_values.name - custom_field_settings.custom_field.name - custom_field_settings.custom_field.number_value - custom_field_settings.custom_field.people_value - custom_field_settings.custom_field.people_value.name - custom_field_settings.custom_field.precision - custom_field_settings.custom_field.privacy_setting - custom_field_settings.custom_field.reference_value - custom_field_settings.custom_field.reference_value.name - custom_field_settings.custom_field.representation_type - custom_field_settings.custom_field.resource_subtype - custom_field_settings.custom_field.text_value - custom_field_settings.custom_field.type - custom_field_settings.is_important - custom_field_settings.parent - custom_field_settings.parent.name - custom_field_settings.project - custom_field_settings.project.name - custom_fields - custom_fields.date_value - custom_fields.date_value.date - custom_fields.date_value.date_time - custom_fields.display_value - custom_fields.enabled - custom_fields.enum_options - custom_fields.enum_options.color - custom_fields.enum_options.enabled - custom_fields.enum_options.name - custom_fields.enum_value - custom_fields.enum_value.color - custom_fields.enum_value.enabled - custom_fields.enum_value.name - custom_fields.id_prefix - custom_fields.input_restrictions - custom_fields.is_formula_field - custom_fields.multi_enum_values - custom_fields.multi_enum_values.color - custom_fields.multi_enum_values.enabled - custom_fields.multi_enum_values.name - custom_fields.name - custom_fields.number_value - custom_fields.representation_type - custom_fields.text_value - custom_fields.type - due_on - followers - followers.name - html_notes - is_workspace_level - liked - likes - likes.user - likes.user.name - metric - metric.can_manage - metric.currency_code - metric.current_display_value - metric.current_number_value - metric.initial_number_value - metric.is_custom_weight - metric.precision - metric.progress_source - metric.resource_subtype - metric.target_number_value - metric.unit - name - notes - num_likes - offset - owner - owner.name - path - start_on - status - team - team.name - time_period - time_period.display_name - time_period.end_on - time_period.period - time_period.start_on - uri - workspace - workspace.name style: form explode: false responses: 200: description: >- Successfully retrieved the requested goals. content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/GoalCompact' next_page: $ref: '#/components/schemas/NextPage' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 402: $ref: '#/components/responses/PaymentRequired' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: - goals:read x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); List result = client.goals.getGoals(timePeriods, workspace, team, isWorkspaceLevel, project, portfolio) .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let goalsApiInstance = new Asana.GoalsApi(client); let opts = { 'portfolio': "159874", 'project': "512241", 'task': "78424", 'is_workspace_level': false, 'team': "31326", 'workspace': "31326", 'time_periods': "221693,506165", 'limit': 50, 'offset': "eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9", 'opt_fields': "current_status_update,current_status_update.resource_subtype,current_status_update.title,custom_field_settings,custom_field_settings.custom_field,custom_field_settings.custom_field.asana_created_field,custom_field_settings.custom_field.created_by,custom_field_settings.custom_field.created_by.name,custom_field_settings.custom_field.currency_code,custom_field_settings.custom_field.custom_label,custom_field_settings.custom_field.custom_label_position,custom_field_settings.custom_field.date_value,custom_field_settings.custom_field.date_value.date,custom_field_settings.custom_field.date_value.date_time,custom_field_settings.custom_field.default_access_level,custom_field_settings.custom_field.description,custom_field_settings.custom_field.display_value,custom_field_settings.custom_field.enabled,custom_field_settings.custom_field.enum_options,custom_field_settings.custom_field.enum_options.color,custom_field_settings.custom_field.enum_options.enabled,custom_field_settings.custom_field.enum_options.name,custom_field_settings.custom_field.enum_value,custom_field_settings.custom_field.enum_value.color,custom_field_settings.custom_field.enum_value.enabled,custom_field_settings.custom_field.enum_value.name,custom_field_settings.custom_field.format,custom_field_settings.custom_field.has_notifications_enabled,custom_field_settings.custom_field.id_prefix,custom_field_settings.custom_field.input_restrictions,custom_field_settings.custom_field.is_formula_field,custom_field_settings.custom_field.is_global_to_workspace,custom_field_settings.custom_field.is_value_read_only,custom_field_settings.custom_field.multi_enum_values,custom_field_settings.custom_field.multi_enum_values.color,custom_field_settings.custom_field.multi_enum_values.enabled,custom_field_settings.custom_field.multi_enum_values.name,custom_field_settings.custom_field.name,custom_field_settings.custom_field.number_value,custom_field_settings.custom_field.people_value,custom_field_settings.custom_field.people_value.name,custom_field_settings.custom_field.precision,custom_field_settings.custom_field.privacy_setting,custom_field_settings.custom_field.reference_value,custom_field_settings.custom_field.reference_value.name,custom_field_settings.custom_field.representation_type,custom_field_settings.custom_field.resource_subtype,custom_field_settings.custom_field.text_value,custom_field_settings.custom_field.type,custom_field_settings.is_important,custom_field_settings.parent,custom_field_settings.parent.name,custom_field_settings.project,custom_field_settings.project.name,custom_fields,custom_fields.date_value,custom_fields.date_value.date,custom_fields.date_value.date_time,custom_fields.display_value,custom_fields.enabled,custom_fields.enum_options,custom_fields.enum_options.color,custom_fields.enum_options.enabled,custom_fields.enum_options.name,custom_fields.enum_value,custom_fields.enum_value.color,custom_fields.enum_value.enabled,custom_fields.enum_value.name,custom_fields.id_prefix,custom_fields.input_restrictions,custom_fields.is_formula_field,custom_fields.multi_enum_values,custom_fields.multi_enum_values.color,custom_fields.multi_enum_values.enabled,custom_fields.multi_enum_values.name,custom_fields.name,custom_fields.number_value,custom_fields.representation_type,custom_fields.text_value,custom_fields.type,due_on,followers,followers.name,html_notes,is_workspace_level,liked,likes,likes.user,likes.user.name,metric,metric.can_manage,metric.currency_code,metric.current_display_value,metric.current_number_value,metric.initial_number_value,metric.is_custom_weight,metric.precision,metric.progress_source,metric.resource_subtype,metric.target_number_value,metric.unit,name,notes,num_likes,offset,owner,owner.name,path,start_on,status,team,team.name,time_period,time_period.display_name,time_period.end_on,time_period.period,time_period.start_on,uri,workspace,workspace.name" }; goalsApiInstance.getGoals(opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.goals.getGoals({param: "value", param: "value", opt_pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class goals_api_instance = asana.GoalsApi(api_client) opts = { 'portfolio': "159874", # str | Globally unique identifier for supporting portfolio. 'project': "512241", # str | Globally unique identifier for supporting project. 'task': "78424", # str | Globally unique identifier for supporting task. 'is_workspace_level': False, # bool | Filter to goals with is_workspace_level set to query value. Must be used with the workspace parameter. 'team': "31326", # str | Globally unique identifier for the team. 'workspace': "31326", # str | Globally unique identifier for the workspace. 'time_periods': "221693,506165", # list[str] | Globally unique identifiers for the time periods. 'limit': 50, # int | Results per page. The number of objects to return per page. The value must be between 1 and 100. 'offset': "eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9", # 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': "current_status_update,current_status_update.resource_subtype,current_status_update.title,due_on,followers,followers.name,html_notes,is_workspace_level,liked,likes,likes.user,likes.user.name,metric,metric.can_manage,metric.currency_code,metric.current_display_value,metric.current_number_value,metric.initial_number_value,metric.is_custom_weight,metric.precision,metric.progress_source,metric.resource_subtype,metric.target_number_value,metric.unit,name,notes,num_likes,offset,owner,owner.name,path,start_on,status,team,team.name,time_period,time_period.display_name,time_period.end_on,time_period.period,time_period.start_on,uri,workspace,workspace.name", # list[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. } try: # Get goals api_response = goals_api_instance.get_goals(opts) for data in api_response: pprint(data) except ApiException as e: print("Exception when calling GoalsApi->get_goals: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.goals.get_goals({'param': 'value', 'param': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- goals->getGoals(array('param' => 'value', 'param' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.goals.get_goals(param: "value", param: "value", options: {pretty: true}) post: summary: Create a goal description: |- Creates a new goal in a workspace or team. Returns the full record of the newly created goal. tags: - Goals operationId: createGoal parameters: - name: opt_fields in: query description: 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. required: false example: - current_status_update - current_status_update.resource_subtype - current_status_update.title - custom_field_settings - custom_field_settings.custom_field - custom_field_settings.custom_field.asana_created_field - custom_field_settings.custom_field.created_by - custom_field_settings.custom_field.created_by.name - custom_field_settings.custom_field.currency_code - custom_field_settings.custom_field.custom_label - custom_field_settings.custom_field.custom_label_position - custom_field_settings.custom_field.date_value - custom_field_settings.custom_field.date_value.date - custom_field_settings.custom_field.date_value.date_time - custom_field_settings.custom_field.default_access_level - custom_field_settings.custom_field.description - custom_field_settings.custom_field.display_value - custom_field_settings.custom_field.enabled - custom_field_settings.custom_field.enum_options - custom_field_settings.custom_field.enum_options.color - custom_field_settings.custom_field.enum_options.enabled - custom_field_settings.custom_field.enum_options.name - custom_field_settings.custom_field.enum_value - custom_field_settings.custom_field.enum_value.color - custom_field_settings.custom_field.enum_value.enabled - custom_field_settings.custom_field.enum_value.name - custom_field_settings.custom_field.format - custom_field_settings.custom_field.has_notifications_enabled - custom_field_settings.custom_field.id_prefix - custom_field_settings.custom_field.input_restrictions - custom_field_settings.custom_field.is_formula_field - custom_field_settings.custom_field.is_global_to_workspace - custom_field_settings.custom_field.is_value_read_only - custom_field_settings.custom_field.multi_enum_values - custom_field_settings.custom_field.multi_enum_values.color - custom_field_settings.custom_field.multi_enum_values.enabled - custom_field_settings.custom_field.multi_enum_values.name - custom_field_settings.custom_field.name - custom_field_settings.custom_field.number_value - custom_field_settings.custom_field.people_value - custom_field_settings.custom_field.people_value.name - custom_field_settings.custom_field.precision - custom_field_settings.custom_field.privacy_setting - custom_field_settings.custom_field.reference_value - custom_field_settings.custom_field.reference_value.name - custom_field_settings.custom_field.representation_type - custom_field_settings.custom_field.resource_subtype - custom_field_settings.custom_field.text_value - custom_field_settings.custom_field.type - custom_field_settings.is_important - custom_field_settings.parent - custom_field_settings.parent.name - custom_field_settings.project - custom_field_settings.project.name - custom_fields - custom_fields.date_value - custom_fields.date_value.date - custom_fields.date_value.date_time - custom_fields.display_value - custom_fields.enabled - custom_fields.enum_options - custom_fields.enum_options.color - custom_fields.enum_options.enabled - custom_fields.enum_options.name - custom_fields.enum_value - custom_fields.enum_value.color - custom_fields.enum_value.enabled - custom_fields.enum_value.name - custom_fields.id_prefix - custom_fields.input_restrictions - custom_fields.is_formula_field - custom_fields.multi_enum_values - custom_fields.multi_enum_values.color - custom_fields.multi_enum_values.enabled - custom_fields.multi_enum_values.name - custom_fields.name - custom_fields.number_value - custom_fields.representation_type - custom_fields.text_value - custom_fields.type - due_on - followers - followers.name - html_notes - is_workspace_level - liked - likes - likes.user - likes.user.name - metric - metric.can_manage - metric.currency_code - metric.current_display_value - metric.current_number_value - metric.initial_number_value - metric.is_custom_weight - metric.precision - metric.progress_source - metric.resource_subtype - metric.target_number_value - metric.unit - name - notes - num_likes - owner - owner.name - start_on - status - team - team.name - time_period - time_period.display_name - time_period.end_on - time_period.period - time_period.start_on - workspace - workspace.name schema: type: array items: type: string enum: - current_status_update - current_status_update.resource_subtype - current_status_update.title - custom_field_settings - custom_field_settings.custom_field - custom_field_settings.custom_field.asana_created_field - custom_field_settings.custom_field.created_by - custom_field_settings.custom_field.created_by.name - custom_field_settings.custom_field.currency_code - custom_field_settings.custom_field.custom_label - custom_field_settings.custom_field.custom_label_position - custom_field_settings.custom_field.date_value - custom_field_settings.custom_field.date_value.date - custom_field_settings.custom_field.date_value.date_time - custom_field_settings.custom_field.default_access_level - custom_field_settings.custom_field.description - custom_field_settings.custom_field.display_value - custom_field_settings.custom_field.enabled - custom_field_settings.custom_field.enum_options - custom_field_settings.custom_field.enum_options.color - custom_field_settings.custom_field.enum_options.enabled - custom_field_settings.custom_field.enum_options.name - custom_field_settings.custom_field.enum_value - custom_field_settings.custom_field.enum_value.color - custom_field_settings.custom_field.enum_value.enabled - custom_field_settings.custom_field.enum_value.name - custom_field_settings.custom_field.format - custom_field_settings.custom_field.has_notifications_enabled - custom_field_settings.custom_field.id_prefix - custom_field_settings.custom_field.input_restrictions - custom_field_settings.custom_field.is_formula_field - custom_field_settings.custom_field.is_global_to_workspace - custom_field_settings.custom_field.is_value_read_only - custom_field_settings.custom_field.multi_enum_values - custom_field_settings.custom_field.multi_enum_values.color - custom_field_settings.custom_field.multi_enum_values.enabled - custom_field_settings.custom_field.multi_enum_values.name - custom_field_settings.custom_field.name - custom_field_settings.custom_field.number_value - custom_field_settings.custom_field.people_value - custom_field_settings.custom_field.people_value.name - custom_field_settings.custom_field.precision - custom_field_settings.custom_field.privacy_setting - custom_field_settings.custom_field.reference_value - custom_field_settings.custom_field.reference_value.name - custom_field_settings.custom_field.representation_type - custom_field_settings.custom_field.resource_subtype - custom_field_settings.custom_field.text_value - custom_field_settings.custom_field.type - custom_field_settings.is_important - custom_field_settings.parent - custom_field_settings.parent.name - custom_field_settings.project - custom_field_settings.project.name - custom_fields - custom_fields.date_value - custom_fields.date_value.date - custom_fields.date_value.date_time - custom_fields.display_value - custom_fields.enabled - custom_fields.enum_options - custom_fields.enum_options.color - custom_fields.enum_options.enabled - custom_fields.enum_options.name - custom_fields.enum_value - custom_fields.enum_value.color - custom_fields.enum_value.enabled - custom_fields.enum_value.name - custom_fields.id_prefix - custom_fields.input_restrictions - custom_fields.is_formula_field - custom_fields.multi_enum_values - custom_fields.multi_enum_values.color - custom_fields.multi_enum_values.enabled - custom_fields.multi_enum_values.name - custom_fields.name - custom_fields.number_value - custom_fields.representation_type - custom_fields.text_value - custom_fields.type - due_on - followers - followers.name - html_notes - is_workspace_level - liked - likes - likes.user - likes.user.name - metric - metric.can_manage - metric.currency_code - metric.current_display_value - metric.current_number_value - metric.initial_number_value - metric.is_custom_weight - metric.precision - metric.progress_source - metric.resource_subtype - metric.target_number_value - metric.unit - name - notes - num_likes - owner - owner.name - start_on - status - team - team.name - time_period - time_period.display_name - time_period.end_on - time_period.period - time_period.start_on - workspace - workspace.name style: form explode: false requestBody: description: The goal to create. required: true content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/GoalRequest' responses: 201: description: Successfully created a new goal. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/GoalResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 402: $ref: '#/components/responses/PaymentRequired' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: [] x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); JsonElement result = client.goals.createGoal() .data("field", "value") .data("field", "value") .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let goalsApiInstance = new Asana.GoalsApi(client); let body = {"data": {"": "", "": "",}}; // Object | The goal to create. let opts = { 'opt_fields': "current_status_update,current_status_update.resource_subtype,current_status_update.title,custom_field_settings,custom_field_settings.custom_field,custom_field_settings.custom_field.asana_created_field,custom_field_settings.custom_field.created_by,custom_field_settings.custom_field.created_by.name,custom_field_settings.custom_field.currency_code,custom_field_settings.custom_field.custom_label,custom_field_settings.custom_field.custom_label_position,custom_field_settings.custom_field.date_value,custom_field_settings.custom_field.date_value.date,custom_field_settings.custom_field.date_value.date_time,custom_field_settings.custom_field.default_access_level,custom_field_settings.custom_field.description,custom_field_settings.custom_field.display_value,custom_field_settings.custom_field.enabled,custom_field_settings.custom_field.enum_options,custom_field_settings.custom_field.enum_options.color,custom_field_settings.custom_field.enum_options.enabled,custom_field_settings.custom_field.enum_options.name,custom_field_settings.custom_field.enum_value,custom_field_settings.custom_field.enum_value.color,custom_field_settings.custom_field.enum_value.enabled,custom_field_settings.custom_field.enum_value.name,custom_field_settings.custom_field.format,custom_field_settings.custom_field.has_notifications_enabled,custom_field_settings.custom_field.id_prefix,custom_field_settings.custom_field.input_restrictions,custom_field_settings.custom_field.is_formula_field,custom_field_settings.custom_field.is_global_to_workspace,custom_field_settings.custom_field.is_value_read_only,custom_field_settings.custom_field.multi_enum_values,custom_field_settings.custom_field.multi_enum_values.color,custom_field_settings.custom_field.multi_enum_values.enabled,custom_field_settings.custom_field.multi_enum_values.name,custom_field_settings.custom_field.name,custom_field_settings.custom_field.number_value,custom_field_settings.custom_field.people_value,custom_field_settings.custom_field.people_value.name,custom_field_settings.custom_field.precision,custom_field_settings.custom_field.privacy_setting,custom_field_settings.custom_field.reference_value,custom_field_settings.custom_field.reference_value.name,custom_field_settings.custom_field.representation_type,custom_field_settings.custom_field.resource_subtype,custom_field_settings.custom_field.text_value,custom_field_settings.custom_field.type,custom_field_settings.is_important,custom_field_settings.parent,custom_field_settings.parent.name,custom_field_settings.project,custom_field_settings.project.name,custom_fields,custom_fields.date_value,custom_fields.date_value.date,custom_fields.date_value.date_time,custom_fields.display_value,custom_fields.enabled,custom_fields.enum_options,custom_fields.enum_options.color,custom_fields.enum_options.enabled,custom_fields.enum_options.name,custom_fields.enum_value,custom_fields.enum_value.color,custom_fields.enum_value.enabled,custom_fields.enum_value.name,custom_fields.id_prefix,custom_fields.input_restrictions,custom_fields.is_formula_field,custom_fields.multi_enum_values,custom_fields.multi_enum_values.color,custom_fields.multi_enum_values.enabled,custom_fields.multi_enum_values.name,custom_fields.name,custom_fields.number_value,custom_fields.representation_type,custom_fields.text_value,custom_fields.type,due_on,followers,followers.name,html_notes,is_workspace_level,liked,likes,likes.user,likes.user.name,metric,metric.can_manage,metric.currency_code,metric.current_display_value,metric.current_number_value,metric.initial_number_value,metric.is_custom_weight,metric.precision,metric.progress_source,metric.resource_subtype,metric.target_number_value,metric.unit,name,notes,num_likes,owner,owner.name,start_on,status,team,team.name,time_period,time_period.display_name,time_period.end_on,time_period.period,time_period.start_on,workspace,workspace.name" }; goalsApiInstance.createGoal(body, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.goals.createGoal({field: "value", field: "value", pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class goals_api_instance = asana.GoalsApi(api_client) body = {"data": {"": "", "": "",}} # dict | The goal to create. opts = { 'opt_fields': "current_status_update,current_status_update.resource_subtype,current_status_update.title,due_on,followers,followers.name,html_notes,is_workspace_level,liked,likes,likes.user,likes.user.name,metric,metric.can_manage,metric.currency_code,metric.current_display_value,metric.current_number_value,metric.initial_number_value,metric.is_custom_weight,metric.precision,metric.progress_source,metric.resource_subtype,metric.target_number_value,metric.unit,name,notes,num_likes,owner,owner.name,start_on,status,team,team.name,time_period,time_period.display_name,time_period.end_on,time_period.period,time_period.start_on,workspace,workspace.name", # list[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. } try: # Create a goal api_response = goals_api_instance.create_goal(body, opts) pprint(api_response) except ApiException as e: print("Exception when calling GoalsApi->create_goal: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.goals.create_goal({'field': 'value', 'field': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- goals->createGoal(array('field' => 'value', 'field' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.goals.create_goal(field: "value", field: "value", options: {pretty: true}) /goals/{goal_gid}/setMetric: parameters: - $ref: '#/components/parameters/goal_path_gid' - $ref: '#/components/parameters/pretty' post: summary: Create a goal metric description: >- Creates and adds a goal metric to a specified goal. Note that this replaces an existing goal metric if one already exists. tags: - Goals operationId: createGoalMetric parameters: - name: opt_fields in: query description: 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. required: false example: - current_status_update - current_status_update.resource_subtype - current_status_update.title - custom_field_settings - custom_field_settings.custom_field - custom_field_settings.custom_field.asana_created_field - custom_field_settings.custom_field.created_by - custom_field_settings.custom_field.created_by.name - custom_field_settings.custom_field.currency_code - custom_field_settings.custom_field.custom_label - custom_field_settings.custom_field.custom_label_position - custom_field_settings.custom_field.date_value - custom_field_settings.custom_field.date_value.date - custom_field_settings.custom_field.date_value.date_time - custom_field_settings.custom_field.default_access_level - custom_field_settings.custom_field.description - custom_field_settings.custom_field.display_value - custom_field_settings.custom_field.enabled - custom_field_settings.custom_field.enum_options - custom_field_settings.custom_field.enum_options.color - custom_field_settings.custom_field.enum_options.enabled - custom_field_settings.custom_field.enum_options.name - custom_field_settings.custom_field.enum_value - custom_field_settings.custom_field.enum_value.color - custom_field_settings.custom_field.enum_value.enabled - custom_field_settings.custom_field.enum_value.name - custom_field_settings.custom_field.format - custom_field_settings.custom_field.has_notifications_enabled - custom_field_settings.custom_field.id_prefix - custom_field_settings.custom_field.input_restrictions - custom_field_settings.custom_field.is_formula_field - custom_field_settings.custom_field.is_global_to_workspace - custom_field_settings.custom_field.is_value_read_only - custom_field_settings.custom_field.multi_enum_values - custom_field_settings.custom_field.multi_enum_values.color - custom_field_settings.custom_field.multi_enum_values.enabled - custom_field_settings.custom_field.multi_enum_values.name - custom_field_settings.custom_field.name - custom_field_settings.custom_field.number_value - custom_field_settings.custom_field.people_value - custom_field_settings.custom_field.people_value.name - custom_field_settings.custom_field.precision - custom_field_settings.custom_field.privacy_setting - custom_field_settings.custom_field.reference_value - custom_field_settings.custom_field.reference_value.name - custom_field_settings.custom_field.representation_type - custom_field_settings.custom_field.resource_subtype - custom_field_settings.custom_field.text_value - custom_field_settings.custom_field.type - custom_field_settings.is_important - custom_field_settings.parent - custom_field_settings.parent.name - custom_field_settings.project - custom_field_settings.project.name - custom_fields - custom_fields.date_value - custom_fields.date_value.date - custom_fields.date_value.date_time - custom_fields.display_value - custom_fields.enabled - custom_fields.enum_options - custom_fields.enum_options.color - custom_fields.enum_options.enabled - custom_fields.enum_options.name - custom_fields.enum_value - custom_fields.enum_value.color - custom_fields.enum_value.enabled - custom_fields.enum_value.name - custom_fields.id_prefix - custom_fields.input_restrictions - custom_fields.is_formula_field - custom_fields.multi_enum_values - custom_fields.multi_enum_values.color - custom_fields.multi_enum_values.enabled - custom_fields.multi_enum_values.name - custom_fields.name - custom_fields.number_value - custom_fields.representation_type - custom_fields.text_value - custom_fields.type - due_on - followers - followers.name - html_notes - is_workspace_level - liked - likes - likes.user - likes.user.name - metric - metric.can_manage - metric.currency_code - metric.current_display_value - metric.current_number_value - metric.initial_number_value - metric.is_custom_weight - metric.precision - metric.progress_source - metric.resource_subtype - metric.target_number_value - metric.unit - name - notes - num_likes - owner - owner.name - start_on - status - team - team.name - time_period - time_period.display_name - time_period.end_on - time_period.period - time_period.start_on - workspace - workspace.name schema: type: array items: type: string enum: - current_status_update - current_status_update.resource_subtype - current_status_update.title - custom_field_settings - custom_field_settings.custom_field - custom_field_settings.custom_field.asana_created_field - custom_field_settings.custom_field.created_by - custom_field_settings.custom_field.created_by.name - custom_field_settings.custom_field.currency_code - custom_field_settings.custom_field.custom_label - custom_field_settings.custom_field.custom_label_position - custom_field_settings.custom_field.date_value - custom_field_settings.custom_field.date_value.date - custom_field_settings.custom_field.date_value.date_time - custom_field_settings.custom_field.default_access_level - custom_field_settings.custom_field.description - custom_field_settings.custom_field.display_value - custom_field_settings.custom_field.enabled - custom_field_settings.custom_field.enum_options - custom_field_settings.custom_field.enum_options.color - custom_field_settings.custom_field.enum_options.enabled - custom_field_settings.custom_field.enum_options.name - custom_field_settings.custom_field.enum_value - custom_field_settings.custom_field.enum_value.color - custom_field_settings.custom_field.enum_value.enabled - custom_field_settings.custom_field.enum_value.name - custom_field_settings.custom_field.format - custom_field_settings.custom_field.has_notifications_enabled - custom_field_settings.custom_field.id_prefix - custom_field_settings.custom_field.input_restrictions - custom_field_settings.custom_field.is_formula_field - custom_field_settings.custom_field.is_global_to_workspace - custom_field_settings.custom_field.is_value_read_only - custom_field_settings.custom_field.multi_enum_values - custom_field_settings.custom_field.multi_enum_values.color - custom_field_settings.custom_field.multi_enum_values.enabled - custom_field_settings.custom_field.multi_enum_values.name - custom_field_settings.custom_field.name - custom_field_settings.custom_field.number_value - custom_field_settings.custom_field.people_value - custom_field_settings.custom_field.people_value.name - custom_field_settings.custom_field.precision - custom_field_settings.custom_field.privacy_setting - custom_field_settings.custom_field.reference_value - custom_field_settings.custom_field.reference_value.name - custom_field_settings.custom_field.representation_type - custom_field_settings.custom_field.resource_subtype - custom_field_settings.custom_field.text_value - custom_field_settings.custom_field.type - custom_field_settings.is_important - custom_field_settings.parent - custom_field_settings.parent.name - custom_field_settings.project - custom_field_settings.project.name - custom_fields - custom_fields.date_value - custom_fields.date_value.date - custom_fields.date_value.date_time - custom_fields.display_value - custom_fields.enabled - custom_fields.enum_options - custom_fields.enum_options.color - custom_fields.enum_options.enabled - custom_fields.enum_options.name - custom_fields.enum_value - custom_fields.enum_value.color - custom_fields.enum_value.enabled - custom_fields.enum_value.name - custom_fields.id_prefix - custom_fields.input_restrictions - custom_fields.is_formula_field - custom_fields.multi_enum_values - custom_fields.multi_enum_values.color - custom_fields.multi_enum_values.enabled - custom_fields.multi_enum_values.name - custom_fields.name - custom_fields.number_value - custom_fields.representation_type - custom_fields.text_value - custom_fields.type - due_on - followers - followers.name - html_notes - is_workspace_level - liked - likes - likes.user - likes.user.name - metric - metric.can_manage - metric.currency_code - metric.current_display_value - metric.current_number_value - metric.initial_number_value - metric.is_custom_weight - metric.precision - metric.progress_source - metric.resource_subtype - metric.target_number_value - metric.unit - name - notes - num_likes - owner - owner.name - start_on - status - team - team.name - time_period - time_period.display_name - time_period.end_on - time_period.period - time_period.start_on - workspace - workspace.name style: form explode: false requestBody: description: The goal metric to create. required: true content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/GoalMetricRequest' responses: 200: description: Successfully created a new goal metric. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/GoalResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 402: $ref: '#/components/responses/PaymentRequired' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: [] x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); JsonElement result = client.goals.createGoalMetric(goalGid) .data("field", "value") .data("field", "value") .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let goalsApiInstance = new Asana.GoalsApi(client); let body = {"data": {"": "", "": "",}}; // Object | The goal metric to create. let goal_gid = "12345"; // String | Globally unique identifier for the goal. let opts = { 'opt_fields': "current_status_update,current_status_update.resource_subtype,current_status_update.title,custom_field_settings,custom_field_settings.custom_field,custom_field_settings.custom_field.asana_created_field,custom_field_settings.custom_field.created_by,custom_field_settings.custom_field.created_by.name,custom_field_settings.custom_field.currency_code,custom_field_settings.custom_field.custom_label,custom_field_settings.custom_field.custom_label_position,custom_field_settings.custom_field.date_value,custom_field_settings.custom_field.date_value.date,custom_field_settings.custom_field.date_value.date_time,custom_field_settings.custom_field.default_access_level,custom_field_settings.custom_field.description,custom_field_settings.custom_field.display_value,custom_field_settings.custom_field.enabled,custom_field_settings.custom_field.enum_options,custom_field_settings.custom_field.enum_options.color,custom_field_settings.custom_field.enum_options.enabled,custom_field_settings.custom_field.enum_options.name,custom_field_settings.custom_field.enum_value,custom_field_settings.custom_field.enum_value.color,custom_field_settings.custom_field.enum_value.enabled,custom_field_settings.custom_field.enum_value.name,custom_field_settings.custom_field.format,custom_field_settings.custom_field.has_notifications_enabled,custom_field_settings.custom_field.id_prefix,custom_field_settings.custom_field.input_restrictions,custom_field_settings.custom_field.is_formula_field,custom_field_settings.custom_field.is_global_to_workspace,custom_field_settings.custom_field.is_value_read_only,custom_field_settings.custom_field.multi_enum_values,custom_field_settings.custom_field.multi_enum_values.color,custom_field_settings.custom_field.multi_enum_values.enabled,custom_field_settings.custom_field.multi_enum_values.name,custom_field_settings.custom_field.name,custom_field_settings.custom_field.number_value,custom_field_settings.custom_field.people_value,custom_field_settings.custom_field.people_value.name,custom_field_settings.custom_field.precision,custom_field_settings.custom_field.privacy_setting,custom_field_settings.custom_field.reference_value,custom_field_settings.custom_field.reference_value.name,custom_field_settings.custom_field.representation_type,custom_field_settings.custom_field.resource_subtype,custom_field_settings.custom_field.text_value,custom_field_settings.custom_field.type,custom_field_settings.is_important,custom_field_settings.parent,custom_field_settings.parent.name,custom_field_settings.project,custom_field_settings.project.name,custom_fields,custom_fields.date_value,custom_fields.date_value.date,custom_fields.date_value.date_time,custom_fields.display_value,custom_fields.enabled,custom_fields.enum_options,custom_fields.enum_options.color,custom_fields.enum_options.enabled,custom_fields.enum_options.name,custom_fields.enum_value,custom_fields.enum_value.color,custom_fields.enum_value.enabled,custom_fields.enum_value.name,custom_fields.id_prefix,custom_fields.input_restrictions,custom_fields.is_formula_field,custom_fields.multi_enum_values,custom_fields.multi_enum_values.color,custom_fields.multi_enum_values.enabled,custom_fields.multi_enum_values.name,custom_fields.name,custom_fields.number_value,custom_fields.representation_type,custom_fields.text_value,custom_fields.type,due_on,followers,followers.name,html_notes,is_workspace_level,liked,likes,likes.user,likes.user.name,metric,metric.can_manage,metric.currency_code,metric.current_display_value,metric.current_number_value,metric.initial_number_value,metric.is_custom_weight,metric.precision,metric.progress_source,metric.resource_subtype,metric.target_number_value,metric.unit,name,notes,num_likes,owner,owner.name,start_on,status,team,team.name,time_period,time_period.display_name,time_period.end_on,time_period.period,time_period.start_on,workspace,workspace.name" }; goalsApiInstance.createGoalMetric(body, goal_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.goals.createGoalMetric(goalGid, {field: "value", field: "value", pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class goals_api_instance = asana.GoalsApi(api_client) body = {"data": {"": "", "": "",}} # dict | The goal metric to create. goal_gid = "12345" # str | Globally unique identifier for the goal. opts = { 'opt_fields': "current_status_update,current_status_update.resource_subtype,current_status_update.title,due_on,followers,followers.name,html_notes,is_workspace_level,liked,likes,likes.user,likes.user.name,metric,metric.can_manage,metric.currency_code,metric.current_display_value,metric.current_number_value,metric.initial_number_value,metric.is_custom_weight,metric.precision,metric.progress_source,metric.resource_subtype,metric.target_number_value,metric.unit,name,notes,num_likes,owner,owner.name,start_on,status,team,team.name,time_period,time_period.display_name,time_period.end_on,time_period.period,time_period.start_on,workspace,workspace.name", # list[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. } try: # Create a goal metric api_response = goals_api_instance.create_goal_metric(body, goal_gid, opts) pprint(api_response) except ApiException as e: print("Exception when calling GoalsApi->create_goal_metric: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.goals.create_goal_metric(goal_gid, {'field': 'value', 'field': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- goals->createGoalMetric($goal_gid, array('field' => 'value', 'field' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.goals.create_goal_metric(goal_gid: 'goal_gid', field: "value", field: "value", options: {pretty: true}) /goals/{goal_gid}/setMetricCurrentValue: parameters: - $ref: '#/components/parameters/goal_path_gid' - $ref: '#/components/parameters/pretty' post: summary: Update a goal metric description: |- Updates a goal's existing metric's `current_number_value` if one exists, otherwise responds with a 400 status code. Returns the complete updated goal metric record. tags: - Goals operationId: updateGoalMetric parameters: - name: opt_fields in: query description: 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. required: false example: - current_status_update - current_status_update.resource_subtype - current_status_update.title - custom_field_settings - custom_field_settings.custom_field - custom_field_settings.custom_field.asana_created_field - custom_field_settings.custom_field.created_by - custom_field_settings.custom_field.created_by.name - custom_field_settings.custom_field.currency_code - custom_field_settings.custom_field.custom_label - custom_field_settings.custom_field.custom_label_position - custom_field_settings.custom_field.date_value - custom_field_settings.custom_field.date_value.date - custom_field_settings.custom_field.date_value.date_time - custom_field_settings.custom_field.default_access_level - custom_field_settings.custom_field.description - custom_field_settings.custom_field.display_value - custom_field_settings.custom_field.enabled - custom_field_settings.custom_field.enum_options - custom_field_settings.custom_field.enum_options.color - custom_field_settings.custom_field.enum_options.enabled - custom_field_settings.custom_field.enum_options.name - custom_field_settings.custom_field.enum_value - custom_field_settings.custom_field.enum_value.color - custom_field_settings.custom_field.enum_value.enabled - custom_field_settings.custom_field.enum_value.name - custom_field_settings.custom_field.format - custom_field_settings.custom_field.has_notifications_enabled - custom_field_settings.custom_field.id_prefix - custom_field_settings.custom_field.input_restrictions - custom_field_settings.custom_field.is_formula_field - custom_field_settings.custom_field.is_global_to_workspace - custom_field_settings.custom_field.is_value_read_only - custom_field_settings.custom_field.multi_enum_values - custom_field_settings.custom_field.multi_enum_values.color - custom_field_settings.custom_field.multi_enum_values.enabled - custom_field_settings.custom_field.multi_enum_values.name - custom_field_settings.custom_field.name - custom_field_settings.custom_field.number_value - custom_field_settings.custom_field.people_value - custom_field_settings.custom_field.people_value.name - custom_field_settings.custom_field.precision - custom_field_settings.custom_field.privacy_setting - custom_field_settings.custom_field.reference_value - custom_field_settings.custom_field.reference_value.name - custom_field_settings.custom_field.representation_type - custom_field_settings.custom_field.resource_subtype - custom_field_settings.custom_field.text_value - custom_field_settings.custom_field.type - custom_field_settings.is_important - custom_field_settings.parent - custom_field_settings.parent.name - custom_field_settings.project - custom_field_settings.project.name - custom_fields - custom_fields.date_value - custom_fields.date_value.date - custom_fields.date_value.date_time - custom_fields.display_value - custom_fields.enabled - custom_fields.enum_options - custom_fields.enum_options.color - custom_fields.enum_options.enabled - custom_fields.enum_options.name - custom_fields.enum_value - custom_fields.enum_value.color - custom_fields.enum_value.enabled - custom_fields.enum_value.name - custom_fields.id_prefix - custom_fields.input_restrictions - custom_fields.is_formula_field - custom_fields.multi_enum_values - custom_fields.multi_enum_values.color - custom_fields.multi_enum_values.enabled - custom_fields.multi_enum_values.name - custom_fields.name - custom_fields.number_value - custom_fields.representation_type - custom_fields.text_value - custom_fields.type - due_on - followers - followers.name - html_notes - is_workspace_level - liked - likes - likes.user - likes.user.name - metric - metric.can_manage - metric.currency_code - metric.current_display_value - metric.current_number_value - metric.initial_number_value - metric.is_custom_weight - metric.precision - metric.progress_source - metric.resource_subtype - metric.target_number_value - metric.unit - name - notes - num_likes - owner - owner.name - start_on - status - team - team.name - time_period - time_period.display_name - time_period.end_on - time_period.period - time_period.start_on - workspace - workspace.name schema: type: array items: type: string enum: - current_status_update - current_status_update.resource_subtype - current_status_update.title - custom_field_settings - custom_field_settings.custom_field - custom_field_settings.custom_field.asana_created_field - custom_field_settings.custom_field.created_by - custom_field_settings.custom_field.created_by.name - custom_field_settings.custom_field.currency_code - custom_field_settings.custom_field.custom_label - custom_field_settings.custom_field.custom_label_position - custom_field_settings.custom_field.date_value - custom_field_settings.custom_field.date_value.date - custom_field_settings.custom_field.date_value.date_time - custom_field_settings.custom_field.default_access_level - custom_field_settings.custom_field.description - custom_field_settings.custom_field.display_value - custom_field_settings.custom_field.enabled - custom_field_settings.custom_field.enum_options - custom_field_settings.custom_field.enum_options.color - custom_field_settings.custom_field.enum_options.enabled - custom_field_settings.custom_field.enum_options.name - custom_field_settings.custom_field.enum_value - custom_field_settings.custom_field.enum_value.color - custom_field_settings.custom_field.enum_value.enabled - custom_field_settings.custom_field.enum_value.name - custom_field_settings.custom_field.format - custom_field_settings.custom_field.has_notifications_enabled - custom_field_settings.custom_field.id_prefix - custom_field_settings.custom_field.input_restrictions - custom_field_settings.custom_field.is_formula_field - custom_field_settings.custom_field.is_global_to_workspace - custom_field_settings.custom_field.is_value_read_only - custom_field_settings.custom_field.multi_enum_values - custom_field_settings.custom_field.multi_enum_values.color - custom_field_settings.custom_field.multi_enum_values.enabled - custom_field_settings.custom_field.multi_enum_values.name - custom_field_settings.custom_field.name - custom_field_settings.custom_field.number_value - custom_field_settings.custom_field.people_value - custom_field_settings.custom_field.people_value.name - custom_field_settings.custom_field.precision - custom_field_settings.custom_field.privacy_setting - custom_field_settings.custom_field.reference_value - custom_field_settings.custom_field.reference_value.name - custom_field_settings.custom_field.representation_type - custom_field_settings.custom_field.resource_subtype - custom_field_settings.custom_field.text_value - custom_field_settings.custom_field.type - custom_field_settings.is_important - custom_field_settings.parent - custom_field_settings.parent.name - custom_field_settings.project - custom_field_settings.project.name - custom_fields - custom_fields.date_value - custom_fields.date_value.date - custom_fields.date_value.date_time - custom_fields.display_value - custom_fields.enabled - custom_fields.enum_options - custom_fields.enum_options.color - custom_fields.enum_options.enabled - custom_fields.enum_options.name - custom_fields.enum_value - custom_fields.enum_value.color - custom_fields.enum_value.enabled - custom_fields.enum_value.name - custom_fields.id_prefix - custom_fields.input_restrictions - custom_fields.is_formula_field - custom_fields.multi_enum_values - custom_fields.multi_enum_values.color - custom_fields.multi_enum_values.enabled - custom_fields.multi_enum_values.name - custom_fields.name - custom_fields.number_value - custom_fields.representation_type - custom_fields.text_value - custom_fields.type - due_on - followers - followers.name - html_notes - is_workspace_level - liked - likes - likes.user - likes.user.name - metric - metric.can_manage - metric.currency_code - metric.current_display_value - metric.current_number_value - metric.initial_number_value - metric.is_custom_weight - metric.precision - metric.progress_source - metric.resource_subtype - metric.target_number_value - metric.unit - name - notes - num_likes - owner - owner.name - start_on - status - team - team.name - time_period - time_period.display_name - time_period.end_on - time_period.period - time_period.start_on - workspace - workspace.name style: form explode: false requestBody: description: The updated fields for the goal metric. required: true content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/GoalMetricCurrentValueRequest' responses: 200: description: Successfully updated the goal metric. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/GoalResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 402: $ref: '#/components/responses/PaymentRequired' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: [] x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); JsonElement result = client.goals.updateGoalMetric(goalGid) .data("field", "value") .data("field", "value") .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let goalsApiInstance = new Asana.GoalsApi(client); let body = {"data": {"": "", "": "",}}; // Object | The updated fields for the goal metric. let goal_gid = "12345"; // String | Globally unique identifier for the goal. let opts = { 'opt_fields': "current_status_update,current_status_update.resource_subtype,current_status_update.title,custom_field_settings,custom_field_settings.custom_field,custom_field_settings.custom_field.asana_created_field,custom_field_settings.custom_field.created_by,custom_field_settings.custom_field.created_by.name,custom_field_settings.custom_field.currency_code,custom_field_settings.custom_field.custom_label,custom_field_settings.custom_field.custom_label_position,custom_field_settings.custom_field.date_value,custom_field_settings.custom_field.date_value.date,custom_field_settings.custom_field.date_value.date_time,custom_field_settings.custom_field.default_access_level,custom_field_settings.custom_field.description,custom_field_settings.custom_field.display_value,custom_field_settings.custom_field.enabled,custom_field_settings.custom_field.enum_options,custom_field_settings.custom_field.enum_options.color,custom_field_settings.custom_field.enum_options.enabled,custom_field_settings.custom_field.enum_options.name,custom_field_settings.custom_field.enum_value,custom_field_settings.custom_field.enum_value.color,custom_field_settings.custom_field.enum_value.enabled,custom_field_settings.custom_field.enum_value.name,custom_field_settings.custom_field.format,custom_field_settings.custom_field.has_notifications_enabled,custom_field_settings.custom_field.id_prefix,custom_field_settings.custom_field.input_restrictions,custom_field_settings.custom_field.is_formula_field,custom_field_settings.custom_field.is_global_to_workspace,custom_field_settings.custom_field.is_value_read_only,custom_field_settings.custom_field.multi_enum_values,custom_field_settings.custom_field.multi_enum_values.color,custom_field_settings.custom_field.multi_enum_values.enabled,custom_field_settings.custom_field.multi_enum_values.name,custom_field_settings.custom_field.name,custom_field_settings.custom_field.number_value,custom_field_settings.custom_field.people_value,custom_field_settings.custom_field.people_value.name,custom_field_settings.custom_field.precision,custom_field_settings.custom_field.privacy_setting,custom_field_settings.custom_field.reference_value,custom_field_settings.custom_field.reference_value.name,custom_field_settings.custom_field.representation_type,custom_field_settings.custom_field.resource_subtype,custom_field_settings.custom_field.text_value,custom_field_settings.custom_field.type,custom_field_settings.is_important,custom_field_settings.parent,custom_field_settings.parent.name,custom_field_settings.project,custom_field_settings.project.name,custom_fields,custom_fields.date_value,custom_fields.date_value.date,custom_fields.date_value.date_time,custom_fields.display_value,custom_fields.enabled,custom_fields.enum_options,custom_fields.enum_options.color,custom_fields.enum_options.enabled,custom_fields.enum_options.name,custom_fields.enum_value,custom_fields.enum_value.color,custom_fields.enum_value.enabled,custom_fields.enum_value.name,custom_fields.id_prefix,custom_fields.input_restrictions,custom_fields.is_formula_field,custom_fields.multi_enum_values,custom_fields.multi_enum_values.color,custom_fields.multi_enum_values.enabled,custom_fields.multi_enum_values.name,custom_fields.name,custom_fields.number_value,custom_fields.representation_type,custom_fields.text_value,custom_fields.type,due_on,followers,followers.name,html_notes,is_workspace_level,liked,likes,likes.user,likes.user.name,metric,metric.can_manage,metric.currency_code,metric.current_display_value,metric.current_number_value,metric.initial_number_value,metric.is_custom_weight,metric.precision,metric.progress_source,metric.resource_subtype,metric.target_number_value,metric.unit,name,notes,num_likes,owner,owner.name,start_on,status,team,team.name,time_period,time_period.display_name,time_period.end_on,time_period.period,time_period.start_on,workspace,workspace.name" }; goalsApiInstance.updateGoalMetric(body, goal_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.goals.updateGoalMetric(goalGid, {field: "value", field: "value", pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class goals_api_instance = asana.GoalsApi(api_client) body = {"data": {"": "", "": "",}} # dict | The updated fields for the goal metric. goal_gid = "12345" # str | Globally unique identifier for the goal. opts = { 'opt_fields': "current_status_update,current_status_update.resource_subtype,current_status_update.title,due_on,followers,followers.name,html_notes,is_workspace_level,liked,likes,likes.user,likes.user.name,metric,metric.can_manage,metric.currency_code,metric.current_display_value,metric.current_number_value,metric.initial_number_value,metric.is_custom_weight,metric.precision,metric.progress_source,metric.resource_subtype,metric.target_number_value,metric.unit,name,notes,num_likes,owner,owner.name,start_on,status,team,team.name,time_period,time_period.display_name,time_period.end_on,time_period.period,time_period.start_on,workspace,workspace.name", # list[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. } try: # Update a goal metric api_response = goals_api_instance.update_goal_metric(body, goal_gid, opts) pprint(api_response) except ApiException as e: print("Exception when calling GoalsApi->update_goal_metric: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.goals.update_goal_metric(goal_gid, {'field': 'value', 'field': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- goals->updateGoalMetric($goal_gid, array('field' => 'value', 'field' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.goals.update_goal_metric(goal_gid: 'goal_gid', field: "value", field: "value", options: {pretty: true}) /goals/{goal_gid}/addFollowers: parameters: - $ref: '#/components/parameters/goal_path_gid' - $ref: '#/components/parameters/pretty' post: summary: Add a collaborator to a goal description: >- Adds followers to a goal. Returns the goal the followers were added to. Each goal can be associated with zero or more followers in the system. Requests to add/remove followers, if successful, will return the complete updated goal record, described above. tags: - Goals operationId: addFollowers parameters: - name: opt_fields in: query description: 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. required: false example: - current_status_update - current_status_update.resource_subtype - current_status_update.title - custom_field_settings - custom_field_settings.custom_field - custom_field_settings.custom_field.asana_created_field - custom_field_settings.custom_field.created_by - custom_field_settings.custom_field.created_by.name - custom_field_settings.custom_field.currency_code - custom_field_settings.custom_field.custom_label - custom_field_settings.custom_field.custom_label_position - custom_field_settings.custom_field.date_value - custom_field_settings.custom_field.date_value.date - custom_field_settings.custom_field.date_value.date_time - custom_field_settings.custom_field.default_access_level - custom_field_settings.custom_field.description - custom_field_settings.custom_field.display_value - custom_field_settings.custom_field.enabled - custom_field_settings.custom_field.enum_options - custom_field_settings.custom_field.enum_options.color - custom_field_settings.custom_field.enum_options.enabled - custom_field_settings.custom_field.enum_options.name - custom_field_settings.custom_field.enum_value - custom_field_settings.custom_field.enum_value.color - custom_field_settings.custom_field.enum_value.enabled - custom_field_settings.custom_field.enum_value.name - custom_field_settings.custom_field.format - custom_field_settings.custom_field.has_notifications_enabled - custom_field_settings.custom_field.id_prefix - custom_field_settings.custom_field.input_restrictions - custom_field_settings.custom_field.is_formula_field - custom_field_settings.custom_field.is_global_to_workspace - custom_field_settings.custom_field.is_value_read_only - custom_field_settings.custom_field.multi_enum_values - custom_field_settings.custom_field.multi_enum_values.color - custom_field_settings.custom_field.multi_enum_values.enabled - custom_field_settings.custom_field.multi_enum_values.name - custom_field_settings.custom_field.name - custom_field_settings.custom_field.number_value - custom_field_settings.custom_field.people_value - custom_field_settings.custom_field.people_value.name - custom_field_settings.custom_field.precision - custom_field_settings.custom_field.privacy_setting - custom_field_settings.custom_field.reference_value - custom_field_settings.custom_field.reference_value.name - custom_field_settings.custom_field.representation_type - custom_field_settings.custom_field.resource_subtype - custom_field_settings.custom_field.text_value - custom_field_settings.custom_field.type - custom_field_settings.is_important - custom_field_settings.parent - custom_field_settings.parent.name - custom_field_settings.project - custom_field_settings.project.name - custom_fields - custom_fields.date_value - custom_fields.date_value.date - custom_fields.date_value.date_time - custom_fields.display_value - custom_fields.enabled - custom_fields.enum_options - custom_fields.enum_options.color - custom_fields.enum_options.enabled - custom_fields.enum_options.name - custom_fields.enum_value - custom_fields.enum_value.color - custom_fields.enum_value.enabled - custom_fields.enum_value.name - custom_fields.id_prefix - custom_fields.input_restrictions - custom_fields.is_formula_field - custom_fields.multi_enum_values - custom_fields.multi_enum_values.color - custom_fields.multi_enum_values.enabled - custom_fields.multi_enum_values.name - custom_fields.name - custom_fields.number_value - custom_fields.representation_type - custom_fields.text_value - custom_fields.type - due_on - followers - followers.name - html_notes - is_workspace_level - liked - likes - likes.user - likes.user.name - metric - metric.can_manage - metric.currency_code - metric.current_display_value - metric.current_number_value - metric.initial_number_value - metric.is_custom_weight - metric.precision - metric.progress_source - metric.resource_subtype - metric.target_number_value - metric.unit - name - notes - num_likes - owner - owner.name - start_on - status - team - team.name - time_period - time_period.display_name - time_period.end_on - time_period.period - time_period.start_on - workspace - workspace.name schema: type: array items: type: string enum: - current_status_update - current_status_update.resource_subtype - current_status_update.title - custom_field_settings - custom_field_settings.custom_field - custom_field_settings.custom_field.asana_created_field - custom_field_settings.custom_field.created_by - custom_field_settings.custom_field.created_by.name - custom_field_settings.custom_field.currency_code - custom_field_settings.custom_field.custom_label - custom_field_settings.custom_field.custom_label_position - custom_field_settings.custom_field.date_value - custom_field_settings.custom_field.date_value.date - custom_field_settings.custom_field.date_value.date_time - custom_field_settings.custom_field.default_access_level - custom_field_settings.custom_field.description - custom_field_settings.custom_field.display_value - custom_field_settings.custom_field.enabled - custom_field_settings.custom_field.enum_options - custom_field_settings.custom_field.enum_options.color - custom_field_settings.custom_field.enum_options.enabled - custom_field_settings.custom_field.enum_options.name - custom_field_settings.custom_field.enum_value - custom_field_settings.custom_field.enum_value.color - custom_field_settings.custom_field.enum_value.enabled - custom_field_settings.custom_field.enum_value.name - custom_field_settings.custom_field.format - custom_field_settings.custom_field.has_notifications_enabled - custom_field_settings.custom_field.id_prefix - custom_field_settings.custom_field.input_restrictions - custom_field_settings.custom_field.is_formula_field - custom_field_settings.custom_field.is_global_to_workspace - custom_field_settings.custom_field.is_value_read_only - custom_field_settings.custom_field.multi_enum_values - custom_field_settings.custom_field.multi_enum_values.color - custom_field_settings.custom_field.multi_enum_values.enabled - custom_field_settings.custom_field.multi_enum_values.name - custom_field_settings.custom_field.name - custom_field_settings.custom_field.number_value - custom_field_settings.custom_field.people_value - custom_field_settings.custom_field.people_value.name - custom_field_settings.custom_field.precision - custom_field_settings.custom_field.privacy_setting - custom_field_settings.custom_field.reference_value - custom_field_settings.custom_field.reference_value.name - custom_field_settings.custom_field.representation_type - custom_field_settings.custom_field.resource_subtype - custom_field_settings.custom_field.text_value - custom_field_settings.custom_field.type - custom_field_settings.is_important - custom_field_settings.parent - custom_field_settings.parent.name - custom_field_settings.project - custom_field_settings.project.name - custom_fields - custom_fields.date_value - custom_fields.date_value.date - custom_fields.date_value.date_time - custom_fields.display_value - custom_fields.enabled - custom_fields.enum_options - custom_fields.enum_options.color - custom_fields.enum_options.enabled - custom_fields.enum_options.name - custom_fields.enum_value - custom_fields.enum_value.color - custom_fields.enum_value.enabled - custom_fields.enum_value.name - custom_fields.id_prefix - custom_fields.input_restrictions - custom_fields.is_formula_field - custom_fields.multi_enum_values - custom_fields.multi_enum_values.color - custom_fields.multi_enum_values.enabled - custom_fields.multi_enum_values.name - custom_fields.name - custom_fields.number_value - custom_fields.representation_type - custom_fields.text_value - custom_fields.type - due_on - followers - followers.name - html_notes - is_workspace_level - liked - likes - likes.user - likes.user.name - metric - metric.can_manage - metric.currency_code - metric.current_display_value - metric.current_number_value - metric.initial_number_value - metric.is_custom_weight - metric.precision - metric.progress_source - metric.resource_subtype - metric.target_number_value - metric.unit - name - notes - num_likes - owner - owner.name - start_on - status - team - team.name - time_period - time_period.display_name - time_period.end_on - time_period.period - time_period.start_on - workspace - workspace.name style: form explode: false requestBody: description: The followers to be added as collaborators required: true content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/TaskAddFollowersRequest' responses: 200: description: Successfully added users as collaborators. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/GoalResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 402: $ref: '#/components/responses/PaymentRequired' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: [] x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); JsonElement result = client.goals.addFollowers(goalGid) .data("field", "value") .data("field", "value") .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let goalsApiInstance = new Asana.GoalsApi(client); let body = {"data": {"": "", "": "",}}; // Object | The followers to be added as collaborators let goal_gid = "12345"; // String | Globally unique identifier for the goal. let opts = { 'opt_fields': "current_status_update,current_status_update.resource_subtype,current_status_update.title,custom_field_settings,custom_field_settings.custom_field,custom_field_settings.custom_field.asana_created_field,custom_field_settings.custom_field.created_by,custom_field_settings.custom_field.created_by.name,custom_field_settings.custom_field.currency_code,custom_field_settings.custom_field.custom_label,custom_field_settings.custom_field.custom_label_position,custom_field_settings.custom_field.date_value,custom_field_settings.custom_field.date_value.date,custom_field_settings.custom_field.date_value.date_time,custom_field_settings.custom_field.default_access_level,custom_field_settings.custom_field.description,custom_field_settings.custom_field.display_value,custom_field_settings.custom_field.enabled,custom_field_settings.custom_field.enum_options,custom_field_settings.custom_field.enum_options.color,custom_field_settings.custom_field.enum_options.enabled,custom_field_settings.custom_field.enum_options.name,custom_field_settings.custom_field.enum_value,custom_field_settings.custom_field.enum_value.color,custom_field_settings.custom_field.enum_value.enabled,custom_field_settings.custom_field.enum_value.name,custom_field_settings.custom_field.format,custom_field_settings.custom_field.has_notifications_enabled,custom_field_settings.custom_field.id_prefix,custom_field_settings.custom_field.input_restrictions,custom_field_settings.custom_field.is_formula_field,custom_field_settings.custom_field.is_global_to_workspace,custom_field_settings.custom_field.is_value_read_only,custom_field_settings.custom_field.multi_enum_values,custom_field_settings.custom_field.multi_enum_values.color,custom_field_settings.custom_field.multi_enum_values.enabled,custom_field_settings.custom_field.multi_enum_values.name,custom_field_settings.custom_field.name,custom_field_settings.custom_field.number_value,custom_field_settings.custom_field.people_value,custom_field_settings.custom_field.people_value.name,custom_field_settings.custom_field.precision,custom_field_settings.custom_field.privacy_setting,custom_field_settings.custom_field.reference_value,custom_field_settings.custom_field.reference_value.name,custom_field_settings.custom_field.representation_type,custom_field_settings.custom_field.resource_subtype,custom_field_settings.custom_field.text_value,custom_field_settings.custom_field.type,custom_field_settings.is_important,custom_field_settings.parent,custom_field_settings.parent.name,custom_field_settings.project,custom_field_settings.project.name,custom_fields,custom_fields.date_value,custom_fields.date_value.date,custom_fields.date_value.date_time,custom_fields.display_value,custom_fields.enabled,custom_fields.enum_options,custom_fields.enum_options.color,custom_fields.enum_options.enabled,custom_fields.enum_options.name,custom_fields.enum_value,custom_fields.enum_value.color,custom_fields.enum_value.enabled,custom_fields.enum_value.name,custom_fields.id_prefix,custom_fields.input_restrictions,custom_fields.is_formula_field,custom_fields.multi_enum_values,custom_fields.multi_enum_values.color,custom_fields.multi_enum_values.enabled,custom_fields.multi_enum_values.name,custom_fields.name,custom_fields.number_value,custom_fields.representation_type,custom_fields.text_value,custom_fields.type,due_on,followers,followers.name,html_notes,is_workspace_level,liked,likes,likes.user,likes.user.name,metric,metric.can_manage,metric.currency_code,metric.current_display_value,metric.current_number_value,metric.initial_number_value,metric.is_custom_weight,metric.precision,metric.progress_source,metric.resource_subtype,metric.target_number_value,metric.unit,name,notes,num_likes,owner,owner.name,start_on,status,team,team.name,time_period,time_period.display_name,time_period.end_on,time_period.period,time_period.start_on,workspace,workspace.name" }; goalsApiInstance.addFollowers(body, goal_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.goals.addFollowers(goalGid, {field: "value", field: "value", pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class goals_api_instance = asana.GoalsApi(api_client) body = {"data": {"": "", "": "",}} # dict | The followers to be added as collaborators goal_gid = "12345" # str | Globally unique identifier for the goal. opts = { 'opt_fields': "current_status_update,current_status_update.resource_subtype,current_status_update.title,due_on,followers,followers.name,html_notes,is_workspace_level,liked,likes,likes.user,likes.user.name,metric,metric.can_manage,metric.currency_code,metric.current_display_value,metric.current_number_value,metric.initial_number_value,metric.is_custom_weight,metric.precision,metric.progress_source,metric.resource_subtype,metric.target_number_value,metric.unit,name,notes,num_likes,owner,owner.name,start_on,status,team,team.name,time_period,time_period.display_name,time_period.end_on,time_period.period,time_period.start_on,workspace,workspace.name", # list[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. } try: # Add a collaborator to a goal api_response = goals_api_instance.add_followers(body, goal_gid, opts) pprint(api_response) except ApiException as e: print("Exception when calling GoalsApi->add_followers: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.goals.add_followers(goal_gid, {'field': 'value', 'field': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- goals->addFollowers($goal_gid, array('field' => 'value', 'field' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.goals.add_followers(goal_gid: 'goal_gid', field: "value", field: "value", options: {pretty: true}) /goals/{goal_gid}/removeFollowers: parameters: - $ref: '#/components/parameters/goal_path_gid' - $ref: '#/components/parameters/pretty' post: summary: Remove a collaborator from a goal description: "Removes followers from a goal. Returns the goal the followers were removed from.\nEach goal can be associated with zero or more followers in the system.\nRequests to add/remove followers, if successful, will return the complete updated goal record, described above." tags: - Goals operationId: removeFollowers parameters: - name: opt_fields in: query description: 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. required: false example: - current_status_update - current_status_update.resource_subtype - current_status_update.title - custom_field_settings - custom_field_settings.custom_field - custom_field_settings.custom_field.asana_created_field - custom_field_settings.custom_field.created_by - custom_field_settings.custom_field.created_by.name - custom_field_settings.custom_field.currency_code - custom_field_settings.custom_field.custom_label - custom_field_settings.custom_field.custom_label_position - custom_field_settings.custom_field.date_value - custom_field_settings.custom_field.date_value.date - custom_field_settings.custom_field.date_value.date_time - custom_field_settings.custom_field.default_access_level - custom_field_settings.custom_field.description - custom_field_settings.custom_field.display_value - custom_field_settings.custom_field.enabled - custom_field_settings.custom_field.enum_options - custom_field_settings.custom_field.enum_options.color - custom_field_settings.custom_field.enum_options.enabled - custom_field_settings.custom_field.enum_options.name - custom_field_settings.custom_field.enum_value - custom_field_settings.custom_field.enum_value.color - custom_field_settings.custom_field.enum_value.enabled - custom_field_settings.custom_field.enum_value.name - custom_field_settings.custom_field.format - custom_field_settings.custom_field.has_notifications_enabled - custom_field_settings.custom_field.id_prefix - custom_field_settings.custom_field.input_restrictions - custom_field_settings.custom_field.is_formula_field - custom_field_settings.custom_field.is_global_to_workspace - custom_field_settings.custom_field.is_value_read_only - custom_field_settings.custom_field.multi_enum_values - custom_field_settings.custom_field.multi_enum_values.color - custom_field_settings.custom_field.multi_enum_values.enabled - custom_field_settings.custom_field.multi_enum_values.name - custom_field_settings.custom_field.name - custom_field_settings.custom_field.number_value - custom_field_settings.custom_field.people_value - custom_field_settings.custom_field.people_value.name - custom_field_settings.custom_field.precision - custom_field_settings.custom_field.privacy_setting - custom_field_settings.custom_field.reference_value - custom_field_settings.custom_field.reference_value.name - custom_field_settings.custom_field.representation_type - custom_field_settings.custom_field.resource_subtype - custom_field_settings.custom_field.text_value - custom_field_settings.custom_field.type - custom_field_settings.is_important - custom_field_settings.parent - custom_field_settings.parent.name - custom_field_settings.project - custom_field_settings.project.name - custom_fields - custom_fields.date_value - custom_fields.date_value.date - custom_fields.date_value.date_time - custom_fields.display_value - custom_fields.enabled - custom_fields.enum_options - custom_fields.enum_options.color - custom_fields.enum_options.enabled - custom_fields.enum_options.name - custom_fields.enum_value - custom_fields.enum_value.color - custom_fields.enum_value.enabled - custom_fields.enum_value.name - custom_fields.id_prefix - custom_fields.input_restrictions - custom_fields.is_formula_field - custom_fields.multi_enum_values - custom_fields.multi_enum_values.color - custom_fields.multi_enum_values.enabled - custom_fields.multi_enum_values.name - custom_fields.name - custom_fields.number_value - custom_fields.representation_type - custom_fields.text_value - custom_fields.type - due_on - followers - followers.name - html_notes - is_workspace_level - liked - likes - likes.user - likes.user.name - metric - metric.can_manage - metric.currency_code - metric.current_display_value - metric.current_number_value - metric.initial_number_value - metric.is_custom_weight - metric.precision - metric.progress_source - metric.resource_subtype - metric.target_number_value - metric.unit - name - notes - num_likes - owner - owner.name - start_on - status - team - team.name - time_period - time_period.display_name - time_period.end_on - time_period.period - time_period.start_on - workspace - workspace.name schema: type: array items: type: string enum: - current_status_update - current_status_update.resource_subtype - current_status_update.title - custom_field_settings - custom_field_settings.custom_field - custom_field_settings.custom_field.asana_created_field - custom_field_settings.custom_field.created_by - custom_field_settings.custom_field.created_by.name - custom_field_settings.custom_field.currency_code - custom_field_settings.custom_field.custom_label - custom_field_settings.custom_field.custom_label_position - custom_field_settings.custom_field.date_value - custom_field_settings.custom_field.date_value.date - custom_field_settings.custom_field.date_value.date_time - custom_field_settings.custom_field.default_access_level - custom_field_settings.custom_field.description - custom_field_settings.custom_field.display_value - custom_field_settings.custom_field.enabled - custom_field_settings.custom_field.enum_options - custom_field_settings.custom_field.enum_options.color - custom_field_settings.custom_field.enum_options.enabled - custom_field_settings.custom_field.enum_options.name - custom_field_settings.custom_field.enum_value - custom_field_settings.custom_field.enum_value.color - custom_field_settings.custom_field.enum_value.enabled - custom_field_settings.custom_field.enum_value.name - custom_field_settings.custom_field.format - custom_field_settings.custom_field.has_notifications_enabled - custom_field_settings.custom_field.id_prefix - custom_field_settings.custom_field.input_restrictions - custom_field_settings.custom_field.is_formula_field - custom_field_settings.custom_field.is_global_to_workspace - custom_field_settings.custom_field.is_value_read_only - custom_field_settings.custom_field.multi_enum_values - custom_field_settings.custom_field.multi_enum_values.color - custom_field_settings.custom_field.multi_enum_values.enabled - custom_field_settings.custom_field.multi_enum_values.name - custom_field_settings.custom_field.name - custom_field_settings.custom_field.number_value - custom_field_settings.custom_field.people_value - custom_field_settings.custom_field.people_value.name - custom_field_settings.custom_field.precision - custom_field_settings.custom_field.privacy_setting - custom_field_settings.custom_field.reference_value - custom_field_settings.custom_field.reference_value.name - custom_field_settings.custom_field.representation_type - custom_field_settings.custom_field.resource_subtype - custom_field_settings.custom_field.text_value - custom_field_settings.custom_field.type - custom_field_settings.is_important - custom_field_settings.parent - custom_field_settings.parent.name - custom_field_settings.project - custom_field_settings.project.name - custom_fields - custom_fields.date_value - custom_fields.date_value.date - custom_fields.date_value.date_time - custom_fields.display_value - custom_fields.enabled - custom_fields.enum_options - custom_fields.enum_options.color - custom_fields.enum_options.enabled - custom_fields.enum_options.name - custom_fields.enum_value - custom_fields.enum_value.color - custom_fields.enum_value.enabled - custom_fields.enum_value.name - custom_fields.id_prefix - custom_fields.input_restrictions - custom_fields.is_formula_field - custom_fields.multi_enum_values - custom_fields.multi_enum_values.color - custom_fields.multi_enum_values.enabled - custom_fields.multi_enum_values.name - custom_fields.name - custom_fields.number_value - custom_fields.representation_type - custom_fields.text_value - custom_fields.type - due_on - followers - followers.name - html_notes - is_workspace_level - liked - likes - likes.user - likes.user.name - metric - metric.can_manage - metric.currency_code - metric.current_display_value - metric.current_number_value - metric.initial_number_value - metric.is_custom_weight - metric.precision - metric.progress_source - metric.resource_subtype - metric.target_number_value - metric.unit - name - notes - num_likes - owner - owner.name - start_on - status - team - team.name - time_period - time_period.display_name - time_period.end_on - time_period.period - time_period.start_on - workspace - workspace.name style: form explode: false requestBody: description: The followers to be removed as collaborators required: true content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/TaskAddFollowersRequest' responses: 200: description: Successfully removed users as collaborators. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/GoalResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 402: $ref: '#/components/responses/PaymentRequired' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: [] x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); JsonElement result = client.goals.removeFollowers(goalGid) .data("field", "value") .data("field", "value") .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let goalsApiInstance = new Asana.GoalsApi(client); let body = {"data": {"": "", "": "",}}; // Object | The followers to be removed as collaborators let goal_gid = "12345"; // String | Globally unique identifier for the goal. let opts = { 'opt_fields': "current_status_update,current_status_update.resource_subtype,current_status_update.title,custom_field_settings,custom_field_settings.custom_field,custom_field_settings.custom_field.asana_created_field,custom_field_settings.custom_field.created_by,custom_field_settings.custom_field.created_by.name,custom_field_settings.custom_field.currency_code,custom_field_settings.custom_field.custom_label,custom_field_settings.custom_field.custom_label_position,custom_field_settings.custom_field.date_value,custom_field_settings.custom_field.date_value.date,custom_field_settings.custom_field.date_value.date_time,custom_field_settings.custom_field.default_access_level,custom_field_settings.custom_field.description,custom_field_settings.custom_field.display_value,custom_field_settings.custom_field.enabled,custom_field_settings.custom_field.enum_options,custom_field_settings.custom_field.enum_options.color,custom_field_settings.custom_field.enum_options.enabled,custom_field_settings.custom_field.enum_options.name,custom_field_settings.custom_field.enum_value,custom_field_settings.custom_field.enum_value.color,custom_field_settings.custom_field.enum_value.enabled,custom_field_settings.custom_field.enum_value.name,custom_field_settings.custom_field.format,custom_field_settings.custom_field.has_notifications_enabled,custom_field_settings.custom_field.id_prefix,custom_field_settings.custom_field.input_restrictions,custom_field_settings.custom_field.is_formula_field,custom_field_settings.custom_field.is_global_to_workspace,custom_field_settings.custom_field.is_value_read_only,custom_field_settings.custom_field.multi_enum_values,custom_field_settings.custom_field.multi_enum_values.color,custom_field_settings.custom_field.multi_enum_values.enabled,custom_field_settings.custom_field.multi_enum_values.name,custom_field_settings.custom_field.name,custom_field_settings.custom_field.number_value,custom_field_settings.custom_field.people_value,custom_field_settings.custom_field.people_value.name,custom_field_settings.custom_field.precision,custom_field_settings.custom_field.privacy_setting,custom_field_settings.custom_field.reference_value,custom_field_settings.custom_field.reference_value.name,custom_field_settings.custom_field.representation_type,custom_field_settings.custom_field.resource_subtype,custom_field_settings.custom_field.text_value,custom_field_settings.custom_field.type,custom_field_settings.is_important,custom_field_settings.parent,custom_field_settings.parent.name,custom_field_settings.project,custom_field_settings.project.name,custom_fields,custom_fields.date_value,custom_fields.date_value.date,custom_fields.date_value.date_time,custom_fields.display_value,custom_fields.enabled,custom_fields.enum_options,custom_fields.enum_options.color,custom_fields.enum_options.enabled,custom_fields.enum_options.name,custom_fields.enum_value,custom_fields.enum_value.color,custom_fields.enum_value.enabled,custom_fields.enum_value.name,custom_fields.id_prefix,custom_fields.input_restrictions,custom_fields.is_formula_field,custom_fields.multi_enum_values,custom_fields.multi_enum_values.color,custom_fields.multi_enum_values.enabled,custom_fields.multi_enum_values.name,custom_fields.name,custom_fields.number_value,custom_fields.representation_type,custom_fields.text_value,custom_fields.type,due_on,followers,followers.name,html_notes,is_workspace_level,liked,likes,likes.user,likes.user.name,metric,metric.can_manage,metric.currency_code,metric.current_display_value,metric.current_number_value,metric.initial_number_value,metric.is_custom_weight,metric.precision,metric.progress_source,metric.resource_subtype,metric.target_number_value,metric.unit,name,notes,num_likes,owner,owner.name,start_on,status,team,team.name,time_period,time_period.display_name,time_period.end_on,time_period.period,time_period.start_on,workspace,workspace.name" }; goalsApiInstance.removeFollowers(body, goal_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.goals.removeFollowers(goalGid, {field: "value", field: "value", pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class goals_api_instance = asana.GoalsApi(api_client) body = {"data": {"": "", "": "",}} # dict | The followers to be removed as collaborators goal_gid = "12345" # str | Globally unique identifier for the goal. opts = { 'opt_fields': "current_status_update,current_status_update.resource_subtype,current_status_update.title,due_on,followers,followers.name,html_notes,is_workspace_level,liked,likes,likes.user,likes.user.name,metric,metric.can_manage,metric.currency_code,metric.current_display_value,metric.current_number_value,metric.initial_number_value,metric.is_custom_weight,metric.precision,metric.progress_source,metric.resource_subtype,metric.target_number_value,metric.unit,name,notes,num_likes,owner,owner.name,start_on,status,team,team.name,time_period,time_period.display_name,time_period.end_on,time_period.period,time_period.start_on,workspace,workspace.name", # list[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. } try: # Remove a collaborator from a goal api_response = goals_api_instance.remove_followers(body, goal_gid, opts) pprint(api_response) except ApiException as e: print("Exception when calling GoalsApi->remove_followers: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.goals.remove_followers(goal_gid, {'field': 'value', 'field': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- goals->removeFollowers($goal_gid, array('field' => 'value', 'field' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.goals.remove_followers(goal_gid: 'goal_gid', field: "value", field: "value", options: {pretty: true}) /goals/{goal_gid}/parentGoals: parameters: - $ref: '#/components/parameters/goal_path_gid' - $ref: '#/components/parameters/pretty' get: summary: Get parent goals from a goal description: |- Required scope: goals:read Returns a compact representation of all of the parent goals of a goal. tags: - Goals operationId: getParentGoalsForGoal parameters: - name: opt_fields in: query description: 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. required: false example: - current_status_update - current_status_update.resource_subtype - current_status_update.title - custom_field_settings - custom_field_settings.custom_field - custom_field_settings.custom_field.asana_created_field - custom_field_settings.custom_field.created_by - custom_field_settings.custom_field.created_by.name - custom_field_settings.custom_field.currency_code - custom_field_settings.custom_field.custom_label - custom_field_settings.custom_field.custom_label_position - custom_field_settings.custom_field.date_value - custom_field_settings.custom_field.date_value.date - custom_field_settings.custom_field.date_value.date_time - custom_field_settings.custom_field.default_access_level - custom_field_settings.custom_field.description - custom_field_settings.custom_field.display_value - custom_field_settings.custom_field.enabled - custom_field_settings.custom_field.enum_options - custom_field_settings.custom_field.enum_options.color - custom_field_settings.custom_field.enum_options.enabled - custom_field_settings.custom_field.enum_options.name - custom_field_settings.custom_field.enum_value - custom_field_settings.custom_field.enum_value.color - custom_field_settings.custom_field.enum_value.enabled - custom_field_settings.custom_field.enum_value.name - custom_field_settings.custom_field.format - custom_field_settings.custom_field.has_notifications_enabled - custom_field_settings.custom_field.id_prefix - custom_field_settings.custom_field.input_restrictions - custom_field_settings.custom_field.is_formula_field - custom_field_settings.custom_field.is_global_to_workspace - custom_field_settings.custom_field.is_value_read_only - custom_field_settings.custom_field.multi_enum_values - custom_field_settings.custom_field.multi_enum_values.color - custom_field_settings.custom_field.multi_enum_values.enabled - custom_field_settings.custom_field.multi_enum_values.name - custom_field_settings.custom_field.name - custom_field_settings.custom_field.number_value - custom_field_settings.custom_field.people_value - custom_field_settings.custom_field.people_value.name - custom_field_settings.custom_field.precision - custom_field_settings.custom_field.privacy_setting - custom_field_settings.custom_field.reference_value - custom_field_settings.custom_field.reference_value.name - custom_field_settings.custom_field.representation_type - custom_field_settings.custom_field.resource_subtype - custom_field_settings.custom_field.text_value - custom_field_settings.custom_field.type - custom_field_settings.is_important - custom_field_settings.parent - custom_field_settings.parent.name - custom_field_settings.project - custom_field_settings.project.name - custom_fields - custom_fields.date_value - custom_fields.date_value.date - custom_fields.date_value.date_time - custom_fields.display_value - custom_fields.enabled - custom_fields.enum_options - custom_fields.enum_options.color - custom_fields.enum_options.enabled - custom_fields.enum_options.name - custom_fields.enum_value - custom_fields.enum_value.color - custom_fields.enum_value.enabled - custom_fields.enum_value.name - custom_fields.id_prefix - custom_fields.input_restrictions - custom_fields.is_formula_field - custom_fields.multi_enum_values - custom_fields.multi_enum_values.color - custom_fields.multi_enum_values.enabled - custom_fields.multi_enum_values.name - custom_fields.name - custom_fields.number_value - custom_fields.representation_type - custom_fields.text_value - custom_fields.type - due_on - followers - followers.name - html_notes - is_workspace_level - liked - likes - likes.user - likes.user.name - metric - metric.can_manage - metric.currency_code - metric.current_display_value - metric.current_number_value - metric.initial_number_value - metric.is_custom_weight - metric.precision - metric.progress_source - metric.resource_subtype - metric.target_number_value - metric.unit - name - notes - num_likes - owner - owner.name - start_on - status - team - team.name - time_period - time_period.display_name - time_period.end_on - time_period.period - time_period.start_on - workspace - workspace.name schema: type: array items: type: string enum: - current_status_update - current_status_update.resource_subtype - current_status_update.title - custom_field_settings - custom_field_settings.custom_field - custom_field_settings.custom_field.asana_created_field - custom_field_settings.custom_field.created_by - custom_field_settings.custom_field.created_by.name - custom_field_settings.custom_field.currency_code - custom_field_settings.custom_field.custom_label - custom_field_settings.custom_field.custom_label_position - custom_field_settings.custom_field.date_value - custom_field_settings.custom_field.date_value.date - custom_field_settings.custom_field.date_value.date_time - custom_field_settings.custom_field.default_access_level - custom_field_settings.custom_field.description - custom_field_settings.custom_field.display_value - custom_field_settings.custom_field.enabled - custom_field_settings.custom_field.enum_options - custom_field_settings.custom_field.enum_options.color - custom_field_settings.custom_field.enum_options.enabled - custom_field_settings.custom_field.enum_options.name - custom_field_settings.custom_field.enum_value - custom_field_settings.custom_field.enum_value.color - custom_field_settings.custom_field.enum_value.enabled - custom_field_settings.custom_field.enum_value.name - custom_field_settings.custom_field.format - custom_field_settings.custom_field.has_notifications_enabled - custom_field_settings.custom_field.id_prefix - custom_field_settings.custom_field.input_restrictions - custom_field_settings.custom_field.is_formula_field - custom_field_settings.custom_field.is_global_to_workspace - custom_field_settings.custom_field.is_value_read_only - custom_field_settings.custom_field.multi_enum_values - custom_field_settings.custom_field.multi_enum_values.color - custom_field_settings.custom_field.multi_enum_values.enabled - custom_field_settings.custom_field.multi_enum_values.name - custom_field_settings.custom_field.name - custom_field_settings.custom_field.number_value - custom_field_settings.custom_field.people_value - custom_field_settings.custom_field.people_value.name - custom_field_settings.custom_field.precision - custom_field_settings.custom_field.privacy_setting - custom_field_settings.custom_field.reference_value - custom_field_settings.custom_field.reference_value.name - custom_field_settings.custom_field.representation_type - custom_field_settings.custom_field.resource_subtype - custom_field_settings.custom_field.text_value - custom_field_settings.custom_field.type - custom_field_settings.is_important - custom_field_settings.parent - custom_field_settings.parent.name - custom_field_settings.project - custom_field_settings.project.name - custom_fields - custom_fields.date_value - custom_fields.date_value.date - custom_fields.date_value.date_time - custom_fields.display_value - custom_fields.enabled - custom_fields.enum_options - custom_fields.enum_options.color - custom_fields.enum_options.enabled - custom_fields.enum_options.name - custom_fields.enum_value - custom_fields.enum_value.color - custom_fields.enum_value.enabled - custom_fields.enum_value.name - custom_fields.id_prefix - custom_fields.input_restrictions - custom_fields.is_formula_field - custom_fields.multi_enum_values - custom_fields.multi_enum_values.color - custom_fields.multi_enum_values.enabled - custom_fields.multi_enum_values.name - custom_fields.name - custom_fields.number_value - custom_fields.representation_type - custom_fields.text_value - custom_fields.type - due_on - followers - followers.name - html_notes - is_workspace_level - liked - likes - likes.user - likes.user.name - metric - metric.can_manage - metric.currency_code - metric.current_display_value - metric.current_number_value - metric.initial_number_value - metric.is_custom_weight - metric.precision - metric.progress_source - metric.resource_subtype - metric.target_number_value - metric.unit - name - notes - num_likes - owner - owner.name - start_on - status - team - team.name - time_period - time_period.display_name - time_period.end_on - time_period.period - time_period.start_on - workspace - workspace.name style: form explode: false responses: 200: description: Successfully retrieved the specified goal's parent goals. content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/GoalCompact' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 402: $ref: '#/components/responses/PaymentRequired' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: - goals:read x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); List result = client.goals.getParentGoalsForGoal(goalGid) .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let goalsApiInstance = new Asana.GoalsApi(client); let goal_gid = "12345"; // String | Globally unique identifier for the goal. let opts = { 'opt_fields': "current_status_update,current_status_update.resource_subtype,current_status_update.title,custom_field_settings,custom_field_settings.custom_field,custom_field_settings.custom_field.asana_created_field,custom_field_settings.custom_field.created_by,custom_field_settings.custom_field.created_by.name,custom_field_settings.custom_field.currency_code,custom_field_settings.custom_field.custom_label,custom_field_settings.custom_field.custom_label_position,custom_field_settings.custom_field.date_value,custom_field_settings.custom_field.date_value.date,custom_field_settings.custom_field.date_value.date_time,custom_field_settings.custom_field.default_access_level,custom_field_settings.custom_field.description,custom_field_settings.custom_field.display_value,custom_field_settings.custom_field.enabled,custom_field_settings.custom_field.enum_options,custom_field_settings.custom_field.enum_options.color,custom_field_settings.custom_field.enum_options.enabled,custom_field_settings.custom_field.enum_options.name,custom_field_settings.custom_field.enum_value,custom_field_settings.custom_field.enum_value.color,custom_field_settings.custom_field.enum_value.enabled,custom_field_settings.custom_field.enum_value.name,custom_field_settings.custom_field.format,custom_field_settings.custom_field.has_notifications_enabled,custom_field_settings.custom_field.id_prefix,custom_field_settings.custom_field.input_restrictions,custom_field_settings.custom_field.is_formula_field,custom_field_settings.custom_field.is_global_to_workspace,custom_field_settings.custom_field.is_value_read_only,custom_field_settings.custom_field.multi_enum_values,custom_field_settings.custom_field.multi_enum_values.color,custom_field_settings.custom_field.multi_enum_values.enabled,custom_field_settings.custom_field.multi_enum_values.name,custom_field_settings.custom_field.name,custom_field_settings.custom_field.number_value,custom_field_settings.custom_field.people_value,custom_field_settings.custom_field.people_value.name,custom_field_settings.custom_field.precision,custom_field_settings.custom_field.privacy_setting,custom_field_settings.custom_field.reference_value,custom_field_settings.custom_field.reference_value.name,custom_field_settings.custom_field.representation_type,custom_field_settings.custom_field.resource_subtype,custom_field_settings.custom_field.text_value,custom_field_settings.custom_field.type,custom_field_settings.is_important,custom_field_settings.parent,custom_field_settings.parent.name,custom_field_settings.project,custom_field_settings.project.name,custom_fields,custom_fields.date_value,custom_fields.date_value.date,custom_fields.date_value.date_time,custom_fields.display_value,custom_fields.enabled,custom_fields.enum_options,custom_fields.enum_options.color,custom_fields.enum_options.enabled,custom_fields.enum_options.name,custom_fields.enum_value,custom_fields.enum_value.color,custom_fields.enum_value.enabled,custom_fields.enum_value.name,custom_fields.id_prefix,custom_fields.input_restrictions,custom_fields.is_formula_field,custom_fields.multi_enum_values,custom_fields.multi_enum_values.color,custom_fields.multi_enum_values.enabled,custom_fields.multi_enum_values.name,custom_fields.name,custom_fields.number_value,custom_fields.representation_type,custom_fields.text_value,custom_fields.type,due_on,followers,followers.name,html_notes,is_workspace_level,liked,likes,likes.user,likes.user.name,metric,metric.can_manage,metric.currency_code,metric.current_display_value,metric.current_number_value,metric.initial_number_value,metric.is_custom_weight,metric.precision,metric.progress_source,metric.resource_subtype,metric.target_number_value,metric.unit,name,notes,num_likes,owner,owner.name,start_on,status,team,team.name,time_period,time_period.display_name,time_period.end_on,time_period.period,time_period.start_on,workspace,workspace.name" }; goalsApiInstance.getParentGoalsForGoal(goal_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.goals.getParentGoalsForGoal(goalGid, {param: "value", param: "value", opt_pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class goals_api_instance = asana.GoalsApi(api_client) goal_gid = "12345" # str | Globally unique identifier for the goal. opts = { 'opt_fields': "current_status_update,current_status_update.resource_subtype,current_status_update.title,due_on,followers,followers.name,html_notes,is_workspace_level,liked,likes,likes.user,likes.user.name,metric,metric.can_manage,metric.currency_code,metric.current_display_value,metric.current_number_value,metric.initial_number_value,metric.is_custom_weight,metric.precision,metric.progress_source,metric.resource_subtype,metric.target_number_value,metric.unit,name,notes,num_likes,owner,owner.name,start_on,status,team,team.name,time_period,time_period.display_name,time_period.end_on,time_period.period,time_period.start_on,workspace,workspace.name", # list[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. } try: # Get parent goals from a goal api_response = goals_api_instance.get_parent_goals_for_goal(goal_gid, opts) for data in api_response: pprint(data) except ApiException as e: print("Exception when calling GoalsApi->get_parent_goals_for_goal: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.goals.get_parent_goals_for_goal(goal_gid, {'param': 'value', 'param': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- goals->getParentGoalsForGoal($goal_gid, array('param' => 'value', 'param' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.goals.get_parent_goals_for_goal(goal_gid: 'goal_gid', param: "value", param: "value", options: {pretty: true}) /goals/{goal_gid}/addCustomFieldSetting: parameters: - $ref: '#/components/parameters/goal_path_gid' - $ref: '#/components/parameters/pretty' post: summary: Add a custom field to a goal description: |- Required scope: goals:write Custom fields are associated with goals by way of custom field settings. This method creates a setting for the goal. tags: - Goals operationId: addCustomFieldSettingForGoal security: - personalAccessToken: [] - oauth2: - goals:write requestBody: description: Information about the custom field setting. required: true content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/AddCustomFieldSettingRequest' responses: 200: description: Successfully added the custom field to the goal. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/CustomFieldSettingResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' x-readme: code-samples: - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let goalsApiInstance = new Asana.GoalsApi(client); let body = {"data": {"": "", "": "",}}; // Object | Information about the custom field setting. let goal_gid = "12345"; // String | Globally unique identifier for the goal. goalsApiInstance.addCustomFieldSettingForGoal(body, goal_gid).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 /goals/{goal_gid}/removeCustomFieldSetting: parameters: - $ref: '#/components/parameters/goal_path_gid' - $ref: '#/components/parameters/pretty' post: summary: Remove a custom field from a goal description: |- Required scope: goals:write Removes a custom field setting from a goal. tags: - Goals operationId: removeCustomFieldSettingForGoal security: - personalAccessToken: [] - oauth2: - goals:write requestBody: description: Information about the custom field setting being removed. required: true content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/RemoveCustomFieldSettingRequest' responses: 200: description: Successfully removed the custom field from the goal. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/EmptyResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' x-readme: code-samples: - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let goalsApiInstance = new Asana.GoalsApi(client); let body = {"data": {"": "", "": "",}}; // Object | Information about the custom field setting being removed. let goal_gid = "12345"; // String | Globally unique identifier for the goal. goalsApiInstance.removeCustomFieldSettingForGoal(body, goal_gid).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 /jobs/{job_gid}: parameters: - $ref: '#/components/parameters/job_path_gid' - $ref: '#/components/parameters/pretty' get: summary: Get a job by id description: |- Required scope: jobs:read
Field Required Scope
new_task_template task_templates:read
new_project projects:read
new_task tasks:read
new_project_template project_templates:read
Returns the full record for a job. tags: - Jobs operationId: getJob parameters: - name: opt_fields in: query description: 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. required: false example: - new_graph_export - new_graph_export.completed_at - new_graph_export.created_at - new_graph_export.download_url - new_project - new_project.name - new_project_template - new_project_template.name - new_resource_export - new_resource_export.completed_at - new_resource_export.created_at - new_resource_export.download_url - new_task - new_task.created_by - new_task.name - new_task.resource_subtype - resource_subtype - status schema: type: array items: type: string enum: - new_graph_export - new_graph_export.completed_at - new_graph_export.created_at - new_graph_export.download_url - new_project - new_project.name - new_project_template - new_project_template.name - new_resource_export - new_resource_export.completed_at - new_resource_export.created_at - new_resource_export.download_url - new_task - new_task.created_by - new_task.name - new_task.resource_subtype - resource_subtype - status style: form explode: false responses: 200: description: Successfully retrieved Job. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/JobResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: - jobs:read x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); Job result = client.jobs.getJob(jobGid) .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let jobsApiInstance = new Asana.JobsApi(client); let job_gid = "12345"; // String | Globally unique identifier for the job. let opts = { 'opt_fields': "new_graph_export,new_graph_export.completed_at,new_graph_export.created_at,new_graph_export.download_url,new_project,new_project.name,new_project_template,new_project_template.name,new_resource_export,new_resource_export.completed_at,new_resource_export.created_at,new_resource_export.download_url,new_task,new_task.created_by,new_task.name,new_task.resource_subtype,resource_subtype,status" }; jobsApiInstance.getJob(job_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.jobs.getJob(jobGid, {param: "value", param: "value", opt_pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class jobs_api_instance = asana.JobsApi(api_client) job_gid = "12345" # str | Globally unique identifier for the job. opts = { 'opt_fields': "new_graph_export,new_graph_export.completed_at,new_graph_export.created_at,new_graph_export.download_url,new_project,new_project.name,new_project_template,new_project_template.name,new_resource_export,new_resource_export.completed_at,new_resource_export.created_at,new_resource_export.download_url,new_task,new_task.created_by,new_task.name,new_task.resource_subtype,resource_subtype,status", # list[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. } try: # Get a job by id api_response = jobs_api_instance.get_job(job_gid, opts) pprint(api_response) except ApiException as e: print("Exception when calling JobsApi->get_job: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.jobs.get_job(job_gid, {'param': 'value', 'param': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- jobs->getJob($job_gid, array('param' => 'value', 'param' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.jobs.get_job(job_gid: 'job_gid', param: "value", param: "value", options: {pretty: true}) /memberships: parameters: - $ref: '#/components/parameters/pretty' get: summary: Get multiple memberships description: >- Returns compact `goal_membership`, `project_membership`, `portfolio_membership`, `custom_type_membership`, or `custom_field_membership` records. The possible types for `parent` in this request are `goal`, `project`, `portfolio`, `custom_type`, or `custom_field`. An additional member (user GID or team GID) can be passed in to filter to a specific membership. Alternatively, when `parent` is absent, you can use the `member` and `resource_subtype` parameters together to fetch all memberships of a specific type for a given member. For example, passing `member` as a team GID and `resource_subtype` as `project_membership` will return all project memberships for that team. tags: - Memberships operationId: getMemberships parameters: - name: parent in: query description: >- Globally unique identifier for `goal`, `project`, `portfolio`, `custom_type`, or `custom_field`. This parameter is optional when `resource_subtype` is provided along with `member`. schema: type: string example: '159874' - name: member in: query description: >- 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. schema: type: string example: '1061493' - name: resource_subtype in: query description: >- 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). schema: type: string enum: - project_membership example: project_membership - $ref: '#/components/parameters/limit' - $ref: '#/components/parameters/offset' - name: opt_fields in: query description: 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. required: false example: - offset - path - uri schema: type: array items: type: string enum: - offset - path - uri style: form explode: false responses: 200: description: >- Successfully retrieved the requested membership. content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/MembershipCompact' next_page: $ref: '#/components/schemas/NextPage' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: [] x-readme: code-samples: - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let membershipsApiInstance = new Asana.MembershipsApi(client); let opts = { 'parent': "159874", 'member': "1061493", 'resource_subtype': "project_membership", 'limit': 50, 'offset': "eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9", 'opt_fields': "offset,path,uri" }; membershipsApiInstance.getMemberships(opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.memberships.getMemberships({param: "value", param: "value", opt_pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class memberships_api_instance = asana.MembershipsApi(api_client) opts = { 'parent': "159874", # str | Globally unique identifier for `goal`, `project`, `portfolio`, or `custom_field`. 'member': "1061493", # str | Globally unique identifier for `team` or `user`. 'limit': 50, # int | Results per page. The number of objects to return per page. The value must be between 1 and 100. 'offset': "eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9", # 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': "offset,path,uri", # list[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. } try: # Get multiple memberships api_response = memberships_api_instance.get_memberships(opts) for data in api_response: pprint(data) except ApiException as e: print("Exception when calling MembershipsApi->get_memberships: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.memberships.get_memberships({'param': 'value', 'param': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- memberships->getMemberships(array('param' => 'value', 'param' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.memberships.get_memberships(parent: ''parent_example'', param: "value", param: "value", options: {pretty: true}) post: summary: Create a membership description: |- Creates a new membership in a `goal`, `project`, `portfolio`, `custom_type`, or `custom_field`, where members can be Teams or Users. Returns the full record of the newly created membership. tags: - Memberships operationId: createMembership requestBody: description: The updated fields for the membership. required: false content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/CreateMembershipRequest' responses: 201: description: >- Successfully created the requested membership. content: application/json: schema: type: object properties: data: type: object $ref: '#/components/schemas/MembershipResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: [] x-readme: code-samples: - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let membershipsApiInstance = new Asana.MembershipsApi(client); let opts = { 'body': {"data": {"": "", "": "",}} }; membershipsApiInstance.createMembership(opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.memberships.createMembership({field: "value", field: "value", pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class memberships_api_instance = asana.MembershipsApi(api_client) opts = { 'body': {"data": {"": "", "": "",}}, # dict | The updated fields for the membership. } try: # Create a membership api_response = memberships_api_instance.create_membership(opts) pprint(api_response) except ApiException as e: print("Exception when calling MembershipsApi->create_membership: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.memberships.create_membership({'field': 'value', 'field': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- memberships->createMembership(array('field' => 'value', 'field' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.memberships.create_membership(field: "value", field: "value", options: {pretty: true}) /memberships/{membership_gid}: parameters: - $ref: '#/components/parameters/membership_path_gid' - $ref: '#/components/parameters/pretty' get: summary: Get a membership description: >- Returns a `project_membership`, `goal_membership`, `portfolio_membership`, `custom_type_membership`, or `custom_field_membership` record for a membership id. tags: - Memberships operationId: getMembership responses: 200: description: >- Successfully retrieved the record for a single membership. content: application/json: schema: type: object properties: data: type: object $ref: '#/components/schemas/MembershipResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: [] x-readme: code-samples: - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let membershipsApiInstance = new Asana.MembershipsApi(client); let membership_gid = "12345"; // String | Globally unique identifier for the membership. membershipsApiInstance.getMembership(membership_gid).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.memberships.getMembership(membershipGid, {param: "value", param: "value", opt_pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class memberships_api_instance = asana.MembershipsApi(api_client) membership_gid = "12345" # str | Globally unique identifier for the membership. try: # Get a membership api_response = memberships_api_instance.get_membership(membership_gid) pprint(api_response) except ApiException as e: print("Exception when calling MembershipsApi->get_membership: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.memberships.get_membership(membership_gid, {'param': 'value', 'param': 'value'}, opt_pretty=True) name: python-sdk-v3 put: summary: Update a membership description: |- An existing membership can be updated by making a `PUT` request on the membership. Only the fields provided in the `data` block will be updated; any unspecified fields will remain unchanged. Memberships on `goals`, `projects`, `portfolios`, `custom_types`, and `custom_fields` can be updated. Returns the full record of the updated membership. tags: - Memberships operationId: updateMembership requestBody: description: The membership to update. required: true content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/MembershipRequest' responses: 200: description: >- Successfully updated the requested membership. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/MembershipResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: [] x-readme: code-samples: - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let membershipsApiInstance = new Asana.MembershipsApi(client); let body = {"data": {"": "", "": "",}}; // Object | The membership to update. let membership_gid = "12345"; // String | Globally unique identifier for the membership. membershipsApiInstance.updateMembership(body, membership_gid).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.memberships.updateMembership(membershipGid, {field: "value", field: "value", pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class memberships_api_instance = asana.MembershipsApi(api_client) body = {"data": {"": "", "": "",}} # dict | The membership to update. membership_gid = "12345" # str | Globally unique identifier for the membership. try: # Update a membership api_response = memberships_api_instance.update_membership(body, membership_gid) pprint(api_response) except ApiException as e: print("Exception when calling MembershipsApi->update_membership: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.memberships.update_membership(membership_gid, {'field': 'value', 'field': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- memberships->updateMembership($membership_gid, array('field' => 'value', 'field' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.memberships.update_membership(membership_gid: 'membership_gid', field: "value", field: "value", options: {pretty: true}) delete: summary: Delete a membership description: |- A specific, existing membership for a `goal`, `project`, `portfolio`, `custom_type`, or `custom_field` can be deleted by making a `DELETE` request on the URL for that membership. Returns an empty data record. tags: - Memberships operationId: deleteMembership responses: 200: description: >- Successfully deleted the requested membership. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/EmptyResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: [] x-readme: code-samples: - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let membershipsApiInstance = new Asana.MembershipsApi(client); let membership_gid = "12345"; // String | Globally unique identifier for the membership. membershipsApiInstance.deleteMembership(membership_gid).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.memberships.deleteMembership(membershipGid) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class memberships_api_instance = asana.MembershipsApi(api_client) membership_gid = "12345" # str | Globally unique identifier for the membership. try: # Delete a membership api_response = memberships_api_instance.delete_membership(membership_gid) pprint(api_response) except ApiException as e: print("Exception when calling MembershipsApi->delete_membership: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.memberships.delete_membership(membership_gid, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- memberships->deleteMembership($membership_gid, array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.memberships.delete_membership(membership_gid: 'membership_gid', options: {pretty: true}) /organization_exports: parameters: - $ref: '#/components/parameters/pretty' post: summary: Create an organization export request description: >- This method creates a request to export an Organization. Asana will complete the export at some point after you create the request. tags: - Organization exports operationId: createOrganizationExport parameters: - name: opt_fields in: query description: 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. required: false example: - created_at - download_url - organization - organization.name - state schema: type: array items: type: string enum: - created_at - download_url - organization - organization.name - state style: form explode: false requestBody: description: The organization to export. required: true content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/OrganizationExportRequest' responses: 201: description: Successfully created organization export request. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/OrganizationExportResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: [] x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); OrganizationExport result = client.organizationexports.createOrganizationExport() .data("field", "value") .data("field", "value") .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let organizationExportsApiInstance = new Asana.OrganizationExportsApi(client); let body = {"data": {"": "", "": "",}}; // Object | The organization to export. let opts = { 'opt_fields': "created_at,download_url,organization,organization.name,state" }; organizationExportsApiInstance.createOrganizationExport(body, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.organizationexports.createOrganizationExport({field: "value", field: "value", pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class organization_exports_api_instance = asana.OrganizationExportsApi(api_client) body = {"data": {"": "", "": "",}} # dict | The organization to export. opts = { 'opt_fields': "created_at,download_url,organization,organization.name,state", # list[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. } try: # Create an organization export request api_response = organization_exports_api_instance.create_organization_export(body, opts) pprint(api_response) except ApiException as e: print("Exception when calling OrganizationExportsApi->create_organization_export: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.organization_exports.create_organization_export({'field': 'value', 'field': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- organizationexports->createOrganizationExport(array('field' => 'value', 'field' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.organization_exports.create_organization_export(field: "value", field: "value", options: {pretty: true}) /organization_exports/{organization_export_gid}: parameters: - $ref: '#/components/parameters/organization_export_path_gid' - $ref: '#/components/parameters/pretty' get: summary: Get details on an org export request description: >- Returns details of a previously-requested Organization export. tags: - Organization exports operationId: getOrganizationExport parameters: - name: opt_fields in: query description: 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. required: false example: - created_at - download_url - organization - organization.name - state schema: type: array items: type: string enum: - created_at - download_url - organization - organization.name - state style: form explode: false responses: 200: description: Successfully retrieved organization export object. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/OrganizationExportResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: [] x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); OrganizationExport result = client.organizationexports.getOrganizationExport(organizationExportGid) .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let organizationExportsApiInstance = new Asana.OrganizationExportsApi(client); let organization_export_gid = "12345"; // String | Globally unique identifier for the organization export. let opts = { 'opt_fields': "created_at,download_url,organization,organization.name,state" }; organizationExportsApiInstance.getOrganizationExport(organization_export_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.organizationexports.getOrganizationExport(organizationExportGid, {param: "value", param: "value", opt_pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class organization_exports_api_instance = asana.OrganizationExportsApi(api_client) organization_export_gid = "12345" # str | Globally unique identifier for the organization export. opts = { 'opt_fields': "created_at,download_url,organization,organization.name,state", # list[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. } try: # Get details on an org export request api_response = organization_exports_api_instance.get_organization_export(organization_export_gid, opts) pprint(api_response) except ApiException as e: print("Exception when calling OrganizationExportsApi->get_organization_export: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.organization_exports.get_organization_export(organization_export_gid, {'param': 'value', 'param': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- organizationexports->getOrganizationExport($organization_export_gid, array('param' => 'value', 'param' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.organization_exports.get_organization_export(organization_export_gid: 'organization_export_gid', param: "value", param: "value", options: {pretty: true}) /portfolio_memberships: parameters: - $ref: '#/components/parameters/portfolio_query_param' - $ref: '#/components/parameters/workspace_query_param' - $ref: '#/components/parameters/user_query_param' - $ref: '#/components/parameters/pretty' - $ref: '#/components/parameters/limit' - $ref: '#/components/parameters/offset' get: summary: Get multiple portfolio memberships description: >- Returns a list of portfolio memberships in compact representation. You must specify `portfolio`, `portfolio` and `user`, or `workspace` and `user`. tags: - Portfolio memberships operationId: getPortfolioMemberships parameters: - name: opt_fields in: query description: 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. required: false example: - access_level - offset - path - portfolio - portfolio.name - uri - user - user.name schema: type: array items: type: string enum: - access_level - offset - path - portfolio - portfolio.name - uri - user - user.name style: form explode: false responses: 200: description: Successfully retrieved portfolio memberships. content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/DeprecatedPortfolioMembershipCompact' next_page: $ref: '#/components/schemas/NextPage' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: [] x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); List result = client.portfoliomemberships.getPortfolioMemberships(user, workspace, portfolio) .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let portfolioMembershipsApiInstance = new Asana.PortfolioMembershipsApi(client); let opts = { 'portfolio': "12345", 'workspace': "12345", 'user': "me", 'limit': 50, 'offset': "eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9", 'opt_fields': "access_level,offset,path,portfolio,portfolio.name,uri,user,user.name" }; portfolioMembershipsApiInstance.getPortfolioMemberships(opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.portfoliomemberships.getPortfolioMemberships({param: "value", param: "value", opt_pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class portfolio_memberships_api_instance = asana.PortfolioMembershipsApi(api_client) opts = { 'portfolio': "12345", # str | The portfolio to filter results on. 'workspace': "12345", # str | The workspace to filter results on. 'user': "me", # str | A string identifying a user. This can either be the string \"me\", an email, or the gid of a user. 'limit': 50, # int | Results per page. The number of objects to return per page. The value must be between 1 and 100. 'offset': "eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9", # 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': "access_level,offset,path,portfolio,portfolio.name,uri,user,user.name", # list[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. } try: # Get multiple portfolio memberships api_response = portfolio_memberships_api_instance.get_portfolio_memberships(opts) for data in api_response: pprint(data) except ApiException as e: print("Exception when calling PortfolioMembershipsApi->get_portfolio_memberships: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.portfolio_memberships.get_portfolio_memberships({'param': 'value', 'param': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- portfoliomemberships->getPortfolioMemberships(array('param' => 'value', 'param' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.portfolio_memberships.get_portfolio_memberships(param: "value", param: "value", options: {pretty: true}) /portfolio_memberships/{portfolio_membership_gid}: parameters: - $ref: '#/components/parameters/portfolio_membership_path_gid' - $ref: '#/components/parameters/pretty' get: summary: Get a portfolio membership description: >- Returns the complete portfolio record for a single portfolio membership. tags: - Portfolio memberships operationId: getPortfolioMembership parameters: - name: opt_fields in: query description: 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. required: false example: - access_level - portfolio - portfolio.name - user - user.name schema: type: array items: type: string enum: - access_level - portfolio - portfolio.name - user - user.name style: form explode: false responses: 200: description: >- Successfully retrieved the requested portfolio membership. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/DeprecatedPortfolioMembershipResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: [] x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); PortfolioMembership result = client.portfoliomemberships.getPortfolioMembership(portfolioMembershipGid) .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let portfolioMembershipsApiInstance = new Asana.PortfolioMembershipsApi(client); let portfolio_membership_gid = "1331"; // String | let opts = { 'opt_fields': "access_level,portfolio,portfolio.name,user,user.name" }; portfolioMembershipsApiInstance.getPortfolioMembership(portfolio_membership_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.portfoliomemberships.getPortfolioMembership(portfolioMembershipGid, {param: "value", param: "value", opt_pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class portfolio_memberships_api_instance = asana.PortfolioMembershipsApi(api_client) portfolio_membership_gid = "1331" # str | opts = { 'opt_fields': "access_level,portfolio,portfolio.name,user,user.name", # list[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. } try: # Get a portfolio membership api_response = portfolio_memberships_api_instance.get_portfolio_membership(portfolio_membership_gid, opts) pprint(api_response) except ApiException as e: print("Exception when calling PortfolioMembershipsApi->get_portfolio_membership: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.portfolio_memberships.get_portfolio_membership(portfolio_membership_gid, {'param': 'value', 'param': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- portfoliomemberships->getPortfolioMembership($portfolio_membership_gid, array('param' => 'value', 'param' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.portfolio_memberships.get_portfolio_membership(portfolio_membership_gid: 'portfolio_membership_gid', param: "value", param: "value", options: {pretty: true}) /portfolios/{portfolio_gid}/portfolio_memberships: parameters: - $ref: '#/components/parameters/portfolio_path_gid' - $ref: '#/components/parameters/user_query_param' - $ref: '#/components/parameters/pretty' - $ref: '#/components/parameters/limit' - $ref: '#/components/parameters/offset' get: summary: Get memberships from a portfolio description: >- Returns the compact portfolio membership records for the portfolio. tags: - Portfolio memberships operationId: getPortfolioMembershipsForPortfolio parameters: - name: opt_fields in: query description: 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. required: false example: - access_level - offset - path - portfolio - portfolio.name - uri - user - user.name schema: type: array items: type: string enum: - access_level - offset - path - portfolio - portfolio.name - uri - user - user.name style: form explode: false responses: 200: description: >- Successfully retrieved the requested portfolio's memberships. content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/DeprecatedPortfolioMembershipCompact' next_page: $ref: '#/components/schemas/NextPage' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: [] x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); List result = client.portfoliomemberships.getPortfolioMembershipsForPortfolio(portfolioGid, user) .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let portfolioMembershipsApiInstance = new Asana.PortfolioMembershipsApi(client); let portfolio_gid = "12345"; // String | Globally unique identifier for the portfolio. let opts = { 'user': "me", 'limit': 50, 'offset': "eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9", 'opt_fields': "access_level,offset,path,portfolio,portfolio.name,uri,user,user.name" }; portfolioMembershipsApiInstance.getPortfolioMembershipsForPortfolio(portfolio_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.portfoliomemberships.getPortfolioMembershipsForPortfolio(portfolioGid, {param: "value", param: "value", opt_pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class portfolio_memberships_api_instance = asana.PortfolioMembershipsApi(api_client) portfolio_gid = "12345" # str | Globally unique identifier for the portfolio. opts = { 'user': "me", # str | A string identifying a user. This can either be the string \"me\", an email, or the gid of a user. 'limit': 50, # int | Results per page. The number of objects to return per page. The value must be between 1 and 100. 'offset': "eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9", # 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': "access_level,offset,path,portfolio,portfolio.name,uri,user,user.name", # list[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. } try: # Get memberships from a portfolio api_response = portfolio_memberships_api_instance.get_portfolio_memberships_for_portfolio(portfolio_gid, opts) for data in api_response: pprint(data) except ApiException as e: print("Exception when calling PortfolioMembershipsApi->get_portfolio_memberships_for_portfolio: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.portfolio_memberships.get_portfolio_memberships_for_portfolio(portfolio_gid, {'param': 'value', 'param': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- portfoliomemberships->getPortfolioMembershipsForPortfolio($portfolio_gid, array('param' => 'value', 'param' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.portfolio_memberships.get_portfolio_memberships_for_portfolio(portfolio_gid: 'portfolio_gid', param: "value", param: "value", options: {pretty: true}) /portfolios: parameters: - $ref: '#/components/parameters/pretty' get: summary: Get multiple portfolios description: |- Required scope: portfolios:read Returns a list of the portfolios in compact representation that are owned by the current API user. tags: - Portfolios operationId: getPortfolios parameters: - $ref: '#/components/parameters/limit' - $ref: '#/components/parameters/offset' - name: workspace in: query required: true description: >- The workspace or organization to filter portfolios on. schema: type: string example: '1331' - name: owner in: query required: false description: >- 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. schema: type: string example: '14916' - name: opt_fields in: query description: 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. required: false example: - archived - color - created_at - created_by - created_by.name - current_status_update - current_status_update.resource_subtype - current_status_update.title - custom_field_settings - custom_field_settings.custom_field - custom_field_settings.custom_field.asana_created_field - custom_field_settings.custom_field.created_by - custom_field_settings.custom_field.created_by.name - custom_field_settings.custom_field.currency_code - custom_field_settings.custom_field.custom_label - custom_field_settings.custom_field.custom_label_position - custom_field_settings.custom_field.date_value - custom_field_settings.custom_field.date_value.date - custom_field_settings.custom_field.date_value.date_time - custom_field_settings.custom_field.default_access_level - custom_field_settings.custom_field.description - custom_field_settings.custom_field.display_value - custom_field_settings.custom_field.enabled - custom_field_settings.custom_field.enum_options - custom_field_settings.custom_field.enum_options.color - custom_field_settings.custom_field.enum_options.enabled - custom_field_settings.custom_field.enum_options.name - custom_field_settings.custom_field.enum_value - custom_field_settings.custom_field.enum_value.color - custom_field_settings.custom_field.enum_value.enabled - custom_field_settings.custom_field.enum_value.name - custom_field_settings.custom_field.format - custom_field_settings.custom_field.has_notifications_enabled - custom_field_settings.custom_field.id_prefix - custom_field_settings.custom_field.input_restrictions - custom_field_settings.custom_field.is_formula_field - custom_field_settings.custom_field.is_global_to_workspace - custom_field_settings.custom_field.is_value_read_only - custom_field_settings.custom_field.multi_enum_values - custom_field_settings.custom_field.multi_enum_values.color - custom_field_settings.custom_field.multi_enum_values.enabled - custom_field_settings.custom_field.multi_enum_values.name - custom_field_settings.custom_field.name - custom_field_settings.custom_field.number_value - custom_field_settings.custom_field.people_value - custom_field_settings.custom_field.people_value.name - custom_field_settings.custom_field.precision - custom_field_settings.custom_field.privacy_setting - custom_field_settings.custom_field.reference_value - custom_field_settings.custom_field.reference_value.name - custom_field_settings.custom_field.representation_type - custom_field_settings.custom_field.resource_subtype - custom_field_settings.custom_field.text_value - custom_field_settings.custom_field.type - custom_field_settings.is_important - custom_field_settings.parent - custom_field_settings.parent.name - custom_field_settings.project - custom_field_settings.project.name - custom_fields - custom_fields.date_value - custom_fields.date_value.date - custom_fields.date_value.date_time - custom_fields.display_value - custom_fields.enabled - custom_fields.enum_options - custom_fields.enum_options.color - custom_fields.enum_options.enabled - custom_fields.enum_options.name - custom_fields.enum_value - custom_fields.enum_value.color - custom_fields.enum_value.enabled - custom_fields.enum_value.name - custom_fields.id_prefix - custom_fields.input_restrictions - custom_fields.is_formula_field - custom_fields.multi_enum_values - custom_fields.multi_enum_values.color - custom_fields.multi_enum_values.enabled - custom_fields.multi_enum_values.name - custom_fields.name - custom_fields.number_value - custom_fields.representation_type - custom_fields.text_value - custom_fields.type - default_access_level - due_on - members - members.name - name - offset - owner - owner.name - path - permalink_url - privacy_setting - project_templates - project_templates.name - public - start_on - uri - workspace - workspace.name schema: type: array items: type: string enum: - archived - color - created_at - created_by - created_by.name - current_status_update - current_status_update.resource_subtype - current_status_update.title - custom_field_settings - custom_field_settings.custom_field - custom_field_settings.custom_field.asana_created_field - custom_field_settings.custom_field.created_by - custom_field_settings.custom_field.created_by.name - custom_field_settings.custom_field.currency_code - custom_field_settings.custom_field.custom_label - custom_field_settings.custom_field.custom_label_position - custom_field_settings.custom_field.date_value - custom_field_settings.custom_field.date_value.date - custom_field_settings.custom_field.date_value.date_time - custom_field_settings.custom_field.default_access_level - custom_field_settings.custom_field.description - custom_field_settings.custom_field.display_value - custom_field_settings.custom_field.enabled - custom_field_settings.custom_field.enum_options - custom_field_settings.custom_field.enum_options.color - custom_field_settings.custom_field.enum_options.enabled - custom_field_settings.custom_field.enum_options.name - custom_field_settings.custom_field.enum_value - custom_field_settings.custom_field.enum_value.color - custom_field_settings.custom_field.enum_value.enabled - custom_field_settings.custom_field.enum_value.name - custom_field_settings.custom_field.format - custom_field_settings.custom_field.has_notifications_enabled - custom_field_settings.custom_field.id_prefix - custom_field_settings.custom_field.input_restrictions - custom_field_settings.custom_field.is_formula_field - custom_field_settings.custom_field.is_global_to_workspace - custom_field_settings.custom_field.is_value_read_only - custom_field_settings.custom_field.multi_enum_values - custom_field_settings.custom_field.multi_enum_values.color - custom_field_settings.custom_field.multi_enum_values.enabled - custom_field_settings.custom_field.multi_enum_values.name - custom_field_settings.custom_field.name - custom_field_settings.custom_field.number_value - custom_field_settings.custom_field.people_value - custom_field_settings.custom_field.people_value.name - custom_field_settings.custom_field.precision - custom_field_settings.custom_field.privacy_setting - custom_field_settings.custom_field.reference_value - custom_field_settings.custom_field.reference_value.name - custom_field_settings.custom_field.representation_type - custom_field_settings.custom_field.resource_subtype - custom_field_settings.custom_field.text_value - custom_field_settings.custom_field.type - custom_field_settings.is_important - custom_field_settings.parent - custom_field_settings.parent.name - custom_field_settings.project - custom_field_settings.project.name - custom_fields - custom_fields.date_value - custom_fields.date_value.date - custom_fields.date_value.date_time - custom_fields.display_value - custom_fields.enabled - custom_fields.enum_options - custom_fields.enum_options.color - custom_fields.enum_options.enabled - custom_fields.enum_options.name - custom_fields.enum_value - custom_fields.enum_value.color - custom_fields.enum_value.enabled - custom_fields.enum_value.name - custom_fields.id_prefix - custom_fields.input_restrictions - custom_fields.is_formula_field - custom_fields.multi_enum_values - custom_fields.multi_enum_values.color - custom_fields.multi_enum_values.enabled - custom_fields.multi_enum_values.name - custom_fields.name - custom_fields.number_value - custom_fields.representation_type - custom_fields.text_value - custom_fields.type - default_access_level - due_on - members - members.name - name - offset - owner - owner.name - path - permalink_url - privacy_setting - project_templates - project_templates.name - public - start_on - uri - workspace - workspace.name style: form explode: false responses: 200: description: Successfully retrieved portfolios. content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/PortfolioCompact' next_page: $ref: '#/components/schemas/NextPage' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: - portfolios:read x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); List result = client.portfolios.getPortfolios(owner, workspace) .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let portfoliosApiInstance = new Asana.PortfoliosApi(client); let workspace = "1331"; // String | The workspace or organization to filter portfolios on. let opts = { 'limit': 50, 'offset': "eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9", 'owner': "14916", 'opt_fields': "archived,color,created_at,created_by,created_by.name,current_status_update,current_status_update.resource_subtype,current_status_update.title,custom_field_settings,custom_field_settings.custom_field,custom_field_settings.custom_field.asana_created_field,custom_field_settings.custom_field.created_by,custom_field_settings.custom_field.created_by.name,custom_field_settings.custom_field.currency_code,custom_field_settings.custom_field.custom_label,custom_field_settings.custom_field.custom_label_position,custom_field_settings.custom_field.date_value,custom_field_settings.custom_field.date_value.date,custom_field_settings.custom_field.date_value.date_time,custom_field_settings.custom_field.default_access_level,custom_field_settings.custom_field.description,custom_field_settings.custom_field.display_value,custom_field_settings.custom_field.enabled,custom_field_settings.custom_field.enum_options,custom_field_settings.custom_field.enum_options.color,custom_field_settings.custom_field.enum_options.enabled,custom_field_settings.custom_field.enum_options.name,custom_field_settings.custom_field.enum_value,custom_field_settings.custom_field.enum_value.color,custom_field_settings.custom_field.enum_value.enabled,custom_field_settings.custom_field.enum_value.name,custom_field_settings.custom_field.format,custom_field_settings.custom_field.has_notifications_enabled,custom_field_settings.custom_field.id_prefix,custom_field_settings.custom_field.input_restrictions,custom_field_settings.custom_field.is_formula_field,custom_field_settings.custom_field.is_global_to_workspace,custom_field_settings.custom_field.is_value_read_only,custom_field_settings.custom_field.multi_enum_values,custom_field_settings.custom_field.multi_enum_values.color,custom_field_settings.custom_field.multi_enum_values.enabled,custom_field_settings.custom_field.multi_enum_values.name,custom_field_settings.custom_field.name,custom_field_settings.custom_field.number_value,custom_field_settings.custom_field.people_value,custom_field_settings.custom_field.people_value.name,custom_field_settings.custom_field.precision,custom_field_settings.custom_field.privacy_setting,custom_field_settings.custom_field.reference_value,custom_field_settings.custom_field.reference_value.name,custom_field_settings.custom_field.representation_type,custom_field_settings.custom_field.resource_subtype,custom_field_settings.custom_field.text_value,custom_field_settings.custom_field.type,custom_field_settings.is_important,custom_field_settings.parent,custom_field_settings.parent.name,custom_field_settings.project,custom_field_settings.project.name,custom_fields,custom_fields.date_value,custom_fields.date_value.date,custom_fields.date_value.date_time,custom_fields.display_value,custom_fields.enabled,custom_fields.enum_options,custom_fields.enum_options.color,custom_fields.enum_options.enabled,custom_fields.enum_options.name,custom_fields.enum_value,custom_fields.enum_value.color,custom_fields.enum_value.enabled,custom_fields.enum_value.name,custom_fields.id_prefix,custom_fields.input_restrictions,custom_fields.is_formula_field,custom_fields.multi_enum_values,custom_fields.multi_enum_values.color,custom_fields.multi_enum_values.enabled,custom_fields.multi_enum_values.name,custom_fields.name,custom_fields.number_value,custom_fields.representation_type,custom_fields.text_value,custom_fields.type,default_access_level,due_on,members,members.name,name,offset,owner,owner.name,path,permalink_url,privacy_setting,project_templates,project_templates.name,public,start_on,uri,workspace,workspace.name" }; portfoliosApiInstance.getPortfolios(workspace, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.portfolios.getPortfolios({param: "value", param: "value", opt_pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class portfolios_api_instance = asana.PortfoliosApi(api_client) workspace = "1331" # str | The workspace or organization to filter portfolios on. opts = { 'limit': 50, # int | Results per page. The number of objects to return per page. The value must be between 1 and 100. 'offset': "eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9", # 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': "14916", # 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': "archived,color,created_at,created_by,created_by.name,current_status_update,current_status_update.resource_subtype,current_status_update.title,custom_field_settings,custom_field_settings.custom_field,custom_field_settings.custom_field.asana_created_field,custom_field_settings.custom_field.created_by,custom_field_settings.custom_field.created_by.name,custom_field_settings.custom_field.currency_code,custom_field_settings.custom_field.custom_label,custom_field_settings.custom_field.custom_label_position,custom_field_settings.custom_field.date_value,custom_field_settings.custom_field.date_value.date,custom_field_settings.custom_field.date_value.date_time,custom_field_settings.custom_field.default_access_level,custom_field_settings.custom_field.description,custom_field_settings.custom_field.display_value,custom_field_settings.custom_field.enabled,custom_field_settings.custom_field.enum_options,custom_field_settings.custom_field.enum_options.color,custom_field_settings.custom_field.enum_options.enabled,custom_field_settings.custom_field.enum_options.name,custom_field_settings.custom_field.enum_value,custom_field_settings.custom_field.enum_value.color,custom_field_settings.custom_field.enum_value.enabled,custom_field_settings.custom_field.enum_value.name,custom_field_settings.custom_field.format,custom_field_settings.custom_field.has_notifications_enabled,custom_field_settings.custom_field.id_prefix,custom_field_settings.custom_field.input_restrictions,custom_field_settings.custom_field.is_formula_field,custom_field_settings.custom_field.is_global_to_workspace,custom_field_settings.custom_field.is_value_read_only,custom_field_settings.custom_field.multi_enum_values,custom_field_settings.custom_field.multi_enum_values.color,custom_field_settings.custom_field.multi_enum_values.enabled,custom_field_settings.custom_field.multi_enum_values.name,custom_field_settings.custom_field.name,custom_field_settings.custom_field.number_value,custom_field_settings.custom_field.people_value,custom_field_settings.custom_field.people_value.name,custom_field_settings.custom_field.precision,custom_field_settings.custom_field.privacy_setting,custom_field_settings.custom_field.reference_value,custom_field_settings.custom_field.reference_value.name,custom_field_settings.custom_field.representation_type,custom_field_settings.custom_field.resource_subtype,custom_field_settings.custom_field.text_value,custom_field_settings.custom_field.type,custom_field_settings.is_important,custom_field_settings.parent,custom_field_settings.parent.name,custom_field_settings.project,custom_field_settings.project.name,custom_fields,custom_fields.date_value,custom_fields.date_value.date,custom_fields.date_value.date_time,custom_fields.display_value,custom_fields.enabled,custom_fields.enum_options,custom_fields.enum_options.color,custom_fields.enum_options.enabled,custom_fields.enum_options.name,custom_fields.enum_value,custom_fields.enum_value.color,custom_fields.enum_value.enabled,custom_fields.enum_value.name,custom_fields.id_prefix,custom_fields.input_restrictions,custom_fields.is_formula_field,custom_fields.multi_enum_values,custom_fields.multi_enum_values.color,custom_fields.multi_enum_values.enabled,custom_fields.multi_enum_values.name,custom_fields.name,custom_fields.number_value,custom_fields.representation_type,custom_fields.text_value,custom_fields.type,default_access_level,due_on,members,members.name,name,offset,owner,owner.name,path,permalink_url,privacy_setting,project_templates,project_templates.name,public,start_on,uri,workspace,workspace.name", # list[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. } try: # Get multiple portfolios api_response = portfolios_api_instance.get_portfolios(workspace, opts) for data in api_response: pprint(data) except ApiException as e: print("Exception when calling PortfoliosApi->get_portfolios: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.portfolios.get_portfolios({'param': 'value', 'param': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- portfolios->getPortfolios(array('param' => 'value', 'param' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.portfolios.get_portfolios(workspace: ''workspace_example'', owner: ''owner_example'', param: "value", param: "value", options: {pretty: true}) post: summary: Create a portfolio description: |- Required scope: portfolios:write Creates a new portfolio in the given workspace with the supplied name. Note that portfolios created in the Asana UI may have some state (like the “Priority” custom field) which is automatically added to the portfolio when it is created. Portfolios created via our API will *not* be created with the same initial state to allow integrations to create their own starting state on a portfolio. tags: - Portfolios operationId: createPortfolio parameters: - name: opt_fields in: query description: 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. required: false example: - archived - color - created_at - created_by - created_by.name - current_status_update - current_status_update.resource_subtype - current_status_update.title - custom_field_settings - custom_field_settings.custom_field - custom_field_settings.custom_field.asana_created_field - custom_field_settings.custom_field.created_by - custom_field_settings.custom_field.created_by.name - custom_field_settings.custom_field.currency_code - custom_field_settings.custom_field.custom_label - custom_field_settings.custom_field.custom_label_position - custom_field_settings.custom_field.date_value - custom_field_settings.custom_field.date_value.date - custom_field_settings.custom_field.date_value.date_time - custom_field_settings.custom_field.default_access_level - custom_field_settings.custom_field.description - custom_field_settings.custom_field.display_value - custom_field_settings.custom_field.enabled - custom_field_settings.custom_field.enum_options - custom_field_settings.custom_field.enum_options.color - custom_field_settings.custom_field.enum_options.enabled - custom_field_settings.custom_field.enum_options.name - custom_field_settings.custom_field.enum_value - custom_field_settings.custom_field.enum_value.color - custom_field_settings.custom_field.enum_value.enabled - custom_field_settings.custom_field.enum_value.name - custom_field_settings.custom_field.format - custom_field_settings.custom_field.has_notifications_enabled - custom_field_settings.custom_field.id_prefix - custom_field_settings.custom_field.input_restrictions - custom_field_settings.custom_field.is_formula_field - custom_field_settings.custom_field.is_global_to_workspace - custom_field_settings.custom_field.is_value_read_only - custom_field_settings.custom_field.multi_enum_values - custom_field_settings.custom_field.multi_enum_values.color - custom_field_settings.custom_field.multi_enum_values.enabled - custom_field_settings.custom_field.multi_enum_values.name - custom_field_settings.custom_field.name - custom_field_settings.custom_field.number_value - custom_field_settings.custom_field.people_value - custom_field_settings.custom_field.people_value.name - custom_field_settings.custom_field.precision - custom_field_settings.custom_field.privacy_setting - custom_field_settings.custom_field.reference_value - custom_field_settings.custom_field.reference_value.name - custom_field_settings.custom_field.representation_type - custom_field_settings.custom_field.resource_subtype - custom_field_settings.custom_field.text_value - custom_field_settings.custom_field.type - custom_field_settings.is_important - custom_field_settings.parent - custom_field_settings.parent.name - custom_field_settings.project - custom_field_settings.project.name - custom_fields - custom_fields.date_value - custom_fields.date_value.date - custom_fields.date_value.date_time - custom_fields.display_value - custom_fields.enabled - custom_fields.enum_options - custom_fields.enum_options.color - custom_fields.enum_options.enabled - custom_fields.enum_options.name - custom_fields.enum_value - custom_fields.enum_value.color - custom_fields.enum_value.enabled - custom_fields.enum_value.name - custom_fields.id_prefix - custom_fields.input_restrictions - custom_fields.is_formula_field - custom_fields.multi_enum_values - custom_fields.multi_enum_values.color - custom_fields.multi_enum_values.enabled - custom_fields.multi_enum_values.name - custom_fields.name - custom_fields.number_value - custom_fields.representation_type - custom_fields.text_value - custom_fields.type - default_access_level - due_on - members - members.name - name - owner - owner.name - permalink_url - privacy_setting - project_templates - project_templates.name - public - start_on - workspace - workspace.name schema: type: array items: type: string enum: - archived - color - created_at - created_by - created_by.name - current_status_update - current_status_update.resource_subtype - current_status_update.title - custom_field_settings - custom_field_settings.custom_field - custom_field_settings.custom_field.asana_created_field - custom_field_settings.custom_field.created_by - custom_field_settings.custom_field.created_by.name - custom_field_settings.custom_field.currency_code - custom_field_settings.custom_field.custom_label - custom_field_settings.custom_field.custom_label_position - custom_field_settings.custom_field.date_value - custom_field_settings.custom_field.date_value.date - custom_field_settings.custom_field.date_value.date_time - custom_field_settings.custom_field.default_access_level - custom_field_settings.custom_field.description - custom_field_settings.custom_field.display_value - custom_field_settings.custom_field.enabled - custom_field_settings.custom_field.enum_options - custom_field_settings.custom_field.enum_options.color - custom_field_settings.custom_field.enum_options.enabled - custom_field_settings.custom_field.enum_options.name - custom_field_settings.custom_field.enum_value - custom_field_settings.custom_field.enum_value.color - custom_field_settings.custom_field.enum_value.enabled - custom_field_settings.custom_field.enum_value.name - custom_field_settings.custom_field.format - custom_field_settings.custom_field.has_notifications_enabled - custom_field_settings.custom_field.id_prefix - custom_field_settings.custom_field.input_restrictions - custom_field_settings.custom_field.is_formula_field - custom_field_settings.custom_field.is_global_to_workspace - custom_field_settings.custom_field.is_value_read_only - custom_field_settings.custom_field.multi_enum_values - custom_field_settings.custom_field.multi_enum_values.color - custom_field_settings.custom_field.multi_enum_values.enabled - custom_field_settings.custom_field.multi_enum_values.name - custom_field_settings.custom_field.name - custom_field_settings.custom_field.number_value - custom_field_settings.custom_field.people_value - custom_field_settings.custom_field.people_value.name - custom_field_settings.custom_field.precision - custom_field_settings.custom_field.privacy_setting - custom_field_settings.custom_field.reference_value - custom_field_settings.custom_field.reference_value.name - custom_field_settings.custom_field.representation_type - custom_field_settings.custom_field.resource_subtype - custom_field_settings.custom_field.text_value - custom_field_settings.custom_field.type - custom_field_settings.is_important - custom_field_settings.parent - custom_field_settings.parent.name - custom_field_settings.project - custom_field_settings.project.name - custom_fields - custom_fields.date_value - custom_fields.date_value.date - custom_fields.date_value.date_time - custom_fields.display_value - custom_fields.enabled - custom_fields.enum_options - custom_fields.enum_options.color - custom_fields.enum_options.enabled - custom_fields.enum_options.name - custom_fields.enum_value - custom_fields.enum_value.color - custom_fields.enum_value.enabled - custom_fields.enum_value.name - custom_fields.id_prefix - custom_fields.input_restrictions - custom_fields.is_formula_field - custom_fields.multi_enum_values - custom_fields.multi_enum_values.color - custom_fields.multi_enum_values.enabled - custom_fields.multi_enum_values.name - custom_fields.name - custom_fields.number_value - custom_fields.representation_type - custom_fields.text_value - custom_fields.type - default_access_level - due_on - members - members.name - name - owner - owner.name - permalink_url - privacy_setting - project_templates - project_templates.name - public - start_on - workspace - workspace.name style: form explode: false requestBody: description: The portfolio to create. required: true content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/PortfolioRequest' responses: 201: description: Successfully created portfolio. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/PortfolioResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: - portfolios:write x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); Portfolio result = client.portfolios.createPortfolio() .data("field", "value") .data("field", "value") .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let portfoliosApiInstance = new Asana.PortfoliosApi(client); let body = {"data": {"": "", "": "",}}; // Object | The portfolio to create. let opts = { 'opt_fields': "archived,color,created_at,created_by,created_by.name,current_status_update,current_status_update.resource_subtype,current_status_update.title,custom_field_settings,custom_field_settings.custom_field,custom_field_settings.custom_field.asana_created_field,custom_field_settings.custom_field.created_by,custom_field_settings.custom_field.created_by.name,custom_field_settings.custom_field.currency_code,custom_field_settings.custom_field.custom_label,custom_field_settings.custom_field.custom_label_position,custom_field_settings.custom_field.date_value,custom_field_settings.custom_field.date_value.date,custom_field_settings.custom_field.date_value.date_time,custom_field_settings.custom_field.default_access_level,custom_field_settings.custom_field.description,custom_field_settings.custom_field.display_value,custom_field_settings.custom_field.enabled,custom_field_settings.custom_field.enum_options,custom_field_settings.custom_field.enum_options.color,custom_field_settings.custom_field.enum_options.enabled,custom_field_settings.custom_field.enum_options.name,custom_field_settings.custom_field.enum_value,custom_field_settings.custom_field.enum_value.color,custom_field_settings.custom_field.enum_value.enabled,custom_field_settings.custom_field.enum_value.name,custom_field_settings.custom_field.format,custom_field_settings.custom_field.has_notifications_enabled,custom_field_settings.custom_field.id_prefix,custom_field_settings.custom_field.input_restrictions,custom_field_settings.custom_field.is_formula_field,custom_field_settings.custom_field.is_global_to_workspace,custom_field_settings.custom_field.is_value_read_only,custom_field_settings.custom_field.multi_enum_values,custom_field_settings.custom_field.multi_enum_values.color,custom_field_settings.custom_field.multi_enum_values.enabled,custom_field_settings.custom_field.multi_enum_values.name,custom_field_settings.custom_field.name,custom_field_settings.custom_field.number_value,custom_field_settings.custom_field.people_value,custom_field_settings.custom_field.people_value.name,custom_field_settings.custom_field.precision,custom_field_settings.custom_field.privacy_setting,custom_field_settings.custom_field.reference_value,custom_field_settings.custom_field.reference_value.name,custom_field_settings.custom_field.representation_type,custom_field_settings.custom_field.resource_subtype,custom_field_settings.custom_field.text_value,custom_field_settings.custom_field.type,custom_field_settings.is_important,custom_field_settings.parent,custom_field_settings.parent.name,custom_field_settings.project,custom_field_settings.project.name,custom_fields,custom_fields.date_value,custom_fields.date_value.date,custom_fields.date_value.date_time,custom_fields.display_value,custom_fields.enabled,custom_fields.enum_options,custom_fields.enum_options.color,custom_fields.enum_options.enabled,custom_fields.enum_options.name,custom_fields.enum_value,custom_fields.enum_value.color,custom_fields.enum_value.enabled,custom_fields.enum_value.name,custom_fields.id_prefix,custom_fields.input_restrictions,custom_fields.is_formula_field,custom_fields.multi_enum_values,custom_fields.multi_enum_values.color,custom_fields.multi_enum_values.enabled,custom_fields.multi_enum_values.name,custom_fields.name,custom_fields.number_value,custom_fields.representation_type,custom_fields.text_value,custom_fields.type,default_access_level,due_on,members,members.name,name,owner,owner.name,permalink_url,privacy_setting,project_templates,project_templates.name,public,start_on,workspace,workspace.name" }; portfoliosApiInstance.createPortfolio(body, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.portfolios.createPortfolio({field: "value", field: "value", pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class portfolios_api_instance = asana.PortfoliosApi(api_client) body = {"data": {"": "", "": "",}} # dict | The portfolio to create. opts = { 'opt_fields': "archived,color,created_at,created_by,created_by.name,current_status_update,current_status_update.resource_subtype,current_status_update.title,custom_field_settings,custom_field_settings.custom_field,custom_field_settings.custom_field.asana_created_field,custom_field_settings.custom_field.created_by,custom_field_settings.custom_field.created_by.name,custom_field_settings.custom_field.currency_code,custom_field_settings.custom_field.custom_label,custom_field_settings.custom_field.custom_label_position,custom_field_settings.custom_field.date_value,custom_field_settings.custom_field.date_value.date,custom_field_settings.custom_field.date_value.date_time,custom_field_settings.custom_field.default_access_level,custom_field_settings.custom_field.description,custom_field_settings.custom_field.display_value,custom_field_settings.custom_field.enabled,custom_field_settings.custom_field.enum_options,custom_field_settings.custom_field.enum_options.color,custom_field_settings.custom_field.enum_options.enabled,custom_field_settings.custom_field.enum_options.name,custom_field_settings.custom_field.enum_value,custom_field_settings.custom_field.enum_value.color,custom_field_settings.custom_field.enum_value.enabled,custom_field_settings.custom_field.enum_value.name,custom_field_settings.custom_field.format,custom_field_settings.custom_field.has_notifications_enabled,custom_field_settings.custom_field.id_prefix,custom_field_settings.custom_field.input_restrictions,custom_field_settings.custom_field.is_formula_field,custom_field_settings.custom_field.is_global_to_workspace,custom_field_settings.custom_field.is_value_read_only,custom_field_settings.custom_field.multi_enum_values,custom_field_settings.custom_field.multi_enum_values.color,custom_field_settings.custom_field.multi_enum_values.enabled,custom_field_settings.custom_field.multi_enum_values.name,custom_field_settings.custom_field.name,custom_field_settings.custom_field.number_value,custom_field_settings.custom_field.people_value,custom_field_settings.custom_field.people_value.name,custom_field_settings.custom_field.precision,custom_field_settings.custom_field.privacy_setting,custom_field_settings.custom_field.reference_value,custom_field_settings.custom_field.reference_value.name,custom_field_settings.custom_field.representation_type,custom_field_settings.custom_field.resource_subtype,custom_field_settings.custom_field.text_value,custom_field_settings.custom_field.type,custom_field_settings.is_important,custom_field_settings.parent,custom_field_settings.parent.name,custom_field_settings.project,custom_field_settings.project.name,custom_fields,custom_fields.date_value,custom_fields.date_value.date,custom_fields.date_value.date_time,custom_fields.display_value,custom_fields.enabled,custom_fields.enum_options,custom_fields.enum_options.color,custom_fields.enum_options.enabled,custom_fields.enum_options.name,custom_fields.enum_value,custom_fields.enum_value.color,custom_fields.enum_value.enabled,custom_fields.enum_value.name,custom_fields.id_prefix,custom_fields.input_restrictions,custom_fields.is_formula_field,custom_fields.multi_enum_values,custom_fields.multi_enum_values.color,custom_fields.multi_enum_values.enabled,custom_fields.multi_enum_values.name,custom_fields.name,custom_fields.number_value,custom_fields.representation_type,custom_fields.text_value,custom_fields.type,default_access_level,due_on,members,members.name,name,owner,owner.name,permalink_url,privacy_setting,project_templates,project_templates.name,public,start_on,workspace,workspace.name", # list[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. } try: # Create a portfolio api_response = portfolios_api_instance.create_portfolio(body, opts) pprint(api_response) except ApiException as e: print("Exception when calling PortfoliosApi->create_portfolio: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.portfolios.create_portfolio({'field': 'value', 'field': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- portfolios->createPortfolio(array('field' => 'value', 'field' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.portfolios.create_portfolio(field: "value", field: "value", options: {pretty: true}) /portfolios/{portfolio_gid}: parameters: - $ref: '#/components/parameters/portfolio_path_gid' - $ref: '#/components/parameters/pretty' get: summary: Get a portfolio description: |- Required scope: portfolios:read Returns the complete portfolio record for a single portfolio. tags: - Portfolios operationId: getPortfolio parameters: - name: opt_fields in: query description: 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. required: false example: - archived - color - created_at - created_by - created_by.name - current_status_update - current_status_update.resource_subtype - current_status_update.title - custom_field_settings - custom_field_settings.custom_field - custom_field_settings.custom_field.asana_created_field - custom_field_settings.custom_field.created_by - custom_field_settings.custom_field.created_by.name - custom_field_settings.custom_field.currency_code - custom_field_settings.custom_field.custom_label - custom_field_settings.custom_field.custom_label_position - custom_field_settings.custom_field.date_value - custom_field_settings.custom_field.date_value.date - custom_field_settings.custom_field.date_value.date_time - custom_field_settings.custom_field.default_access_level - custom_field_settings.custom_field.description - custom_field_settings.custom_field.display_value - custom_field_settings.custom_field.enabled - custom_field_settings.custom_field.enum_options - custom_field_settings.custom_field.enum_options.color - custom_field_settings.custom_field.enum_options.enabled - custom_field_settings.custom_field.enum_options.name - custom_field_settings.custom_field.enum_value - custom_field_settings.custom_field.enum_value.color - custom_field_settings.custom_field.enum_value.enabled - custom_field_settings.custom_field.enum_value.name - custom_field_settings.custom_field.format - custom_field_settings.custom_field.has_notifications_enabled - custom_field_settings.custom_field.id_prefix - custom_field_settings.custom_field.input_restrictions - custom_field_settings.custom_field.is_formula_field - custom_field_settings.custom_field.is_global_to_workspace - custom_field_settings.custom_field.is_value_read_only - custom_field_settings.custom_field.multi_enum_values - custom_field_settings.custom_field.multi_enum_values.color - custom_field_settings.custom_field.multi_enum_values.enabled - custom_field_settings.custom_field.multi_enum_values.name - custom_field_settings.custom_field.name - custom_field_settings.custom_field.number_value - custom_field_settings.custom_field.people_value - custom_field_settings.custom_field.people_value.name - custom_field_settings.custom_field.precision - custom_field_settings.custom_field.privacy_setting - custom_field_settings.custom_field.reference_value - custom_field_settings.custom_field.reference_value.name - custom_field_settings.custom_field.representation_type - custom_field_settings.custom_field.resource_subtype - custom_field_settings.custom_field.text_value - custom_field_settings.custom_field.type - custom_field_settings.is_important - custom_field_settings.parent - custom_field_settings.parent.name - custom_field_settings.project - custom_field_settings.project.name - custom_fields - custom_fields.date_value - custom_fields.date_value.date - custom_fields.date_value.date_time - custom_fields.display_value - custom_fields.enabled - custom_fields.enum_options - custom_fields.enum_options.color - custom_fields.enum_options.enabled - custom_fields.enum_options.name - custom_fields.enum_value - custom_fields.enum_value.color - custom_fields.enum_value.enabled - custom_fields.enum_value.name - custom_fields.id_prefix - custom_fields.input_restrictions - custom_fields.is_formula_field - custom_fields.multi_enum_values - custom_fields.multi_enum_values.color - custom_fields.multi_enum_values.enabled - custom_fields.multi_enum_values.name - custom_fields.name - custom_fields.number_value - custom_fields.representation_type - custom_fields.text_value - custom_fields.type - default_access_level - due_on - members - members.name - name - owner - owner.name - permalink_url - privacy_setting - project_templates - project_templates.name - public - start_on - workspace - workspace.name schema: type: array items: type: string enum: - archived - color - created_at - created_by - created_by.name - current_status_update - current_status_update.resource_subtype - current_status_update.title - custom_field_settings - custom_field_settings.custom_field - custom_field_settings.custom_field.asana_created_field - custom_field_settings.custom_field.created_by - custom_field_settings.custom_field.created_by.name - custom_field_settings.custom_field.currency_code - custom_field_settings.custom_field.custom_label - custom_field_settings.custom_field.custom_label_position - custom_field_settings.custom_field.date_value - custom_field_settings.custom_field.date_value.date - custom_field_settings.custom_field.date_value.date_time - custom_field_settings.custom_field.default_access_level - custom_field_settings.custom_field.description - custom_field_settings.custom_field.display_value - custom_field_settings.custom_field.enabled - custom_field_settings.custom_field.enum_options - custom_field_settings.custom_field.enum_options.color - custom_field_settings.custom_field.enum_options.enabled - custom_field_settings.custom_field.enum_options.name - custom_field_settings.custom_field.enum_value - custom_field_settings.custom_field.enum_value.color - custom_field_settings.custom_field.enum_value.enabled - custom_field_settings.custom_field.enum_value.name - custom_field_settings.custom_field.format - custom_field_settings.custom_field.has_notifications_enabled - custom_field_settings.custom_field.id_prefix - custom_field_settings.custom_field.input_restrictions - custom_field_settings.custom_field.is_formula_field - custom_field_settings.custom_field.is_global_to_workspace - custom_field_settings.custom_field.is_value_read_only - custom_field_settings.custom_field.multi_enum_values - custom_field_settings.custom_field.multi_enum_values.color - custom_field_settings.custom_field.multi_enum_values.enabled - custom_field_settings.custom_field.multi_enum_values.name - custom_field_settings.custom_field.name - custom_field_settings.custom_field.number_value - custom_field_settings.custom_field.people_value - custom_field_settings.custom_field.people_value.name - custom_field_settings.custom_field.precision - custom_field_settings.custom_field.privacy_setting - custom_field_settings.custom_field.reference_value - custom_field_settings.custom_field.reference_value.name - custom_field_settings.custom_field.representation_type - custom_field_settings.custom_field.resource_subtype - custom_field_settings.custom_field.text_value - custom_field_settings.custom_field.type - custom_field_settings.is_important - custom_field_settings.parent - custom_field_settings.parent.name - custom_field_settings.project - custom_field_settings.project.name - custom_fields - custom_fields.date_value - custom_fields.date_value.date - custom_fields.date_value.date_time - custom_fields.display_value - custom_fields.enabled - custom_fields.enum_options - custom_fields.enum_options.color - custom_fields.enum_options.enabled - custom_fields.enum_options.name - custom_fields.enum_value - custom_fields.enum_value.color - custom_fields.enum_value.enabled - custom_fields.enum_value.name - custom_fields.id_prefix - custom_fields.input_restrictions - custom_fields.is_formula_field - custom_fields.multi_enum_values - custom_fields.multi_enum_values.color - custom_fields.multi_enum_values.enabled - custom_fields.multi_enum_values.name - custom_fields.name - custom_fields.number_value - custom_fields.representation_type - custom_fields.text_value - custom_fields.type - default_access_level - due_on - members - members.name - name - owner - owner.name - permalink_url - privacy_setting - project_templates - project_templates.name - public - start_on - workspace - workspace.name style: form explode: false responses: 200: description: Successfully retrieved the requested portfolio. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/PortfolioResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: - portfolios:read x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); Portfolio result = client.portfolios.getPortfolio(portfolioGid) .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let portfoliosApiInstance = new Asana.PortfoliosApi(client); let portfolio_gid = "12345"; // String | Globally unique identifier for the portfolio. let opts = { 'opt_fields': "archived,color,created_at,created_by,created_by.name,current_status_update,current_status_update.resource_subtype,current_status_update.title,custom_field_settings,custom_field_settings.custom_field,custom_field_settings.custom_field.asana_created_field,custom_field_settings.custom_field.created_by,custom_field_settings.custom_field.created_by.name,custom_field_settings.custom_field.currency_code,custom_field_settings.custom_field.custom_label,custom_field_settings.custom_field.custom_label_position,custom_field_settings.custom_field.date_value,custom_field_settings.custom_field.date_value.date,custom_field_settings.custom_field.date_value.date_time,custom_field_settings.custom_field.default_access_level,custom_field_settings.custom_field.description,custom_field_settings.custom_field.display_value,custom_field_settings.custom_field.enabled,custom_field_settings.custom_field.enum_options,custom_field_settings.custom_field.enum_options.color,custom_field_settings.custom_field.enum_options.enabled,custom_field_settings.custom_field.enum_options.name,custom_field_settings.custom_field.enum_value,custom_field_settings.custom_field.enum_value.color,custom_field_settings.custom_field.enum_value.enabled,custom_field_settings.custom_field.enum_value.name,custom_field_settings.custom_field.format,custom_field_settings.custom_field.has_notifications_enabled,custom_field_settings.custom_field.id_prefix,custom_field_settings.custom_field.input_restrictions,custom_field_settings.custom_field.is_formula_field,custom_field_settings.custom_field.is_global_to_workspace,custom_field_settings.custom_field.is_value_read_only,custom_field_settings.custom_field.multi_enum_values,custom_field_settings.custom_field.multi_enum_values.color,custom_field_settings.custom_field.multi_enum_values.enabled,custom_field_settings.custom_field.multi_enum_values.name,custom_field_settings.custom_field.name,custom_field_settings.custom_field.number_value,custom_field_settings.custom_field.people_value,custom_field_settings.custom_field.people_value.name,custom_field_settings.custom_field.precision,custom_field_settings.custom_field.privacy_setting,custom_field_settings.custom_field.reference_value,custom_field_settings.custom_field.reference_value.name,custom_field_settings.custom_field.representation_type,custom_field_settings.custom_field.resource_subtype,custom_field_settings.custom_field.text_value,custom_field_settings.custom_field.type,custom_field_settings.is_important,custom_field_settings.parent,custom_field_settings.parent.name,custom_field_settings.project,custom_field_settings.project.name,custom_fields,custom_fields.date_value,custom_fields.date_value.date,custom_fields.date_value.date_time,custom_fields.display_value,custom_fields.enabled,custom_fields.enum_options,custom_fields.enum_options.color,custom_fields.enum_options.enabled,custom_fields.enum_options.name,custom_fields.enum_value,custom_fields.enum_value.color,custom_fields.enum_value.enabled,custom_fields.enum_value.name,custom_fields.id_prefix,custom_fields.input_restrictions,custom_fields.is_formula_field,custom_fields.multi_enum_values,custom_fields.multi_enum_values.color,custom_fields.multi_enum_values.enabled,custom_fields.multi_enum_values.name,custom_fields.name,custom_fields.number_value,custom_fields.representation_type,custom_fields.text_value,custom_fields.type,default_access_level,due_on,members,members.name,name,owner,owner.name,permalink_url,privacy_setting,project_templates,project_templates.name,public,start_on,workspace,workspace.name" }; portfoliosApiInstance.getPortfolio(portfolio_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.portfolios.getPortfolio(portfolioGid, {param: "value", param: "value", opt_pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class portfolios_api_instance = asana.PortfoliosApi(api_client) portfolio_gid = "12345" # str | Globally unique identifier for the portfolio. opts = { 'opt_fields': "archived,color,created_at,created_by,created_by.name,current_status_update,current_status_update.resource_subtype,current_status_update.title,custom_field_settings,custom_field_settings.custom_field,custom_field_settings.custom_field.asana_created_field,custom_field_settings.custom_field.created_by,custom_field_settings.custom_field.created_by.name,custom_field_settings.custom_field.currency_code,custom_field_settings.custom_field.custom_label,custom_field_settings.custom_field.custom_label_position,custom_field_settings.custom_field.date_value,custom_field_settings.custom_field.date_value.date,custom_field_settings.custom_field.date_value.date_time,custom_field_settings.custom_field.default_access_level,custom_field_settings.custom_field.description,custom_field_settings.custom_field.display_value,custom_field_settings.custom_field.enabled,custom_field_settings.custom_field.enum_options,custom_field_settings.custom_field.enum_options.color,custom_field_settings.custom_field.enum_options.enabled,custom_field_settings.custom_field.enum_options.name,custom_field_settings.custom_field.enum_value,custom_field_settings.custom_field.enum_value.color,custom_field_settings.custom_field.enum_value.enabled,custom_field_settings.custom_field.enum_value.name,custom_field_settings.custom_field.format,custom_field_settings.custom_field.has_notifications_enabled,custom_field_settings.custom_field.id_prefix,custom_field_settings.custom_field.input_restrictions,custom_field_settings.custom_field.is_formula_field,custom_field_settings.custom_field.is_global_to_workspace,custom_field_settings.custom_field.is_value_read_only,custom_field_settings.custom_field.multi_enum_values,custom_field_settings.custom_field.multi_enum_values.color,custom_field_settings.custom_field.multi_enum_values.enabled,custom_field_settings.custom_field.multi_enum_values.name,custom_field_settings.custom_field.name,custom_field_settings.custom_field.number_value,custom_field_settings.custom_field.people_value,custom_field_settings.custom_field.people_value.name,custom_field_settings.custom_field.precision,custom_field_settings.custom_field.privacy_setting,custom_field_settings.custom_field.reference_value,custom_field_settings.custom_field.reference_value.name,custom_field_settings.custom_field.representation_type,custom_field_settings.custom_field.resource_subtype,custom_field_settings.custom_field.text_value,custom_field_settings.custom_field.type,custom_field_settings.is_important,custom_field_settings.parent,custom_field_settings.parent.name,custom_field_settings.project,custom_field_settings.project.name,custom_fields,custom_fields.date_value,custom_fields.date_value.date,custom_fields.date_value.date_time,custom_fields.display_value,custom_fields.enabled,custom_fields.enum_options,custom_fields.enum_options.color,custom_fields.enum_options.enabled,custom_fields.enum_options.name,custom_fields.enum_value,custom_fields.enum_value.color,custom_fields.enum_value.enabled,custom_fields.enum_value.name,custom_fields.id_prefix,custom_fields.input_restrictions,custom_fields.is_formula_field,custom_fields.multi_enum_values,custom_fields.multi_enum_values.color,custom_fields.multi_enum_values.enabled,custom_fields.multi_enum_values.name,custom_fields.name,custom_fields.number_value,custom_fields.representation_type,custom_fields.text_value,custom_fields.type,default_access_level,due_on,members,members.name,name,owner,owner.name,permalink_url,privacy_setting,project_templates,project_templates.name,public,start_on,workspace,workspace.name", # list[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. } try: # Get a portfolio api_response = portfolios_api_instance.get_portfolio(portfolio_gid, opts) pprint(api_response) except ApiException as e: print("Exception when calling PortfoliosApi->get_portfolio: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.portfolios.get_portfolio(portfolio_gid, {'param': 'value', 'param': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- portfolios->getPortfolio($portfolio_gid, array('param' => 'value', 'param' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.portfolios.get_portfolio(portfolio_gid: 'portfolio_gid', param: "value", param: "value", options: {pretty: true}) put: summary: Update a portfolio description: |- Required scope: portfolios:write An existing portfolio can be updated by making a PUT request on the URL for that portfolio. Only the fields provided in the `data` block will be updated; any unspecified fields will remain unchanged. Returns the complete updated portfolio record. tags: - Portfolios operationId: updatePortfolio parameters: - name: opt_fields in: query description: 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. required: false example: - archived - color - created_at - created_by - created_by.name - current_status_update - current_status_update.resource_subtype - current_status_update.title - custom_field_settings - custom_field_settings.custom_field - custom_field_settings.custom_field.asana_created_field - custom_field_settings.custom_field.created_by - custom_field_settings.custom_field.created_by.name - custom_field_settings.custom_field.currency_code - custom_field_settings.custom_field.custom_label - custom_field_settings.custom_field.custom_label_position - custom_field_settings.custom_field.date_value - custom_field_settings.custom_field.date_value.date - custom_field_settings.custom_field.date_value.date_time - custom_field_settings.custom_field.default_access_level - custom_field_settings.custom_field.description - custom_field_settings.custom_field.display_value - custom_field_settings.custom_field.enabled - custom_field_settings.custom_field.enum_options - custom_field_settings.custom_field.enum_options.color - custom_field_settings.custom_field.enum_options.enabled - custom_field_settings.custom_field.enum_options.name - custom_field_settings.custom_field.enum_value - custom_field_settings.custom_field.enum_value.color - custom_field_settings.custom_field.enum_value.enabled - custom_field_settings.custom_field.enum_value.name - custom_field_settings.custom_field.format - custom_field_settings.custom_field.has_notifications_enabled - custom_field_settings.custom_field.id_prefix - custom_field_settings.custom_field.input_restrictions - custom_field_settings.custom_field.is_formula_field - custom_field_settings.custom_field.is_global_to_workspace - custom_field_settings.custom_field.is_value_read_only - custom_field_settings.custom_field.multi_enum_values - custom_field_settings.custom_field.multi_enum_values.color - custom_field_settings.custom_field.multi_enum_values.enabled - custom_field_settings.custom_field.multi_enum_values.name - custom_field_settings.custom_field.name - custom_field_settings.custom_field.number_value - custom_field_settings.custom_field.people_value - custom_field_settings.custom_field.people_value.name - custom_field_settings.custom_field.precision - custom_field_settings.custom_field.privacy_setting - custom_field_settings.custom_field.reference_value - custom_field_settings.custom_field.reference_value.name - custom_field_settings.custom_field.representation_type - custom_field_settings.custom_field.resource_subtype - custom_field_settings.custom_field.text_value - custom_field_settings.custom_field.type - custom_field_settings.is_important - custom_field_settings.parent - custom_field_settings.parent.name - custom_field_settings.project - custom_field_settings.project.name - custom_fields - custom_fields.date_value - custom_fields.date_value.date - custom_fields.date_value.date_time - custom_fields.display_value - custom_fields.enabled - custom_fields.enum_options - custom_fields.enum_options.color - custom_fields.enum_options.enabled - custom_fields.enum_options.name - custom_fields.enum_value - custom_fields.enum_value.color - custom_fields.enum_value.enabled - custom_fields.enum_value.name - custom_fields.id_prefix - custom_fields.input_restrictions - custom_fields.is_formula_field - custom_fields.multi_enum_values - custom_fields.multi_enum_values.color - custom_fields.multi_enum_values.enabled - custom_fields.multi_enum_values.name - custom_fields.name - custom_fields.number_value - custom_fields.representation_type - custom_fields.text_value - custom_fields.type - default_access_level - due_on - members - members.name - name - owner - owner.name - permalink_url - privacy_setting - project_templates - project_templates.name - public - start_on - workspace - workspace.name schema: type: array items: type: string enum: - archived - color - created_at - created_by - created_by.name - current_status_update - current_status_update.resource_subtype - current_status_update.title - custom_field_settings - custom_field_settings.custom_field - custom_field_settings.custom_field.asana_created_field - custom_field_settings.custom_field.created_by - custom_field_settings.custom_field.created_by.name - custom_field_settings.custom_field.currency_code - custom_field_settings.custom_field.custom_label - custom_field_settings.custom_field.custom_label_position - custom_field_settings.custom_field.date_value - custom_field_settings.custom_field.date_value.date - custom_field_settings.custom_field.date_value.date_time - custom_field_settings.custom_field.default_access_level - custom_field_settings.custom_field.description - custom_field_settings.custom_field.display_value - custom_field_settings.custom_field.enabled - custom_field_settings.custom_field.enum_options - custom_field_settings.custom_field.enum_options.color - custom_field_settings.custom_field.enum_options.enabled - custom_field_settings.custom_field.enum_options.name - custom_field_settings.custom_field.enum_value - custom_field_settings.custom_field.enum_value.color - custom_field_settings.custom_field.enum_value.enabled - custom_field_settings.custom_field.enum_value.name - custom_field_settings.custom_field.format - custom_field_settings.custom_field.has_notifications_enabled - custom_field_settings.custom_field.id_prefix - custom_field_settings.custom_field.input_restrictions - custom_field_settings.custom_field.is_formula_field - custom_field_settings.custom_field.is_global_to_workspace - custom_field_settings.custom_field.is_value_read_only - custom_field_settings.custom_field.multi_enum_values - custom_field_settings.custom_field.multi_enum_values.color - custom_field_settings.custom_field.multi_enum_values.enabled - custom_field_settings.custom_field.multi_enum_values.name - custom_field_settings.custom_field.name - custom_field_settings.custom_field.number_value - custom_field_settings.custom_field.people_value - custom_field_settings.custom_field.people_value.name - custom_field_settings.custom_field.precision - custom_field_settings.custom_field.privacy_setting - custom_field_settings.custom_field.reference_value - custom_field_settings.custom_field.reference_value.name - custom_field_settings.custom_field.representation_type - custom_field_settings.custom_field.resource_subtype - custom_field_settings.custom_field.text_value - custom_field_settings.custom_field.type - custom_field_settings.is_important - custom_field_settings.parent - custom_field_settings.parent.name - custom_field_settings.project - custom_field_settings.project.name - custom_fields - custom_fields.date_value - custom_fields.date_value.date - custom_fields.date_value.date_time - custom_fields.display_value - custom_fields.enabled - custom_fields.enum_options - custom_fields.enum_options.color - custom_fields.enum_options.enabled - custom_fields.enum_options.name - custom_fields.enum_value - custom_fields.enum_value.color - custom_fields.enum_value.enabled - custom_fields.enum_value.name - custom_fields.id_prefix - custom_fields.input_restrictions - custom_fields.is_formula_field - custom_fields.multi_enum_values - custom_fields.multi_enum_values.color - custom_fields.multi_enum_values.enabled - custom_fields.multi_enum_values.name - custom_fields.name - custom_fields.number_value - custom_fields.representation_type - custom_fields.text_value - custom_fields.type - default_access_level - due_on - members - members.name - name - owner - owner.name - permalink_url - privacy_setting - project_templates - project_templates.name - public - start_on - workspace - workspace.name style: form explode: false requestBody: description: The updated fields for the portfolio. required: true content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/PortfolioUpdateRequest' responses: 200: description: Successfully updated the portfolio. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/PortfolioResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: - portfolios:write x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); Portfolio result = client.portfolios.updatePortfolio(portfolioGid) .data("field", "value") .data("field", "value") .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let portfoliosApiInstance = new Asana.PortfoliosApi(client); let body = {"data": {"": "", "": "",}}; // Object | The updated fields for the portfolio. let portfolio_gid = "12345"; // String | Globally unique identifier for the portfolio. let opts = { 'opt_fields': "archived,color,created_at,created_by,created_by.name,current_status_update,current_status_update.resource_subtype,current_status_update.title,custom_field_settings,custom_field_settings.custom_field,custom_field_settings.custom_field.asana_created_field,custom_field_settings.custom_field.created_by,custom_field_settings.custom_field.created_by.name,custom_field_settings.custom_field.currency_code,custom_field_settings.custom_field.custom_label,custom_field_settings.custom_field.custom_label_position,custom_field_settings.custom_field.date_value,custom_field_settings.custom_field.date_value.date,custom_field_settings.custom_field.date_value.date_time,custom_field_settings.custom_field.default_access_level,custom_field_settings.custom_field.description,custom_field_settings.custom_field.display_value,custom_field_settings.custom_field.enabled,custom_field_settings.custom_field.enum_options,custom_field_settings.custom_field.enum_options.color,custom_field_settings.custom_field.enum_options.enabled,custom_field_settings.custom_field.enum_options.name,custom_field_settings.custom_field.enum_value,custom_field_settings.custom_field.enum_value.color,custom_field_settings.custom_field.enum_value.enabled,custom_field_settings.custom_field.enum_value.name,custom_field_settings.custom_field.format,custom_field_settings.custom_field.has_notifications_enabled,custom_field_settings.custom_field.id_prefix,custom_field_settings.custom_field.input_restrictions,custom_field_settings.custom_field.is_formula_field,custom_field_settings.custom_field.is_global_to_workspace,custom_field_settings.custom_field.is_value_read_only,custom_field_settings.custom_field.multi_enum_values,custom_field_settings.custom_field.multi_enum_values.color,custom_field_settings.custom_field.multi_enum_values.enabled,custom_field_settings.custom_field.multi_enum_values.name,custom_field_settings.custom_field.name,custom_field_settings.custom_field.number_value,custom_field_settings.custom_field.people_value,custom_field_settings.custom_field.people_value.name,custom_field_settings.custom_field.precision,custom_field_settings.custom_field.privacy_setting,custom_field_settings.custom_field.reference_value,custom_field_settings.custom_field.reference_value.name,custom_field_settings.custom_field.representation_type,custom_field_settings.custom_field.resource_subtype,custom_field_settings.custom_field.text_value,custom_field_settings.custom_field.type,custom_field_settings.is_important,custom_field_settings.parent,custom_field_settings.parent.name,custom_field_settings.project,custom_field_settings.project.name,custom_fields,custom_fields.date_value,custom_fields.date_value.date,custom_fields.date_value.date_time,custom_fields.display_value,custom_fields.enabled,custom_fields.enum_options,custom_fields.enum_options.color,custom_fields.enum_options.enabled,custom_fields.enum_options.name,custom_fields.enum_value,custom_fields.enum_value.color,custom_fields.enum_value.enabled,custom_fields.enum_value.name,custom_fields.id_prefix,custom_fields.input_restrictions,custom_fields.is_formula_field,custom_fields.multi_enum_values,custom_fields.multi_enum_values.color,custom_fields.multi_enum_values.enabled,custom_fields.multi_enum_values.name,custom_fields.name,custom_fields.number_value,custom_fields.representation_type,custom_fields.text_value,custom_fields.type,default_access_level,due_on,members,members.name,name,owner,owner.name,permalink_url,privacy_setting,project_templates,project_templates.name,public,start_on,workspace,workspace.name" }; portfoliosApiInstance.updatePortfolio(body, portfolio_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.portfolios.updatePortfolio(portfolioGid, {field: "value", field: "value", pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class portfolios_api_instance = asana.PortfoliosApi(api_client) body = {"data": {"": "", "": "",}} # dict | The updated fields for the portfolio. portfolio_gid = "12345" # str | Globally unique identifier for the portfolio. opts = { 'opt_fields': "archived,color,created_at,created_by,created_by.name,current_status_update,current_status_update.resource_subtype,current_status_update.title,custom_field_settings,custom_field_settings.custom_field,custom_field_settings.custom_field.asana_created_field,custom_field_settings.custom_field.created_by,custom_field_settings.custom_field.created_by.name,custom_field_settings.custom_field.currency_code,custom_field_settings.custom_field.custom_label,custom_field_settings.custom_field.custom_label_position,custom_field_settings.custom_field.date_value,custom_field_settings.custom_field.date_value.date,custom_field_settings.custom_field.date_value.date_time,custom_field_settings.custom_field.default_access_level,custom_field_settings.custom_field.description,custom_field_settings.custom_field.display_value,custom_field_settings.custom_field.enabled,custom_field_settings.custom_field.enum_options,custom_field_settings.custom_field.enum_options.color,custom_field_settings.custom_field.enum_options.enabled,custom_field_settings.custom_field.enum_options.name,custom_field_settings.custom_field.enum_value,custom_field_settings.custom_field.enum_value.color,custom_field_settings.custom_field.enum_value.enabled,custom_field_settings.custom_field.enum_value.name,custom_field_settings.custom_field.format,custom_field_settings.custom_field.has_notifications_enabled,custom_field_settings.custom_field.id_prefix,custom_field_settings.custom_field.input_restrictions,custom_field_settings.custom_field.is_formula_field,custom_field_settings.custom_field.is_global_to_workspace,custom_field_settings.custom_field.is_value_read_only,custom_field_settings.custom_field.multi_enum_values,custom_field_settings.custom_field.multi_enum_values.color,custom_field_settings.custom_field.multi_enum_values.enabled,custom_field_settings.custom_field.multi_enum_values.name,custom_field_settings.custom_field.name,custom_field_settings.custom_field.number_value,custom_field_settings.custom_field.people_value,custom_field_settings.custom_field.people_value.name,custom_field_settings.custom_field.precision,custom_field_settings.custom_field.privacy_setting,custom_field_settings.custom_field.reference_value,custom_field_settings.custom_field.reference_value.name,custom_field_settings.custom_field.representation_type,custom_field_settings.custom_field.resource_subtype,custom_field_settings.custom_field.text_value,custom_field_settings.custom_field.type,custom_field_settings.is_important,custom_field_settings.parent,custom_field_settings.parent.name,custom_field_settings.project,custom_field_settings.project.name,custom_fields,custom_fields.date_value,custom_fields.date_value.date,custom_fields.date_value.date_time,custom_fields.display_value,custom_fields.enabled,custom_fields.enum_options,custom_fields.enum_options.color,custom_fields.enum_options.enabled,custom_fields.enum_options.name,custom_fields.enum_value,custom_fields.enum_value.color,custom_fields.enum_value.enabled,custom_fields.enum_value.name,custom_fields.id_prefix,custom_fields.input_restrictions,custom_fields.is_formula_field,custom_fields.multi_enum_values,custom_fields.multi_enum_values.color,custom_fields.multi_enum_values.enabled,custom_fields.multi_enum_values.name,custom_fields.name,custom_fields.number_value,custom_fields.representation_type,custom_fields.text_value,custom_fields.type,default_access_level,due_on,members,members.name,name,owner,owner.name,permalink_url,privacy_setting,project_templates,project_templates.name,public,start_on,workspace,workspace.name", # list[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. } try: # Update a portfolio api_response = portfolios_api_instance.update_portfolio(body, portfolio_gid, opts) pprint(api_response) except ApiException as e: print("Exception when calling PortfoliosApi->update_portfolio: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.portfolios.update_portfolio(portfolio_gid, {'field': 'value', 'field': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- portfolios->updatePortfolio($portfolio_gid, array('field' => 'value', 'field' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.portfolios.update_portfolio(portfolio_gid: 'portfolio_gid', field: "value", field: "value", options: {pretty: true}) delete: summary: Delete a portfolio description: |- An existing portfolio can be deleted by making a DELETE request on the URL for that portfolio. Returns an empty data record. tags: - Portfolios operationId: deletePortfolio responses: 200: description: Successfully deleted the specified portfolio. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/EmptyResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: [] x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); JsonElement result = client.portfolios.deletePortfolio(portfolioGid) .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let portfoliosApiInstance = new Asana.PortfoliosApi(client); let portfolio_gid = "12345"; // String | Globally unique identifier for the portfolio. portfoliosApiInstance.deletePortfolio(portfolio_gid).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.portfolios.deletePortfolio(portfolioGid) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class portfolios_api_instance = asana.PortfoliosApi(api_client) portfolio_gid = "12345" # str | Globally unique identifier for the portfolio. try: # Delete a portfolio api_response = portfolios_api_instance.delete_portfolio(portfolio_gid) pprint(api_response) except ApiException as e: print("Exception when calling PortfoliosApi->delete_portfolio: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.portfolios.delete_portfolio(portfolio_gid, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- portfolios->deletePortfolio($portfolio_gid, array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.portfolios.delete_portfolio(portfolio_gid: 'portfolio_gid', options: {pretty: true}) /portfolios/{portfolio_gid}/items: parameters: - $ref: '#/components/parameters/portfolio_path_gid' - $ref: '#/components/parameters/pretty' - $ref: '#/components/parameters/limit' - $ref: '#/components/parameters/offset' get: summary: Get portfolio items description: |- Required scope: portfolios:read Get a list of the items in compact form in a portfolio. tags: - Portfolios operationId: getItemsForPortfolio parameters: - name: opt_fields in: query description: 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. required: false example: - archived - color - completed - completed_at - completed_by - completed_by.name - created_at - created_from_template - created_from_template.name - current_status - current_status.author - current_status.author.name - current_status.color - current_status.created_at - current_status.created_by - current_status.created_by.name - current_status.html_text - current_status.modified_at - current_status.text - current_status.title - current_status_update - current_status_update.resource_subtype - current_status_update.title - custom_field_settings - custom_field_settings.custom_field - custom_field_settings.custom_field.asana_created_field - custom_field_settings.custom_field.created_by - custom_field_settings.custom_field.created_by.name - custom_field_settings.custom_field.currency_code - custom_field_settings.custom_field.custom_label - custom_field_settings.custom_field.custom_label_position - custom_field_settings.custom_field.date_value - custom_field_settings.custom_field.date_value.date - custom_field_settings.custom_field.date_value.date_time - custom_field_settings.custom_field.default_access_level - custom_field_settings.custom_field.description - custom_field_settings.custom_field.display_value - custom_field_settings.custom_field.enabled - custom_field_settings.custom_field.enum_options - custom_field_settings.custom_field.enum_options.color - custom_field_settings.custom_field.enum_options.enabled - custom_field_settings.custom_field.enum_options.name - custom_field_settings.custom_field.enum_value - custom_field_settings.custom_field.enum_value.color - custom_field_settings.custom_field.enum_value.enabled - custom_field_settings.custom_field.enum_value.name - custom_field_settings.custom_field.format - custom_field_settings.custom_field.has_notifications_enabled - custom_field_settings.custom_field.id_prefix - custom_field_settings.custom_field.input_restrictions - custom_field_settings.custom_field.is_formula_field - custom_field_settings.custom_field.is_global_to_workspace - custom_field_settings.custom_field.is_value_read_only - custom_field_settings.custom_field.multi_enum_values - custom_field_settings.custom_field.multi_enum_values.color - custom_field_settings.custom_field.multi_enum_values.enabled - custom_field_settings.custom_field.multi_enum_values.name - custom_field_settings.custom_field.name - custom_field_settings.custom_field.number_value - custom_field_settings.custom_field.people_value - custom_field_settings.custom_field.people_value.name - custom_field_settings.custom_field.precision - custom_field_settings.custom_field.privacy_setting - custom_field_settings.custom_field.reference_value - custom_field_settings.custom_field.reference_value.name - custom_field_settings.custom_field.representation_type - custom_field_settings.custom_field.resource_subtype - custom_field_settings.custom_field.text_value - custom_field_settings.custom_field.type - custom_field_settings.is_important - custom_field_settings.parent - custom_field_settings.parent.name - custom_field_settings.project - custom_field_settings.project.name - custom_fields - custom_fields.date_value - custom_fields.date_value.date - custom_fields.date_value.date_time - custom_fields.display_value - custom_fields.enabled - custom_fields.enum_options - custom_fields.enum_options.color - custom_fields.enum_options.enabled - custom_fields.enum_options.name - custom_fields.enum_value - custom_fields.enum_value.color - custom_fields.enum_value.enabled - custom_fields.enum_value.name - custom_fields.id_prefix - custom_fields.input_restrictions - custom_fields.is_formula_field - custom_fields.multi_enum_values - custom_fields.multi_enum_values.color - custom_fields.multi_enum_values.enabled - custom_fields.multi_enum_values.name - custom_fields.name - custom_fields.number_value - custom_fields.representation_type - custom_fields.text_value - custom_fields.type - default_access_level - default_view - due_date - due_on - followers - followers.name - html_notes - icon - members - members.name - minimum_access_level_for_customization - minimum_access_level_for_sharing - modified_at - name - notes - offset - owner - path - permalink_url - privacy_setting - project_brief - public - start_on - team - team.name - uri - workspace - workspace.name schema: type: array items: type: string enum: - archived - color - completed - completed_at - completed_by - completed_by.name - created_at - created_from_template - created_from_template.name - current_status - current_status.author - current_status.author.name - current_status.color - current_status.created_at - current_status.created_by - current_status.created_by.name - current_status.html_text - current_status.modified_at - current_status.text - current_status.title - current_status_update - current_status_update.resource_subtype - current_status_update.title - custom_field_settings - custom_field_settings.custom_field - custom_field_settings.custom_field.asana_created_field - custom_field_settings.custom_field.created_by - custom_field_settings.custom_field.created_by.name - custom_field_settings.custom_field.currency_code - custom_field_settings.custom_field.custom_label - custom_field_settings.custom_field.custom_label_position - custom_field_settings.custom_field.date_value - custom_field_settings.custom_field.date_value.date - custom_field_settings.custom_field.date_value.date_time - custom_field_settings.custom_field.default_access_level - custom_field_settings.custom_field.description - custom_field_settings.custom_field.display_value - custom_field_settings.custom_field.enabled - custom_field_settings.custom_field.enum_options - custom_field_settings.custom_field.enum_options.color - custom_field_settings.custom_field.enum_options.enabled - custom_field_settings.custom_field.enum_options.name - custom_field_settings.custom_field.enum_value - custom_field_settings.custom_field.enum_value.color - custom_field_settings.custom_field.enum_value.enabled - custom_field_settings.custom_field.enum_value.name - custom_field_settings.custom_field.format - custom_field_settings.custom_field.has_notifications_enabled - custom_field_settings.custom_field.id_prefix - custom_field_settings.custom_field.input_restrictions - custom_field_settings.custom_field.is_formula_field - custom_field_settings.custom_field.is_global_to_workspace - custom_field_settings.custom_field.is_value_read_only - custom_field_settings.custom_field.multi_enum_values - custom_field_settings.custom_field.multi_enum_values.color - custom_field_settings.custom_field.multi_enum_values.enabled - custom_field_settings.custom_field.multi_enum_values.name - custom_field_settings.custom_field.name - custom_field_settings.custom_field.number_value - custom_field_settings.custom_field.people_value - custom_field_settings.custom_field.people_value.name - custom_field_settings.custom_field.precision - custom_field_settings.custom_field.privacy_setting - custom_field_settings.custom_field.reference_value - custom_field_settings.custom_field.reference_value.name - custom_field_settings.custom_field.representation_type - custom_field_settings.custom_field.resource_subtype - custom_field_settings.custom_field.text_value - custom_field_settings.custom_field.type - custom_field_settings.is_important - custom_field_settings.parent - custom_field_settings.parent.name - custom_field_settings.project - custom_field_settings.project.name - custom_fields - custom_fields.date_value - custom_fields.date_value.date - custom_fields.date_value.date_time - custom_fields.display_value - custom_fields.enabled - custom_fields.enum_options - custom_fields.enum_options.color - custom_fields.enum_options.enabled - custom_fields.enum_options.name - custom_fields.enum_value - custom_fields.enum_value.color - custom_fields.enum_value.enabled - custom_fields.enum_value.name - custom_fields.id_prefix - custom_fields.input_restrictions - custom_fields.is_formula_field - custom_fields.multi_enum_values - custom_fields.multi_enum_values.color - custom_fields.multi_enum_values.enabled - custom_fields.multi_enum_values.name - custom_fields.name - custom_fields.number_value - custom_fields.representation_type - custom_fields.text_value - custom_fields.type - default_access_level - default_view - due_date - due_on - followers - followers.name - html_notes - icon - members - members.name - minimum_access_level_for_customization - minimum_access_level_for_sharing - modified_at - name - notes - offset - owner - path - permalink_url - privacy_setting - project_brief - public - start_on - team - team.name - uri - workspace - workspace.name style: form explode: false responses: 200: description: Successfully retrieved the requested portfolio's items. content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/ProjectCompact' next_page: $ref: '#/components/schemas/NextPage' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: - portfolios:read x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); List result = client.portfolios.getItemsForPortfolio(portfolioGid) .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let portfoliosApiInstance = new Asana.PortfoliosApi(client); let portfolio_gid = "12345"; // String | Globally unique identifier for the portfolio. let opts = { 'limit': 50, 'offset': "eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9", 'opt_fields': "archived,color,completed,completed_at,completed_by,completed_by.name,created_at,created_from_template,created_from_template.name,current_status,current_status.author,current_status.author.name,current_status.color,current_status.created_at,current_status.created_by,current_status.created_by.name,current_status.html_text,current_status.modified_at,current_status.text,current_status.title,current_status_update,current_status_update.resource_subtype,current_status_update.title,custom_field_settings,custom_field_settings.custom_field,custom_field_settings.custom_field.asana_created_field,custom_field_settings.custom_field.created_by,custom_field_settings.custom_field.created_by.name,custom_field_settings.custom_field.currency_code,custom_field_settings.custom_field.custom_label,custom_field_settings.custom_field.custom_label_position,custom_field_settings.custom_field.date_value,custom_field_settings.custom_field.date_value.date,custom_field_settings.custom_field.date_value.date_time,custom_field_settings.custom_field.default_access_level,custom_field_settings.custom_field.description,custom_field_settings.custom_field.display_value,custom_field_settings.custom_field.enabled,custom_field_settings.custom_field.enum_options,custom_field_settings.custom_field.enum_options.color,custom_field_settings.custom_field.enum_options.enabled,custom_field_settings.custom_field.enum_options.name,custom_field_settings.custom_field.enum_value,custom_field_settings.custom_field.enum_value.color,custom_field_settings.custom_field.enum_value.enabled,custom_field_settings.custom_field.enum_value.name,custom_field_settings.custom_field.format,custom_field_settings.custom_field.has_notifications_enabled,custom_field_settings.custom_field.id_prefix,custom_field_settings.custom_field.input_restrictions,custom_field_settings.custom_field.is_formula_field,custom_field_settings.custom_field.is_global_to_workspace,custom_field_settings.custom_field.is_value_read_only,custom_field_settings.custom_field.multi_enum_values,custom_field_settings.custom_field.multi_enum_values.color,custom_field_settings.custom_field.multi_enum_values.enabled,custom_field_settings.custom_field.multi_enum_values.name,custom_field_settings.custom_field.name,custom_field_settings.custom_field.number_value,custom_field_settings.custom_field.people_value,custom_field_settings.custom_field.people_value.name,custom_field_settings.custom_field.precision,custom_field_settings.custom_field.privacy_setting,custom_field_settings.custom_field.reference_value,custom_field_settings.custom_field.reference_value.name,custom_field_settings.custom_field.representation_type,custom_field_settings.custom_field.resource_subtype,custom_field_settings.custom_field.text_value,custom_field_settings.custom_field.type,custom_field_settings.is_important,custom_field_settings.parent,custom_field_settings.parent.name,custom_field_settings.project,custom_field_settings.project.name,custom_fields,custom_fields.date_value,custom_fields.date_value.date,custom_fields.date_value.date_time,custom_fields.display_value,custom_fields.enabled,custom_fields.enum_options,custom_fields.enum_options.color,custom_fields.enum_options.enabled,custom_fields.enum_options.name,custom_fields.enum_value,custom_fields.enum_value.color,custom_fields.enum_value.enabled,custom_fields.enum_value.name,custom_fields.id_prefix,custom_fields.input_restrictions,custom_fields.is_formula_field,custom_fields.multi_enum_values,custom_fields.multi_enum_values.color,custom_fields.multi_enum_values.enabled,custom_fields.multi_enum_values.name,custom_fields.name,custom_fields.number_value,custom_fields.representation_type,custom_fields.text_value,custom_fields.type,default_access_level,default_view,due_date,due_on,followers,followers.name,html_notes,icon,members,members.name,minimum_access_level_for_customization,minimum_access_level_for_sharing,modified_at,name,notes,offset,owner,path,permalink_url,privacy_setting,project_brief,public,start_on,team,team.name,uri,workspace,workspace.name" }; portfoliosApiInstance.getItemsForPortfolio(portfolio_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.portfolios.getItemsForPortfolio(portfolioGid, {param: "value", param: "value", opt_pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class portfolios_api_instance = asana.PortfoliosApi(api_client) portfolio_gid = "12345" # str | Globally unique identifier for the portfolio. opts = { 'limit': 50, # int | Results per page. The number of objects to return per page. The value must be between 1 and 100. 'offset': "eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9", # 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': "archived,color,completed,completed_at,completed_by,completed_by.name,created_at,created_from_template,created_from_template.name,current_status,current_status.author,current_status.author.name,current_status.color,current_status.created_at,current_status.created_by,current_status.created_by.name,current_status.html_text,current_status.modified_at,current_status.text,current_status.title,current_status_update,current_status_update.resource_subtype,current_status_update.title,custom_field_settings,custom_field_settings.custom_field,custom_field_settings.custom_field.asana_created_field,custom_field_settings.custom_field.created_by,custom_field_settings.custom_field.created_by.name,custom_field_settings.custom_field.currency_code,custom_field_settings.custom_field.custom_label,custom_field_settings.custom_field.custom_label_position,custom_field_settings.custom_field.date_value,custom_field_settings.custom_field.date_value.date,custom_field_settings.custom_field.date_value.date_time,custom_field_settings.custom_field.default_access_level,custom_field_settings.custom_field.description,custom_field_settings.custom_field.display_value,custom_field_settings.custom_field.enabled,custom_field_settings.custom_field.enum_options,custom_field_settings.custom_field.enum_options.color,custom_field_settings.custom_field.enum_options.enabled,custom_field_settings.custom_field.enum_options.name,custom_field_settings.custom_field.enum_value,custom_field_settings.custom_field.enum_value.color,custom_field_settings.custom_field.enum_value.enabled,custom_field_settings.custom_field.enum_value.name,custom_field_settings.custom_field.format,custom_field_settings.custom_field.has_notifications_enabled,custom_field_settings.custom_field.id_prefix,custom_field_settings.custom_field.input_restrictions,custom_field_settings.custom_field.is_formula_field,custom_field_settings.custom_field.is_global_to_workspace,custom_field_settings.custom_field.is_value_read_only,custom_field_settings.custom_field.multi_enum_values,custom_field_settings.custom_field.multi_enum_values.color,custom_field_settings.custom_field.multi_enum_values.enabled,custom_field_settings.custom_field.multi_enum_values.name,custom_field_settings.custom_field.name,custom_field_settings.custom_field.number_value,custom_field_settings.custom_field.people_value,custom_field_settings.custom_field.people_value.name,custom_field_settings.custom_field.precision,custom_field_settings.custom_field.privacy_setting,custom_field_settings.custom_field.reference_value,custom_field_settings.custom_field.reference_value.name,custom_field_settings.custom_field.representation_type,custom_field_settings.custom_field.resource_subtype,custom_field_settings.custom_field.text_value,custom_field_settings.custom_field.type,custom_field_settings.is_important,custom_field_settings.parent,custom_field_settings.parent.name,custom_field_settings.project,custom_field_settings.project.name,custom_fields,custom_fields.date_value,custom_fields.date_value.date,custom_fields.date_value.date_time,custom_fields.display_value,custom_fields.enabled,custom_fields.enum_options,custom_fields.enum_options.color,custom_fields.enum_options.enabled,custom_fields.enum_options.name,custom_fields.enum_value,custom_fields.enum_value.color,custom_fields.enum_value.enabled,custom_fields.enum_value.name,custom_fields.id_prefix,custom_fields.input_restrictions,custom_fields.is_formula_field,custom_fields.multi_enum_values,custom_fields.multi_enum_values.color,custom_fields.multi_enum_values.enabled,custom_fields.multi_enum_values.name,custom_fields.name,custom_fields.number_value,custom_fields.representation_type,custom_fields.text_value,custom_fields.type,default_access_level,default_view,due_date,due_on,followers,followers.name,html_notes,icon,members,members.name,minimum_access_level_for_customization,minimum_access_level_for_sharing,modified_at,name,notes,offset,owner,path,permalink_url,privacy_setting,project_brief,public,start_on,team,team.name,uri,workspace,workspace.name", # list[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. } try: # Get portfolio items api_response = portfolios_api_instance.get_items_for_portfolio(portfolio_gid, opts) for data in api_response: pprint(data) except ApiException as e: print("Exception when calling PortfoliosApi->get_items_for_portfolio: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.portfolios.get_items_for_portfolio(portfolio_gid, {'param': 'value', 'param': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- portfolios->getItemsForPortfolio($portfolio_gid, array('param' => 'value', 'param' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.portfolios.get_items_for_portfolio(portfolio_gid: 'portfolio_gid', param: "value", param: "value", options: {pretty: true}) /portfolios/{portfolio_gid}/addItem: parameters: - $ref: '#/components/parameters/portfolio_path_gid' - $ref: '#/components/parameters/pretty' post: summary: Add a portfolio item description: |- Required scope: portfolios:write Add an item to a portfolio. Returns an empty data block. tags: - Portfolios operationId: addItemForPortfolio requestBody: description: Information about the item being inserted. required: true content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/PortfolioAddItemRequest' responses: 200: description: Successfully added the item to the portfolio. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/EmptyResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: - portfolios:write x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); JsonElement result = client.portfolios.addItemForPortfolio(portfolioGid) .data("field", "value") .data("field", "value") .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let portfoliosApiInstance = new Asana.PortfoliosApi(client); let body = {"data": {"": "", "": "",}}; // Object | Information about the item being inserted. let portfolio_gid = "12345"; // String | Globally unique identifier for the portfolio. portfoliosApiInstance.addItemForPortfolio(body, portfolio_gid).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.portfolios.addItemForPortfolio(portfolioGid, {field: "value", field: "value", pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class portfolios_api_instance = asana.PortfoliosApi(api_client) body = {"data": {"": "", "": "",}} # dict | Information about the item being inserted. portfolio_gid = "12345" # str | Globally unique identifier for the portfolio. try: # Add a portfolio item api_response = portfolios_api_instance.add_item_for_portfolio(body, portfolio_gid) pprint(api_response) except ApiException as e: print("Exception when calling PortfoliosApi->add_item_for_portfolio: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.portfolios.add_item_for_portfolio(portfolio_gid, {'field': 'value', 'field': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- portfolios->addItemForPortfolio($portfolio_gid, array('field' => 'value', 'field' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.portfolios.add_item_for_portfolio(portfolio_gid: 'portfolio_gid', field: "value", field: "value", options: {pretty: true}) /portfolios/{portfolio_gid}/removeItem: parameters: - $ref: '#/components/parameters/portfolio_path_gid' - $ref: '#/components/parameters/pretty' post: summary: Remove a portfolio item description: |- Required scope: portfolios:write Remove an item from a portfolio. Returns an empty data block. tags: - Portfolios operationId: removeItemForPortfolio requestBody: description: Information about the item being removed. required: true content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/PortfolioRemoveItemRequest' responses: 200: description: Successfully removed the item from the portfolio. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/EmptyResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: - portfolios:write x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); JsonElement result = client.portfolios.removeItemForPortfolio(portfolioGid) .data("field", "value") .data("field", "value") .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let portfoliosApiInstance = new Asana.PortfoliosApi(client); let body = {"data": {"": "", "": "",}}; // Object | Information about the item being removed. let portfolio_gid = "12345"; // String | Globally unique identifier for the portfolio. portfoliosApiInstance.removeItemForPortfolio(body, portfolio_gid).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.portfolios.removeItemForPortfolio(portfolioGid, {field: "value", field: "value", pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class portfolios_api_instance = asana.PortfoliosApi(api_client) body = {"data": {"": "", "": "",}} # dict | Information about the item being removed. portfolio_gid = "12345" # str | Globally unique identifier for the portfolio. try: # Remove a portfolio item api_response = portfolios_api_instance.remove_item_for_portfolio(body, portfolio_gid) pprint(api_response) except ApiException as e: print("Exception when calling PortfoliosApi->remove_item_for_portfolio: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.portfolios.remove_item_for_portfolio(portfolio_gid, {'field': 'value', 'field': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- portfolios->removeItemForPortfolio($portfolio_gid, array('field' => 'value', 'field' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.portfolios.remove_item_for_portfolio(portfolio_gid: 'portfolio_gid', field: "value", field: "value", options: {pretty: true}) /portfolios/{portfolio_gid}/addCustomFieldSetting: parameters: - $ref: '#/components/parameters/portfolio_path_gid' - $ref: '#/components/parameters/pretty' post: summary: Add a custom field to a portfolio description: |- Required scope: portfolios:write Custom fields are associated with portfolios by way of custom field settings. This method creates a setting for the portfolio. tags: - Portfolios operationId: addCustomFieldSettingForPortfolio security: - personalAccessToken: [] - oauth2: - portfolios:write requestBody: description: Information about the custom field setting. required: true content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/AddCustomFieldSettingRequest' responses: 200: description: Successfully added the custom field to the portfolio. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/CustomFieldSettingResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); CustomFieldSetting result = client.portfolios.addCustomFieldSettingForPortfolio(portfolioGid) .data("field", "value") .data("field", "value") .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let portfoliosApiInstance = new Asana.PortfoliosApi(client); let body = {"data": {"": "", "": "",}}; // Object | Information about the custom field setting. let portfolio_gid = "12345"; // String | Globally unique identifier for the portfolio. portfoliosApiInstance.addCustomFieldSettingForPortfolio(body, portfolio_gid).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.portfolios.addCustomFieldSettingForPortfolio(portfolioGid, {field: "value", field: "value", pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class portfolios_api_instance = asana.PortfoliosApi(api_client) body = {"data": {"": "", "": "",}} # dict | Information about the custom field setting. portfolio_gid = "12345" # str | Globally unique identifier for the portfolio. try: # Add a custom field to a portfolio api_response = portfolios_api_instance.add_custom_field_setting_for_portfolio(body, portfolio_gid) pprint(api_response) except ApiException as e: print("Exception when calling PortfoliosApi->add_custom_field_setting_for_portfolio: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.portfolios.add_custom_field_setting_for_portfolio(portfolio_gid, {'field': 'value', 'field': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- portfolios->addCustomFieldSettingForPortfolio($portfolio_gid, array('field' => 'value', 'field' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.portfolios.add_custom_field_setting_for_portfolio(portfolio_gid: 'portfolio_gid', field: "value", field: "value", options: {pretty: true}) /portfolios/{portfolio_gid}/removeCustomFieldSetting: parameters: - $ref: '#/components/parameters/portfolio_path_gid' - $ref: '#/components/parameters/pretty' post: summary: Remove a custom field from a portfolio description: |- Required scope: portfolios:write Removes a custom field setting from a portfolio. tags: - Portfolios operationId: removeCustomFieldSettingForPortfolio security: - personalAccessToken: [] - oauth2: - portfolios:write requestBody: description: Information about the custom field setting being removed. required: true content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/RemoveCustomFieldSettingRequest' responses: 200: description: Successfully removed the custom field from the portfolio. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/EmptyResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); JsonElement result = client.portfolios.removeCustomFieldSettingForPortfolio(portfolioGid) .data("field", "value") .data("field", "value") .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let portfoliosApiInstance = new Asana.PortfoliosApi(client); let body = {"data": {"": "", "": "",}}; // Object | Information about the custom field setting being removed. let portfolio_gid = "12345"; // String | Globally unique identifier for the portfolio. portfoliosApiInstance.removeCustomFieldSettingForPortfolio(body, portfolio_gid).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.portfolios.removeCustomFieldSettingForPortfolio(portfolioGid, {field: "value", field: "value", pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class portfolios_api_instance = asana.PortfoliosApi(api_client) body = {"data": {"": "", "": "",}} # dict | Information about the custom field setting being removed. portfolio_gid = "12345" # str | Globally unique identifier for the portfolio. try: # Remove a custom field from a portfolio api_response = portfolios_api_instance.remove_custom_field_setting_for_portfolio(body, portfolio_gid) pprint(api_response) except ApiException as e: print("Exception when calling PortfoliosApi->remove_custom_field_setting_for_portfolio: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.portfolios.remove_custom_field_setting_for_portfolio(portfolio_gid, {'field': 'value', 'field': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- portfolios->removeCustomFieldSettingForPortfolio($portfolio_gid, array('field' => 'value', 'field' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.portfolios.remove_custom_field_setting_for_portfolio(portfolio_gid: 'portfolio_gid', field: "value", field: "value", options: {pretty: true}) /portfolios/{portfolio_gid}/addMembers: parameters: - $ref: '#/components/parameters/portfolio_path_gid' - $ref: '#/components/parameters/pretty' post: summary: Add users to a portfolio description: >- Adds the specified list of users as members of the portfolio. Returns the updated portfolio record. tags: - Portfolios operationId: addMembersForPortfolio parameters: - name: opt_fields in: query description: 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. required: false example: - archived - color - created_at - created_by - created_by.name - current_status_update - current_status_update.resource_subtype - current_status_update.title - custom_field_settings - custom_field_settings.custom_field - custom_field_settings.custom_field.asana_created_field - custom_field_settings.custom_field.created_by - custom_field_settings.custom_field.created_by.name - custom_field_settings.custom_field.currency_code - custom_field_settings.custom_field.custom_label - custom_field_settings.custom_field.custom_label_position - custom_field_settings.custom_field.date_value - custom_field_settings.custom_field.date_value.date - custom_field_settings.custom_field.date_value.date_time - custom_field_settings.custom_field.default_access_level - custom_field_settings.custom_field.description - custom_field_settings.custom_field.display_value - custom_field_settings.custom_field.enabled - custom_field_settings.custom_field.enum_options - custom_field_settings.custom_field.enum_options.color - custom_field_settings.custom_field.enum_options.enabled - custom_field_settings.custom_field.enum_options.name - custom_field_settings.custom_field.enum_value - custom_field_settings.custom_field.enum_value.color - custom_field_settings.custom_field.enum_value.enabled - custom_field_settings.custom_field.enum_value.name - custom_field_settings.custom_field.format - custom_field_settings.custom_field.has_notifications_enabled - custom_field_settings.custom_field.id_prefix - custom_field_settings.custom_field.input_restrictions - custom_field_settings.custom_field.is_formula_field - custom_field_settings.custom_field.is_global_to_workspace - custom_field_settings.custom_field.is_value_read_only - custom_field_settings.custom_field.multi_enum_values - custom_field_settings.custom_field.multi_enum_values.color - custom_field_settings.custom_field.multi_enum_values.enabled - custom_field_settings.custom_field.multi_enum_values.name - custom_field_settings.custom_field.name - custom_field_settings.custom_field.number_value - custom_field_settings.custom_field.people_value - custom_field_settings.custom_field.people_value.name - custom_field_settings.custom_field.precision - custom_field_settings.custom_field.privacy_setting - custom_field_settings.custom_field.reference_value - custom_field_settings.custom_field.reference_value.name - custom_field_settings.custom_field.representation_type - custom_field_settings.custom_field.resource_subtype - custom_field_settings.custom_field.text_value - custom_field_settings.custom_field.type - custom_field_settings.is_important - custom_field_settings.parent - custom_field_settings.parent.name - custom_field_settings.project - custom_field_settings.project.name - custom_fields - custom_fields.date_value - custom_fields.date_value.date - custom_fields.date_value.date_time - custom_fields.display_value - custom_fields.enabled - custom_fields.enum_options - custom_fields.enum_options.color - custom_fields.enum_options.enabled - custom_fields.enum_options.name - custom_fields.enum_value - custom_fields.enum_value.color - custom_fields.enum_value.enabled - custom_fields.enum_value.name - custom_fields.id_prefix - custom_fields.input_restrictions - custom_fields.is_formula_field - custom_fields.multi_enum_values - custom_fields.multi_enum_values.color - custom_fields.multi_enum_values.enabled - custom_fields.multi_enum_values.name - custom_fields.name - custom_fields.number_value - custom_fields.representation_type - custom_fields.text_value - custom_fields.type - default_access_level - due_on - members - members.name - name - owner - owner.name - permalink_url - privacy_setting - project_templates - project_templates.name - public - start_on - workspace - workspace.name schema: type: array items: type: string enum: - archived - color - created_at - created_by - created_by.name - current_status_update - current_status_update.resource_subtype - current_status_update.title - custom_field_settings - custom_field_settings.custom_field - custom_field_settings.custom_field.asana_created_field - custom_field_settings.custom_field.created_by - custom_field_settings.custom_field.created_by.name - custom_field_settings.custom_field.currency_code - custom_field_settings.custom_field.custom_label - custom_field_settings.custom_field.custom_label_position - custom_field_settings.custom_field.date_value - custom_field_settings.custom_field.date_value.date - custom_field_settings.custom_field.date_value.date_time - custom_field_settings.custom_field.default_access_level - custom_field_settings.custom_field.description - custom_field_settings.custom_field.display_value - custom_field_settings.custom_field.enabled - custom_field_settings.custom_field.enum_options - custom_field_settings.custom_field.enum_options.color - custom_field_settings.custom_field.enum_options.enabled - custom_field_settings.custom_field.enum_options.name - custom_field_settings.custom_field.enum_value - custom_field_settings.custom_field.enum_value.color - custom_field_settings.custom_field.enum_value.enabled - custom_field_settings.custom_field.enum_value.name - custom_field_settings.custom_field.format - custom_field_settings.custom_field.has_notifications_enabled - custom_field_settings.custom_field.id_prefix - custom_field_settings.custom_field.input_restrictions - custom_field_settings.custom_field.is_formula_field - custom_field_settings.custom_field.is_global_to_workspace - custom_field_settings.custom_field.is_value_read_only - custom_field_settings.custom_field.multi_enum_values - custom_field_settings.custom_field.multi_enum_values.color - custom_field_settings.custom_field.multi_enum_values.enabled - custom_field_settings.custom_field.multi_enum_values.name - custom_field_settings.custom_field.name - custom_field_settings.custom_field.number_value - custom_field_settings.custom_field.people_value - custom_field_settings.custom_field.people_value.name - custom_field_settings.custom_field.precision - custom_field_settings.custom_field.privacy_setting - custom_field_settings.custom_field.reference_value - custom_field_settings.custom_field.reference_value.name - custom_field_settings.custom_field.representation_type - custom_field_settings.custom_field.resource_subtype - custom_field_settings.custom_field.text_value - custom_field_settings.custom_field.type - custom_field_settings.is_important - custom_field_settings.parent - custom_field_settings.parent.name - custom_field_settings.project - custom_field_settings.project.name - custom_fields - custom_fields.date_value - custom_fields.date_value.date - custom_fields.date_value.date_time - custom_fields.display_value - custom_fields.enabled - custom_fields.enum_options - custom_fields.enum_options.color - custom_fields.enum_options.enabled - custom_fields.enum_options.name - custom_fields.enum_value - custom_fields.enum_value.color - custom_fields.enum_value.enabled - custom_fields.enum_value.name - custom_fields.id_prefix - custom_fields.input_restrictions - custom_fields.is_formula_field - custom_fields.multi_enum_values - custom_fields.multi_enum_values.color - custom_fields.multi_enum_values.enabled - custom_fields.multi_enum_values.name - custom_fields.name - custom_fields.number_value - custom_fields.representation_type - custom_fields.text_value - custom_fields.type - default_access_level - due_on - members - members.name - name - owner - owner.name - permalink_url - privacy_setting - project_templates - project_templates.name - public - start_on - workspace - workspace.name style: form explode: false requestBody: description: Information about the members being added. required: true content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/AddMembersRequest' responses: 200: description: Successfully added members to the portfolio. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/PortfolioResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: [] x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); Portfolio result = client.portfolios.addMembersForPortfolio(portfolioGid) .data("field", "value") .data("field", "value") .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let portfoliosApiInstance = new Asana.PortfoliosApi(client); let body = {"data": {"": "", "": "",}}; // Object | Information about the members being added. let portfolio_gid = "12345"; // String | Globally unique identifier for the portfolio. let opts = { 'opt_fields': "archived,color,created_at,created_by,created_by.name,current_status_update,current_status_update.resource_subtype,current_status_update.title,custom_field_settings,custom_field_settings.custom_field,custom_field_settings.custom_field.asana_created_field,custom_field_settings.custom_field.created_by,custom_field_settings.custom_field.created_by.name,custom_field_settings.custom_field.currency_code,custom_field_settings.custom_field.custom_label,custom_field_settings.custom_field.custom_label_position,custom_field_settings.custom_field.date_value,custom_field_settings.custom_field.date_value.date,custom_field_settings.custom_field.date_value.date_time,custom_field_settings.custom_field.default_access_level,custom_field_settings.custom_field.description,custom_field_settings.custom_field.display_value,custom_field_settings.custom_field.enabled,custom_field_settings.custom_field.enum_options,custom_field_settings.custom_field.enum_options.color,custom_field_settings.custom_field.enum_options.enabled,custom_field_settings.custom_field.enum_options.name,custom_field_settings.custom_field.enum_value,custom_field_settings.custom_field.enum_value.color,custom_field_settings.custom_field.enum_value.enabled,custom_field_settings.custom_field.enum_value.name,custom_field_settings.custom_field.format,custom_field_settings.custom_field.has_notifications_enabled,custom_field_settings.custom_field.id_prefix,custom_field_settings.custom_field.input_restrictions,custom_field_settings.custom_field.is_formula_field,custom_field_settings.custom_field.is_global_to_workspace,custom_field_settings.custom_field.is_value_read_only,custom_field_settings.custom_field.multi_enum_values,custom_field_settings.custom_field.multi_enum_values.color,custom_field_settings.custom_field.multi_enum_values.enabled,custom_field_settings.custom_field.multi_enum_values.name,custom_field_settings.custom_field.name,custom_field_settings.custom_field.number_value,custom_field_settings.custom_field.people_value,custom_field_settings.custom_field.people_value.name,custom_field_settings.custom_field.precision,custom_field_settings.custom_field.privacy_setting,custom_field_settings.custom_field.reference_value,custom_field_settings.custom_field.reference_value.name,custom_field_settings.custom_field.representation_type,custom_field_settings.custom_field.resource_subtype,custom_field_settings.custom_field.text_value,custom_field_settings.custom_field.type,custom_field_settings.is_important,custom_field_settings.parent,custom_field_settings.parent.name,custom_field_settings.project,custom_field_settings.project.name,custom_fields,custom_fields.date_value,custom_fields.date_value.date,custom_fields.date_value.date_time,custom_fields.display_value,custom_fields.enabled,custom_fields.enum_options,custom_fields.enum_options.color,custom_fields.enum_options.enabled,custom_fields.enum_options.name,custom_fields.enum_value,custom_fields.enum_value.color,custom_fields.enum_value.enabled,custom_fields.enum_value.name,custom_fields.id_prefix,custom_fields.input_restrictions,custom_fields.is_formula_field,custom_fields.multi_enum_values,custom_fields.multi_enum_values.color,custom_fields.multi_enum_values.enabled,custom_fields.multi_enum_values.name,custom_fields.name,custom_fields.number_value,custom_fields.representation_type,custom_fields.text_value,custom_fields.type,default_access_level,due_on,members,members.name,name,owner,owner.name,permalink_url,privacy_setting,project_templates,project_templates.name,public,start_on,workspace,workspace.name" }; portfoliosApiInstance.addMembersForPortfolio(body, portfolio_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.portfolios.addMembersForPortfolio(portfolioGid, {field: "value", field: "value", pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class portfolios_api_instance = asana.PortfoliosApi(api_client) body = {"data": {"": "", "": "",}} # dict | Information about the members being added. portfolio_gid = "12345" # str | Globally unique identifier for the portfolio. opts = { 'opt_fields': "archived,color,created_at,created_by,created_by.name,current_status_update,current_status_update.resource_subtype,current_status_update.title,custom_field_settings,custom_field_settings.custom_field,custom_field_settings.custom_field.asana_created_field,custom_field_settings.custom_field.created_by,custom_field_settings.custom_field.created_by.name,custom_field_settings.custom_field.currency_code,custom_field_settings.custom_field.custom_label,custom_field_settings.custom_field.custom_label_position,custom_field_settings.custom_field.date_value,custom_field_settings.custom_field.date_value.date,custom_field_settings.custom_field.date_value.date_time,custom_field_settings.custom_field.default_access_level,custom_field_settings.custom_field.description,custom_field_settings.custom_field.display_value,custom_field_settings.custom_field.enabled,custom_field_settings.custom_field.enum_options,custom_field_settings.custom_field.enum_options.color,custom_field_settings.custom_field.enum_options.enabled,custom_field_settings.custom_field.enum_options.name,custom_field_settings.custom_field.enum_value,custom_field_settings.custom_field.enum_value.color,custom_field_settings.custom_field.enum_value.enabled,custom_field_settings.custom_field.enum_value.name,custom_field_settings.custom_field.format,custom_field_settings.custom_field.has_notifications_enabled,custom_field_settings.custom_field.id_prefix,custom_field_settings.custom_field.input_restrictions,custom_field_settings.custom_field.is_formula_field,custom_field_settings.custom_field.is_global_to_workspace,custom_field_settings.custom_field.is_value_read_only,custom_field_settings.custom_field.multi_enum_values,custom_field_settings.custom_field.multi_enum_values.color,custom_field_settings.custom_field.multi_enum_values.enabled,custom_field_settings.custom_field.multi_enum_values.name,custom_field_settings.custom_field.name,custom_field_settings.custom_field.number_value,custom_field_settings.custom_field.people_value,custom_field_settings.custom_field.people_value.name,custom_field_settings.custom_field.precision,custom_field_settings.custom_field.privacy_setting,custom_field_settings.custom_field.reference_value,custom_field_settings.custom_field.reference_value.name,custom_field_settings.custom_field.representation_type,custom_field_settings.custom_field.resource_subtype,custom_field_settings.custom_field.text_value,custom_field_settings.custom_field.type,custom_field_settings.is_important,custom_field_settings.parent,custom_field_settings.parent.name,custom_field_settings.project,custom_field_settings.project.name,custom_fields,custom_fields.date_value,custom_fields.date_value.date,custom_fields.date_value.date_time,custom_fields.display_value,custom_fields.enabled,custom_fields.enum_options,custom_fields.enum_options.color,custom_fields.enum_options.enabled,custom_fields.enum_options.name,custom_fields.enum_value,custom_fields.enum_value.color,custom_fields.enum_value.enabled,custom_fields.enum_value.name,custom_fields.id_prefix,custom_fields.input_restrictions,custom_fields.is_formula_field,custom_fields.multi_enum_values,custom_fields.multi_enum_values.color,custom_fields.multi_enum_values.enabled,custom_fields.multi_enum_values.name,custom_fields.name,custom_fields.number_value,custom_fields.representation_type,custom_fields.text_value,custom_fields.type,default_access_level,due_on,members,members.name,name,owner,owner.name,permalink_url,privacy_setting,project_templates,project_templates.name,public,start_on,workspace,workspace.name", # list[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. } try: # Add users to a portfolio api_response = portfolios_api_instance.add_members_for_portfolio(body, portfolio_gid, opts) pprint(api_response) except ApiException as e: print("Exception when calling PortfoliosApi->add_members_for_portfolio: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.portfolios.add_members_for_portfolio(portfolio_gid, {'field': 'value', 'field': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- portfolios->addMembersForPortfolio($portfolio_gid, array('field' => 'value', 'field' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.portfolios.add_members_for_portfolio(portfolio_gid: 'portfolio_gid', field: "value", field: "value", options: {pretty: true}) /portfolios/{portfolio_gid}/removeMembers: parameters: - $ref: '#/components/parameters/portfolio_path_gid' - $ref: '#/components/parameters/pretty' post: summary: Remove users from a portfolio description: >- Removes the specified list of users from members of the portfolio. Returns the updated portfolio record. tags: - Portfolios operationId: removeMembersForPortfolio parameters: - name: opt_fields in: query description: 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. required: false example: - archived - color - created_at - created_by - created_by.name - current_status_update - current_status_update.resource_subtype - current_status_update.title - custom_field_settings - custom_field_settings.custom_field - custom_field_settings.custom_field.asana_created_field - custom_field_settings.custom_field.created_by - custom_field_settings.custom_field.created_by.name - custom_field_settings.custom_field.currency_code - custom_field_settings.custom_field.custom_label - custom_field_settings.custom_field.custom_label_position - custom_field_settings.custom_field.date_value - custom_field_settings.custom_field.date_value.date - custom_field_settings.custom_field.date_value.date_time - custom_field_settings.custom_field.default_access_level - custom_field_settings.custom_field.description - custom_field_settings.custom_field.display_value - custom_field_settings.custom_field.enabled - custom_field_settings.custom_field.enum_options - custom_field_settings.custom_field.enum_options.color - custom_field_settings.custom_field.enum_options.enabled - custom_field_settings.custom_field.enum_options.name - custom_field_settings.custom_field.enum_value - custom_field_settings.custom_field.enum_value.color - custom_field_settings.custom_field.enum_value.enabled - custom_field_settings.custom_field.enum_value.name - custom_field_settings.custom_field.format - custom_field_settings.custom_field.has_notifications_enabled - custom_field_settings.custom_field.id_prefix - custom_field_settings.custom_field.input_restrictions - custom_field_settings.custom_field.is_formula_field - custom_field_settings.custom_field.is_global_to_workspace - custom_field_settings.custom_field.is_value_read_only - custom_field_settings.custom_field.multi_enum_values - custom_field_settings.custom_field.multi_enum_values.color - custom_field_settings.custom_field.multi_enum_values.enabled - custom_field_settings.custom_field.multi_enum_values.name - custom_field_settings.custom_field.name - custom_field_settings.custom_field.number_value - custom_field_settings.custom_field.people_value - custom_field_settings.custom_field.people_value.name - custom_field_settings.custom_field.precision - custom_field_settings.custom_field.privacy_setting - custom_field_settings.custom_field.reference_value - custom_field_settings.custom_field.reference_value.name - custom_field_settings.custom_field.representation_type - custom_field_settings.custom_field.resource_subtype - custom_field_settings.custom_field.text_value - custom_field_settings.custom_field.type - custom_field_settings.is_important - custom_field_settings.parent - custom_field_settings.parent.name - custom_field_settings.project - custom_field_settings.project.name - custom_fields - custom_fields.date_value - custom_fields.date_value.date - custom_fields.date_value.date_time - custom_fields.display_value - custom_fields.enabled - custom_fields.enum_options - custom_fields.enum_options.color - custom_fields.enum_options.enabled - custom_fields.enum_options.name - custom_fields.enum_value - custom_fields.enum_value.color - custom_fields.enum_value.enabled - custom_fields.enum_value.name - custom_fields.id_prefix - custom_fields.input_restrictions - custom_fields.is_formula_field - custom_fields.multi_enum_values - custom_fields.multi_enum_values.color - custom_fields.multi_enum_values.enabled - custom_fields.multi_enum_values.name - custom_fields.name - custom_fields.number_value - custom_fields.representation_type - custom_fields.text_value - custom_fields.type - default_access_level - due_on - members - members.name - name - owner - owner.name - permalink_url - privacy_setting - project_templates - project_templates.name - public - start_on - workspace - workspace.name schema: type: array items: type: string enum: - archived - color - created_at - created_by - created_by.name - current_status_update - current_status_update.resource_subtype - current_status_update.title - custom_field_settings - custom_field_settings.custom_field - custom_field_settings.custom_field.asana_created_field - custom_field_settings.custom_field.created_by - custom_field_settings.custom_field.created_by.name - custom_field_settings.custom_field.currency_code - custom_field_settings.custom_field.custom_label - custom_field_settings.custom_field.custom_label_position - custom_field_settings.custom_field.date_value - custom_field_settings.custom_field.date_value.date - custom_field_settings.custom_field.date_value.date_time - custom_field_settings.custom_field.default_access_level - custom_field_settings.custom_field.description - custom_field_settings.custom_field.display_value - custom_field_settings.custom_field.enabled - custom_field_settings.custom_field.enum_options - custom_field_settings.custom_field.enum_options.color - custom_field_settings.custom_field.enum_options.enabled - custom_field_settings.custom_field.enum_options.name - custom_field_settings.custom_field.enum_value - custom_field_settings.custom_field.enum_value.color - custom_field_settings.custom_field.enum_value.enabled - custom_field_settings.custom_field.enum_value.name - custom_field_settings.custom_field.format - custom_field_settings.custom_field.has_notifications_enabled - custom_field_settings.custom_field.id_prefix - custom_field_settings.custom_field.input_restrictions - custom_field_settings.custom_field.is_formula_field - custom_field_settings.custom_field.is_global_to_workspace - custom_field_settings.custom_field.is_value_read_only - custom_field_settings.custom_field.multi_enum_values - custom_field_settings.custom_field.multi_enum_values.color - custom_field_settings.custom_field.multi_enum_values.enabled - custom_field_settings.custom_field.multi_enum_values.name - custom_field_settings.custom_field.name - custom_field_settings.custom_field.number_value - custom_field_settings.custom_field.people_value - custom_field_settings.custom_field.people_value.name - custom_field_settings.custom_field.precision - custom_field_settings.custom_field.privacy_setting - custom_field_settings.custom_field.reference_value - custom_field_settings.custom_field.reference_value.name - custom_field_settings.custom_field.representation_type - custom_field_settings.custom_field.resource_subtype - custom_field_settings.custom_field.text_value - custom_field_settings.custom_field.type - custom_field_settings.is_important - custom_field_settings.parent - custom_field_settings.parent.name - custom_field_settings.project - custom_field_settings.project.name - custom_fields - custom_fields.date_value - custom_fields.date_value.date - custom_fields.date_value.date_time - custom_fields.display_value - custom_fields.enabled - custom_fields.enum_options - custom_fields.enum_options.color - custom_fields.enum_options.enabled - custom_fields.enum_options.name - custom_fields.enum_value - custom_fields.enum_value.color - custom_fields.enum_value.enabled - custom_fields.enum_value.name - custom_fields.id_prefix - custom_fields.input_restrictions - custom_fields.is_formula_field - custom_fields.multi_enum_values - custom_fields.multi_enum_values.color - custom_fields.multi_enum_values.enabled - custom_fields.multi_enum_values.name - custom_fields.name - custom_fields.number_value - custom_fields.representation_type - custom_fields.text_value - custom_fields.type - default_access_level - due_on - members - members.name - name - owner - owner.name - permalink_url - privacy_setting - project_templates - project_templates.name - public - start_on - workspace - workspace.name style: form explode: false requestBody: description: Information about the members being removed. required: true content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/RemoveMembersRequest' responses: 200: description: Successfully removed the members from the portfolio. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/PortfolioResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: [] x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); Portfolio result = client.portfolios.removeMembersForPortfolio(portfolioGid) .data("field", "value") .data("field", "value") .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let portfoliosApiInstance = new Asana.PortfoliosApi(client); let body = {"data": {"": "", "": "",}}; // Object | Information about the members being removed. let portfolio_gid = "12345"; // String | Globally unique identifier for the portfolio. let opts = { 'opt_fields': "archived,color,created_at,created_by,created_by.name,current_status_update,current_status_update.resource_subtype,current_status_update.title,custom_field_settings,custom_field_settings.custom_field,custom_field_settings.custom_field.asana_created_field,custom_field_settings.custom_field.created_by,custom_field_settings.custom_field.created_by.name,custom_field_settings.custom_field.currency_code,custom_field_settings.custom_field.custom_label,custom_field_settings.custom_field.custom_label_position,custom_field_settings.custom_field.date_value,custom_field_settings.custom_field.date_value.date,custom_field_settings.custom_field.date_value.date_time,custom_field_settings.custom_field.default_access_level,custom_field_settings.custom_field.description,custom_field_settings.custom_field.display_value,custom_field_settings.custom_field.enabled,custom_field_settings.custom_field.enum_options,custom_field_settings.custom_field.enum_options.color,custom_field_settings.custom_field.enum_options.enabled,custom_field_settings.custom_field.enum_options.name,custom_field_settings.custom_field.enum_value,custom_field_settings.custom_field.enum_value.color,custom_field_settings.custom_field.enum_value.enabled,custom_field_settings.custom_field.enum_value.name,custom_field_settings.custom_field.format,custom_field_settings.custom_field.has_notifications_enabled,custom_field_settings.custom_field.id_prefix,custom_field_settings.custom_field.input_restrictions,custom_field_settings.custom_field.is_formula_field,custom_field_settings.custom_field.is_global_to_workspace,custom_field_settings.custom_field.is_value_read_only,custom_field_settings.custom_field.multi_enum_values,custom_field_settings.custom_field.multi_enum_values.color,custom_field_settings.custom_field.multi_enum_values.enabled,custom_field_settings.custom_field.multi_enum_values.name,custom_field_settings.custom_field.name,custom_field_settings.custom_field.number_value,custom_field_settings.custom_field.people_value,custom_field_settings.custom_field.people_value.name,custom_field_settings.custom_field.precision,custom_field_settings.custom_field.privacy_setting,custom_field_settings.custom_field.reference_value,custom_field_settings.custom_field.reference_value.name,custom_field_settings.custom_field.representation_type,custom_field_settings.custom_field.resource_subtype,custom_field_settings.custom_field.text_value,custom_field_settings.custom_field.type,custom_field_settings.is_important,custom_field_settings.parent,custom_field_settings.parent.name,custom_field_settings.project,custom_field_settings.project.name,custom_fields,custom_fields.date_value,custom_fields.date_value.date,custom_fields.date_value.date_time,custom_fields.display_value,custom_fields.enabled,custom_fields.enum_options,custom_fields.enum_options.color,custom_fields.enum_options.enabled,custom_fields.enum_options.name,custom_fields.enum_value,custom_fields.enum_value.color,custom_fields.enum_value.enabled,custom_fields.enum_value.name,custom_fields.id_prefix,custom_fields.input_restrictions,custom_fields.is_formula_field,custom_fields.multi_enum_values,custom_fields.multi_enum_values.color,custom_fields.multi_enum_values.enabled,custom_fields.multi_enum_values.name,custom_fields.name,custom_fields.number_value,custom_fields.representation_type,custom_fields.text_value,custom_fields.type,default_access_level,due_on,members,members.name,name,owner,owner.name,permalink_url,privacy_setting,project_templates,project_templates.name,public,start_on,workspace,workspace.name" }; portfoliosApiInstance.removeMembersForPortfolio(body, portfolio_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.portfolios.removeMembersForPortfolio(portfolioGid, {field: "value", field: "value", pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class portfolios_api_instance = asana.PortfoliosApi(api_client) body = {"data": {"": "", "": "",}} # dict | Information about the members being removed. portfolio_gid = "12345" # str | Globally unique identifier for the portfolio. opts = { 'opt_fields': "archived,color,created_at,created_by,created_by.name,current_status_update,current_status_update.resource_subtype,current_status_update.title,custom_field_settings,custom_field_settings.custom_field,custom_field_settings.custom_field.asana_created_field,custom_field_settings.custom_field.created_by,custom_field_settings.custom_field.created_by.name,custom_field_settings.custom_field.currency_code,custom_field_settings.custom_field.custom_label,custom_field_settings.custom_field.custom_label_position,custom_field_settings.custom_field.date_value,custom_field_settings.custom_field.date_value.date,custom_field_settings.custom_field.date_value.date_time,custom_field_settings.custom_field.default_access_level,custom_field_settings.custom_field.description,custom_field_settings.custom_field.display_value,custom_field_settings.custom_field.enabled,custom_field_settings.custom_field.enum_options,custom_field_settings.custom_field.enum_options.color,custom_field_settings.custom_field.enum_options.enabled,custom_field_settings.custom_field.enum_options.name,custom_field_settings.custom_field.enum_value,custom_field_settings.custom_field.enum_value.color,custom_field_settings.custom_field.enum_value.enabled,custom_field_settings.custom_field.enum_value.name,custom_field_settings.custom_field.format,custom_field_settings.custom_field.has_notifications_enabled,custom_field_settings.custom_field.id_prefix,custom_field_settings.custom_field.input_restrictions,custom_field_settings.custom_field.is_formula_field,custom_field_settings.custom_field.is_global_to_workspace,custom_field_settings.custom_field.is_value_read_only,custom_field_settings.custom_field.multi_enum_values,custom_field_settings.custom_field.multi_enum_values.color,custom_field_settings.custom_field.multi_enum_values.enabled,custom_field_settings.custom_field.multi_enum_values.name,custom_field_settings.custom_field.name,custom_field_settings.custom_field.number_value,custom_field_settings.custom_field.people_value,custom_field_settings.custom_field.people_value.name,custom_field_settings.custom_field.precision,custom_field_settings.custom_field.privacy_setting,custom_field_settings.custom_field.reference_value,custom_field_settings.custom_field.reference_value.name,custom_field_settings.custom_field.representation_type,custom_field_settings.custom_field.resource_subtype,custom_field_settings.custom_field.text_value,custom_field_settings.custom_field.type,custom_field_settings.is_important,custom_field_settings.parent,custom_field_settings.parent.name,custom_field_settings.project,custom_field_settings.project.name,custom_fields,custom_fields.date_value,custom_fields.date_value.date,custom_fields.date_value.date_time,custom_fields.display_value,custom_fields.enabled,custom_fields.enum_options,custom_fields.enum_options.color,custom_fields.enum_options.enabled,custom_fields.enum_options.name,custom_fields.enum_value,custom_fields.enum_value.color,custom_fields.enum_value.enabled,custom_fields.enum_value.name,custom_fields.id_prefix,custom_fields.input_restrictions,custom_fields.is_formula_field,custom_fields.multi_enum_values,custom_fields.multi_enum_values.color,custom_fields.multi_enum_values.enabled,custom_fields.multi_enum_values.name,custom_fields.name,custom_fields.number_value,custom_fields.representation_type,custom_fields.text_value,custom_fields.type,default_access_level,due_on,members,members.name,name,owner,owner.name,permalink_url,privacy_setting,project_templates,project_templates.name,public,start_on,workspace,workspace.name", # list[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. } try: # Remove users from a portfolio api_response = portfolios_api_instance.remove_members_for_portfolio(body, portfolio_gid, opts) pprint(api_response) except ApiException as e: print("Exception when calling PortfoliosApi->remove_members_for_portfolio: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.portfolios.remove_members_for_portfolio(portfolio_gid, {'field': 'value', 'field': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- portfolios->removeMembersForPortfolio($portfolio_gid, array('field' => 'value', 'field' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.portfolios.remove_members_for_portfolio(portfolio_gid: 'portfolio_gid', field: "value", field: "value", options: {pretty: true}) /project_briefs/{project_brief_gid}: parameters: - $ref: '#/components/parameters/project_brief_path_gid' - $ref: '#/components/parameters/pretty' get: summary: Get a project brief description: Get the full record for a project brief. tags: - Project briefs operationId: getProjectBrief parameters: - name: opt_fields in: query description: 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. required: false example: - html_text - permalink_url - project - project.name - text - title schema: type: array items: type: string enum: - html_text - permalink_url - project - project.name - text - title style: form explode: false responses: 200: description: Successfully retrieved the record for a project brief. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/ProjectBriefResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 402: $ref: '#/components/responses/PaymentRequired' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 424: $ref: '#/components/responses/TooManyRequests' 500: $ref: '#/components/responses/InternalServerError' 501: $ref: '#/components/responses/BadGateway' 503: $ref: '#/components/responses/ServiceUnavailable' 504: $ref: '#/components/responses/GatewayTimeout' security: - personalAccessToken: [] - oauth2: [] x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); JsonElement result = client.projectbriefs.getProjectBrief(projectBriefGid) .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let projectBriefsApiInstance = new Asana.ProjectBriefsApi(client); let project_brief_gid = "12345"; // String | Globally unique identifier for the project brief. let opts = { 'opt_fields': "html_text,permalink_url,project,project.name,text,title" }; projectBriefsApiInstance.getProjectBrief(project_brief_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.projectbriefs.getProjectBrief(projectBriefGid, {param: "value", param: "value", opt_pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class project_briefs_api_instance = asana.ProjectBriefsApi(api_client) project_brief_gid = "12345" # str | Globally unique identifier for the project brief. opts = { 'opt_fields': "html_text,permalink_url,project,project.name,text,title", # list[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. } try: # Get a project brief api_response = project_briefs_api_instance.get_project_brief(project_brief_gid, opts) pprint(api_response) except ApiException as e: print("Exception when calling ProjectBriefsApi->get_project_brief: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.project_briefs.get_project_brief(project_brief_gid, {'param': 'value', 'param': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- projectbriefs->getProjectBrief($project_brief_gid, array('param' => 'value', 'param' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.project_briefs.get_project_brief(project_brief_gid: 'project_brief_gid', param: "value", param: "value", options: {pretty: true}) put: summary: Update a project brief description: |- An existing project brief can be updated by making a PUT request on the URL for that project brief. Only the fields provided in the `data` block will be updated; any unspecified fields will remain unchanged. Returns the complete updated project brief record. tags: - Project briefs operationId: updateProjectBrief parameters: - name: opt_fields in: query description: 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. required: false example: - html_text - permalink_url - project - project.name - text - title schema: type: array items: type: string enum: - html_text - permalink_url - project - project.name - text - title style: form explode: false requestBody: description: The updated fields for the project brief. required: true content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/ProjectBriefRequest' responses: 200: description: Successfully updated the project brief. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/ProjectBriefResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: [] x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); JsonElement result = client.projectbriefs.updateProjectBrief(projectBriefGid) .data("field", "value") .data("field", "value") .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let projectBriefsApiInstance = new Asana.ProjectBriefsApi(client); let body = {"data": {"": "", "": "",}}; // Object | The updated fields for the project brief. let project_brief_gid = "12345"; // String | Globally unique identifier for the project brief. let opts = { 'opt_fields': "html_text,permalink_url,project,project.name,text,title" }; projectBriefsApiInstance.updateProjectBrief(body, project_brief_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.projectbriefs.updateProjectBrief(projectBriefGid, {field: "value", field: "value", pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class project_briefs_api_instance = asana.ProjectBriefsApi(api_client) body = {"data": {"": "", "": "",}} # dict | The updated fields for the project brief. project_brief_gid = "12345" # str | Globally unique identifier for the project brief. opts = { 'opt_fields': "html_text,permalink_url,project,project.name,text,title", # list[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. } try: # Update a project brief api_response = project_briefs_api_instance.update_project_brief(body, project_brief_gid, opts) pprint(api_response) except ApiException as e: print("Exception when calling ProjectBriefsApi->update_project_brief: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.project_briefs.update_project_brief(project_brief_gid, {'field': 'value', 'field': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- projectbriefs->updateProjectBrief($project_brief_gid, array('field' => 'value', 'field' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.project_briefs.update_project_brief(project_brief_gid: 'project_brief_gid', field: "value", field: "value", options: {pretty: true}) delete: summary: Delete a project brief description: |- Deletes a specific, existing project brief. Returns an empty data record. tags: - Project briefs operationId: deleteProjectBrief responses: 200: description: Successfully deleted the specified project brief. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/EmptyResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: [] x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); JsonElement result = client.projectbriefs.deleteProjectBrief(projectBriefGid) .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let projectBriefsApiInstance = new Asana.ProjectBriefsApi(client); let project_brief_gid = "12345"; // String | Globally unique identifier for the project brief. projectBriefsApiInstance.deleteProjectBrief(project_brief_gid).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.projectbriefs.deleteProjectBrief(projectBriefGid) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class project_briefs_api_instance = asana.ProjectBriefsApi(api_client) project_brief_gid = "12345" # str | Globally unique identifier for the project brief. try: # Delete a project brief api_response = project_briefs_api_instance.delete_project_brief(project_brief_gid) pprint(api_response) except ApiException as e: print("Exception when calling ProjectBriefsApi->delete_project_brief: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.project_briefs.delete_project_brief(project_brief_gid, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- projectbriefs->deleteProjectBrief($project_brief_gid, array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.project_briefs.delete_project_brief(project_brief_gid: 'project_brief_gid', options: {pretty: true}) /projects/{project_gid}/project_briefs: parameters: - $ref: '#/components/parameters/project_path_gid' - $ref: '#/components/parameters/pretty' post: summary: Create a project brief description: |- Creates a new project brief. Returns the full record of the newly created project brief. tags: - Project briefs operationId: createProjectBrief parameters: - name: opt_fields in: query description: 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. required: false example: - html_text - permalink_url - project - project.name - text - title schema: type: array items: type: string enum: - html_text - permalink_url - project - project.name - text - title style: form explode: false requestBody: description: The project brief to create. required: true content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/ProjectBriefRequest' responses: 201: description: Successfully created a new project brief. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/ProjectBriefResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 402: $ref: '#/components/responses/PaymentRequired' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: [] x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); JsonElement result = client.projectbriefs.createProjectBrief(projectGid) .data("field", "value") .data("field", "value") .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let projectBriefsApiInstance = new Asana.ProjectBriefsApi(client); let body = {"data": {"": "", "": "",}}; // Object | The project brief to create. let project_gid = "1331"; // String | Globally unique identifier for the project. let opts = { 'opt_fields': "html_text,permalink_url,project,project.name,text,title" }; projectBriefsApiInstance.createProjectBrief(body, project_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.projectbriefs.createProjectBrief(projectGid, {field: "value", field: "value", pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class project_briefs_api_instance = asana.ProjectBriefsApi(api_client) body = {"data": {"": "", "": "",}} # dict | The project brief to create. project_gid = "1331" # str | Globally unique identifier for the project. opts = { 'opt_fields': "html_text,permalink_url,project,project.name,text,title", # list[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. } try: # Create a project brief api_response = project_briefs_api_instance.create_project_brief(body, project_gid, opts) pprint(api_response) except ApiException as e: print("Exception when calling ProjectBriefsApi->create_project_brief: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.project_briefs.create_project_brief(project_gid, {'field': 'value', 'field': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- projectbriefs->createProjectBrief($project_gid, array('field' => 'value', 'field' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.project_briefs.create_project_brief(project_gid: 'project_gid', field: "value", field: "value", options: {pretty: true}) /project_memberships/{project_membership_gid}: parameters: - $ref: '#/components/parameters/project_membership_path_gid' - $ref: '#/components/parameters/pretty' get: summary: Get a project membership description: >- Returns the complete project record for a single project membership. tags: - Project memberships operationId: getProjectMembership parameters: - name: opt_fields in: query description: 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. required: false example: - access_level - member - member.name - parent - parent.name - project - project.name - user - user.name - write_access schema: type: array items: type: string enum: - access_level - member - member.name - parent - parent.name - project - project.name - user - user.name - write_access style: form explode: false responses: 200: description: >- Successfully retrieved the requested project membership. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/ProjectMembershipNormalResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: [] x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); ProjectMembership result = client.projectmemberships.getProjectMembership(projectMembershipGid) .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let projectMembershipsApiInstance = new Asana.ProjectMembershipsApi(client); let project_membership_gid = "1331"; // String | let opts = { 'opt_fields': "access_level,member,member.name,parent,parent.name,project,project.name,user,user.name,write_access" }; projectMembershipsApiInstance.getProjectMembership(project_membership_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.projectmemberships.getProjectMembership(projectMembershipGid, {param: "value", param: "value", opt_pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class project_memberships_api_instance = asana.ProjectMembershipsApi(api_client) project_membership_gid = "1331" # str | opts = { 'opt_fields': "access_level,member,member.name,parent,parent.name,project,project.name,user,user.name,write_access", # list[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. } try: # Get a project membership api_response = project_memberships_api_instance.get_project_membership(project_membership_gid, opts) pprint(api_response) except ApiException as e: print("Exception when calling ProjectMembershipsApi->get_project_membership: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.project_memberships.get_project_membership(project_membership_gid, {'param': 'value', 'param': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- projectmemberships->getProjectMembership($project_membership_gid, array('param' => 'value', 'param' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.project_memberships.get_project_membership(project_membership_gid: 'project_membership_gid', param: "value", param: "value", options: {pretty: true}) /projects/{project_gid}/project_memberships: parameters: - $ref: '#/components/parameters/project_path_gid' - $ref: '#/components/parameters/user_query_param' - $ref: '#/components/parameters/pretty' - $ref: '#/components/parameters/limit' - $ref: '#/components/parameters/offset' get: summary: Get memberships from a project description: >- Returns the compact project membership records for the project. tags: - Project memberships operationId: getProjectMembershipsForProject parameters: - name: opt_fields in: query description: 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. required: false example: - access_level - member - member.name - offset - parent - parent.name - path - uri schema: type: array items: type: string enum: - access_level - member - member.name - offset - parent - parent.name - path - uri style: form explode: false responses: 200: description: >- Successfully retrieved the requested project's memberships. content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/ProjectMembershipCompact' next_page: $ref: '#/components/schemas/NextPage' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: [] x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); List result = client.projectmemberships.getProjectMembershipsForProject(projectGid, user) .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let projectMembershipsApiInstance = new Asana.ProjectMembershipsApi(client); let project_gid = "1331"; // String | Globally unique identifier for the project. let opts = { 'user': "me", 'limit': 50, 'offset': "eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9", 'opt_fields': "access_level,member,member.name,offset,parent,parent.name,path,uri" }; projectMembershipsApiInstance.getProjectMembershipsForProject(project_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.projectmemberships.getProjectMembershipsForProject(projectGid, {param: "value", param: "value", opt_pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class project_memberships_api_instance = asana.ProjectMembershipsApi(api_client) project_gid = "1331" # str | Globally unique identifier for the project. opts = { 'user': "me", # str | A string identifying a user. This can either be the string \"me\", an email, or the gid of a user. 'limit': 50, # int | Results per page. The number of objects to return per page. The value must be between 1 and 100. 'offset': "eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9", # 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': "access_level,member,member.name,offset,parent,parent.name,path,uri", # list[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. } try: # Get memberships from a project api_response = project_memberships_api_instance.get_project_memberships_for_project(project_gid, opts) for data in api_response: pprint(data) except ApiException as e: print("Exception when calling ProjectMembershipsApi->get_project_memberships_for_project: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.project_memberships.get_project_memberships_for_project(project_gid, {'param': 'value', 'param': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- projectmemberships->getProjectMembershipsForProject($project_gid, array('param' => 'value', 'param' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.project_memberships.get_project_memberships_for_project(project_gid: 'project_gid', param: "value", param: "value", options: {pretty: true}) /project_statuses/{project_status_gid}: parameters: - $ref: '#/components/parameters/project_status_path_gid' - $ref: '#/components/parameters/pretty' get: summary: Get a project status description: |- *Deprecated: new integrations should prefer the `/status_updates/{status_gid}` route.* Returns the complete record for a single status update. tags: - Project statuses operationId: getProjectStatus parameters: - name: opt_fields in: query description: 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. required: false example: - author - author.name - color - created_at - created_by - created_by.name - html_text - modified_at - text - title schema: type: array items: type: string enum: - author - author.name - color - created_at - created_by - created_by.name - html_text - modified_at - text - title style: form explode: false responses: 200: description: Successfully retrieved the specified project's status updates. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/ProjectStatusResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: [] x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); ProjectStatus result = client.projectstatuses.getProjectStatus(projectStatusGid) .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let projectStatusesApiInstance = new Asana.ProjectStatusesApi(client); let project_status_gid = "321654"; // String | The project status update to get. let opts = { 'opt_fields': "author,author.name,color,created_at,created_by,created_by.name,html_text,modified_at,text,title" }; projectStatusesApiInstance.getProjectStatus(project_status_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.projectstatuses.getProjectStatus(projectStatusGid, {param: "value", param: "value", opt_pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class project_statuses_api_instance = asana.ProjectStatusesApi(api_client) project_status_gid = "321654" # str | The project status update to get. opts = { 'opt_fields': "author,author.name,color,created_at,created_by,created_by.name,html_text,modified_at,text,title", # list[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. } try: # Get a project status api_response = project_statuses_api_instance.get_project_status(project_status_gid, opts) pprint(api_response) except ApiException as e: print("Exception when calling ProjectStatusesApi->get_project_status: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.project_statuses.get_project_status(project_status_gid, {'param': 'value', 'param': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- projectstatuses->getProjectStatus($project_status_gid, array('param' => 'value', 'param' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.project_statuses.get_project_status(project_status_gid: 'project_status_gid', param: "value", param: "value", options: {pretty: true}) delete: summary: Delete a project status description: |- *Deprecated: new integrations should prefer the `/status_updates/{status_gid}` route.* Deletes a specific, existing project status update. Returns an empty data record. tags: - Project statuses operationId: deleteProjectStatus responses: 200: description: Successfully deleted the specified project status. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/EmptyResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: [] x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); JsonElement result = client.projectstatuses.deleteProjectStatus(projectStatusGid) .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let projectStatusesApiInstance = new Asana.ProjectStatusesApi(client); let project_status_gid = "321654"; // String | The project status update to get. projectStatusesApiInstance.deleteProjectStatus(project_status_gid).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.projectstatuses.deleteProjectStatus(projectStatusGid) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class project_statuses_api_instance = asana.ProjectStatusesApi(api_client) project_status_gid = "321654" # str | The project status update to get. try: # Delete a project status api_response = project_statuses_api_instance.delete_project_status(project_status_gid) pprint(api_response) except ApiException as e: print("Exception when calling ProjectStatusesApi->delete_project_status: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.project_statuses.delete_project_status(project_status_gid, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- projectstatuses->deleteProjectStatus($project_status_gid, array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.project_statuses.delete_project_status(project_status_gid: 'project_status_gid', options: {pretty: true}) /projects/{project_gid}/project_statuses: parameters: - $ref: '#/components/parameters/project_path_gid' - $ref: '#/components/parameters/pretty' get: summary: Get statuses from a project description: |- *Deprecated: new integrations should prefer the `/status_updates` route.* Returns the compact project status update records for all updates on the project. tags: - Project statuses operationId: getProjectStatusesForProject parameters: - $ref: '#/components/parameters/project_path_gid' - $ref: '#/components/parameters/pretty' - $ref: '#/components/parameters/limit' - $ref: '#/components/parameters/offset' - name: opt_fields in: query description: 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. required: false example: - author - author.name - color - created_at - created_by - created_by.name - html_text - modified_at - offset - path - text - title - uri schema: type: array items: type: string enum: - author - author.name - color - created_at - created_by - created_by.name - html_text - modified_at - offset - path - text - title - uri style: form explode: false responses: 200: description: Successfully retrieved the specified project's status updates. content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/ProjectStatusCompact' next_page: $ref: '#/components/schemas/NextPage' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: [] x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); List result = client.projectstatuses.getProjectStatusesForProject(projectGid) .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let projectStatusesApiInstance = new Asana.ProjectStatusesApi(client); let project_gid = "1331"; // String | Globally unique identifier for the project. let opts = { 'limit': 50, 'offset': "eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9", 'opt_fields': "author,author.name,color,created_at,created_by,created_by.name,html_text,modified_at,offset,path,text,title,uri" }; projectStatusesApiInstance.getProjectStatusesForProject(project_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.projectstatuses.getProjectStatusesForProject(projectGid, {param: "value", param: "value", opt_pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class project_statuses_api_instance = asana.ProjectStatusesApi(api_client) project_gid = "1331" # str | Globally unique identifier for the project. opts = { 'limit': 50, # int | Results per page. The number of objects to return per page. The value must be between 1 and 100. 'offset': "eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9", # 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': "author,author.name,color,created_at,created_by,created_by.name,html_text,modified_at,offset,path,text,title,uri", # list[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. } try: # Get statuses from a project api_response = project_statuses_api_instance.get_project_statuses_for_project(project_gid, opts) for data in api_response: pprint(data) except ApiException as e: print("Exception when calling ProjectStatusesApi->get_project_statuses_for_project: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.project_statuses.get_project_statuses_for_project(project_gid, {'param': 'value', 'param': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- projectstatuses->getProjectStatusesForProject($project_gid, array('param' => 'value', 'param' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.project_statuses.get_project_statuses_for_project(project_gid: 'project_gid', param: "value", param: "value", options: {pretty: true}) post: summary: Create a project status description: |- *Deprecated: new integrations should prefer the `/status_updates` route.* Creates a new status update on the project. Returns the full record of the newly created project status update. tags: - Project statuses operationId: createProjectStatusForProject parameters: - name: opt_fields in: query description: 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. required: false example: - author - author.name - color - created_at - created_by - created_by.name - html_text - modified_at - text - title schema: type: array items: type: string enum: - author - author.name - color - created_at - created_by - created_by.name - html_text - modified_at - text - title style: form explode: false requestBody: description: The project status to create. required: true content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/ProjectStatusRequest' responses: 201: description: Successfully created a new story. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/ProjectStatusResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: [] x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); ProjectStatus result = client.projectstatuses.createProjectStatusForProject(projectGid) .data("field", "value") .data("field", "value") .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let projectStatusesApiInstance = new Asana.ProjectStatusesApi(client); let body = {"data": {"": "", "": "",}}; // Object | The project status to create. let project_gid = "1331"; // String | Globally unique identifier for the project. let opts = { 'opt_fields': "author,author.name,color,created_at,created_by,created_by.name,html_text,modified_at,text,title" }; projectStatusesApiInstance.createProjectStatusForProject(body, project_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.projectstatuses.createProjectStatusForProject(projectGid, {field: "value", field: "value", pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class project_statuses_api_instance = asana.ProjectStatusesApi(api_client) body = {"data": {"": "", "": "",}} # dict | The project status to create. project_gid = "1331" # str | Globally unique identifier for the project. opts = { 'opt_fields': "author,author.name,color,created_at,created_by,created_by.name,html_text,modified_at,text,title", # list[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. } try: # Create a project status api_response = project_statuses_api_instance.create_project_status_for_project(body, project_gid, opts) pprint(api_response) except ApiException as e: print("Exception when calling ProjectStatusesApi->create_project_status_for_project: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.project_statuses.create_project_status_for_project(project_gid, {'field': 'value', 'field': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- projectstatuses->createProjectStatusForProject($project_gid, array('field' => 'value', 'field' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.project_statuses.create_project_status_for_project(project_gid: 'project_gid', field: "value", field: "value", options: {pretty: true}) /project_templates/{project_template_gid}: parameters: - $ref: '#/components/parameters/project_template_path_gid' - $ref: '#/components/parameters/pretty' get: summary: Get a project template description: |- Required scope: project_templates:read Returns the complete project template record for a single project template. tags: - Project templates operationId: getProjectTemplate parameters: - name: opt_fields in: query description: 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. required: false example: - color - description - html_description - name - owner - public - requested_dates - requested_dates.description - requested_dates.name - requested_roles - requested_roles.name - team - team.name schema: type: array items: type: string enum: - color - description - html_description - name - owner - public - requested_dates - requested_dates.description - requested_dates.name - requested_roles - requested_roles.name - team - team.name style: form explode: false responses: 200: description: Successfully retrieved the requested project template. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/ProjectTemplateResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: - project_templates:read x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); JsonElement result = client.projecttemplates.getProjectTemplate(projectTemplateGid) .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let projectTemplatesApiInstance = new Asana.ProjectTemplatesApi(client); let project_template_gid = "1331"; // String | Globally unique identifier for the project template. let opts = { 'opt_fields': "color,description,html_description,name,owner,public,requested_dates,requested_dates.description,requested_dates.name,requested_roles,requested_roles.name,team,team.name" }; projectTemplatesApiInstance.getProjectTemplate(project_template_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.projecttemplates.getProjectTemplate(projectTemplateGid, {param: "value", param: "value", opt_pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class project_templates_api_instance = asana.ProjectTemplatesApi(api_client) project_template_gid = "1331" # str | Globally unique identifier for the project template. opts = { 'opt_fields': "color,description,html_description,name,owner,public,requested_dates,requested_dates.description,requested_dates.name,requested_roles,requested_roles.name,team,team.name", # list[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. } try: # Get a project template api_response = project_templates_api_instance.get_project_template(project_template_gid, opts) pprint(api_response) except ApiException as e: print("Exception when calling ProjectTemplatesApi->get_project_template: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.project_templates.get_project_template(project_template_gid, {'param': 'value', 'param': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- projecttemplates->getProjectTemplate($project_template_gid, array('param' => 'value', 'param' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.project_templates.get_project_template(project_template_gid: 'project_template_gid', param: "value", param: "value", options: {pretty: true}) delete: summary: Delete a project template description: |- A specific, existing project template can be deleted by making a DELETE request on the URL for that project template. Returns an empty data record. tags: - Project templates operationId: deleteProjectTemplate responses: 200: description: Successfully deleted the specified project template. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/EmptyResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 402: $ref: '#/components/responses/PaymentRequired' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: [] x-readme: code-samples: - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let projectTemplatesApiInstance = new Asana.ProjectTemplatesApi(client); let project_template_gid = "1331"; // String | Globally unique identifier for the project template. projectTemplatesApiInstance.deleteProjectTemplate(project_template_gid).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.projecttemplates.deleteProjectTemplate(projectTemplateGid) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class project_templates_api_instance = asana.ProjectTemplatesApi(api_client) project_template_gid = "1331" # str | Globally unique identifier for the project template. try: # Delete a project template api_response = project_templates_api_instance.delete_project_template(project_template_gid) pprint(api_response) except ApiException as e: print("Exception when calling ProjectTemplatesApi->delete_project_template: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.project_templates.delete_project_template(project_template_gid, opt_pretty=True) name: python-sdk-v3 /project_templates: parameters: - $ref: '#/components/parameters/pretty' get: summary: Get multiple project templates description: |- Required scope: project_templates:read Returns the compact project template records for all project templates in the given team or workspace. tags: - Project templates operationId: getProjectTemplates parameters: - $ref: '#/components/parameters/workspace_query_param' - $ref: '#/components/parameters/team_query_param' - $ref: '#/components/parameters/limit' - $ref: '#/components/parameters/offset' - name: opt_fields in: query description: 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. required: false example: - color - description - html_description - name - offset - owner - path - public - requested_dates - requested_dates.description - requested_dates.name - requested_roles - requested_roles.name - team - team.name - uri schema: type: array items: type: string enum: - color - description - html_description - name - offset - owner - path - public - requested_dates - requested_dates.description - requested_dates.name - requested_roles - requested_roles.name - team - team.name - uri style: form explode: false responses: 200: description: Successfully retrieved the requested team's or workspace's project templates. content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/ProjectTemplateCompact' next_page: $ref: '#/components/schemas/NextPage' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: - project_templates:read x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); List result = client.projecttemplates.getProjectTemplates(team, workspace) .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let projectTemplatesApiInstance = new Asana.ProjectTemplatesApi(client); let opts = { 'workspace': "12345", 'team': "14916", 'limit': 50, 'offset': "eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9", 'opt_fields': "color,description,html_description,name,offset,owner,path,public,requested_dates,requested_dates.description,requested_dates.name,requested_roles,requested_roles.name,team,team.name,uri" }; projectTemplatesApiInstance.getProjectTemplates(opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.projecttemplates.getProjectTemplates({param: "value", param: "value", opt_pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class project_templates_api_instance = asana.ProjectTemplatesApi(api_client) opts = { 'workspace': "12345", # str | The workspace to filter results on. 'team': "14916", # str | The team to filter projects on. 'limit': 50, # int | Results per page. The number of objects to return per page. The value must be between 1 and 100. 'offset': "eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9", # 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': "color,description,html_description,name,offset,owner,path,public,requested_dates,requested_dates.description,requested_dates.name,requested_roles,requested_roles.name,team,team.name,uri", # list[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. } try: # Get multiple project templates api_response = project_templates_api_instance.get_project_templates(opts) for data in api_response: pprint(data) except ApiException as e: print("Exception when calling ProjectTemplatesApi->get_project_templates: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.project_templates.get_project_templates({'param': 'value', 'param': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- projecttemplates->getProjectTemplates(array('param' => 'value', 'param' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.project_templates.get_project_templates(param: "value", param: "value", options: {pretty: true}) /teams/{team_gid}/project_templates: parameters: - $ref: '#/components/parameters/team_path_gid' - $ref: '#/components/parameters/pretty' get: summary: Get a team's project templates description: |- Required scope: project_templates:read Returns the compact project template records for all project templates in the team. tags: - Project templates operationId: getProjectTemplatesForTeam parameters: - $ref: '#/components/parameters/limit' - $ref: '#/components/parameters/offset' - name: opt_fields in: query description: 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. required: false example: - color - description - html_description - name - offset - owner - path - public - requested_dates - requested_dates.description - requested_dates.name - requested_roles - requested_roles.name - team - team.name - uri schema: type: array items: type: string enum: - color - description - html_description - name - offset - owner - path - public - requested_dates - requested_dates.description - requested_dates.name - requested_roles - requested_roles.name - team - team.name - uri style: form explode: false responses: 200: description: Successfully retrieved the requested team's project templates. content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/ProjectTemplateCompact' next_page: $ref: '#/components/schemas/NextPage' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: - project_templates:read x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); List result = client.projecttemplates.getProjectTemplatesForTeam(teamGid) .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let projectTemplatesApiInstance = new Asana.ProjectTemplatesApi(client); let team_gid = "159874"; // String | Globally unique identifier for the team. let opts = { 'limit': 50, 'offset': "eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9", 'opt_fields': "color,description,html_description,name,offset,owner,path,public,requested_dates,requested_dates.description,requested_dates.name,requested_roles,requested_roles.name,team,team.name,uri" }; projectTemplatesApiInstance.getProjectTemplatesForTeam(team_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.projecttemplates.getProjectTemplatesForTeam(teamGid, {param: "value", param: "value", opt_pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class project_templates_api_instance = asana.ProjectTemplatesApi(api_client) team_gid = "159874" # str | Globally unique identifier for the team. opts = { 'limit': 50, # int | Results per page. The number of objects to return per page. The value must be between 1 and 100. 'offset': "eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9", # 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': "color,description,html_description,name,offset,owner,path,public,requested_dates,requested_dates.description,requested_dates.name,requested_roles,requested_roles.name,team,team.name,uri", # list[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. } try: # Get a team's project templates api_response = project_templates_api_instance.get_project_templates_for_team(team_gid, opts) for data in api_response: pprint(data) except ApiException as e: print("Exception when calling ProjectTemplatesApi->get_project_templates_for_team: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.project_templates.get_project_templates_for_team(team_gid, {'param': 'value', 'param': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- projecttemplates->getProjectTemplatesForTeam($team_gid, array('param' => 'value', 'param' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.project_templates.get_project_templates_for_team(team_gid: 'team_gid', param: "value", param: "value", options: {pretty: true}) /project_templates/{project_template_gid}/instantiateProject: parameters: - $ref: '#/components/parameters/project_template_path_gid' - $ref: '#/components/parameters/pretty' post: summary: Instantiate a project from a project template description: |- Required scope: projects:write Creates and returns a job that will asynchronously handle the project instantiation. To form this request, it is recommended to first make a request to [get a project template](/reference/getprojecttemplate). Then, from the response, copy the `gid` from the object in the `requested_dates` array. This `gid` should be used in `requested_dates` to instantiate a project. _Note: The body of this request will differ if your workspace is an organization. To determine if your workspace is an organization, use the [is_organization](/reference/workspaces) parameter._ tags: - Project templates operationId: instantiateProject parameters: - name: opt_fields in: query description: 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. required: false example: - new_graph_export - new_graph_export.completed_at - new_graph_export.created_at - new_graph_export.download_url - new_project - new_project.name - new_project_template - new_project_template.name - new_resource_export - new_resource_export.completed_at - new_resource_export.created_at - new_resource_export.download_url - new_task - new_task.created_by - new_task.name - new_task.resource_subtype - resource_subtype - status schema: type: array items: type: string enum: - new_graph_export - new_graph_export.completed_at - new_graph_export.created_at - new_graph_export.download_url - new_project - new_project.name - new_project_template - new_project_template.name - new_resource_export - new_resource_export.completed_at - new_resource_export.created_at - new_resource_export.download_url - new_task - new_task.created_by - new_task.name - new_task.resource_subtype - resource_subtype - status style: form explode: false requestBody: description: >- Describes the inputs used for instantiating a project, such as the resulting project's name, which team it should be created in, and values for date variables. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/ProjectTemplateInstantiateProjectRequest' responses: 201: description: Successfully created the job to handle project instantiation. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/JobResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: - projects:write x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); Job result = client.projecttemplates.instantiateProject(projectTemplateGid) .data("field", "value") .data("field", "value") .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let projectTemplatesApiInstance = new Asana.ProjectTemplatesApi(client); let project_template_gid = "1331"; // String | Globally unique identifier for the project template. let opts = { 'body': {"data": {"": "", "": "",}}, 'opt_fields': "new_graph_export,new_graph_export.completed_at,new_graph_export.created_at,new_graph_export.download_url,new_project,new_project.name,new_project_template,new_project_template.name,new_resource_export,new_resource_export.completed_at,new_resource_export.created_at,new_resource_export.download_url,new_task,new_task.created_by,new_task.name,new_task.resource_subtype,resource_subtype,status" }; projectTemplatesApiInstance.instantiateProject(project_template_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.projecttemplates.instantiateProject(projectTemplateGid, {field: "value", field: "value", pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class project_templates_api_instance = asana.ProjectTemplatesApi(api_client) project_template_gid = "1331" # str | Globally unique identifier for the project template. opts = { 'body': {"data": {"": "", "": "",}}, # dict | Describes the inputs used for instantiating a project, such as the resulting project's name, which team it should be created in, and values for date variables. 'opt_fields': "new_graph_export,new_graph_export.completed_at,new_graph_export.created_at,new_graph_export.download_url,new_project,new_project.name,new_project_template,new_project_template.name,new_resource_export,new_resource_export.completed_at,new_resource_export.created_at,new_resource_export.download_url,new_task,new_task.created_by,new_task.name,new_task.resource_subtype,resource_subtype,status", # list[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. } try: # Instantiate a project from a project template api_response = project_templates_api_instance.instantiate_project(project_template_gid, opts) pprint(api_response) except ApiException as e: print("Exception when calling ProjectTemplatesApi->instantiate_project: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.project_templates.instantiate_project(project_template_gid, {'field': 'value', 'field': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- projecttemplates->instantiateProject($project_template_gid, array('field' => 'value', 'field' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.project_templates.instantiate_project(project_template_gid: 'project_template_gid', field: "value", field: "value", options: {pretty: true}) /projects: parameters: - $ref: '#/components/parameters/pretty' get: summary: Get multiple projects description: |- Required scope: projects:read Returns the compact project records for some filtered set of projects. Use one or more of the parameters provided to filter the projects returned. *Note: This endpoint may timeout for large domains. Try filtering by team!* **The `team` filter is deprecated.** Please use `GET /memberships` with `{ member: team, resource_subtype: project_membership }` to find projects shared with a team. tags: - Projects operationId: getProjects parameters: - $ref: '#/components/parameters/limit' - $ref: '#/components/parameters/offset' - name: workspace in: query description: >- The workspace or organization to filter projects on. schema: type: string example: '1331' - name: team in: query description: >- **Deprecated.** The team to filter projects on. Please use `GET /memberships` with `{ member: team, resource_subtype: project_membership }` instead. schema: type: string example: '14916' deprecated: true - $ref: '#/components/parameters/archived_query_param' - name: opt_fields in: query description: 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. required: false example: - archived - color - completed - completed_at - completed_by - completed_by.name - created_at - created_from_template - created_from_template.name - current_status - current_status.author - current_status.author.name - current_status.color - current_status.created_at - current_status.created_by - current_status.created_by.name - current_status.html_text - current_status.modified_at - current_status.text - current_status.title - current_status_update - current_status_update.resource_subtype - current_status_update.title - custom_field_settings - custom_field_settings.custom_field - custom_field_settings.custom_field.asana_created_field - custom_field_settings.custom_field.created_by - custom_field_settings.custom_field.created_by.name - custom_field_settings.custom_field.currency_code - custom_field_settings.custom_field.custom_label - custom_field_settings.custom_field.custom_label_position - custom_field_settings.custom_field.date_value - custom_field_settings.custom_field.date_value.date - custom_field_settings.custom_field.date_value.date_time - custom_field_settings.custom_field.default_access_level - custom_field_settings.custom_field.description - custom_field_settings.custom_field.display_value - custom_field_settings.custom_field.enabled - custom_field_settings.custom_field.enum_options - custom_field_settings.custom_field.enum_options.color - custom_field_settings.custom_field.enum_options.enabled - custom_field_settings.custom_field.enum_options.name - custom_field_settings.custom_field.enum_value - custom_field_settings.custom_field.enum_value.color - custom_field_settings.custom_field.enum_value.enabled - custom_field_settings.custom_field.enum_value.name - custom_field_settings.custom_field.format - custom_field_settings.custom_field.has_notifications_enabled - custom_field_settings.custom_field.id_prefix - custom_field_settings.custom_field.input_restrictions - custom_field_settings.custom_field.is_formula_field - custom_field_settings.custom_field.is_global_to_workspace - custom_field_settings.custom_field.is_value_read_only - custom_field_settings.custom_field.multi_enum_values - custom_field_settings.custom_field.multi_enum_values.color - custom_field_settings.custom_field.multi_enum_values.enabled - custom_field_settings.custom_field.multi_enum_values.name - custom_field_settings.custom_field.name - custom_field_settings.custom_field.number_value - custom_field_settings.custom_field.people_value - custom_field_settings.custom_field.people_value.name - custom_field_settings.custom_field.precision - custom_field_settings.custom_field.privacy_setting - custom_field_settings.custom_field.reference_value - custom_field_settings.custom_field.reference_value.name - custom_field_settings.custom_field.representation_type - custom_field_settings.custom_field.resource_subtype - custom_field_settings.custom_field.text_value - custom_field_settings.custom_field.type - custom_field_settings.is_important - custom_field_settings.parent - custom_field_settings.parent.name - custom_field_settings.project - custom_field_settings.project.name - custom_fields - custom_fields.date_value - custom_fields.date_value.date - custom_fields.date_value.date_time - custom_fields.display_value - custom_fields.enabled - custom_fields.enum_options - custom_fields.enum_options.color - custom_fields.enum_options.enabled - custom_fields.enum_options.name - custom_fields.enum_value - custom_fields.enum_value.color - custom_fields.enum_value.enabled - custom_fields.enum_value.name - custom_fields.id_prefix - custom_fields.input_restrictions - custom_fields.is_formula_field - custom_fields.multi_enum_values - custom_fields.multi_enum_values.color - custom_fields.multi_enum_values.enabled - custom_fields.multi_enum_values.name - custom_fields.name - custom_fields.number_value - custom_fields.representation_type - custom_fields.text_value - custom_fields.type - default_access_level - default_view - due_date - due_on - followers - followers.name - html_notes - icon - members - members.name - minimum_access_level_for_customization - minimum_access_level_for_sharing - modified_at - name - notes - offset - owner - path - permalink_url - privacy_setting - project_brief - public - start_on - team - team.name - uri - workspace - workspace.name schema: type: array items: type: string enum: - archived - color - completed - completed_at - completed_by - completed_by.name - created_at - created_from_template - created_from_template.name - current_status - current_status.author - current_status.author.name - current_status.color - current_status.created_at - current_status.created_by - current_status.created_by.name - current_status.html_text - current_status.modified_at - current_status.text - current_status.title - current_status_update - current_status_update.resource_subtype - current_status_update.title - custom_field_settings - custom_field_settings.custom_field - custom_field_settings.custom_field.asana_created_field - custom_field_settings.custom_field.created_by - custom_field_settings.custom_field.created_by.name - custom_field_settings.custom_field.currency_code - custom_field_settings.custom_field.custom_label - custom_field_settings.custom_field.custom_label_position - custom_field_settings.custom_field.date_value - custom_field_settings.custom_field.date_value.date - custom_field_settings.custom_field.date_value.date_time - custom_field_settings.custom_field.default_access_level - custom_field_settings.custom_field.description - custom_field_settings.custom_field.display_value - custom_field_settings.custom_field.enabled - custom_field_settings.custom_field.enum_options - custom_field_settings.custom_field.enum_options.color - custom_field_settings.custom_field.enum_options.enabled - custom_field_settings.custom_field.enum_options.name - custom_field_settings.custom_field.enum_value - custom_field_settings.custom_field.enum_value.color - custom_field_settings.custom_field.enum_value.enabled - custom_field_settings.custom_field.enum_value.name - custom_field_settings.custom_field.format - custom_field_settings.custom_field.has_notifications_enabled - custom_field_settings.custom_field.id_prefix - custom_field_settings.custom_field.input_restrictions - custom_field_settings.custom_field.is_formula_field - custom_field_settings.custom_field.is_global_to_workspace - custom_field_settings.custom_field.is_value_read_only - custom_field_settings.custom_field.multi_enum_values - custom_field_settings.custom_field.multi_enum_values.color - custom_field_settings.custom_field.multi_enum_values.enabled - custom_field_settings.custom_field.multi_enum_values.name - custom_field_settings.custom_field.name - custom_field_settings.custom_field.number_value - custom_field_settings.custom_field.people_value - custom_field_settings.custom_field.people_value.name - custom_field_settings.custom_field.precision - custom_field_settings.custom_field.privacy_setting - custom_field_settings.custom_field.reference_value - custom_field_settings.custom_field.reference_value.name - custom_field_settings.custom_field.representation_type - custom_field_settings.custom_field.resource_subtype - custom_field_settings.custom_field.text_value - custom_field_settings.custom_field.type - custom_field_settings.is_important - custom_field_settings.parent - custom_field_settings.parent.name - custom_field_settings.project - custom_field_settings.project.name - custom_fields - custom_fields.date_value - custom_fields.date_value.date - custom_fields.date_value.date_time - custom_fields.display_value - custom_fields.enabled - custom_fields.enum_options - custom_fields.enum_options.color - custom_fields.enum_options.enabled - custom_fields.enum_options.name - custom_fields.enum_value - custom_fields.enum_value.color - custom_fields.enum_value.enabled - custom_fields.enum_value.name - custom_fields.id_prefix - custom_fields.input_restrictions - custom_fields.is_formula_field - custom_fields.multi_enum_values - custom_fields.multi_enum_values.color - custom_fields.multi_enum_values.enabled - custom_fields.multi_enum_values.name - custom_fields.name - custom_fields.number_value - custom_fields.representation_type - custom_fields.text_value - custom_fields.type - default_access_level - default_view - due_date - due_on - followers - followers.name - html_notes - icon - members - members.name - minimum_access_level_for_customization - minimum_access_level_for_sharing - modified_at - name - notes - offset - owner - path - permalink_url - privacy_setting - project_brief - public - start_on - team - team.name - uri - workspace - workspace.name style: form explode: false responses: 200: description: Successfully retrieved projects. content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/ProjectCompact' next_page: $ref: '#/components/schemas/NextPage' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: - projects:read x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); List result = client.projects.getProjects(archived, team, workspace) .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let projectsApiInstance = new Asana.ProjectsApi(client); let opts = { 'limit': 50, 'offset': "eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9", 'workspace': "1331", 'team': "14916", 'archived': false, 'opt_fields': "archived,color,completed,completed_at,completed_by,completed_by.name,created_at,created_from_template,created_from_template.name,current_status,current_status.author,current_status.author.name,current_status.color,current_status.created_at,current_status.created_by,current_status.created_by.name,current_status.html_text,current_status.modified_at,current_status.text,current_status.title,current_status_update,current_status_update.resource_subtype,current_status_update.title,custom_field_settings,custom_field_settings.custom_field,custom_field_settings.custom_field.asana_created_field,custom_field_settings.custom_field.created_by,custom_field_settings.custom_field.created_by.name,custom_field_settings.custom_field.currency_code,custom_field_settings.custom_field.custom_label,custom_field_settings.custom_field.custom_label_position,custom_field_settings.custom_field.date_value,custom_field_settings.custom_field.date_value.date,custom_field_settings.custom_field.date_value.date_time,custom_field_settings.custom_field.default_access_level,custom_field_settings.custom_field.description,custom_field_settings.custom_field.display_value,custom_field_settings.custom_field.enabled,custom_field_settings.custom_field.enum_options,custom_field_settings.custom_field.enum_options.color,custom_field_settings.custom_field.enum_options.enabled,custom_field_settings.custom_field.enum_options.name,custom_field_settings.custom_field.enum_value,custom_field_settings.custom_field.enum_value.color,custom_field_settings.custom_field.enum_value.enabled,custom_field_settings.custom_field.enum_value.name,custom_field_settings.custom_field.format,custom_field_settings.custom_field.has_notifications_enabled,custom_field_settings.custom_field.id_prefix,custom_field_settings.custom_field.input_restrictions,custom_field_settings.custom_field.is_formula_field,custom_field_settings.custom_field.is_global_to_workspace,custom_field_settings.custom_field.is_value_read_only,custom_field_settings.custom_field.multi_enum_values,custom_field_settings.custom_field.multi_enum_values.color,custom_field_settings.custom_field.multi_enum_values.enabled,custom_field_settings.custom_field.multi_enum_values.name,custom_field_settings.custom_field.name,custom_field_settings.custom_field.number_value,custom_field_settings.custom_field.people_value,custom_field_settings.custom_field.people_value.name,custom_field_settings.custom_field.precision,custom_field_settings.custom_field.privacy_setting,custom_field_settings.custom_field.reference_value,custom_field_settings.custom_field.reference_value.name,custom_field_settings.custom_field.representation_type,custom_field_settings.custom_field.resource_subtype,custom_field_settings.custom_field.text_value,custom_field_settings.custom_field.type,custom_field_settings.is_important,custom_field_settings.parent,custom_field_settings.parent.name,custom_field_settings.project,custom_field_settings.project.name,custom_fields,custom_fields.date_value,custom_fields.date_value.date,custom_fields.date_value.date_time,custom_fields.display_value,custom_fields.enabled,custom_fields.enum_options,custom_fields.enum_options.color,custom_fields.enum_options.enabled,custom_fields.enum_options.name,custom_fields.enum_value,custom_fields.enum_value.color,custom_fields.enum_value.enabled,custom_fields.enum_value.name,custom_fields.id_prefix,custom_fields.input_restrictions,custom_fields.is_formula_field,custom_fields.multi_enum_values,custom_fields.multi_enum_values.color,custom_fields.multi_enum_values.enabled,custom_fields.multi_enum_values.name,custom_fields.name,custom_fields.number_value,custom_fields.representation_type,custom_fields.text_value,custom_fields.type,default_access_level,default_view,due_date,due_on,followers,followers.name,html_notes,icon,members,members.name,minimum_access_level_for_customization,minimum_access_level_for_sharing,modified_at,name,notes,offset,owner,path,permalink_url,privacy_setting,project_brief,public,start_on,team,team.name,uri,workspace,workspace.name" }; projectsApiInstance.getProjects(opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.projects.getProjects({param: "value", param: "value", opt_pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class projects_api_instance = asana.ProjectsApi(api_client) opts = { 'limit': 50, # int | Results per page. The number of objects to return per page. The value must be between 1 and 100. 'offset': "eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9", # 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': "1331", # str | The workspace or organization to filter projects on. 'team': "14916", # str | The team to filter projects on. 'archived': False, # bool | Only return projects whose `archived` field takes on the value of this parameter. 'opt_fields': "archived,color,completed,completed_at,completed_by,completed_by.name,created_at,created_from_template,created_from_template.name,current_status,current_status.author,current_status.author.name,current_status.color,current_status.created_at,current_status.created_by,current_status.created_by.name,current_status.html_text,current_status.modified_at,current_status.text,current_status.title,current_status_update,current_status_update.resource_subtype,current_status_update.title,custom_field_settings,custom_field_settings.custom_field,custom_field_settings.custom_field.asana_created_field,custom_field_settings.custom_field.created_by,custom_field_settings.custom_field.created_by.name,custom_field_settings.custom_field.currency_code,custom_field_settings.custom_field.custom_label,custom_field_settings.custom_field.custom_label_position,custom_field_settings.custom_field.date_value,custom_field_settings.custom_field.date_value.date,custom_field_settings.custom_field.date_value.date_time,custom_field_settings.custom_field.default_access_level,custom_field_settings.custom_field.description,custom_field_settings.custom_field.display_value,custom_field_settings.custom_field.enabled,custom_field_settings.custom_field.enum_options,custom_field_settings.custom_field.enum_options.color,custom_field_settings.custom_field.enum_options.enabled,custom_field_settings.custom_field.enum_options.name,custom_field_settings.custom_field.enum_value,custom_field_settings.custom_field.enum_value.color,custom_field_settings.custom_field.enum_value.enabled,custom_field_settings.custom_field.enum_value.name,custom_field_settings.custom_field.format,custom_field_settings.custom_field.has_notifications_enabled,custom_field_settings.custom_field.id_prefix,custom_field_settings.custom_field.input_restrictions,custom_field_settings.custom_field.is_formula_field,custom_field_settings.custom_field.is_global_to_workspace,custom_field_settings.custom_field.is_value_read_only,custom_field_settings.custom_field.multi_enum_values,custom_field_settings.custom_field.multi_enum_values.color,custom_field_settings.custom_field.multi_enum_values.enabled,custom_field_settings.custom_field.multi_enum_values.name,custom_field_settings.custom_field.name,custom_field_settings.custom_field.number_value,custom_field_settings.custom_field.people_value,custom_field_settings.custom_field.people_value.name,custom_field_settings.custom_field.precision,custom_field_settings.custom_field.privacy_setting,custom_field_settings.custom_field.reference_value,custom_field_settings.custom_field.reference_value.name,custom_field_settings.custom_field.representation_type,custom_field_settings.custom_field.resource_subtype,custom_field_settings.custom_field.text_value,custom_field_settings.custom_field.type,custom_field_settings.is_important,custom_field_settings.parent,custom_field_settings.parent.name,custom_field_settings.project,custom_field_settings.project.name,custom_fields,custom_fields.date_value,custom_fields.date_value.date,custom_fields.date_value.date_time,custom_fields.display_value,custom_fields.enabled,custom_fields.enum_options,custom_fields.enum_options.color,custom_fields.enum_options.enabled,custom_fields.enum_options.name,custom_fields.enum_value,custom_fields.enum_value.color,custom_fields.enum_value.enabled,custom_fields.enum_value.name,custom_fields.id_prefix,custom_fields.input_restrictions,custom_fields.is_formula_field,custom_fields.multi_enum_values,custom_fields.multi_enum_values.color,custom_fields.multi_enum_values.enabled,custom_fields.multi_enum_values.name,custom_fields.name,custom_fields.number_value,custom_fields.representation_type,custom_fields.text_value,custom_fields.type,default_access_level,default_view,due_date,due_on,followers,followers.name,html_notes,icon,members,members.name,minimum_access_level_for_customization,minimum_access_level_for_sharing,modified_at,name,notes,offset,owner,path,permalink_url,privacy_setting,project_brief,public,start_on,team,team.name,uri,workspace,workspace.name", # list[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. } try: # Get multiple projects api_response = projects_api_instance.get_projects(opts) for data in api_response: pprint(data) except ApiException as e: print("Exception when calling ProjectsApi->get_projects: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.projects.get_projects({'param': 'value', 'param': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- projects->getProjects(array('param' => 'value', 'param' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.projects.get_projects(param: "value", param: "value", options: {pretty: true}) post: summary: Create a project description: |- Required scope: projects:write Create a new project in a workspace or team. Every project is required to be created in a specific workspace or organization, and this cannot be changed once set. Note that you can use the `workspace` parameter regardless of whether or not it is an organization. If the workspace for your project is an organization, you must also supply a `team` to share the project with. Returns the full record of the newly created project. **Deprecation notice:** The `team` parameter and the `private_to_team` value for `privacy_setting` are deprecated. When either is included in the request, the `Asana-Change` response header will indicate an affected deprecation. Clients should switch to using `POST /memberships` with `{ parent: project, member: team }` to share a project with a team after creation. tags: - Projects operationId: createProject parameters: - name: opt_fields in: query description: 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. required: false example: - archived - color - completed - completed_at - completed_by - completed_by.name - created_at - created_from_template - created_from_template.name - current_status - current_status.author - current_status.author.name - current_status.color - current_status.created_at - current_status.created_by - current_status.created_by.name - current_status.html_text - current_status.modified_at - current_status.text - current_status.title - current_status_update - current_status_update.resource_subtype - current_status_update.title - custom_field_settings - custom_field_settings.custom_field - custom_field_settings.custom_field.asana_created_field - custom_field_settings.custom_field.created_by - custom_field_settings.custom_field.created_by.name - custom_field_settings.custom_field.currency_code - custom_field_settings.custom_field.custom_label - custom_field_settings.custom_field.custom_label_position - custom_field_settings.custom_field.date_value - custom_field_settings.custom_field.date_value.date - custom_field_settings.custom_field.date_value.date_time - custom_field_settings.custom_field.default_access_level - custom_field_settings.custom_field.description - custom_field_settings.custom_field.display_value - custom_field_settings.custom_field.enabled - custom_field_settings.custom_field.enum_options - custom_field_settings.custom_field.enum_options.color - custom_field_settings.custom_field.enum_options.enabled - custom_field_settings.custom_field.enum_options.name - custom_field_settings.custom_field.enum_value - custom_field_settings.custom_field.enum_value.color - custom_field_settings.custom_field.enum_value.enabled - custom_field_settings.custom_field.enum_value.name - custom_field_settings.custom_field.format - custom_field_settings.custom_field.has_notifications_enabled - custom_field_settings.custom_field.id_prefix - custom_field_settings.custom_field.input_restrictions - custom_field_settings.custom_field.is_formula_field - custom_field_settings.custom_field.is_global_to_workspace - custom_field_settings.custom_field.is_value_read_only - custom_field_settings.custom_field.multi_enum_values - custom_field_settings.custom_field.multi_enum_values.color - custom_field_settings.custom_field.multi_enum_values.enabled - custom_field_settings.custom_field.multi_enum_values.name - custom_field_settings.custom_field.name - custom_field_settings.custom_field.number_value - custom_field_settings.custom_field.people_value - custom_field_settings.custom_field.people_value.name - custom_field_settings.custom_field.precision - custom_field_settings.custom_field.privacy_setting - custom_field_settings.custom_field.reference_value - custom_field_settings.custom_field.reference_value.name - custom_field_settings.custom_field.representation_type - custom_field_settings.custom_field.resource_subtype - custom_field_settings.custom_field.text_value - custom_field_settings.custom_field.type - custom_field_settings.is_important - custom_field_settings.parent - custom_field_settings.parent.name - custom_field_settings.project - custom_field_settings.project.name - custom_fields - custom_fields.date_value - custom_fields.date_value.date - custom_fields.date_value.date_time - custom_fields.display_value - custom_fields.enabled - custom_fields.enum_options - custom_fields.enum_options.color - custom_fields.enum_options.enabled - custom_fields.enum_options.name - custom_fields.enum_value - custom_fields.enum_value.color - custom_fields.enum_value.enabled - custom_fields.enum_value.name - custom_fields.id_prefix - custom_fields.input_restrictions - custom_fields.is_formula_field - custom_fields.multi_enum_values - custom_fields.multi_enum_values.color - custom_fields.multi_enum_values.enabled - custom_fields.multi_enum_values.name - custom_fields.name - custom_fields.number_value - custom_fields.representation_type - custom_fields.text_value - custom_fields.type - default_access_level - default_view - due_date - due_on - followers - followers.name - html_notes - icon - members - members.name - minimum_access_level_for_customization - minimum_access_level_for_sharing - modified_at - name - notes - owner - permalink_url - privacy_setting - project_brief - public - start_on - team - team.name - workspace - workspace.name schema: type: array items: type: string enum: - archived - color - completed - completed_at - completed_by - completed_by.name - created_at - created_from_template - created_from_template.name - current_status - current_status.author - current_status.author.name - current_status.color - current_status.created_at - current_status.created_by - current_status.created_by.name - current_status.html_text - current_status.modified_at - current_status.text - current_status.title - current_status_update - current_status_update.resource_subtype - current_status_update.title - custom_field_settings - custom_field_settings.custom_field - custom_field_settings.custom_field.asana_created_field - custom_field_settings.custom_field.created_by - custom_field_settings.custom_field.created_by.name - custom_field_settings.custom_field.currency_code - custom_field_settings.custom_field.custom_label - custom_field_settings.custom_field.custom_label_position - custom_field_settings.custom_field.date_value - custom_field_settings.custom_field.date_value.date - custom_field_settings.custom_field.date_value.date_time - custom_field_settings.custom_field.default_access_level - custom_field_settings.custom_field.description - custom_field_settings.custom_field.display_value - custom_field_settings.custom_field.enabled - custom_field_settings.custom_field.enum_options - custom_field_settings.custom_field.enum_options.color - custom_field_settings.custom_field.enum_options.enabled - custom_field_settings.custom_field.enum_options.name - custom_field_settings.custom_field.enum_value - custom_field_settings.custom_field.enum_value.color - custom_field_settings.custom_field.enum_value.enabled - custom_field_settings.custom_field.enum_value.name - custom_field_settings.custom_field.format - custom_field_settings.custom_field.has_notifications_enabled - custom_field_settings.custom_field.id_prefix - custom_field_settings.custom_field.input_restrictions - custom_field_settings.custom_field.is_formula_field - custom_field_settings.custom_field.is_global_to_workspace - custom_field_settings.custom_field.is_value_read_only - custom_field_settings.custom_field.multi_enum_values - custom_field_settings.custom_field.multi_enum_values.color - custom_field_settings.custom_field.multi_enum_values.enabled - custom_field_settings.custom_field.multi_enum_values.name - custom_field_settings.custom_field.name - custom_field_settings.custom_field.number_value - custom_field_settings.custom_field.people_value - custom_field_settings.custom_field.people_value.name - custom_field_settings.custom_field.precision - custom_field_settings.custom_field.privacy_setting - custom_field_settings.custom_field.reference_value - custom_field_settings.custom_field.reference_value.name - custom_field_settings.custom_field.representation_type - custom_field_settings.custom_field.resource_subtype - custom_field_settings.custom_field.text_value - custom_field_settings.custom_field.type - custom_field_settings.is_important - custom_field_settings.parent - custom_field_settings.parent.name - custom_field_settings.project - custom_field_settings.project.name - custom_fields - custom_fields.date_value - custom_fields.date_value.date - custom_fields.date_value.date_time - custom_fields.display_value - custom_fields.enabled - custom_fields.enum_options - custom_fields.enum_options.color - custom_fields.enum_options.enabled - custom_fields.enum_options.name - custom_fields.enum_value - custom_fields.enum_value.color - custom_fields.enum_value.enabled - custom_fields.enum_value.name - custom_fields.id_prefix - custom_fields.input_restrictions - custom_fields.is_formula_field - custom_fields.multi_enum_values - custom_fields.multi_enum_values.color - custom_fields.multi_enum_values.enabled - custom_fields.multi_enum_values.name - custom_fields.name - custom_fields.number_value - custom_fields.representation_type - custom_fields.text_value - custom_fields.type - default_access_level - default_view - due_date - due_on - followers - followers.name - html_notes - icon - members - members.name - minimum_access_level_for_customization - minimum_access_level_for_sharing - modified_at - name - notes - owner - permalink_url - privacy_setting - project_brief - public - start_on - team - team.name - workspace - workspace.name style: form explode: false requestBody: description: The project to create. required: true content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/ProjectRequest' responses: 201: description: Successfully retrieved projects. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/ProjectResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: - projects:write x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); Project result = client.projects.createProject() .data("field", "value") .data("field", "value") .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let projectsApiInstance = new Asana.ProjectsApi(client); let body = {"data": {"": "", "": "",}}; // Object | The project to create. let opts = { 'opt_fields': "archived,color,completed,completed_at,completed_by,completed_by.name,created_at,created_from_template,created_from_template.name,current_status,current_status.author,current_status.author.name,current_status.color,current_status.created_at,current_status.created_by,current_status.created_by.name,current_status.html_text,current_status.modified_at,current_status.text,current_status.title,current_status_update,current_status_update.resource_subtype,current_status_update.title,custom_field_settings,custom_field_settings.custom_field,custom_field_settings.custom_field.asana_created_field,custom_field_settings.custom_field.created_by,custom_field_settings.custom_field.created_by.name,custom_field_settings.custom_field.currency_code,custom_field_settings.custom_field.custom_label,custom_field_settings.custom_field.custom_label_position,custom_field_settings.custom_field.date_value,custom_field_settings.custom_field.date_value.date,custom_field_settings.custom_field.date_value.date_time,custom_field_settings.custom_field.default_access_level,custom_field_settings.custom_field.description,custom_field_settings.custom_field.display_value,custom_field_settings.custom_field.enabled,custom_field_settings.custom_field.enum_options,custom_field_settings.custom_field.enum_options.color,custom_field_settings.custom_field.enum_options.enabled,custom_field_settings.custom_field.enum_options.name,custom_field_settings.custom_field.enum_value,custom_field_settings.custom_field.enum_value.color,custom_field_settings.custom_field.enum_value.enabled,custom_field_settings.custom_field.enum_value.name,custom_field_settings.custom_field.format,custom_field_settings.custom_field.has_notifications_enabled,custom_field_settings.custom_field.id_prefix,custom_field_settings.custom_field.input_restrictions,custom_field_settings.custom_field.is_formula_field,custom_field_settings.custom_field.is_global_to_workspace,custom_field_settings.custom_field.is_value_read_only,custom_field_settings.custom_field.multi_enum_values,custom_field_settings.custom_field.multi_enum_values.color,custom_field_settings.custom_field.multi_enum_values.enabled,custom_field_settings.custom_field.multi_enum_values.name,custom_field_settings.custom_field.name,custom_field_settings.custom_field.number_value,custom_field_settings.custom_field.people_value,custom_field_settings.custom_field.people_value.name,custom_field_settings.custom_field.precision,custom_field_settings.custom_field.privacy_setting,custom_field_settings.custom_field.reference_value,custom_field_settings.custom_field.reference_value.name,custom_field_settings.custom_field.representation_type,custom_field_settings.custom_field.resource_subtype,custom_field_settings.custom_field.text_value,custom_field_settings.custom_field.type,custom_field_settings.is_important,custom_field_settings.parent,custom_field_settings.parent.name,custom_field_settings.project,custom_field_settings.project.name,custom_fields,custom_fields.date_value,custom_fields.date_value.date,custom_fields.date_value.date_time,custom_fields.display_value,custom_fields.enabled,custom_fields.enum_options,custom_fields.enum_options.color,custom_fields.enum_options.enabled,custom_fields.enum_options.name,custom_fields.enum_value,custom_fields.enum_value.color,custom_fields.enum_value.enabled,custom_fields.enum_value.name,custom_fields.id_prefix,custom_fields.input_restrictions,custom_fields.is_formula_field,custom_fields.multi_enum_values,custom_fields.multi_enum_values.color,custom_fields.multi_enum_values.enabled,custom_fields.multi_enum_values.name,custom_fields.name,custom_fields.number_value,custom_fields.representation_type,custom_fields.text_value,custom_fields.type,default_access_level,default_view,due_date,due_on,followers,followers.name,html_notes,icon,members,members.name,minimum_access_level_for_customization,minimum_access_level_for_sharing,modified_at,name,notes,owner,permalink_url,privacy_setting,project_brief,public,start_on,team,team.name,workspace,workspace.name" }; projectsApiInstance.createProject(body, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.projects.createProject({field: "value", field: "value", pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class projects_api_instance = asana.ProjectsApi(api_client) body = {"data": {"": "", "": "",}} # dict | The project to create. opts = { 'opt_fields': "archived,color,completed,completed_at,completed_by,completed_by.name,created_at,created_from_template,created_from_template.name,current_status,current_status.author,current_status.author.name,current_status.color,current_status.created_at,current_status.created_by,current_status.created_by.name,current_status.html_text,current_status.modified_at,current_status.text,current_status.title,current_status_update,current_status_update.resource_subtype,current_status_update.title,custom_field_settings,custom_field_settings.custom_field,custom_field_settings.custom_field.asana_created_field,custom_field_settings.custom_field.created_by,custom_field_settings.custom_field.created_by.name,custom_field_settings.custom_field.currency_code,custom_field_settings.custom_field.custom_label,custom_field_settings.custom_field.custom_label_position,custom_field_settings.custom_field.date_value,custom_field_settings.custom_field.date_value.date,custom_field_settings.custom_field.date_value.date_time,custom_field_settings.custom_field.default_access_level,custom_field_settings.custom_field.description,custom_field_settings.custom_field.display_value,custom_field_settings.custom_field.enabled,custom_field_settings.custom_field.enum_options,custom_field_settings.custom_field.enum_options.color,custom_field_settings.custom_field.enum_options.enabled,custom_field_settings.custom_field.enum_options.name,custom_field_settings.custom_field.enum_value,custom_field_settings.custom_field.enum_value.color,custom_field_settings.custom_field.enum_value.enabled,custom_field_settings.custom_field.enum_value.name,custom_field_settings.custom_field.format,custom_field_settings.custom_field.has_notifications_enabled,custom_field_settings.custom_field.id_prefix,custom_field_settings.custom_field.input_restrictions,custom_field_settings.custom_field.is_formula_field,custom_field_settings.custom_field.is_global_to_workspace,custom_field_settings.custom_field.is_value_read_only,custom_field_settings.custom_field.multi_enum_values,custom_field_settings.custom_field.multi_enum_values.color,custom_field_settings.custom_field.multi_enum_values.enabled,custom_field_settings.custom_field.multi_enum_values.name,custom_field_settings.custom_field.name,custom_field_settings.custom_field.number_value,custom_field_settings.custom_field.people_value,custom_field_settings.custom_field.people_value.name,custom_field_settings.custom_field.precision,custom_field_settings.custom_field.privacy_setting,custom_field_settings.custom_field.reference_value,custom_field_settings.custom_field.reference_value.name,custom_field_settings.custom_field.representation_type,custom_field_settings.custom_field.resource_subtype,custom_field_settings.custom_field.text_value,custom_field_settings.custom_field.type,custom_field_settings.is_important,custom_field_settings.parent,custom_field_settings.parent.name,custom_field_settings.project,custom_field_settings.project.name,custom_fields,custom_fields.date_value,custom_fields.date_value.date,custom_fields.date_value.date_time,custom_fields.display_value,custom_fields.enabled,custom_fields.enum_options,custom_fields.enum_options.color,custom_fields.enum_options.enabled,custom_fields.enum_options.name,custom_fields.enum_value,custom_fields.enum_value.color,custom_fields.enum_value.enabled,custom_fields.enum_value.name,custom_fields.id_prefix,custom_fields.input_restrictions,custom_fields.is_formula_field,custom_fields.multi_enum_values,custom_fields.multi_enum_values.color,custom_fields.multi_enum_values.enabled,custom_fields.multi_enum_values.name,custom_fields.name,custom_fields.number_value,custom_fields.representation_type,custom_fields.text_value,custom_fields.type,default_access_level,default_view,due_date,due_on,followers,followers.name,html_notes,icon,members,members.name,minimum_access_level_for_customization,minimum_access_level_for_sharing,modified_at,name,notes,owner,permalink_url,privacy_setting,project_brief,public,start_on,team,team.name,workspace,workspace.name", # list[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. } try: # Create a project api_response = projects_api_instance.create_project(body, opts) pprint(api_response) except ApiException as e: print("Exception when calling ProjectsApi->create_project: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.projects.create_project({'field': 'value', 'field': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- projects->createProject(array('field' => 'value', 'field' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.projects.create_project(field: "value", field: "value", options: {pretty: true}) /projects/{project_gid}: parameters: - $ref: '#/components/parameters/project_path_gid' - $ref: '#/components/parameters/pretty' get: summary: Get a project description: |- Required scope: projects:read
Field Required Scope
team teams:read
Returns the complete project record for a single project. tags: - Projects operationId: getProject parameters: - name: opt_fields in: query description: 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. required: false example: - archived - color - completed - completed_at - completed_by - completed_by.name - created_at - created_from_template - created_from_template.name - current_status - current_status.author - current_status.author.name - current_status.color - current_status.created_at - current_status.created_by - current_status.created_by.name - current_status.html_text - current_status.modified_at - current_status.text - current_status.title - current_status_update - current_status_update.resource_subtype - current_status_update.title - custom_field_settings - custom_field_settings.custom_field - custom_field_settings.custom_field.asana_created_field - custom_field_settings.custom_field.created_by - custom_field_settings.custom_field.created_by.name - custom_field_settings.custom_field.currency_code - custom_field_settings.custom_field.custom_label - custom_field_settings.custom_field.custom_label_position - custom_field_settings.custom_field.date_value - custom_field_settings.custom_field.date_value.date - custom_field_settings.custom_field.date_value.date_time - custom_field_settings.custom_field.default_access_level - custom_field_settings.custom_field.description - custom_field_settings.custom_field.display_value - custom_field_settings.custom_field.enabled - custom_field_settings.custom_field.enum_options - custom_field_settings.custom_field.enum_options.color - custom_field_settings.custom_field.enum_options.enabled - custom_field_settings.custom_field.enum_options.name - custom_field_settings.custom_field.enum_value - custom_field_settings.custom_field.enum_value.color - custom_field_settings.custom_field.enum_value.enabled - custom_field_settings.custom_field.enum_value.name - custom_field_settings.custom_field.format - custom_field_settings.custom_field.has_notifications_enabled - custom_field_settings.custom_field.id_prefix - custom_field_settings.custom_field.input_restrictions - custom_field_settings.custom_field.is_formula_field - custom_field_settings.custom_field.is_global_to_workspace - custom_field_settings.custom_field.is_value_read_only - custom_field_settings.custom_field.multi_enum_values - custom_field_settings.custom_field.multi_enum_values.color - custom_field_settings.custom_field.multi_enum_values.enabled - custom_field_settings.custom_field.multi_enum_values.name - custom_field_settings.custom_field.name - custom_field_settings.custom_field.number_value - custom_field_settings.custom_field.people_value - custom_field_settings.custom_field.people_value.name - custom_field_settings.custom_field.precision - custom_field_settings.custom_field.privacy_setting - custom_field_settings.custom_field.reference_value - custom_field_settings.custom_field.reference_value.name - custom_field_settings.custom_field.representation_type - custom_field_settings.custom_field.resource_subtype - custom_field_settings.custom_field.text_value - custom_field_settings.custom_field.type - custom_field_settings.is_important - custom_field_settings.parent - custom_field_settings.parent.name - custom_field_settings.project - custom_field_settings.project.name - custom_fields - custom_fields.date_value - custom_fields.date_value.date - custom_fields.date_value.date_time - custom_fields.display_value - custom_fields.enabled - custom_fields.enum_options - custom_fields.enum_options.color - custom_fields.enum_options.enabled - custom_fields.enum_options.name - custom_fields.enum_value - custom_fields.enum_value.color - custom_fields.enum_value.enabled - custom_fields.enum_value.name - custom_fields.id_prefix - custom_fields.input_restrictions - custom_fields.is_formula_field - custom_fields.multi_enum_values - custom_fields.multi_enum_values.color - custom_fields.multi_enum_values.enabled - custom_fields.multi_enum_values.name - custom_fields.name - custom_fields.number_value - custom_fields.representation_type - custom_fields.text_value - custom_fields.type - default_access_level - default_view - due_date - due_on - followers - followers.name - html_notes - icon - members - members.name - minimum_access_level_for_customization - minimum_access_level_for_sharing - modified_at - name - notes - owner - permalink_url - privacy_setting - project_brief - public - start_on - team - team.name - workspace - workspace.name schema: type: array items: type: string enum: - archived - color - completed - completed_at - completed_by - completed_by.name - created_at - created_from_template - created_from_template.name - current_status - current_status.author - current_status.author.name - current_status.color - current_status.created_at - current_status.created_by - current_status.created_by.name - current_status.html_text - current_status.modified_at - current_status.text - current_status.title - current_status_update - current_status_update.resource_subtype - current_status_update.title - custom_field_settings - custom_field_settings.custom_field - custom_field_settings.custom_field.asana_created_field - custom_field_settings.custom_field.created_by - custom_field_settings.custom_field.created_by.name - custom_field_settings.custom_field.currency_code - custom_field_settings.custom_field.custom_label - custom_field_settings.custom_field.custom_label_position - custom_field_settings.custom_field.date_value - custom_field_settings.custom_field.date_value.date - custom_field_settings.custom_field.date_value.date_time - custom_field_settings.custom_field.default_access_level - custom_field_settings.custom_field.description - custom_field_settings.custom_field.display_value - custom_field_settings.custom_field.enabled - custom_field_settings.custom_field.enum_options - custom_field_settings.custom_field.enum_options.color - custom_field_settings.custom_field.enum_options.enabled - custom_field_settings.custom_field.enum_options.name - custom_field_settings.custom_field.enum_value - custom_field_settings.custom_field.enum_value.color - custom_field_settings.custom_field.enum_value.enabled - custom_field_settings.custom_field.enum_value.name - custom_field_settings.custom_field.format - custom_field_settings.custom_field.has_notifications_enabled - custom_field_settings.custom_field.id_prefix - custom_field_settings.custom_field.input_restrictions - custom_field_settings.custom_field.is_formula_field - custom_field_settings.custom_field.is_global_to_workspace - custom_field_settings.custom_field.is_value_read_only - custom_field_settings.custom_field.multi_enum_values - custom_field_settings.custom_field.multi_enum_values.color - custom_field_settings.custom_field.multi_enum_values.enabled - custom_field_settings.custom_field.multi_enum_values.name - custom_field_settings.custom_field.name - custom_field_settings.custom_field.number_value - custom_field_settings.custom_field.people_value - custom_field_settings.custom_field.people_value.name - custom_field_settings.custom_field.precision - custom_field_settings.custom_field.privacy_setting - custom_field_settings.custom_field.reference_value - custom_field_settings.custom_field.reference_value.name - custom_field_settings.custom_field.representation_type - custom_field_settings.custom_field.resource_subtype - custom_field_settings.custom_field.text_value - custom_field_settings.custom_field.type - custom_field_settings.is_important - custom_field_settings.parent - custom_field_settings.parent.name - custom_field_settings.project - custom_field_settings.project.name - custom_fields - custom_fields.date_value - custom_fields.date_value.date - custom_fields.date_value.date_time - custom_fields.display_value - custom_fields.enabled - custom_fields.enum_options - custom_fields.enum_options.color - custom_fields.enum_options.enabled - custom_fields.enum_options.name - custom_fields.enum_value - custom_fields.enum_value.color - custom_fields.enum_value.enabled - custom_fields.enum_value.name - custom_fields.id_prefix - custom_fields.input_restrictions - custom_fields.is_formula_field - custom_fields.multi_enum_values - custom_fields.multi_enum_values.color - custom_fields.multi_enum_values.enabled - custom_fields.multi_enum_values.name - custom_fields.name - custom_fields.number_value - custom_fields.representation_type - custom_fields.text_value - custom_fields.type - default_access_level - default_view - due_date - due_on - followers - followers.name - html_notes - icon - members - members.name - minimum_access_level_for_customization - minimum_access_level_for_sharing - modified_at - name - notes - owner - permalink_url - privacy_setting - project_brief - public - start_on - team - team.name - workspace - workspace.name style: form explode: false responses: 200: description: Successfully retrieved the requested project. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/ProjectResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: - projects:read x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); Project result = client.projects.getProject(projectGid) .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let projectsApiInstance = new Asana.ProjectsApi(client); let project_gid = "1331"; // String | Globally unique identifier for the project. let opts = { 'opt_fields': "archived,color,completed,completed_at,completed_by,completed_by.name,created_at,created_from_template,created_from_template.name,current_status,current_status.author,current_status.author.name,current_status.color,current_status.created_at,current_status.created_by,current_status.created_by.name,current_status.html_text,current_status.modified_at,current_status.text,current_status.title,current_status_update,current_status_update.resource_subtype,current_status_update.title,custom_field_settings,custom_field_settings.custom_field,custom_field_settings.custom_field.asana_created_field,custom_field_settings.custom_field.created_by,custom_field_settings.custom_field.created_by.name,custom_field_settings.custom_field.currency_code,custom_field_settings.custom_field.custom_label,custom_field_settings.custom_field.custom_label_position,custom_field_settings.custom_field.date_value,custom_field_settings.custom_field.date_value.date,custom_field_settings.custom_field.date_value.date_time,custom_field_settings.custom_field.default_access_level,custom_field_settings.custom_field.description,custom_field_settings.custom_field.display_value,custom_field_settings.custom_field.enabled,custom_field_settings.custom_field.enum_options,custom_field_settings.custom_field.enum_options.color,custom_field_settings.custom_field.enum_options.enabled,custom_field_settings.custom_field.enum_options.name,custom_field_settings.custom_field.enum_value,custom_field_settings.custom_field.enum_value.color,custom_field_settings.custom_field.enum_value.enabled,custom_field_settings.custom_field.enum_value.name,custom_field_settings.custom_field.format,custom_field_settings.custom_field.has_notifications_enabled,custom_field_settings.custom_field.id_prefix,custom_field_settings.custom_field.input_restrictions,custom_field_settings.custom_field.is_formula_field,custom_field_settings.custom_field.is_global_to_workspace,custom_field_settings.custom_field.is_value_read_only,custom_field_settings.custom_field.multi_enum_values,custom_field_settings.custom_field.multi_enum_values.color,custom_field_settings.custom_field.multi_enum_values.enabled,custom_field_settings.custom_field.multi_enum_values.name,custom_field_settings.custom_field.name,custom_field_settings.custom_field.number_value,custom_field_settings.custom_field.people_value,custom_field_settings.custom_field.people_value.name,custom_field_settings.custom_field.precision,custom_field_settings.custom_field.privacy_setting,custom_field_settings.custom_field.reference_value,custom_field_settings.custom_field.reference_value.name,custom_field_settings.custom_field.representation_type,custom_field_settings.custom_field.resource_subtype,custom_field_settings.custom_field.text_value,custom_field_settings.custom_field.type,custom_field_settings.is_important,custom_field_settings.parent,custom_field_settings.parent.name,custom_field_settings.project,custom_field_settings.project.name,custom_fields,custom_fields.date_value,custom_fields.date_value.date,custom_fields.date_value.date_time,custom_fields.display_value,custom_fields.enabled,custom_fields.enum_options,custom_fields.enum_options.color,custom_fields.enum_options.enabled,custom_fields.enum_options.name,custom_fields.enum_value,custom_fields.enum_value.color,custom_fields.enum_value.enabled,custom_fields.enum_value.name,custom_fields.id_prefix,custom_fields.input_restrictions,custom_fields.is_formula_field,custom_fields.multi_enum_values,custom_fields.multi_enum_values.color,custom_fields.multi_enum_values.enabled,custom_fields.multi_enum_values.name,custom_fields.name,custom_fields.number_value,custom_fields.representation_type,custom_fields.text_value,custom_fields.type,default_access_level,default_view,due_date,due_on,followers,followers.name,html_notes,icon,members,members.name,minimum_access_level_for_customization,minimum_access_level_for_sharing,modified_at,name,notes,owner,permalink_url,privacy_setting,project_brief,public,start_on,team,team.name,workspace,workspace.name" }; projectsApiInstance.getProject(project_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.projects.getProject(projectGid, {param: "value", param: "value", opt_pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class projects_api_instance = asana.ProjectsApi(api_client) project_gid = "1331" # str | Globally unique identifier for the project. opts = { 'opt_fields': "archived,color,completed,completed_at,completed_by,completed_by.name,created_at,created_from_template,created_from_template.name,current_status,current_status.author,current_status.author.name,current_status.color,current_status.created_at,current_status.created_by,current_status.created_by.name,current_status.html_text,current_status.modified_at,current_status.text,current_status.title,current_status_update,current_status_update.resource_subtype,current_status_update.title,custom_field_settings,custom_field_settings.custom_field,custom_field_settings.custom_field.asana_created_field,custom_field_settings.custom_field.created_by,custom_field_settings.custom_field.created_by.name,custom_field_settings.custom_field.currency_code,custom_field_settings.custom_field.custom_label,custom_field_settings.custom_field.custom_label_position,custom_field_settings.custom_field.date_value,custom_field_settings.custom_field.date_value.date,custom_field_settings.custom_field.date_value.date_time,custom_field_settings.custom_field.default_access_level,custom_field_settings.custom_field.description,custom_field_settings.custom_field.display_value,custom_field_settings.custom_field.enabled,custom_field_settings.custom_field.enum_options,custom_field_settings.custom_field.enum_options.color,custom_field_settings.custom_field.enum_options.enabled,custom_field_settings.custom_field.enum_options.name,custom_field_settings.custom_field.enum_value,custom_field_settings.custom_field.enum_value.color,custom_field_settings.custom_field.enum_value.enabled,custom_field_settings.custom_field.enum_value.name,custom_field_settings.custom_field.format,custom_field_settings.custom_field.has_notifications_enabled,custom_field_settings.custom_field.id_prefix,custom_field_settings.custom_field.input_restrictions,custom_field_settings.custom_field.is_formula_field,custom_field_settings.custom_field.is_global_to_workspace,custom_field_settings.custom_field.is_value_read_only,custom_field_settings.custom_field.multi_enum_values,custom_field_settings.custom_field.multi_enum_values.color,custom_field_settings.custom_field.multi_enum_values.enabled,custom_field_settings.custom_field.multi_enum_values.name,custom_field_settings.custom_field.name,custom_field_settings.custom_field.number_value,custom_field_settings.custom_field.people_value,custom_field_settings.custom_field.people_value.name,custom_field_settings.custom_field.precision,custom_field_settings.custom_field.privacy_setting,custom_field_settings.custom_field.reference_value,custom_field_settings.custom_field.reference_value.name,custom_field_settings.custom_field.representation_type,custom_field_settings.custom_field.resource_subtype,custom_field_settings.custom_field.text_value,custom_field_settings.custom_field.type,custom_field_settings.is_important,custom_field_settings.parent,custom_field_settings.parent.name,custom_field_settings.project,custom_field_settings.project.name,custom_fields,custom_fields.date_value,custom_fields.date_value.date,custom_fields.date_value.date_time,custom_fields.display_value,custom_fields.enabled,custom_fields.enum_options,custom_fields.enum_options.color,custom_fields.enum_options.enabled,custom_fields.enum_options.name,custom_fields.enum_value,custom_fields.enum_value.color,custom_fields.enum_value.enabled,custom_fields.enum_value.name,custom_fields.id_prefix,custom_fields.input_restrictions,custom_fields.is_formula_field,custom_fields.multi_enum_values,custom_fields.multi_enum_values.color,custom_fields.multi_enum_values.enabled,custom_fields.multi_enum_values.name,custom_fields.name,custom_fields.number_value,custom_fields.representation_type,custom_fields.text_value,custom_fields.type,default_access_level,default_view,due_date,due_on,followers,followers.name,html_notes,icon,members,members.name,minimum_access_level_for_customization,minimum_access_level_for_sharing,modified_at,name,notes,owner,permalink_url,privacy_setting,project_brief,public,start_on,team,team.name,workspace,workspace.name", # list[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. } try: # Get a project api_response = projects_api_instance.get_project(project_gid, opts) pprint(api_response) except ApiException as e: print("Exception when calling ProjectsApi->get_project: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.projects.get_project(project_gid, {'param': 'value', 'param': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- projects->getProject($project_gid, array('param' => 'value', 'param' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.projects.get_project(project_gid: 'project_gid', param: "value", param: "value", options: {pretty: true}) put: summary: Update a project description: |- Required scope: projects:write A specific, existing project can be updated by making a PUT request on the URL for that project. Only the fields provided in the `data` block will be updated; any unspecified fields will remain unchanged. When using this method, it is best to specify only those fields you wish to change, or else you may overwrite changes made by another user since you last retrieved the task. Returns the complete updated project record. **Deprecation notice:** Updating the `team` field is deprecated. When this field is included in the request, the `Asana-Change` response header will indicate an affected deprecation. Clients should switch to using `POST /memberships` with `{ parent: project, member: team }` to share a project with a team. tags: - Projects operationId: updateProject parameters: - name: opt_fields in: query description: 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. required: false example: - archived - color - completed - completed_at - completed_by - completed_by.name - created_at - created_from_template - created_from_template.name - current_status - current_status.author - current_status.author.name - current_status.color - current_status.created_at - current_status.created_by - current_status.created_by.name - current_status.html_text - current_status.modified_at - current_status.text - current_status.title - current_status_update - current_status_update.resource_subtype - current_status_update.title - custom_field_settings - custom_field_settings.custom_field - custom_field_settings.custom_field.asana_created_field - custom_field_settings.custom_field.created_by - custom_field_settings.custom_field.created_by.name - custom_field_settings.custom_field.currency_code - custom_field_settings.custom_field.custom_label - custom_field_settings.custom_field.custom_label_position - custom_field_settings.custom_field.date_value - custom_field_settings.custom_field.date_value.date - custom_field_settings.custom_field.date_value.date_time - custom_field_settings.custom_field.default_access_level - custom_field_settings.custom_field.description - custom_field_settings.custom_field.display_value - custom_field_settings.custom_field.enabled - custom_field_settings.custom_field.enum_options - custom_field_settings.custom_field.enum_options.color - custom_field_settings.custom_field.enum_options.enabled - custom_field_settings.custom_field.enum_options.name - custom_field_settings.custom_field.enum_value - custom_field_settings.custom_field.enum_value.color - custom_field_settings.custom_field.enum_value.enabled - custom_field_settings.custom_field.enum_value.name - custom_field_settings.custom_field.format - custom_field_settings.custom_field.has_notifications_enabled - custom_field_settings.custom_field.id_prefix - custom_field_settings.custom_field.input_restrictions - custom_field_settings.custom_field.is_formula_field - custom_field_settings.custom_field.is_global_to_workspace - custom_field_settings.custom_field.is_value_read_only - custom_field_settings.custom_field.multi_enum_values - custom_field_settings.custom_field.multi_enum_values.color - custom_field_settings.custom_field.multi_enum_values.enabled - custom_field_settings.custom_field.multi_enum_values.name - custom_field_settings.custom_field.name - custom_field_settings.custom_field.number_value - custom_field_settings.custom_field.people_value - custom_field_settings.custom_field.people_value.name - custom_field_settings.custom_field.precision - custom_field_settings.custom_field.privacy_setting - custom_field_settings.custom_field.reference_value - custom_field_settings.custom_field.reference_value.name - custom_field_settings.custom_field.representation_type - custom_field_settings.custom_field.resource_subtype - custom_field_settings.custom_field.text_value - custom_field_settings.custom_field.type - custom_field_settings.is_important - custom_field_settings.parent - custom_field_settings.parent.name - custom_field_settings.project - custom_field_settings.project.name - custom_fields - custom_fields.date_value - custom_fields.date_value.date - custom_fields.date_value.date_time - custom_fields.display_value - custom_fields.enabled - custom_fields.enum_options - custom_fields.enum_options.color - custom_fields.enum_options.enabled - custom_fields.enum_options.name - custom_fields.enum_value - custom_fields.enum_value.color - custom_fields.enum_value.enabled - custom_fields.enum_value.name - custom_fields.id_prefix - custom_fields.input_restrictions - custom_fields.is_formula_field - custom_fields.multi_enum_values - custom_fields.multi_enum_values.color - custom_fields.multi_enum_values.enabled - custom_fields.multi_enum_values.name - custom_fields.name - custom_fields.number_value - custom_fields.representation_type - custom_fields.text_value - custom_fields.type - default_access_level - default_view - due_date - due_on - followers - followers.name - html_notes - icon - members - members.name - minimum_access_level_for_customization - minimum_access_level_for_sharing - modified_at - name - notes - owner - permalink_url - privacy_setting - project_brief - public - start_on - team - team.name - workspace - workspace.name schema: type: array items: type: string enum: - archived - color - completed - completed_at - completed_by - completed_by.name - created_at - created_from_template - created_from_template.name - current_status - current_status.author - current_status.author.name - current_status.color - current_status.created_at - current_status.created_by - current_status.created_by.name - current_status.html_text - current_status.modified_at - current_status.text - current_status.title - current_status_update - current_status_update.resource_subtype - current_status_update.title - custom_field_settings - custom_field_settings.custom_field - custom_field_settings.custom_field.asana_created_field - custom_field_settings.custom_field.created_by - custom_field_settings.custom_field.created_by.name - custom_field_settings.custom_field.currency_code - custom_field_settings.custom_field.custom_label - custom_field_settings.custom_field.custom_label_position - custom_field_settings.custom_field.date_value - custom_field_settings.custom_field.date_value.date - custom_field_settings.custom_field.date_value.date_time - custom_field_settings.custom_field.default_access_level - custom_field_settings.custom_field.description - custom_field_settings.custom_field.display_value - custom_field_settings.custom_field.enabled - custom_field_settings.custom_field.enum_options - custom_field_settings.custom_field.enum_options.color - custom_field_settings.custom_field.enum_options.enabled - custom_field_settings.custom_field.enum_options.name - custom_field_settings.custom_field.enum_value - custom_field_settings.custom_field.enum_value.color - custom_field_settings.custom_field.enum_value.enabled - custom_field_settings.custom_field.enum_value.name - custom_field_settings.custom_field.format - custom_field_settings.custom_field.has_notifications_enabled - custom_field_settings.custom_field.id_prefix - custom_field_settings.custom_field.input_restrictions - custom_field_settings.custom_field.is_formula_field - custom_field_settings.custom_field.is_global_to_workspace - custom_field_settings.custom_field.is_value_read_only - custom_field_settings.custom_field.multi_enum_values - custom_field_settings.custom_field.multi_enum_values.color - custom_field_settings.custom_field.multi_enum_values.enabled - custom_field_settings.custom_field.multi_enum_values.name - custom_field_settings.custom_field.name - custom_field_settings.custom_field.number_value - custom_field_settings.custom_field.people_value - custom_field_settings.custom_field.people_value.name - custom_field_settings.custom_field.precision - custom_field_settings.custom_field.privacy_setting - custom_field_settings.custom_field.reference_value - custom_field_settings.custom_field.reference_value.name - custom_field_settings.custom_field.representation_type - custom_field_settings.custom_field.resource_subtype - custom_field_settings.custom_field.text_value - custom_field_settings.custom_field.type - custom_field_settings.is_important - custom_field_settings.parent - custom_field_settings.parent.name - custom_field_settings.project - custom_field_settings.project.name - custom_fields - custom_fields.date_value - custom_fields.date_value.date - custom_fields.date_value.date_time - custom_fields.display_value - custom_fields.enabled - custom_fields.enum_options - custom_fields.enum_options.color - custom_fields.enum_options.enabled - custom_fields.enum_options.name - custom_fields.enum_value - custom_fields.enum_value.color - custom_fields.enum_value.enabled - custom_fields.enum_value.name - custom_fields.id_prefix - custom_fields.input_restrictions - custom_fields.is_formula_field - custom_fields.multi_enum_values - custom_fields.multi_enum_values.color - custom_fields.multi_enum_values.enabled - custom_fields.multi_enum_values.name - custom_fields.name - custom_fields.number_value - custom_fields.representation_type - custom_fields.text_value - custom_fields.type - default_access_level - default_view - due_date - due_on - followers - followers.name - html_notes - icon - members - members.name - minimum_access_level_for_customization - minimum_access_level_for_sharing - modified_at - name - notes - owner - permalink_url - privacy_setting - project_brief - public - start_on - team - team.name - workspace - workspace.name style: form explode: false requestBody: description: The updated fields for the project. required: true content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/ProjectUpdateRequest' responses: 200: description: Successfully updated the project. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/ProjectResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: - projects:write x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); Project result = client.projects.updateProject(projectGid) .data("field", "value") .data("field", "value") .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let projectsApiInstance = new Asana.ProjectsApi(client); let body = {"data": {"": "", "": "",}}; // Object | The updated fields for the project. let project_gid = "1331"; // String | Globally unique identifier for the project. let opts = { 'opt_fields': "archived,color,completed,completed_at,completed_by,completed_by.name,created_at,created_from_template,created_from_template.name,current_status,current_status.author,current_status.author.name,current_status.color,current_status.created_at,current_status.created_by,current_status.created_by.name,current_status.html_text,current_status.modified_at,current_status.text,current_status.title,current_status_update,current_status_update.resource_subtype,current_status_update.title,custom_field_settings,custom_field_settings.custom_field,custom_field_settings.custom_field.asana_created_field,custom_field_settings.custom_field.created_by,custom_field_settings.custom_field.created_by.name,custom_field_settings.custom_field.currency_code,custom_field_settings.custom_field.custom_label,custom_field_settings.custom_field.custom_label_position,custom_field_settings.custom_field.date_value,custom_field_settings.custom_field.date_value.date,custom_field_settings.custom_field.date_value.date_time,custom_field_settings.custom_field.default_access_level,custom_field_settings.custom_field.description,custom_field_settings.custom_field.display_value,custom_field_settings.custom_field.enabled,custom_field_settings.custom_field.enum_options,custom_field_settings.custom_field.enum_options.color,custom_field_settings.custom_field.enum_options.enabled,custom_field_settings.custom_field.enum_options.name,custom_field_settings.custom_field.enum_value,custom_field_settings.custom_field.enum_value.color,custom_field_settings.custom_field.enum_value.enabled,custom_field_settings.custom_field.enum_value.name,custom_field_settings.custom_field.format,custom_field_settings.custom_field.has_notifications_enabled,custom_field_settings.custom_field.id_prefix,custom_field_settings.custom_field.input_restrictions,custom_field_settings.custom_field.is_formula_field,custom_field_settings.custom_field.is_global_to_workspace,custom_field_settings.custom_field.is_value_read_only,custom_field_settings.custom_field.multi_enum_values,custom_field_settings.custom_field.multi_enum_values.color,custom_field_settings.custom_field.multi_enum_values.enabled,custom_field_settings.custom_field.multi_enum_values.name,custom_field_settings.custom_field.name,custom_field_settings.custom_field.number_value,custom_field_settings.custom_field.people_value,custom_field_settings.custom_field.people_value.name,custom_field_settings.custom_field.precision,custom_field_settings.custom_field.privacy_setting,custom_field_settings.custom_field.reference_value,custom_field_settings.custom_field.reference_value.name,custom_field_settings.custom_field.representation_type,custom_field_settings.custom_field.resource_subtype,custom_field_settings.custom_field.text_value,custom_field_settings.custom_field.type,custom_field_settings.is_important,custom_field_settings.parent,custom_field_settings.parent.name,custom_field_settings.project,custom_field_settings.project.name,custom_fields,custom_fields.date_value,custom_fields.date_value.date,custom_fields.date_value.date_time,custom_fields.display_value,custom_fields.enabled,custom_fields.enum_options,custom_fields.enum_options.color,custom_fields.enum_options.enabled,custom_fields.enum_options.name,custom_fields.enum_value,custom_fields.enum_value.color,custom_fields.enum_value.enabled,custom_fields.enum_value.name,custom_fields.id_prefix,custom_fields.input_restrictions,custom_fields.is_formula_field,custom_fields.multi_enum_values,custom_fields.multi_enum_values.color,custom_fields.multi_enum_values.enabled,custom_fields.multi_enum_values.name,custom_fields.name,custom_fields.number_value,custom_fields.representation_type,custom_fields.text_value,custom_fields.type,default_access_level,default_view,due_date,due_on,followers,followers.name,html_notes,icon,members,members.name,minimum_access_level_for_customization,minimum_access_level_for_sharing,modified_at,name,notes,owner,permalink_url,privacy_setting,project_brief,public,start_on,team,team.name,workspace,workspace.name" }; projectsApiInstance.updateProject(body, project_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.projects.updateProject(projectGid, {field: "value", field: "value", pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class projects_api_instance = asana.ProjectsApi(api_client) body = {"data": {"": "", "": "",}} # dict | The updated fields for the project. project_gid = "1331" # str | Globally unique identifier for the project. opts = { 'opt_fields': "archived,color,completed,completed_at,completed_by,completed_by.name,created_at,created_from_template,created_from_template.name,current_status,current_status.author,current_status.author.name,current_status.color,current_status.created_at,current_status.created_by,current_status.created_by.name,current_status.html_text,current_status.modified_at,current_status.text,current_status.title,current_status_update,current_status_update.resource_subtype,current_status_update.title,custom_field_settings,custom_field_settings.custom_field,custom_field_settings.custom_field.asana_created_field,custom_field_settings.custom_field.created_by,custom_field_settings.custom_field.created_by.name,custom_field_settings.custom_field.currency_code,custom_field_settings.custom_field.custom_label,custom_field_settings.custom_field.custom_label_position,custom_field_settings.custom_field.date_value,custom_field_settings.custom_field.date_value.date,custom_field_settings.custom_field.date_value.date_time,custom_field_settings.custom_field.default_access_level,custom_field_settings.custom_field.description,custom_field_settings.custom_field.display_value,custom_field_settings.custom_field.enabled,custom_field_settings.custom_field.enum_options,custom_field_settings.custom_field.enum_options.color,custom_field_settings.custom_field.enum_options.enabled,custom_field_settings.custom_field.enum_options.name,custom_field_settings.custom_field.enum_value,custom_field_settings.custom_field.enum_value.color,custom_field_settings.custom_field.enum_value.enabled,custom_field_settings.custom_field.enum_value.name,custom_field_settings.custom_field.format,custom_field_settings.custom_field.has_notifications_enabled,custom_field_settings.custom_field.id_prefix,custom_field_settings.custom_field.input_restrictions,custom_field_settings.custom_field.is_formula_field,custom_field_settings.custom_field.is_global_to_workspace,custom_field_settings.custom_field.is_value_read_only,custom_field_settings.custom_field.multi_enum_values,custom_field_settings.custom_field.multi_enum_values.color,custom_field_settings.custom_field.multi_enum_values.enabled,custom_field_settings.custom_field.multi_enum_values.name,custom_field_settings.custom_field.name,custom_field_settings.custom_field.number_value,custom_field_settings.custom_field.people_value,custom_field_settings.custom_field.people_value.name,custom_field_settings.custom_field.precision,custom_field_settings.custom_field.privacy_setting,custom_field_settings.custom_field.reference_value,custom_field_settings.custom_field.reference_value.name,custom_field_settings.custom_field.representation_type,custom_field_settings.custom_field.resource_subtype,custom_field_settings.custom_field.text_value,custom_field_settings.custom_field.type,custom_field_settings.is_important,custom_field_settings.parent,custom_field_settings.parent.name,custom_field_settings.project,custom_field_settings.project.name,custom_fields,custom_fields.date_value,custom_fields.date_value.date,custom_fields.date_value.date_time,custom_fields.display_value,custom_fields.enabled,custom_fields.enum_options,custom_fields.enum_options.color,custom_fields.enum_options.enabled,custom_fields.enum_options.name,custom_fields.enum_value,custom_fields.enum_value.color,custom_fields.enum_value.enabled,custom_fields.enum_value.name,custom_fields.id_prefix,custom_fields.input_restrictions,custom_fields.is_formula_field,custom_fields.multi_enum_values,custom_fields.multi_enum_values.color,custom_fields.multi_enum_values.enabled,custom_fields.multi_enum_values.name,custom_fields.name,custom_fields.number_value,custom_fields.representation_type,custom_fields.text_value,custom_fields.type,default_access_level,default_view,due_date,due_on,followers,followers.name,html_notes,icon,members,members.name,minimum_access_level_for_customization,minimum_access_level_for_sharing,modified_at,name,notes,owner,permalink_url,privacy_setting,project_brief,public,start_on,team,team.name,workspace,workspace.name", # list[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. } try: # Update a project api_response = projects_api_instance.update_project(body, project_gid, opts) pprint(api_response) except ApiException as e: print("Exception when calling ProjectsApi->update_project: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.projects.update_project(project_gid, {'field': 'value', 'field': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- projects->updateProject($project_gid, array('field' => 'value', 'field' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.projects.update_project(project_gid: 'project_gid', field: "value", field: "value", options: {pretty: true}) delete: summary: Delete a project description: |- Required scope: projects:delete A specific, existing project can be deleted by making a DELETE request on the URL for that project. Returns an empty data record. tags: - Projects operationId: deleteProject responses: 200: description: Successfully deleted the specified project. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/EmptyResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: - projects:delete x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); JsonElement result = client.projects.deleteProject(projectGid) .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let projectsApiInstance = new Asana.ProjectsApi(client); let project_gid = "1331"; // String | Globally unique identifier for the project. projectsApiInstance.deleteProject(project_gid).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.projects.deleteProject(projectGid) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class projects_api_instance = asana.ProjectsApi(api_client) project_gid = "1331" # str | Globally unique identifier for the project. try: # Delete a project api_response = projects_api_instance.delete_project(project_gid) pprint(api_response) except ApiException as e: print("Exception when calling ProjectsApi->delete_project: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.projects.delete_project(project_gid, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- projects->deleteProject($project_gid, array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.projects.delete_project(project_gid: 'project_gid', options: {pretty: true}) /projects/{project_gid}/duplicate: parameters: - $ref: '#/components/parameters/project_path_gid' - $ref: '#/components/parameters/pretty' post: summary: Duplicate a project description: |- Required scope: projects:write Creates and returns a job that will asynchronously handle the duplication. tags: - Projects operationId: duplicateProject parameters: - name: opt_fields in: query description: 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. required: false example: - new_graph_export - new_graph_export.completed_at - new_graph_export.created_at - new_graph_export.download_url - new_project - new_project.name - new_project_template - new_project_template.name - new_resource_export - new_resource_export.completed_at - new_resource_export.created_at - new_resource_export.download_url - new_task - new_task.created_by - new_task.name - new_task.resource_subtype - resource_subtype - status schema: type: array items: type: string enum: - new_graph_export - new_graph_export.completed_at - new_graph_export.created_at - new_graph_export.download_url - new_project - new_project.name - new_project_template - new_project_template.name - new_resource_export - new_resource_export.completed_at - new_resource_export.created_at - new_resource_export.download_url - new_task - new_task.created_by - new_task.name - new_task.resource_subtype - resource_subtype - status style: form explode: false requestBody: description: >- Describes the duplicate's name and the elements that will be duplicated. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/ProjectDuplicateRequest' responses: 201: description: Successfully created the job to handle duplication. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/JobResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: - projects:write x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); Job result = client.projects.duplicateProject(projectGid) .data("field", "value") .data("field", "value") .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let projectsApiInstance = new Asana.ProjectsApi(client); let project_gid = "1331"; // String | Globally unique identifier for the project. let opts = { 'body': {"data": {"": "", "": "",}}, 'opt_fields': "new_graph_export,new_graph_export.completed_at,new_graph_export.created_at,new_graph_export.download_url,new_project,new_project.name,new_project_template,new_project_template.name,new_resource_export,new_resource_export.completed_at,new_resource_export.created_at,new_resource_export.download_url,new_task,new_task.created_by,new_task.name,new_task.resource_subtype,resource_subtype,status" }; projectsApiInstance.duplicateProject(project_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.projects.duplicateProject(projectGid, {field: "value", field: "value", pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class projects_api_instance = asana.ProjectsApi(api_client) project_gid = "1331" # str | Globally unique identifier for the project. opts = { 'body': {"data": {"": "", "": "",}}, # dict | Describes the duplicate's name and the elements that will be duplicated. 'opt_fields': "new_graph_export,new_graph_export.completed_at,new_graph_export.created_at,new_graph_export.download_url,new_project,new_project.name,new_project_template,new_project_template.name,new_resource_export,new_resource_export.completed_at,new_resource_export.created_at,new_resource_export.download_url,new_task,new_task.created_by,new_task.name,new_task.resource_subtype,resource_subtype,status", # list[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. } try: # Duplicate a project api_response = projects_api_instance.duplicate_project(project_gid, opts) pprint(api_response) except ApiException as e: print("Exception when calling ProjectsApi->duplicate_project: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.projects.duplicate_project(project_gid, {'field': 'value', 'field': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- projects->duplicateProject($project_gid, array('field' => 'value', 'field' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.projects.duplicate_project(project_gid: 'project_gid', field: "value", field: "value", options: {pretty: true}) /tasks/{task_gid}/projects: parameters: - $ref: '#/components/parameters/task_path_gid' - $ref: '#/components/parameters/pretty' - $ref: '#/components/parameters/limit' - $ref: '#/components/parameters/offset' get: summary: Get projects a task is in description: |- Required scope: projects:read Returns a compact representation of all of the projects the task is in. tags: - Projects operationId: getProjectsForTask parameters: - name: opt_fields in: query description: 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. required: false example: - archived - color - completed - completed_at - completed_by - completed_by.name - created_at - created_from_template - created_from_template.name - current_status - current_status.author - current_status.author.name - current_status.color - current_status.created_at - current_status.created_by - current_status.created_by.name - current_status.html_text - current_status.modified_at - current_status.text - current_status.title - current_status_update - current_status_update.resource_subtype - current_status_update.title - custom_field_settings - custom_field_settings.custom_field - custom_field_settings.custom_field.asana_created_field - custom_field_settings.custom_field.created_by - custom_field_settings.custom_field.created_by.name - custom_field_settings.custom_field.currency_code - custom_field_settings.custom_field.custom_label - custom_field_settings.custom_field.custom_label_position - custom_field_settings.custom_field.date_value - custom_field_settings.custom_field.date_value.date - custom_field_settings.custom_field.date_value.date_time - custom_field_settings.custom_field.default_access_level - custom_field_settings.custom_field.description - custom_field_settings.custom_field.display_value - custom_field_settings.custom_field.enabled - custom_field_settings.custom_field.enum_options - custom_field_settings.custom_field.enum_options.color - custom_field_settings.custom_field.enum_options.enabled - custom_field_settings.custom_field.enum_options.name - custom_field_settings.custom_field.enum_value - custom_field_settings.custom_field.enum_value.color - custom_field_settings.custom_field.enum_value.enabled - custom_field_settings.custom_field.enum_value.name - custom_field_settings.custom_field.format - custom_field_settings.custom_field.has_notifications_enabled - custom_field_settings.custom_field.id_prefix - custom_field_settings.custom_field.input_restrictions - custom_field_settings.custom_field.is_formula_field - custom_field_settings.custom_field.is_global_to_workspace - custom_field_settings.custom_field.is_value_read_only - custom_field_settings.custom_field.multi_enum_values - custom_field_settings.custom_field.multi_enum_values.color - custom_field_settings.custom_field.multi_enum_values.enabled - custom_field_settings.custom_field.multi_enum_values.name - custom_field_settings.custom_field.name - custom_field_settings.custom_field.number_value - custom_field_settings.custom_field.people_value - custom_field_settings.custom_field.people_value.name - custom_field_settings.custom_field.precision - custom_field_settings.custom_field.privacy_setting - custom_field_settings.custom_field.reference_value - custom_field_settings.custom_field.reference_value.name - custom_field_settings.custom_field.representation_type - custom_field_settings.custom_field.resource_subtype - custom_field_settings.custom_field.text_value - custom_field_settings.custom_field.type - custom_field_settings.is_important - custom_field_settings.parent - custom_field_settings.parent.name - custom_field_settings.project - custom_field_settings.project.name - custom_fields - custom_fields.date_value - custom_fields.date_value.date - custom_fields.date_value.date_time - custom_fields.display_value - custom_fields.enabled - custom_fields.enum_options - custom_fields.enum_options.color - custom_fields.enum_options.enabled - custom_fields.enum_options.name - custom_fields.enum_value - custom_fields.enum_value.color - custom_fields.enum_value.enabled - custom_fields.enum_value.name - custom_fields.id_prefix - custom_fields.input_restrictions - custom_fields.is_formula_field - custom_fields.multi_enum_values - custom_fields.multi_enum_values.color - custom_fields.multi_enum_values.enabled - custom_fields.multi_enum_values.name - custom_fields.name - custom_fields.number_value - custom_fields.representation_type - custom_fields.text_value - custom_fields.type - default_access_level - default_view - due_date - due_on - followers - followers.name - html_notes - icon - members - members.name - minimum_access_level_for_customization - minimum_access_level_for_sharing - modified_at - name - notes - offset - owner - path - permalink_url - privacy_setting - project_brief - public - start_on - team - team.name - uri - workspace - workspace.name schema: type: array items: type: string enum: - archived - color - completed - completed_at - completed_by - completed_by.name - created_at - created_from_template - created_from_template.name - current_status - current_status.author - current_status.author.name - current_status.color - current_status.created_at - current_status.created_by - current_status.created_by.name - current_status.html_text - current_status.modified_at - current_status.text - current_status.title - current_status_update - current_status_update.resource_subtype - current_status_update.title - custom_field_settings - custom_field_settings.custom_field - custom_field_settings.custom_field.asana_created_field - custom_field_settings.custom_field.created_by - custom_field_settings.custom_field.created_by.name - custom_field_settings.custom_field.currency_code - custom_field_settings.custom_field.custom_label - custom_field_settings.custom_field.custom_label_position - custom_field_settings.custom_field.date_value - custom_field_settings.custom_field.date_value.date - custom_field_settings.custom_field.date_value.date_time - custom_field_settings.custom_field.default_access_level - custom_field_settings.custom_field.description - custom_field_settings.custom_field.display_value - custom_field_settings.custom_field.enabled - custom_field_settings.custom_field.enum_options - custom_field_settings.custom_field.enum_options.color - custom_field_settings.custom_field.enum_options.enabled - custom_field_settings.custom_field.enum_options.name - custom_field_settings.custom_field.enum_value - custom_field_settings.custom_field.enum_value.color - custom_field_settings.custom_field.enum_value.enabled - custom_field_settings.custom_field.enum_value.name - custom_field_settings.custom_field.format - custom_field_settings.custom_field.has_notifications_enabled - custom_field_settings.custom_field.id_prefix - custom_field_settings.custom_field.input_restrictions - custom_field_settings.custom_field.is_formula_field - custom_field_settings.custom_field.is_global_to_workspace - custom_field_settings.custom_field.is_value_read_only - custom_field_settings.custom_field.multi_enum_values - custom_field_settings.custom_field.multi_enum_values.color - custom_field_settings.custom_field.multi_enum_values.enabled - custom_field_settings.custom_field.multi_enum_values.name - custom_field_settings.custom_field.name - custom_field_settings.custom_field.number_value - custom_field_settings.custom_field.people_value - custom_field_settings.custom_field.people_value.name - custom_field_settings.custom_field.precision - custom_field_settings.custom_field.privacy_setting - custom_field_settings.custom_field.reference_value - custom_field_settings.custom_field.reference_value.name - custom_field_settings.custom_field.representation_type - custom_field_settings.custom_field.resource_subtype - custom_field_settings.custom_field.text_value - custom_field_settings.custom_field.type - custom_field_settings.is_important - custom_field_settings.parent - custom_field_settings.parent.name - custom_field_settings.project - custom_field_settings.project.name - custom_fields - custom_fields.date_value - custom_fields.date_value.date - custom_fields.date_value.date_time - custom_fields.display_value - custom_fields.enabled - custom_fields.enum_options - custom_fields.enum_options.color - custom_fields.enum_options.enabled - custom_fields.enum_options.name - custom_fields.enum_value - custom_fields.enum_value.color - custom_fields.enum_value.enabled - custom_fields.enum_value.name - custom_fields.id_prefix - custom_fields.input_restrictions - custom_fields.is_formula_field - custom_fields.multi_enum_values - custom_fields.multi_enum_values.color - custom_fields.multi_enum_values.enabled - custom_fields.multi_enum_values.name - custom_fields.name - custom_fields.number_value - custom_fields.representation_type - custom_fields.text_value - custom_fields.type - default_access_level - default_view - due_date - due_on - followers - followers.name - html_notes - icon - members - members.name - minimum_access_level_for_customization - minimum_access_level_for_sharing - modified_at - name - notes - offset - owner - path - permalink_url - privacy_setting - project_brief - public - start_on - team - team.name - uri - workspace - workspace.name style: form explode: false responses: 200: description: >- Successfully retrieved the projects for the given task. content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/ProjectCompact' next_page: $ref: '#/components/schemas/NextPage' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: - projects:read x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); List result = client.projects.getProjectsForTask(taskGid) .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let projectsApiInstance = new Asana.ProjectsApi(client); let task_gid = "321654"; // String | The task to operate on. let opts = { 'limit': 50, 'offset': "eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9", 'opt_fields': "archived,color,completed,completed_at,completed_by,completed_by.name,created_at,created_from_template,created_from_template.name,current_status,current_status.author,current_status.author.name,current_status.color,current_status.created_at,current_status.created_by,current_status.created_by.name,current_status.html_text,current_status.modified_at,current_status.text,current_status.title,current_status_update,current_status_update.resource_subtype,current_status_update.title,custom_field_settings,custom_field_settings.custom_field,custom_field_settings.custom_field.asana_created_field,custom_field_settings.custom_field.created_by,custom_field_settings.custom_field.created_by.name,custom_field_settings.custom_field.currency_code,custom_field_settings.custom_field.custom_label,custom_field_settings.custom_field.custom_label_position,custom_field_settings.custom_field.date_value,custom_field_settings.custom_field.date_value.date,custom_field_settings.custom_field.date_value.date_time,custom_field_settings.custom_field.default_access_level,custom_field_settings.custom_field.description,custom_field_settings.custom_field.display_value,custom_field_settings.custom_field.enabled,custom_field_settings.custom_field.enum_options,custom_field_settings.custom_field.enum_options.color,custom_field_settings.custom_field.enum_options.enabled,custom_field_settings.custom_field.enum_options.name,custom_field_settings.custom_field.enum_value,custom_field_settings.custom_field.enum_value.color,custom_field_settings.custom_field.enum_value.enabled,custom_field_settings.custom_field.enum_value.name,custom_field_settings.custom_field.format,custom_field_settings.custom_field.has_notifications_enabled,custom_field_settings.custom_field.id_prefix,custom_field_settings.custom_field.input_restrictions,custom_field_settings.custom_field.is_formula_field,custom_field_settings.custom_field.is_global_to_workspace,custom_field_settings.custom_field.is_value_read_only,custom_field_settings.custom_field.multi_enum_values,custom_field_settings.custom_field.multi_enum_values.color,custom_field_settings.custom_field.multi_enum_values.enabled,custom_field_settings.custom_field.multi_enum_values.name,custom_field_settings.custom_field.name,custom_field_settings.custom_field.number_value,custom_field_settings.custom_field.people_value,custom_field_settings.custom_field.people_value.name,custom_field_settings.custom_field.precision,custom_field_settings.custom_field.privacy_setting,custom_field_settings.custom_field.reference_value,custom_field_settings.custom_field.reference_value.name,custom_field_settings.custom_field.representation_type,custom_field_settings.custom_field.resource_subtype,custom_field_settings.custom_field.text_value,custom_field_settings.custom_field.type,custom_field_settings.is_important,custom_field_settings.parent,custom_field_settings.parent.name,custom_field_settings.project,custom_field_settings.project.name,custom_fields,custom_fields.date_value,custom_fields.date_value.date,custom_fields.date_value.date_time,custom_fields.display_value,custom_fields.enabled,custom_fields.enum_options,custom_fields.enum_options.color,custom_fields.enum_options.enabled,custom_fields.enum_options.name,custom_fields.enum_value,custom_fields.enum_value.color,custom_fields.enum_value.enabled,custom_fields.enum_value.name,custom_fields.id_prefix,custom_fields.input_restrictions,custom_fields.is_formula_field,custom_fields.multi_enum_values,custom_fields.multi_enum_values.color,custom_fields.multi_enum_values.enabled,custom_fields.multi_enum_values.name,custom_fields.name,custom_fields.number_value,custom_fields.representation_type,custom_fields.text_value,custom_fields.type,default_access_level,default_view,due_date,due_on,followers,followers.name,html_notes,icon,members,members.name,minimum_access_level_for_customization,minimum_access_level_for_sharing,modified_at,name,notes,offset,owner,path,permalink_url,privacy_setting,project_brief,public,start_on,team,team.name,uri,workspace,workspace.name" }; projectsApiInstance.getProjectsForTask(task_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.projects.getProjectsForTask(taskGid, {param: "value", param: "value", opt_pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class projects_api_instance = asana.ProjectsApi(api_client) task_gid = "321654" # str | The task to operate on. opts = { 'limit': 50, # int | Results per page. The number of objects to return per page. The value must be between 1 and 100. 'offset': "eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9", # 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': "archived,color,completed,completed_at,completed_by,completed_by.name,created_at,created_from_template,created_from_template.name,current_status,current_status.author,current_status.author.name,current_status.color,current_status.created_at,current_status.created_by,current_status.created_by.name,current_status.html_text,current_status.modified_at,current_status.text,current_status.title,current_status_update,current_status_update.resource_subtype,current_status_update.title,custom_field_settings,custom_field_settings.custom_field,custom_field_settings.custom_field.asana_created_field,custom_field_settings.custom_field.created_by,custom_field_settings.custom_field.created_by.name,custom_field_settings.custom_field.currency_code,custom_field_settings.custom_field.custom_label,custom_field_settings.custom_field.custom_label_position,custom_field_settings.custom_field.date_value,custom_field_settings.custom_field.date_value.date,custom_field_settings.custom_field.date_value.date_time,custom_field_settings.custom_field.default_access_level,custom_field_settings.custom_field.description,custom_field_settings.custom_field.display_value,custom_field_settings.custom_field.enabled,custom_field_settings.custom_field.enum_options,custom_field_settings.custom_field.enum_options.color,custom_field_settings.custom_field.enum_options.enabled,custom_field_settings.custom_field.enum_options.name,custom_field_settings.custom_field.enum_value,custom_field_settings.custom_field.enum_value.color,custom_field_settings.custom_field.enum_value.enabled,custom_field_settings.custom_field.enum_value.name,custom_field_settings.custom_field.format,custom_field_settings.custom_field.has_notifications_enabled,custom_field_settings.custom_field.id_prefix,custom_field_settings.custom_field.input_restrictions,custom_field_settings.custom_field.is_formula_field,custom_field_settings.custom_field.is_global_to_workspace,custom_field_settings.custom_field.is_value_read_only,custom_field_settings.custom_field.multi_enum_values,custom_field_settings.custom_field.multi_enum_values.color,custom_field_settings.custom_field.multi_enum_values.enabled,custom_field_settings.custom_field.multi_enum_values.name,custom_field_settings.custom_field.name,custom_field_settings.custom_field.number_value,custom_field_settings.custom_field.people_value,custom_field_settings.custom_field.people_value.name,custom_field_settings.custom_field.precision,custom_field_settings.custom_field.privacy_setting,custom_field_settings.custom_field.reference_value,custom_field_settings.custom_field.reference_value.name,custom_field_settings.custom_field.representation_type,custom_field_settings.custom_field.resource_subtype,custom_field_settings.custom_field.text_value,custom_field_settings.custom_field.type,custom_field_settings.is_important,custom_field_settings.parent,custom_field_settings.parent.name,custom_field_settings.project,custom_field_settings.project.name,custom_fields,custom_fields.date_value,custom_fields.date_value.date,custom_fields.date_value.date_time,custom_fields.display_value,custom_fields.enabled,custom_fields.enum_options,custom_fields.enum_options.color,custom_fields.enum_options.enabled,custom_fields.enum_options.name,custom_fields.enum_value,custom_fields.enum_value.color,custom_fields.enum_value.enabled,custom_fields.enum_value.name,custom_fields.id_prefix,custom_fields.input_restrictions,custom_fields.is_formula_field,custom_fields.multi_enum_values,custom_fields.multi_enum_values.color,custom_fields.multi_enum_values.enabled,custom_fields.multi_enum_values.name,custom_fields.name,custom_fields.number_value,custom_fields.representation_type,custom_fields.text_value,custom_fields.type,default_access_level,default_view,due_date,due_on,followers,followers.name,html_notes,icon,members,members.name,minimum_access_level_for_customization,minimum_access_level_for_sharing,modified_at,name,notes,offset,owner,path,permalink_url,privacy_setting,project_brief,public,start_on,team,team.name,uri,workspace,workspace.name", # list[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. } try: # Get projects a task is in api_response = projects_api_instance.get_projects_for_task(task_gid, opts) for data in api_response: pprint(data) except ApiException as e: print("Exception when calling ProjectsApi->get_projects_for_task: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.projects.get_projects_for_task(task_gid, {'param': 'value', 'param': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- projects->getProjectsForTask($task_gid, array('param' => 'value', 'param' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.projects.get_projects_for_task(task_gid: 'task_gid', param: "value", param: "value", options: {pretty: true}) /teams/{team_gid}/projects: parameters: - $ref: '#/components/parameters/team_path_gid' - $ref: '#/components/parameters/pretty' get: summary: Get a team's projects description: |- Required scope: projects:read Returns the compact project records for all projects in the team. *Deprecated: This endpoint is deprecated. Use `GET /memberships` with `member` set to the team GID and `resource_subtype` set to `project_membership` to fetch projects shared with a team.* tags: - Projects operationId: getProjectsForTeam parameters: - $ref: '#/components/parameters/limit' - $ref: '#/components/parameters/offset' - $ref: '#/components/parameters/archived_query_param' - name: opt_fields in: query description: 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. required: false example: - archived - color - completed - completed_at - completed_by - completed_by.name - created_at - created_from_template - created_from_template.name - current_status - current_status.author - current_status.author.name - current_status.color - current_status.created_at - current_status.created_by - current_status.created_by.name - current_status.html_text - current_status.modified_at - current_status.text - current_status.title - current_status_update - current_status_update.resource_subtype - current_status_update.title - custom_field_settings - custom_field_settings.custom_field - custom_field_settings.custom_field.asana_created_field - custom_field_settings.custom_field.created_by - custom_field_settings.custom_field.created_by.name - custom_field_settings.custom_field.currency_code - custom_field_settings.custom_field.custom_label - custom_field_settings.custom_field.custom_label_position - custom_field_settings.custom_field.date_value - custom_field_settings.custom_field.date_value.date - custom_field_settings.custom_field.date_value.date_time - custom_field_settings.custom_field.default_access_level - custom_field_settings.custom_field.description - custom_field_settings.custom_field.display_value - custom_field_settings.custom_field.enabled - custom_field_settings.custom_field.enum_options - custom_field_settings.custom_field.enum_options.color - custom_field_settings.custom_field.enum_options.enabled - custom_field_settings.custom_field.enum_options.name - custom_field_settings.custom_field.enum_value - custom_field_settings.custom_field.enum_value.color - custom_field_settings.custom_field.enum_value.enabled - custom_field_settings.custom_field.enum_value.name - custom_field_settings.custom_field.format - custom_field_settings.custom_field.has_notifications_enabled - custom_field_settings.custom_field.id_prefix - custom_field_settings.custom_field.input_restrictions - custom_field_settings.custom_field.is_formula_field - custom_field_settings.custom_field.is_global_to_workspace - custom_field_settings.custom_field.is_value_read_only - custom_field_settings.custom_field.multi_enum_values - custom_field_settings.custom_field.multi_enum_values.color - custom_field_settings.custom_field.multi_enum_values.enabled - custom_field_settings.custom_field.multi_enum_values.name - custom_field_settings.custom_field.name - custom_field_settings.custom_field.number_value - custom_field_settings.custom_field.people_value - custom_field_settings.custom_field.people_value.name - custom_field_settings.custom_field.precision - custom_field_settings.custom_field.privacy_setting - custom_field_settings.custom_field.reference_value - custom_field_settings.custom_field.reference_value.name - custom_field_settings.custom_field.representation_type - custom_field_settings.custom_field.resource_subtype - custom_field_settings.custom_field.text_value - custom_field_settings.custom_field.type - custom_field_settings.is_important - custom_field_settings.parent - custom_field_settings.parent.name - custom_field_settings.project - custom_field_settings.project.name - custom_fields - custom_fields.date_value - custom_fields.date_value.date - custom_fields.date_value.date_time - custom_fields.display_value - custom_fields.enabled - custom_fields.enum_options - custom_fields.enum_options.color - custom_fields.enum_options.enabled - custom_fields.enum_options.name - custom_fields.enum_value - custom_fields.enum_value.color - custom_fields.enum_value.enabled - custom_fields.enum_value.name - custom_fields.id_prefix - custom_fields.input_restrictions - custom_fields.is_formula_field - custom_fields.multi_enum_values - custom_fields.multi_enum_values.color - custom_fields.multi_enum_values.enabled - custom_fields.multi_enum_values.name - custom_fields.name - custom_fields.number_value - custom_fields.representation_type - custom_fields.text_value - custom_fields.type - default_access_level - default_view - due_date - due_on - followers - followers.name - html_notes - icon - members - members.name - minimum_access_level_for_customization - minimum_access_level_for_sharing - modified_at - name - notes - offset - owner - path - permalink_url - privacy_setting - project_brief - public - start_on - team - team.name - uri - workspace - workspace.name schema: type: array items: type: string enum: - archived - color - completed - completed_at - completed_by - completed_by.name - created_at - created_from_template - created_from_template.name - current_status - current_status.author - current_status.author.name - current_status.color - current_status.created_at - current_status.created_by - current_status.created_by.name - current_status.html_text - current_status.modified_at - current_status.text - current_status.title - current_status_update - current_status_update.resource_subtype - current_status_update.title - custom_field_settings - custom_field_settings.custom_field - custom_field_settings.custom_field.asana_created_field - custom_field_settings.custom_field.created_by - custom_field_settings.custom_field.created_by.name - custom_field_settings.custom_field.currency_code - custom_field_settings.custom_field.custom_label - custom_field_settings.custom_field.custom_label_position - custom_field_settings.custom_field.date_value - custom_field_settings.custom_field.date_value.date - custom_field_settings.custom_field.date_value.date_time - custom_field_settings.custom_field.default_access_level - custom_field_settings.custom_field.description - custom_field_settings.custom_field.display_value - custom_field_settings.custom_field.enabled - custom_field_settings.custom_field.enum_options - custom_field_settings.custom_field.enum_options.color - custom_field_settings.custom_field.enum_options.enabled - custom_field_settings.custom_field.enum_options.name - custom_field_settings.custom_field.enum_value - custom_field_settings.custom_field.enum_value.color - custom_field_settings.custom_field.enum_value.enabled - custom_field_settings.custom_field.enum_value.name - custom_field_settings.custom_field.format - custom_field_settings.custom_field.has_notifications_enabled - custom_field_settings.custom_field.id_prefix - custom_field_settings.custom_field.input_restrictions - custom_field_settings.custom_field.is_formula_field - custom_field_settings.custom_field.is_global_to_workspace - custom_field_settings.custom_field.is_value_read_only - custom_field_settings.custom_field.multi_enum_values - custom_field_settings.custom_field.multi_enum_values.color - custom_field_settings.custom_field.multi_enum_values.enabled - custom_field_settings.custom_field.multi_enum_values.name - custom_field_settings.custom_field.name - custom_field_settings.custom_field.number_value - custom_field_settings.custom_field.people_value - custom_field_settings.custom_field.people_value.name - custom_field_settings.custom_field.precision - custom_field_settings.custom_field.privacy_setting - custom_field_settings.custom_field.reference_value - custom_field_settings.custom_field.reference_value.name - custom_field_settings.custom_field.representation_type - custom_field_settings.custom_field.resource_subtype - custom_field_settings.custom_field.text_value - custom_field_settings.custom_field.type - custom_field_settings.is_important - custom_field_settings.parent - custom_field_settings.parent.name - custom_field_settings.project - custom_field_settings.project.name - custom_fields - custom_fields.date_value - custom_fields.date_value.date - custom_fields.date_value.date_time - custom_fields.display_value - custom_fields.enabled - custom_fields.enum_options - custom_fields.enum_options.color - custom_fields.enum_options.enabled - custom_fields.enum_options.name - custom_fields.enum_value - custom_fields.enum_value.color - custom_fields.enum_value.enabled - custom_fields.enum_value.name - custom_fields.id_prefix - custom_fields.input_restrictions - custom_fields.is_formula_field - custom_fields.multi_enum_values - custom_fields.multi_enum_values.color - custom_fields.multi_enum_values.enabled - custom_fields.multi_enum_values.name - custom_fields.name - custom_fields.number_value - custom_fields.representation_type - custom_fields.text_value - custom_fields.type - default_access_level - default_view - due_date - due_on - followers - followers.name - html_notes - icon - members - members.name - minimum_access_level_for_customization - minimum_access_level_for_sharing - modified_at - name - notes - offset - owner - path - permalink_url - privacy_setting - project_brief - public - start_on - team - team.name - uri - workspace - workspace.name style: form explode: false responses: 200: description: Successfully retrieved the requested team's projects. content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/ProjectCompact' next_page: $ref: '#/components/schemas/NextPage' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' deprecated: true security: - personalAccessToken: [] - oauth2: - projects:read x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); List result = client.projects.getProjectsForTeam(teamGid, archived) .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let projectsApiInstance = new Asana.ProjectsApi(client); let team_gid = "159874"; // String | Globally unique identifier for the team. let opts = { 'limit': 50, 'offset': "eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9", 'archived': false, 'opt_fields': "archived,color,completed,completed_at,completed_by,completed_by.name,created_at,created_from_template,created_from_template.name,current_status,current_status.author,current_status.author.name,current_status.color,current_status.created_at,current_status.created_by,current_status.created_by.name,current_status.html_text,current_status.modified_at,current_status.text,current_status.title,current_status_update,current_status_update.resource_subtype,current_status_update.title,custom_field_settings,custom_field_settings.custom_field,custom_field_settings.custom_field.asana_created_field,custom_field_settings.custom_field.created_by,custom_field_settings.custom_field.created_by.name,custom_field_settings.custom_field.currency_code,custom_field_settings.custom_field.custom_label,custom_field_settings.custom_field.custom_label_position,custom_field_settings.custom_field.date_value,custom_field_settings.custom_field.date_value.date,custom_field_settings.custom_field.date_value.date_time,custom_field_settings.custom_field.default_access_level,custom_field_settings.custom_field.description,custom_field_settings.custom_field.display_value,custom_field_settings.custom_field.enabled,custom_field_settings.custom_field.enum_options,custom_field_settings.custom_field.enum_options.color,custom_field_settings.custom_field.enum_options.enabled,custom_field_settings.custom_field.enum_options.name,custom_field_settings.custom_field.enum_value,custom_field_settings.custom_field.enum_value.color,custom_field_settings.custom_field.enum_value.enabled,custom_field_settings.custom_field.enum_value.name,custom_field_settings.custom_field.format,custom_field_settings.custom_field.has_notifications_enabled,custom_field_settings.custom_field.id_prefix,custom_field_settings.custom_field.input_restrictions,custom_field_settings.custom_field.is_formula_field,custom_field_settings.custom_field.is_global_to_workspace,custom_field_settings.custom_field.is_value_read_only,custom_field_settings.custom_field.multi_enum_values,custom_field_settings.custom_field.multi_enum_values.color,custom_field_settings.custom_field.multi_enum_values.enabled,custom_field_settings.custom_field.multi_enum_values.name,custom_field_settings.custom_field.name,custom_field_settings.custom_field.number_value,custom_field_settings.custom_field.people_value,custom_field_settings.custom_field.people_value.name,custom_field_settings.custom_field.precision,custom_field_settings.custom_field.privacy_setting,custom_field_settings.custom_field.reference_value,custom_field_settings.custom_field.reference_value.name,custom_field_settings.custom_field.representation_type,custom_field_settings.custom_field.resource_subtype,custom_field_settings.custom_field.text_value,custom_field_settings.custom_field.type,custom_field_settings.is_important,custom_field_settings.parent,custom_field_settings.parent.name,custom_field_settings.project,custom_field_settings.project.name,custom_fields,custom_fields.date_value,custom_fields.date_value.date,custom_fields.date_value.date_time,custom_fields.display_value,custom_fields.enabled,custom_fields.enum_options,custom_fields.enum_options.color,custom_fields.enum_options.enabled,custom_fields.enum_options.name,custom_fields.enum_value,custom_fields.enum_value.color,custom_fields.enum_value.enabled,custom_fields.enum_value.name,custom_fields.id_prefix,custom_fields.input_restrictions,custom_fields.is_formula_field,custom_fields.multi_enum_values,custom_fields.multi_enum_values.color,custom_fields.multi_enum_values.enabled,custom_fields.multi_enum_values.name,custom_fields.name,custom_fields.number_value,custom_fields.representation_type,custom_fields.text_value,custom_fields.type,default_access_level,default_view,due_date,due_on,followers,followers.name,html_notes,icon,members,members.name,minimum_access_level_for_customization,minimum_access_level_for_sharing,modified_at,name,notes,offset,owner,path,permalink_url,privacy_setting,project_brief,public,start_on,team,team.name,uri,workspace,workspace.name" }; projectsApiInstance.getProjectsForTeam(team_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.projects.getProjectsForTeam(teamGid, {param: "value", param: "value", opt_pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class projects_api_instance = asana.ProjectsApi(api_client) team_gid = "159874" # str | Globally unique identifier for the team. opts = { 'limit': 50, # int | Results per page. The number of objects to return per page. The value must be between 1 and 100. 'offset': "eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9", # 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': False, # bool | Only return projects whose `archived` field takes on the value of this parameter. 'opt_fields': "archived,color,completed,completed_at,completed_by,completed_by.name,created_at,created_from_template,created_from_template.name,current_status,current_status.author,current_status.author.name,current_status.color,current_status.created_at,current_status.created_by,current_status.created_by.name,current_status.html_text,current_status.modified_at,current_status.text,current_status.title,current_status_update,current_status_update.resource_subtype,current_status_update.title,custom_field_settings,custom_field_settings.custom_field,custom_field_settings.custom_field.asana_created_field,custom_field_settings.custom_field.created_by,custom_field_settings.custom_field.created_by.name,custom_field_settings.custom_field.currency_code,custom_field_settings.custom_field.custom_label,custom_field_settings.custom_field.custom_label_position,custom_field_settings.custom_field.date_value,custom_field_settings.custom_field.date_value.date,custom_field_settings.custom_field.date_value.date_time,custom_field_settings.custom_field.default_access_level,custom_field_settings.custom_field.description,custom_field_settings.custom_field.display_value,custom_field_settings.custom_field.enabled,custom_field_settings.custom_field.enum_options,custom_field_settings.custom_field.enum_options.color,custom_field_settings.custom_field.enum_options.enabled,custom_field_settings.custom_field.enum_options.name,custom_field_settings.custom_field.enum_value,custom_field_settings.custom_field.enum_value.color,custom_field_settings.custom_field.enum_value.enabled,custom_field_settings.custom_field.enum_value.name,custom_field_settings.custom_field.format,custom_field_settings.custom_field.has_notifications_enabled,custom_field_settings.custom_field.id_prefix,custom_field_settings.custom_field.input_restrictions,custom_field_settings.custom_field.is_formula_field,custom_field_settings.custom_field.is_global_to_workspace,custom_field_settings.custom_field.is_value_read_only,custom_field_settings.custom_field.multi_enum_values,custom_field_settings.custom_field.multi_enum_values.color,custom_field_settings.custom_field.multi_enum_values.enabled,custom_field_settings.custom_field.multi_enum_values.name,custom_field_settings.custom_field.name,custom_field_settings.custom_field.number_value,custom_field_settings.custom_field.people_value,custom_field_settings.custom_field.people_value.name,custom_field_settings.custom_field.precision,custom_field_settings.custom_field.privacy_setting,custom_field_settings.custom_field.reference_value,custom_field_settings.custom_field.reference_value.name,custom_field_settings.custom_field.representation_type,custom_field_settings.custom_field.resource_subtype,custom_field_settings.custom_field.text_value,custom_field_settings.custom_field.type,custom_field_settings.is_important,custom_field_settings.parent,custom_field_settings.parent.name,custom_field_settings.project,custom_field_settings.project.name,custom_fields,custom_fields.date_value,custom_fields.date_value.date,custom_fields.date_value.date_time,custom_fields.display_value,custom_fields.enabled,custom_fields.enum_options,custom_fields.enum_options.color,custom_fields.enum_options.enabled,custom_fields.enum_options.name,custom_fields.enum_value,custom_fields.enum_value.color,custom_fields.enum_value.enabled,custom_fields.enum_value.name,custom_fields.id_prefix,custom_fields.input_restrictions,custom_fields.is_formula_field,custom_fields.multi_enum_values,custom_fields.multi_enum_values.color,custom_fields.multi_enum_values.enabled,custom_fields.multi_enum_values.name,custom_fields.name,custom_fields.number_value,custom_fields.representation_type,custom_fields.text_value,custom_fields.type,default_access_level,default_view,due_date,due_on,followers,followers.name,html_notes,icon,members,members.name,minimum_access_level_for_customization,minimum_access_level_for_sharing,modified_at,name,notes,offset,owner,path,permalink_url,privacy_setting,project_brief,public,start_on,team,team.name,uri,workspace,workspace.name", # list[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. } try: # Get a team's projects api_response = projects_api_instance.get_projects_for_team(team_gid, opts) for data in api_response: pprint(data) except ApiException as e: print("Exception when calling ProjectsApi->get_projects_for_team: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.projects.get_projects_for_team(team_gid, {'param': 'value', 'param': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- projects->getProjectsForTeam($team_gid, array('param' => 'value', 'param' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.projects.get_projects_for_team(team_gid: 'team_gid', param: "value", param: "value", options: {pretty: true}) post: summary: Create a project in a team description: |- Required scope: projects:write Creates a project shared with the given team. Returns the full record of the newly created project. tags: - Projects operationId: createProjectForTeam parameters: - name: opt_fields in: query description: 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. required: false example: - archived - color - completed - completed_at - completed_by - completed_by.name - created_at - created_from_template - created_from_template.name - current_status - current_status.author - current_status.author.name - current_status.color - current_status.created_at - current_status.created_by - current_status.created_by.name - current_status.html_text - current_status.modified_at - current_status.text - current_status.title - current_status_update - current_status_update.resource_subtype - current_status_update.title - custom_field_settings - custom_field_settings.custom_field - custom_field_settings.custom_field.asana_created_field - custom_field_settings.custom_field.created_by - custom_field_settings.custom_field.created_by.name - custom_field_settings.custom_field.currency_code - custom_field_settings.custom_field.custom_label - custom_field_settings.custom_field.custom_label_position - custom_field_settings.custom_field.date_value - custom_field_settings.custom_field.date_value.date - custom_field_settings.custom_field.date_value.date_time - custom_field_settings.custom_field.default_access_level - custom_field_settings.custom_field.description - custom_field_settings.custom_field.display_value - custom_field_settings.custom_field.enabled - custom_field_settings.custom_field.enum_options - custom_field_settings.custom_field.enum_options.color - custom_field_settings.custom_field.enum_options.enabled - custom_field_settings.custom_field.enum_options.name - custom_field_settings.custom_field.enum_value - custom_field_settings.custom_field.enum_value.color - custom_field_settings.custom_field.enum_value.enabled - custom_field_settings.custom_field.enum_value.name - custom_field_settings.custom_field.format - custom_field_settings.custom_field.has_notifications_enabled - custom_field_settings.custom_field.id_prefix - custom_field_settings.custom_field.input_restrictions - custom_field_settings.custom_field.is_formula_field - custom_field_settings.custom_field.is_global_to_workspace - custom_field_settings.custom_field.is_value_read_only - custom_field_settings.custom_field.multi_enum_values - custom_field_settings.custom_field.multi_enum_values.color - custom_field_settings.custom_field.multi_enum_values.enabled - custom_field_settings.custom_field.multi_enum_values.name - custom_field_settings.custom_field.name - custom_field_settings.custom_field.number_value - custom_field_settings.custom_field.people_value - custom_field_settings.custom_field.people_value.name - custom_field_settings.custom_field.precision - custom_field_settings.custom_field.privacy_setting - custom_field_settings.custom_field.reference_value - custom_field_settings.custom_field.reference_value.name - custom_field_settings.custom_field.representation_type - custom_field_settings.custom_field.resource_subtype - custom_field_settings.custom_field.text_value - custom_field_settings.custom_field.type - custom_field_settings.is_important - custom_field_settings.parent - custom_field_settings.parent.name - custom_field_settings.project - custom_field_settings.project.name - custom_fields - custom_fields.date_value - custom_fields.date_value.date - custom_fields.date_value.date_time - custom_fields.display_value - custom_fields.enabled - custom_fields.enum_options - custom_fields.enum_options.color - custom_fields.enum_options.enabled - custom_fields.enum_options.name - custom_fields.enum_value - custom_fields.enum_value.color - custom_fields.enum_value.enabled - custom_fields.enum_value.name - custom_fields.id_prefix - custom_fields.input_restrictions - custom_fields.is_formula_field - custom_fields.multi_enum_values - custom_fields.multi_enum_values.color - custom_fields.multi_enum_values.enabled - custom_fields.multi_enum_values.name - custom_fields.name - custom_fields.number_value - custom_fields.representation_type - custom_fields.text_value - custom_fields.type - default_access_level - default_view - due_date - due_on - followers - followers.name - html_notes - icon - members - members.name - minimum_access_level_for_customization - minimum_access_level_for_sharing - modified_at - name - notes - owner - permalink_url - privacy_setting - project_brief - public - start_on - team - team.name - workspace - workspace.name schema: type: array items: type: string enum: - archived - color - completed - completed_at - completed_by - completed_by.name - created_at - created_from_template - created_from_template.name - current_status - current_status.author - current_status.author.name - current_status.color - current_status.created_at - current_status.created_by - current_status.created_by.name - current_status.html_text - current_status.modified_at - current_status.text - current_status.title - current_status_update - current_status_update.resource_subtype - current_status_update.title - custom_field_settings - custom_field_settings.custom_field - custom_field_settings.custom_field.asana_created_field - custom_field_settings.custom_field.created_by - custom_field_settings.custom_field.created_by.name - custom_field_settings.custom_field.currency_code - custom_field_settings.custom_field.custom_label - custom_field_settings.custom_field.custom_label_position - custom_field_settings.custom_field.date_value - custom_field_settings.custom_field.date_value.date - custom_field_settings.custom_field.date_value.date_time - custom_field_settings.custom_field.default_access_level - custom_field_settings.custom_field.description - custom_field_settings.custom_field.display_value - custom_field_settings.custom_field.enabled - custom_field_settings.custom_field.enum_options - custom_field_settings.custom_field.enum_options.color - custom_field_settings.custom_field.enum_options.enabled - custom_field_settings.custom_field.enum_options.name - custom_field_settings.custom_field.enum_value - custom_field_settings.custom_field.enum_value.color - custom_field_settings.custom_field.enum_value.enabled - custom_field_settings.custom_field.enum_value.name - custom_field_settings.custom_field.format - custom_field_settings.custom_field.has_notifications_enabled - custom_field_settings.custom_field.id_prefix - custom_field_settings.custom_field.input_restrictions - custom_field_settings.custom_field.is_formula_field - custom_field_settings.custom_field.is_global_to_workspace - custom_field_settings.custom_field.is_value_read_only - custom_field_settings.custom_field.multi_enum_values - custom_field_settings.custom_field.multi_enum_values.color - custom_field_settings.custom_field.multi_enum_values.enabled - custom_field_settings.custom_field.multi_enum_values.name - custom_field_settings.custom_field.name - custom_field_settings.custom_field.number_value - custom_field_settings.custom_field.people_value - custom_field_settings.custom_field.people_value.name - custom_field_settings.custom_field.precision - custom_field_settings.custom_field.privacy_setting - custom_field_settings.custom_field.reference_value - custom_field_settings.custom_field.reference_value.name - custom_field_settings.custom_field.representation_type - custom_field_settings.custom_field.resource_subtype - custom_field_settings.custom_field.text_value - custom_field_settings.custom_field.type - custom_field_settings.is_important - custom_field_settings.parent - custom_field_settings.parent.name - custom_field_settings.project - custom_field_settings.project.name - custom_fields - custom_fields.date_value - custom_fields.date_value.date - custom_fields.date_value.date_time - custom_fields.display_value - custom_fields.enabled - custom_fields.enum_options - custom_fields.enum_options.color - custom_fields.enum_options.enabled - custom_fields.enum_options.name - custom_fields.enum_value - custom_fields.enum_value.color - custom_fields.enum_value.enabled - custom_fields.enum_value.name - custom_fields.id_prefix - custom_fields.input_restrictions - custom_fields.is_formula_field - custom_fields.multi_enum_values - custom_fields.multi_enum_values.color - custom_fields.multi_enum_values.enabled - custom_fields.multi_enum_values.name - custom_fields.name - custom_fields.number_value - custom_fields.representation_type - custom_fields.text_value - custom_fields.type - default_access_level - default_view - due_date - due_on - followers - followers.name - html_notes - icon - members - members.name - minimum_access_level_for_customization - minimum_access_level_for_sharing - modified_at - name - notes - owner - permalink_url - privacy_setting - project_brief - public - start_on - team - team.name - workspace - workspace.name style: form explode: false requestBody: description: The new project to create. required: true content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/ProjectRequest' responses: 201: description: Successfully created the specified project. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/ProjectResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: - projects:write x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); Project result = client.projects.createProjectForTeam(teamGid) .data("field", "value") .data("field", "value") .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let projectsApiInstance = new Asana.ProjectsApi(client); let body = {"data": {"": "", "": "",}}; // Object | The new project to create. let team_gid = "159874"; // String | Globally unique identifier for the team. let opts = { 'opt_fields': "archived,color,completed,completed_at,completed_by,completed_by.name,created_at,created_from_template,created_from_template.name,current_status,current_status.author,current_status.author.name,current_status.color,current_status.created_at,current_status.created_by,current_status.created_by.name,current_status.html_text,current_status.modified_at,current_status.text,current_status.title,current_status_update,current_status_update.resource_subtype,current_status_update.title,custom_field_settings,custom_field_settings.custom_field,custom_field_settings.custom_field.asana_created_field,custom_field_settings.custom_field.created_by,custom_field_settings.custom_field.created_by.name,custom_field_settings.custom_field.currency_code,custom_field_settings.custom_field.custom_label,custom_field_settings.custom_field.custom_label_position,custom_field_settings.custom_field.date_value,custom_field_settings.custom_field.date_value.date,custom_field_settings.custom_field.date_value.date_time,custom_field_settings.custom_field.default_access_level,custom_field_settings.custom_field.description,custom_field_settings.custom_field.display_value,custom_field_settings.custom_field.enabled,custom_field_settings.custom_field.enum_options,custom_field_settings.custom_field.enum_options.color,custom_field_settings.custom_field.enum_options.enabled,custom_field_settings.custom_field.enum_options.name,custom_field_settings.custom_field.enum_value,custom_field_settings.custom_field.enum_value.color,custom_field_settings.custom_field.enum_value.enabled,custom_field_settings.custom_field.enum_value.name,custom_field_settings.custom_field.format,custom_field_settings.custom_field.has_notifications_enabled,custom_field_settings.custom_field.id_prefix,custom_field_settings.custom_field.input_restrictions,custom_field_settings.custom_field.is_formula_field,custom_field_settings.custom_field.is_global_to_workspace,custom_field_settings.custom_field.is_value_read_only,custom_field_settings.custom_field.multi_enum_values,custom_field_settings.custom_field.multi_enum_values.color,custom_field_settings.custom_field.multi_enum_values.enabled,custom_field_settings.custom_field.multi_enum_values.name,custom_field_settings.custom_field.name,custom_field_settings.custom_field.number_value,custom_field_settings.custom_field.people_value,custom_field_settings.custom_field.people_value.name,custom_field_settings.custom_field.precision,custom_field_settings.custom_field.privacy_setting,custom_field_settings.custom_field.reference_value,custom_field_settings.custom_field.reference_value.name,custom_field_settings.custom_field.representation_type,custom_field_settings.custom_field.resource_subtype,custom_field_settings.custom_field.text_value,custom_field_settings.custom_field.type,custom_field_settings.is_important,custom_field_settings.parent,custom_field_settings.parent.name,custom_field_settings.project,custom_field_settings.project.name,custom_fields,custom_fields.date_value,custom_fields.date_value.date,custom_fields.date_value.date_time,custom_fields.display_value,custom_fields.enabled,custom_fields.enum_options,custom_fields.enum_options.color,custom_fields.enum_options.enabled,custom_fields.enum_options.name,custom_fields.enum_value,custom_fields.enum_value.color,custom_fields.enum_value.enabled,custom_fields.enum_value.name,custom_fields.id_prefix,custom_fields.input_restrictions,custom_fields.is_formula_field,custom_fields.multi_enum_values,custom_fields.multi_enum_values.color,custom_fields.multi_enum_values.enabled,custom_fields.multi_enum_values.name,custom_fields.name,custom_fields.number_value,custom_fields.representation_type,custom_fields.text_value,custom_fields.type,default_access_level,default_view,due_date,due_on,followers,followers.name,html_notes,icon,members,members.name,minimum_access_level_for_customization,minimum_access_level_for_sharing,modified_at,name,notes,owner,permalink_url,privacy_setting,project_brief,public,start_on,team,team.name,workspace,workspace.name" }; projectsApiInstance.createProjectForTeam(body, team_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.projects.createProjectForTeam(teamGid, {field: "value", field: "value", pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class projects_api_instance = asana.ProjectsApi(api_client) body = {"data": {"": "", "": "",}} # dict | The new project to create. team_gid = "159874" # str | Globally unique identifier for the team. opts = { 'opt_fields': "archived,color,completed,completed_at,completed_by,completed_by.name,created_at,created_from_template,created_from_template.name,current_status,current_status.author,current_status.author.name,current_status.color,current_status.created_at,current_status.created_by,current_status.created_by.name,current_status.html_text,current_status.modified_at,current_status.text,current_status.title,current_status_update,current_status_update.resource_subtype,current_status_update.title,custom_field_settings,custom_field_settings.custom_field,custom_field_settings.custom_field.asana_created_field,custom_field_settings.custom_field.created_by,custom_field_settings.custom_field.created_by.name,custom_field_settings.custom_field.currency_code,custom_field_settings.custom_field.custom_label,custom_field_settings.custom_field.custom_label_position,custom_field_settings.custom_field.date_value,custom_field_settings.custom_field.date_value.date,custom_field_settings.custom_field.date_value.date_time,custom_field_settings.custom_field.default_access_level,custom_field_settings.custom_field.description,custom_field_settings.custom_field.display_value,custom_field_settings.custom_field.enabled,custom_field_settings.custom_field.enum_options,custom_field_settings.custom_field.enum_options.color,custom_field_settings.custom_field.enum_options.enabled,custom_field_settings.custom_field.enum_options.name,custom_field_settings.custom_field.enum_value,custom_field_settings.custom_field.enum_value.color,custom_field_settings.custom_field.enum_value.enabled,custom_field_settings.custom_field.enum_value.name,custom_field_settings.custom_field.format,custom_field_settings.custom_field.has_notifications_enabled,custom_field_settings.custom_field.id_prefix,custom_field_settings.custom_field.input_restrictions,custom_field_settings.custom_field.is_formula_field,custom_field_settings.custom_field.is_global_to_workspace,custom_field_settings.custom_field.is_value_read_only,custom_field_settings.custom_field.multi_enum_values,custom_field_settings.custom_field.multi_enum_values.color,custom_field_settings.custom_field.multi_enum_values.enabled,custom_field_settings.custom_field.multi_enum_values.name,custom_field_settings.custom_field.name,custom_field_settings.custom_field.number_value,custom_field_settings.custom_field.people_value,custom_field_settings.custom_field.people_value.name,custom_field_settings.custom_field.precision,custom_field_settings.custom_field.privacy_setting,custom_field_settings.custom_field.reference_value,custom_field_settings.custom_field.reference_value.name,custom_field_settings.custom_field.representation_type,custom_field_settings.custom_field.resource_subtype,custom_field_settings.custom_field.text_value,custom_field_settings.custom_field.type,custom_field_settings.is_important,custom_field_settings.parent,custom_field_settings.parent.name,custom_field_settings.project,custom_field_settings.project.name,custom_fields,custom_fields.date_value,custom_fields.date_value.date,custom_fields.date_value.date_time,custom_fields.display_value,custom_fields.enabled,custom_fields.enum_options,custom_fields.enum_options.color,custom_fields.enum_options.enabled,custom_fields.enum_options.name,custom_fields.enum_value,custom_fields.enum_value.color,custom_fields.enum_value.enabled,custom_fields.enum_value.name,custom_fields.id_prefix,custom_fields.input_restrictions,custom_fields.is_formula_field,custom_fields.multi_enum_values,custom_fields.multi_enum_values.color,custom_fields.multi_enum_values.enabled,custom_fields.multi_enum_values.name,custom_fields.name,custom_fields.number_value,custom_fields.representation_type,custom_fields.text_value,custom_fields.type,default_access_level,default_view,due_date,due_on,followers,followers.name,html_notes,icon,members,members.name,minimum_access_level_for_customization,minimum_access_level_for_sharing,modified_at,name,notes,owner,permalink_url,privacy_setting,project_brief,public,start_on,team,team.name,workspace,workspace.name", # list[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. } try: # Create a project in a team api_response = projects_api_instance.create_project_for_team(body, team_gid, opts) pprint(api_response) except ApiException as e: print("Exception when calling ProjectsApi->create_project_for_team: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.projects.create_project_for_team(team_gid, {'field': 'value', 'field': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- projects->createProjectForTeam($team_gid, array('field' => 'value', 'field' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.projects.create_project_for_team(team_gid: 'team_gid', field: "value", field: "value", options: {pretty: true}) /workspaces/{workspace_gid}/projects: parameters: - $ref: '#/components/parameters/workspace_path_gid' - $ref: '#/components/parameters/pretty' get: summary: Get all projects in a workspace description: |- Required scope: projects:read Returns the compact project records for all projects in the workspace. *Note: This endpoint may timeout for large domains. To fetch projects shared with a specific team, use `GET /memberships` with `member` set to the team GID and `resource_subtype` set to `project_membership`.* tags: - Projects operationId: getProjectsForWorkspace parameters: - $ref: '#/components/parameters/limit' - $ref: '#/components/parameters/offset' - $ref: '#/components/parameters/archived_query_param' - name: opt_fields in: query description: 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. required: false example: - archived - color - completed - completed_at - completed_by - completed_by.name - created_at - created_from_template - created_from_template.name - current_status - current_status.author - current_status.author.name - current_status.color - current_status.created_at - current_status.created_by - current_status.created_by.name - current_status.html_text - current_status.modified_at - current_status.text - current_status.title - current_status_update - current_status_update.resource_subtype - current_status_update.title - custom_field_settings - custom_field_settings.custom_field - custom_field_settings.custom_field.asana_created_field - custom_field_settings.custom_field.created_by - custom_field_settings.custom_field.created_by.name - custom_field_settings.custom_field.currency_code - custom_field_settings.custom_field.custom_label - custom_field_settings.custom_field.custom_label_position - custom_field_settings.custom_field.date_value - custom_field_settings.custom_field.date_value.date - custom_field_settings.custom_field.date_value.date_time - custom_field_settings.custom_field.default_access_level - custom_field_settings.custom_field.description - custom_field_settings.custom_field.display_value - custom_field_settings.custom_field.enabled - custom_field_settings.custom_field.enum_options - custom_field_settings.custom_field.enum_options.color - custom_field_settings.custom_field.enum_options.enabled - custom_field_settings.custom_field.enum_options.name - custom_field_settings.custom_field.enum_value - custom_field_settings.custom_field.enum_value.color - custom_field_settings.custom_field.enum_value.enabled - custom_field_settings.custom_field.enum_value.name - custom_field_settings.custom_field.format - custom_field_settings.custom_field.has_notifications_enabled - custom_field_settings.custom_field.id_prefix - custom_field_settings.custom_field.input_restrictions - custom_field_settings.custom_field.is_formula_field - custom_field_settings.custom_field.is_global_to_workspace - custom_field_settings.custom_field.is_value_read_only - custom_field_settings.custom_field.multi_enum_values - custom_field_settings.custom_field.multi_enum_values.color - custom_field_settings.custom_field.multi_enum_values.enabled - custom_field_settings.custom_field.multi_enum_values.name - custom_field_settings.custom_field.name - custom_field_settings.custom_field.number_value - custom_field_settings.custom_field.people_value - custom_field_settings.custom_field.people_value.name - custom_field_settings.custom_field.precision - custom_field_settings.custom_field.privacy_setting - custom_field_settings.custom_field.reference_value - custom_field_settings.custom_field.reference_value.name - custom_field_settings.custom_field.representation_type - custom_field_settings.custom_field.resource_subtype - custom_field_settings.custom_field.text_value - custom_field_settings.custom_field.type - custom_field_settings.is_important - custom_field_settings.parent - custom_field_settings.parent.name - custom_field_settings.project - custom_field_settings.project.name - custom_fields - custom_fields.date_value - custom_fields.date_value.date - custom_fields.date_value.date_time - custom_fields.display_value - custom_fields.enabled - custom_fields.enum_options - custom_fields.enum_options.color - custom_fields.enum_options.enabled - custom_fields.enum_options.name - custom_fields.enum_value - custom_fields.enum_value.color - custom_fields.enum_value.enabled - custom_fields.enum_value.name - custom_fields.id_prefix - custom_fields.input_restrictions - custom_fields.is_formula_field - custom_fields.multi_enum_values - custom_fields.multi_enum_values.color - custom_fields.multi_enum_values.enabled - custom_fields.multi_enum_values.name - custom_fields.name - custom_fields.number_value - custom_fields.representation_type - custom_fields.text_value - custom_fields.type - default_access_level - default_view - due_date - due_on - followers - followers.name - html_notes - icon - members - members.name - minimum_access_level_for_customization - minimum_access_level_for_sharing - modified_at - name - notes - offset - owner - path - permalink_url - privacy_setting - project_brief - public - start_on - team - team.name - uri - workspace - workspace.name schema: type: array items: type: string enum: - archived - color - completed - completed_at - completed_by - completed_by.name - created_at - created_from_template - created_from_template.name - current_status - current_status.author - current_status.author.name - current_status.color - current_status.created_at - current_status.created_by - current_status.created_by.name - current_status.html_text - current_status.modified_at - current_status.text - current_status.title - current_status_update - current_status_update.resource_subtype - current_status_update.title - custom_field_settings - custom_field_settings.custom_field - custom_field_settings.custom_field.asana_created_field - custom_field_settings.custom_field.created_by - custom_field_settings.custom_field.created_by.name - custom_field_settings.custom_field.currency_code - custom_field_settings.custom_field.custom_label - custom_field_settings.custom_field.custom_label_position - custom_field_settings.custom_field.date_value - custom_field_settings.custom_field.date_value.date - custom_field_settings.custom_field.date_value.date_time - custom_field_settings.custom_field.default_access_level - custom_field_settings.custom_field.description - custom_field_settings.custom_field.display_value - custom_field_settings.custom_field.enabled - custom_field_settings.custom_field.enum_options - custom_field_settings.custom_field.enum_options.color - custom_field_settings.custom_field.enum_options.enabled - custom_field_settings.custom_field.enum_options.name - custom_field_settings.custom_field.enum_value - custom_field_settings.custom_field.enum_value.color - custom_field_settings.custom_field.enum_value.enabled - custom_field_settings.custom_field.enum_value.name - custom_field_settings.custom_field.format - custom_field_settings.custom_field.has_notifications_enabled - custom_field_settings.custom_field.id_prefix - custom_field_settings.custom_field.input_restrictions - custom_field_settings.custom_field.is_formula_field - custom_field_settings.custom_field.is_global_to_workspace - custom_field_settings.custom_field.is_value_read_only - custom_field_settings.custom_field.multi_enum_values - custom_field_settings.custom_field.multi_enum_values.color - custom_field_settings.custom_field.multi_enum_values.enabled - custom_field_settings.custom_field.multi_enum_values.name - custom_field_settings.custom_field.name - custom_field_settings.custom_field.number_value - custom_field_settings.custom_field.people_value - custom_field_settings.custom_field.people_value.name - custom_field_settings.custom_field.precision - custom_field_settings.custom_field.privacy_setting - custom_field_settings.custom_field.reference_value - custom_field_settings.custom_field.reference_value.name - custom_field_settings.custom_field.representation_type - custom_field_settings.custom_field.resource_subtype - custom_field_settings.custom_field.text_value - custom_field_settings.custom_field.type - custom_field_settings.is_important - custom_field_settings.parent - custom_field_settings.parent.name - custom_field_settings.project - custom_field_settings.project.name - custom_fields - custom_fields.date_value - custom_fields.date_value.date - custom_fields.date_value.date_time - custom_fields.display_value - custom_fields.enabled - custom_fields.enum_options - custom_fields.enum_options.color - custom_fields.enum_options.enabled - custom_fields.enum_options.name - custom_fields.enum_value - custom_fields.enum_value.color - custom_fields.enum_value.enabled - custom_fields.enum_value.name - custom_fields.id_prefix - custom_fields.input_restrictions - custom_fields.is_formula_field - custom_fields.multi_enum_values - custom_fields.multi_enum_values.color - custom_fields.multi_enum_values.enabled - custom_fields.multi_enum_values.name - custom_fields.name - custom_fields.number_value - custom_fields.representation_type - custom_fields.text_value - custom_fields.type - default_access_level - default_view - due_date - due_on - followers - followers.name - html_notes - icon - members - members.name - minimum_access_level_for_customization - minimum_access_level_for_sharing - modified_at - name - notes - offset - owner - path - permalink_url - privacy_setting - project_brief - public - start_on - team - team.name - uri - workspace - workspace.name style: form explode: false responses: 200: description: Successfully retrieved the requested workspace's projects. content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/ProjectCompact' next_page: $ref: '#/components/schemas/NextPage' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: - projects:read x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); List result = client.projects.getProjectsForWorkspace(workspaceGid, archived) .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let projectsApiInstance = new Asana.ProjectsApi(client); let workspace_gid = "12345"; // String | Globally unique identifier for the workspace or organization. let opts = { 'limit': 50, 'offset': "eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9", 'archived': false, 'opt_fields': "archived,color,completed,completed_at,completed_by,completed_by.name,created_at,created_from_template,created_from_template.name,current_status,current_status.author,current_status.author.name,current_status.color,current_status.created_at,current_status.created_by,current_status.created_by.name,current_status.html_text,current_status.modified_at,current_status.text,current_status.title,current_status_update,current_status_update.resource_subtype,current_status_update.title,custom_field_settings,custom_field_settings.custom_field,custom_field_settings.custom_field.asana_created_field,custom_field_settings.custom_field.created_by,custom_field_settings.custom_field.created_by.name,custom_field_settings.custom_field.currency_code,custom_field_settings.custom_field.custom_label,custom_field_settings.custom_field.custom_label_position,custom_field_settings.custom_field.date_value,custom_field_settings.custom_field.date_value.date,custom_field_settings.custom_field.date_value.date_time,custom_field_settings.custom_field.default_access_level,custom_field_settings.custom_field.description,custom_field_settings.custom_field.display_value,custom_field_settings.custom_field.enabled,custom_field_settings.custom_field.enum_options,custom_field_settings.custom_field.enum_options.color,custom_field_settings.custom_field.enum_options.enabled,custom_field_settings.custom_field.enum_options.name,custom_field_settings.custom_field.enum_value,custom_field_settings.custom_field.enum_value.color,custom_field_settings.custom_field.enum_value.enabled,custom_field_settings.custom_field.enum_value.name,custom_field_settings.custom_field.format,custom_field_settings.custom_field.has_notifications_enabled,custom_field_settings.custom_field.id_prefix,custom_field_settings.custom_field.input_restrictions,custom_field_settings.custom_field.is_formula_field,custom_field_settings.custom_field.is_global_to_workspace,custom_field_settings.custom_field.is_value_read_only,custom_field_settings.custom_field.multi_enum_values,custom_field_settings.custom_field.multi_enum_values.color,custom_field_settings.custom_field.multi_enum_values.enabled,custom_field_settings.custom_field.multi_enum_values.name,custom_field_settings.custom_field.name,custom_field_settings.custom_field.number_value,custom_field_settings.custom_field.people_value,custom_field_settings.custom_field.people_value.name,custom_field_settings.custom_field.precision,custom_field_settings.custom_field.privacy_setting,custom_field_settings.custom_field.reference_value,custom_field_settings.custom_field.reference_value.name,custom_field_settings.custom_field.representation_type,custom_field_settings.custom_field.resource_subtype,custom_field_settings.custom_field.text_value,custom_field_settings.custom_field.type,custom_field_settings.is_important,custom_field_settings.parent,custom_field_settings.parent.name,custom_field_settings.project,custom_field_settings.project.name,custom_fields,custom_fields.date_value,custom_fields.date_value.date,custom_fields.date_value.date_time,custom_fields.display_value,custom_fields.enabled,custom_fields.enum_options,custom_fields.enum_options.color,custom_fields.enum_options.enabled,custom_fields.enum_options.name,custom_fields.enum_value,custom_fields.enum_value.color,custom_fields.enum_value.enabled,custom_fields.enum_value.name,custom_fields.id_prefix,custom_fields.input_restrictions,custom_fields.is_formula_field,custom_fields.multi_enum_values,custom_fields.multi_enum_values.color,custom_fields.multi_enum_values.enabled,custom_fields.multi_enum_values.name,custom_fields.name,custom_fields.number_value,custom_fields.representation_type,custom_fields.text_value,custom_fields.type,default_access_level,default_view,due_date,due_on,followers,followers.name,html_notes,icon,members,members.name,minimum_access_level_for_customization,minimum_access_level_for_sharing,modified_at,name,notes,offset,owner,path,permalink_url,privacy_setting,project_brief,public,start_on,team,team.name,uri,workspace,workspace.name" }; projectsApiInstance.getProjectsForWorkspace(workspace_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.projects.getProjectsForWorkspace(workspaceGid, {param: "value", param: "value", opt_pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class projects_api_instance = asana.ProjectsApi(api_client) workspace_gid = "12345" # str | Globally unique identifier for the workspace or organization. opts = { 'limit': 50, # int | Results per page. The number of objects to return per page. The value must be between 1 and 100. 'offset': "eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9", # 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': False, # bool | Only return projects whose `archived` field takes on the value of this parameter. 'opt_fields': "archived,color,completed,completed_at,completed_by,completed_by.name,created_at,created_from_template,created_from_template.name,current_status,current_status.author,current_status.author.name,current_status.color,current_status.created_at,current_status.created_by,current_status.created_by.name,current_status.html_text,current_status.modified_at,current_status.text,current_status.title,current_status_update,current_status_update.resource_subtype,current_status_update.title,custom_field_settings,custom_field_settings.custom_field,custom_field_settings.custom_field.asana_created_field,custom_field_settings.custom_field.created_by,custom_field_settings.custom_field.created_by.name,custom_field_settings.custom_field.currency_code,custom_field_settings.custom_field.custom_label,custom_field_settings.custom_field.custom_label_position,custom_field_settings.custom_field.date_value,custom_field_settings.custom_field.date_value.date,custom_field_settings.custom_field.date_value.date_time,custom_field_settings.custom_field.default_access_level,custom_field_settings.custom_field.description,custom_field_settings.custom_field.display_value,custom_field_settings.custom_field.enabled,custom_field_settings.custom_field.enum_options,custom_field_settings.custom_field.enum_options.color,custom_field_settings.custom_field.enum_options.enabled,custom_field_settings.custom_field.enum_options.name,custom_field_settings.custom_field.enum_value,custom_field_settings.custom_field.enum_value.color,custom_field_settings.custom_field.enum_value.enabled,custom_field_settings.custom_field.enum_value.name,custom_field_settings.custom_field.format,custom_field_settings.custom_field.has_notifications_enabled,custom_field_settings.custom_field.id_prefix,custom_field_settings.custom_field.input_restrictions,custom_field_settings.custom_field.is_formula_field,custom_field_settings.custom_field.is_global_to_workspace,custom_field_settings.custom_field.is_value_read_only,custom_field_settings.custom_field.multi_enum_values,custom_field_settings.custom_field.multi_enum_values.color,custom_field_settings.custom_field.multi_enum_values.enabled,custom_field_settings.custom_field.multi_enum_values.name,custom_field_settings.custom_field.name,custom_field_settings.custom_field.number_value,custom_field_settings.custom_field.people_value,custom_field_settings.custom_field.people_value.name,custom_field_settings.custom_field.precision,custom_field_settings.custom_field.privacy_setting,custom_field_settings.custom_field.reference_value,custom_field_settings.custom_field.reference_value.name,custom_field_settings.custom_field.representation_type,custom_field_settings.custom_field.resource_subtype,custom_field_settings.custom_field.text_value,custom_field_settings.custom_field.type,custom_field_settings.is_important,custom_field_settings.parent,custom_field_settings.parent.name,custom_field_settings.project,custom_field_settings.project.name,custom_fields,custom_fields.date_value,custom_fields.date_value.date,custom_fields.date_value.date_time,custom_fields.display_value,custom_fields.enabled,custom_fields.enum_options,custom_fields.enum_options.color,custom_fields.enum_options.enabled,custom_fields.enum_options.name,custom_fields.enum_value,custom_fields.enum_value.color,custom_fields.enum_value.enabled,custom_fields.enum_value.name,custom_fields.id_prefix,custom_fields.input_restrictions,custom_fields.is_formula_field,custom_fields.multi_enum_values,custom_fields.multi_enum_values.color,custom_fields.multi_enum_values.enabled,custom_fields.multi_enum_values.name,custom_fields.name,custom_fields.number_value,custom_fields.representation_type,custom_fields.text_value,custom_fields.type,default_access_level,default_view,due_date,due_on,followers,followers.name,html_notes,icon,members,members.name,minimum_access_level_for_customization,minimum_access_level_for_sharing,modified_at,name,notes,offset,owner,path,permalink_url,privacy_setting,project_brief,public,start_on,team,team.name,uri,workspace,workspace.name", # list[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. } try: # Get all projects in a workspace api_response = projects_api_instance.get_projects_for_workspace(workspace_gid, opts) for data in api_response: pprint(data) except ApiException as e: print("Exception when calling ProjectsApi->get_projects_for_workspace: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.projects.get_projects_for_workspace(workspace_gid, {'param': 'value', 'param': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- projects->getProjectsForWorkspace($workspace_gid, array('param' => 'value', 'param' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.projects.get_projects_for_workspace(workspace_gid: 'workspace_gid', param: "value", param: "value", options: {pretty: true}) post: summary: Create a project in a workspace description: |- Required scope: projects:write Creates a project in the workspace. If the workspace for your project is an organization, you must also supply a team to share the project with. Returns the full record of the newly created project. tags: - Projects operationId: createProjectForWorkspace parameters: - name: opt_fields in: query description: 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. required: false example: - archived - color - completed - completed_at - completed_by - completed_by.name - created_at - created_from_template - created_from_template.name - current_status - current_status.author - current_status.author.name - current_status.color - current_status.created_at - current_status.created_by - current_status.created_by.name - current_status.html_text - current_status.modified_at - current_status.text - current_status.title - current_status_update - current_status_update.resource_subtype - current_status_update.title - custom_field_settings - custom_field_settings.custom_field - custom_field_settings.custom_field.asana_created_field - custom_field_settings.custom_field.created_by - custom_field_settings.custom_field.created_by.name - custom_field_settings.custom_field.currency_code - custom_field_settings.custom_field.custom_label - custom_field_settings.custom_field.custom_label_position - custom_field_settings.custom_field.date_value - custom_field_settings.custom_field.date_value.date - custom_field_settings.custom_field.date_value.date_time - custom_field_settings.custom_field.default_access_level - custom_field_settings.custom_field.description - custom_field_settings.custom_field.display_value - custom_field_settings.custom_field.enabled - custom_field_settings.custom_field.enum_options - custom_field_settings.custom_field.enum_options.color - custom_field_settings.custom_field.enum_options.enabled - custom_field_settings.custom_field.enum_options.name - custom_field_settings.custom_field.enum_value - custom_field_settings.custom_field.enum_value.color - custom_field_settings.custom_field.enum_value.enabled - custom_field_settings.custom_field.enum_value.name - custom_field_settings.custom_field.format - custom_field_settings.custom_field.has_notifications_enabled - custom_field_settings.custom_field.id_prefix - custom_field_settings.custom_field.input_restrictions - custom_field_settings.custom_field.is_formula_field - custom_field_settings.custom_field.is_global_to_workspace - custom_field_settings.custom_field.is_value_read_only - custom_field_settings.custom_field.multi_enum_values - custom_field_settings.custom_field.multi_enum_values.color - custom_field_settings.custom_field.multi_enum_values.enabled - custom_field_settings.custom_field.multi_enum_values.name - custom_field_settings.custom_field.name - custom_field_settings.custom_field.number_value - custom_field_settings.custom_field.people_value - custom_field_settings.custom_field.people_value.name - custom_field_settings.custom_field.precision - custom_field_settings.custom_field.privacy_setting - custom_field_settings.custom_field.reference_value - custom_field_settings.custom_field.reference_value.name - custom_field_settings.custom_field.representation_type - custom_field_settings.custom_field.resource_subtype - custom_field_settings.custom_field.text_value - custom_field_settings.custom_field.type - custom_field_settings.is_important - custom_field_settings.parent - custom_field_settings.parent.name - custom_field_settings.project - custom_field_settings.project.name - custom_fields - custom_fields.date_value - custom_fields.date_value.date - custom_fields.date_value.date_time - custom_fields.display_value - custom_fields.enabled - custom_fields.enum_options - custom_fields.enum_options.color - custom_fields.enum_options.enabled - custom_fields.enum_options.name - custom_fields.enum_value - custom_fields.enum_value.color - custom_fields.enum_value.enabled - custom_fields.enum_value.name - custom_fields.id_prefix - custom_fields.input_restrictions - custom_fields.is_formula_field - custom_fields.multi_enum_values - custom_fields.multi_enum_values.color - custom_fields.multi_enum_values.enabled - custom_fields.multi_enum_values.name - custom_fields.name - custom_fields.number_value - custom_fields.representation_type - custom_fields.text_value - custom_fields.type - default_access_level - default_view - due_date - due_on - followers - followers.name - html_notes - icon - members - members.name - minimum_access_level_for_customization - minimum_access_level_for_sharing - modified_at - name - notes - owner - permalink_url - privacy_setting - project_brief - public - start_on - team - team.name - workspace - workspace.name schema: type: array items: type: string enum: - archived - color - completed - completed_at - completed_by - completed_by.name - created_at - created_from_template - created_from_template.name - current_status - current_status.author - current_status.author.name - current_status.color - current_status.created_at - current_status.created_by - current_status.created_by.name - current_status.html_text - current_status.modified_at - current_status.text - current_status.title - current_status_update - current_status_update.resource_subtype - current_status_update.title - custom_field_settings - custom_field_settings.custom_field - custom_field_settings.custom_field.asana_created_field - custom_field_settings.custom_field.created_by - custom_field_settings.custom_field.created_by.name - custom_field_settings.custom_field.currency_code - custom_field_settings.custom_field.custom_label - custom_field_settings.custom_field.custom_label_position - custom_field_settings.custom_field.date_value - custom_field_settings.custom_field.date_value.date - custom_field_settings.custom_field.date_value.date_time - custom_field_settings.custom_field.default_access_level - custom_field_settings.custom_field.description - custom_field_settings.custom_field.display_value - custom_field_settings.custom_field.enabled - custom_field_settings.custom_field.enum_options - custom_field_settings.custom_field.enum_options.color - custom_field_settings.custom_field.enum_options.enabled - custom_field_settings.custom_field.enum_options.name - custom_field_settings.custom_field.enum_value - custom_field_settings.custom_field.enum_value.color - custom_field_settings.custom_field.enum_value.enabled - custom_field_settings.custom_field.enum_value.name - custom_field_settings.custom_field.format - custom_field_settings.custom_field.has_notifications_enabled - custom_field_settings.custom_field.id_prefix - custom_field_settings.custom_field.input_restrictions - custom_field_settings.custom_field.is_formula_field - custom_field_settings.custom_field.is_global_to_workspace - custom_field_settings.custom_field.is_value_read_only - custom_field_settings.custom_field.multi_enum_values - custom_field_settings.custom_field.multi_enum_values.color - custom_field_settings.custom_field.multi_enum_values.enabled - custom_field_settings.custom_field.multi_enum_values.name - custom_field_settings.custom_field.name - custom_field_settings.custom_field.number_value - custom_field_settings.custom_field.people_value - custom_field_settings.custom_field.people_value.name - custom_field_settings.custom_field.precision - custom_field_settings.custom_field.privacy_setting - custom_field_settings.custom_field.reference_value - custom_field_settings.custom_field.reference_value.name - custom_field_settings.custom_field.representation_type - custom_field_settings.custom_field.resource_subtype - custom_field_settings.custom_field.text_value - custom_field_settings.custom_field.type - custom_field_settings.is_important - custom_field_settings.parent - custom_field_settings.parent.name - custom_field_settings.project - custom_field_settings.project.name - custom_fields - custom_fields.date_value - custom_fields.date_value.date - custom_fields.date_value.date_time - custom_fields.display_value - custom_fields.enabled - custom_fields.enum_options - custom_fields.enum_options.color - custom_fields.enum_options.enabled - custom_fields.enum_options.name - custom_fields.enum_value - custom_fields.enum_value.color - custom_fields.enum_value.enabled - custom_fields.enum_value.name - custom_fields.id_prefix - custom_fields.input_restrictions - custom_fields.is_formula_field - custom_fields.multi_enum_values - custom_fields.multi_enum_values.color - custom_fields.multi_enum_values.enabled - custom_fields.multi_enum_values.name - custom_fields.name - custom_fields.number_value - custom_fields.representation_type - custom_fields.text_value - custom_fields.type - default_access_level - default_view - due_date - due_on - followers - followers.name - html_notes - icon - members - members.name - minimum_access_level_for_customization - minimum_access_level_for_sharing - modified_at - name - notes - owner - permalink_url - privacy_setting - project_brief - public - start_on - team - team.name - workspace - workspace.name style: form explode: false requestBody: description: The new project to create. required: true content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/ProjectRequest' responses: 201: description: >- Successfully created a new project in the specified workspace. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/ProjectResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: - projects:write x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); Project result = client.projects.createProjectForWorkspace(workspaceGid) .data("field", "value") .data("field", "value") .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let projectsApiInstance = new Asana.ProjectsApi(client); let body = {"data": {"": "", "": "",}}; // Object | The new project to create. let workspace_gid = "12345"; // String | Globally unique identifier for the workspace or organization. let opts = { 'opt_fields': "archived,color,completed,completed_at,completed_by,completed_by.name,created_at,created_from_template,created_from_template.name,current_status,current_status.author,current_status.author.name,current_status.color,current_status.created_at,current_status.created_by,current_status.created_by.name,current_status.html_text,current_status.modified_at,current_status.text,current_status.title,current_status_update,current_status_update.resource_subtype,current_status_update.title,custom_field_settings,custom_field_settings.custom_field,custom_field_settings.custom_field.asana_created_field,custom_field_settings.custom_field.created_by,custom_field_settings.custom_field.created_by.name,custom_field_settings.custom_field.currency_code,custom_field_settings.custom_field.custom_label,custom_field_settings.custom_field.custom_label_position,custom_field_settings.custom_field.date_value,custom_field_settings.custom_field.date_value.date,custom_field_settings.custom_field.date_value.date_time,custom_field_settings.custom_field.default_access_level,custom_field_settings.custom_field.description,custom_field_settings.custom_field.display_value,custom_field_settings.custom_field.enabled,custom_field_settings.custom_field.enum_options,custom_field_settings.custom_field.enum_options.color,custom_field_settings.custom_field.enum_options.enabled,custom_field_settings.custom_field.enum_options.name,custom_field_settings.custom_field.enum_value,custom_field_settings.custom_field.enum_value.color,custom_field_settings.custom_field.enum_value.enabled,custom_field_settings.custom_field.enum_value.name,custom_field_settings.custom_field.format,custom_field_settings.custom_field.has_notifications_enabled,custom_field_settings.custom_field.id_prefix,custom_field_settings.custom_field.input_restrictions,custom_field_settings.custom_field.is_formula_field,custom_field_settings.custom_field.is_global_to_workspace,custom_field_settings.custom_field.is_value_read_only,custom_field_settings.custom_field.multi_enum_values,custom_field_settings.custom_field.multi_enum_values.color,custom_field_settings.custom_field.multi_enum_values.enabled,custom_field_settings.custom_field.multi_enum_values.name,custom_field_settings.custom_field.name,custom_field_settings.custom_field.number_value,custom_field_settings.custom_field.people_value,custom_field_settings.custom_field.people_value.name,custom_field_settings.custom_field.precision,custom_field_settings.custom_field.privacy_setting,custom_field_settings.custom_field.reference_value,custom_field_settings.custom_field.reference_value.name,custom_field_settings.custom_field.representation_type,custom_field_settings.custom_field.resource_subtype,custom_field_settings.custom_field.text_value,custom_field_settings.custom_field.type,custom_field_settings.is_important,custom_field_settings.parent,custom_field_settings.parent.name,custom_field_settings.project,custom_field_settings.project.name,custom_fields,custom_fields.date_value,custom_fields.date_value.date,custom_fields.date_value.date_time,custom_fields.display_value,custom_fields.enabled,custom_fields.enum_options,custom_fields.enum_options.color,custom_fields.enum_options.enabled,custom_fields.enum_options.name,custom_fields.enum_value,custom_fields.enum_value.color,custom_fields.enum_value.enabled,custom_fields.enum_value.name,custom_fields.id_prefix,custom_fields.input_restrictions,custom_fields.is_formula_field,custom_fields.multi_enum_values,custom_fields.multi_enum_values.color,custom_fields.multi_enum_values.enabled,custom_fields.multi_enum_values.name,custom_fields.name,custom_fields.number_value,custom_fields.representation_type,custom_fields.text_value,custom_fields.type,default_access_level,default_view,due_date,due_on,followers,followers.name,html_notes,icon,members,members.name,minimum_access_level_for_customization,minimum_access_level_for_sharing,modified_at,name,notes,owner,permalink_url,privacy_setting,project_brief,public,start_on,team,team.name,workspace,workspace.name" }; projectsApiInstance.createProjectForWorkspace(body, workspace_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.projects.createProjectForWorkspace(workspaceGid, {field: "value", field: "value", pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class projects_api_instance = asana.ProjectsApi(api_client) body = {"data": {"": "", "": "",}} # dict | The new project to create. workspace_gid = "12345" # str | Globally unique identifier for the workspace or organization. opts = { 'opt_fields': "archived,color,completed,completed_at,completed_by,completed_by.name,created_at,created_from_template,created_from_template.name,current_status,current_status.author,current_status.author.name,current_status.color,current_status.created_at,current_status.created_by,current_status.created_by.name,current_status.html_text,current_status.modified_at,current_status.text,current_status.title,current_status_update,current_status_update.resource_subtype,current_status_update.title,custom_field_settings,custom_field_settings.custom_field,custom_field_settings.custom_field.asana_created_field,custom_field_settings.custom_field.created_by,custom_field_settings.custom_field.created_by.name,custom_field_settings.custom_field.currency_code,custom_field_settings.custom_field.custom_label,custom_field_settings.custom_field.custom_label_position,custom_field_settings.custom_field.date_value,custom_field_settings.custom_field.date_value.date,custom_field_settings.custom_field.date_value.date_time,custom_field_settings.custom_field.default_access_level,custom_field_settings.custom_field.description,custom_field_settings.custom_field.display_value,custom_field_settings.custom_field.enabled,custom_field_settings.custom_field.enum_options,custom_field_settings.custom_field.enum_options.color,custom_field_settings.custom_field.enum_options.enabled,custom_field_settings.custom_field.enum_options.name,custom_field_settings.custom_field.enum_value,custom_field_settings.custom_field.enum_value.color,custom_field_settings.custom_field.enum_value.enabled,custom_field_settings.custom_field.enum_value.name,custom_field_settings.custom_field.format,custom_field_settings.custom_field.has_notifications_enabled,custom_field_settings.custom_field.id_prefix,custom_field_settings.custom_field.input_restrictions,custom_field_settings.custom_field.is_formula_field,custom_field_settings.custom_field.is_global_to_workspace,custom_field_settings.custom_field.is_value_read_only,custom_field_settings.custom_field.multi_enum_values,custom_field_settings.custom_field.multi_enum_values.color,custom_field_settings.custom_field.multi_enum_values.enabled,custom_field_settings.custom_field.multi_enum_values.name,custom_field_settings.custom_field.name,custom_field_settings.custom_field.number_value,custom_field_settings.custom_field.people_value,custom_field_settings.custom_field.people_value.name,custom_field_settings.custom_field.precision,custom_field_settings.custom_field.privacy_setting,custom_field_settings.custom_field.reference_value,custom_field_settings.custom_field.reference_value.name,custom_field_settings.custom_field.representation_type,custom_field_settings.custom_field.resource_subtype,custom_field_settings.custom_field.text_value,custom_field_settings.custom_field.type,custom_field_settings.is_important,custom_field_settings.parent,custom_field_settings.parent.name,custom_field_settings.project,custom_field_settings.project.name,custom_fields,custom_fields.date_value,custom_fields.date_value.date,custom_fields.date_value.date_time,custom_fields.display_value,custom_fields.enabled,custom_fields.enum_options,custom_fields.enum_options.color,custom_fields.enum_options.enabled,custom_fields.enum_options.name,custom_fields.enum_value,custom_fields.enum_value.color,custom_fields.enum_value.enabled,custom_fields.enum_value.name,custom_fields.id_prefix,custom_fields.input_restrictions,custom_fields.is_formula_field,custom_fields.multi_enum_values,custom_fields.multi_enum_values.color,custom_fields.multi_enum_values.enabled,custom_fields.multi_enum_values.name,custom_fields.name,custom_fields.number_value,custom_fields.representation_type,custom_fields.text_value,custom_fields.type,default_access_level,default_view,due_date,due_on,followers,followers.name,html_notes,icon,members,members.name,minimum_access_level_for_customization,minimum_access_level_for_sharing,modified_at,name,notes,owner,permalink_url,privacy_setting,project_brief,public,start_on,team,team.name,workspace,workspace.name", # list[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. } try: # Create a project in a workspace api_response = projects_api_instance.create_project_for_workspace(body, workspace_gid, opts) pprint(api_response) except ApiException as e: print("Exception when calling ProjectsApi->create_project_for_workspace: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.projects.create_project_for_workspace(workspace_gid, {'field': 'value', 'field': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- projects->createProjectForWorkspace($workspace_gid, array('field' => 'value', 'field' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.projects.create_project_for_workspace(workspace_gid: 'workspace_gid', field: "value", field: "value", options: {pretty: true}) /projects/{project_gid}/addCustomFieldSetting: parameters: - $ref: '#/components/parameters/project_path_gid' - $ref: '#/components/parameters/pretty' post: summary: Add a custom field to a project description: |- Required scope: projects:write Custom fields are associated with projects by way of custom field settings. This method creates a setting for the project. tags: - Projects operationId: addCustomFieldSettingForProject parameters: - name: opt_fields in: query description: 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. required: false example: - custom_field - custom_field.asana_created_field - custom_field.created_by - custom_field.created_by.name - custom_field.currency_code - custom_field.custom_label - custom_field.custom_label_position - custom_field.date_value - custom_field.date_value.date - custom_field.date_value.date_time - custom_field.default_access_level - custom_field.description - custom_field.display_value - custom_field.enabled - custom_field.enum_options - custom_field.enum_options.color - custom_field.enum_options.enabled - custom_field.enum_options.name - custom_field.enum_value - custom_field.enum_value.color - custom_field.enum_value.enabled - custom_field.enum_value.name - custom_field.format - custom_field.has_notifications_enabled - custom_field.id_prefix - custom_field.input_restrictions - custom_field.is_formula_field - custom_field.is_global_to_workspace - custom_field.is_value_read_only - custom_field.multi_enum_values - custom_field.multi_enum_values.color - custom_field.multi_enum_values.enabled - custom_field.multi_enum_values.name - custom_field.name - custom_field.number_value - custom_field.people_value - custom_field.people_value.name - custom_field.precision - custom_field.privacy_setting - custom_field.reference_value - custom_field.reference_value.name - custom_field.representation_type - custom_field.resource_subtype - custom_field.text_value - custom_field.type - is_important - parent - parent.name - project - project.name schema: type: array items: type: string enum: - custom_field - custom_field.asana_created_field - custom_field.created_by - custom_field.created_by.name - custom_field.currency_code - custom_field.custom_label - custom_field.custom_label_position - custom_field.date_value - custom_field.date_value.date - custom_field.date_value.date_time - custom_field.default_access_level - custom_field.description - custom_field.display_value - custom_field.enabled - custom_field.enum_options - custom_field.enum_options.color - custom_field.enum_options.enabled - custom_field.enum_options.name - custom_field.enum_value - custom_field.enum_value.color - custom_field.enum_value.enabled - custom_field.enum_value.name - custom_field.format - custom_field.has_notifications_enabled - custom_field.id_prefix - custom_field.input_restrictions - custom_field.is_formula_field - custom_field.is_global_to_workspace - custom_field.is_value_read_only - custom_field.multi_enum_values - custom_field.multi_enum_values.color - custom_field.multi_enum_values.enabled - custom_field.multi_enum_values.name - custom_field.name - custom_field.number_value - custom_field.people_value - custom_field.people_value.name - custom_field.precision - custom_field.privacy_setting - custom_field.reference_value - custom_field.reference_value.name - custom_field.representation_type - custom_field.resource_subtype - custom_field.text_value - custom_field.type - is_important - parent - parent.name - project - project.name style: form explode: false requestBody: description: Information about the custom field setting. required: true content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/AddCustomFieldSettingRequest' responses: 200: description: Successfully added the custom field to the project. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/CustomFieldSettingResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: - projects:write x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); CustomFieldSetting result = client.projects.addCustomFieldSettingForProject(projectGid) .data("field", "value") .data("field", "value") .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let projectsApiInstance = new Asana.ProjectsApi(client); let body = {"data": {"": "", "": "",}}; // Object | Information about the custom field setting. let project_gid = "1331"; // String | Globally unique identifier for the project. let opts = { 'opt_fields': "custom_field,custom_field.asana_created_field,custom_field.created_by,custom_field.created_by.name,custom_field.currency_code,custom_field.custom_label,custom_field.custom_label_position,custom_field.date_value,custom_field.date_value.date,custom_field.date_value.date_time,custom_field.default_access_level,custom_field.description,custom_field.display_value,custom_field.enabled,custom_field.enum_options,custom_field.enum_options.color,custom_field.enum_options.enabled,custom_field.enum_options.name,custom_field.enum_value,custom_field.enum_value.color,custom_field.enum_value.enabled,custom_field.enum_value.name,custom_field.format,custom_field.has_notifications_enabled,custom_field.id_prefix,custom_field.input_restrictions,custom_field.is_formula_field,custom_field.is_global_to_workspace,custom_field.is_value_read_only,custom_field.multi_enum_values,custom_field.multi_enum_values.color,custom_field.multi_enum_values.enabled,custom_field.multi_enum_values.name,custom_field.name,custom_field.number_value,custom_field.people_value,custom_field.people_value.name,custom_field.precision,custom_field.privacy_setting,custom_field.reference_value,custom_field.reference_value.name,custom_field.representation_type,custom_field.resource_subtype,custom_field.text_value,custom_field.type,is_important,parent,parent.name,project,project.name" }; projectsApiInstance.addCustomFieldSettingForProject(body, project_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.projects.addCustomFieldSettingForProject(projectGid, {field: "value", field: "value", pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class projects_api_instance = asana.ProjectsApi(api_client) body = {"data": {"": "", "": "",}} # dict | Information about the custom field setting. project_gid = "1331" # str | Globally unique identifier for the project. opts = { 'opt_fields': "custom_field,custom_field.asana_created_field,custom_field.created_by,custom_field.created_by.name,custom_field.currency_code,custom_field.custom_label,custom_field.custom_label_position,custom_field.date_value,custom_field.date_value.date,custom_field.date_value.date_time,custom_field.default_access_level,custom_field.description,custom_field.display_value,custom_field.enabled,custom_field.enum_options,custom_field.enum_options.color,custom_field.enum_options.enabled,custom_field.enum_options.name,custom_field.enum_value,custom_field.enum_value.color,custom_field.enum_value.enabled,custom_field.enum_value.name,custom_field.format,custom_field.has_notifications_enabled,custom_field.id_prefix,custom_field.input_restrictions,custom_field.is_formula_field,custom_field.is_global_to_workspace,custom_field.is_value_read_only,custom_field.multi_enum_values,custom_field.multi_enum_values.color,custom_field.multi_enum_values.enabled,custom_field.multi_enum_values.name,custom_field.name,custom_field.number_value,custom_field.people_value,custom_field.people_value.name,custom_field.precision,custom_field.privacy_setting,custom_field.reference_value,custom_field.reference_value.name,custom_field.representation_type,custom_field.resource_subtype,custom_field.text_value,custom_field.type,is_important,parent,parent.name,project,project.name", # list[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. } try: # Add a custom field to a project api_response = projects_api_instance.add_custom_field_setting_for_project(body, project_gid, opts) pprint(api_response) except ApiException as e: print("Exception when calling ProjectsApi->add_custom_field_setting_for_project: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.projects.add_custom_field_setting_for_project(project_gid, {'field': 'value', 'field': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- projects->addCustomFieldSettingForProject($project_gid, array('field' => 'value', 'field' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.projects.add_custom_field_setting_for_project(project_gid: 'project_gid', field: "value", field: "value", options: {pretty: true}) /projects/{project_gid}/removeCustomFieldSetting: parameters: - $ref: '#/components/parameters/project_path_gid' - $ref: '#/components/parameters/pretty' post: summary: Remove a custom field from a project description: |- Required scope: projects:write Removes a custom field setting from a project. tags: - Projects operationId: removeCustomFieldSettingForProject security: - personalAccessToken: [] - oauth2: - projects:write requestBody: description: Information about the custom field setting being removed. required: true content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/RemoveCustomFieldSettingRequest' responses: 200: description: Successfully removed the custom field from the project. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/EmptyResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); JsonElement result = client.projects.removeCustomFieldSettingForProject(projectGid) .data("field", "value") .data("field", "value") .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let projectsApiInstance = new Asana.ProjectsApi(client); let body = {"data": {"": "", "": "",}}; // Object | Information about the custom field setting being removed. let project_gid = "1331"; // String | Globally unique identifier for the project. projectsApiInstance.removeCustomFieldSettingForProject(body, project_gid).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.projects.removeCustomFieldSettingForProject(projectGid, {field: "value", field: "value", pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class projects_api_instance = asana.ProjectsApi(api_client) body = {"data": {"": "", "": "",}} # dict | Information about the custom field setting being removed. project_gid = "1331" # str | Globally unique identifier for the project. try: # Remove a custom field from a project api_response = projects_api_instance.remove_custom_field_setting_for_project(body, project_gid) pprint(api_response) except ApiException as e: print("Exception when calling ProjectsApi->remove_custom_field_setting_for_project: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.projects.remove_custom_field_setting_for_project(project_gid, {'field': 'value', 'field': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- projects->removeCustomFieldSettingForProject($project_gid, array('field' => 'value', 'field' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.projects.remove_custom_field_setting_for_project(project_gid: 'project_gid', field: "value", field: "value", options: {pretty: true}) /projects/{project_gid}/task_counts: parameters: - $ref: '#/components/parameters/project_path_gid' - $ref: '#/components/parameters/pretty' get: summary: Get task count of a project description: |- Required scope: projects:read
Field Required Scope
team teams:read
Get an object that holds task count fields. **All fields are excluded by default**. You must [opt in](/docs/inputoutput-options) using `opt_fields` to get any information from this endpoint. This endpoint has an additional [rate limit](/docs/rate-limits) and each field counts especially high against our [cost limits](/docs/rate-limits#cost-limits). Milestones are just tasks, so they are included in the `num_tasks`, `num_incomplete_tasks`, and `num_completed_tasks` counts. tags: - Projects operationId: getTaskCountsForProject parameters: - name: opt_fields in: query description: 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. required: false example: - num_completed_milestones - num_completed_tasks - num_incomplete_milestones - num_incomplete_tasks - num_milestones - num_tasks schema: type: array items: type: string enum: - num_completed_milestones - num_completed_tasks - num_incomplete_milestones - num_incomplete_tasks - num_milestones - num_tasks style: form explode: false responses: 200: description: Successfully retrieved the requested project's task counts. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/TaskCountResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: - projects:read x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); JsonElement result = client.projects.getTaskCountsForProject(projectGid) .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let projectsApiInstance = new Asana.ProjectsApi(client); let project_gid = "1331"; // String | Globally unique identifier for the project. let opts = { 'opt_fields': "num_completed_milestones,num_completed_tasks,num_incomplete_milestones,num_incomplete_tasks,num_milestones,num_tasks" }; projectsApiInstance.getTaskCountsForProject(project_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.projects.getTaskCountsForProject(projectGid, {param: "value", param: "value", opt_pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class projects_api_instance = asana.ProjectsApi(api_client) project_gid = "1331" # str | Globally unique identifier for the project. opts = { 'opt_fields': "num_completed_milestones,num_completed_tasks,num_incomplete_milestones,num_incomplete_tasks,num_milestones,num_tasks", # list[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. } try: # Get task count of a project api_response = projects_api_instance.get_task_counts_for_project(project_gid, opts) pprint(api_response) except ApiException as e: print("Exception when calling ProjectsApi->get_task_counts_for_project: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.projects.get_task_counts_for_project(project_gid, {'param': 'value', 'param': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- projects->getTaskCountsForProject($project_gid, array('param' => 'value', 'param' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.projects.get_task_counts_for_project(project_gid: 'project_gid', param: "value", param: "value", options: {pretty: true}) /projects/{project_gid}/addMembers: parameters: - $ref: '#/components/parameters/project_path_gid' - $ref: '#/components/parameters/pretty' post: summary: Add users to a project description: >- Adds the specified list of users as members of the project. Note that a user being added as a member may also be added as a *follower* as a result of this operation. This is because the user's default notification settings (i.e., in the "Notifications" tab of "My Profile Settings") will override this endpoint's default behavior of setting "Tasks added" notifications to `false`. Returns the updated project record. tags: - Projects operationId: addMembersForProject parameters: - name: opt_fields in: query description: 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. required: false example: - archived - color - completed - completed_at - completed_by - completed_by.name - created_at - created_from_template - created_from_template.name - current_status - current_status.author - current_status.author.name - current_status.color - current_status.created_at - current_status.created_by - current_status.created_by.name - current_status.html_text - current_status.modified_at - current_status.text - current_status.title - current_status_update - current_status_update.resource_subtype - current_status_update.title - custom_field_settings - custom_field_settings.custom_field - custom_field_settings.custom_field.asana_created_field - custom_field_settings.custom_field.created_by - custom_field_settings.custom_field.created_by.name - custom_field_settings.custom_field.currency_code - custom_field_settings.custom_field.custom_label - custom_field_settings.custom_field.custom_label_position - custom_field_settings.custom_field.date_value - custom_field_settings.custom_field.date_value.date - custom_field_settings.custom_field.date_value.date_time - custom_field_settings.custom_field.default_access_level - custom_field_settings.custom_field.description - custom_field_settings.custom_field.display_value - custom_field_settings.custom_field.enabled - custom_field_settings.custom_field.enum_options - custom_field_settings.custom_field.enum_options.color - custom_field_settings.custom_field.enum_options.enabled - custom_field_settings.custom_field.enum_options.name - custom_field_settings.custom_field.enum_value - custom_field_settings.custom_field.enum_value.color - custom_field_settings.custom_field.enum_value.enabled - custom_field_settings.custom_field.enum_value.name - custom_field_settings.custom_field.format - custom_field_settings.custom_field.has_notifications_enabled - custom_field_settings.custom_field.id_prefix - custom_field_settings.custom_field.input_restrictions - custom_field_settings.custom_field.is_formula_field - custom_field_settings.custom_field.is_global_to_workspace - custom_field_settings.custom_field.is_value_read_only - custom_field_settings.custom_field.multi_enum_values - custom_field_settings.custom_field.multi_enum_values.color - custom_field_settings.custom_field.multi_enum_values.enabled - custom_field_settings.custom_field.multi_enum_values.name - custom_field_settings.custom_field.name - custom_field_settings.custom_field.number_value - custom_field_settings.custom_field.people_value - custom_field_settings.custom_field.people_value.name - custom_field_settings.custom_field.precision - custom_field_settings.custom_field.privacy_setting - custom_field_settings.custom_field.reference_value - custom_field_settings.custom_field.reference_value.name - custom_field_settings.custom_field.representation_type - custom_field_settings.custom_field.resource_subtype - custom_field_settings.custom_field.text_value - custom_field_settings.custom_field.type - custom_field_settings.is_important - custom_field_settings.parent - custom_field_settings.parent.name - custom_field_settings.project - custom_field_settings.project.name - custom_fields - custom_fields.date_value - custom_fields.date_value.date - custom_fields.date_value.date_time - custom_fields.display_value - custom_fields.enabled - custom_fields.enum_options - custom_fields.enum_options.color - custom_fields.enum_options.enabled - custom_fields.enum_options.name - custom_fields.enum_value - custom_fields.enum_value.color - custom_fields.enum_value.enabled - custom_fields.enum_value.name - custom_fields.id_prefix - custom_fields.input_restrictions - custom_fields.is_formula_field - custom_fields.multi_enum_values - custom_fields.multi_enum_values.color - custom_fields.multi_enum_values.enabled - custom_fields.multi_enum_values.name - custom_fields.name - custom_fields.number_value - custom_fields.representation_type - custom_fields.text_value - custom_fields.type - default_access_level - default_view - due_date - due_on - followers - followers.name - html_notes - icon - members - members.name - minimum_access_level_for_customization - minimum_access_level_for_sharing - modified_at - name - notes - owner - permalink_url - privacy_setting - project_brief - public - start_on - team - team.name - workspace - workspace.name schema: type: array items: type: string enum: - archived - color - completed - completed_at - completed_by - completed_by.name - created_at - created_from_template - created_from_template.name - current_status - current_status.author - current_status.author.name - current_status.color - current_status.created_at - current_status.created_by - current_status.created_by.name - current_status.html_text - current_status.modified_at - current_status.text - current_status.title - current_status_update - current_status_update.resource_subtype - current_status_update.title - custom_field_settings - custom_field_settings.custom_field - custom_field_settings.custom_field.asana_created_field - custom_field_settings.custom_field.created_by - custom_field_settings.custom_field.created_by.name - custom_field_settings.custom_field.currency_code - custom_field_settings.custom_field.custom_label - custom_field_settings.custom_field.custom_label_position - custom_field_settings.custom_field.date_value - custom_field_settings.custom_field.date_value.date - custom_field_settings.custom_field.date_value.date_time - custom_field_settings.custom_field.default_access_level - custom_field_settings.custom_field.description - custom_field_settings.custom_field.display_value - custom_field_settings.custom_field.enabled - custom_field_settings.custom_field.enum_options - custom_field_settings.custom_field.enum_options.color - custom_field_settings.custom_field.enum_options.enabled - custom_field_settings.custom_field.enum_options.name - custom_field_settings.custom_field.enum_value - custom_field_settings.custom_field.enum_value.color - custom_field_settings.custom_field.enum_value.enabled - custom_field_settings.custom_field.enum_value.name - custom_field_settings.custom_field.format - custom_field_settings.custom_field.has_notifications_enabled - custom_field_settings.custom_field.id_prefix - custom_field_settings.custom_field.input_restrictions - custom_field_settings.custom_field.is_formula_field - custom_field_settings.custom_field.is_global_to_workspace - custom_field_settings.custom_field.is_value_read_only - custom_field_settings.custom_field.multi_enum_values - custom_field_settings.custom_field.multi_enum_values.color - custom_field_settings.custom_field.multi_enum_values.enabled - custom_field_settings.custom_field.multi_enum_values.name - custom_field_settings.custom_field.name - custom_field_settings.custom_field.number_value - custom_field_settings.custom_field.people_value - custom_field_settings.custom_field.people_value.name - custom_field_settings.custom_field.precision - custom_field_settings.custom_field.privacy_setting - custom_field_settings.custom_field.reference_value - custom_field_settings.custom_field.reference_value.name - custom_field_settings.custom_field.representation_type - custom_field_settings.custom_field.resource_subtype - custom_field_settings.custom_field.text_value - custom_field_settings.custom_field.type - custom_field_settings.is_important - custom_field_settings.parent - custom_field_settings.parent.name - custom_field_settings.project - custom_field_settings.project.name - custom_fields - custom_fields.date_value - custom_fields.date_value.date - custom_fields.date_value.date_time - custom_fields.display_value - custom_fields.enabled - custom_fields.enum_options - custom_fields.enum_options.color - custom_fields.enum_options.enabled - custom_fields.enum_options.name - custom_fields.enum_value - custom_fields.enum_value.color - custom_fields.enum_value.enabled - custom_fields.enum_value.name - custom_fields.id_prefix - custom_fields.input_restrictions - custom_fields.is_formula_field - custom_fields.multi_enum_values - custom_fields.multi_enum_values.color - custom_fields.multi_enum_values.enabled - custom_fields.multi_enum_values.name - custom_fields.name - custom_fields.number_value - custom_fields.representation_type - custom_fields.text_value - custom_fields.type - default_access_level - default_view - due_date - due_on - followers - followers.name - html_notes - icon - members - members.name - minimum_access_level_for_customization - minimum_access_level_for_sharing - modified_at - name - notes - owner - permalink_url - privacy_setting - project_brief - public - start_on - team - team.name - workspace - workspace.name style: form explode: false requestBody: description: Information about the members being added. required: true content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/AddMembersRequest' responses: 200: description: Successfully added members to the project. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/ProjectResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: [] x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); Project result = client.projects.addMembersForProject(projectGid) .data("field", "value") .data("field", "value") .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let projectsApiInstance = new Asana.ProjectsApi(client); let body = {"data": {"": "", "": "",}}; // Object | Information about the members being added. let project_gid = "1331"; // String | Globally unique identifier for the project. let opts = { 'opt_fields': "archived,color,completed,completed_at,completed_by,completed_by.name,created_at,created_from_template,created_from_template.name,current_status,current_status.author,current_status.author.name,current_status.color,current_status.created_at,current_status.created_by,current_status.created_by.name,current_status.html_text,current_status.modified_at,current_status.text,current_status.title,current_status_update,current_status_update.resource_subtype,current_status_update.title,custom_field_settings,custom_field_settings.custom_field,custom_field_settings.custom_field.asana_created_field,custom_field_settings.custom_field.created_by,custom_field_settings.custom_field.created_by.name,custom_field_settings.custom_field.currency_code,custom_field_settings.custom_field.custom_label,custom_field_settings.custom_field.custom_label_position,custom_field_settings.custom_field.date_value,custom_field_settings.custom_field.date_value.date,custom_field_settings.custom_field.date_value.date_time,custom_field_settings.custom_field.default_access_level,custom_field_settings.custom_field.description,custom_field_settings.custom_field.display_value,custom_field_settings.custom_field.enabled,custom_field_settings.custom_field.enum_options,custom_field_settings.custom_field.enum_options.color,custom_field_settings.custom_field.enum_options.enabled,custom_field_settings.custom_field.enum_options.name,custom_field_settings.custom_field.enum_value,custom_field_settings.custom_field.enum_value.color,custom_field_settings.custom_field.enum_value.enabled,custom_field_settings.custom_field.enum_value.name,custom_field_settings.custom_field.format,custom_field_settings.custom_field.has_notifications_enabled,custom_field_settings.custom_field.id_prefix,custom_field_settings.custom_field.input_restrictions,custom_field_settings.custom_field.is_formula_field,custom_field_settings.custom_field.is_global_to_workspace,custom_field_settings.custom_field.is_value_read_only,custom_field_settings.custom_field.multi_enum_values,custom_field_settings.custom_field.multi_enum_values.color,custom_field_settings.custom_field.multi_enum_values.enabled,custom_field_settings.custom_field.multi_enum_values.name,custom_field_settings.custom_field.name,custom_field_settings.custom_field.number_value,custom_field_settings.custom_field.people_value,custom_field_settings.custom_field.people_value.name,custom_field_settings.custom_field.precision,custom_field_settings.custom_field.privacy_setting,custom_field_settings.custom_field.reference_value,custom_field_settings.custom_field.reference_value.name,custom_field_settings.custom_field.representation_type,custom_field_settings.custom_field.resource_subtype,custom_field_settings.custom_field.text_value,custom_field_settings.custom_field.type,custom_field_settings.is_important,custom_field_settings.parent,custom_field_settings.parent.name,custom_field_settings.project,custom_field_settings.project.name,custom_fields,custom_fields.date_value,custom_fields.date_value.date,custom_fields.date_value.date_time,custom_fields.display_value,custom_fields.enabled,custom_fields.enum_options,custom_fields.enum_options.color,custom_fields.enum_options.enabled,custom_fields.enum_options.name,custom_fields.enum_value,custom_fields.enum_value.color,custom_fields.enum_value.enabled,custom_fields.enum_value.name,custom_fields.id_prefix,custom_fields.input_restrictions,custom_fields.is_formula_field,custom_fields.multi_enum_values,custom_fields.multi_enum_values.color,custom_fields.multi_enum_values.enabled,custom_fields.multi_enum_values.name,custom_fields.name,custom_fields.number_value,custom_fields.representation_type,custom_fields.text_value,custom_fields.type,default_access_level,default_view,due_date,due_on,followers,followers.name,html_notes,icon,members,members.name,minimum_access_level_for_customization,minimum_access_level_for_sharing,modified_at,name,notes,owner,permalink_url,privacy_setting,project_brief,public,start_on,team,team.name,workspace,workspace.name" }; projectsApiInstance.addMembersForProject(body, project_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.projects.addMembersForProject(projectGid, {field: "value", field: "value", pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class projects_api_instance = asana.ProjectsApi(api_client) body = {"data": {"": "", "": "",}} # dict | Information about the members being added. project_gid = "1331" # str | Globally unique identifier for the project. opts = { 'opt_fields': "archived,color,completed,completed_at,completed_by,completed_by.name,created_at,created_from_template,created_from_template.name,current_status,current_status.author,current_status.author.name,current_status.color,current_status.created_at,current_status.created_by,current_status.created_by.name,current_status.html_text,current_status.modified_at,current_status.text,current_status.title,current_status_update,current_status_update.resource_subtype,current_status_update.title,custom_field_settings,custom_field_settings.custom_field,custom_field_settings.custom_field.asana_created_field,custom_field_settings.custom_field.created_by,custom_field_settings.custom_field.created_by.name,custom_field_settings.custom_field.currency_code,custom_field_settings.custom_field.custom_label,custom_field_settings.custom_field.custom_label_position,custom_field_settings.custom_field.date_value,custom_field_settings.custom_field.date_value.date,custom_field_settings.custom_field.date_value.date_time,custom_field_settings.custom_field.default_access_level,custom_field_settings.custom_field.description,custom_field_settings.custom_field.display_value,custom_field_settings.custom_field.enabled,custom_field_settings.custom_field.enum_options,custom_field_settings.custom_field.enum_options.color,custom_field_settings.custom_field.enum_options.enabled,custom_field_settings.custom_field.enum_options.name,custom_field_settings.custom_field.enum_value,custom_field_settings.custom_field.enum_value.color,custom_field_settings.custom_field.enum_value.enabled,custom_field_settings.custom_field.enum_value.name,custom_field_settings.custom_field.format,custom_field_settings.custom_field.has_notifications_enabled,custom_field_settings.custom_field.id_prefix,custom_field_settings.custom_field.input_restrictions,custom_field_settings.custom_field.is_formula_field,custom_field_settings.custom_field.is_global_to_workspace,custom_field_settings.custom_field.is_value_read_only,custom_field_settings.custom_field.multi_enum_values,custom_field_settings.custom_field.multi_enum_values.color,custom_field_settings.custom_field.multi_enum_values.enabled,custom_field_settings.custom_field.multi_enum_values.name,custom_field_settings.custom_field.name,custom_field_settings.custom_field.number_value,custom_field_settings.custom_field.people_value,custom_field_settings.custom_field.people_value.name,custom_field_settings.custom_field.precision,custom_field_settings.custom_field.privacy_setting,custom_field_settings.custom_field.reference_value,custom_field_settings.custom_field.reference_value.name,custom_field_settings.custom_field.representation_type,custom_field_settings.custom_field.resource_subtype,custom_field_settings.custom_field.text_value,custom_field_settings.custom_field.type,custom_field_settings.is_important,custom_field_settings.parent,custom_field_settings.parent.name,custom_field_settings.project,custom_field_settings.project.name,custom_fields,custom_fields.date_value,custom_fields.date_value.date,custom_fields.date_value.date_time,custom_fields.display_value,custom_fields.enabled,custom_fields.enum_options,custom_fields.enum_options.color,custom_fields.enum_options.enabled,custom_fields.enum_options.name,custom_fields.enum_value,custom_fields.enum_value.color,custom_fields.enum_value.enabled,custom_fields.enum_value.name,custom_fields.id_prefix,custom_fields.input_restrictions,custom_fields.is_formula_field,custom_fields.multi_enum_values,custom_fields.multi_enum_values.color,custom_fields.multi_enum_values.enabled,custom_fields.multi_enum_values.name,custom_fields.name,custom_fields.number_value,custom_fields.representation_type,custom_fields.text_value,custom_fields.type,default_access_level,default_view,due_date,due_on,followers,followers.name,html_notes,icon,members,members.name,minimum_access_level_for_customization,minimum_access_level_for_sharing,modified_at,name,notes,owner,permalink_url,privacy_setting,project_brief,public,start_on,team,team.name,workspace,workspace.name", # list[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. } try: # Add users to a project api_response = projects_api_instance.add_members_for_project(body, project_gid, opts) pprint(api_response) except ApiException as e: print("Exception when calling ProjectsApi->add_members_for_project: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.projects.add_members_for_project(project_gid, {'field': 'value', 'field': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- projects->addMembersForProject($project_gid, array('field' => 'value', 'field' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.projects.add_members_for_project(project_gid: 'project_gid', field: "value", field: "value", options: {pretty: true}) /projects/{project_gid}/removeMembers: parameters: - $ref: '#/components/parameters/project_path_gid' - $ref: '#/components/parameters/pretty' post: summary: Remove users from a project description: >- Removes the specified list of users from members of the project. Returns the updated project record. tags: - Projects operationId: removeMembersForProject parameters: - name: opt_fields in: query description: 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. required: false example: - archived - color - completed - completed_at - completed_by - completed_by.name - created_at - created_from_template - created_from_template.name - current_status - current_status.author - current_status.author.name - current_status.color - current_status.created_at - current_status.created_by - current_status.created_by.name - current_status.html_text - current_status.modified_at - current_status.text - current_status.title - current_status_update - current_status_update.resource_subtype - current_status_update.title - custom_field_settings - custom_field_settings.custom_field - custom_field_settings.custom_field.asana_created_field - custom_field_settings.custom_field.created_by - custom_field_settings.custom_field.created_by.name - custom_field_settings.custom_field.currency_code - custom_field_settings.custom_field.custom_label - custom_field_settings.custom_field.custom_label_position - custom_field_settings.custom_field.date_value - custom_field_settings.custom_field.date_value.date - custom_field_settings.custom_field.date_value.date_time - custom_field_settings.custom_field.default_access_level - custom_field_settings.custom_field.description - custom_field_settings.custom_field.display_value - custom_field_settings.custom_field.enabled - custom_field_settings.custom_field.enum_options - custom_field_settings.custom_field.enum_options.color - custom_field_settings.custom_field.enum_options.enabled - custom_field_settings.custom_field.enum_options.name - custom_field_settings.custom_field.enum_value - custom_field_settings.custom_field.enum_value.color - custom_field_settings.custom_field.enum_value.enabled - custom_field_settings.custom_field.enum_value.name - custom_field_settings.custom_field.format - custom_field_settings.custom_field.has_notifications_enabled - custom_field_settings.custom_field.id_prefix - custom_field_settings.custom_field.input_restrictions - custom_field_settings.custom_field.is_formula_field - custom_field_settings.custom_field.is_global_to_workspace - custom_field_settings.custom_field.is_value_read_only - custom_field_settings.custom_field.multi_enum_values - custom_field_settings.custom_field.multi_enum_values.color - custom_field_settings.custom_field.multi_enum_values.enabled - custom_field_settings.custom_field.multi_enum_values.name - custom_field_settings.custom_field.name - custom_field_settings.custom_field.number_value - custom_field_settings.custom_field.people_value - custom_field_settings.custom_field.people_value.name - custom_field_settings.custom_field.precision - custom_field_settings.custom_field.privacy_setting - custom_field_settings.custom_field.reference_value - custom_field_settings.custom_field.reference_value.name - custom_field_settings.custom_field.representation_type - custom_field_settings.custom_field.resource_subtype - custom_field_settings.custom_field.text_value - custom_field_settings.custom_field.type - custom_field_settings.is_important - custom_field_settings.parent - custom_field_settings.parent.name - custom_field_settings.project - custom_field_settings.project.name - custom_fields - custom_fields.date_value - custom_fields.date_value.date - custom_fields.date_value.date_time - custom_fields.display_value - custom_fields.enabled - custom_fields.enum_options - custom_fields.enum_options.color - custom_fields.enum_options.enabled - custom_fields.enum_options.name - custom_fields.enum_value - custom_fields.enum_value.color - custom_fields.enum_value.enabled - custom_fields.enum_value.name - custom_fields.id_prefix - custom_fields.input_restrictions - custom_fields.is_formula_field - custom_fields.multi_enum_values - custom_fields.multi_enum_values.color - custom_fields.multi_enum_values.enabled - custom_fields.multi_enum_values.name - custom_fields.name - custom_fields.number_value - custom_fields.representation_type - custom_fields.text_value - custom_fields.type - default_access_level - default_view - due_date - due_on - followers - followers.name - html_notes - icon - members - members.name - minimum_access_level_for_customization - minimum_access_level_for_sharing - modified_at - name - notes - owner - permalink_url - privacy_setting - project_brief - public - start_on - team - team.name - workspace - workspace.name schema: type: array items: type: string enum: - archived - color - completed - completed_at - completed_by - completed_by.name - created_at - created_from_template - created_from_template.name - current_status - current_status.author - current_status.author.name - current_status.color - current_status.created_at - current_status.created_by - current_status.created_by.name - current_status.html_text - current_status.modified_at - current_status.text - current_status.title - current_status_update - current_status_update.resource_subtype - current_status_update.title - custom_field_settings - custom_field_settings.custom_field - custom_field_settings.custom_field.asana_created_field - custom_field_settings.custom_field.created_by - custom_field_settings.custom_field.created_by.name - custom_field_settings.custom_field.currency_code - custom_field_settings.custom_field.custom_label - custom_field_settings.custom_field.custom_label_position - custom_field_settings.custom_field.date_value - custom_field_settings.custom_field.date_value.date - custom_field_settings.custom_field.date_value.date_time - custom_field_settings.custom_field.default_access_level - custom_field_settings.custom_field.description - custom_field_settings.custom_field.display_value - custom_field_settings.custom_field.enabled - custom_field_settings.custom_field.enum_options - custom_field_settings.custom_field.enum_options.color - custom_field_settings.custom_field.enum_options.enabled - custom_field_settings.custom_field.enum_options.name - custom_field_settings.custom_field.enum_value - custom_field_settings.custom_field.enum_value.color - custom_field_settings.custom_field.enum_value.enabled - custom_field_settings.custom_field.enum_value.name - custom_field_settings.custom_field.format - custom_field_settings.custom_field.has_notifications_enabled - custom_field_settings.custom_field.id_prefix - custom_field_settings.custom_field.input_restrictions - custom_field_settings.custom_field.is_formula_field - custom_field_settings.custom_field.is_global_to_workspace - custom_field_settings.custom_field.is_value_read_only - custom_field_settings.custom_field.multi_enum_values - custom_field_settings.custom_field.multi_enum_values.color - custom_field_settings.custom_field.multi_enum_values.enabled - custom_field_settings.custom_field.multi_enum_values.name - custom_field_settings.custom_field.name - custom_field_settings.custom_field.number_value - custom_field_settings.custom_field.people_value - custom_field_settings.custom_field.people_value.name - custom_field_settings.custom_field.precision - custom_field_settings.custom_field.privacy_setting - custom_field_settings.custom_field.reference_value - custom_field_settings.custom_field.reference_value.name - custom_field_settings.custom_field.representation_type - custom_field_settings.custom_field.resource_subtype - custom_field_settings.custom_field.text_value - custom_field_settings.custom_field.type - custom_field_settings.is_important - custom_field_settings.parent - custom_field_settings.parent.name - custom_field_settings.project - custom_field_settings.project.name - custom_fields - custom_fields.date_value - custom_fields.date_value.date - custom_fields.date_value.date_time - custom_fields.display_value - custom_fields.enabled - custom_fields.enum_options - custom_fields.enum_options.color - custom_fields.enum_options.enabled - custom_fields.enum_options.name - custom_fields.enum_value - custom_fields.enum_value.color - custom_fields.enum_value.enabled - custom_fields.enum_value.name - custom_fields.id_prefix - custom_fields.input_restrictions - custom_fields.is_formula_field - custom_fields.multi_enum_values - custom_fields.multi_enum_values.color - custom_fields.multi_enum_values.enabled - custom_fields.multi_enum_values.name - custom_fields.name - custom_fields.number_value - custom_fields.representation_type - custom_fields.text_value - custom_fields.type - default_access_level - default_view - due_date - due_on - followers - followers.name - html_notes - icon - members - members.name - minimum_access_level_for_customization - minimum_access_level_for_sharing - modified_at - name - notes - owner - permalink_url - privacy_setting - project_brief - public - start_on - team - team.name - workspace - workspace.name style: form explode: false requestBody: description: Information about the members being removed. required: true content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/RemoveMembersRequest' responses: 200: description: Successfully removed the members from the project. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/ProjectResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: [] x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); Project result = client.projects.removeMembersForProject(projectGid) .data("field", "value") .data("field", "value") .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let projectsApiInstance = new Asana.ProjectsApi(client); let body = {"data": {"": "", "": "",}}; // Object | Information about the members being removed. let project_gid = "1331"; // String | Globally unique identifier for the project. let opts = { 'opt_fields': "archived,color,completed,completed_at,completed_by,completed_by.name,created_at,created_from_template,created_from_template.name,current_status,current_status.author,current_status.author.name,current_status.color,current_status.created_at,current_status.created_by,current_status.created_by.name,current_status.html_text,current_status.modified_at,current_status.text,current_status.title,current_status_update,current_status_update.resource_subtype,current_status_update.title,custom_field_settings,custom_field_settings.custom_field,custom_field_settings.custom_field.asana_created_field,custom_field_settings.custom_field.created_by,custom_field_settings.custom_field.created_by.name,custom_field_settings.custom_field.currency_code,custom_field_settings.custom_field.custom_label,custom_field_settings.custom_field.custom_label_position,custom_field_settings.custom_field.date_value,custom_field_settings.custom_field.date_value.date,custom_field_settings.custom_field.date_value.date_time,custom_field_settings.custom_field.default_access_level,custom_field_settings.custom_field.description,custom_field_settings.custom_field.display_value,custom_field_settings.custom_field.enabled,custom_field_settings.custom_field.enum_options,custom_field_settings.custom_field.enum_options.color,custom_field_settings.custom_field.enum_options.enabled,custom_field_settings.custom_field.enum_options.name,custom_field_settings.custom_field.enum_value,custom_field_settings.custom_field.enum_value.color,custom_field_settings.custom_field.enum_value.enabled,custom_field_settings.custom_field.enum_value.name,custom_field_settings.custom_field.format,custom_field_settings.custom_field.has_notifications_enabled,custom_field_settings.custom_field.id_prefix,custom_field_settings.custom_field.input_restrictions,custom_field_settings.custom_field.is_formula_field,custom_field_settings.custom_field.is_global_to_workspace,custom_field_settings.custom_field.is_value_read_only,custom_field_settings.custom_field.multi_enum_values,custom_field_settings.custom_field.multi_enum_values.color,custom_field_settings.custom_field.multi_enum_values.enabled,custom_field_settings.custom_field.multi_enum_values.name,custom_field_settings.custom_field.name,custom_field_settings.custom_field.number_value,custom_field_settings.custom_field.people_value,custom_field_settings.custom_field.people_value.name,custom_field_settings.custom_field.precision,custom_field_settings.custom_field.privacy_setting,custom_field_settings.custom_field.reference_value,custom_field_settings.custom_field.reference_value.name,custom_field_settings.custom_field.representation_type,custom_field_settings.custom_field.resource_subtype,custom_field_settings.custom_field.text_value,custom_field_settings.custom_field.type,custom_field_settings.is_important,custom_field_settings.parent,custom_field_settings.parent.name,custom_field_settings.project,custom_field_settings.project.name,custom_fields,custom_fields.date_value,custom_fields.date_value.date,custom_fields.date_value.date_time,custom_fields.display_value,custom_fields.enabled,custom_fields.enum_options,custom_fields.enum_options.color,custom_fields.enum_options.enabled,custom_fields.enum_options.name,custom_fields.enum_value,custom_fields.enum_value.color,custom_fields.enum_value.enabled,custom_fields.enum_value.name,custom_fields.id_prefix,custom_fields.input_restrictions,custom_fields.is_formula_field,custom_fields.multi_enum_values,custom_fields.multi_enum_values.color,custom_fields.multi_enum_values.enabled,custom_fields.multi_enum_values.name,custom_fields.name,custom_fields.number_value,custom_fields.representation_type,custom_fields.text_value,custom_fields.type,default_access_level,default_view,due_date,due_on,followers,followers.name,html_notes,icon,members,members.name,minimum_access_level_for_customization,minimum_access_level_for_sharing,modified_at,name,notes,owner,permalink_url,privacy_setting,project_brief,public,start_on,team,team.name,workspace,workspace.name" }; projectsApiInstance.removeMembersForProject(body, project_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.projects.removeMembersForProject(projectGid, {field: "value", field: "value", pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class projects_api_instance = asana.ProjectsApi(api_client) body = {"data": {"": "", "": "",}} # dict | Information about the members being removed. project_gid = "1331" # str | Globally unique identifier for the project. opts = { 'opt_fields': "archived,color,completed,completed_at,completed_by,completed_by.name,created_at,created_from_template,created_from_template.name,current_status,current_status.author,current_status.author.name,current_status.color,current_status.created_at,current_status.created_by,current_status.created_by.name,current_status.html_text,current_status.modified_at,current_status.text,current_status.title,current_status_update,current_status_update.resource_subtype,current_status_update.title,custom_field_settings,custom_field_settings.custom_field,custom_field_settings.custom_field.asana_created_field,custom_field_settings.custom_field.created_by,custom_field_settings.custom_field.created_by.name,custom_field_settings.custom_field.currency_code,custom_field_settings.custom_field.custom_label,custom_field_settings.custom_field.custom_label_position,custom_field_settings.custom_field.date_value,custom_field_settings.custom_field.date_value.date,custom_field_settings.custom_field.date_value.date_time,custom_field_settings.custom_field.default_access_level,custom_field_settings.custom_field.description,custom_field_settings.custom_field.display_value,custom_field_settings.custom_field.enabled,custom_field_settings.custom_field.enum_options,custom_field_settings.custom_field.enum_options.color,custom_field_settings.custom_field.enum_options.enabled,custom_field_settings.custom_field.enum_options.name,custom_field_settings.custom_field.enum_value,custom_field_settings.custom_field.enum_value.color,custom_field_settings.custom_field.enum_value.enabled,custom_field_settings.custom_field.enum_value.name,custom_field_settings.custom_field.format,custom_field_settings.custom_field.has_notifications_enabled,custom_field_settings.custom_field.id_prefix,custom_field_settings.custom_field.input_restrictions,custom_field_settings.custom_field.is_formula_field,custom_field_settings.custom_field.is_global_to_workspace,custom_field_settings.custom_field.is_value_read_only,custom_field_settings.custom_field.multi_enum_values,custom_field_settings.custom_field.multi_enum_values.color,custom_field_settings.custom_field.multi_enum_values.enabled,custom_field_settings.custom_field.multi_enum_values.name,custom_field_settings.custom_field.name,custom_field_settings.custom_field.number_value,custom_field_settings.custom_field.people_value,custom_field_settings.custom_field.people_value.name,custom_field_settings.custom_field.precision,custom_field_settings.custom_field.privacy_setting,custom_field_settings.custom_field.reference_value,custom_field_settings.custom_field.reference_value.name,custom_field_settings.custom_field.representation_type,custom_field_settings.custom_field.resource_subtype,custom_field_settings.custom_field.text_value,custom_field_settings.custom_field.type,custom_field_settings.is_important,custom_field_settings.parent,custom_field_settings.parent.name,custom_field_settings.project,custom_field_settings.project.name,custom_fields,custom_fields.date_value,custom_fields.date_value.date,custom_fields.date_value.date_time,custom_fields.display_value,custom_fields.enabled,custom_fields.enum_options,custom_fields.enum_options.color,custom_fields.enum_options.enabled,custom_fields.enum_options.name,custom_fields.enum_value,custom_fields.enum_value.color,custom_fields.enum_value.enabled,custom_fields.enum_value.name,custom_fields.id_prefix,custom_fields.input_restrictions,custom_fields.is_formula_field,custom_fields.multi_enum_values,custom_fields.multi_enum_values.color,custom_fields.multi_enum_values.enabled,custom_fields.multi_enum_values.name,custom_fields.name,custom_fields.number_value,custom_fields.representation_type,custom_fields.text_value,custom_fields.type,default_access_level,default_view,due_date,due_on,followers,followers.name,html_notes,icon,members,members.name,minimum_access_level_for_customization,minimum_access_level_for_sharing,modified_at,name,notes,owner,permalink_url,privacy_setting,project_brief,public,start_on,team,team.name,workspace,workspace.name", # list[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. } try: # Remove users from a project api_response = projects_api_instance.remove_members_for_project(body, project_gid, opts) pprint(api_response) except ApiException as e: print("Exception when calling ProjectsApi->remove_members_for_project: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.projects.remove_members_for_project(project_gid, {'field': 'value', 'field': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- projects->removeMembersForProject($project_gid, array('field' => 'value', 'field' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.projects.remove_members_for_project(project_gid: 'project_gid', field: "value", field: "value", options: {pretty: true}) /projects/{project_gid}/addFollowers: parameters: - $ref: '#/components/parameters/project_path_gid' - $ref: '#/components/parameters/pretty' post: summary: Add followers to a project description: >- Adds the specified list of users as followers to the project. Followers are a subset of members who have opted in to receive "tasks added" notifications for a project. Therefore, if the users are not already members of the project, they will also become members as a result of this operation. Returns the updated project record. tags: - Projects operationId: addFollowersForProject parameters: - name: opt_fields in: query description: 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. required: false example: - archived - color - completed - completed_at - completed_by - completed_by.name - created_at - created_from_template - created_from_template.name - current_status - current_status.author - current_status.author.name - current_status.color - current_status.created_at - current_status.created_by - current_status.created_by.name - current_status.html_text - current_status.modified_at - current_status.text - current_status.title - current_status_update - current_status_update.resource_subtype - current_status_update.title - custom_field_settings - custom_field_settings.custom_field - custom_field_settings.custom_field.asana_created_field - custom_field_settings.custom_field.created_by - custom_field_settings.custom_field.created_by.name - custom_field_settings.custom_field.currency_code - custom_field_settings.custom_field.custom_label - custom_field_settings.custom_field.custom_label_position - custom_field_settings.custom_field.date_value - custom_field_settings.custom_field.date_value.date - custom_field_settings.custom_field.date_value.date_time - custom_field_settings.custom_field.default_access_level - custom_field_settings.custom_field.description - custom_field_settings.custom_field.display_value - custom_field_settings.custom_field.enabled - custom_field_settings.custom_field.enum_options - custom_field_settings.custom_field.enum_options.color - custom_field_settings.custom_field.enum_options.enabled - custom_field_settings.custom_field.enum_options.name - custom_field_settings.custom_field.enum_value - custom_field_settings.custom_field.enum_value.color - custom_field_settings.custom_field.enum_value.enabled - custom_field_settings.custom_field.enum_value.name - custom_field_settings.custom_field.format - custom_field_settings.custom_field.has_notifications_enabled - custom_field_settings.custom_field.id_prefix - custom_field_settings.custom_field.input_restrictions - custom_field_settings.custom_field.is_formula_field - custom_field_settings.custom_field.is_global_to_workspace - custom_field_settings.custom_field.is_value_read_only - custom_field_settings.custom_field.multi_enum_values - custom_field_settings.custom_field.multi_enum_values.color - custom_field_settings.custom_field.multi_enum_values.enabled - custom_field_settings.custom_field.multi_enum_values.name - custom_field_settings.custom_field.name - custom_field_settings.custom_field.number_value - custom_field_settings.custom_field.people_value - custom_field_settings.custom_field.people_value.name - custom_field_settings.custom_field.precision - custom_field_settings.custom_field.privacy_setting - custom_field_settings.custom_field.reference_value - custom_field_settings.custom_field.reference_value.name - custom_field_settings.custom_field.representation_type - custom_field_settings.custom_field.resource_subtype - custom_field_settings.custom_field.text_value - custom_field_settings.custom_field.type - custom_field_settings.is_important - custom_field_settings.parent - custom_field_settings.parent.name - custom_field_settings.project - custom_field_settings.project.name - custom_fields - custom_fields.date_value - custom_fields.date_value.date - custom_fields.date_value.date_time - custom_fields.display_value - custom_fields.enabled - custom_fields.enum_options - custom_fields.enum_options.color - custom_fields.enum_options.enabled - custom_fields.enum_options.name - custom_fields.enum_value - custom_fields.enum_value.color - custom_fields.enum_value.enabled - custom_fields.enum_value.name - custom_fields.id_prefix - custom_fields.input_restrictions - custom_fields.is_formula_field - custom_fields.multi_enum_values - custom_fields.multi_enum_values.color - custom_fields.multi_enum_values.enabled - custom_fields.multi_enum_values.name - custom_fields.name - custom_fields.number_value - custom_fields.representation_type - custom_fields.text_value - custom_fields.type - default_access_level - default_view - due_date - due_on - followers - followers.name - html_notes - icon - members - members.name - minimum_access_level_for_customization - minimum_access_level_for_sharing - modified_at - name - notes - owner - permalink_url - privacy_setting - project_brief - public - start_on - team - team.name - workspace - workspace.name schema: type: array items: type: string enum: - archived - color - completed - completed_at - completed_by - completed_by.name - created_at - created_from_template - created_from_template.name - current_status - current_status.author - current_status.author.name - current_status.color - current_status.created_at - current_status.created_by - current_status.created_by.name - current_status.html_text - current_status.modified_at - current_status.text - current_status.title - current_status_update - current_status_update.resource_subtype - current_status_update.title - custom_field_settings - custom_field_settings.custom_field - custom_field_settings.custom_field.asana_created_field - custom_field_settings.custom_field.created_by - custom_field_settings.custom_field.created_by.name - custom_field_settings.custom_field.currency_code - custom_field_settings.custom_field.custom_label - custom_field_settings.custom_field.custom_label_position - custom_field_settings.custom_field.date_value - custom_field_settings.custom_field.date_value.date - custom_field_settings.custom_field.date_value.date_time - custom_field_settings.custom_field.default_access_level - custom_field_settings.custom_field.description - custom_field_settings.custom_field.display_value - custom_field_settings.custom_field.enabled - custom_field_settings.custom_field.enum_options - custom_field_settings.custom_field.enum_options.color - custom_field_settings.custom_field.enum_options.enabled - custom_field_settings.custom_field.enum_options.name - custom_field_settings.custom_field.enum_value - custom_field_settings.custom_field.enum_value.color - custom_field_settings.custom_field.enum_value.enabled - custom_field_settings.custom_field.enum_value.name - custom_field_settings.custom_field.format - custom_field_settings.custom_field.has_notifications_enabled - custom_field_settings.custom_field.id_prefix - custom_field_settings.custom_field.input_restrictions - custom_field_settings.custom_field.is_formula_field - custom_field_settings.custom_field.is_global_to_workspace - custom_field_settings.custom_field.is_value_read_only - custom_field_settings.custom_field.multi_enum_values - custom_field_settings.custom_field.multi_enum_values.color - custom_field_settings.custom_field.multi_enum_values.enabled - custom_field_settings.custom_field.multi_enum_values.name - custom_field_settings.custom_field.name - custom_field_settings.custom_field.number_value - custom_field_settings.custom_field.people_value - custom_field_settings.custom_field.people_value.name - custom_field_settings.custom_field.precision - custom_field_settings.custom_field.privacy_setting - custom_field_settings.custom_field.reference_value - custom_field_settings.custom_field.reference_value.name - custom_field_settings.custom_field.representation_type - custom_field_settings.custom_field.resource_subtype - custom_field_settings.custom_field.text_value - custom_field_settings.custom_field.type - custom_field_settings.is_important - custom_field_settings.parent - custom_field_settings.parent.name - custom_field_settings.project - custom_field_settings.project.name - custom_fields - custom_fields.date_value - custom_fields.date_value.date - custom_fields.date_value.date_time - custom_fields.display_value - custom_fields.enabled - custom_fields.enum_options - custom_fields.enum_options.color - custom_fields.enum_options.enabled - custom_fields.enum_options.name - custom_fields.enum_value - custom_fields.enum_value.color - custom_fields.enum_value.enabled - custom_fields.enum_value.name - custom_fields.id_prefix - custom_fields.input_restrictions - custom_fields.is_formula_field - custom_fields.multi_enum_values - custom_fields.multi_enum_values.color - custom_fields.multi_enum_values.enabled - custom_fields.multi_enum_values.name - custom_fields.name - custom_fields.number_value - custom_fields.representation_type - custom_fields.text_value - custom_fields.type - default_access_level - default_view - due_date - due_on - followers - followers.name - html_notes - icon - members - members.name - minimum_access_level_for_customization - minimum_access_level_for_sharing - modified_at - name - notes - owner - permalink_url - privacy_setting - project_brief - public - start_on - team - team.name - workspace - workspace.name style: form explode: false requestBody: description: Information about the followers being added. required: true content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/AddFollowersRequest' responses: 200: description: Successfully added followers to the project. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/ProjectResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: [] x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); Project result = client.projects.addFollowersForProject(projectGid) .data("field", "value") .data("field", "value") .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let projectsApiInstance = new Asana.ProjectsApi(client); let body = {"data": {"": "", "": "",}}; // Object | Information about the followers being added. let project_gid = "1331"; // String | Globally unique identifier for the project. let opts = { 'opt_fields': "archived,color,completed,completed_at,completed_by,completed_by.name,created_at,created_from_template,created_from_template.name,current_status,current_status.author,current_status.author.name,current_status.color,current_status.created_at,current_status.created_by,current_status.created_by.name,current_status.html_text,current_status.modified_at,current_status.text,current_status.title,current_status_update,current_status_update.resource_subtype,current_status_update.title,custom_field_settings,custom_field_settings.custom_field,custom_field_settings.custom_field.asana_created_field,custom_field_settings.custom_field.created_by,custom_field_settings.custom_field.created_by.name,custom_field_settings.custom_field.currency_code,custom_field_settings.custom_field.custom_label,custom_field_settings.custom_field.custom_label_position,custom_field_settings.custom_field.date_value,custom_field_settings.custom_field.date_value.date,custom_field_settings.custom_field.date_value.date_time,custom_field_settings.custom_field.default_access_level,custom_field_settings.custom_field.description,custom_field_settings.custom_field.display_value,custom_field_settings.custom_field.enabled,custom_field_settings.custom_field.enum_options,custom_field_settings.custom_field.enum_options.color,custom_field_settings.custom_field.enum_options.enabled,custom_field_settings.custom_field.enum_options.name,custom_field_settings.custom_field.enum_value,custom_field_settings.custom_field.enum_value.color,custom_field_settings.custom_field.enum_value.enabled,custom_field_settings.custom_field.enum_value.name,custom_field_settings.custom_field.format,custom_field_settings.custom_field.has_notifications_enabled,custom_field_settings.custom_field.id_prefix,custom_field_settings.custom_field.input_restrictions,custom_field_settings.custom_field.is_formula_field,custom_field_settings.custom_field.is_global_to_workspace,custom_field_settings.custom_field.is_value_read_only,custom_field_settings.custom_field.multi_enum_values,custom_field_settings.custom_field.multi_enum_values.color,custom_field_settings.custom_field.multi_enum_values.enabled,custom_field_settings.custom_field.multi_enum_values.name,custom_field_settings.custom_field.name,custom_field_settings.custom_field.number_value,custom_field_settings.custom_field.people_value,custom_field_settings.custom_field.people_value.name,custom_field_settings.custom_field.precision,custom_field_settings.custom_field.privacy_setting,custom_field_settings.custom_field.reference_value,custom_field_settings.custom_field.reference_value.name,custom_field_settings.custom_field.representation_type,custom_field_settings.custom_field.resource_subtype,custom_field_settings.custom_field.text_value,custom_field_settings.custom_field.type,custom_field_settings.is_important,custom_field_settings.parent,custom_field_settings.parent.name,custom_field_settings.project,custom_field_settings.project.name,custom_fields,custom_fields.date_value,custom_fields.date_value.date,custom_fields.date_value.date_time,custom_fields.display_value,custom_fields.enabled,custom_fields.enum_options,custom_fields.enum_options.color,custom_fields.enum_options.enabled,custom_fields.enum_options.name,custom_fields.enum_value,custom_fields.enum_value.color,custom_fields.enum_value.enabled,custom_fields.enum_value.name,custom_fields.id_prefix,custom_fields.input_restrictions,custom_fields.is_formula_field,custom_fields.multi_enum_values,custom_fields.multi_enum_values.color,custom_fields.multi_enum_values.enabled,custom_fields.multi_enum_values.name,custom_fields.name,custom_fields.number_value,custom_fields.representation_type,custom_fields.text_value,custom_fields.type,default_access_level,default_view,due_date,due_on,followers,followers.name,html_notes,icon,members,members.name,minimum_access_level_for_customization,minimum_access_level_for_sharing,modified_at,name,notes,owner,permalink_url,privacy_setting,project_brief,public,start_on,team,team.name,workspace,workspace.name" }; projectsApiInstance.addFollowersForProject(body, project_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.projects.addFollowersForProject(projectGid, {field: "value", field: "value", pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class projects_api_instance = asana.ProjectsApi(api_client) body = {"data": {"": "", "": "",}} # dict | Information about the followers being added. project_gid = "1331" # str | Globally unique identifier for the project. opts = { 'opt_fields': "archived,color,completed,completed_at,completed_by,completed_by.name,created_at,created_from_template,created_from_template.name,current_status,current_status.author,current_status.author.name,current_status.color,current_status.created_at,current_status.created_by,current_status.created_by.name,current_status.html_text,current_status.modified_at,current_status.text,current_status.title,current_status_update,current_status_update.resource_subtype,current_status_update.title,custom_field_settings,custom_field_settings.custom_field,custom_field_settings.custom_field.asana_created_field,custom_field_settings.custom_field.created_by,custom_field_settings.custom_field.created_by.name,custom_field_settings.custom_field.currency_code,custom_field_settings.custom_field.custom_label,custom_field_settings.custom_field.custom_label_position,custom_field_settings.custom_field.date_value,custom_field_settings.custom_field.date_value.date,custom_field_settings.custom_field.date_value.date_time,custom_field_settings.custom_field.default_access_level,custom_field_settings.custom_field.description,custom_field_settings.custom_field.display_value,custom_field_settings.custom_field.enabled,custom_field_settings.custom_field.enum_options,custom_field_settings.custom_field.enum_options.color,custom_field_settings.custom_field.enum_options.enabled,custom_field_settings.custom_field.enum_options.name,custom_field_settings.custom_field.enum_value,custom_field_settings.custom_field.enum_value.color,custom_field_settings.custom_field.enum_value.enabled,custom_field_settings.custom_field.enum_value.name,custom_field_settings.custom_field.format,custom_field_settings.custom_field.has_notifications_enabled,custom_field_settings.custom_field.id_prefix,custom_field_settings.custom_field.input_restrictions,custom_field_settings.custom_field.is_formula_field,custom_field_settings.custom_field.is_global_to_workspace,custom_field_settings.custom_field.is_value_read_only,custom_field_settings.custom_field.multi_enum_values,custom_field_settings.custom_field.multi_enum_values.color,custom_field_settings.custom_field.multi_enum_values.enabled,custom_field_settings.custom_field.multi_enum_values.name,custom_field_settings.custom_field.name,custom_field_settings.custom_field.number_value,custom_field_settings.custom_field.people_value,custom_field_settings.custom_field.people_value.name,custom_field_settings.custom_field.precision,custom_field_settings.custom_field.privacy_setting,custom_field_settings.custom_field.reference_value,custom_field_settings.custom_field.reference_value.name,custom_field_settings.custom_field.representation_type,custom_field_settings.custom_field.resource_subtype,custom_field_settings.custom_field.text_value,custom_field_settings.custom_field.type,custom_field_settings.is_important,custom_field_settings.parent,custom_field_settings.parent.name,custom_field_settings.project,custom_field_settings.project.name,custom_fields,custom_fields.date_value,custom_fields.date_value.date,custom_fields.date_value.date_time,custom_fields.display_value,custom_fields.enabled,custom_fields.enum_options,custom_fields.enum_options.color,custom_fields.enum_options.enabled,custom_fields.enum_options.name,custom_fields.enum_value,custom_fields.enum_value.color,custom_fields.enum_value.enabled,custom_fields.enum_value.name,custom_fields.id_prefix,custom_fields.input_restrictions,custom_fields.is_formula_field,custom_fields.multi_enum_values,custom_fields.multi_enum_values.color,custom_fields.multi_enum_values.enabled,custom_fields.multi_enum_values.name,custom_fields.name,custom_fields.number_value,custom_fields.representation_type,custom_fields.text_value,custom_fields.type,default_access_level,default_view,due_date,due_on,followers,followers.name,html_notes,icon,members,members.name,minimum_access_level_for_customization,minimum_access_level_for_sharing,modified_at,name,notes,owner,permalink_url,privacy_setting,project_brief,public,start_on,team,team.name,workspace,workspace.name", # list[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. } try: # Add followers to a project api_response = projects_api_instance.add_followers_for_project(body, project_gid, opts) pprint(api_response) except ApiException as e: print("Exception when calling ProjectsApi->add_followers_for_project: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.projects.add_followers_for_project(project_gid, {'field': 'value', 'field': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- projects->addFollowersForProject($project_gid, array('field' => 'value', 'field' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.projects.add_followers_for_project(project_gid: 'project_gid', field: "value", field: "value", options: {pretty: true}) /projects/{project_gid}/removeFollowers: parameters: - $ref: '#/components/parameters/project_path_gid' - $ref: '#/components/parameters/pretty' post: summary: Remove followers from a project description: >- Removes the specified list of users from following the project, this will not affect project membership status. Returns the updated project record. tags: - Projects operationId: removeFollowersForProject parameters: - name: opt_fields in: query description: 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. required: false example: - archived - color - completed - completed_at - completed_by - completed_by.name - created_at - created_from_template - created_from_template.name - current_status - current_status.author - current_status.author.name - current_status.color - current_status.created_at - current_status.created_by - current_status.created_by.name - current_status.html_text - current_status.modified_at - current_status.text - current_status.title - current_status_update - current_status_update.resource_subtype - current_status_update.title - custom_field_settings - custom_field_settings.custom_field - custom_field_settings.custom_field.asana_created_field - custom_field_settings.custom_field.created_by - custom_field_settings.custom_field.created_by.name - custom_field_settings.custom_field.currency_code - custom_field_settings.custom_field.custom_label - custom_field_settings.custom_field.custom_label_position - custom_field_settings.custom_field.date_value - custom_field_settings.custom_field.date_value.date - custom_field_settings.custom_field.date_value.date_time - custom_field_settings.custom_field.default_access_level - custom_field_settings.custom_field.description - custom_field_settings.custom_field.display_value - custom_field_settings.custom_field.enabled - custom_field_settings.custom_field.enum_options - custom_field_settings.custom_field.enum_options.color - custom_field_settings.custom_field.enum_options.enabled - custom_field_settings.custom_field.enum_options.name - custom_field_settings.custom_field.enum_value - custom_field_settings.custom_field.enum_value.color - custom_field_settings.custom_field.enum_value.enabled - custom_field_settings.custom_field.enum_value.name - custom_field_settings.custom_field.format - custom_field_settings.custom_field.has_notifications_enabled - custom_field_settings.custom_field.id_prefix - custom_field_settings.custom_field.input_restrictions - custom_field_settings.custom_field.is_formula_field - custom_field_settings.custom_field.is_global_to_workspace - custom_field_settings.custom_field.is_value_read_only - custom_field_settings.custom_field.multi_enum_values - custom_field_settings.custom_field.multi_enum_values.color - custom_field_settings.custom_field.multi_enum_values.enabled - custom_field_settings.custom_field.multi_enum_values.name - custom_field_settings.custom_field.name - custom_field_settings.custom_field.number_value - custom_field_settings.custom_field.people_value - custom_field_settings.custom_field.people_value.name - custom_field_settings.custom_field.precision - custom_field_settings.custom_field.privacy_setting - custom_field_settings.custom_field.reference_value - custom_field_settings.custom_field.reference_value.name - custom_field_settings.custom_field.representation_type - custom_field_settings.custom_field.resource_subtype - custom_field_settings.custom_field.text_value - custom_field_settings.custom_field.type - custom_field_settings.is_important - custom_field_settings.parent - custom_field_settings.parent.name - custom_field_settings.project - custom_field_settings.project.name - custom_fields - custom_fields.date_value - custom_fields.date_value.date - custom_fields.date_value.date_time - custom_fields.display_value - custom_fields.enabled - custom_fields.enum_options - custom_fields.enum_options.color - custom_fields.enum_options.enabled - custom_fields.enum_options.name - custom_fields.enum_value - custom_fields.enum_value.color - custom_fields.enum_value.enabled - custom_fields.enum_value.name - custom_fields.id_prefix - custom_fields.input_restrictions - custom_fields.is_formula_field - custom_fields.multi_enum_values - custom_fields.multi_enum_values.color - custom_fields.multi_enum_values.enabled - custom_fields.multi_enum_values.name - custom_fields.name - custom_fields.number_value - custom_fields.representation_type - custom_fields.text_value - custom_fields.type - default_access_level - default_view - due_date - due_on - followers - followers.name - html_notes - icon - members - members.name - minimum_access_level_for_customization - minimum_access_level_for_sharing - modified_at - name - notes - owner - permalink_url - privacy_setting - project_brief - public - start_on - team - team.name - workspace - workspace.name schema: type: array items: type: string enum: - archived - color - completed - completed_at - completed_by - completed_by.name - created_at - created_from_template - created_from_template.name - current_status - current_status.author - current_status.author.name - current_status.color - current_status.created_at - current_status.created_by - current_status.created_by.name - current_status.html_text - current_status.modified_at - current_status.text - current_status.title - current_status_update - current_status_update.resource_subtype - current_status_update.title - custom_field_settings - custom_field_settings.custom_field - custom_field_settings.custom_field.asana_created_field - custom_field_settings.custom_field.created_by - custom_field_settings.custom_field.created_by.name - custom_field_settings.custom_field.currency_code - custom_field_settings.custom_field.custom_label - custom_field_settings.custom_field.custom_label_position - custom_field_settings.custom_field.date_value - custom_field_settings.custom_field.date_value.date - custom_field_settings.custom_field.date_value.date_time - custom_field_settings.custom_field.default_access_level - custom_field_settings.custom_field.description - custom_field_settings.custom_field.display_value - custom_field_settings.custom_field.enabled - custom_field_settings.custom_field.enum_options - custom_field_settings.custom_field.enum_options.color - custom_field_settings.custom_field.enum_options.enabled - custom_field_settings.custom_field.enum_options.name - custom_field_settings.custom_field.enum_value - custom_field_settings.custom_field.enum_value.color - custom_field_settings.custom_field.enum_value.enabled - custom_field_settings.custom_field.enum_value.name - custom_field_settings.custom_field.format - custom_field_settings.custom_field.has_notifications_enabled - custom_field_settings.custom_field.id_prefix - custom_field_settings.custom_field.input_restrictions - custom_field_settings.custom_field.is_formula_field - custom_field_settings.custom_field.is_global_to_workspace - custom_field_settings.custom_field.is_value_read_only - custom_field_settings.custom_field.multi_enum_values - custom_field_settings.custom_field.multi_enum_values.color - custom_field_settings.custom_field.multi_enum_values.enabled - custom_field_settings.custom_field.multi_enum_values.name - custom_field_settings.custom_field.name - custom_field_settings.custom_field.number_value - custom_field_settings.custom_field.people_value - custom_field_settings.custom_field.people_value.name - custom_field_settings.custom_field.precision - custom_field_settings.custom_field.privacy_setting - custom_field_settings.custom_field.reference_value - custom_field_settings.custom_field.reference_value.name - custom_field_settings.custom_field.representation_type - custom_field_settings.custom_field.resource_subtype - custom_field_settings.custom_field.text_value - custom_field_settings.custom_field.type - custom_field_settings.is_important - custom_field_settings.parent - custom_field_settings.parent.name - custom_field_settings.project - custom_field_settings.project.name - custom_fields - custom_fields.date_value - custom_fields.date_value.date - custom_fields.date_value.date_time - custom_fields.display_value - custom_fields.enabled - custom_fields.enum_options - custom_fields.enum_options.color - custom_fields.enum_options.enabled - custom_fields.enum_options.name - custom_fields.enum_value - custom_fields.enum_value.color - custom_fields.enum_value.enabled - custom_fields.enum_value.name - custom_fields.id_prefix - custom_fields.input_restrictions - custom_fields.is_formula_field - custom_fields.multi_enum_values - custom_fields.multi_enum_values.color - custom_fields.multi_enum_values.enabled - custom_fields.multi_enum_values.name - custom_fields.name - custom_fields.number_value - custom_fields.representation_type - custom_fields.text_value - custom_fields.type - default_access_level - default_view - due_date - due_on - followers - followers.name - html_notes - icon - members - members.name - minimum_access_level_for_customization - minimum_access_level_for_sharing - modified_at - name - notes - owner - permalink_url - privacy_setting - project_brief - public - start_on - team - team.name - workspace - workspace.name style: form explode: false requestBody: description: Information about the followers being removed. required: true content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/RemoveFollowersRequest' responses: 200: description: Successfully removed followers from the project. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/ProjectResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: [] x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); Project result = client.projects.removeFollowersForProject(projectGid) .data("field", "value") .data("field", "value") .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let projectsApiInstance = new Asana.ProjectsApi(client); let body = {"data": {"": "", "": "",}}; // Object | Information about the followers being removed. let project_gid = "1331"; // String | Globally unique identifier for the project. let opts = { 'opt_fields': "archived,color,completed,completed_at,completed_by,completed_by.name,created_at,created_from_template,created_from_template.name,current_status,current_status.author,current_status.author.name,current_status.color,current_status.created_at,current_status.created_by,current_status.created_by.name,current_status.html_text,current_status.modified_at,current_status.text,current_status.title,current_status_update,current_status_update.resource_subtype,current_status_update.title,custom_field_settings,custom_field_settings.custom_field,custom_field_settings.custom_field.asana_created_field,custom_field_settings.custom_field.created_by,custom_field_settings.custom_field.created_by.name,custom_field_settings.custom_field.currency_code,custom_field_settings.custom_field.custom_label,custom_field_settings.custom_field.custom_label_position,custom_field_settings.custom_field.date_value,custom_field_settings.custom_field.date_value.date,custom_field_settings.custom_field.date_value.date_time,custom_field_settings.custom_field.default_access_level,custom_field_settings.custom_field.description,custom_field_settings.custom_field.display_value,custom_field_settings.custom_field.enabled,custom_field_settings.custom_field.enum_options,custom_field_settings.custom_field.enum_options.color,custom_field_settings.custom_field.enum_options.enabled,custom_field_settings.custom_field.enum_options.name,custom_field_settings.custom_field.enum_value,custom_field_settings.custom_field.enum_value.color,custom_field_settings.custom_field.enum_value.enabled,custom_field_settings.custom_field.enum_value.name,custom_field_settings.custom_field.format,custom_field_settings.custom_field.has_notifications_enabled,custom_field_settings.custom_field.id_prefix,custom_field_settings.custom_field.input_restrictions,custom_field_settings.custom_field.is_formula_field,custom_field_settings.custom_field.is_global_to_workspace,custom_field_settings.custom_field.is_value_read_only,custom_field_settings.custom_field.multi_enum_values,custom_field_settings.custom_field.multi_enum_values.color,custom_field_settings.custom_field.multi_enum_values.enabled,custom_field_settings.custom_field.multi_enum_values.name,custom_field_settings.custom_field.name,custom_field_settings.custom_field.number_value,custom_field_settings.custom_field.people_value,custom_field_settings.custom_field.people_value.name,custom_field_settings.custom_field.precision,custom_field_settings.custom_field.privacy_setting,custom_field_settings.custom_field.reference_value,custom_field_settings.custom_field.reference_value.name,custom_field_settings.custom_field.representation_type,custom_field_settings.custom_field.resource_subtype,custom_field_settings.custom_field.text_value,custom_field_settings.custom_field.type,custom_field_settings.is_important,custom_field_settings.parent,custom_field_settings.parent.name,custom_field_settings.project,custom_field_settings.project.name,custom_fields,custom_fields.date_value,custom_fields.date_value.date,custom_fields.date_value.date_time,custom_fields.display_value,custom_fields.enabled,custom_fields.enum_options,custom_fields.enum_options.color,custom_fields.enum_options.enabled,custom_fields.enum_options.name,custom_fields.enum_value,custom_fields.enum_value.color,custom_fields.enum_value.enabled,custom_fields.enum_value.name,custom_fields.id_prefix,custom_fields.input_restrictions,custom_fields.is_formula_field,custom_fields.multi_enum_values,custom_fields.multi_enum_values.color,custom_fields.multi_enum_values.enabled,custom_fields.multi_enum_values.name,custom_fields.name,custom_fields.number_value,custom_fields.representation_type,custom_fields.text_value,custom_fields.type,default_access_level,default_view,due_date,due_on,followers,followers.name,html_notes,icon,members,members.name,minimum_access_level_for_customization,minimum_access_level_for_sharing,modified_at,name,notes,owner,permalink_url,privacy_setting,project_brief,public,start_on,team,team.name,workspace,workspace.name" }; projectsApiInstance.removeFollowersForProject(body, project_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.projects.removeFollowersForProject(projectGid, {field: "value", field: "value", pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class projects_api_instance = asana.ProjectsApi(api_client) body = {"data": {"": "", "": "",}} # dict | Information about the followers being removed. project_gid = "1331" # str | Globally unique identifier for the project. opts = { 'opt_fields': "archived,color,completed,completed_at,completed_by,completed_by.name,created_at,created_from_template,created_from_template.name,current_status,current_status.author,current_status.author.name,current_status.color,current_status.created_at,current_status.created_by,current_status.created_by.name,current_status.html_text,current_status.modified_at,current_status.text,current_status.title,current_status_update,current_status_update.resource_subtype,current_status_update.title,custom_field_settings,custom_field_settings.custom_field,custom_field_settings.custom_field.asana_created_field,custom_field_settings.custom_field.created_by,custom_field_settings.custom_field.created_by.name,custom_field_settings.custom_field.currency_code,custom_field_settings.custom_field.custom_label,custom_field_settings.custom_field.custom_label_position,custom_field_settings.custom_field.date_value,custom_field_settings.custom_field.date_value.date,custom_field_settings.custom_field.date_value.date_time,custom_field_settings.custom_field.default_access_level,custom_field_settings.custom_field.description,custom_field_settings.custom_field.display_value,custom_field_settings.custom_field.enabled,custom_field_settings.custom_field.enum_options,custom_field_settings.custom_field.enum_options.color,custom_field_settings.custom_field.enum_options.enabled,custom_field_settings.custom_field.enum_options.name,custom_field_settings.custom_field.enum_value,custom_field_settings.custom_field.enum_value.color,custom_field_settings.custom_field.enum_value.enabled,custom_field_settings.custom_field.enum_value.name,custom_field_settings.custom_field.format,custom_field_settings.custom_field.has_notifications_enabled,custom_field_settings.custom_field.id_prefix,custom_field_settings.custom_field.input_restrictions,custom_field_settings.custom_field.is_formula_field,custom_field_settings.custom_field.is_global_to_workspace,custom_field_settings.custom_field.is_value_read_only,custom_field_settings.custom_field.multi_enum_values,custom_field_settings.custom_field.multi_enum_values.color,custom_field_settings.custom_field.multi_enum_values.enabled,custom_field_settings.custom_field.multi_enum_values.name,custom_field_settings.custom_field.name,custom_field_settings.custom_field.number_value,custom_field_settings.custom_field.people_value,custom_field_settings.custom_field.people_value.name,custom_field_settings.custom_field.precision,custom_field_settings.custom_field.privacy_setting,custom_field_settings.custom_field.reference_value,custom_field_settings.custom_field.reference_value.name,custom_field_settings.custom_field.representation_type,custom_field_settings.custom_field.resource_subtype,custom_field_settings.custom_field.text_value,custom_field_settings.custom_field.type,custom_field_settings.is_important,custom_field_settings.parent,custom_field_settings.parent.name,custom_field_settings.project,custom_field_settings.project.name,custom_fields,custom_fields.date_value,custom_fields.date_value.date,custom_fields.date_value.date_time,custom_fields.display_value,custom_fields.enabled,custom_fields.enum_options,custom_fields.enum_options.color,custom_fields.enum_options.enabled,custom_fields.enum_options.name,custom_fields.enum_value,custom_fields.enum_value.color,custom_fields.enum_value.enabled,custom_fields.enum_value.name,custom_fields.id_prefix,custom_fields.input_restrictions,custom_fields.is_formula_field,custom_fields.multi_enum_values,custom_fields.multi_enum_values.color,custom_fields.multi_enum_values.enabled,custom_fields.multi_enum_values.name,custom_fields.name,custom_fields.number_value,custom_fields.representation_type,custom_fields.text_value,custom_fields.type,default_access_level,default_view,due_date,due_on,followers,followers.name,html_notes,icon,members,members.name,minimum_access_level_for_customization,minimum_access_level_for_sharing,modified_at,name,notes,owner,permalink_url,privacy_setting,project_brief,public,start_on,team,team.name,workspace,workspace.name", # list[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. } try: # Remove followers from a project api_response = projects_api_instance.remove_followers_for_project(body, project_gid, opts) pprint(api_response) except ApiException as e: print("Exception when calling ProjectsApi->remove_followers_for_project: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.projects.remove_followers_for_project(project_gid, {'field': 'value', 'field': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- projects->removeFollowersForProject($project_gid, array('field' => 'value', 'field' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.projects.remove_followers_for_project(project_gid: 'project_gid', field: "value", field: "value", options: {pretty: true}) /projects/{project_gid}/saveAsTemplate: parameters: - $ref: '#/components/parameters/project_path_gid' - $ref: '#/components/parameters/pretty' post: summary: Create a project template from a project description: |- Creates and returns a job that will asynchronously handle the project template creation. tags: - Projects operationId: projectSaveAsTemplate parameters: - name: opt_fields in: query description: 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. required: false example: - new_graph_export - new_graph_export.completed_at - new_graph_export.created_at - new_graph_export.download_url - new_project - new_project.name - new_project_template - new_project_template.name - new_resource_export - new_resource_export.completed_at - new_resource_export.created_at - new_resource_export.download_url - new_task - new_task.created_by - new_task.name - new_task.resource_subtype - resource_subtype - status schema: type: array items: type: string enum: - new_graph_export - new_graph_export.completed_at - new_graph_export.created_at - new_graph_export.download_url - new_project - new_project.name - new_project_template - new_project_template.name - new_resource_export - new_resource_export.completed_at - new_resource_export.created_at - new_resource_export.download_url - new_task - new_task.created_by - new_task.name - new_task.resource_subtype - resource_subtype - status style: form explode: false requestBody: description: >- Describes the inputs used for creating a project template, such as the resulting project template's name, which team it should be created in. required: true content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/ProjectSaveAsTemplateRequest' responses: 201: description: Successfully created the job to handle project template creation. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/JobResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: [] x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); Job result = client.projects.projectSaveAsTemplate(projectGid) .data("field", "value") .data("field", "value") .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let projectsApiInstance = new Asana.ProjectsApi(client); let body = {"data": {"": "", "": "",}}; // Object | Describes the inputs used for creating a project template, such as the resulting project template's name, which team it should be created in. let project_gid = "1331"; // String | Globally unique identifier for the project. let opts = { 'opt_fields': "new_graph_export,new_graph_export.completed_at,new_graph_export.created_at,new_graph_export.download_url,new_project,new_project.name,new_project_template,new_project_template.name,new_resource_export,new_resource_export.completed_at,new_resource_export.created_at,new_resource_export.download_url,new_task,new_task.created_by,new_task.name,new_task.resource_subtype,resource_subtype,status" }; projectsApiInstance.projectSaveAsTemplate(body, project_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.projects.projectSaveAsTemplate(projectGid, {field: "value", field: "value", pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class projects_api_instance = asana.ProjectsApi(api_client) body = {"data": {"": "", "": "",}} # dict | Describes the inputs used for creating a project template, such as the resulting project template's name, which team it should be created in. project_gid = "1331" # str | Globally unique identifier for the project. opts = { 'opt_fields': "new_graph_export,new_graph_export.completed_at,new_graph_export.created_at,new_graph_export.download_url,new_project,new_project.name,new_project_template,new_project_template.name,new_resource_export,new_resource_export.completed_at,new_resource_export.created_at,new_resource_export.download_url,new_task,new_task.created_by,new_task.name,new_task.resource_subtype,resource_subtype,status", # list[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. } try: # Create a project template from a project api_response = projects_api_instance.project_save_as_template(body, project_gid, opts) pprint(api_response) except ApiException as e: print("Exception when calling ProjectsApi->project_save_as_template: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.projects.project_save_as_template(project_gid, {'field': 'value', 'field': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- projects->projectSaveAsTemplate($project_gid, array('field' => 'value', 'field' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.projects.project_save_as_template(project_gid: 'project_gid', field: "value", field: "value", options: {pretty: true}) /rates: parameters: - $ref: '#/components/parameters/pretty' get: summary: Get multiple rates description: >- Returns a list of `rate` records. The possible types for `parent` in this request are `project`. An additional `resource` (`user` GID or `placeholder` GID) can be passed in to filter to a specific rate. Modifying placeholder rates is only available for Enterprise and Enterprise+ users. tags: - Rates operationId: getRates parameters: - name: parent in: query description: >- Globally unique identifier for `project`. schema: type: string example: '159874' - name: resource in: query description: Globally unique identifier for `user` or `placeholder`. schema: type: string example: '1061493' - $ref: '#/components/parameters/limit' - $ref: '#/components/parameters/offset' - name: opt_fields in: query description: 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. required: false example: - offset - path - uri schema: type: array items: type: string enum: - offset - path - uri style: form explode: false responses: 200: description: >- Successfully retrieved the requested rates. content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/RateOrPlaceholderCompact' next_page: $ref: '#/components/schemas/NextPage' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 402: $ref: '#/components/responses/PaymentRequired' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: [] x-readme: code-samples: - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let ratesApiInstance = new Asana.RatesApi(client); let opts = { 'parent': "159874", 'resource': "1061493", 'limit': 50, 'offset': "eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9", 'opt_fields': "offset,path,uri" }; ratesApiInstance.getRates(opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 post: summary: Create a rate description: Creates a new rate for a `parent` + `resource` combination. tags: - Rates operationId: createRate parameters: - name: opt_fields in: query description: 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. required: false example: - created_by - created_by.name - currency_code - parent - parent.name - rate - resource - resource.name schema: type: array items: type: string enum: - created_by - created_by.name - currency_code - parent - parent.name - rate - resource - resource.name style: form explode: false requestBody: description: The rate to create. required: true content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/RateRequest' responses: 201: description: Successfully created a new rate. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/RateResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 402: $ref: '#/components/responses/PaymentRequired' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: [] x-readme: code-samples: - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let ratesApiInstance = new Asana.RatesApi(client); let body = {"data": {"": "", "": "",}}; // Object | The rate to create. let opts = { 'opt_fields': "created_by,created_by.name,currency_code,parent,parent.name,rate,resource,resource.name" }; ratesApiInstance.createRate(body, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 /rates/{rate_gid}: parameters: - $ref: '#/components/parameters/rate_path_gid' - $ref: '#/components/parameters/pretty' get: summary: Get a rate description: Returns the complete rate record for a single rate. tags: - Rates operationId: getRate parameters: - name: opt_fields in: query description: 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. required: false example: - created_by - created_by.name - currency_code - parent - parent.name - rate - resource - resource.name schema: type: array items: type: string enum: - created_by - created_by.name - currency_code - parent - parent.name - rate - resource - resource.name style: form explode: false responses: 200: description: Successfully retrieved the record for a single rate. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/RateResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 402: $ref: '#/components/responses/PaymentRequired' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: [] x-readme: code-samples: - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let ratesApiInstance = new Asana.RatesApi(client); let rate_gid = "12345"; // String | Globally unique identifier for the rate. let opts = { 'opt_fields': "created_by,created_by.name,currency_code,parent,parent.name,rate,resource,resource.name" }; ratesApiInstance.getRate(rate_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 put: summary: Update a rate description: |- An existing rate can be updated by making a PUT request on the URL for that rate. Only the fields provided in the `data` block will be updated; any unspecified fields will remain unchanged. (note that at this time, the only field that can be updated is the `rate` field.) Returns the complete updated rate record. tags: - Rates operationId: updateRate parameters: - name: opt_fields in: query description: 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. required: false example: - created_by - created_by.name - currency_code - parent - parent.name - rate - resource - resource.name schema: type: array items: type: string enum: - created_by - created_by.name - currency_code - parent - parent.name - rate - resource - resource.name style: form explode: false requestBody: description: The updated fields for the rate. required: true content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/RateUpdateRequest' responses: 200: description: Successfully updated the rate. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/RateResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 402: $ref: '#/components/responses/PaymentRequired' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: [] x-readme: code-samples: - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let ratesApiInstance = new Asana.RatesApi(client); let body = {"data": {"": "", "": "",}}; // Object | The updated fields for the rate. let rate_gid = "12345"; // String | Globally unique identifier for the rate. let opts = { 'opt_fields': "created_by,created_by.name,currency_code,parent,parent.name,rate,resource,resource.name" }; ratesApiInstance.updateRate(body, rate_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 delete: summary: Delete a rate description: Deletes a rate. tags: - Rates operationId: deleteRate responses: 200: description: Successfully deleted the rate. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/EmptyResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 402: $ref: '#/components/responses/PaymentRequired' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: [] x-readme: code-samples: - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let ratesApiInstance = new Asana.RatesApi(client); let rate_gid = "12345"; // String | Globally unique identifier for the rate. ratesApiInstance.deleteRate(rate_gid).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 /reactions: parameters: - $ref: '#/components/parameters/pretty' - $ref: '#/components/parameters/limit' - $ref: '#/components/parameters/offset' get: summary: Get reactions with an emoji base on an object. description: >- Returns the reactions with a specified emoji base character on the object. operationId: getReactionsOnObject tags: - Reactions parameters: - name: target required: true in: query description: >- Globally unique identifier for object to fetch reactions from. Must be a GID for a status update or story. schema: type: string example: '159874' - name: emoji_base required: true in: query description: |- Only return reactions with this emoji base character. schema: type: string example: 👍 responses: 200: description: Successfully retrieved the specified object's reactions. content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/ReactionCompact' next_page: $ref: '#/components/schemas/NextPage' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: [] x-readme: code-samples: - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let reactionsApiInstance = new Asana.ReactionsApi(client); let target = "159874"; // String | Globally unique identifier for object to fetch reactions from. Must be a GID for a status update or story. let emoji_base = "👍"; // String | Only return reactions with this emoji base character. let opts = { 'limit': 50, 'offset': "eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9" }; reactionsApiInstance.getReactionsOnObject(target, emoji_base, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class reactions_api_instance = asana.ReactionsApi(api_client) target = "159874" # 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. opts = { 'limit': 50, # int | Results per page. The number of objects to return per page. The value must be between 1 and 100. 'offset': "eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9", # 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.* } try: # Get reactions with an emoji base on an object. api_response = reactions_api_instance.get_reactions_on_object(target, emoji_base, opts) for data in api_response: pprint(data) except ApiException as e: print("Exception when calling ReactionsApi->get_reactions_on_object: %s\n" % e) name: python-sdk-v5 /rule_triggers/{rule_trigger_gid}/run: parameters: - $ref: '#/components/parameters/rule_trigger_path_gid' post: summary: Trigger a rule description: |- Trigger a rule which uses an ["incoming web request"](/docs/incoming-web-requests) trigger. tags: - Rules operationId: triggerRule requestBody: description: A dictionary of variables accessible from within the rule. required: true content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/RuleTriggerRequest' responses: 200: description: Successfully triggered a rule. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/RuleTriggerResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 402: $ref: '#/components/responses/PaymentRequired' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: [] x-readme: code-samples: - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let rulesApiInstance = new Asana.RulesApi(client); let body = {"data": {"": "", "": "",}}; // Object | A dictionary of variables accessible from within the rule. let rule_trigger_gid = "12345"; // String | The ID of the incoming web request trigger. This value is a path parameter that is automatically generated for the API endpoint. rulesApiInstance.triggerRule(body, rule_trigger_gid).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.rules.triggerRule(ruleTriggerGid, {field: "value", field: "value", pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class rules_api_instance = asana.RulesApi(api_client) body = {"data": {"": "", "": "",}} # dict | A dictionary of variables accessible from within the rule. rule_trigger_gid = "12345" # str | The ID of the incoming web request trigger. This value is a path parameter that is automatically generated for the API endpoint. try: # Trigger a rule api_response = rules_api_instance.trigger_rule(body, rule_trigger_gid) pprint(api_response) except ApiException as e: print("Exception when calling RulesApi->trigger_rule: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.rules.trigger_rule(rule_trigger_gid, {'field': 'value', 'field': 'value'}, opt_pretty=True) name: python-sdk-v3 /sections/{section_gid}: parameters: - $ref: '#/components/parameters/section_path_gid' - $ref: '#/components/parameters/pretty' get: summary: Get a section description: >- Returns the complete record for a single section. tags: - Sections operationId: getSection parameters: - name: opt_fields in: query description: 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. required: false example: - created_at - name - project - project.name - projects - projects.name schema: type: array items: type: string enum: - created_at - name - project - project.name - projects - projects.name style: form explode: false responses: 200: description: Successfully retrieved section. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/SectionResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: [] x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); Section result = client.sections.getSection(sectionGid) .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let sectionsApiInstance = new Asana.SectionsApi(client); let section_gid = "321654"; // String | The globally unique identifier for the section. let opts = { 'opt_fields': "created_at,name,project,project.name,projects,projects.name" }; sectionsApiInstance.getSection(section_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.sections.getSection(sectionGid, {param: "value", param: "value", opt_pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class sections_api_instance = asana.SectionsApi(api_client) section_gid = "321654" # str | The globally unique identifier for the section. opts = { 'opt_fields': "created_at,name,project,project.name,projects,projects.name", # list[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. } try: # Get a section api_response = sections_api_instance.get_section(section_gid, opts) pprint(api_response) except ApiException as e: print("Exception when calling SectionsApi->get_section: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.sections.get_section(section_gid, {'param': 'value', 'param': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- sections->getSection($section_gid, array('param' => 'value', 'param' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.sections.get_section(section_gid: 'section_gid', param: "value", param: "value", options: {pretty: true}) put: summary: Update a section description: |- A specific, existing section can be updated by making a PUT request on the URL for that project. Only the fields provided in the `data` block will be updated; any unspecified fields will remain unchanged. (note that at this time, the only field that can be updated is the `name` field.) When using this method, it is best to specify only those fields you wish to change, or else you may overwrite changes made by another user since you last retrieved the task. Returns the complete updated section record. tags: - Sections operationId: updateSection parameters: - name: opt_fields in: query description: 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. required: false example: - created_at - name - project - project.name - projects - projects.name schema: type: array items: type: string enum: - created_at - name - project - project.name - projects - projects.name style: form explode: false requestBody: description: The section to create. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/SectionRequest' responses: 200: description: Successfully updated the specified section. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/SectionResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: [] x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); Section result = client.sections.updateSection(sectionGid) .data("field", "value") .data("field", "value") .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let sectionsApiInstance = new Asana.SectionsApi(client); let section_gid = "321654"; // String | The globally unique identifier for the section. let opts = { 'body': {"data": {"": "", "": "",}}, 'opt_fields': "created_at,name,project,project.name,projects,projects.name" }; sectionsApiInstance.updateSection(section_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.sections.updateSection(sectionGid, {field: "value", field: "value", pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class sections_api_instance = asana.SectionsApi(api_client) section_gid = "321654" # str | The globally unique identifier for the section. opts = { 'body': {"data": {"": "", "": "",}}, # dict | The section to create. 'opt_fields': "created_at,name,project,project.name,projects,projects.name", # list[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. } try: # Update a section api_response = sections_api_instance.update_section(section_gid, opts) pprint(api_response) except ApiException as e: print("Exception when calling SectionsApi->update_section: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.sections.update_section(section_gid, {'field': 'value', 'field': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- sections->updateSection($section_gid, array('field' => 'value', 'field' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.sections.update_section(section_gid: 'section_gid', field: "value", field: "value", options: {pretty: true}) delete: summary: Delete a section description: |- A specific, existing section can be deleted by making a DELETE request on the URL for that section. Note that sections must be empty to be deleted. The last remaining section cannot be deleted. Returns an empty data block. tags: - Sections operationId: deleteSection responses: 200: description: Successfully deleted the specified section. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/EmptyResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: [] x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); JsonElement result = client.sections.deleteSection(sectionGid) .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let sectionsApiInstance = new Asana.SectionsApi(client); let section_gid = "321654"; // String | The globally unique identifier for the section. sectionsApiInstance.deleteSection(section_gid).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.sections.deleteSection(sectionGid) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class sections_api_instance = asana.SectionsApi(api_client) section_gid = "321654" # str | The globally unique identifier for the section. try: # Delete a section api_response = sections_api_instance.delete_section(section_gid) pprint(api_response) except ApiException as e: print("Exception when calling SectionsApi->delete_section: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.sections.delete_section(section_gid, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- sections->deleteSection($section_gid, array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.sections.delete_section(section_gid: 'section_gid', options: {pretty: true}) /projects/{project_gid}/sections: parameters: - $ref: '#/components/parameters/project_path_gid' - $ref: '#/components/parameters/pretty' get: summary: Get sections in a project description: >- Returns the compact records for all sections in the specified project. tags: - Sections operationId: getSectionsForProject parameters: - $ref: '#/components/parameters/limit' - $ref: '#/components/parameters/offset' - name: opt_fields in: query description: 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. required: false example: - created_at - name - offset - path - project - project.name - projects - projects.name - uri schema: type: array items: type: string enum: - created_at - name - offset - path - project - project.name - projects - projects.name - uri style: form explode: false responses: 200: description: Successfully retrieved sections in project. content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/SectionCompact' next_page: $ref: '#/components/schemas/NextPage' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: [] x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); List
result = client.sections.getSectionsForProject(projectGid) .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let sectionsApiInstance = new Asana.SectionsApi(client); let project_gid = "1331"; // String | Globally unique identifier for the project. let opts = { 'limit': 50, 'offset': "eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9", 'opt_fields': "created_at,name,offset,path,project,project.name,projects,projects.name,uri" }; sectionsApiInstance.getSectionsForProject(project_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.sections.getSectionsForProject(projectGid, {param: "value", param: "value", opt_pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class sections_api_instance = asana.SectionsApi(api_client) project_gid = "1331" # str | Globally unique identifier for the project. opts = { 'limit': 50, # int | Results per page. The number of objects to return per page. The value must be between 1 and 100. 'offset': "eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9", # 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': "created_at,name,offset,path,project,project.name,projects,projects.name,uri", # list[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. } try: # Get sections in a project api_response = sections_api_instance.get_sections_for_project(project_gid, opts) for data in api_response: pprint(data) except ApiException as e: print("Exception when calling SectionsApi->get_sections_for_project: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.sections.get_sections_for_project(project_gid, {'param': 'value', 'param': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- sections->getSectionsForProject($project_gid, array('param' => 'value', 'param' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.sections.get_sections_for_project(project_gid: 'project_gid', param: "value", param: "value", options: {pretty: true}) post: summary: Create a section in a project description: >- Creates a new section in a project. Returns the full record of the newly created section. tags: - Sections operationId: createSectionForProject parameters: - name: opt_fields in: query description: 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. required: false example: - created_at - name - project - project.name - projects - projects.name schema: type: array items: type: string enum: - created_at - name - project - project.name - projects - projects.name style: form explode: false requestBody: description: The section to create. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/SectionRequest' responses: 201: description: Successfully created the specified section. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/SectionResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: [] x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); Section result = client.sections.createSectionForProject(projectGid) .data("field", "value") .data("field", "value") .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let sectionsApiInstance = new Asana.SectionsApi(client); let project_gid = "1331"; // String | Globally unique identifier for the project. let opts = { 'body': {"data": {"": "", "": "",}}, 'opt_fields': "created_at,name,project,project.name,projects,projects.name" }; sectionsApiInstance.createSectionForProject(project_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.sections.createSectionForProject(projectGid, {field: "value", field: "value", pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class sections_api_instance = asana.SectionsApi(api_client) project_gid = "1331" # str | Globally unique identifier for the project. opts = { 'body': {"data": {"": "", "": "",}}, # dict | The section to create. 'opt_fields': "created_at,name,project,project.name,projects,projects.name", # list[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. } try: # Create a section in a project api_response = sections_api_instance.create_section_for_project(project_gid, opts) pprint(api_response) except ApiException as e: print("Exception when calling SectionsApi->create_section_for_project: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.sections.create_section_for_project(project_gid, {'field': 'value', 'field': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- sections->createSectionForProject($project_gid, array('field' => 'value', 'field' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.sections.create_section_for_project(project_gid: 'project_gid', field: "value", field: "value", options: {pretty: true}) /sections/{section_gid}/addTask: parameters: - $ref: '#/components/parameters/section_path_gid' - $ref: '#/components/parameters/pretty' post: summary: Add task to section description: |- Required scope: tasks:write Add a task to a specific, existing section. This will remove the task from other sections of the project. The task will be inserted at the top of a section unless an insert_before or insert_after parameter is declared. This does not work for separators (tasks with the resource_subtype of section). tags: - Sections operationId: addTaskForSection requestBody: description: The task and optionally the insert location. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/SectionTaskInsertRequest' responses: 200: description: Successfully added the task. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/EmptyResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: - tasks:write x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); JsonElement result = client.sections.addTaskForSection(sectionGid) .data("field", "value") .data("field", "value") .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let sectionsApiInstance = new Asana.SectionsApi(client); let section_gid = "321654"; // String | The globally unique identifier for the section. let opts = { 'body': {"data": {"": "", "": "",}} }; sectionsApiInstance.addTaskForSection(section_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.sections.addTaskForSection(sectionGid, {field: "value", field: "value", pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class sections_api_instance = asana.SectionsApi(api_client) section_gid = "321654" # str | The globally unique identifier for the section. opts = { 'body': {"data": {"": "", "": "",}}, # dict | The task and optionally the insert location. } try: # Add task to section api_response = sections_api_instance.add_task_for_section(section_gid, opts) pprint(api_response) except ApiException as e: print("Exception when calling SectionsApi->add_task_for_section: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.sections.add_task_for_section(section_gid, {'field': 'value', 'field': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- sections->addTaskForSection($section_gid, array('field' => 'value', 'field' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.sections.add_task_for_section(section_gid: 'section_gid', field: "value", field: "value", options: {pretty: true}) /projects/{project_gid}/sections/insert: parameters: - $ref: '#/components/parameters/project_path_gid' - $ref: '#/components/parameters/pretty' post: summary: Move or Insert sections description: |- Move sections relative to each other. One of `before_section` or `after_section` is required. Sections cannot be moved between projects. Returns an empty data block. tags: - Sections operationId: insertSectionForProject requestBody: description: The section's move action. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/ProjectSectionInsertRequest' responses: 200: description: Successfully moved the specified section. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/EmptyResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: [] x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); JsonElement result = client.sections.insertSectionForProject(projectGid) .data("field", "value") .data("field", "value") .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let sectionsApiInstance = new Asana.SectionsApi(client); let project_gid = "1331"; // String | Globally unique identifier for the project. let opts = { 'body': {"data": {"": "", "": "",}} }; sectionsApiInstance.insertSectionForProject(project_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.sections.insertSectionForProject(projectGid, {field: "value", field: "value", pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class sections_api_instance = asana.SectionsApi(api_client) project_gid = "1331" # str | Globally unique identifier for the project. opts = { 'body': {"data": {"": "", "": "",}}, # dict | The section's move action. } try: # Move or Insert sections api_response = sections_api_instance.insert_section_for_project(project_gid, opts) pprint(api_response) except ApiException as e: print("Exception when calling SectionsApi->insert_section_for_project: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.sections.insert_section_for_project(project_gid, {'field': 'value', 'field': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- sections->insertSectionForProject($project_gid, array('field' => 'value', 'field' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.sections.insert_section_for_project(project_gid: 'project_gid', field: "value", field: "value", options: {pretty: true}) /status_updates/{status_update_gid}: parameters: - $ref: '#/components/parameters/status_update_path_gid' - $ref: '#/components/parameters/pretty' get: summary: Get a status update description: >- Returns the complete record for a single status update. tags: - Status updates operationId: getStatus parameters: - name: opt_fields in: query description: 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. required: false example: - author - author.name - created_at - created_by - created_by.name - hearted - hearts - hearts.user - hearts.user.name - html_text - liked - likes - likes.user - likes.user.name - modified_at - num_hearts - num_likes - parent - parent.name - reaction_summary - reaction_summary.count - reaction_summary.emoji_base - reaction_summary.reacted - reaction_summary.variant - resource_subtype - status_type - text - title schema: type: array items: type: string enum: - author - author.name - created_at - created_by - created_by.name - hearted - hearts - hearts.user - hearts.user.name - html_text - liked - likes - likes.user - likes.user.name - modified_at - num_hearts - num_likes - parent - parent.name - reaction_summary - reaction_summary.count - reaction_summary.emoji_base - reaction_summary.reacted - reaction_summary.variant - resource_subtype - status_type - text - title style: form explode: false responses: 200: description: Successfully retrieved the specified object's status updates. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/StatusUpdateResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: [] x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); JsonElement result = client.statusupdates.getStatus(statusGid) .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let statusUpdatesApiInstance = new Asana.StatusUpdatesApi(client); let status_update_gid = "321654"; // String | The status update to get. let opts = { 'opt_fields': "author,author.name,created_at,created_by,created_by.name,hearted,hearts,hearts.user,hearts.user.name,html_text,liked,likes,likes.user,likes.user.name,modified_at,num_hearts,num_likes,parent,parent.name,reaction_summary,reaction_summary.count,reaction_summary.emoji_base,reaction_summary.reacted,reaction_summary.variant,resource_subtype,status_type,text,title" }; statusUpdatesApiInstance.getStatus(status_update_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.statusupdates.getStatus(statusUpdateGid, {param: "value", param: "value", opt_pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class status_updates_api_instance = asana.StatusUpdatesApi(api_client) status_update_gid = "321654" # str | The status update to get. opts = { 'opt_fields': "author,author.name,created_at,created_by,created_by.name,hearted,hearts,hearts.user,hearts.user.name,html_text,liked,likes,likes.user,likes.user.name,modified_at,num_hearts,num_likes,parent,parent.name,reaction_summary,reaction_summary.count,reaction_summary.emoji_base,reaction_summary.reacted,reaction_summary.variant,resource_subtype,status_type,text,title", # list[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. } try: # Get a status update api_response = status_updates_api_instance.get_status(status_update_gid, opts) pprint(api_response) except ApiException as e: print("Exception when calling StatusUpdatesApi->get_status: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.status_updates.get_status(status_update_gid, {'param': 'value', 'param': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- statusupdates->getStatus($status_gid, array('param' => 'value', 'param' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.status_updates.get_status(status_gid: 'status_gid', param: "value", param: "value", options: {pretty: true}) delete: summary: Delete a status update description: |- Deletes a specific, existing status update. Returns an empty data record. tags: - Status updates operationId: deleteStatus responses: 200: description: Successfully deleted the specified status. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/EmptyResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: [] x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); JsonElement result = client.statusupdates.deleteStatus(statusGid) .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let statusUpdatesApiInstance = new Asana.StatusUpdatesApi(client); let status_update_gid = "321654"; // String | The status update to get. statusUpdatesApiInstance.deleteStatus(status_update_gid).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.statusupdates.deleteStatus(statusUpdateGid) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class status_updates_api_instance = asana.StatusUpdatesApi(api_client) status_update_gid = "321654" # str | The status update to get. try: # Delete a status update api_response = status_updates_api_instance.delete_status(status_update_gid) pprint(api_response) except ApiException as e: print("Exception when calling StatusUpdatesApi->delete_status: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.status_updates.delete_status(status_update_gid, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- statusupdates->deleteStatus($status_gid, array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.status_updates.delete_status(status_gid: 'status_gid', options: {pretty: true}) /status_updates: parameters: - $ref: '#/components/parameters/pretty' - $ref: '#/components/parameters/limit' - $ref: '#/components/parameters/offset' get: summary: Get status updates from an object description: >- Returns the compact status update records for all updates on the object. tags: - Status updates operationId: getStatusesForObject parameters: - name: parent required: true in: query description: >- Globally unique identifier for object to fetch statuses from. Must be a GID for a project, portfolio, or goal. schema: type: string example: '159874' - name: created_since in: query description: |- Only return statuses that have been created since the given time. schema: type: string format: date-time example: '2012-02-22T02:06:58.158Z' - name: opt_fields in: query description: 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. required: false example: - author - author.name - created_at - created_by - created_by.name - hearted - hearts - hearts.user - hearts.user.name - html_text - liked - likes - likes.user - likes.user.name - modified_at - num_hearts - num_likes - offset - parent - parent.name - path - reaction_summary - reaction_summary.count - reaction_summary.emoji_base - reaction_summary.reacted - reaction_summary.variant - resource_subtype - status_type - text - title - uri schema: type: array items: type: string enum: - author - author.name - created_at - created_by - created_by.name - hearted - hearts - hearts.user - hearts.user.name - html_text - liked - likes - likes.user - likes.user.name - modified_at - num_hearts - num_likes - offset - parent - parent.name - path - reaction_summary - reaction_summary.count - reaction_summary.emoji_base - reaction_summary.reacted - reaction_summary.variant - resource_subtype - status_type - text - title - uri style: form explode: false responses: 200: description: Successfully retrieved the specified object's status updates. content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/StatusUpdateCompact' next_page: $ref: '#/components/schemas/NextPage' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: [] x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); List result = client.statusupdates.getStatusesForObject(createdSince, parent) .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let statusUpdatesApiInstance = new Asana.StatusUpdatesApi(client); let parent = "159874"; // String | Globally unique identifier for object to fetch statuses from. Must be a GID for a project, portfolio, or goal. let opts = { 'limit': 50, 'offset': "eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9", 'created_since': "2012-02-22T02:06:58.158Z", 'opt_fields': "author,author.name,created_at,created_by,created_by.name,hearted,hearts,hearts.user,hearts.user.name,html_text,liked,likes,likes.user,likes.user.name,modified_at,num_hearts,num_likes,offset,parent,parent.name,path,reaction_summary,reaction_summary.count,reaction_summary.emoji_base,reaction_summary.reacted,reaction_summary.variant,resource_subtype,status_type,text,title,uri" }; statusUpdatesApiInstance.getStatusesForObject(parent, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.statusupdates.getStatusesForObject({param: "value", param: "value", opt_pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class status_updates_api_instance = asana.StatusUpdatesApi(api_client) parent = "159874" # str | Globally unique identifier for object to fetch statuses from. Must be a GID for a project, portfolio, or goal. opts = { 'limit': 50, # int | Results per page. The number of objects to return per page. The value must be between 1 and 100. 'offset': "eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9", # 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.* 'created_since': '2012-02-22T02:06:58.158Z', # datetime | Only return statuses that have been created since the given time. 'opt_fields': "author,author.name,created_at,created_by,created_by.name,hearted,hearts,hearts.user,hearts.user.name,html_text,liked,likes,likes.user,likes.user.name,modified_at,num_hearts,num_likes,offset,parent,parent.name,path,reaction_summary,reaction_summary.count,reaction_summary.emoji_base,reaction_summary.reacted,reaction_summary.variant,resource_subtype,status_type,text,title,uri", # list[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. } try: # Get status updates from an object api_response = status_updates_api_instance.get_statuses_for_object(parent, opts) for data in api_response: pprint(data) except ApiException as e: print("Exception when calling StatusUpdatesApi->get_statuses_for_object: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.status_updates.get_statuses_for_object({'param': 'value', 'param': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- statusupdates->getStatusesForObject(array('param' => 'value', 'param' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.status_updates.get_statuses_for_object(parent: ''parent_example'', param: "value", param: "value", options: {pretty: true}) post: summary: Create a status update description: >- Creates a new status update on an object. Returns the full record of the newly created status update. tags: - Status updates operationId: createStatusForObject parameters: - name: opt_fields in: query description: 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. required: false example: - author - author.name - created_at - created_by - created_by.name - hearted - hearts - hearts.user - hearts.user.name - html_text - liked - likes - likes.user - likes.user.name - modified_at - num_hearts - num_likes - parent - parent.name - reaction_summary - reaction_summary.count - reaction_summary.emoji_base - reaction_summary.reacted - reaction_summary.variant - resource_subtype - status_type - text - title schema: type: array items: type: string enum: - author - author.name - created_at - created_by - created_by.name - hearted - hearts - hearts.user - hearts.user.name - html_text - liked - likes - likes.user - likes.user.name - modified_at - num_hearts - num_likes - parent - parent.name - reaction_summary - reaction_summary.count - reaction_summary.emoji_base - reaction_summary.reacted - reaction_summary.variant - resource_subtype - status_type - text - title style: form explode: false requestBody: description: The status update to create. required: true content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/StatusUpdateRequest' responses: 201: description: Successfully created a new status update. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/StatusUpdateResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: [] x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); JsonElement result = client.statusupdates.createStatusForObject() .data("field", "value") .data("field", "value") .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let statusUpdatesApiInstance = new Asana.StatusUpdatesApi(client); let body = {"data": {"": "", "": "",}}; // Object | The status update to create. let opts = { 'limit': 50, 'offset': "eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9", 'opt_fields': "author,author.name,created_at,created_by,created_by.name,hearted,hearts,hearts.user,hearts.user.name,html_text,liked,likes,likes.user,likes.user.name,modified_at,num_hearts,num_likes,parent,parent.name,reaction_summary,reaction_summary.count,reaction_summary.emoji_base,reaction_summary.reacted,reaction_summary.variant,resource_subtype,status_type,text,title" }; statusUpdatesApiInstance.createStatusForObject(body, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.statusupdates.createStatusForObject({field: "value", field: "value", pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class status_updates_api_instance = asana.StatusUpdatesApi(api_client) body = {"data": {"": "", "": "",}} # dict | The status update to create. opts = { 'limit': 50, # int | Results per page. The number of objects to return per page. The value must be between 1 and 100. 'offset': "eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9", # 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': "author,author.name,created_at,created_by,created_by.name,hearted,hearts,hearts.user,hearts.user.name,html_text,liked,likes,likes.user,likes.user.name,modified_at,num_hearts,num_likes,parent,parent.name,reaction_summary,reaction_summary.count,reaction_summary.emoji_base,reaction_summary.reacted,reaction_summary.variant,resource_subtype,status_type,text,title", # list[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. } try: # Create a status update api_response = status_updates_api_instance.create_status_for_object(body, opts) pprint(api_response) except ApiException as e: print("Exception when calling StatusUpdatesApi->create_status_for_object: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.status_updates.create_status_for_object({'field': 'value', 'field': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- statusupdates->createStatusForObject(array('field' => 'value', 'field' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.status_updates.create_status_for_object(field: "value", field: "value", options: {pretty: true}) /stories/{story_gid}: parameters: - $ref: '#/components/parameters/story_path_gid' - $ref: '#/components/parameters/pretty' get: summary: Get a story description: |- Required scope: stories:read
Field Required Scope
previews attachments:read
attachments attachments:read
Returns the full record for a single story. tags: - Stories operationId: getStory parameters: - name: opt_fields in: query description: 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. required: false example: - assignee - assignee.name - created_at - created_by - created_by.name - custom_field - custom_field.date_value - custom_field.date_value.date - custom_field.date_value.date_time - custom_field.display_value - custom_field.enabled - custom_field.enum_options - custom_field.enum_options.color - custom_field.enum_options.enabled - custom_field.enum_options.name - custom_field.enum_value - custom_field.enum_value.color - custom_field.enum_value.enabled - custom_field.enum_value.name - custom_field.id_prefix - custom_field.input_restrictions - custom_field.is_formula_field - custom_field.multi_enum_values - custom_field.multi_enum_values.color - custom_field.multi_enum_values.enabled - custom_field.multi_enum_values.name - custom_field.name - custom_field.number_value - custom_field.representation_type - custom_field.text_value - custom_field.type - dependency - dependency.created_by - dependency.name - dependency.resource_subtype - duplicate_of - duplicate_of.created_by - duplicate_of.name - duplicate_of.resource_subtype - duplicated_from - duplicated_from.created_by - duplicated_from.name - duplicated_from.resource_subtype - follower - follower.name - hearted - hearts - hearts.user - hearts.user.name - html_text - is_editable - is_edited - is_pinned - liked - likes - likes.user - likes.user.name - new_approval_status - new_date_value - new_dates - new_dates.due_at - new_dates.due_on - new_dates.start_on - new_enum_value - new_enum_value.color - new_enum_value.enabled - new_enum_value.name - new_multi_enum_values - new_multi_enum_values.color - new_multi_enum_values.enabled - new_multi_enum_values.name - new_name - new_number_value - new_people_value - new_people_value.name - new_resource_subtype - new_section - new_section.name - new_text_value - num_hearts - num_likes - old_approval_status - old_date_value - old_dates - old_dates.due_at - old_dates.due_on - old_dates.start_on - old_enum_value - old_enum_value.color - old_enum_value.enabled - old_enum_value.name - old_multi_enum_values - old_multi_enum_values.color - old_multi_enum_values.enabled - old_multi_enum_values.name - old_name - old_number_value - old_people_value - old_people_value.name - old_resource_subtype - old_section - old_section.name - old_text_value - previews - previews.fallback - previews.footer - previews.header - previews.header_link - previews.html_text - previews.text - previews.title - previews.title_link - project - project.name - reaction_summary - reaction_summary.count - reaction_summary.emoji_base - reaction_summary.reacted - reaction_summary.variant - resource_subtype - source - sticker_name - story - story.created_at - story.created_by - story.created_by.name - story.resource_subtype - story.text - tag - tag.name - target - target.created_by - target.name - target.resource_subtype - task - task.created_by - task.name - task.resource_subtype - text - type schema: type: array items: type: string enum: - assignee - assignee.name - created_at - created_by - created_by.name - custom_field - custom_field.date_value - custom_field.date_value.date - custom_field.date_value.date_time - custom_field.display_value - custom_field.enabled - custom_field.enum_options - custom_field.enum_options.color - custom_field.enum_options.enabled - custom_field.enum_options.name - custom_field.enum_value - custom_field.enum_value.color - custom_field.enum_value.enabled - custom_field.enum_value.name - custom_field.id_prefix - custom_field.input_restrictions - custom_field.is_formula_field - custom_field.multi_enum_values - custom_field.multi_enum_values.color - custom_field.multi_enum_values.enabled - custom_field.multi_enum_values.name - custom_field.name - custom_field.number_value - custom_field.representation_type - custom_field.text_value - custom_field.type - dependency - dependency.created_by - dependency.name - dependency.resource_subtype - duplicate_of - duplicate_of.created_by - duplicate_of.name - duplicate_of.resource_subtype - duplicated_from - duplicated_from.created_by - duplicated_from.name - duplicated_from.resource_subtype - follower - follower.name - hearted - hearts - hearts.user - hearts.user.name - html_text - is_editable - is_edited - is_pinned - liked - likes - likes.user - likes.user.name - new_approval_status - new_date_value - new_dates - new_dates.due_at - new_dates.due_on - new_dates.start_on - new_enum_value - new_enum_value.color - new_enum_value.enabled - new_enum_value.name - new_multi_enum_values - new_multi_enum_values.color - new_multi_enum_values.enabled - new_multi_enum_values.name - new_name - new_number_value - new_people_value - new_people_value.name - new_resource_subtype - new_section - new_section.name - new_text_value - num_hearts - num_likes - old_approval_status - old_date_value - old_dates - old_dates.due_at - old_dates.due_on - old_dates.start_on - old_enum_value - old_enum_value.color - old_enum_value.enabled - old_enum_value.name - old_multi_enum_values - old_multi_enum_values.color - old_multi_enum_values.enabled - old_multi_enum_values.name - old_name - old_number_value - old_people_value - old_people_value.name - old_resource_subtype - old_section - old_section.name - old_text_value - previews - previews.fallback - previews.footer - previews.header - previews.header_link - previews.html_text - previews.text - previews.title - previews.title_link - project - project.name - reaction_summary - reaction_summary.count - reaction_summary.emoji_base - reaction_summary.reacted - reaction_summary.variant - resource_subtype - source - sticker_name - story - story.created_at - story.created_by - story.created_by.name - story.resource_subtype - story.text - tag - tag.name - target - target.created_by - target.name - target.resource_subtype - task - task.created_by - task.name - task.resource_subtype - text - type style: form explode: false responses: 200: description: Successfully retrieved the specified story. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/StoryResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: - stories:read x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); Story result = client.stories.getStory(storyGid) .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let storiesApiInstance = new Asana.StoriesApi(client); let story_gid = "35678"; // String | Globally unique identifier for the story. let opts = { 'opt_fields': "assignee,assignee.name,created_at,created_by,created_by.name,custom_field,custom_field.date_value,custom_field.date_value.date,custom_field.date_value.date_time,custom_field.display_value,custom_field.enabled,custom_field.enum_options,custom_field.enum_options.color,custom_field.enum_options.enabled,custom_field.enum_options.name,custom_field.enum_value,custom_field.enum_value.color,custom_field.enum_value.enabled,custom_field.enum_value.name,custom_field.id_prefix,custom_field.input_restrictions,custom_field.is_formula_field,custom_field.multi_enum_values,custom_field.multi_enum_values.color,custom_field.multi_enum_values.enabled,custom_field.multi_enum_values.name,custom_field.name,custom_field.number_value,custom_field.representation_type,custom_field.text_value,custom_field.type,dependency,dependency.created_by,dependency.name,dependency.resource_subtype,duplicate_of,duplicate_of.created_by,duplicate_of.name,duplicate_of.resource_subtype,duplicated_from,duplicated_from.created_by,duplicated_from.name,duplicated_from.resource_subtype,follower,follower.name,hearted,hearts,hearts.user,hearts.user.name,html_text,is_editable,is_edited,is_pinned,liked,likes,likes.user,likes.user.name,new_approval_status,new_date_value,new_dates,new_dates.due_at,new_dates.due_on,new_dates.start_on,new_enum_value,new_enum_value.color,new_enum_value.enabled,new_enum_value.name,new_multi_enum_values,new_multi_enum_values.color,new_multi_enum_values.enabled,new_multi_enum_values.name,new_name,new_number_value,new_people_value,new_people_value.name,new_resource_subtype,new_section,new_section.name,new_text_value,num_hearts,num_likes,old_approval_status,old_date_value,old_dates,old_dates.due_at,old_dates.due_on,old_dates.start_on,old_enum_value,old_enum_value.color,old_enum_value.enabled,old_enum_value.name,old_multi_enum_values,old_multi_enum_values.color,old_multi_enum_values.enabled,old_multi_enum_values.name,old_name,old_number_value,old_people_value,old_people_value.name,old_resource_subtype,old_section,old_section.name,old_text_value,previews,previews.fallback,previews.footer,previews.header,previews.header_link,previews.html_text,previews.text,previews.title,previews.title_link,project,project.name,reaction_summary,reaction_summary.count,reaction_summary.emoji_base,reaction_summary.reacted,reaction_summary.variant,resource_subtype,source,sticker_name,story,story.created_at,story.created_by,story.created_by.name,story.resource_subtype,story.text,tag,tag.name,target,target.created_by,target.name,target.resource_subtype,task,task.created_by,task.name,task.resource_subtype,text,type" }; storiesApiInstance.getStory(story_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.stories.getStory(storyGid, {param: "value", param: "value", opt_pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class stories_api_instance = asana.StoriesApi(api_client) story_gid = "35678" # str | Globally unique identifier for the story. opts = { 'opt_fields': "assignee,assignee.name,created_at,created_by,created_by.name,custom_field,custom_field.date_value,custom_field.date_value.date,custom_field.date_value.date_time,custom_field.display_value,custom_field.enabled,custom_field.enum_options,custom_field.enum_options.color,custom_field.enum_options.enabled,custom_field.enum_options.name,custom_field.enum_value,custom_field.enum_value.color,custom_field.enum_value.enabled,custom_field.enum_value.name,custom_field.id_prefix,custom_field.input_restrictions,custom_field.is_formula_field,custom_field.multi_enum_values,custom_field.multi_enum_values.color,custom_field.multi_enum_values.enabled,custom_field.multi_enum_values.name,custom_field.name,custom_field.number_value,custom_field.representation_type,custom_field.text_value,custom_field.type,dependency,dependency.created_by,dependency.name,dependency.resource_subtype,duplicate_of,duplicate_of.created_by,duplicate_of.name,duplicate_of.resource_subtype,duplicated_from,duplicated_from.created_by,duplicated_from.name,duplicated_from.resource_subtype,follower,follower.name,hearted,hearts,hearts.user,hearts.user.name,html_text,is_editable,is_edited,is_pinned,liked,likes,likes.user,likes.user.name,new_approval_status,new_date_value,new_dates,new_dates.due_at,new_dates.due_on,new_dates.start_on,new_enum_value,new_enum_value.color,new_enum_value.enabled,new_enum_value.name,new_multi_enum_values,new_multi_enum_values.color,new_multi_enum_values.enabled,new_multi_enum_values.name,new_name,new_number_value,new_people_value,new_people_value.name,new_resource_subtype,new_section,new_section.name,new_text_value,num_hearts,num_likes,old_approval_status,old_date_value,old_dates,old_dates.due_at,old_dates.due_on,old_dates.start_on,old_enum_value,old_enum_value.color,old_enum_value.enabled,old_enum_value.name,old_multi_enum_values,old_multi_enum_values.color,old_multi_enum_values.enabled,old_multi_enum_values.name,old_name,old_number_value,old_people_value,old_people_value.name,old_resource_subtype,old_section,old_section.name,old_text_value,previews,previews.fallback,previews.footer,previews.header,previews.header_link,previews.html_text,previews.text,previews.title,previews.title_link,project,project.name,reaction_summary,reaction_summary.count,reaction_summary.emoji_base,reaction_summary.reacted,reaction_summary.variant,resource_subtype,source,sticker_name,story,story.created_at,story.created_by,story.created_by.name,story.resource_subtype,story.text,tag,tag.name,target,target.created_by,target.name,target.resource_subtype,task,task.created_by,task.name,task.resource_subtype,text,type", # list[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. } try: # Get a story api_response = stories_api_instance.get_story(story_gid, opts) pprint(api_response) except ApiException as e: print("Exception when calling StoriesApi->get_story: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.stories.get_story(story_gid, {'param': 'value', 'param': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- stories->getStory($story_gid, array('param' => 'value', 'param' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.stories.get_story(story_gid: 'story_gid', param: "value", param: "value", options: {pretty: true}) put: summary: Update a story description: |- Required scope: stories:write Updates the story and returns the full record for the updated story. Only comment stories can have their text updated, and only comment stories and attachment stories can be pinned. Only one of `text` and `html_text` can be specified. tags: - Stories operationId: updateStory parameters: - name: opt_fields in: query description: 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. required: false example: - assignee - assignee.name - created_at - created_by - created_by.name - custom_field - custom_field.date_value - custom_field.date_value.date - custom_field.date_value.date_time - custom_field.display_value - custom_field.enabled - custom_field.enum_options - custom_field.enum_options.color - custom_field.enum_options.enabled - custom_field.enum_options.name - custom_field.enum_value - custom_field.enum_value.color - custom_field.enum_value.enabled - custom_field.enum_value.name - custom_field.id_prefix - custom_field.input_restrictions - custom_field.is_formula_field - custom_field.multi_enum_values - custom_field.multi_enum_values.color - custom_field.multi_enum_values.enabled - custom_field.multi_enum_values.name - custom_field.name - custom_field.number_value - custom_field.representation_type - custom_field.text_value - custom_field.type - dependency - dependency.created_by - dependency.name - dependency.resource_subtype - duplicate_of - duplicate_of.created_by - duplicate_of.name - duplicate_of.resource_subtype - duplicated_from - duplicated_from.created_by - duplicated_from.name - duplicated_from.resource_subtype - follower - follower.name - hearted - hearts - hearts.user - hearts.user.name - html_text - is_editable - is_edited - is_pinned - liked - likes - likes.user - likes.user.name - new_approval_status - new_date_value - new_dates - new_dates.due_at - new_dates.due_on - new_dates.start_on - new_enum_value - new_enum_value.color - new_enum_value.enabled - new_enum_value.name - new_multi_enum_values - new_multi_enum_values.color - new_multi_enum_values.enabled - new_multi_enum_values.name - new_name - new_number_value - new_people_value - new_people_value.name - new_resource_subtype - new_section - new_section.name - new_text_value - num_hearts - num_likes - old_approval_status - old_date_value - old_dates - old_dates.due_at - old_dates.due_on - old_dates.start_on - old_enum_value - old_enum_value.color - old_enum_value.enabled - old_enum_value.name - old_multi_enum_values - old_multi_enum_values.color - old_multi_enum_values.enabled - old_multi_enum_values.name - old_name - old_number_value - old_people_value - old_people_value.name - old_resource_subtype - old_section - old_section.name - old_text_value - previews - previews.fallback - previews.footer - previews.header - previews.header_link - previews.html_text - previews.text - previews.title - previews.title_link - project - project.name - reaction_summary - reaction_summary.count - reaction_summary.emoji_base - reaction_summary.reacted - reaction_summary.variant - resource_subtype - source - sticker_name - story - story.created_at - story.created_by - story.created_by.name - story.resource_subtype - story.text - tag - tag.name - target - target.created_by - target.name - target.resource_subtype - task - task.created_by - task.name - task.resource_subtype - text - type schema: type: array items: type: string enum: - assignee - assignee.name - created_at - created_by - created_by.name - custom_field - custom_field.date_value - custom_field.date_value.date - custom_field.date_value.date_time - custom_field.display_value - custom_field.enabled - custom_field.enum_options - custom_field.enum_options.color - custom_field.enum_options.enabled - custom_field.enum_options.name - custom_field.enum_value - custom_field.enum_value.color - custom_field.enum_value.enabled - custom_field.enum_value.name - custom_field.id_prefix - custom_field.input_restrictions - custom_field.is_formula_field - custom_field.multi_enum_values - custom_field.multi_enum_values.color - custom_field.multi_enum_values.enabled - custom_field.multi_enum_values.name - custom_field.name - custom_field.number_value - custom_field.representation_type - custom_field.text_value - custom_field.type - dependency - dependency.created_by - dependency.name - dependency.resource_subtype - duplicate_of - duplicate_of.created_by - duplicate_of.name - duplicate_of.resource_subtype - duplicated_from - duplicated_from.created_by - duplicated_from.name - duplicated_from.resource_subtype - follower - follower.name - hearted - hearts - hearts.user - hearts.user.name - html_text - is_editable - is_edited - is_pinned - liked - likes - likes.user - likes.user.name - new_approval_status - new_date_value - new_dates - new_dates.due_at - new_dates.due_on - new_dates.start_on - new_enum_value - new_enum_value.color - new_enum_value.enabled - new_enum_value.name - new_multi_enum_values - new_multi_enum_values.color - new_multi_enum_values.enabled - new_multi_enum_values.name - new_name - new_number_value - new_people_value - new_people_value.name - new_resource_subtype - new_section - new_section.name - new_text_value - num_hearts - num_likes - old_approval_status - old_date_value - old_dates - old_dates.due_at - old_dates.due_on - old_dates.start_on - old_enum_value - old_enum_value.color - old_enum_value.enabled - old_enum_value.name - old_multi_enum_values - old_multi_enum_values.color - old_multi_enum_values.enabled - old_multi_enum_values.name - old_name - old_number_value - old_people_value - old_people_value.name - old_resource_subtype - old_section - old_section.name - old_text_value - previews - previews.fallback - previews.footer - previews.header - previews.header_link - previews.html_text - previews.text - previews.title - previews.title_link - project - project.name - reaction_summary - reaction_summary.count - reaction_summary.emoji_base - reaction_summary.reacted - reaction_summary.variant - resource_subtype - source - sticker_name - story - story.created_at - story.created_by - story.created_by.name - story.resource_subtype - story.text - tag - tag.name - target - target.created_by - target.name - target.resource_subtype - task - task.created_by - task.name - task.resource_subtype - text - type style: form explode: false requestBody: description: The comment story to update. required: true content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/StoryRequest' responses: 200: description: Successfully retrieved the specified story. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/StoryResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: - stories:write x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); Story result = client.stories.updateStory(storyGid) .data("field", "value") .data("field", "value") .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let storiesApiInstance = new Asana.StoriesApi(client); let body = {"data": {"": "", "": "",}}; // Object | The comment story to update. let story_gid = "35678"; // String | Globally unique identifier for the story. let opts = { 'opt_fields': "assignee,assignee.name,created_at,created_by,created_by.name,custom_field,custom_field.date_value,custom_field.date_value.date,custom_field.date_value.date_time,custom_field.display_value,custom_field.enabled,custom_field.enum_options,custom_field.enum_options.color,custom_field.enum_options.enabled,custom_field.enum_options.name,custom_field.enum_value,custom_field.enum_value.color,custom_field.enum_value.enabled,custom_field.enum_value.name,custom_field.id_prefix,custom_field.input_restrictions,custom_field.is_formula_field,custom_field.multi_enum_values,custom_field.multi_enum_values.color,custom_field.multi_enum_values.enabled,custom_field.multi_enum_values.name,custom_field.name,custom_field.number_value,custom_field.representation_type,custom_field.text_value,custom_field.type,dependency,dependency.created_by,dependency.name,dependency.resource_subtype,duplicate_of,duplicate_of.created_by,duplicate_of.name,duplicate_of.resource_subtype,duplicated_from,duplicated_from.created_by,duplicated_from.name,duplicated_from.resource_subtype,follower,follower.name,hearted,hearts,hearts.user,hearts.user.name,html_text,is_editable,is_edited,is_pinned,liked,likes,likes.user,likes.user.name,new_approval_status,new_date_value,new_dates,new_dates.due_at,new_dates.due_on,new_dates.start_on,new_enum_value,new_enum_value.color,new_enum_value.enabled,new_enum_value.name,new_multi_enum_values,new_multi_enum_values.color,new_multi_enum_values.enabled,new_multi_enum_values.name,new_name,new_number_value,new_people_value,new_people_value.name,new_resource_subtype,new_section,new_section.name,new_text_value,num_hearts,num_likes,old_approval_status,old_date_value,old_dates,old_dates.due_at,old_dates.due_on,old_dates.start_on,old_enum_value,old_enum_value.color,old_enum_value.enabled,old_enum_value.name,old_multi_enum_values,old_multi_enum_values.color,old_multi_enum_values.enabled,old_multi_enum_values.name,old_name,old_number_value,old_people_value,old_people_value.name,old_resource_subtype,old_section,old_section.name,old_text_value,previews,previews.fallback,previews.footer,previews.header,previews.header_link,previews.html_text,previews.text,previews.title,previews.title_link,project,project.name,reaction_summary,reaction_summary.count,reaction_summary.emoji_base,reaction_summary.reacted,reaction_summary.variant,resource_subtype,source,sticker_name,story,story.created_at,story.created_by,story.created_by.name,story.resource_subtype,story.text,tag,tag.name,target,target.created_by,target.name,target.resource_subtype,task,task.created_by,task.name,task.resource_subtype,text,type" }; storiesApiInstance.updateStory(body, story_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.stories.updateStory(storyGid, {field: "value", field: "value", pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class stories_api_instance = asana.StoriesApi(api_client) body = {"data": {"": "", "": "",}} # dict | The comment story to update. story_gid = "35678" # str | Globally unique identifier for the story. opts = { 'opt_fields': "assignee,assignee.name,created_at,created_by,created_by.name,custom_field,custom_field.date_value,custom_field.date_value.date,custom_field.date_value.date_time,custom_field.display_value,custom_field.enabled,custom_field.enum_options,custom_field.enum_options.color,custom_field.enum_options.enabled,custom_field.enum_options.name,custom_field.enum_value,custom_field.enum_value.color,custom_field.enum_value.enabled,custom_field.enum_value.name,custom_field.id_prefix,custom_field.input_restrictions,custom_field.is_formula_field,custom_field.multi_enum_values,custom_field.multi_enum_values.color,custom_field.multi_enum_values.enabled,custom_field.multi_enum_values.name,custom_field.name,custom_field.number_value,custom_field.representation_type,custom_field.text_value,custom_field.type,dependency,dependency.created_by,dependency.name,dependency.resource_subtype,duplicate_of,duplicate_of.created_by,duplicate_of.name,duplicate_of.resource_subtype,duplicated_from,duplicated_from.created_by,duplicated_from.name,duplicated_from.resource_subtype,follower,follower.name,hearted,hearts,hearts.user,hearts.user.name,html_text,is_editable,is_edited,is_pinned,liked,likes,likes.user,likes.user.name,new_approval_status,new_date_value,new_dates,new_dates.due_at,new_dates.due_on,new_dates.start_on,new_enum_value,new_enum_value.color,new_enum_value.enabled,new_enum_value.name,new_multi_enum_values,new_multi_enum_values.color,new_multi_enum_values.enabled,new_multi_enum_values.name,new_name,new_number_value,new_people_value,new_people_value.name,new_resource_subtype,new_section,new_section.name,new_text_value,num_hearts,num_likes,old_approval_status,old_date_value,old_dates,old_dates.due_at,old_dates.due_on,old_dates.start_on,old_enum_value,old_enum_value.color,old_enum_value.enabled,old_enum_value.name,old_multi_enum_values,old_multi_enum_values.color,old_multi_enum_values.enabled,old_multi_enum_values.name,old_name,old_number_value,old_people_value,old_people_value.name,old_resource_subtype,old_section,old_section.name,old_text_value,previews,previews.fallback,previews.footer,previews.header,previews.header_link,previews.html_text,previews.text,previews.title,previews.title_link,project,project.name,reaction_summary,reaction_summary.count,reaction_summary.emoji_base,reaction_summary.reacted,reaction_summary.variant,resource_subtype,source,sticker_name,story,story.created_at,story.created_by,story.created_by.name,story.resource_subtype,story.text,tag,tag.name,target,target.created_by,target.name,target.resource_subtype,task,task.created_by,task.name,task.resource_subtype,text,type", # list[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. } try: # Update a story api_response = stories_api_instance.update_story(body, story_gid, opts) pprint(api_response) except ApiException as e: print("Exception when calling StoriesApi->update_story: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.stories.update_story(story_gid, {'field': 'value', 'field': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- stories->updateStory($story_gid, array('field' => 'value', 'field' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.stories.update_story(story_gid: 'story_gid', field: "value", field: "value", options: {pretty: true}) delete: summary: Delete a story description: |- Deletes a story. A user can only delete stories they have created. Returns an empty data record. tags: - Stories operationId: deleteStory responses: 200: description: Successfully deleted the specified story. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/EmptyResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: [] x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); JsonElement result = client.stories.deleteStory(storyGid) .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let storiesApiInstance = new Asana.StoriesApi(client); let story_gid = "35678"; // String | Globally unique identifier for the story. storiesApiInstance.deleteStory(story_gid).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.stories.deleteStory(storyGid) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class stories_api_instance = asana.StoriesApi(api_client) story_gid = "35678" # str | Globally unique identifier for the story. try: # Delete a story api_response = stories_api_instance.delete_story(story_gid) pprint(api_response) except ApiException as e: print("Exception when calling StoriesApi->delete_story: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.stories.delete_story(story_gid, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- stories->deleteStory($story_gid, array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.stories.delete_story(story_gid: 'story_gid', options: {pretty: true}) /tasks/{task_gid}/stories: parameters: - $ref: '#/components/parameters/task_path_gid' - $ref: '#/components/parameters/pretty' get: summary: Get stories from a task description: |- Required scope: stories:read Returns the compact records for all stories on the task. tags: - Stories operationId: getStoriesForTask parameters: - $ref: '#/components/parameters/limit' - $ref: '#/components/parameters/offset' - name: opt_fields in: query description: 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. required: false example: - assignee - assignee.name - created_at - created_by - created_by.name - custom_field - custom_field.date_value - custom_field.date_value.date - custom_field.date_value.date_time - custom_field.display_value - custom_field.enabled - custom_field.enum_options - custom_field.enum_options.color - custom_field.enum_options.enabled - custom_field.enum_options.name - custom_field.enum_value - custom_field.enum_value.color - custom_field.enum_value.enabled - custom_field.enum_value.name - custom_field.id_prefix - custom_field.input_restrictions - custom_field.is_formula_field - custom_field.multi_enum_values - custom_field.multi_enum_values.color - custom_field.multi_enum_values.enabled - custom_field.multi_enum_values.name - custom_field.name - custom_field.number_value - custom_field.representation_type - custom_field.text_value - custom_field.type - dependency - dependency.created_by - dependency.name - dependency.resource_subtype - duplicate_of - duplicate_of.created_by - duplicate_of.name - duplicate_of.resource_subtype - duplicated_from - duplicated_from.created_by - duplicated_from.name - duplicated_from.resource_subtype - follower - follower.name - hearted - hearts - hearts.user - hearts.user.name - html_text - is_editable - is_edited - is_pinned - liked - likes - likes.user - likes.user.name - new_approval_status - new_date_value - new_dates - new_dates.due_at - new_dates.due_on - new_dates.start_on - new_enum_value - new_enum_value.color - new_enum_value.enabled - new_enum_value.name - new_multi_enum_values - new_multi_enum_values.color - new_multi_enum_values.enabled - new_multi_enum_values.name - new_name - new_number_value - new_people_value - new_people_value.name - new_resource_subtype - new_section - new_section.name - new_text_value - num_hearts - num_likes - offset - old_approval_status - old_date_value - old_dates - old_dates.due_at - old_dates.due_on - old_dates.start_on - old_enum_value - old_enum_value.color - old_enum_value.enabled - old_enum_value.name - old_multi_enum_values - old_multi_enum_values.color - old_multi_enum_values.enabled - old_multi_enum_values.name - old_name - old_number_value - old_people_value - old_people_value.name - old_resource_subtype - old_section - old_section.name - old_text_value - path - previews - previews.fallback - previews.footer - previews.header - previews.header_link - previews.html_text - previews.text - previews.title - previews.title_link - project - project.name - reaction_summary - reaction_summary.count - reaction_summary.emoji_base - reaction_summary.reacted - reaction_summary.variant - resource_subtype - source - sticker_name - story - story.created_at - story.created_by - story.created_by.name - story.resource_subtype - story.text - tag - tag.name - target - target.created_by - target.name - target.resource_subtype - task - task.created_by - task.name - task.resource_subtype - text - type - uri schema: type: array items: type: string enum: - assignee - assignee.name - created_at - created_by - created_by.name - custom_field - custom_field.date_value - custom_field.date_value.date - custom_field.date_value.date_time - custom_field.display_value - custom_field.enabled - custom_field.enum_options - custom_field.enum_options.color - custom_field.enum_options.enabled - custom_field.enum_options.name - custom_field.enum_value - custom_field.enum_value.color - custom_field.enum_value.enabled - custom_field.enum_value.name - custom_field.id_prefix - custom_field.input_restrictions - custom_field.is_formula_field - custom_field.multi_enum_values - custom_field.multi_enum_values.color - custom_field.multi_enum_values.enabled - custom_field.multi_enum_values.name - custom_field.name - custom_field.number_value - custom_field.representation_type - custom_field.text_value - custom_field.type - dependency - dependency.created_by - dependency.name - dependency.resource_subtype - duplicate_of - duplicate_of.created_by - duplicate_of.name - duplicate_of.resource_subtype - duplicated_from - duplicated_from.created_by - duplicated_from.name - duplicated_from.resource_subtype - follower - follower.name - hearted - hearts - hearts.user - hearts.user.name - html_text - is_editable - is_edited - is_pinned - liked - likes - likes.user - likes.user.name - new_approval_status - new_date_value - new_dates - new_dates.due_at - new_dates.due_on - new_dates.start_on - new_enum_value - new_enum_value.color - new_enum_value.enabled - new_enum_value.name - new_multi_enum_values - new_multi_enum_values.color - new_multi_enum_values.enabled - new_multi_enum_values.name - new_name - new_number_value - new_people_value - new_people_value.name - new_resource_subtype - new_section - new_section.name - new_text_value - num_hearts - num_likes - offset - old_approval_status - old_date_value - old_dates - old_dates.due_at - old_dates.due_on - old_dates.start_on - old_enum_value - old_enum_value.color - old_enum_value.enabled - old_enum_value.name - old_multi_enum_values - old_multi_enum_values.color - old_multi_enum_values.enabled - old_multi_enum_values.name - old_name - old_number_value - old_people_value - old_people_value.name - old_resource_subtype - old_section - old_section.name - old_text_value - path - previews - previews.fallback - previews.footer - previews.header - previews.header_link - previews.html_text - previews.text - previews.title - previews.title_link - project - project.name - reaction_summary - reaction_summary.count - reaction_summary.emoji_base - reaction_summary.reacted - reaction_summary.variant - resource_subtype - source - sticker_name - story - story.created_at - story.created_by - story.created_by.name - story.resource_subtype - story.text - tag - tag.name - target - target.created_by - target.name - target.resource_subtype - task - task.created_by - task.name - task.resource_subtype - text - type - uri style: form explode: false responses: 200: description: Successfully retrieved the specified task's stories. content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/StoryCompact' next_page: $ref: '#/components/schemas/NextPage' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: - stories:read x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); List result = client.stories.getStoriesForTask(taskGid) .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let storiesApiInstance = new Asana.StoriesApi(client); let task_gid = "321654"; // String | The task to operate on. let opts = { 'limit': 50, 'offset': "eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9", 'opt_fields': "assignee,assignee.name,created_at,created_by,created_by.name,custom_field,custom_field.date_value,custom_field.date_value.date,custom_field.date_value.date_time,custom_field.display_value,custom_field.enabled,custom_field.enum_options,custom_field.enum_options.color,custom_field.enum_options.enabled,custom_field.enum_options.name,custom_field.enum_value,custom_field.enum_value.color,custom_field.enum_value.enabled,custom_field.enum_value.name,custom_field.id_prefix,custom_field.input_restrictions,custom_field.is_formula_field,custom_field.multi_enum_values,custom_field.multi_enum_values.color,custom_field.multi_enum_values.enabled,custom_field.multi_enum_values.name,custom_field.name,custom_field.number_value,custom_field.representation_type,custom_field.text_value,custom_field.type,dependency,dependency.created_by,dependency.name,dependency.resource_subtype,duplicate_of,duplicate_of.created_by,duplicate_of.name,duplicate_of.resource_subtype,duplicated_from,duplicated_from.created_by,duplicated_from.name,duplicated_from.resource_subtype,follower,follower.name,hearted,hearts,hearts.user,hearts.user.name,html_text,is_editable,is_edited,is_pinned,liked,likes,likes.user,likes.user.name,new_approval_status,new_date_value,new_dates,new_dates.due_at,new_dates.due_on,new_dates.start_on,new_enum_value,new_enum_value.color,new_enum_value.enabled,new_enum_value.name,new_multi_enum_values,new_multi_enum_values.color,new_multi_enum_values.enabled,new_multi_enum_values.name,new_name,new_number_value,new_people_value,new_people_value.name,new_resource_subtype,new_section,new_section.name,new_text_value,num_hearts,num_likes,offset,old_approval_status,old_date_value,old_dates,old_dates.due_at,old_dates.due_on,old_dates.start_on,old_enum_value,old_enum_value.color,old_enum_value.enabled,old_enum_value.name,old_multi_enum_values,old_multi_enum_values.color,old_multi_enum_values.enabled,old_multi_enum_values.name,old_name,old_number_value,old_people_value,old_people_value.name,old_resource_subtype,old_section,old_section.name,old_text_value,path,previews,previews.fallback,previews.footer,previews.header,previews.header_link,previews.html_text,previews.text,previews.title,previews.title_link,project,project.name,reaction_summary,reaction_summary.count,reaction_summary.emoji_base,reaction_summary.reacted,reaction_summary.variant,resource_subtype,source,sticker_name,story,story.created_at,story.created_by,story.created_by.name,story.resource_subtype,story.text,tag,tag.name,target,target.created_by,target.name,target.resource_subtype,task,task.created_by,task.name,task.resource_subtype,text,type,uri" }; storiesApiInstance.getStoriesForTask(task_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.stories.getStoriesForTask(taskGid, {param: "value", param: "value", opt_pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class stories_api_instance = asana.StoriesApi(api_client) task_gid = "321654" # str | The task to operate on. opts = { 'limit': 50, # int | Results per page. The number of objects to return per page. The value must be between 1 and 100. 'offset': "eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9", # 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': "assignee,assignee.name,created_at,created_by,created_by.name,custom_field,custom_field.date_value,custom_field.date_value.date,custom_field.date_value.date_time,custom_field.display_value,custom_field.enabled,custom_field.enum_options,custom_field.enum_options.color,custom_field.enum_options.enabled,custom_field.enum_options.name,custom_field.enum_value,custom_field.enum_value.color,custom_field.enum_value.enabled,custom_field.enum_value.name,custom_field.id_prefix,custom_field.input_restrictions,custom_field.is_formula_field,custom_field.multi_enum_values,custom_field.multi_enum_values.color,custom_field.multi_enum_values.enabled,custom_field.multi_enum_values.name,custom_field.name,custom_field.number_value,custom_field.representation_type,custom_field.text_value,custom_field.type,dependency,dependency.created_by,dependency.name,dependency.resource_subtype,duplicate_of,duplicate_of.created_by,duplicate_of.name,duplicate_of.resource_subtype,duplicated_from,duplicated_from.created_by,duplicated_from.name,duplicated_from.resource_subtype,follower,follower.name,hearted,hearts,hearts.user,hearts.user.name,html_text,is_editable,is_edited,is_pinned,liked,likes,likes.user,likes.user.name,new_approval_status,new_date_value,new_dates,new_dates.due_at,new_dates.due_on,new_dates.start_on,new_enum_value,new_enum_value.color,new_enum_value.enabled,new_enum_value.name,new_multi_enum_values,new_multi_enum_values.color,new_multi_enum_values.enabled,new_multi_enum_values.name,new_name,new_number_value,new_people_value,new_people_value.name,new_resource_subtype,new_section,new_section.name,new_text_value,num_hearts,num_likes,offset,old_approval_status,old_date_value,old_dates,old_dates.due_at,old_dates.due_on,old_dates.start_on,old_enum_value,old_enum_value.color,old_enum_value.enabled,old_enum_value.name,old_multi_enum_values,old_multi_enum_values.color,old_multi_enum_values.enabled,old_multi_enum_values.name,old_name,old_number_value,old_people_value,old_people_value.name,old_resource_subtype,old_section,old_section.name,old_text_value,path,previews,previews.fallback,previews.footer,previews.header,previews.header_link,previews.html_text,previews.text,previews.title,previews.title_link,project,project.name,reaction_summary,reaction_summary.count,reaction_summary.emoji_base,reaction_summary.reacted,reaction_summary.variant,resource_subtype,source,sticker_name,story,story.created_at,story.created_by,story.created_by.name,story.resource_subtype,story.text,tag,tag.name,target,target.created_by,target.name,target.resource_subtype,task,task.created_by,task.name,task.resource_subtype,text,type,uri", # list[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. } try: # Get stories from a task api_response = stories_api_instance.get_stories_for_task(task_gid, opts) for data in api_response: pprint(data) except ApiException as e: print("Exception when calling StoriesApi->get_stories_for_task: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.stories.get_stories_for_task(task_gid, {'param': 'value', 'param': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- stories->getStoriesForTask($task_gid, array('param' => 'value', 'param' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.stories.get_stories_for_task(task_gid: 'task_gid', param: "value", param: "value", options: {pretty: true}) post: summary: Create a story on a task description: |- Required scope: stories:write Adds a story to a task. This endpoint currently only allows for comment stories to be created. The comment will be authored by the currently authenticated user, and timestamped when the server receives the request. Returns the full record for the new story added to the task. tags: - Stories operationId: createStoryForTask parameters: - name: opt_fields in: query description: 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. required: false example: - assignee - assignee.name - created_at - created_by - created_by.name - custom_field - custom_field.date_value - custom_field.date_value.date - custom_field.date_value.date_time - custom_field.display_value - custom_field.enabled - custom_field.enum_options - custom_field.enum_options.color - custom_field.enum_options.enabled - custom_field.enum_options.name - custom_field.enum_value - custom_field.enum_value.color - custom_field.enum_value.enabled - custom_field.enum_value.name - custom_field.id_prefix - custom_field.input_restrictions - custom_field.is_formula_field - custom_field.multi_enum_values - custom_field.multi_enum_values.color - custom_field.multi_enum_values.enabled - custom_field.multi_enum_values.name - custom_field.name - custom_field.number_value - custom_field.representation_type - custom_field.text_value - custom_field.type - dependency - dependency.created_by - dependency.name - dependency.resource_subtype - duplicate_of - duplicate_of.created_by - duplicate_of.name - duplicate_of.resource_subtype - duplicated_from - duplicated_from.created_by - duplicated_from.name - duplicated_from.resource_subtype - follower - follower.name - hearted - hearts - hearts.user - hearts.user.name - html_text - is_editable - is_edited - is_pinned - liked - likes - likes.user - likes.user.name - new_approval_status - new_date_value - new_dates - new_dates.due_at - new_dates.due_on - new_dates.start_on - new_enum_value - new_enum_value.color - new_enum_value.enabled - new_enum_value.name - new_multi_enum_values - new_multi_enum_values.color - new_multi_enum_values.enabled - new_multi_enum_values.name - new_name - new_number_value - new_people_value - new_people_value.name - new_resource_subtype - new_section - new_section.name - new_text_value - num_hearts - num_likes - old_approval_status - old_date_value - old_dates - old_dates.due_at - old_dates.due_on - old_dates.start_on - old_enum_value - old_enum_value.color - old_enum_value.enabled - old_enum_value.name - old_multi_enum_values - old_multi_enum_values.color - old_multi_enum_values.enabled - old_multi_enum_values.name - old_name - old_number_value - old_people_value - old_people_value.name - old_resource_subtype - old_section - old_section.name - old_text_value - previews - previews.fallback - previews.footer - previews.header - previews.header_link - previews.html_text - previews.text - previews.title - previews.title_link - project - project.name - reaction_summary - reaction_summary.count - reaction_summary.emoji_base - reaction_summary.reacted - reaction_summary.variant - resource_subtype - source - sticker_name - story - story.created_at - story.created_by - story.created_by.name - story.resource_subtype - story.text - tag - tag.name - target - target.created_by - target.name - target.resource_subtype - task - task.created_by - task.name - task.resource_subtype - text - type schema: type: array items: type: string enum: - assignee - assignee.name - created_at - created_by - created_by.name - custom_field - custom_field.date_value - custom_field.date_value.date - custom_field.date_value.date_time - custom_field.display_value - custom_field.enabled - custom_field.enum_options - custom_field.enum_options.color - custom_field.enum_options.enabled - custom_field.enum_options.name - custom_field.enum_value - custom_field.enum_value.color - custom_field.enum_value.enabled - custom_field.enum_value.name - custom_field.id_prefix - custom_field.input_restrictions - custom_field.is_formula_field - custom_field.multi_enum_values - custom_field.multi_enum_values.color - custom_field.multi_enum_values.enabled - custom_field.multi_enum_values.name - custom_field.name - custom_field.number_value - custom_field.representation_type - custom_field.text_value - custom_field.type - dependency - dependency.created_by - dependency.name - dependency.resource_subtype - duplicate_of - duplicate_of.created_by - duplicate_of.name - duplicate_of.resource_subtype - duplicated_from - duplicated_from.created_by - duplicated_from.name - duplicated_from.resource_subtype - follower - follower.name - hearted - hearts - hearts.user - hearts.user.name - html_text - is_editable - is_edited - is_pinned - liked - likes - likes.user - likes.user.name - new_approval_status - new_date_value - new_dates - new_dates.due_at - new_dates.due_on - new_dates.start_on - new_enum_value - new_enum_value.color - new_enum_value.enabled - new_enum_value.name - new_multi_enum_values - new_multi_enum_values.color - new_multi_enum_values.enabled - new_multi_enum_values.name - new_name - new_number_value - new_people_value - new_people_value.name - new_resource_subtype - new_section - new_section.name - new_text_value - num_hearts - num_likes - old_approval_status - old_date_value - old_dates - old_dates.due_at - old_dates.due_on - old_dates.start_on - old_enum_value - old_enum_value.color - old_enum_value.enabled - old_enum_value.name - old_multi_enum_values - old_multi_enum_values.color - old_multi_enum_values.enabled - old_multi_enum_values.name - old_name - old_number_value - old_people_value - old_people_value.name - old_resource_subtype - old_section - old_section.name - old_text_value - previews - previews.fallback - previews.footer - previews.header - previews.header_link - previews.html_text - previews.text - previews.title - previews.title_link - project - project.name - reaction_summary - reaction_summary.count - reaction_summary.emoji_base - reaction_summary.reacted - reaction_summary.variant - resource_subtype - source - sticker_name - story - story.created_at - story.created_by - story.created_by.name - story.resource_subtype - story.text - tag - tag.name - target - target.created_by - target.name - target.resource_subtype - task - task.created_by - task.name - task.resource_subtype - text - type style: form explode: false requestBody: description: The story to create. required: true content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/StoryRequest' responses: 201: description: Successfully created a new story. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/StoryResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: - stories:write x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); Story result = client.stories.createStoryForTask(taskGid) .data("field", "value") .data("field", "value") .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let storiesApiInstance = new Asana.StoriesApi(client); let body = {"data": {"": "", "": "",}}; // Object | The story to create. let task_gid = "321654"; // String | The task to operate on. let opts = { 'opt_fields': "assignee,assignee.name,created_at,created_by,created_by.name,custom_field,custom_field.date_value,custom_field.date_value.date,custom_field.date_value.date_time,custom_field.display_value,custom_field.enabled,custom_field.enum_options,custom_field.enum_options.color,custom_field.enum_options.enabled,custom_field.enum_options.name,custom_field.enum_value,custom_field.enum_value.color,custom_field.enum_value.enabled,custom_field.enum_value.name,custom_field.id_prefix,custom_field.input_restrictions,custom_field.is_formula_field,custom_field.multi_enum_values,custom_field.multi_enum_values.color,custom_field.multi_enum_values.enabled,custom_field.multi_enum_values.name,custom_field.name,custom_field.number_value,custom_field.representation_type,custom_field.text_value,custom_field.type,dependency,dependency.created_by,dependency.name,dependency.resource_subtype,duplicate_of,duplicate_of.created_by,duplicate_of.name,duplicate_of.resource_subtype,duplicated_from,duplicated_from.created_by,duplicated_from.name,duplicated_from.resource_subtype,follower,follower.name,hearted,hearts,hearts.user,hearts.user.name,html_text,is_editable,is_edited,is_pinned,liked,likes,likes.user,likes.user.name,new_approval_status,new_date_value,new_dates,new_dates.due_at,new_dates.due_on,new_dates.start_on,new_enum_value,new_enum_value.color,new_enum_value.enabled,new_enum_value.name,new_multi_enum_values,new_multi_enum_values.color,new_multi_enum_values.enabled,new_multi_enum_values.name,new_name,new_number_value,new_people_value,new_people_value.name,new_resource_subtype,new_section,new_section.name,new_text_value,num_hearts,num_likes,old_approval_status,old_date_value,old_dates,old_dates.due_at,old_dates.due_on,old_dates.start_on,old_enum_value,old_enum_value.color,old_enum_value.enabled,old_enum_value.name,old_multi_enum_values,old_multi_enum_values.color,old_multi_enum_values.enabled,old_multi_enum_values.name,old_name,old_number_value,old_people_value,old_people_value.name,old_resource_subtype,old_section,old_section.name,old_text_value,previews,previews.fallback,previews.footer,previews.header,previews.header_link,previews.html_text,previews.text,previews.title,previews.title_link,project,project.name,reaction_summary,reaction_summary.count,reaction_summary.emoji_base,reaction_summary.reacted,reaction_summary.variant,resource_subtype,source,sticker_name,story,story.created_at,story.created_by,story.created_by.name,story.resource_subtype,story.text,tag,tag.name,target,target.created_by,target.name,target.resource_subtype,task,task.created_by,task.name,task.resource_subtype,text,type" }; storiesApiInstance.createStoryForTask(body, task_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.stories.createStoryForTask(taskGid, {field: "value", field: "value", pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class stories_api_instance = asana.StoriesApi(api_client) body = {"data": {"": "", "": "",}} # dict | The story to create. task_gid = "321654" # str | The task to operate on. opts = { 'opt_fields': "assignee,assignee.name,created_at,created_by,created_by.name,custom_field,custom_field.date_value,custom_field.date_value.date,custom_field.date_value.date_time,custom_field.display_value,custom_field.enabled,custom_field.enum_options,custom_field.enum_options.color,custom_field.enum_options.enabled,custom_field.enum_options.name,custom_field.enum_value,custom_field.enum_value.color,custom_field.enum_value.enabled,custom_field.enum_value.name,custom_field.id_prefix,custom_field.input_restrictions,custom_field.is_formula_field,custom_field.multi_enum_values,custom_field.multi_enum_values.color,custom_field.multi_enum_values.enabled,custom_field.multi_enum_values.name,custom_field.name,custom_field.number_value,custom_field.representation_type,custom_field.text_value,custom_field.type,dependency,dependency.created_by,dependency.name,dependency.resource_subtype,duplicate_of,duplicate_of.created_by,duplicate_of.name,duplicate_of.resource_subtype,duplicated_from,duplicated_from.created_by,duplicated_from.name,duplicated_from.resource_subtype,follower,follower.name,hearted,hearts,hearts.user,hearts.user.name,html_text,is_editable,is_edited,is_pinned,liked,likes,likes.user,likes.user.name,new_approval_status,new_date_value,new_dates,new_dates.due_at,new_dates.due_on,new_dates.start_on,new_enum_value,new_enum_value.color,new_enum_value.enabled,new_enum_value.name,new_multi_enum_values,new_multi_enum_values.color,new_multi_enum_values.enabled,new_multi_enum_values.name,new_name,new_number_value,new_people_value,new_people_value.name,new_resource_subtype,new_section,new_section.name,new_text_value,num_hearts,num_likes,old_approval_status,old_date_value,old_dates,old_dates.due_at,old_dates.due_on,old_dates.start_on,old_enum_value,old_enum_value.color,old_enum_value.enabled,old_enum_value.name,old_multi_enum_values,old_multi_enum_values.color,old_multi_enum_values.enabled,old_multi_enum_values.name,old_name,old_number_value,old_people_value,old_people_value.name,old_resource_subtype,old_section,old_section.name,old_text_value,previews,previews.fallback,previews.footer,previews.header,previews.header_link,previews.html_text,previews.text,previews.title,previews.title_link,project,project.name,reaction_summary,reaction_summary.count,reaction_summary.emoji_base,reaction_summary.reacted,reaction_summary.variant,resource_subtype,source,sticker_name,story,story.created_at,story.created_by,story.created_by.name,story.resource_subtype,story.text,tag,tag.name,target,target.created_by,target.name,target.resource_subtype,task,task.created_by,task.name,task.resource_subtype,text,type", # list[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. } try: # Create a story on a task api_response = stories_api_instance.create_story_for_task(body, task_gid, opts) pprint(api_response) except ApiException as e: print("Exception when calling StoriesApi->create_story_for_task: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.stories.create_story_for_task(task_gid, {'field': 'value', 'field': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- stories->createStoryForTask($task_gid, array('field' => 'value', 'field' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.stories.create_story_for_task(task_gid: 'task_gid', field: "value", field: "value", options: {pretty: true}) /tags: parameters: - $ref: '#/components/parameters/pretty' get: summary: Get multiple tags description: |- Required scope: tags:read Returns the compact tag records for some filtered set of tags. Use one or more of the parameters provided to filter the tags returned. tags: - Tags operationId: getTags parameters: - $ref: '#/components/parameters/limit' - $ref: '#/components/parameters/offset' - name: workspace in: query description: >- The workspace to filter tags on. schema: type: string example: '1331' - name: opt_fields in: query description: 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. required: false example: - color - created_at - followers - followers.name - name - notes - offset - path - permalink_url - uri - workspace - workspace.name schema: type: array items: type: string enum: - color - created_at - followers - followers.name - name - notes - offset - path - permalink_url - uri - workspace - workspace.name style: form explode: false responses: 200: description: Successfully retrieved the specified set of tags. content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/TagCompact' next_page: $ref: '#/components/schemas/NextPage' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: - tags:read x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); List result = client.tags.getTags(workspace) .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let tagsApiInstance = new Asana.TagsApi(client); let opts = { 'limit': 50, 'offset': "eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9", 'workspace': "1331", 'opt_fields': "color,created_at,followers,followers.name,name,notes,offset,path,permalink_url,uri,workspace,workspace.name" }; tagsApiInstance.getTags(opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.tags.getTags({param: "value", param: "value", opt_pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class tags_api_instance = asana.TagsApi(api_client) opts = { 'limit': 50, # int | Results per page. The number of objects to return per page. The value must be between 1 and 100. 'offset': "eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9", # 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': "1331", # str | The workspace to filter tags on. 'opt_fields': "color,created_at,followers,followers.name,name,notes,offset,path,permalink_url,uri,workspace,workspace.name", # list[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. } try: # Get multiple tags api_response = tags_api_instance.get_tags(opts) for data in api_response: pprint(data) except ApiException as e: print("Exception when calling TagsApi->get_tags: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.tags.get_tags({'param': 'value', 'param': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- tags->getTags(array('param' => 'value', 'param' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.tags.get_tags(param: "value", param: "value", options: {pretty: true}) post: summary: Create a tag description: |- Required scope: tags:write Creates a new tag in a workspace or organization. Every tag is required to be created in a specific workspace or organization, and this cannot be changed once set. Note that you can use the workspace parameter regardless of whether or not it is an organization. Returns the full record of the newly created tag. tags: - Tags operationId: createTag parameters: - name: opt_fields in: query description: 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. required: false example: - color - created_at - followers - followers.name - name - notes - permalink_url - workspace - workspace.name schema: type: array items: type: string enum: - color - created_at - followers - followers.name - name - notes - permalink_url - workspace - workspace.name style: form explode: false requestBody: description: The tag to create. required: true content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/TagCreateRequest' responses: 201: description: Successfully created the newly specified tag. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/TagResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: - tags:write x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); Tag result = client.tags.createTag() .data("field", "value") .data("field", "value") .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let tagsApiInstance = new Asana.TagsApi(client); let body = {"data": {"": "", "": "",}}; // Object | The tag to create. let opts = { 'opt_fields': "color,created_at,followers,followers.name,name,notes,permalink_url,workspace,workspace.name" }; tagsApiInstance.createTag(body, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.tags.createTag({field: "value", field: "value", pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class tags_api_instance = asana.TagsApi(api_client) body = {"data": {"": "", "": "",}} # dict | The tag to create. opts = { 'opt_fields': "color,created_at,followers,followers.name,name,notes,permalink_url,workspace,workspace.name", # list[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. } try: # Create a tag api_response = tags_api_instance.create_tag(body, opts) pprint(api_response) except ApiException as e: print("Exception when calling TagsApi->create_tag: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.tags.create_tag({'field': 'value', 'field': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- tags->createTag(array('field' => 'value', 'field' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.tags.create_tag(field: "value", field: "value", options: {pretty: true}) /tags/{tag_gid}: parameters: - $ref: '#/components/parameters/tag_path_gid' - $ref: '#/components/parameters/pretty' get: summary: Get a tag description: |- Required scope: tags:read Returns the complete tag record for a single tag. tags: - Tags operationId: getTag parameters: - name: opt_fields in: query description: 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. required: false example: - color - created_at - followers - followers.name - name - notes - permalink_url - workspace - workspace.name schema: type: array items: type: string enum: - color - created_at - followers - followers.name - name - notes - permalink_url - workspace - workspace.name style: form explode: false responses: 200: description: Successfully retrieved the specified tag. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/TagResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: - tags:read x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); Tag result = client.tags.getTag(tagGid) .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let tagsApiInstance = new Asana.TagsApi(client); let tag_gid = "11235"; // String | Globally unique identifier for the tag. let opts = { 'opt_fields': "color,created_at,followers,followers.name,name,notes,permalink_url,workspace,workspace.name" }; tagsApiInstance.getTag(tag_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.tags.getTag(tagGid, {param: "value", param: "value", opt_pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class tags_api_instance = asana.TagsApi(api_client) tag_gid = "11235" # str | Globally unique identifier for the tag. opts = { 'opt_fields': "color,created_at,followers,followers.name,name,notes,permalink_url,workspace,workspace.name", # list[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. } try: # Get a tag api_response = tags_api_instance.get_tag(tag_gid, opts) pprint(api_response) except ApiException as e: print("Exception when calling TagsApi->get_tag: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.tags.get_tag(tag_gid, {'param': 'value', 'param': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- tags->getTag($tag_gid, array('param' => 'value', 'param' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.tags.get_tag(tag_gid: 'tag_gid', param: "value", param: "value", options: {pretty: true}) put: summary: Update a tag description: |- Required scope: tags:write Updates the properties of a tag. Only the fields provided in the `data` block will be updated; any unspecified fields will remain unchanged. When using this method, it is best to specify only those fields you wish to change, or else you may overwrite changes made by another user since you last retrieved the tag. Returns the complete updated tag record. tags: - Tags operationId: updateTag parameters: - name: opt_fields in: query description: 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. required: false example: - color - created_at - followers - followers.name - name - notes - permalink_url - workspace - workspace.name schema: type: array items: type: string enum: - color - created_at - followers - followers.name - name - notes - permalink_url - workspace - workspace.name style: form explode: false requestBody: description: The tag to update. required: true content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/TagUpdateRequest' responses: 200: description: Successfully updated the specified tag. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/TagResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: - tags:write x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); Tag result = client.tags.updateTag(tagGid) .data("field", "value") .data("field", "value") .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let tagsApiInstance = new Asana.TagsApi(client); let body = {"data": {"": "", "": "",}}; // Object | The tag to update. let tag_gid = "11235"; // String | Globally unique identifier for the tag. let opts = { 'opt_fields': "color,created_at,followers,followers.name,name,notes,permalink_url,workspace,workspace.name" }; tagsApiInstance.updateTag(body, tag_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.tags.updateTag(tagGid, {field: "value", field: "value", pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class tags_api_instance = asana.TagsApi(api_client) body = {"data": {"": "", "": "",}} # dict | The tag to update. tag_gid = "11235" # str | Globally unique identifier for the tag. opts = { 'opt_fields': "color,created_at,followers,followers.name,name,notes,permalink_url,workspace,workspace.name", # list[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. } try: # Update a tag api_response = tags_api_instance.update_tag(body, tag_gid, opts) pprint(api_response) except ApiException as e: print("Exception when calling TagsApi->update_tag: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.tags.update_tag(tag_gid, {'field': 'value', 'field': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- tags->updateTag($tag_gid, array('field' => 'value', 'field' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.tags.update_tag(tag_gid: 'tag_gid', field: "value", field: "value", options: {pretty: true}) delete: summary: Delete a tag description: |- A specific, existing tag can be deleted by making a DELETE request on the URL for that tag. Returns an empty data record. tags: - Tags operationId: deleteTag responses: 200: description: Successfully deleted the specified tag. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/EmptyResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: [] x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); JsonElement result = client.tags.deleteTag(tagGid) .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let tagsApiInstance = new Asana.TagsApi(client); let tag_gid = "11235"; // String | Globally unique identifier for the tag. tagsApiInstance.deleteTag(tag_gid).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.tags.deleteTag(tagGid) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class tags_api_instance = asana.TagsApi(api_client) tag_gid = "11235" # str | Globally unique identifier for the tag. try: # Delete a tag api_response = tags_api_instance.delete_tag(tag_gid) pprint(api_response) except ApiException as e: print("Exception when calling TagsApi->delete_tag: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.tags.delete_tag(tag_gid, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- tags->deleteTag($tag_gid, array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.tags.delete_tag(tag_gid: 'tag_gid', options: {pretty: true}) /tasks/{task_gid}/tags: parameters: - $ref: '#/components/parameters/task_path_gid' - $ref: '#/components/parameters/pretty' - $ref: '#/components/parameters/limit' - $ref: '#/components/parameters/offset' get: summary: Get a task's tags description: |- Required scope: tags:read Get a compact representation of all of the tags the task has. tags: - Tags operationId: getTagsForTask parameters: - name: opt_fields in: query description: 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. required: false example: - color - created_at - followers - followers.name - name - notes - offset - path - permalink_url - uri - workspace - workspace.name schema: type: array items: type: string enum: - color - created_at - followers - followers.name - name - notes - offset - path - permalink_url - uri - workspace - workspace.name style: form explode: false responses: 200: description: >- Successfully retrieved the tags for the given task. content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/TagCompact' next_page: $ref: '#/components/schemas/NextPage' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: - tags:read x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); List result = client.tags.getTagsForTask(taskGid) .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let tagsApiInstance = new Asana.TagsApi(client); let task_gid = "321654"; // String | The task to operate on. let opts = { 'limit': 50, 'offset': "eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9", 'opt_fields': "color,created_at,followers,followers.name,name,notes,offset,path,permalink_url,uri,workspace,workspace.name" }; tagsApiInstance.getTagsForTask(task_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.tags.getTagsForTask(taskGid, {param: "value", param: "value", opt_pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class tags_api_instance = asana.TagsApi(api_client) task_gid = "321654" # str | The task to operate on. opts = { 'limit': 50, # int | Results per page. The number of objects to return per page. The value must be between 1 and 100. 'offset': "eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9", # 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': "color,created_at,followers,followers.name,name,notes,offset,path,permalink_url,uri,workspace,workspace.name", # list[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. } try: # Get a task's tags api_response = tags_api_instance.get_tags_for_task(task_gid, opts) for data in api_response: pprint(data) except ApiException as e: print("Exception when calling TagsApi->get_tags_for_task: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.tags.get_tags_for_task(task_gid, {'param': 'value', 'param': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- tags->getTagsForTask($task_gid, array('param' => 'value', 'param' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.tags.get_tags_for_task(task_gid: 'task_gid', param: "value", param: "value", options: {pretty: true}) /workspaces/{workspace_gid}/tags: parameters: - $ref: '#/components/parameters/workspace_path_gid' - $ref: '#/components/parameters/pretty' get: summary: Get tags in a workspace description: |- Required scope: tags:read Returns the compact tag records for some filtered set of tags. Use one or more of the parameters provided to filter the tags returned. tags: - Tags operationId: getTagsForWorkspace parameters: - $ref: '#/components/parameters/limit' - $ref: '#/components/parameters/offset' - name: opt_fields in: query description: 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. required: false example: - color - created_at - followers - followers.name - name - notes - offset - path - permalink_url - uri - workspace - workspace.name schema: type: array items: type: string enum: - color - created_at - followers - followers.name - name - notes - offset - path - permalink_url - uri - workspace - workspace.name style: form explode: false responses: 200: description: Successfully retrieved the specified set of tags. content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/TagCompact' next_page: $ref: '#/components/schemas/NextPage' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: - tags:read x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); List result = client.tags.getTagsForWorkspace(workspaceGid) .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let tagsApiInstance = new Asana.TagsApi(client); let workspace_gid = "12345"; // String | Globally unique identifier for the workspace or organization. let opts = { 'limit': 50, 'offset': "eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9", 'opt_fields': "color,created_at,followers,followers.name,name,notes,offset,path,permalink_url,uri,workspace,workspace.name" }; tagsApiInstance.getTagsForWorkspace(workspace_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.tags.getTagsForWorkspace(workspaceGid, {param: "value", param: "value", opt_pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class tags_api_instance = asana.TagsApi(api_client) workspace_gid = "12345" # str | Globally unique identifier for the workspace or organization. opts = { 'limit': 50, # int | Results per page. The number of objects to return per page. The value must be between 1 and 100. 'offset': "eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9", # 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': "color,created_at,followers,followers.name,name,notes,offset,path,permalink_url,uri,workspace,workspace.name", # list[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. } try: # Get tags in a workspace api_response = tags_api_instance.get_tags_for_workspace(workspace_gid, opts) for data in api_response: pprint(data) except ApiException as e: print("Exception when calling TagsApi->get_tags_for_workspace: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.tags.get_tags_for_workspace(workspace_gid, {'param': 'value', 'param': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- tags->getTagsForWorkspace($workspace_gid, array('param' => 'value', 'param' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.tags.get_tags_for_workspace(workspace_gid: 'workspace_gid', param: "value", param: "value", options: {pretty: true}) post: summary: Create a tag in a workspace description: |- Required scope: tags:write Creates a new tag in a workspace or organization. Every tag is required to be created in a specific workspace or organization, and this cannot be changed once set. Note that you can use the workspace parameter regardless of whether or not it is an organization. Returns the full record of the newly created tag. tags: - Tags operationId: createTagForWorkspace parameters: - name: opt_fields in: query description: 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. required: false example: - color - created_at - followers - followers.name - name - notes - permalink_url - workspace - workspace.name schema: type: array items: type: string enum: - color - created_at - followers - followers.name - name - notes - permalink_url - workspace - workspace.name style: form explode: false requestBody: description: The tag to create. required: true content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/TagCreateTagForWorkspaceRequest' responses: 201: description: Successfully created the newly specified tag. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/TagResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: - tags:write x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); Tag result = client.tags.createTagForWorkspace(workspaceGid) .data("field", "value") .data("field", "value") .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let tagsApiInstance = new Asana.TagsApi(client); let body = {"data": {"": "", "": "",}}; // Object | The tag to create. let workspace_gid = "12345"; // String | Globally unique identifier for the workspace or organization. let opts = { 'opt_fields': "color,created_at,followers,followers.name,name,notes,permalink_url,workspace,workspace.name" }; tagsApiInstance.createTagForWorkspace(body, workspace_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.tags.createTagForWorkspace(workspaceGid, {field: "value", field: "value", pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class tags_api_instance = asana.TagsApi(api_client) body = {"data": {"": "", "": "",}} # dict | The tag to create. workspace_gid = "12345" # str | Globally unique identifier for the workspace or organization. opts = { 'opt_fields': "color,created_at,followers,followers.name,name,notes,permalink_url,workspace,workspace.name", # list[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. } try: # Create a tag in a workspace api_response = tags_api_instance.create_tag_for_workspace(body, workspace_gid, opts) pprint(api_response) except ApiException as e: print("Exception when calling TagsApi->create_tag_for_workspace: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.tags.create_tag_for_workspace(workspace_gid, {'field': 'value', 'field': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- tags->createTagForWorkspace($workspace_gid, array('field' => 'value', 'field' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.tags.create_tag_for_workspace(workspace_gid: 'workspace_gid', field: "value", field: "value", options: {pretty: true}) /task_templates: parameters: - $ref: '#/components/parameters/pretty' get: summary: Get multiple task templates description: |- Required scope: task_templates:read Returns the compact task template records for some filtered set of task templates. You must specify a `project` tags: - Task templates operationId: getTaskTemplates parameters: - $ref: '#/components/parameters/limit' - $ref: '#/components/parameters/offset' - name: project in: query description: >- The project to filter task templates on. schema: type: string example: '321654' x-env-variable: project - name: opt_fields in: query description: 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. required: false example: - created_at - created_by - name - project - template schema: type: array items: type: string enum: - created_at - created_by - name - project - template style: form explode: false responses: 200: description: Successfully retrieved requested task templates content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/TaskTemplateCompact' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: - task_templates:read x-readme: code-samples: - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let taskTemplatesApiInstance = new Asana.TaskTemplatesApi(client); let opts = { 'limit': 50, 'offset': "eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9", 'project': "321654", 'opt_fields': "created_at,created_by,name,project,template" }; taskTemplatesApiInstance.getTaskTemplates(opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.tasktemplates.getTaskTemplates({param: "value", param: "value", opt_pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class task_templates_api_instance = asana.TaskTemplatesApi(api_client) opts = { 'limit': 50, # int | Results per page. The number of objects to return per page. The value must be between 1 and 100. 'offset': "eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9", # 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': "321654", # str | The project to filter task templates on. 'opt_fields': "created_at,created_by,name,project,template", # list[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. } try: # Get multiple task templates api_response = task_templates_api_instance.get_task_templates(opts) for data in api_response: pprint(data) except ApiException as e: print("Exception when calling TaskTemplatesApi->get_task_templates: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.task_templates.get_task_templates({'param': 'value', 'param': 'value'}, opt_pretty=True) name: python-sdk-v3 /task_templates/{task_template_gid}: parameters: - $ref: '#/components/parameters/task_template_path_gid' - $ref: '#/components/parameters/pretty' get: summary: Get a task template description: |- Required scope: task_templates:read Returns the complete task template record for a single task template. tags: - Task templates operationId: getTaskTemplate parameters: - name: opt_fields in: query description: 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. required: false example: - created_at - created_by - name - project - template schema: type: array items: type: string enum: - created_at - created_by - name - project - template style: form explode: false responses: 200: description: Successfully retrieved requested task template content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/TaskTemplateResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: - task_templates:read x-readme: code-samples: - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let taskTemplatesApiInstance = new Asana.TaskTemplatesApi(client); let task_template_gid = "1331"; // String | Globally unique identifier for the task template. let opts = { 'opt_fields': "created_at,created_by,name,project,template" }; taskTemplatesApiInstance.getTaskTemplate(task_template_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.tasktemplates.getTaskTemplate(taskTemplateGid, {param: "value", param: "value", opt_pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class task_templates_api_instance = asana.TaskTemplatesApi(api_client) task_template_gid = "1331" # str | Globally unique identifier for the task template. opts = { 'opt_fields': "created_at,created_by,name,project,template", # list[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. } try: # Get a task template api_response = task_templates_api_instance.get_task_template(task_template_gid, opts) pprint(api_response) except ApiException as e: print("Exception when calling TaskTemplatesApi->get_task_template: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.task_templates.get_task_template(task_template_gid, {'param': 'value', 'param': 'value'}, opt_pretty=True) name: python-sdk-v3 delete: summary: Delete a task template description: >- A specific, existing task template can be deleted by making a DELETE request on the URL for that task template. Returns an empty data record. tags: - Task templates operationId: deleteTaskTemplate responses: 200: description: Successfully deleted the specified task template. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/EmptyResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 402: $ref: '#/components/responses/PaymentRequired' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: [] x-readme: code-samples: - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let taskTemplatesApiInstance = new Asana.TaskTemplatesApi(client); let task_template_gid = "1331"; // String | Globally unique identifier for the task template. taskTemplatesApiInstance.deleteTaskTemplate(task_template_gid).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.tasktemplates.deleteTaskTemplate(taskTemplateGid) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class task_templates_api_instance = asana.TaskTemplatesApi(api_client) task_template_gid = "1331" # str | Globally unique identifier for the task template. try: # Delete a task template api_response = task_templates_api_instance.delete_task_template(task_template_gid) pprint(api_response) except ApiException as e: print("Exception when calling TaskTemplatesApi->delete_task_template: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.task_templates.delete_task_template(task_template_gid, opt_pretty=True) name: python-sdk-v3 /task_templates/{task_template_gid}/instantiateTask: parameters: - $ref: '#/components/parameters/task_template_path_gid' - $ref: '#/components/parameters/pretty' post: summary: Instantiate a task from a task template description: >- Creates and returns a job that will asynchronously handle the task instantiation. tags: - Task templates operationId: instantiateTask parameters: - name: opt_fields in: query description: 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. required: false example: - new_graph_export - new_graph_export.completed_at - new_graph_export.created_at - new_graph_export.download_url - new_project - new_project.name - new_project_template - new_project_template.name - new_resource_export - new_resource_export.completed_at - new_resource_export.created_at - new_resource_export.download_url - new_task - new_task.created_by - new_task.name - new_task.resource_subtype - resource_subtype - status schema: type: array items: type: string enum: - new_graph_export - new_graph_export.completed_at - new_graph_export.created_at - new_graph_export.download_url - new_project - new_project.name - new_project_template - new_project_template.name - new_resource_export - new_resource_export.completed_at - new_resource_export.created_at - new_resource_export.download_url - new_task - new_task.created_by - new_task.name - new_task.resource_subtype - resource_subtype - status style: form explode: false requestBody: description: >- Describes the inputs used for instantiating a task - the task's name. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/TaskTemplateInstantiateTaskRequest' responses: 201: description: >- Successfully created the job to handle task instantiation. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/JobResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: [] x-readme: code-samples: - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let taskTemplatesApiInstance = new Asana.TaskTemplatesApi(client); let task_template_gid = "1331"; // String | Globally unique identifier for the task template. let opts = { 'body': {"data": {"": "", "": "",}}, 'opt_fields': "new_graph_export,new_graph_export.completed_at,new_graph_export.created_at,new_graph_export.download_url,new_project,new_project.name,new_project_template,new_project_template.name,new_resource_export,new_resource_export.completed_at,new_resource_export.created_at,new_resource_export.download_url,new_task,new_task.created_by,new_task.name,new_task.resource_subtype,resource_subtype,status" }; taskTemplatesApiInstance.instantiateTask(task_template_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.tasktemplates.instantiateTask(taskTemplateGid, {field: "value", field: "value", pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class task_templates_api_instance = asana.TaskTemplatesApi(api_client) task_template_gid = "1331" # str | Globally unique identifier for the task template. opts = { 'body': {"data": {"": "", "": "",}}, # dict | Describes the inputs used for instantiating a task - the task's name. 'opt_fields': "new_graph_export,new_graph_export.completed_at,new_graph_export.created_at,new_graph_export.download_url,new_project,new_project.name,new_project_template,new_project_template.name,new_resource_export,new_resource_export.completed_at,new_resource_export.created_at,new_resource_export.download_url,new_task,new_task.created_by,new_task.name,new_task.resource_subtype,resource_subtype,status", # list[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. } try: # Instantiate a task from a task template api_response = task_templates_api_instance.instantiate_task(task_template_gid, opts) pprint(api_response) except ApiException as e: print("Exception when calling TaskTemplatesApi->instantiate_task: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.task_templates.instantiate_task(task_template_gid, {'field': 'value', 'field': 'value'}, opt_pretty=True) name: python-sdk-v3 /tasks: parameters: - $ref: '#/components/parameters/pretty' get: summary: Get multiple tasks description: |- Required scope: tasks:read Returns the compact task records for some filtered set of tasks. Use one or more of the parameters provided to filter the tasks returned. You must specify a `project` or `tag` if you do not specify `assignee` and `workspace`. For more complex task retrieval, use [workspaces/{workspace_gid}/tasks/search](/reference/searchtasksforworkspace). tags: - Tasks operationId: getTasks parameters: - $ref: '#/components/parameters/limit' - $ref: '#/components/parameters/offset' - name: assignee in: query description: >- 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.* schema: type: string x-env-variable: assignee example: '14641' - name: project in: query description: >- The project to filter tasks on. schema: type: string example: '321654' x-env-variable: project - name: section in: query description: >- The section to filter tasks on. schema: type: string example: '321654' x-env-variable: section - name: workspace in: query description: >- The workspace to filter tasks on. *Note: If you specify `workspace`, you must also specify the `assignee` to filter on.* schema: type: string example: '321654' x-env-variable: workspace - name: completed_since in: query description: >- Only return tasks that are either incomplete or that have been completed since this time. schema: type: string format: date-time example: '2012-02-22T02:06:58.158Z' - name: modified_since in: query description: |- 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.* schema: type: string format: date-time example: '2012-02-22T02:06:58.158Z' - name: opt_fields in: query description: 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. required: false example: - actual_time_minutes - approval_status - assigned_by - assigned_by.name - assignee - assignee.name - assignee_section - assignee_section.name - assignee_status - completed - completed_at - completed_by - completed_by.name - created_at - created_by - custom_fields - custom_fields.asana_created_field - custom_fields.created_by - custom_fields.created_by.name - custom_fields.currency_code - custom_fields.custom_label - custom_fields.custom_label_position - custom_fields.date_value - custom_fields.date_value.date - custom_fields.date_value.date_time - custom_fields.default_access_level - custom_fields.description - custom_fields.display_value - custom_fields.enabled - custom_fields.enum_options - custom_fields.enum_options.color - custom_fields.enum_options.enabled - custom_fields.enum_options.name - custom_fields.enum_value - custom_fields.enum_value.color - custom_fields.enum_value.enabled - custom_fields.enum_value.name - custom_fields.format - custom_fields.has_notifications_enabled - custom_fields.id_prefix - custom_fields.input_restrictions - custom_fields.is_formula_field - custom_fields.is_global_to_workspace - custom_fields.is_value_read_only - custom_fields.multi_enum_values - custom_fields.multi_enum_values.color - custom_fields.multi_enum_values.enabled - custom_fields.multi_enum_values.name - custom_fields.name - custom_fields.number_value - custom_fields.people_value - custom_fields.people_value.name - custom_fields.precision - custom_fields.privacy_setting - custom_fields.reference_value - custom_fields.reference_value.name - custom_fields.representation_type - custom_fields.resource_subtype - custom_fields.text_value - custom_fields.type - custom_type - custom_type.name - custom_type_status_option - custom_type_status_option.name - dependencies - dependents - due_at - due_on - external - external.data - followers - followers.name - hearted - hearts - hearts.user - hearts.user.name - html_notes - is_rendered_as_separator - liked - likes - likes.user - likes.user.name - memberships - memberships.project - memberships.project.name - memberships.section - memberships.section.name - modified_at - name - notes - num_hearts - num_likes - num_subtasks - offset - parent - parent.created_by - parent.name - parent.resource_subtype - path - permalink_url - projects - projects.name - resource_subtype - start_at - start_on - tags - tags.name - uri - workspace - workspace.name schema: type: array items: type: string enum: - actual_time_minutes - approval_status - assigned_by - assigned_by.name - assignee - assignee.name - assignee_section - assignee_section.name - assignee_status - completed - completed_at - completed_by - completed_by.name - created_at - created_by - custom_fields - custom_fields.asana_created_field - custom_fields.created_by - custom_fields.created_by.name - custom_fields.currency_code - custom_fields.custom_label - custom_fields.custom_label_position - custom_fields.date_value - custom_fields.date_value.date - custom_fields.date_value.date_time - custom_fields.default_access_level - custom_fields.description - custom_fields.display_value - custom_fields.enabled - custom_fields.enum_options - custom_fields.enum_options.color - custom_fields.enum_options.enabled - custom_fields.enum_options.name - custom_fields.enum_value - custom_fields.enum_value.color - custom_fields.enum_value.enabled - custom_fields.enum_value.name - custom_fields.format - custom_fields.has_notifications_enabled - custom_fields.id_prefix - custom_fields.input_restrictions - custom_fields.is_formula_field - custom_fields.is_global_to_workspace - custom_fields.is_value_read_only - custom_fields.multi_enum_values - custom_fields.multi_enum_values.color - custom_fields.multi_enum_values.enabled - custom_fields.multi_enum_values.name - custom_fields.name - custom_fields.number_value - custom_fields.people_value - custom_fields.people_value.name - custom_fields.precision - custom_fields.privacy_setting - custom_fields.reference_value - custom_fields.reference_value.name - custom_fields.representation_type - custom_fields.resource_subtype - custom_fields.text_value - custom_fields.type - custom_type - custom_type.name - custom_type_status_option - custom_type_status_option.name - dependencies - dependents - due_at - due_on - external - external.data - followers - followers.name - hearted - hearts - hearts.user - hearts.user.name - html_notes - is_rendered_as_separator - liked - likes - likes.user - likes.user.name - memberships - memberships.project - memberships.project.name - memberships.section - memberships.section.name - modified_at - name - notes - num_hearts - num_likes - num_subtasks - offset - parent - parent.created_by - parent.name - parent.resource_subtype - path - permalink_url - projects - projects.name - resource_subtype - start_at - start_on - tags - tags.name - uri - workspace - workspace.name style: form explode: false responses: 200: description: Successfully retrieved requested tasks. content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/TaskCompact' next_page: $ref: '#/components/schemas/NextPage' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: - tasks:read x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); List result = client.tasks.getTasks(modifiedSince, completedSince, workspace, section, project, assignee) .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let tasksApiInstance = new Asana.TasksApi(client); let opts = { 'limit': 50, 'offset': "eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9", 'assignee': "14641", 'project': "321654", 'section': "321654", 'workspace': "321654", 'completed_since': "2012-02-22T02:06:58.158Z", 'modified_since': "2012-02-22T02:06:58.158Z", 'opt_fields': "actual_time_minutes,approval_status,assigned_by,assigned_by.name,assignee,assignee.name,assignee_section,assignee_section.name,assignee_status,completed,completed_at,completed_by,completed_by.name,created_at,created_by,custom_fields,custom_fields.asana_created_field,custom_fields.created_by,custom_fields.created_by.name,custom_fields.currency_code,custom_fields.custom_label,custom_fields.custom_label_position,custom_fields.date_value,custom_fields.date_value.date,custom_fields.date_value.date_time,custom_fields.default_access_level,custom_fields.description,custom_fields.display_value,custom_fields.enabled,custom_fields.enum_options,custom_fields.enum_options.color,custom_fields.enum_options.enabled,custom_fields.enum_options.name,custom_fields.enum_value,custom_fields.enum_value.color,custom_fields.enum_value.enabled,custom_fields.enum_value.name,custom_fields.format,custom_fields.has_notifications_enabled,custom_fields.id_prefix,custom_fields.input_restrictions,custom_fields.is_formula_field,custom_fields.is_global_to_workspace,custom_fields.is_value_read_only,custom_fields.multi_enum_values,custom_fields.multi_enum_values.color,custom_fields.multi_enum_values.enabled,custom_fields.multi_enum_values.name,custom_fields.name,custom_fields.number_value,custom_fields.people_value,custom_fields.people_value.name,custom_fields.precision,custom_fields.privacy_setting,custom_fields.reference_value,custom_fields.reference_value.name,custom_fields.representation_type,custom_fields.resource_subtype,custom_fields.text_value,custom_fields.type,custom_type,custom_type.name,custom_type_status_option,custom_type_status_option.name,dependencies,dependents,due_at,due_on,external,external.data,followers,followers.name,hearted,hearts,hearts.user,hearts.user.name,html_notes,is_rendered_as_separator,liked,likes,likes.user,likes.user.name,memberships,memberships.project,memberships.project.name,memberships.section,memberships.section.name,modified_at,name,notes,num_hearts,num_likes,num_subtasks,offset,parent,parent.created_by,parent.name,parent.resource_subtype,path,permalink_url,projects,projects.name,resource_subtype,start_at,start_on,tags,tags.name,uri,workspace,workspace.name" }; tasksApiInstance.getTasks(opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.tasks.getTasks({param: "value", param: "value", opt_pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class tasks_api_instance = asana.TasksApi(api_client) opts = { 'limit': 50, # int | Results per page. The number of objects to return per page. The value must be between 1 and 100. 'offset': "eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9", # 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': "14641", # 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': "321654", # str | The project to filter tasks on. 'section': "321654", # str | The section to filter tasks on. 'workspace': "321654", # str | The workspace to filter tasks on. *Note: If you specify `workspace`, you must also specify the `assignee` to filter on.* 'completed_since': '2012-02-22T02:06:58.158Z', # datetime | Only return tasks that are either incomplete or that have been completed since this time. 'modified_since': '2012-02-22T02:06:58.158Z', # datetime | 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': "actual_time_minutes,approval_status,assignee,assignee.name,assignee_section,assignee_section.name,assignee_status,completed,completed_at,completed_by,completed_by.name,created_at,created_by,custom_fields,custom_fields.asana_created_field,custom_fields.created_by,custom_fields.created_by.name,custom_fields.currency_code,custom_fields.custom_label,custom_fields.custom_label_position,custom_fields.date_value,custom_fields.date_value.date,custom_fields.date_value.date_time,custom_fields.default_access_level,custom_fields.description,custom_fields.display_value,custom_fields.enabled,custom_fields.enum_options,custom_fields.enum_options.color,custom_fields.enum_options.enabled,custom_fields.enum_options.name,custom_fields.enum_value,custom_fields.enum_value.color,custom_fields.enum_value.enabled,custom_fields.enum_value.name,custom_fields.format,custom_fields.has_notifications_enabled,custom_fields.id_prefix,custom_fields.input_restrictions,custom_fields.is_formula_field,custom_fields.is_global_to_workspace,custom_fields.is_value_read_only,custom_fields.multi_enum_values,custom_fields.multi_enum_values.color,custom_fields.multi_enum_values.enabled,custom_fields.multi_enum_values.name,custom_fields.name,custom_fields.number_value,custom_fields.people_value,custom_fields.people_value.name,custom_fields.precision,custom_fields.privacy_setting,custom_fields.reference_value,custom_fields.reference_value.name,custom_fields.representation_type,custom_fields.resource_subtype,custom_fields.text_value,custom_fields.type,custom_type,custom_type.name,custom_type_status_option,custom_type_status_option.name,dependencies,dependents,due_at,due_on,external,external.data,followers,followers.name,hearted,hearts,hearts.user,hearts.user.name,html_notes,is_rendered_as_separator,liked,likes,likes.user,likes.user.name,memberships,memberships.project,memberships.project.name,memberships.section,memberships.section.name,modified_at,name,notes,num_hearts,num_likes,num_subtasks,offset,parent,parent.created_by,parent.name,parent.resource_subtype,path,permalink_url,projects,projects.name,resource_subtype,start_at,start_on,tags,tags.name,uri,workspace,workspace.name", # list[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. } try: # Get multiple tasks api_response = tasks_api_instance.get_tasks(opts) for data in api_response: pprint(data) except ApiException as e: print("Exception when calling TasksApi->get_tasks: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.tasks.get_tasks({'param': 'value', 'param': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- tasks->getTasks(array('param' => 'value', 'param' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.tasks.get_tasks(param: "value", param: "value", options: {pretty: true}) post: summary: Create a task description: |- Required scope: tasks:write Creating a new task is as easy as POSTing to the `/tasks` endpoint with a data block containing the fields you’d like to set on the task. Any unspecified fields will take on default values. Every task is required to be created in a specific workspace, and this workspace cannot be changed once set. The workspace need not be set explicitly if you specify `projects` or a `parent` task instead. tags: - Tasks operationId: createTask parameters: - name: opt_fields in: query description: 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. required: false example: - actual_time_minutes - approval_status - assigned_by - assigned_by.name - assignee - assignee.name - assignee_section - assignee_section.name - assignee_status - completed - completed_at - completed_by - completed_by.name - created_at - created_by - custom_fields - custom_fields.asana_created_field - custom_fields.created_by - custom_fields.created_by.name - custom_fields.currency_code - custom_fields.custom_label - custom_fields.custom_label_position - custom_fields.date_value - custom_fields.date_value.date - custom_fields.date_value.date_time - custom_fields.default_access_level - custom_fields.description - custom_fields.display_value - custom_fields.enabled - custom_fields.enum_options - custom_fields.enum_options.color - custom_fields.enum_options.enabled - custom_fields.enum_options.name - custom_fields.enum_value - custom_fields.enum_value.color - custom_fields.enum_value.enabled - custom_fields.enum_value.name - custom_fields.format - custom_fields.has_notifications_enabled - custom_fields.id_prefix - custom_fields.input_restrictions - custom_fields.is_formula_field - custom_fields.is_global_to_workspace - custom_fields.is_value_read_only - custom_fields.multi_enum_values - custom_fields.multi_enum_values.color - custom_fields.multi_enum_values.enabled - custom_fields.multi_enum_values.name - custom_fields.name - custom_fields.number_value - custom_fields.people_value - custom_fields.people_value.name - custom_fields.precision - custom_fields.privacy_setting - custom_fields.reference_value - custom_fields.reference_value.name - custom_fields.representation_type - custom_fields.resource_subtype - custom_fields.text_value - custom_fields.type - custom_type - custom_type.name - custom_type_status_option - custom_type_status_option.name - dependencies - dependents - due_at - due_on - external - external.data - followers - followers.name - hearted - hearts - hearts.user - hearts.user.name - html_notes - is_rendered_as_separator - liked - likes - likes.user - likes.user.name - memberships - memberships.project - memberships.project.name - memberships.section - memberships.section.name - modified_at - name - notes - num_hearts - num_likes - num_subtasks - parent - parent.created_by - parent.name - parent.resource_subtype - permalink_url - projects - projects.name - resource_subtype - start_at - start_on - tags - tags.name - workspace - workspace.name schema: type: array items: type: string enum: - actual_time_minutes - approval_status - assigned_by - assigned_by.name - assignee - assignee.name - assignee_section - assignee_section.name - assignee_status - completed - completed_at - completed_by - completed_by.name - created_at - created_by - custom_fields - custom_fields.asana_created_field - custom_fields.created_by - custom_fields.created_by.name - custom_fields.currency_code - custom_fields.custom_label - custom_fields.custom_label_position - custom_fields.date_value - custom_fields.date_value.date - custom_fields.date_value.date_time - custom_fields.default_access_level - custom_fields.description - custom_fields.display_value - custom_fields.enabled - custom_fields.enum_options - custom_fields.enum_options.color - custom_fields.enum_options.enabled - custom_fields.enum_options.name - custom_fields.enum_value - custom_fields.enum_value.color - custom_fields.enum_value.enabled - custom_fields.enum_value.name - custom_fields.format - custom_fields.has_notifications_enabled - custom_fields.id_prefix - custom_fields.input_restrictions - custom_fields.is_formula_field - custom_fields.is_global_to_workspace - custom_fields.is_value_read_only - custom_fields.multi_enum_values - custom_fields.multi_enum_values.color - custom_fields.multi_enum_values.enabled - custom_fields.multi_enum_values.name - custom_fields.name - custom_fields.number_value - custom_fields.people_value - custom_fields.people_value.name - custom_fields.precision - custom_fields.privacy_setting - custom_fields.reference_value - custom_fields.reference_value.name - custom_fields.representation_type - custom_fields.resource_subtype - custom_fields.text_value - custom_fields.type - custom_type - custom_type.name - custom_type_status_option - custom_type_status_option.name - dependencies - dependents - due_at - due_on - external - external.data - followers - followers.name - hearted - hearts - hearts.user - hearts.user.name - html_notes - is_rendered_as_separator - liked - likes - likes.user - likes.user.name - memberships - memberships.project - memberships.project.name - memberships.section - memberships.section.name - modified_at - name - notes - num_hearts - num_likes - num_subtasks - parent - parent.created_by - parent.name - parent.resource_subtype - permalink_url - projects - projects.name - resource_subtype - start_at - start_on - tags - tags.name - workspace - workspace.name style: form explode: false requestBody: description: The task to create. required: true content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/TaskRequest' responses: 201: description: Successfully created a new task. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/TaskResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: - tasks:write x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); Task result = client.tasks.createTask() .data("field", "value") .data("field", "value") .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let tasksApiInstance = new Asana.TasksApi(client); let body = {"data": {"": "", "": "",}}; // Object | The task to create. let opts = { 'opt_fields': "actual_time_minutes,approval_status,assigned_by,assigned_by.name,assignee,assignee.name,assignee_section,assignee_section.name,assignee_status,completed,completed_at,completed_by,completed_by.name,created_at,created_by,custom_fields,custom_fields.asana_created_field,custom_fields.created_by,custom_fields.created_by.name,custom_fields.currency_code,custom_fields.custom_label,custom_fields.custom_label_position,custom_fields.date_value,custom_fields.date_value.date,custom_fields.date_value.date_time,custom_fields.default_access_level,custom_fields.description,custom_fields.display_value,custom_fields.enabled,custom_fields.enum_options,custom_fields.enum_options.color,custom_fields.enum_options.enabled,custom_fields.enum_options.name,custom_fields.enum_value,custom_fields.enum_value.color,custom_fields.enum_value.enabled,custom_fields.enum_value.name,custom_fields.format,custom_fields.has_notifications_enabled,custom_fields.id_prefix,custom_fields.input_restrictions,custom_fields.is_formula_field,custom_fields.is_global_to_workspace,custom_fields.is_value_read_only,custom_fields.multi_enum_values,custom_fields.multi_enum_values.color,custom_fields.multi_enum_values.enabled,custom_fields.multi_enum_values.name,custom_fields.name,custom_fields.number_value,custom_fields.people_value,custom_fields.people_value.name,custom_fields.precision,custom_fields.privacy_setting,custom_fields.reference_value,custom_fields.reference_value.name,custom_fields.representation_type,custom_fields.resource_subtype,custom_fields.text_value,custom_fields.type,custom_type,custom_type.name,custom_type_status_option,custom_type_status_option.name,dependencies,dependents,due_at,due_on,external,external.data,followers,followers.name,hearted,hearts,hearts.user,hearts.user.name,html_notes,is_rendered_as_separator,liked,likes,likes.user,likes.user.name,memberships,memberships.project,memberships.project.name,memberships.section,memberships.section.name,modified_at,name,notes,num_hearts,num_likes,num_subtasks,parent,parent.created_by,parent.name,parent.resource_subtype,permalink_url,projects,projects.name,resource_subtype,start_at,start_on,tags,tags.name,workspace,workspace.name" }; tasksApiInstance.createTask(body, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.tasks.createTask({field: "value", field: "value", pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class tasks_api_instance = asana.TasksApi(api_client) body = {"data": {"": "", "": "",}} # dict | The task to create. opts = { 'opt_fields': "actual_time_minutes,approval_status,assignee,assignee.name,assignee_section,assignee_section.name,assignee_status,completed,completed_at,completed_by,completed_by.name,created_at,created_by,custom_fields,custom_fields.asana_created_field,custom_fields.created_by,custom_fields.created_by.name,custom_fields.currency_code,custom_fields.custom_label,custom_fields.custom_label_position,custom_fields.date_value,custom_fields.date_value.date,custom_fields.date_value.date_time,custom_fields.default_access_level,custom_fields.description,custom_fields.display_value,custom_fields.enabled,custom_fields.enum_options,custom_fields.enum_options.color,custom_fields.enum_options.enabled,custom_fields.enum_options.name,custom_fields.enum_value,custom_fields.enum_value.color,custom_fields.enum_value.enabled,custom_fields.enum_value.name,custom_fields.format,custom_fields.has_notifications_enabled,custom_fields.id_prefix,custom_fields.input_restrictions,custom_fields.is_formula_field,custom_fields.is_global_to_workspace,custom_fields.is_value_read_only,custom_fields.multi_enum_values,custom_fields.multi_enum_values.color,custom_fields.multi_enum_values.enabled,custom_fields.multi_enum_values.name,custom_fields.name,custom_fields.number_value,custom_fields.people_value,custom_fields.people_value.name,custom_fields.precision,custom_fields.privacy_setting,custom_fields.reference_value,custom_fields.reference_value.name,custom_fields.representation_type,custom_fields.resource_subtype,custom_fields.text_value,custom_fields.type,custom_type,custom_type.name,custom_type_status_option,custom_type_status_option.name,dependencies,dependents,due_at,due_on,external,external.data,followers,followers.name,hearted,hearts,hearts.user,hearts.user.name,html_notes,is_rendered_as_separator,liked,likes,likes.user,likes.user.name,memberships,memberships.project,memberships.project.name,memberships.section,memberships.section.name,modified_at,name,notes,num_hearts,num_likes,num_subtasks,parent,parent.created_by,parent.name,parent.resource_subtype,permalink_url,projects,projects.name,resource_subtype,start_at,start_on,tags,tags.name,workspace,workspace.name", # list[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. } try: # Create a task api_response = tasks_api_instance.create_task(body, opts) pprint(api_response) except ApiException as e: print("Exception when calling TasksApi->create_task: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.tasks.create_task({'field': 'value', 'field': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- tasks->createTask(array('field' => 'value', 'field' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.tasks.create_task(field: "value", field: "value", options: {pretty: true}) /tasks/{task_gid}: parameters: - $ref: '#/components/parameters/task_path_gid' - $ref: '#/components/parameters/pretty' get: summary: Get a task description: |- Required scope: tasks:read
Field Required Scope
memberships projects:read, project_sections:read
actual_time_minutes time_tracking_entries:read
Returns the complete task record for a single task. tags: - Tasks operationId: getTask parameters: - name: opt_fields in: query description: 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. required: false example: - actual_time_minutes - approval_status - assigned_by - assigned_by.name - assignee - assignee.name - assignee_section - assignee_section.name - assignee_status - completed - completed_at - completed_by - completed_by.name - created_at - created_by - custom_fields - custom_fields.asana_created_field - custom_fields.created_by - custom_fields.created_by.name - custom_fields.currency_code - custom_fields.custom_label - custom_fields.custom_label_position - custom_fields.date_value - custom_fields.date_value.date - custom_fields.date_value.date_time - custom_fields.default_access_level - custom_fields.description - custom_fields.display_value - custom_fields.enabled - custom_fields.enum_options - custom_fields.enum_options.color - custom_fields.enum_options.enabled - custom_fields.enum_options.name - custom_fields.enum_value - custom_fields.enum_value.color - custom_fields.enum_value.enabled - custom_fields.enum_value.name - custom_fields.format - custom_fields.has_notifications_enabled - custom_fields.id_prefix - custom_fields.input_restrictions - custom_fields.is_formula_field - custom_fields.is_global_to_workspace - custom_fields.is_value_read_only - custom_fields.multi_enum_values - custom_fields.multi_enum_values.color - custom_fields.multi_enum_values.enabled - custom_fields.multi_enum_values.name - custom_fields.name - custom_fields.number_value - custom_fields.people_value - custom_fields.people_value.name - custom_fields.precision - custom_fields.privacy_setting - custom_fields.reference_value - custom_fields.reference_value.name - custom_fields.representation_type - custom_fields.resource_subtype - custom_fields.text_value - custom_fields.type - custom_type - custom_type.name - custom_type_status_option - custom_type_status_option.name - dependencies - dependents - due_at - due_on - external - external.data - followers - followers.name - hearted - hearts - hearts.user - hearts.user.name - html_notes - is_rendered_as_separator - liked - likes - likes.user - likes.user.name - memberships - memberships.project - memberships.project.name - memberships.section - memberships.section.name - modified_at - name - notes - num_hearts - num_likes - num_subtasks - parent - parent.created_by - parent.name - parent.resource_subtype - permalink_url - projects - projects.name - resource_subtype - start_at - start_on - tags - tags.name - workspace - workspace.name schema: type: array items: type: string enum: - actual_time_minutes - approval_status - assigned_by - assigned_by.name - assignee - assignee.name - assignee_section - assignee_section.name - assignee_status - completed - completed_at - completed_by - completed_by.name - created_at - created_by - custom_fields - custom_fields.asana_created_field - custom_fields.created_by - custom_fields.created_by.name - custom_fields.currency_code - custom_fields.custom_label - custom_fields.custom_label_position - custom_fields.date_value - custom_fields.date_value.date - custom_fields.date_value.date_time - custom_fields.default_access_level - custom_fields.description - custom_fields.display_value - custom_fields.enabled - custom_fields.enum_options - custom_fields.enum_options.color - custom_fields.enum_options.enabled - custom_fields.enum_options.name - custom_fields.enum_value - custom_fields.enum_value.color - custom_fields.enum_value.enabled - custom_fields.enum_value.name - custom_fields.format - custom_fields.has_notifications_enabled - custom_fields.id_prefix - custom_fields.input_restrictions - custom_fields.is_formula_field - custom_fields.is_global_to_workspace - custom_fields.is_value_read_only - custom_fields.multi_enum_values - custom_fields.multi_enum_values.color - custom_fields.multi_enum_values.enabled - custom_fields.multi_enum_values.name - custom_fields.name - custom_fields.number_value - custom_fields.people_value - custom_fields.people_value.name - custom_fields.precision - custom_fields.privacy_setting - custom_fields.reference_value - custom_fields.reference_value.name - custom_fields.representation_type - custom_fields.resource_subtype - custom_fields.text_value - custom_fields.type - custom_type - custom_type.name - custom_type_status_option - custom_type_status_option.name - dependencies - dependents - due_at - due_on - external - external.data - followers - followers.name - hearted - hearts - hearts.user - hearts.user.name - html_notes - is_rendered_as_separator - liked - likes - likes.user - likes.user.name - memberships - memberships.project - memberships.project.name - memberships.section - memberships.section.name - modified_at - name - notes - num_hearts - num_likes - num_subtasks - parent - parent.created_by - parent.name - parent.resource_subtype - permalink_url - projects - projects.name - resource_subtype - start_at - start_on - tags - tags.name - workspace - workspace.name style: form explode: false responses: 200: description: Successfully retrieved the specified task. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/TaskResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: - tasks:read x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); Task result = client.tasks.getTask(taskGid) .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let tasksApiInstance = new Asana.TasksApi(client); let task_gid = "321654"; // String | The task to operate on. let opts = { 'opt_fields': "actual_time_minutes,approval_status,assigned_by,assigned_by.name,assignee,assignee.name,assignee_section,assignee_section.name,assignee_status,completed,completed_at,completed_by,completed_by.name,created_at,created_by,custom_fields,custom_fields.asana_created_field,custom_fields.created_by,custom_fields.created_by.name,custom_fields.currency_code,custom_fields.custom_label,custom_fields.custom_label_position,custom_fields.date_value,custom_fields.date_value.date,custom_fields.date_value.date_time,custom_fields.default_access_level,custom_fields.description,custom_fields.display_value,custom_fields.enabled,custom_fields.enum_options,custom_fields.enum_options.color,custom_fields.enum_options.enabled,custom_fields.enum_options.name,custom_fields.enum_value,custom_fields.enum_value.color,custom_fields.enum_value.enabled,custom_fields.enum_value.name,custom_fields.format,custom_fields.has_notifications_enabled,custom_fields.id_prefix,custom_fields.input_restrictions,custom_fields.is_formula_field,custom_fields.is_global_to_workspace,custom_fields.is_value_read_only,custom_fields.multi_enum_values,custom_fields.multi_enum_values.color,custom_fields.multi_enum_values.enabled,custom_fields.multi_enum_values.name,custom_fields.name,custom_fields.number_value,custom_fields.people_value,custom_fields.people_value.name,custom_fields.precision,custom_fields.privacy_setting,custom_fields.reference_value,custom_fields.reference_value.name,custom_fields.representation_type,custom_fields.resource_subtype,custom_fields.text_value,custom_fields.type,custom_type,custom_type.name,custom_type_status_option,custom_type_status_option.name,dependencies,dependents,due_at,due_on,external,external.data,followers,followers.name,hearted,hearts,hearts.user,hearts.user.name,html_notes,is_rendered_as_separator,liked,likes,likes.user,likes.user.name,memberships,memberships.project,memberships.project.name,memberships.section,memberships.section.name,modified_at,name,notes,num_hearts,num_likes,num_subtasks,parent,parent.created_by,parent.name,parent.resource_subtype,permalink_url,projects,projects.name,resource_subtype,start_at,start_on,tags,tags.name,workspace,workspace.name" }; tasksApiInstance.getTask(task_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.tasks.getTask(taskGid, {param: "value", param: "value", opt_pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class tasks_api_instance = asana.TasksApi(api_client) task_gid = "321654" # str | The task to operate on. opts = { 'opt_fields': "actual_time_minutes,approval_status,assignee,assignee.name,assignee_section,assignee_section.name,assignee_status,completed,completed_at,completed_by,completed_by.name,created_at,created_by,custom_fields,custom_fields.asana_created_field,custom_fields.created_by,custom_fields.created_by.name,custom_fields.currency_code,custom_fields.custom_label,custom_fields.custom_label_position,custom_fields.date_value,custom_fields.date_value.date,custom_fields.date_value.date_time,custom_fields.default_access_level,custom_fields.description,custom_fields.display_value,custom_fields.enabled,custom_fields.enum_options,custom_fields.enum_options.color,custom_fields.enum_options.enabled,custom_fields.enum_options.name,custom_fields.enum_value,custom_fields.enum_value.color,custom_fields.enum_value.enabled,custom_fields.enum_value.name,custom_fields.format,custom_fields.has_notifications_enabled,custom_fields.id_prefix,custom_fields.input_restrictions,custom_fields.is_formula_field,custom_fields.is_global_to_workspace,custom_fields.is_value_read_only,custom_fields.multi_enum_values,custom_fields.multi_enum_values.color,custom_fields.multi_enum_values.enabled,custom_fields.multi_enum_values.name,custom_fields.name,custom_fields.number_value,custom_fields.people_value,custom_fields.people_value.name,custom_fields.precision,custom_fields.privacy_setting,custom_fields.reference_value,custom_fields.reference_value.name,custom_fields.representation_type,custom_fields.resource_subtype,custom_fields.text_value,custom_fields.type,custom_type,custom_type.name,custom_type_status_option,custom_type_status_option.name,dependencies,dependents,due_at,due_on,external,external.data,followers,followers.name,hearted,hearts,hearts.user,hearts.user.name,html_notes,is_rendered_as_separator,liked,likes,likes.user,likes.user.name,memberships,memberships.project,memberships.project.name,memberships.section,memberships.section.name,modified_at,name,notes,num_hearts,num_likes,num_subtasks,parent,parent.created_by,parent.name,parent.resource_subtype,permalink_url,projects,projects.name,resource_subtype,start_at,start_on,tags,tags.name,workspace,workspace.name", # list[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. } try: # Get a task api_response = tasks_api_instance.get_task(task_gid, opts) pprint(api_response) except ApiException as e: print("Exception when calling TasksApi->get_task: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.tasks.get_task(task_gid, {'param': 'value', 'param': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- tasks->getTask($task_gid, array('param' => 'value', 'param' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.tasks.get_task(task_gid: 'task_gid', param: "value", param: "value", options: {pretty: true}) put: summary: Update a task description: |- Required scope: tasks:write A specific, existing task can be updated by making a PUT request on the URL for that task. Only the fields provided in the `data` block will be updated; any unspecified fields will remain unchanged. When using this method, it is best to specify only those fields you wish to change, or else you may overwrite changes made by another user since you last retrieved the task. Returns the complete updated task record. tags: - Tasks operationId: updateTask parameters: - name: opt_fields in: query description: 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. required: false example: - actual_time_minutes - approval_status - assigned_by - assigned_by.name - assignee - assignee.name - assignee_section - assignee_section.name - assignee_status - completed - completed_at - completed_by - completed_by.name - created_at - created_by - custom_fields - custom_fields.asana_created_field - custom_fields.created_by - custom_fields.created_by.name - custom_fields.currency_code - custom_fields.custom_label - custom_fields.custom_label_position - custom_fields.date_value - custom_fields.date_value.date - custom_fields.date_value.date_time - custom_fields.default_access_level - custom_fields.description - custom_fields.display_value - custom_fields.enabled - custom_fields.enum_options - custom_fields.enum_options.color - custom_fields.enum_options.enabled - custom_fields.enum_options.name - custom_fields.enum_value - custom_fields.enum_value.color - custom_fields.enum_value.enabled - custom_fields.enum_value.name - custom_fields.format - custom_fields.has_notifications_enabled - custom_fields.id_prefix - custom_fields.input_restrictions - custom_fields.is_formula_field - custom_fields.is_global_to_workspace - custom_fields.is_value_read_only - custom_fields.multi_enum_values - custom_fields.multi_enum_values.color - custom_fields.multi_enum_values.enabled - custom_fields.multi_enum_values.name - custom_fields.name - custom_fields.number_value - custom_fields.people_value - custom_fields.people_value.name - custom_fields.precision - custom_fields.privacy_setting - custom_fields.reference_value - custom_fields.reference_value.name - custom_fields.representation_type - custom_fields.resource_subtype - custom_fields.text_value - custom_fields.type - custom_type - custom_type.name - custom_type_status_option - custom_type_status_option.name - dependencies - dependents - due_at - due_on - external - external.data - followers - followers.name - hearted - hearts - hearts.user - hearts.user.name - html_notes - is_rendered_as_separator - liked - likes - likes.user - likes.user.name - memberships - memberships.project - memberships.project.name - memberships.section - memberships.section.name - modified_at - name - notes - num_hearts - num_likes - num_subtasks - parent - parent.created_by - parent.name - parent.resource_subtype - permalink_url - projects - projects.name - resource_subtype - start_at - start_on - tags - tags.name - workspace - workspace.name schema: type: array items: type: string enum: - actual_time_minutes - approval_status - assigned_by - assigned_by.name - assignee - assignee.name - assignee_section - assignee_section.name - assignee_status - completed - completed_at - completed_by - completed_by.name - created_at - created_by - custom_fields - custom_fields.asana_created_field - custom_fields.created_by - custom_fields.created_by.name - custom_fields.currency_code - custom_fields.custom_label - custom_fields.custom_label_position - custom_fields.date_value - custom_fields.date_value.date - custom_fields.date_value.date_time - custom_fields.default_access_level - custom_fields.description - custom_fields.display_value - custom_fields.enabled - custom_fields.enum_options - custom_fields.enum_options.color - custom_fields.enum_options.enabled - custom_fields.enum_options.name - custom_fields.enum_value - custom_fields.enum_value.color - custom_fields.enum_value.enabled - custom_fields.enum_value.name - custom_fields.format - custom_fields.has_notifications_enabled - custom_fields.id_prefix - custom_fields.input_restrictions - custom_fields.is_formula_field - custom_fields.is_global_to_workspace - custom_fields.is_value_read_only - custom_fields.multi_enum_values - custom_fields.multi_enum_values.color - custom_fields.multi_enum_values.enabled - custom_fields.multi_enum_values.name - custom_fields.name - custom_fields.number_value - custom_fields.people_value - custom_fields.people_value.name - custom_fields.precision - custom_fields.privacy_setting - custom_fields.reference_value - custom_fields.reference_value.name - custom_fields.representation_type - custom_fields.resource_subtype - custom_fields.text_value - custom_fields.type - custom_type - custom_type.name - custom_type_status_option - custom_type_status_option.name - dependencies - dependents - due_at - due_on - external - external.data - followers - followers.name - hearted - hearts - hearts.user - hearts.user.name - html_notes - is_rendered_as_separator - liked - likes - likes.user - likes.user.name - memberships - memberships.project - memberships.project.name - memberships.section - memberships.section.name - modified_at - name - notes - num_hearts - num_likes - num_subtasks - parent - parent.created_by - parent.name - parent.resource_subtype - permalink_url - projects - projects.name - resource_subtype - start_at - start_on - tags - tags.name - workspace - workspace.name style: form explode: false requestBody: description: The task to update. required: true content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/TaskRequest' responses: 200: description: Successfully updated the specified task. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/TaskResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: - tasks:write x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); Task result = client.tasks.updateTask(taskGid) .data("field", "value") .data("field", "value") .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let tasksApiInstance = new Asana.TasksApi(client); let body = {"data": {"": "", "": "",}}; // Object | The task to update. let task_gid = "321654"; // String | The task to operate on. let opts = { 'opt_fields': "actual_time_minutes,approval_status,assigned_by,assigned_by.name,assignee,assignee.name,assignee_section,assignee_section.name,assignee_status,completed,completed_at,completed_by,completed_by.name,created_at,created_by,custom_fields,custom_fields.asana_created_field,custom_fields.created_by,custom_fields.created_by.name,custom_fields.currency_code,custom_fields.custom_label,custom_fields.custom_label_position,custom_fields.date_value,custom_fields.date_value.date,custom_fields.date_value.date_time,custom_fields.default_access_level,custom_fields.description,custom_fields.display_value,custom_fields.enabled,custom_fields.enum_options,custom_fields.enum_options.color,custom_fields.enum_options.enabled,custom_fields.enum_options.name,custom_fields.enum_value,custom_fields.enum_value.color,custom_fields.enum_value.enabled,custom_fields.enum_value.name,custom_fields.format,custom_fields.has_notifications_enabled,custom_fields.id_prefix,custom_fields.input_restrictions,custom_fields.is_formula_field,custom_fields.is_global_to_workspace,custom_fields.is_value_read_only,custom_fields.multi_enum_values,custom_fields.multi_enum_values.color,custom_fields.multi_enum_values.enabled,custom_fields.multi_enum_values.name,custom_fields.name,custom_fields.number_value,custom_fields.people_value,custom_fields.people_value.name,custom_fields.precision,custom_fields.privacy_setting,custom_fields.reference_value,custom_fields.reference_value.name,custom_fields.representation_type,custom_fields.resource_subtype,custom_fields.text_value,custom_fields.type,custom_type,custom_type.name,custom_type_status_option,custom_type_status_option.name,dependencies,dependents,due_at,due_on,external,external.data,followers,followers.name,hearted,hearts,hearts.user,hearts.user.name,html_notes,is_rendered_as_separator,liked,likes,likes.user,likes.user.name,memberships,memberships.project,memberships.project.name,memberships.section,memberships.section.name,modified_at,name,notes,num_hearts,num_likes,num_subtasks,parent,parent.created_by,parent.name,parent.resource_subtype,permalink_url,projects,projects.name,resource_subtype,start_at,start_on,tags,tags.name,workspace,workspace.name" }; tasksApiInstance.updateTask(body, task_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.tasks.updateTask(taskGid, {field: "value", field: "value", pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class tasks_api_instance = asana.TasksApi(api_client) body = {"data": {"": "", "": "",}} # dict | The task to update. task_gid = "321654" # str | The task to operate on. opts = { 'opt_fields': "actual_time_minutes,approval_status,assignee,assignee.name,assignee_section,assignee_section.name,assignee_status,completed,completed_at,completed_by,completed_by.name,created_at,created_by,custom_fields,custom_fields.asana_created_field,custom_fields.created_by,custom_fields.created_by.name,custom_fields.currency_code,custom_fields.custom_label,custom_fields.custom_label_position,custom_fields.date_value,custom_fields.date_value.date,custom_fields.date_value.date_time,custom_fields.default_access_level,custom_fields.description,custom_fields.display_value,custom_fields.enabled,custom_fields.enum_options,custom_fields.enum_options.color,custom_fields.enum_options.enabled,custom_fields.enum_options.name,custom_fields.enum_value,custom_fields.enum_value.color,custom_fields.enum_value.enabled,custom_fields.enum_value.name,custom_fields.format,custom_fields.has_notifications_enabled,custom_fields.id_prefix,custom_fields.input_restrictions,custom_fields.is_formula_field,custom_fields.is_global_to_workspace,custom_fields.is_value_read_only,custom_fields.multi_enum_values,custom_fields.multi_enum_values.color,custom_fields.multi_enum_values.enabled,custom_fields.multi_enum_values.name,custom_fields.name,custom_fields.number_value,custom_fields.people_value,custom_fields.people_value.name,custom_fields.precision,custom_fields.privacy_setting,custom_fields.reference_value,custom_fields.reference_value.name,custom_fields.representation_type,custom_fields.resource_subtype,custom_fields.text_value,custom_fields.type,custom_type,custom_type.name,custom_type_status_option,custom_type_status_option.name,dependencies,dependents,due_at,due_on,external,external.data,followers,followers.name,hearted,hearts,hearts.user,hearts.user.name,html_notes,is_rendered_as_separator,liked,likes,likes.user,likes.user.name,memberships,memberships.project,memberships.project.name,memberships.section,memberships.section.name,modified_at,name,notes,num_hearts,num_likes,num_subtasks,parent,parent.created_by,parent.name,parent.resource_subtype,permalink_url,projects,projects.name,resource_subtype,start_at,start_on,tags,tags.name,workspace,workspace.name", # list[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. } try: # Update a task api_response = tasks_api_instance.update_task(body, task_gid, opts) pprint(api_response) except ApiException as e: print("Exception when calling TasksApi->update_task: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.tasks.update_task(task_gid, {'field': 'value', 'field': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- tasks->updateTask($task_gid, array('field' => 'value', 'field' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.tasks.update_task(task_gid: 'task_gid', field: "value", field: "value", options: {pretty: true}) delete: summary: Delete a task description: |- Required scope: tasks:delete A specific, existing task can be deleted by making a DELETE request on the URL for that task. Deleted tasks go into the “trash” of the user making the delete request. Tasks can be recovered from the trash within a period of 30 days; afterward they are completely removed from the system. Returns an empty data record. tags: - Tasks operationId: deleteTask responses: 200: description: Successfully deleted the specified task. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/EmptyResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: - tasks:delete x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); JsonElement result = client.tasks.deleteTask(taskGid) .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let tasksApiInstance = new Asana.TasksApi(client); let task_gid = "321654"; // String | The task to operate on. tasksApiInstance.deleteTask(task_gid).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.tasks.deleteTask(taskGid) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class tasks_api_instance = asana.TasksApi(api_client) task_gid = "321654" # str | The task to operate on. try: # Delete a task api_response = tasks_api_instance.delete_task(task_gid) pprint(api_response) except ApiException as e: print("Exception when calling TasksApi->delete_task: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.tasks.delete_task(task_gid, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- tasks->deleteTask($task_gid, array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.tasks.delete_task(task_gid: 'task_gid', options: {pretty: true}) /tasks/{task_gid}/duplicate: parameters: - $ref: '#/components/parameters/task_path_gid' - $ref: '#/components/parameters/pretty' post: summary: Duplicate a task description: |- Required scope: tasks:write Creates and returns a job that will asynchronously handle the duplication. tags: - Tasks operationId: duplicateTask parameters: - name: opt_fields in: query description: 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. required: false example: - new_graph_export - new_graph_export.completed_at - new_graph_export.created_at - new_graph_export.download_url - new_project - new_project.name - new_project_template - new_project_template.name - new_resource_export - new_resource_export.completed_at - new_resource_export.created_at - new_resource_export.download_url - new_task - new_task.created_by - new_task.name - new_task.resource_subtype - resource_subtype - status schema: type: array items: type: string enum: - new_graph_export - new_graph_export.completed_at - new_graph_export.created_at - new_graph_export.download_url - new_project - new_project.name - new_project_template - new_project_template.name - new_resource_export - new_resource_export.completed_at - new_resource_export.created_at - new_resource_export.download_url - new_task - new_task.created_by - new_task.name - new_task.resource_subtype - resource_subtype - status style: form explode: false requestBody: description: >- Describes the duplicate's name and the fields that will be duplicated. required: true content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/TaskDuplicateRequest' responses: 201: description: Successfully created the job to handle duplication. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/JobResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: - tasks:write x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); Job result = client.tasks.duplicateTask(taskGid) .data("field", "value") .data("field", "value") .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let tasksApiInstance = new Asana.TasksApi(client); let body = {"data": {"": "", "": "",}}; // Object | Describes the duplicate's name and the fields that will be duplicated. let task_gid = "321654"; // String | The task to operate on. let opts = { 'opt_fields': "new_graph_export,new_graph_export.completed_at,new_graph_export.created_at,new_graph_export.download_url,new_project,new_project.name,new_project_template,new_project_template.name,new_resource_export,new_resource_export.completed_at,new_resource_export.created_at,new_resource_export.download_url,new_task,new_task.created_by,new_task.name,new_task.resource_subtype,resource_subtype,status" }; tasksApiInstance.duplicateTask(body, task_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.tasks.duplicateTask(taskGid, {field: "value", field: "value", pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class tasks_api_instance = asana.TasksApi(api_client) body = {"data": {"": "", "": "",}} # dict | Describes the duplicate's name and the fields that will be duplicated. task_gid = "321654" # str | The task to operate on. opts = { 'opt_fields': "new_graph_export,new_graph_export.completed_at,new_graph_export.created_at,new_graph_export.download_url,new_project,new_project.name,new_project_template,new_project_template.name,new_resource_export,new_resource_export.completed_at,new_resource_export.created_at,new_resource_export.download_url,new_task,new_task.created_by,new_task.name,new_task.resource_subtype,resource_subtype,status", # list[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. } try: # Duplicate a task api_response = tasks_api_instance.duplicate_task(body, task_gid, opts) pprint(api_response) except ApiException as e: print("Exception when calling TasksApi->duplicate_task: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.tasks.duplicate_task(task_gid, {'field': 'value', 'field': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- tasks->duplicateTask($task_gid, array('field' => 'value', 'field' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.tasks.duplicate_task(task_gid: 'task_gid', field: "value", field: "value", options: {pretty: true}) /projects/{project_gid}/tasks: parameters: - $ref: '#/components/parameters/completed_since' - $ref: '#/components/parameters/project_path_gid' - $ref: '#/components/parameters/pretty' - $ref: '#/components/parameters/limit' - $ref: '#/components/parameters/offset' get: summary: Get tasks from a project description: |- Required scope: tasks:read Returns the compact task records for all tasks within the given project, ordered by their priority within the project. Tasks can exist in more than one project at a time. tags: - Tasks operationId: getTasksForProject parameters: - name: opt_fields in: query description: 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. required: false example: - actual_time_minutes - approval_status - assigned_by - assigned_by.name - assignee - assignee.name - assignee_section - assignee_section.name - assignee_status - completed - completed_at - completed_by - completed_by.name - created_at - created_by - custom_fields - custom_fields.asana_created_field - custom_fields.created_by - custom_fields.created_by.name - custom_fields.currency_code - custom_fields.custom_label - custom_fields.custom_label_position - custom_fields.date_value - custom_fields.date_value.date - custom_fields.date_value.date_time - custom_fields.default_access_level - custom_fields.description - custom_fields.display_value - custom_fields.enabled - custom_fields.enum_options - custom_fields.enum_options.color - custom_fields.enum_options.enabled - custom_fields.enum_options.name - custom_fields.enum_value - custom_fields.enum_value.color - custom_fields.enum_value.enabled - custom_fields.enum_value.name - custom_fields.format - custom_fields.has_notifications_enabled - custom_fields.id_prefix - custom_fields.input_restrictions - custom_fields.is_formula_field - custom_fields.is_global_to_workspace - custom_fields.is_value_read_only - custom_fields.multi_enum_values - custom_fields.multi_enum_values.color - custom_fields.multi_enum_values.enabled - custom_fields.multi_enum_values.name - custom_fields.name - custom_fields.number_value - custom_fields.people_value - custom_fields.people_value.name - custom_fields.precision - custom_fields.privacy_setting - custom_fields.reference_value - custom_fields.reference_value.name - custom_fields.representation_type - custom_fields.resource_subtype - custom_fields.text_value - custom_fields.type - custom_type - custom_type.name - custom_type_status_option - custom_type_status_option.name - dependencies - dependents - due_at - due_on - external - external.data - followers - followers.name - hearted - hearts - hearts.user - hearts.user.name - html_notes - is_rendered_as_separator - liked - likes - likes.user - likes.user.name - memberships - memberships.project - memberships.project.name - memberships.section - memberships.section.name - modified_at - name - notes - num_hearts - num_likes - num_subtasks - offset - parent - parent.created_by - parent.name - parent.resource_subtype - path - permalink_url - projects - projects.name - resource_subtype - start_at - start_on - tags - tags.name - uri - workspace - workspace.name schema: type: array items: type: string enum: - actual_time_minutes - approval_status - assigned_by - assigned_by.name - assignee - assignee.name - assignee_section - assignee_section.name - assignee_status - completed - completed_at - completed_by - completed_by.name - created_at - created_by - custom_fields - custom_fields.asana_created_field - custom_fields.created_by - custom_fields.created_by.name - custom_fields.currency_code - custom_fields.custom_label - custom_fields.custom_label_position - custom_fields.date_value - custom_fields.date_value.date - custom_fields.date_value.date_time - custom_fields.default_access_level - custom_fields.description - custom_fields.display_value - custom_fields.enabled - custom_fields.enum_options - custom_fields.enum_options.color - custom_fields.enum_options.enabled - custom_fields.enum_options.name - custom_fields.enum_value - custom_fields.enum_value.color - custom_fields.enum_value.enabled - custom_fields.enum_value.name - custom_fields.format - custom_fields.has_notifications_enabled - custom_fields.id_prefix - custom_fields.input_restrictions - custom_fields.is_formula_field - custom_fields.is_global_to_workspace - custom_fields.is_value_read_only - custom_fields.multi_enum_values - custom_fields.multi_enum_values.color - custom_fields.multi_enum_values.enabled - custom_fields.multi_enum_values.name - custom_fields.name - custom_fields.number_value - custom_fields.people_value - custom_fields.people_value.name - custom_fields.precision - custom_fields.privacy_setting - custom_fields.reference_value - custom_fields.reference_value.name - custom_fields.representation_type - custom_fields.resource_subtype - custom_fields.text_value - custom_fields.type - custom_type - custom_type.name - custom_type_status_option - custom_type_status_option.name - dependencies - dependents - due_at - due_on - external - external.data - followers - followers.name - hearted - hearts - hearts.user - hearts.user.name - html_notes - is_rendered_as_separator - liked - likes - likes.user - likes.user.name - memberships - memberships.project - memberships.project.name - memberships.section - memberships.section.name - modified_at - name - notes - num_hearts - num_likes - num_subtasks - offset - parent - parent.created_by - parent.name - parent.resource_subtype - path - permalink_url - projects - projects.name - resource_subtype - start_at - start_on - tags - tags.name - uri - workspace - workspace.name style: form explode: false responses: 200: description: Successfully retrieved the requested project's tasks. content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/TaskCompact' next_page: $ref: '#/components/schemas/NextPage' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: - tasks:read x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); List result = client.tasks.getTasksForProject(projectGid, completedSince) .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let tasksApiInstance = new Asana.TasksApi(client); let project_gid = "1331"; // String | Globally unique identifier for the project. let opts = { 'completed_since': "2012-02-22T02:06:58.158Z", 'limit': 50, 'offset': "eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9", 'opt_fields': "actual_time_minutes,approval_status,assigned_by,assigned_by.name,assignee,assignee.name,assignee_section,assignee_section.name,assignee_status,completed,completed_at,completed_by,completed_by.name,created_at,created_by,custom_fields,custom_fields.asana_created_field,custom_fields.created_by,custom_fields.created_by.name,custom_fields.currency_code,custom_fields.custom_label,custom_fields.custom_label_position,custom_fields.date_value,custom_fields.date_value.date,custom_fields.date_value.date_time,custom_fields.default_access_level,custom_fields.description,custom_fields.display_value,custom_fields.enabled,custom_fields.enum_options,custom_fields.enum_options.color,custom_fields.enum_options.enabled,custom_fields.enum_options.name,custom_fields.enum_value,custom_fields.enum_value.color,custom_fields.enum_value.enabled,custom_fields.enum_value.name,custom_fields.format,custom_fields.has_notifications_enabled,custom_fields.id_prefix,custom_fields.input_restrictions,custom_fields.is_formula_field,custom_fields.is_global_to_workspace,custom_fields.is_value_read_only,custom_fields.multi_enum_values,custom_fields.multi_enum_values.color,custom_fields.multi_enum_values.enabled,custom_fields.multi_enum_values.name,custom_fields.name,custom_fields.number_value,custom_fields.people_value,custom_fields.people_value.name,custom_fields.precision,custom_fields.privacy_setting,custom_fields.reference_value,custom_fields.reference_value.name,custom_fields.representation_type,custom_fields.resource_subtype,custom_fields.text_value,custom_fields.type,custom_type,custom_type.name,custom_type_status_option,custom_type_status_option.name,dependencies,dependents,due_at,due_on,external,external.data,followers,followers.name,hearted,hearts,hearts.user,hearts.user.name,html_notes,is_rendered_as_separator,liked,likes,likes.user,likes.user.name,memberships,memberships.project,memberships.project.name,memberships.section,memberships.section.name,modified_at,name,notes,num_hearts,num_likes,num_subtasks,offset,parent,parent.created_by,parent.name,parent.resource_subtype,path,permalink_url,projects,projects.name,resource_subtype,start_at,start_on,tags,tags.name,uri,workspace,workspace.name" }; tasksApiInstance.getTasksForProject(project_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.tasks.getTasksForProject(projectGid, {param: "value", param: "value", opt_pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class tasks_api_instance = asana.TasksApi(api_client) project_gid = "1331" # str | Globally unique identifier for the project. opts = { 'completed_since': "2012-02-22T02:06:58.158Z", # str | Only return tasks that are either incomplete or that have been completed since this time. Accepts a date-time string or the keyword *now*. 'limit': 50, # int | Results per page. The number of objects to return per page. The value must be between 1 and 100. 'offset': "eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9", # 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': "actual_time_minutes,approval_status,assignee,assignee.name,assignee_section,assignee_section.name,assignee_status,completed,completed_at,completed_by,completed_by.name,created_at,created_by,custom_fields,custom_fields.asana_created_field,custom_fields.created_by,custom_fields.created_by.name,custom_fields.currency_code,custom_fields.custom_label,custom_fields.custom_label_position,custom_fields.date_value,custom_fields.date_value.date,custom_fields.date_value.date_time,custom_fields.default_access_level,custom_fields.description,custom_fields.display_value,custom_fields.enabled,custom_fields.enum_options,custom_fields.enum_options.color,custom_fields.enum_options.enabled,custom_fields.enum_options.name,custom_fields.enum_value,custom_fields.enum_value.color,custom_fields.enum_value.enabled,custom_fields.enum_value.name,custom_fields.format,custom_fields.has_notifications_enabled,custom_fields.id_prefix,custom_fields.input_restrictions,custom_fields.is_formula_field,custom_fields.is_global_to_workspace,custom_fields.is_value_read_only,custom_fields.multi_enum_values,custom_fields.multi_enum_values.color,custom_fields.multi_enum_values.enabled,custom_fields.multi_enum_values.name,custom_fields.name,custom_fields.number_value,custom_fields.people_value,custom_fields.people_value.name,custom_fields.precision,custom_fields.privacy_setting,custom_fields.reference_value,custom_fields.reference_value.name,custom_fields.representation_type,custom_fields.resource_subtype,custom_fields.text_value,custom_fields.type,custom_type,custom_type.name,custom_type_status_option,custom_type_status_option.name,dependencies,dependents,due_at,due_on,external,external.data,followers,followers.name,hearted,hearts,hearts.user,hearts.user.name,html_notes,is_rendered_as_separator,liked,likes,likes.user,likes.user.name,memberships,memberships.project,memberships.project.name,memberships.section,memberships.section.name,modified_at,name,notes,num_hearts,num_likes,num_subtasks,offset,parent,parent.created_by,parent.name,parent.resource_subtype,path,permalink_url,projects,projects.name,resource_subtype,start_at,start_on,tags,tags.name,uri,workspace,workspace.name", # list[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. } try: # Get tasks from a project api_response = tasks_api_instance.get_tasks_for_project(project_gid, opts) for data in api_response: pprint(data) except ApiException as e: print("Exception when calling TasksApi->get_tasks_for_project: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.tasks.get_tasks_for_project(project_gid, {'param': 'value', 'param': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- tasks->getTasksForProject($project_gid, array('param' => 'value', 'param' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.tasks.get_tasks_for_project(project_gid: 'project_gid', param: "value", param: "value", options: {pretty: true}) /sections/{section_gid}/tasks: parameters: - $ref: '#/components/parameters/section_path_gid' - $ref: '#/components/parameters/pretty' - $ref: '#/components/parameters/limit' - $ref: '#/components/parameters/offset' - $ref: '#/components/parameters/completed_since' get: summary: Get tasks from a section description: |- Required scope: tasks:read *Board view only*: Returns the compact section records for all tasks within the given section. tags: - Tasks operationId: getTasksForSection parameters: - name: opt_fields in: query description: 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. required: false example: - actual_time_minutes - approval_status - assigned_by - assigned_by.name - assignee - assignee.name - assignee_section - assignee_section.name - assignee_status - completed - completed_at - completed_by - completed_by.name - created_at - created_by - custom_fields - custom_fields.asana_created_field - custom_fields.created_by - custom_fields.created_by.name - custom_fields.currency_code - custom_fields.custom_label - custom_fields.custom_label_position - custom_fields.date_value - custom_fields.date_value.date - custom_fields.date_value.date_time - custom_fields.default_access_level - custom_fields.description - custom_fields.display_value - custom_fields.enabled - custom_fields.enum_options - custom_fields.enum_options.color - custom_fields.enum_options.enabled - custom_fields.enum_options.name - custom_fields.enum_value - custom_fields.enum_value.color - custom_fields.enum_value.enabled - custom_fields.enum_value.name - custom_fields.format - custom_fields.has_notifications_enabled - custom_fields.id_prefix - custom_fields.input_restrictions - custom_fields.is_formula_field - custom_fields.is_global_to_workspace - custom_fields.is_value_read_only - custom_fields.multi_enum_values - custom_fields.multi_enum_values.color - custom_fields.multi_enum_values.enabled - custom_fields.multi_enum_values.name - custom_fields.name - custom_fields.number_value - custom_fields.people_value - custom_fields.people_value.name - custom_fields.precision - custom_fields.privacy_setting - custom_fields.reference_value - custom_fields.reference_value.name - custom_fields.representation_type - custom_fields.resource_subtype - custom_fields.text_value - custom_fields.type - custom_type - custom_type.name - custom_type_status_option - custom_type_status_option.name - dependencies - dependents - due_at - due_on - external - external.data - followers - followers.name - hearted - hearts - hearts.user - hearts.user.name - html_notes - is_rendered_as_separator - liked - likes - likes.user - likes.user.name - memberships - memberships.project - memberships.project.name - memberships.section - memberships.section.name - modified_at - name - notes - num_hearts - num_likes - num_subtasks - offset - parent - parent.created_by - parent.name - parent.resource_subtype - path - permalink_url - projects - projects.name - resource_subtype - start_at - start_on - tags - tags.name - uri - workspace - workspace.name schema: type: array items: type: string enum: - actual_time_minutes - approval_status - assigned_by - assigned_by.name - assignee - assignee.name - assignee_section - assignee_section.name - assignee_status - completed - completed_at - completed_by - completed_by.name - created_at - created_by - custom_fields - custom_fields.asana_created_field - custom_fields.created_by - custom_fields.created_by.name - custom_fields.currency_code - custom_fields.custom_label - custom_fields.custom_label_position - custom_fields.date_value - custom_fields.date_value.date - custom_fields.date_value.date_time - custom_fields.default_access_level - custom_fields.description - custom_fields.display_value - custom_fields.enabled - custom_fields.enum_options - custom_fields.enum_options.color - custom_fields.enum_options.enabled - custom_fields.enum_options.name - custom_fields.enum_value - custom_fields.enum_value.color - custom_fields.enum_value.enabled - custom_fields.enum_value.name - custom_fields.format - custom_fields.has_notifications_enabled - custom_fields.id_prefix - custom_fields.input_restrictions - custom_fields.is_formula_field - custom_fields.is_global_to_workspace - custom_fields.is_value_read_only - custom_fields.multi_enum_values - custom_fields.multi_enum_values.color - custom_fields.multi_enum_values.enabled - custom_fields.multi_enum_values.name - custom_fields.name - custom_fields.number_value - custom_fields.people_value - custom_fields.people_value.name - custom_fields.precision - custom_fields.privacy_setting - custom_fields.reference_value - custom_fields.reference_value.name - custom_fields.representation_type - custom_fields.resource_subtype - custom_fields.text_value - custom_fields.type - custom_type - custom_type.name - custom_type_status_option - custom_type_status_option.name - dependencies - dependents - due_at - due_on - external - external.data - followers - followers.name - hearted - hearts - hearts.user - hearts.user.name - html_notes - is_rendered_as_separator - liked - likes - likes.user - likes.user.name - memberships - memberships.project - memberships.project.name - memberships.section - memberships.section.name - modified_at - name - notes - num_hearts - num_likes - num_subtasks - offset - parent - parent.created_by - parent.name - parent.resource_subtype - path - permalink_url - projects - projects.name - resource_subtype - start_at - start_on - tags - tags.name - uri - workspace - workspace.name style: form explode: false responses: 200: description: >- Successfully retrieved the section's tasks. content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/TaskCompact' next_page: $ref: '#/components/schemas/NextPage' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: - tasks:read x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); List result = client.tasks.getTasksForSection(sectionGid) .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let tasksApiInstance = new Asana.TasksApi(client); let section_gid = "321654"; // String | The globally unique identifier for the section. let opts = { 'limit': 50, 'offset': "eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9", 'completed_since': "2012-02-22T02:06:58.158Z", 'opt_fields': "actual_time_minutes,approval_status,assigned_by,assigned_by.name,assignee,assignee.name,assignee_section,assignee_section.name,assignee_status,completed,completed_at,completed_by,completed_by.name,created_at,created_by,custom_fields,custom_fields.asana_created_field,custom_fields.created_by,custom_fields.created_by.name,custom_fields.currency_code,custom_fields.custom_label,custom_fields.custom_label_position,custom_fields.date_value,custom_fields.date_value.date,custom_fields.date_value.date_time,custom_fields.default_access_level,custom_fields.description,custom_fields.display_value,custom_fields.enabled,custom_fields.enum_options,custom_fields.enum_options.color,custom_fields.enum_options.enabled,custom_fields.enum_options.name,custom_fields.enum_value,custom_fields.enum_value.color,custom_fields.enum_value.enabled,custom_fields.enum_value.name,custom_fields.format,custom_fields.has_notifications_enabled,custom_fields.id_prefix,custom_fields.input_restrictions,custom_fields.is_formula_field,custom_fields.is_global_to_workspace,custom_fields.is_value_read_only,custom_fields.multi_enum_values,custom_fields.multi_enum_values.color,custom_fields.multi_enum_values.enabled,custom_fields.multi_enum_values.name,custom_fields.name,custom_fields.number_value,custom_fields.people_value,custom_fields.people_value.name,custom_fields.precision,custom_fields.privacy_setting,custom_fields.reference_value,custom_fields.reference_value.name,custom_fields.representation_type,custom_fields.resource_subtype,custom_fields.text_value,custom_fields.type,custom_type,custom_type.name,custom_type_status_option,custom_type_status_option.name,dependencies,dependents,due_at,due_on,external,external.data,followers,followers.name,hearted,hearts,hearts.user,hearts.user.name,html_notes,is_rendered_as_separator,liked,likes,likes.user,likes.user.name,memberships,memberships.project,memberships.project.name,memberships.section,memberships.section.name,modified_at,name,notes,num_hearts,num_likes,num_subtasks,offset,parent,parent.created_by,parent.name,parent.resource_subtype,path,permalink_url,projects,projects.name,resource_subtype,start_at,start_on,tags,tags.name,uri,workspace,workspace.name" }; tasksApiInstance.getTasksForSection(section_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.tasks.getTasksForSection(sectionGid, {param: "value", param: "value", opt_pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class tasks_api_instance = asana.TasksApi(api_client) section_gid = "321654" # str | The globally unique identifier for the section. opts = { 'limit': 50, # int | Results per page. The number of objects to return per page. The value must be between 1 and 100. 'offset': "eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9", # 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.* 'completed_since': "2012-02-22T02:06:58.158Z", # str | Only return tasks that are either incomplete or that have been completed since this time. Accepts a date-time string or the keyword *now*. 'opt_fields': "actual_time_minutes,approval_status,assignee,assignee.name,assignee_section,assignee_section.name,assignee_status,completed,completed_at,completed_by,completed_by.name,created_at,created_by,custom_fields,custom_fields.asana_created_field,custom_fields.created_by,custom_fields.created_by.name,custom_fields.currency_code,custom_fields.custom_label,custom_fields.custom_label_position,custom_fields.date_value,custom_fields.date_value.date,custom_fields.date_value.date_time,custom_fields.default_access_level,custom_fields.description,custom_fields.display_value,custom_fields.enabled,custom_fields.enum_options,custom_fields.enum_options.color,custom_fields.enum_options.enabled,custom_fields.enum_options.name,custom_fields.enum_value,custom_fields.enum_value.color,custom_fields.enum_value.enabled,custom_fields.enum_value.name,custom_fields.format,custom_fields.has_notifications_enabled,custom_fields.id_prefix,custom_fields.input_restrictions,custom_fields.is_formula_field,custom_fields.is_global_to_workspace,custom_fields.is_value_read_only,custom_fields.multi_enum_values,custom_fields.multi_enum_values.color,custom_fields.multi_enum_values.enabled,custom_fields.multi_enum_values.name,custom_fields.name,custom_fields.number_value,custom_fields.people_value,custom_fields.people_value.name,custom_fields.precision,custom_fields.privacy_setting,custom_fields.reference_value,custom_fields.reference_value.name,custom_fields.representation_type,custom_fields.resource_subtype,custom_fields.text_value,custom_fields.type,custom_type,custom_type.name,custom_type_status_option,custom_type_status_option.name,dependencies,dependents,due_at,due_on,external,external.data,followers,followers.name,hearted,hearts,hearts.user,hearts.user.name,html_notes,is_rendered_as_separator,liked,likes,likes.user,likes.user.name,memberships,memberships.project,memberships.project.name,memberships.section,memberships.section.name,modified_at,name,notes,num_hearts,num_likes,num_subtasks,offset,parent,parent.created_by,parent.name,parent.resource_subtype,path,permalink_url,projects,projects.name,resource_subtype,start_at,start_on,tags,tags.name,uri,workspace,workspace.name", # list[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. } try: # Get tasks from a section api_response = tasks_api_instance.get_tasks_for_section(section_gid, opts) for data in api_response: pprint(data) except ApiException as e: print("Exception when calling TasksApi->get_tasks_for_section: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.tasks.get_tasks_for_section(section_gid, {'param': 'value', 'param': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- tasks->getTasksForSection($section_gid, array('param' => 'value', 'param' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.tasks.get_tasks_for_section(section_gid: 'section_gid', param: "value", param: "value", options: {pretty: true}) /tags/{tag_gid}/tasks: parameters: - $ref: '#/components/parameters/tag_path_gid' - $ref: '#/components/parameters/pretty' - $ref: '#/components/parameters/limit' - $ref: '#/components/parameters/offset' get: summary: Get tasks from a tag description: |- Required scope: tasks:read Returns the compact task records for all tasks with the given tag. Tasks can have more than one tag at a time. tags: - Tasks operationId: getTasksForTag parameters: - name: opt_fields in: query description: 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. required: false example: - actual_time_minutes - approval_status - assigned_by - assigned_by.name - assignee - assignee.name - assignee_section - assignee_section.name - assignee_status - completed - completed_at - completed_by - completed_by.name - created_at - created_by - custom_fields - custom_fields.asana_created_field - custom_fields.created_by - custom_fields.created_by.name - custom_fields.currency_code - custom_fields.custom_label - custom_fields.custom_label_position - custom_fields.date_value - custom_fields.date_value.date - custom_fields.date_value.date_time - custom_fields.default_access_level - custom_fields.description - custom_fields.display_value - custom_fields.enabled - custom_fields.enum_options - custom_fields.enum_options.color - custom_fields.enum_options.enabled - custom_fields.enum_options.name - custom_fields.enum_value - custom_fields.enum_value.color - custom_fields.enum_value.enabled - custom_fields.enum_value.name - custom_fields.format - custom_fields.has_notifications_enabled - custom_fields.id_prefix - custom_fields.input_restrictions - custom_fields.is_formula_field - custom_fields.is_global_to_workspace - custom_fields.is_value_read_only - custom_fields.multi_enum_values - custom_fields.multi_enum_values.color - custom_fields.multi_enum_values.enabled - custom_fields.multi_enum_values.name - custom_fields.name - custom_fields.number_value - custom_fields.people_value - custom_fields.people_value.name - custom_fields.precision - custom_fields.privacy_setting - custom_fields.reference_value - custom_fields.reference_value.name - custom_fields.representation_type - custom_fields.resource_subtype - custom_fields.text_value - custom_fields.type - custom_type - custom_type.name - custom_type_status_option - custom_type_status_option.name - dependencies - dependents - due_at - due_on - external - external.data - followers - followers.name - hearted - hearts - hearts.user - hearts.user.name - html_notes - is_rendered_as_separator - liked - likes - likes.user - likes.user.name - memberships - memberships.project - memberships.project.name - memberships.section - memberships.section.name - modified_at - name - notes - num_hearts - num_likes - num_subtasks - offset - parent - parent.created_by - parent.name - parent.resource_subtype - path - permalink_url - projects - projects.name - resource_subtype - start_at - start_on - tags - tags.name - uri - workspace - workspace.name schema: type: array items: type: string enum: - actual_time_minutes - approval_status - assigned_by - assigned_by.name - assignee - assignee.name - assignee_section - assignee_section.name - assignee_status - completed - completed_at - completed_by - completed_by.name - created_at - created_by - custom_fields - custom_fields.asana_created_field - custom_fields.created_by - custom_fields.created_by.name - custom_fields.currency_code - custom_fields.custom_label - custom_fields.custom_label_position - custom_fields.date_value - custom_fields.date_value.date - custom_fields.date_value.date_time - custom_fields.default_access_level - custom_fields.description - custom_fields.display_value - custom_fields.enabled - custom_fields.enum_options - custom_fields.enum_options.color - custom_fields.enum_options.enabled - custom_fields.enum_options.name - custom_fields.enum_value - custom_fields.enum_value.color - custom_fields.enum_value.enabled - custom_fields.enum_value.name - custom_fields.format - custom_fields.has_notifications_enabled - custom_fields.id_prefix - custom_fields.input_restrictions - custom_fields.is_formula_field - custom_fields.is_global_to_workspace - custom_fields.is_value_read_only - custom_fields.multi_enum_values - custom_fields.multi_enum_values.color - custom_fields.multi_enum_values.enabled - custom_fields.multi_enum_values.name - custom_fields.name - custom_fields.number_value - custom_fields.people_value - custom_fields.people_value.name - custom_fields.precision - custom_fields.privacy_setting - custom_fields.reference_value - custom_fields.reference_value.name - custom_fields.representation_type - custom_fields.resource_subtype - custom_fields.text_value - custom_fields.type - custom_type - custom_type.name - custom_type_status_option - custom_type_status_option.name - dependencies - dependents - due_at - due_on - external - external.data - followers - followers.name - hearted - hearts - hearts.user - hearts.user.name - html_notes - is_rendered_as_separator - liked - likes - likes.user - likes.user.name - memberships - memberships.project - memberships.project.name - memberships.section - memberships.section.name - modified_at - name - notes - num_hearts - num_likes - num_subtasks - offset - parent - parent.created_by - parent.name - parent.resource_subtype - path - permalink_url - projects - projects.name - resource_subtype - start_at - start_on - tags - tags.name - uri - workspace - workspace.name style: form explode: false responses: 200: description: >- Successfully retrieved the tasks associated with the specified tag. content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/TaskCompact' next_page: $ref: '#/components/schemas/NextPage' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: - tasks:read x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); List result = client.tasks.getTasksForTag(tagGid) .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let tasksApiInstance = new Asana.TasksApi(client); let tag_gid = "11235"; // String | Globally unique identifier for the tag. let opts = { 'limit': 50, 'offset': "eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9", 'opt_fields': "actual_time_minutes,approval_status,assigned_by,assigned_by.name,assignee,assignee.name,assignee_section,assignee_section.name,assignee_status,completed,completed_at,completed_by,completed_by.name,created_at,created_by,custom_fields,custom_fields.asana_created_field,custom_fields.created_by,custom_fields.created_by.name,custom_fields.currency_code,custom_fields.custom_label,custom_fields.custom_label_position,custom_fields.date_value,custom_fields.date_value.date,custom_fields.date_value.date_time,custom_fields.default_access_level,custom_fields.description,custom_fields.display_value,custom_fields.enabled,custom_fields.enum_options,custom_fields.enum_options.color,custom_fields.enum_options.enabled,custom_fields.enum_options.name,custom_fields.enum_value,custom_fields.enum_value.color,custom_fields.enum_value.enabled,custom_fields.enum_value.name,custom_fields.format,custom_fields.has_notifications_enabled,custom_fields.id_prefix,custom_fields.input_restrictions,custom_fields.is_formula_field,custom_fields.is_global_to_workspace,custom_fields.is_value_read_only,custom_fields.multi_enum_values,custom_fields.multi_enum_values.color,custom_fields.multi_enum_values.enabled,custom_fields.multi_enum_values.name,custom_fields.name,custom_fields.number_value,custom_fields.people_value,custom_fields.people_value.name,custom_fields.precision,custom_fields.privacy_setting,custom_fields.reference_value,custom_fields.reference_value.name,custom_fields.representation_type,custom_fields.resource_subtype,custom_fields.text_value,custom_fields.type,custom_type,custom_type.name,custom_type_status_option,custom_type_status_option.name,dependencies,dependents,due_at,due_on,external,external.data,followers,followers.name,hearted,hearts,hearts.user,hearts.user.name,html_notes,is_rendered_as_separator,liked,likes,likes.user,likes.user.name,memberships,memberships.project,memberships.project.name,memberships.section,memberships.section.name,modified_at,name,notes,num_hearts,num_likes,num_subtasks,offset,parent,parent.created_by,parent.name,parent.resource_subtype,path,permalink_url,projects,projects.name,resource_subtype,start_at,start_on,tags,tags.name,uri,workspace,workspace.name" }; tasksApiInstance.getTasksForTag(tag_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.tasks.getTasksForTag(tagGid, {param: "value", param: "value", opt_pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class tasks_api_instance = asana.TasksApi(api_client) tag_gid = "11235" # str | Globally unique identifier for the tag. opts = { 'limit': 50, # int | Results per page. The number of objects to return per page. The value must be between 1 and 100. 'offset': "eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9", # 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': "actual_time_minutes,approval_status,assignee,assignee.name,assignee_section,assignee_section.name,assignee_status,completed,completed_at,completed_by,completed_by.name,created_at,created_by,custom_fields,custom_fields.asana_created_field,custom_fields.created_by,custom_fields.created_by.name,custom_fields.currency_code,custom_fields.custom_label,custom_fields.custom_label_position,custom_fields.date_value,custom_fields.date_value.date,custom_fields.date_value.date_time,custom_fields.default_access_level,custom_fields.description,custom_fields.display_value,custom_fields.enabled,custom_fields.enum_options,custom_fields.enum_options.color,custom_fields.enum_options.enabled,custom_fields.enum_options.name,custom_fields.enum_value,custom_fields.enum_value.color,custom_fields.enum_value.enabled,custom_fields.enum_value.name,custom_fields.format,custom_fields.has_notifications_enabled,custom_fields.id_prefix,custom_fields.input_restrictions,custom_fields.is_formula_field,custom_fields.is_global_to_workspace,custom_fields.is_value_read_only,custom_fields.multi_enum_values,custom_fields.multi_enum_values.color,custom_fields.multi_enum_values.enabled,custom_fields.multi_enum_values.name,custom_fields.name,custom_fields.number_value,custom_fields.people_value,custom_fields.people_value.name,custom_fields.precision,custom_fields.privacy_setting,custom_fields.reference_value,custom_fields.reference_value.name,custom_fields.representation_type,custom_fields.resource_subtype,custom_fields.text_value,custom_fields.type,custom_type,custom_type.name,custom_type_status_option,custom_type_status_option.name,dependencies,dependents,due_at,due_on,external,external.data,followers,followers.name,hearted,hearts,hearts.user,hearts.user.name,html_notes,is_rendered_as_separator,liked,likes,likes.user,likes.user.name,memberships,memberships.project,memberships.project.name,memberships.section,memberships.section.name,modified_at,name,notes,num_hearts,num_likes,num_subtasks,offset,parent,parent.created_by,parent.name,parent.resource_subtype,path,permalink_url,projects,projects.name,resource_subtype,start_at,start_on,tags,tags.name,uri,workspace,workspace.name", # list[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. } try: # Get tasks from a tag api_response = tasks_api_instance.get_tasks_for_tag(tag_gid, opts) for data in api_response: pprint(data) except ApiException as e: print("Exception when calling TasksApi->get_tasks_for_tag: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.tasks.get_tasks_for_tag(tag_gid, {'param': 'value', 'param': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- tasks->getTasksForTag($tag_gid, array('param' => 'value', 'param' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.tasks.get_tasks_for_tag(tag_gid: 'tag_gid', param: "value", param: "value", options: {pretty: true}) /user_task_lists/{user_task_list_gid}/tasks: parameters: - $ref: '#/components/parameters/completed_since' - $ref: '#/components/parameters/user_task_list_path_gid' - $ref: '#/components/parameters/pretty' - $ref: '#/components/parameters/limit' - $ref: '#/components/parameters/offset' get: summary: Get tasks from a user task list description: |- Required scope: tasks:read Returns the compact list of tasks in a user’s My Tasks list. *Note: Access control is enforced for this endpoint as with all Asana API endpoints, meaning a user’s private tasks will be filtered out if the API-authenticated user does not have access to them.* *Note: Both complete and incomplete tasks are returned by default unless they are filtered out (for example, setting `completed_since=now` will return only incomplete tasks, which is the default view for “My Tasks” in Asana.)* tags: - Tasks operationId: getTasksForUserTaskList parameters: - name: opt_fields in: query description: 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. required: false example: - actual_time_minutes - approval_status - assigned_by - assigned_by.name - assignee - assignee.name - assignee_section - assignee_section.name - assignee_status - completed - completed_at - completed_by - completed_by.name - created_at - created_by - custom_fields - custom_fields.asana_created_field - custom_fields.created_by - custom_fields.created_by.name - custom_fields.currency_code - custom_fields.custom_label - custom_fields.custom_label_position - custom_fields.date_value - custom_fields.date_value.date - custom_fields.date_value.date_time - custom_fields.default_access_level - custom_fields.description - custom_fields.display_value - custom_fields.enabled - custom_fields.enum_options - custom_fields.enum_options.color - custom_fields.enum_options.enabled - custom_fields.enum_options.name - custom_fields.enum_value - custom_fields.enum_value.color - custom_fields.enum_value.enabled - custom_fields.enum_value.name - custom_fields.format - custom_fields.has_notifications_enabled - custom_fields.id_prefix - custom_fields.input_restrictions - custom_fields.is_formula_field - custom_fields.is_global_to_workspace - custom_fields.is_value_read_only - custom_fields.multi_enum_values - custom_fields.multi_enum_values.color - custom_fields.multi_enum_values.enabled - custom_fields.multi_enum_values.name - custom_fields.name - custom_fields.number_value - custom_fields.people_value - custom_fields.people_value.name - custom_fields.precision - custom_fields.privacy_setting - custom_fields.reference_value - custom_fields.reference_value.name - custom_fields.representation_type - custom_fields.resource_subtype - custom_fields.text_value - custom_fields.type - custom_type - custom_type.name - custom_type_status_option - custom_type_status_option.name - dependencies - dependents - due_at - due_on - external - external.data - followers - followers.name - hearted - hearts - hearts.user - hearts.user.name - html_notes - is_rendered_as_separator - liked - likes - likes.user - likes.user.name - memberships - memberships.project - memberships.project.name - memberships.section - memberships.section.name - modified_at - name - notes - num_hearts - num_likes - num_subtasks - offset - parent - parent.created_by - parent.name - parent.resource_subtype - path - permalink_url - projects - projects.name - resource_subtype - start_at - start_on - tags - tags.name - uri - workspace - workspace.name schema: type: array items: type: string enum: - actual_time_minutes - approval_status - assigned_by - assigned_by.name - assignee - assignee.name - assignee_section - assignee_section.name - assignee_status - completed - completed_at - completed_by - completed_by.name - created_at - created_by - custom_fields - custom_fields.asana_created_field - custom_fields.created_by - custom_fields.created_by.name - custom_fields.currency_code - custom_fields.custom_label - custom_fields.custom_label_position - custom_fields.date_value - custom_fields.date_value.date - custom_fields.date_value.date_time - custom_fields.default_access_level - custom_fields.description - custom_fields.display_value - custom_fields.enabled - custom_fields.enum_options - custom_fields.enum_options.color - custom_fields.enum_options.enabled - custom_fields.enum_options.name - custom_fields.enum_value - custom_fields.enum_value.color - custom_fields.enum_value.enabled - custom_fields.enum_value.name - custom_fields.format - custom_fields.has_notifications_enabled - custom_fields.id_prefix - custom_fields.input_restrictions - custom_fields.is_formula_field - custom_fields.is_global_to_workspace - custom_fields.is_value_read_only - custom_fields.multi_enum_values - custom_fields.multi_enum_values.color - custom_fields.multi_enum_values.enabled - custom_fields.multi_enum_values.name - custom_fields.name - custom_fields.number_value - custom_fields.people_value - custom_fields.people_value.name - custom_fields.precision - custom_fields.privacy_setting - custom_fields.reference_value - custom_fields.reference_value.name - custom_fields.representation_type - custom_fields.resource_subtype - custom_fields.text_value - custom_fields.type - custom_type - custom_type.name - custom_type_status_option - custom_type_status_option.name - dependencies - dependents - due_at - due_on - external - external.data - followers - followers.name - hearted - hearts - hearts.user - hearts.user.name - html_notes - is_rendered_as_separator - liked - likes - likes.user - likes.user.name - memberships - memberships.project - memberships.project.name - memberships.section - memberships.section.name - modified_at - name - notes - num_hearts - num_likes - num_subtasks - offset - parent - parent.created_by - parent.name - parent.resource_subtype - path - permalink_url - projects - projects.name - resource_subtype - start_at - start_on - tags - tags.name - uri - workspace - workspace.name style: form explode: false responses: 200: description: >- Successfully retrieved the user task list's tasks. content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/TaskCompact' next_page: $ref: '#/components/schemas/NextPage' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: - tasks:read x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); List result = client.tasks.getTasksForUserTaskList(userTaskListGid, completedSince) .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let tasksApiInstance = new Asana.TasksApi(client); let user_task_list_gid = "12345"; // String | Globally unique identifier for the user task list. let opts = { 'completed_since': "2012-02-22T02:06:58.158Z", 'limit': 50, 'offset': "eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9", 'opt_fields': "actual_time_minutes,approval_status,assigned_by,assigned_by.name,assignee,assignee.name,assignee_section,assignee_section.name,assignee_status,completed,completed_at,completed_by,completed_by.name,created_at,created_by,custom_fields,custom_fields.asana_created_field,custom_fields.created_by,custom_fields.created_by.name,custom_fields.currency_code,custom_fields.custom_label,custom_fields.custom_label_position,custom_fields.date_value,custom_fields.date_value.date,custom_fields.date_value.date_time,custom_fields.default_access_level,custom_fields.description,custom_fields.display_value,custom_fields.enabled,custom_fields.enum_options,custom_fields.enum_options.color,custom_fields.enum_options.enabled,custom_fields.enum_options.name,custom_fields.enum_value,custom_fields.enum_value.color,custom_fields.enum_value.enabled,custom_fields.enum_value.name,custom_fields.format,custom_fields.has_notifications_enabled,custom_fields.id_prefix,custom_fields.input_restrictions,custom_fields.is_formula_field,custom_fields.is_global_to_workspace,custom_fields.is_value_read_only,custom_fields.multi_enum_values,custom_fields.multi_enum_values.color,custom_fields.multi_enum_values.enabled,custom_fields.multi_enum_values.name,custom_fields.name,custom_fields.number_value,custom_fields.people_value,custom_fields.people_value.name,custom_fields.precision,custom_fields.privacy_setting,custom_fields.reference_value,custom_fields.reference_value.name,custom_fields.representation_type,custom_fields.resource_subtype,custom_fields.text_value,custom_fields.type,custom_type,custom_type.name,custom_type_status_option,custom_type_status_option.name,dependencies,dependents,due_at,due_on,external,external.data,followers,followers.name,hearted,hearts,hearts.user,hearts.user.name,html_notes,is_rendered_as_separator,liked,likes,likes.user,likes.user.name,memberships,memberships.project,memberships.project.name,memberships.section,memberships.section.name,modified_at,name,notes,num_hearts,num_likes,num_subtasks,offset,parent,parent.created_by,parent.name,parent.resource_subtype,path,permalink_url,projects,projects.name,resource_subtype,start_at,start_on,tags,tags.name,uri,workspace,workspace.name" }; tasksApiInstance.getTasksForUserTaskList(user_task_list_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.tasks.getTasksForUserTaskList(userTaskListGid, {param: "value", param: "value", opt_pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class tasks_api_instance = asana.TasksApi(api_client) user_task_list_gid = "12345" # str | Globally unique identifier for the user task list. opts = { 'completed_since': "2012-02-22T02:06:58.158Z", # str | Only return tasks that are either incomplete or that have been completed since this time. Accepts a date-time string or the keyword *now*. 'limit': 50, # int | Results per page. The number of objects to return per page. The value must be between 1 and 100. 'offset': "eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9", # 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': "actual_time_minutes,approval_status,assignee,assignee.name,assignee_section,assignee_section.name,assignee_status,completed,completed_at,completed_by,completed_by.name,created_at,created_by,custom_fields,custom_fields.asana_created_field,custom_fields.created_by,custom_fields.created_by.name,custom_fields.currency_code,custom_fields.custom_label,custom_fields.custom_label_position,custom_fields.date_value,custom_fields.date_value.date,custom_fields.date_value.date_time,custom_fields.default_access_level,custom_fields.description,custom_fields.display_value,custom_fields.enabled,custom_fields.enum_options,custom_fields.enum_options.color,custom_fields.enum_options.enabled,custom_fields.enum_options.name,custom_fields.enum_value,custom_fields.enum_value.color,custom_fields.enum_value.enabled,custom_fields.enum_value.name,custom_fields.format,custom_fields.has_notifications_enabled,custom_fields.id_prefix,custom_fields.input_restrictions,custom_fields.is_formula_field,custom_fields.is_global_to_workspace,custom_fields.is_value_read_only,custom_fields.multi_enum_values,custom_fields.multi_enum_values.color,custom_fields.multi_enum_values.enabled,custom_fields.multi_enum_values.name,custom_fields.name,custom_fields.number_value,custom_fields.people_value,custom_fields.people_value.name,custom_fields.precision,custom_fields.privacy_setting,custom_fields.reference_value,custom_fields.reference_value.name,custom_fields.representation_type,custom_fields.resource_subtype,custom_fields.text_value,custom_fields.type,custom_type,custom_type.name,custom_type_status_option,custom_type_status_option.name,dependencies,dependents,due_at,due_on,external,external.data,followers,followers.name,hearted,hearts,hearts.user,hearts.user.name,html_notes,is_rendered_as_separator,liked,likes,likes.user,likes.user.name,memberships,memberships.project,memberships.project.name,memberships.section,memberships.section.name,modified_at,name,notes,num_hearts,num_likes,num_subtasks,offset,parent,parent.created_by,parent.name,parent.resource_subtype,path,permalink_url,projects,projects.name,resource_subtype,start_at,start_on,tags,tags.name,uri,workspace,workspace.name", # list[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. } try: # Get tasks from a user task list api_response = tasks_api_instance.get_tasks_for_user_task_list(user_task_list_gid, opts) for data in api_response: pprint(data) except ApiException as e: print("Exception when calling TasksApi->get_tasks_for_user_task_list: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.tasks.get_tasks_for_user_task_list(user_task_list_gid, {'param': 'value', 'param': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- tasks->getTasksForUserTaskList($user_task_list_gid, array('param' => 'value', 'param' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.tasks.get_tasks_for_user_task_list(user_task_list_gid: 'user_task_list_gid', param: "value", param: "value", options: {pretty: true}) /tasks/{task_gid}/subtasks: parameters: - $ref: '#/components/parameters/task_path_gid' - $ref: '#/components/parameters/pretty' get: summary: Get subtasks from a task description: |- Required scope: tasks:read Returns a compact representation of all of the subtasks of a task. tags: - Tasks operationId: getSubtasksForTask parameters: - $ref: '#/components/parameters/limit' - $ref: '#/components/parameters/offset' - name: opt_fields in: query description: 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. required: false example: - actual_time_minutes - approval_status - assigned_by - assigned_by.name - assignee - assignee.name - assignee_section - assignee_section.name - assignee_status - completed - completed_at - completed_by - completed_by.name - created_at - created_by - custom_fields - custom_fields.asana_created_field - custom_fields.created_by - custom_fields.created_by.name - custom_fields.currency_code - custom_fields.custom_label - custom_fields.custom_label_position - custom_fields.date_value - custom_fields.date_value.date - custom_fields.date_value.date_time - custom_fields.default_access_level - custom_fields.description - custom_fields.display_value - custom_fields.enabled - custom_fields.enum_options - custom_fields.enum_options.color - custom_fields.enum_options.enabled - custom_fields.enum_options.name - custom_fields.enum_value - custom_fields.enum_value.color - custom_fields.enum_value.enabled - custom_fields.enum_value.name - custom_fields.format - custom_fields.has_notifications_enabled - custom_fields.id_prefix - custom_fields.input_restrictions - custom_fields.is_formula_field - custom_fields.is_global_to_workspace - custom_fields.is_value_read_only - custom_fields.multi_enum_values - custom_fields.multi_enum_values.color - custom_fields.multi_enum_values.enabled - custom_fields.multi_enum_values.name - custom_fields.name - custom_fields.number_value - custom_fields.people_value - custom_fields.people_value.name - custom_fields.precision - custom_fields.privacy_setting - custom_fields.reference_value - custom_fields.reference_value.name - custom_fields.representation_type - custom_fields.resource_subtype - custom_fields.text_value - custom_fields.type - custom_type - custom_type.name - custom_type_status_option - custom_type_status_option.name - dependencies - dependents - due_at - due_on - external - external.data - followers - followers.name - hearted - hearts - hearts.user - hearts.user.name - html_notes - is_rendered_as_separator - liked - likes - likes.user - likes.user.name - memberships - memberships.project - memberships.project.name - memberships.section - memberships.section.name - modified_at - name - notes - num_hearts - num_likes - num_subtasks - offset - parent - parent.created_by - parent.name - parent.resource_subtype - path - permalink_url - projects - projects.name - resource_subtype - start_at - start_on - tags - tags.name - uri - workspace - workspace.name schema: type: array items: type: string enum: - actual_time_minutes - approval_status - assigned_by - assigned_by.name - assignee - assignee.name - assignee_section - assignee_section.name - assignee_status - completed - completed_at - completed_by - completed_by.name - created_at - created_by - custom_fields - custom_fields.asana_created_field - custom_fields.created_by - custom_fields.created_by.name - custom_fields.currency_code - custom_fields.custom_label - custom_fields.custom_label_position - custom_fields.date_value - custom_fields.date_value.date - custom_fields.date_value.date_time - custom_fields.default_access_level - custom_fields.description - custom_fields.display_value - custom_fields.enabled - custom_fields.enum_options - custom_fields.enum_options.color - custom_fields.enum_options.enabled - custom_fields.enum_options.name - custom_fields.enum_value - custom_fields.enum_value.color - custom_fields.enum_value.enabled - custom_fields.enum_value.name - custom_fields.format - custom_fields.has_notifications_enabled - custom_fields.id_prefix - custom_fields.input_restrictions - custom_fields.is_formula_field - custom_fields.is_global_to_workspace - custom_fields.is_value_read_only - custom_fields.multi_enum_values - custom_fields.multi_enum_values.color - custom_fields.multi_enum_values.enabled - custom_fields.multi_enum_values.name - custom_fields.name - custom_fields.number_value - custom_fields.people_value - custom_fields.people_value.name - custom_fields.precision - custom_fields.privacy_setting - custom_fields.reference_value - custom_fields.reference_value.name - custom_fields.representation_type - custom_fields.resource_subtype - custom_fields.text_value - custom_fields.type - custom_type - custom_type.name - custom_type_status_option - custom_type_status_option.name - dependencies - dependents - due_at - due_on - external - external.data - followers - followers.name - hearted - hearts - hearts.user - hearts.user.name - html_notes - is_rendered_as_separator - liked - likes - likes.user - likes.user.name - memberships - memberships.project - memberships.project.name - memberships.section - memberships.section.name - modified_at - name - notes - num_hearts - num_likes - num_subtasks - offset - parent - parent.created_by - parent.name - parent.resource_subtype - path - permalink_url - projects - projects.name - resource_subtype - start_at - start_on - tags - tags.name - uri - workspace - workspace.name style: form explode: false responses: 200: description: Successfully retrieved the specified task's subtasks. content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/TaskCompact' next_page: $ref: '#/components/schemas/NextPage' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: - tasks:read x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); List result = client.tasks.getSubtasksForTask(taskGid) .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let tasksApiInstance = new Asana.TasksApi(client); let task_gid = "321654"; // String | The task to operate on. let opts = { 'limit': 50, 'offset': "eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9", 'opt_fields': "actual_time_minutes,approval_status,assigned_by,assigned_by.name,assignee,assignee.name,assignee_section,assignee_section.name,assignee_status,completed,completed_at,completed_by,completed_by.name,created_at,created_by,custom_fields,custom_fields.asana_created_field,custom_fields.created_by,custom_fields.created_by.name,custom_fields.currency_code,custom_fields.custom_label,custom_fields.custom_label_position,custom_fields.date_value,custom_fields.date_value.date,custom_fields.date_value.date_time,custom_fields.default_access_level,custom_fields.description,custom_fields.display_value,custom_fields.enabled,custom_fields.enum_options,custom_fields.enum_options.color,custom_fields.enum_options.enabled,custom_fields.enum_options.name,custom_fields.enum_value,custom_fields.enum_value.color,custom_fields.enum_value.enabled,custom_fields.enum_value.name,custom_fields.format,custom_fields.has_notifications_enabled,custom_fields.id_prefix,custom_fields.input_restrictions,custom_fields.is_formula_field,custom_fields.is_global_to_workspace,custom_fields.is_value_read_only,custom_fields.multi_enum_values,custom_fields.multi_enum_values.color,custom_fields.multi_enum_values.enabled,custom_fields.multi_enum_values.name,custom_fields.name,custom_fields.number_value,custom_fields.people_value,custom_fields.people_value.name,custom_fields.precision,custom_fields.privacy_setting,custom_fields.reference_value,custom_fields.reference_value.name,custom_fields.representation_type,custom_fields.resource_subtype,custom_fields.text_value,custom_fields.type,custom_type,custom_type.name,custom_type_status_option,custom_type_status_option.name,dependencies,dependents,due_at,due_on,external,external.data,followers,followers.name,hearted,hearts,hearts.user,hearts.user.name,html_notes,is_rendered_as_separator,liked,likes,likes.user,likes.user.name,memberships,memberships.project,memberships.project.name,memberships.section,memberships.section.name,modified_at,name,notes,num_hearts,num_likes,num_subtasks,offset,parent,parent.created_by,parent.name,parent.resource_subtype,path,permalink_url,projects,projects.name,resource_subtype,start_at,start_on,tags,tags.name,uri,workspace,workspace.name" }; tasksApiInstance.getSubtasksForTask(task_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.tasks.getSubtasksForTask(taskGid, {param: "value", param: "value", opt_pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class tasks_api_instance = asana.TasksApi(api_client) task_gid = "321654" # str | The task to operate on. opts = { 'limit': 50, # int | Results per page. The number of objects to return per page. The value must be between 1 and 100. 'offset': "eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9", # 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': "actual_time_minutes,approval_status,assignee,assignee.name,assignee_section,assignee_section.name,assignee_status,completed,completed_at,completed_by,completed_by.name,created_at,created_by,custom_fields,custom_fields.asana_created_field,custom_fields.created_by,custom_fields.created_by.name,custom_fields.currency_code,custom_fields.custom_label,custom_fields.custom_label_position,custom_fields.date_value,custom_fields.date_value.date,custom_fields.date_value.date_time,custom_fields.default_access_level,custom_fields.description,custom_fields.display_value,custom_fields.enabled,custom_fields.enum_options,custom_fields.enum_options.color,custom_fields.enum_options.enabled,custom_fields.enum_options.name,custom_fields.enum_value,custom_fields.enum_value.color,custom_fields.enum_value.enabled,custom_fields.enum_value.name,custom_fields.format,custom_fields.has_notifications_enabled,custom_fields.id_prefix,custom_fields.input_restrictions,custom_fields.is_formula_field,custom_fields.is_global_to_workspace,custom_fields.is_value_read_only,custom_fields.multi_enum_values,custom_fields.multi_enum_values.color,custom_fields.multi_enum_values.enabled,custom_fields.multi_enum_values.name,custom_fields.name,custom_fields.number_value,custom_fields.people_value,custom_fields.people_value.name,custom_fields.precision,custom_fields.privacy_setting,custom_fields.reference_value,custom_fields.reference_value.name,custom_fields.representation_type,custom_fields.resource_subtype,custom_fields.text_value,custom_fields.type,custom_type,custom_type.name,custom_type_status_option,custom_type_status_option.name,dependencies,dependents,due_at,due_on,external,external.data,followers,followers.name,hearted,hearts,hearts.user,hearts.user.name,html_notes,is_rendered_as_separator,liked,likes,likes.user,likes.user.name,memberships,memberships.project,memberships.project.name,memberships.section,memberships.section.name,modified_at,name,notes,num_hearts,num_likes,num_subtasks,offset,parent,parent.created_by,parent.name,parent.resource_subtype,path,permalink_url,projects,projects.name,resource_subtype,start_at,start_on,tags,tags.name,uri,workspace,workspace.name", # list[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. } try: # Get subtasks from a task api_response = tasks_api_instance.get_subtasks_for_task(task_gid, opts) for data in api_response: pprint(data) except ApiException as e: print("Exception when calling TasksApi->get_subtasks_for_task: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.tasks.get_subtasks_for_task(task_gid, {'param': 'value', 'param': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- tasks->getSubtasksForTask($task_gid, array('param' => 'value', 'param' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.tasks.get_subtasks_for_task(task_gid: 'task_gid', param: "value", param: "value", options: {pretty: true}) post: summary: Create a subtask description: |- Required scope: tasks:write Creates a new subtask and adds it to the parent task. Returns the full record for the newly created subtask. tags: - Tasks operationId: createSubtaskForTask parameters: - name: opt_fields in: query description: 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. required: false example: - actual_time_minutes - approval_status - assigned_by - assigned_by.name - assignee - assignee.name - assignee_section - assignee_section.name - assignee_status - completed - completed_at - completed_by - completed_by.name - created_at - created_by - custom_fields - custom_fields.asana_created_field - custom_fields.created_by - custom_fields.created_by.name - custom_fields.currency_code - custom_fields.custom_label - custom_fields.custom_label_position - custom_fields.date_value - custom_fields.date_value.date - custom_fields.date_value.date_time - custom_fields.default_access_level - custom_fields.description - custom_fields.display_value - custom_fields.enabled - custom_fields.enum_options - custom_fields.enum_options.color - custom_fields.enum_options.enabled - custom_fields.enum_options.name - custom_fields.enum_value - custom_fields.enum_value.color - custom_fields.enum_value.enabled - custom_fields.enum_value.name - custom_fields.format - custom_fields.has_notifications_enabled - custom_fields.id_prefix - custom_fields.input_restrictions - custom_fields.is_formula_field - custom_fields.is_global_to_workspace - custom_fields.is_value_read_only - custom_fields.multi_enum_values - custom_fields.multi_enum_values.color - custom_fields.multi_enum_values.enabled - custom_fields.multi_enum_values.name - custom_fields.name - custom_fields.number_value - custom_fields.people_value - custom_fields.people_value.name - custom_fields.precision - custom_fields.privacy_setting - custom_fields.reference_value - custom_fields.reference_value.name - custom_fields.representation_type - custom_fields.resource_subtype - custom_fields.text_value - custom_fields.type - custom_type - custom_type.name - custom_type_status_option - custom_type_status_option.name - dependencies - dependents - due_at - due_on - external - external.data - followers - followers.name - hearted - hearts - hearts.user - hearts.user.name - html_notes - is_rendered_as_separator - liked - likes - likes.user - likes.user.name - memberships - memberships.project - memberships.project.name - memberships.section - memberships.section.name - modified_at - name - notes - num_hearts - num_likes - num_subtasks - parent - parent.created_by - parent.name - parent.resource_subtype - permalink_url - projects - projects.name - resource_subtype - start_at - start_on - tags - tags.name - workspace - workspace.name schema: type: array items: type: string enum: - actual_time_minutes - approval_status - assigned_by - assigned_by.name - assignee - assignee.name - assignee_section - assignee_section.name - assignee_status - completed - completed_at - completed_by - completed_by.name - created_at - created_by - custom_fields - custom_fields.asana_created_field - custom_fields.created_by - custom_fields.created_by.name - custom_fields.currency_code - custom_fields.custom_label - custom_fields.custom_label_position - custom_fields.date_value - custom_fields.date_value.date - custom_fields.date_value.date_time - custom_fields.default_access_level - custom_fields.description - custom_fields.display_value - custom_fields.enabled - custom_fields.enum_options - custom_fields.enum_options.color - custom_fields.enum_options.enabled - custom_fields.enum_options.name - custom_fields.enum_value - custom_fields.enum_value.color - custom_fields.enum_value.enabled - custom_fields.enum_value.name - custom_fields.format - custom_fields.has_notifications_enabled - custom_fields.id_prefix - custom_fields.input_restrictions - custom_fields.is_formula_field - custom_fields.is_global_to_workspace - custom_fields.is_value_read_only - custom_fields.multi_enum_values - custom_fields.multi_enum_values.color - custom_fields.multi_enum_values.enabled - custom_fields.multi_enum_values.name - custom_fields.name - custom_fields.number_value - custom_fields.people_value - custom_fields.people_value.name - custom_fields.precision - custom_fields.privacy_setting - custom_fields.reference_value - custom_fields.reference_value.name - custom_fields.representation_type - custom_fields.resource_subtype - custom_fields.text_value - custom_fields.type - custom_type - custom_type.name - custom_type_status_option - custom_type_status_option.name - dependencies - dependents - due_at - due_on - external - external.data - followers - followers.name - hearted - hearts - hearts.user - hearts.user.name - html_notes - is_rendered_as_separator - liked - likes - likes.user - likes.user.name - memberships - memberships.project - memberships.project.name - memberships.section - memberships.section.name - modified_at - name - notes - num_hearts - num_likes - num_subtasks - parent - parent.created_by - parent.name - parent.resource_subtype - permalink_url - projects - projects.name - resource_subtype - start_at - start_on - tags - tags.name - workspace - workspace.name style: form explode: false requestBody: description: The new subtask to create. required: true content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/TaskRequest' responses: 201: description: Successfully created the specified subtask. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/TaskResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: - tasks:write x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); Task result = client.tasks.createSubtaskForTask(taskGid) .data("field", "value") .data("field", "value") .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let tasksApiInstance = new Asana.TasksApi(client); let body = {"data": {"": "", "": "",}}; // Object | The new subtask to create. let task_gid = "321654"; // String | The task to operate on. let opts = { 'opt_fields': "actual_time_minutes,approval_status,assigned_by,assigned_by.name,assignee,assignee.name,assignee_section,assignee_section.name,assignee_status,completed,completed_at,completed_by,completed_by.name,created_at,created_by,custom_fields,custom_fields.asana_created_field,custom_fields.created_by,custom_fields.created_by.name,custom_fields.currency_code,custom_fields.custom_label,custom_fields.custom_label_position,custom_fields.date_value,custom_fields.date_value.date,custom_fields.date_value.date_time,custom_fields.default_access_level,custom_fields.description,custom_fields.display_value,custom_fields.enabled,custom_fields.enum_options,custom_fields.enum_options.color,custom_fields.enum_options.enabled,custom_fields.enum_options.name,custom_fields.enum_value,custom_fields.enum_value.color,custom_fields.enum_value.enabled,custom_fields.enum_value.name,custom_fields.format,custom_fields.has_notifications_enabled,custom_fields.id_prefix,custom_fields.input_restrictions,custom_fields.is_formula_field,custom_fields.is_global_to_workspace,custom_fields.is_value_read_only,custom_fields.multi_enum_values,custom_fields.multi_enum_values.color,custom_fields.multi_enum_values.enabled,custom_fields.multi_enum_values.name,custom_fields.name,custom_fields.number_value,custom_fields.people_value,custom_fields.people_value.name,custom_fields.precision,custom_fields.privacy_setting,custom_fields.reference_value,custom_fields.reference_value.name,custom_fields.representation_type,custom_fields.resource_subtype,custom_fields.text_value,custom_fields.type,custom_type,custom_type.name,custom_type_status_option,custom_type_status_option.name,dependencies,dependents,due_at,due_on,external,external.data,followers,followers.name,hearted,hearts,hearts.user,hearts.user.name,html_notes,is_rendered_as_separator,liked,likes,likes.user,likes.user.name,memberships,memberships.project,memberships.project.name,memberships.section,memberships.section.name,modified_at,name,notes,num_hearts,num_likes,num_subtasks,parent,parent.created_by,parent.name,parent.resource_subtype,permalink_url,projects,projects.name,resource_subtype,start_at,start_on,tags,tags.name,workspace,workspace.name" }; tasksApiInstance.createSubtaskForTask(body, task_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.tasks.createSubtaskForTask(taskGid, {field: "value", field: "value", pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class tasks_api_instance = asana.TasksApi(api_client) body = {"data": {"": "", "": "",}} # dict | The new subtask to create. task_gid = "321654" # str | The task to operate on. opts = { 'opt_fields': "actual_time_minutes,approval_status,assignee,assignee.name,assignee_section,assignee_section.name,assignee_status,completed,completed_at,completed_by,completed_by.name,created_at,created_by,custom_fields,custom_fields.asana_created_field,custom_fields.created_by,custom_fields.created_by.name,custom_fields.currency_code,custom_fields.custom_label,custom_fields.custom_label_position,custom_fields.date_value,custom_fields.date_value.date,custom_fields.date_value.date_time,custom_fields.default_access_level,custom_fields.description,custom_fields.display_value,custom_fields.enabled,custom_fields.enum_options,custom_fields.enum_options.color,custom_fields.enum_options.enabled,custom_fields.enum_options.name,custom_fields.enum_value,custom_fields.enum_value.color,custom_fields.enum_value.enabled,custom_fields.enum_value.name,custom_fields.format,custom_fields.has_notifications_enabled,custom_fields.id_prefix,custom_fields.input_restrictions,custom_fields.is_formula_field,custom_fields.is_global_to_workspace,custom_fields.is_value_read_only,custom_fields.multi_enum_values,custom_fields.multi_enum_values.color,custom_fields.multi_enum_values.enabled,custom_fields.multi_enum_values.name,custom_fields.name,custom_fields.number_value,custom_fields.people_value,custom_fields.people_value.name,custom_fields.precision,custom_fields.privacy_setting,custom_fields.reference_value,custom_fields.reference_value.name,custom_fields.representation_type,custom_fields.resource_subtype,custom_fields.text_value,custom_fields.type,custom_type,custom_type.name,custom_type_status_option,custom_type_status_option.name,dependencies,dependents,due_at,due_on,external,external.data,followers,followers.name,hearted,hearts,hearts.user,hearts.user.name,html_notes,is_rendered_as_separator,liked,likes,likes.user,likes.user.name,memberships,memberships.project,memberships.project.name,memberships.section,memberships.section.name,modified_at,name,notes,num_hearts,num_likes,num_subtasks,parent,parent.created_by,parent.name,parent.resource_subtype,permalink_url,projects,projects.name,resource_subtype,start_at,start_on,tags,tags.name,workspace,workspace.name", # list[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. } try: # Create a subtask api_response = tasks_api_instance.create_subtask_for_task(body, task_gid, opts) pprint(api_response) except ApiException as e: print("Exception when calling TasksApi->create_subtask_for_task: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.tasks.create_subtask_for_task(task_gid, {'field': 'value', 'field': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- tasks->createSubtaskForTask($task_gid, array('field' => 'value', 'field' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.tasks.create_subtask_for_task(task_gid: 'task_gid', field: "value", field: "value", options: {pretty: true}) /tasks/{task_gid}/setParent: parameters: - $ref: '#/components/parameters/task_path_gid' - $ref: '#/components/parameters/pretty' post: summary: Set the parent of a task description: |- Required scope: tasks:write Updates the parent of a given task. This endpoint can be used to make a task a subtask of another task, or to remove its existing parent. When using `insert_before` and `insert_after`, at most one of those two options can be specified, and they must already be subtasks of the parent. Returns the complete, updated record of the affected [task](/reference/tasks#/task). tags: - Tasks operationId: setParentForTask parameters: - name: opt_fields in: query description: 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. required: false example: - actual_time_minutes - approval_status - assigned_by - assigned_by.name - assignee - assignee.name - assignee_section - assignee_section.name - assignee_status - completed - completed_at - completed_by - completed_by.name - created_at - created_by - custom_fields - custom_fields.asana_created_field - custom_fields.created_by - custom_fields.created_by.name - custom_fields.currency_code - custom_fields.custom_label - custom_fields.custom_label_position - custom_fields.date_value - custom_fields.date_value.date - custom_fields.date_value.date_time - custom_fields.default_access_level - custom_fields.description - custom_fields.display_value - custom_fields.enabled - custom_fields.enum_options - custom_fields.enum_options.color - custom_fields.enum_options.enabled - custom_fields.enum_options.name - custom_fields.enum_value - custom_fields.enum_value.color - custom_fields.enum_value.enabled - custom_fields.enum_value.name - custom_fields.format - custom_fields.has_notifications_enabled - custom_fields.id_prefix - custom_fields.input_restrictions - custom_fields.is_formula_field - custom_fields.is_global_to_workspace - custom_fields.is_value_read_only - custom_fields.multi_enum_values - custom_fields.multi_enum_values.color - custom_fields.multi_enum_values.enabled - custom_fields.multi_enum_values.name - custom_fields.name - custom_fields.number_value - custom_fields.people_value - custom_fields.people_value.name - custom_fields.precision - custom_fields.privacy_setting - custom_fields.reference_value - custom_fields.reference_value.name - custom_fields.representation_type - custom_fields.resource_subtype - custom_fields.text_value - custom_fields.type - custom_type - custom_type.name - custom_type_status_option - custom_type_status_option.name - dependencies - dependents - due_at - due_on - external - external.data - followers - followers.name - hearted - hearts - hearts.user - hearts.user.name - html_notes - is_rendered_as_separator - liked - likes - likes.user - likes.user.name - memberships - memberships.project - memberships.project.name - memberships.section - memberships.section.name - modified_at - name - notes - num_hearts - num_likes - num_subtasks - parent - parent.created_by - parent.name - parent.resource_subtype - permalink_url - projects - projects.name - resource_subtype - start_at - start_on - tags - tags.name - workspace - workspace.name schema: type: array items: type: string enum: - actual_time_minutes - approval_status - assigned_by - assigned_by.name - assignee - assignee.name - assignee_section - assignee_section.name - assignee_status - completed - completed_at - completed_by - completed_by.name - created_at - created_by - custom_fields - custom_fields.asana_created_field - custom_fields.created_by - custom_fields.created_by.name - custom_fields.currency_code - custom_fields.custom_label - custom_fields.custom_label_position - custom_fields.date_value - custom_fields.date_value.date - custom_fields.date_value.date_time - custom_fields.default_access_level - custom_fields.description - custom_fields.display_value - custom_fields.enabled - custom_fields.enum_options - custom_fields.enum_options.color - custom_fields.enum_options.enabled - custom_fields.enum_options.name - custom_fields.enum_value - custom_fields.enum_value.color - custom_fields.enum_value.enabled - custom_fields.enum_value.name - custom_fields.format - custom_fields.has_notifications_enabled - custom_fields.id_prefix - custom_fields.input_restrictions - custom_fields.is_formula_field - custom_fields.is_global_to_workspace - custom_fields.is_value_read_only - custom_fields.multi_enum_values - custom_fields.multi_enum_values.color - custom_fields.multi_enum_values.enabled - custom_fields.multi_enum_values.name - custom_fields.name - custom_fields.number_value - custom_fields.people_value - custom_fields.people_value.name - custom_fields.precision - custom_fields.privacy_setting - custom_fields.reference_value - custom_fields.reference_value.name - custom_fields.representation_type - custom_fields.resource_subtype - custom_fields.text_value - custom_fields.type - custom_type - custom_type.name - custom_type_status_option - custom_type_status_option.name - dependencies - dependents - due_at - due_on - external - external.data - followers - followers.name - hearted - hearts - hearts.user - hearts.user.name - html_notes - is_rendered_as_separator - liked - likes - likes.user - likes.user.name - memberships - memberships.project - memberships.project.name - memberships.section - memberships.section.name - modified_at - name - notes - num_hearts - num_likes - num_subtasks - parent - parent.created_by - parent.name - parent.resource_subtype - permalink_url - projects - projects.name - resource_subtype - start_at - start_on - tags - tags.name - workspace - workspace.name style: form explode: false requestBody: description: The new parent of the subtask. required: true content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/TaskSetParentRequest' responses: 200: description: Successfully changed the parent of the specified subtask. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/TaskResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: - tasks:write x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); Task result = client.tasks.setParentForTask(taskGid) .data("field", "value") .data("field", "value") .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let tasksApiInstance = new Asana.TasksApi(client); let body = {"data": {"": "", "": "",}}; // Object | The new parent of the subtask. let task_gid = "321654"; // String | The task to operate on. let opts = { 'opt_fields': "actual_time_minutes,approval_status,assigned_by,assigned_by.name,assignee,assignee.name,assignee_section,assignee_section.name,assignee_status,completed,completed_at,completed_by,completed_by.name,created_at,created_by,custom_fields,custom_fields.asana_created_field,custom_fields.created_by,custom_fields.created_by.name,custom_fields.currency_code,custom_fields.custom_label,custom_fields.custom_label_position,custom_fields.date_value,custom_fields.date_value.date,custom_fields.date_value.date_time,custom_fields.default_access_level,custom_fields.description,custom_fields.display_value,custom_fields.enabled,custom_fields.enum_options,custom_fields.enum_options.color,custom_fields.enum_options.enabled,custom_fields.enum_options.name,custom_fields.enum_value,custom_fields.enum_value.color,custom_fields.enum_value.enabled,custom_fields.enum_value.name,custom_fields.format,custom_fields.has_notifications_enabled,custom_fields.id_prefix,custom_fields.input_restrictions,custom_fields.is_formula_field,custom_fields.is_global_to_workspace,custom_fields.is_value_read_only,custom_fields.multi_enum_values,custom_fields.multi_enum_values.color,custom_fields.multi_enum_values.enabled,custom_fields.multi_enum_values.name,custom_fields.name,custom_fields.number_value,custom_fields.people_value,custom_fields.people_value.name,custom_fields.precision,custom_fields.privacy_setting,custom_fields.reference_value,custom_fields.reference_value.name,custom_fields.representation_type,custom_fields.resource_subtype,custom_fields.text_value,custom_fields.type,custom_type,custom_type.name,custom_type_status_option,custom_type_status_option.name,dependencies,dependents,due_at,due_on,external,external.data,followers,followers.name,hearted,hearts,hearts.user,hearts.user.name,html_notes,is_rendered_as_separator,liked,likes,likes.user,likes.user.name,memberships,memberships.project,memberships.project.name,memberships.section,memberships.section.name,modified_at,name,notes,num_hearts,num_likes,num_subtasks,parent,parent.created_by,parent.name,parent.resource_subtype,permalink_url,projects,projects.name,resource_subtype,start_at,start_on,tags,tags.name,workspace,workspace.name" }; tasksApiInstance.setParentForTask(body, task_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.tasks.setParentForTask(taskGid, {field: "value", field: "value", pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class tasks_api_instance = asana.TasksApi(api_client) body = {"data": {"": "", "": "",}} # dict | The new parent of the subtask. task_gid = "321654" # str | The task to operate on. opts = { 'opt_fields': "actual_time_minutes,approval_status,assignee,assignee.name,assignee_section,assignee_section.name,assignee_status,completed,completed_at,completed_by,completed_by.name,created_at,created_by,custom_fields,custom_fields.asana_created_field,custom_fields.created_by,custom_fields.created_by.name,custom_fields.currency_code,custom_fields.custom_label,custom_fields.custom_label_position,custom_fields.date_value,custom_fields.date_value.date,custom_fields.date_value.date_time,custom_fields.default_access_level,custom_fields.description,custom_fields.display_value,custom_fields.enabled,custom_fields.enum_options,custom_fields.enum_options.color,custom_fields.enum_options.enabled,custom_fields.enum_options.name,custom_fields.enum_value,custom_fields.enum_value.color,custom_fields.enum_value.enabled,custom_fields.enum_value.name,custom_fields.format,custom_fields.has_notifications_enabled,custom_fields.id_prefix,custom_fields.input_restrictions,custom_fields.is_formula_field,custom_fields.is_global_to_workspace,custom_fields.is_value_read_only,custom_fields.multi_enum_values,custom_fields.multi_enum_values.color,custom_fields.multi_enum_values.enabled,custom_fields.multi_enum_values.name,custom_fields.name,custom_fields.number_value,custom_fields.people_value,custom_fields.people_value.name,custom_fields.precision,custom_fields.privacy_setting,custom_fields.reference_value,custom_fields.reference_value.name,custom_fields.representation_type,custom_fields.resource_subtype,custom_fields.text_value,custom_fields.type,custom_type,custom_type.name,custom_type_status_option,custom_type_status_option.name,dependencies,dependents,due_at,due_on,external,external.data,followers,followers.name,hearted,hearts,hearts.user,hearts.user.name,html_notes,is_rendered_as_separator,liked,likes,likes.user,likes.user.name,memberships,memberships.project,memberships.project.name,memberships.section,memberships.section.name,modified_at,name,notes,num_hearts,num_likes,num_subtasks,parent,parent.created_by,parent.name,parent.resource_subtype,permalink_url,projects,projects.name,resource_subtype,start_at,start_on,tags,tags.name,workspace,workspace.name", # list[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. } try: # Set the parent of a task api_response = tasks_api_instance.set_parent_for_task(body, task_gid, opts) pprint(api_response) except ApiException as e: print("Exception when calling TasksApi->set_parent_for_task: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.tasks.set_parent_for_task(task_gid, {'field': 'value', 'field': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- tasks->setParentForTask($task_gid, array('field' => 'value', 'field' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.tasks.set_parent_for_task(task_gid: 'task_gid', field: "value", field: "value", options: {pretty: true}) /tasks/{task_gid}/dependencies: parameters: - $ref: '#/components/parameters/task_path_gid' - $ref: '#/components/parameters/pretty' - $ref: '#/components/parameters/limit' - $ref: '#/components/parameters/offset' get: summary: Get dependencies from a task description: |- Required scope: tasks:read Returns the compact representations of all of the dependencies of a task. tags: - Tasks operationId: getDependenciesForTask parameters: - name: opt_fields in: query description: 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. required: false example: - actual_time_minutes - approval_status - assigned_by - assigned_by.name - assignee - assignee.name - assignee_section - assignee_section.name - assignee_status - completed - completed_at - completed_by - completed_by.name - created_at - created_by - custom_fields - custom_fields.asana_created_field - custom_fields.created_by - custom_fields.created_by.name - custom_fields.currency_code - custom_fields.custom_label - custom_fields.custom_label_position - custom_fields.date_value - custom_fields.date_value.date - custom_fields.date_value.date_time - custom_fields.default_access_level - custom_fields.description - custom_fields.display_value - custom_fields.enabled - custom_fields.enum_options - custom_fields.enum_options.color - custom_fields.enum_options.enabled - custom_fields.enum_options.name - custom_fields.enum_value - custom_fields.enum_value.color - custom_fields.enum_value.enabled - custom_fields.enum_value.name - custom_fields.format - custom_fields.has_notifications_enabled - custom_fields.id_prefix - custom_fields.input_restrictions - custom_fields.is_formula_field - custom_fields.is_global_to_workspace - custom_fields.is_value_read_only - custom_fields.multi_enum_values - custom_fields.multi_enum_values.color - custom_fields.multi_enum_values.enabled - custom_fields.multi_enum_values.name - custom_fields.name - custom_fields.number_value - custom_fields.people_value - custom_fields.people_value.name - custom_fields.precision - custom_fields.privacy_setting - custom_fields.reference_value - custom_fields.reference_value.name - custom_fields.representation_type - custom_fields.resource_subtype - custom_fields.text_value - custom_fields.type - custom_type - custom_type.name - custom_type_status_option - custom_type_status_option.name - dependencies - dependents - due_at - due_on - external - external.data - followers - followers.name - hearted - hearts - hearts.user - hearts.user.name - html_notes - is_rendered_as_separator - liked - likes - likes.user - likes.user.name - memberships - memberships.project - memberships.project.name - memberships.section - memberships.section.name - modified_at - name - notes - num_hearts - num_likes - num_subtasks - offset - parent - parent.created_by - parent.name - parent.resource_subtype - path - permalink_url - projects - projects.name - resource_subtype - start_at - start_on - tags - tags.name - uri - workspace - workspace.name schema: type: array items: type: string enum: - actual_time_minutes - approval_status - assigned_by - assigned_by.name - assignee - assignee.name - assignee_section - assignee_section.name - assignee_status - completed - completed_at - completed_by - completed_by.name - created_at - created_by - custom_fields - custom_fields.asana_created_field - custom_fields.created_by - custom_fields.created_by.name - custom_fields.currency_code - custom_fields.custom_label - custom_fields.custom_label_position - custom_fields.date_value - custom_fields.date_value.date - custom_fields.date_value.date_time - custom_fields.default_access_level - custom_fields.description - custom_fields.display_value - custom_fields.enabled - custom_fields.enum_options - custom_fields.enum_options.color - custom_fields.enum_options.enabled - custom_fields.enum_options.name - custom_fields.enum_value - custom_fields.enum_value.color - custom_fields.enum_value.enabled - custom_fields.enum_value.name - custom_fields.format - custom_fields.has_notifications_enabled - custom_fields.id_prefix - custom_fields.input_restrictions - custom_fields.is_formula_field - custom_fields.is_global_to_workspace - custom_fields.is_value_read_only - custom_fields.multi_enum_values - custom_fields.multi_enum_values.color - custom_fields.multi_enum_values.enabled - custom_fields.multi_enum_values.name - custom_fields.name - custom_fields.number_value - custom_fields.people_value - custom_fields.people_value.name - custom_fields.precision - custom_fields.privacy_setting - custom_fields.reference_value - custom_fields.reference_value.name - custom_fields.representation_type - custom_fields.resource_subtype - custom_fields.text_value - custom_fields.type - custom_type - custom_type.name - custom_type_status_option - custom_type_status_option.name - dependencies - dependents - due_at - due_on - external - external.data - followers - followers.name - hearted - hearts - hearts.user - hearts.user.name - html_notes - is_rendered_as_separator - liked - likes - likes.user - likes.user.name - memberships - memberships.project - memberships.project.name - memberships.section - memberships.section.name - modified_at - name - notes - num_hearts - num_likes - num_subtasks - offset - parent - parent.created_by - parent.name - parent.resource_subtype - path - permalink_url - projects - projects.name - resource_subtype - start_at - start_on - tags - tags.name - uri - workspace - workspace.name style: form explode: false responses: 200: description: Successfully retrieved the specified task's dependencies. content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/TaskCompact' next_page: $ref: '#/components/schemas/NextPage' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 402: $ref: '#/components/responses/PaymentRequired' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: - tasks:read x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); List result = client.tasks.getDependenciesForTask(taskGid) .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let tasksApiInstance = new Asana.TasksApi(client); let task_gid = "321654"; // String | The task to operate on. let opts = { 'limit': 50, 'offset': "eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9", 'opt_fields': "actual_time_minutes,approval_status,assigned_by,assigned_by.name,assignee,assignee.name,assignee_section,assignee_section.name,assignee_status,completed,completed_at,completed_by,completed_by.name,created_at,created_by,custom_fields,custom_fields.asana_created_field,custom_fields.created_by,custom_fields.created_by.name,custom_fields.currency_code,custom_fields.custom_label,custom_fields.custom_label_position,custom_fields.date_value,custom_fields.date_value.date,custom_fields.date_value.date_time,custom_fields.default_access_level,custom_fields.description,custom_fields.display_value,custom_fields.enabled,custom_fields.enum_options,custom_fields.enum_options.color,custom_fields.enum_options.enabled,custom_fields.enum_options.name,custom_fields.enum_value,custom_fields.enum_value.color,custom_fields.enum_value.enabled,custom_fields.enum_value.name,custom_fields.format,custom_fields.has_notifications_enabled,custom_fields.id_prefix,custom_fields.input_restrictions,custom_fields.is_formula_field,custom_fields.is_global_to_workspace,custom_fields.is_value_read_only,custom_fields.multi_enum_values,custom_fields.multi_enum_values.color,custom_fields.multi_enum_values.enabled,custom_fields.multi_enum_values.name,custom_fields.name,custom_fields.number_value,custom_fields.people_value,custom_fields.people_value.name,custom_fields.precision,custom_fields.privacy_setting,custom_fields.reference_value,custom_fields.reference_value.name,custom_fields.representation_type,custom_fields.resource_subtype,custom_fields.text_value,custom_fields.type,custom_type,custom_type.name,custom_type_status_option,custom_type_status_option.name,dependencies,dependents,due_at,due_on,external,external.data,followers,followers.name,hearted,hearts,hearts.user,hearts.user.name,html_notes,is_rendered_as_separator,liked,likes,likes.user,likes.user.name,memberships,memberships.project,memberships.project.name,memberships.section,memberships.section.name,modified_at,name,notes,num_hearts,num_likes,num_subtasks,offset,parent,parent.created_by,parent.name,parent.resource_subtype,path,permalink_url,projects,projects.name,resource_subtype,start_at,start_on,tags,tags.name,uri,workspace,workspace.name" }; tasksApiInstance.getDependenciesForTask(task_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.tasks.getDependenciesForTask(taskGid, {param: "value", param: "value", opt_pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class tasks_api_instance = asana.TasksApi(api_client) task_gid = "321654" # str | The task to operate on. opts = { 'limit': 50, # int | Results per page. The number of objects to return per page. The value must be between 1 and 100. 'offset': "eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9", # 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': "actual_time_minutes,approval_status,assignee,assignee.name,assignee_section,assignee_section.name,assignee_status,completed,completed_at,completed_by,completed_by.name,created_at,created_by,custom_fields,custom_fields.asana_created_field,custom_fields.created_by,custom_fields.created_by.name,custom_fields.currency_code,custom_fields.custom_label,custom_fields.custom_label_position,custom_fields.date_value,custom_fields.date_value.date,custom_fields.date_value.date_time,custom_fields.default_access_level,custom_fields.description,custom_fields.display_value,custom_fields.enabled,custom_fields.enum_options,custom_fields.enum_options.color,custom_fields.enum_options.enabled,custom_fields.enum_options.name,custom_fields.enum_value,custom_fields.enum_value.color,custom_fields.enum_value.enabled,custom_fields.enum_value.name,custom_fields.format,custom_fields.has_notifications_enabled,custom_fields.id_prefix,custom_fields.input_restrictions,custom_fields.is_formula_field,custom_fields.is_global_to_workspace,custom_fields.is_value_read_only,custom_fields.multi_enum_values,custom_fields.multi_enum_values.color,custom_fields.multi_enum_values.enabled,custom_fields.multi_enum_values.name,custom_fields.name,custom_fields.number_value,custom_fields.people_value,custom_fields.people_value.name,custom_fields.precision,custom_fields.privacy_setting,custom_fields.reference_value,custom_fields.reference_value.name,custom_fields.representation_type,custom_fields.resource_subtype,custom_fields.text_value,custom_fields.type,custom_type,custom_type.name,custom_type_status_option,custom_type_status_option.name,dependencies,dependents,due_at,due_on,external,external.data,followers,followers.name,hearted,hearts,hearts.user,hearts.user.name,html_notes,is_rendered_as_separator,liked,likes,likes.user,likes.user.name,memberships,memberships.project,memberships.project.name,memberships.section,memberships.section.name,modified_at,name,notes,num_hearts,num_likes,num_subtasks,offset,parent,parent.created_by,parent.name,parent.resource_subtype,path,permalink_url,projects,projects.name,resource_subtype,start_at,start_on,tags,tags.name,uri,workspace,workspace.name", # list[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. } try: # Get dependencies from a task api_response = tasks_api_instance.get_dependencies_for_task(task_gid, opts) for data in api_response: pprint(data) except ApiException as e: print("Exception when calling TasksApi->get_dependencies_for_task: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.tasks.get_dependencies_for_task(task_gid, {'param': 'value', 'param': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- tasks->getDependenciesForTask($task_gid, array('param' => 'value', 'param' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.tasks.get_dependencies_for_task(task_gid: 'task_gid', param: "value", param: "value", options: {pretty: true}) /tasks/{task_gid}/addDependencies: parameters: - $ref: '#/components/parameters/task_path_gid' - $ref: '#/components/parameters/pretty' post: summary: Set dependencies for a task description: |- Required scope: tasks:write Marks a set of tasks as dependencies of this task, if they are not already dependencies. *A task can have at most 30 dependents and dependencies combined*. tags: - Tasks operationId: addDependenciesForTask requestBody: description: The list of tasks to set as dependencies. required: true content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/ModifyDependenciesRequest' responses: 200: description: Successfully set the specified dependencies on the task. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/EmptyResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 402: $ref: '#/components/responses/PaymentRequired' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: - tasks:write x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); JsonElement result = client.tasks.addDependenciesForTask(taskGid) .data("field", "value") .data("field", "value") .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let tasksApiInstance = new Asana.TasksApi(client); let body = {"data": {"": "", "": "",}}; // Object | The list of tasks to set as dependencies. let task_gid = "321654"; // String | The task to operate on. tasksApiInstance.addDependenciesForTask(body, task_gid).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.tasks.addDependenciesForTask(taskGid, {field: "value", field: "value", pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class tasks_api_instance = asana.TasksApi(api_client) body = {"data": {"": "", "": "",}} # dict | The list of tasks to set as dependencies. task_gid = "321654" # str | The task to operate on. try: # Set dependencies for a task api_response = tasks_api_instance.add_dependencies_for_task(body, task_gid) pprint(api_response) except ApiException as e: print("Exception when calling TasksApi->add_dependencies_for_task: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.tasks.add_dependencies_for_task(task_gid, {'field': 'value', 'field': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- tasks->addDependenciesForTask($task_gid, array('field' => 'value', 'field' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.tasks.add_dependencies_for_task(task_gid: 'task_gid', field: "value", field: "value", options: {pretty: true}) /tasks/{task_gid}/removeDependencies: parameters: - $ref: '#/components/parameters/task_path_gid' - $ref: '#/components/parameters/pretty' post: summary: Unlink dependencies from a task description: |- Required scope: tasks:write Unlinks a set of dependencies from this task. tags: - Tasks operationId: removeDependenciesForTask requestBody: description: The list of tasks to unlink as dependencies. required: true content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/ModifyDependenciesRequest' responses: 200: description: >- Successfully unlinked the dependencies from the specified task. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/EmptyResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 402: $ref: '#/components/responses/PaymentRequired' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: - tasks:write x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); JsonElement result = client.tasks.removeDependenciesForTask(taskGid) .data("field", "value") .data("field", "value") .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let tasksApiInstance = new Asana.TasksApi(client); let body = {"data": {"": "", "": "",}}; // Object | The list of tasks to unlink as dependencies. let task_gid = "321654"; // String | The task to operate on. tasksApiInstance.removeDependenciesForTask(body, task_gid).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.tasks.removeDependenciesForTask(taskGid, {field: "value", field: "value", pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class tasks_api_instance = asana.TasksApi(api_client) body = {"data": {"": "", "": "",}} # dict | The list of tasks to unlink as dependencies. task_gid = "321654" # str | The task to operate on. try: # Unlink dependencies from a task api_response = tasks_api_instance.remove_dependencies_for_task(body, task_gid) pprint(api_response) except ApiException as e: print("Exception when calling TasksApi->remove_dependencies_for_task: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.tasks.remove_dependencies_for_task(task_gid, {'field': 'value', 'field': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- tasks->removeDependenciesForTask($task_gid, array('field' => 'value', 'field' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.tasks.remove_dependencies_for_task(task_gid: 'task_gid', field: "value", field: "value", options: {pretty: true}) /tasks/{task_gid}/dependents: parameters: - $ref: '#/components/parameters/task_path_gid' - $ref: '#/components/parameters/pretty' - $ref: '#/components/parameters/limit' - $ref: '#/components/parameters/offset' get: summary: Get dependents from a task description: |- Required scope: tasks:read Returns the compact representations of all of the dependents of a task. tags: - Tasks operationId: getDependentsForTask parameters: - name: opt_fields in: query description: 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. required: false example: - actual_time_minutes - approval_status - assigned_by - assigned_by.name - assignee - assignee.name - assignee_section - assignee_section.name - assignee_status - completed - completed_at - completed_by - completed_by.name - created_at - created_by - custom_fields - custom_fields.asana_created_field - custom_fields.created_by - custom_fields.created_by.name - custom_fields.currency_code - custom_fields.custom_label - custom_fields.custom_label_position - custom_fields.date_value - custom_fields.date_value.date - custom_fields.date_value.date_time - custom_fields.default_access_level - custom_fields.description - custom_fields.display_value - custom_fields.enabled - custom_fields.enum_options - custom_fields.enum_options.color - custom_fields.enum_options.enabled - custom_fields.enum_options.name - custom_fields.enum_value - custom_fields.enum_value.color - custom_fields.enum_value.enabled - custom_fields.enum_value.name - custom_fields.format - custom_fields.has_notifications_enabled - custom_fields.id_prefix - custom_fields.input_restrictions - custom_fields.is_formula_field - custom_fields.is_global_to_workspace - custom_fields.is_value_read_only - custom_fields.multi_enum_values - custom_fields.multi_enum_values.color - custom_fields.multi_enum_values.enabled - custom_fields.multi_enum_values.name - custom_fields.name - custom_fields.number_value - custom_fields.people_value - custom_fields.people_value.name - custom_fields.precision - custom_fields.privacy_setting - custom_fields.reference_value - custom_fields.reference_value.name - custom_fields.representation_type - custom_fields.resource_subtype - custom_fields.text_value - custom_fields.type - custom_type - custom_type.name - custom_type_status_option - custom_type_status_option.name - dependencies - dependents - due_at - due_on - external - external.data - followers - followers.name - hearted - hearts - hearts.user - hearts.user.name - html_notes - is_rendered_as_separator - liked - likes - likes.user - likes.user.name - memberships - memberships.project - memberships.project.name - memberships.section - memberships.section.name - modified_at - name - notes - num_hearts - num_likes - num_subtasks - offset - parent - parent.created_by - parent.name - parent.resource_subtype - path - permalink_url - projects - projects.name - resource_subtype - start_at - start_on - tags - tags.name - uri - workspace - workspace.name schema: type: array items: type: string enum: - actual_time_minutes - approval_status - assigned_by - assigned_by.name - assignee - assignee.name - assignee_section - assignee_section.name - assignee_status - completed - completed_at - completed_by - completed_by.name - created_at - created_by - custom_fields - custom_fields.asana_created_field - custom_fields.created_by - custom_fields.created_by.name - custom_fields.currency_code - custom_fields.custom_label - custom_fields.custom_label_position - custom_fields.date_value - custom_fields.date_value.date - custom_fields.date_value.date_time - custom_fields.default_access_level - custom_fields.description - custom_fields.display_value - custom_fields.enabled - custom_fields.enum_options - custom_fields.enum_options.color - custom_fields.enum_options.enabled - custom_fields.enum_options.name - custom_fields.enum_value - custom_fields.enum_value.color - custom_fields.enum_value.enabled - custom_fields.enum_value.name - custom_fields.format - custom_fields.has_notifications_enabled - custom_fields.id_prefix - custom_fields.input_restrictions - custom_fields.is_formula_field - custom_fields.is_global_to_workspace - custom_fields.is_value_read_only - custom_fields.multi_enum_values - custom_fields.multi_enum_values.color - custom_fields.multi_enum_values.enabled - custom_fields.multi_enum_values.name - custom_fields.name - custom_fields.number_value - custom_fields.people_value - custom_fields.people_value.name - custom_fields.precision - custom_fields.privacy_setting - custom_fields.reference_value - custom_fields.reference_value.name - custom_fields.representation_type - custom_fields.resource_subtype - custom_fields.text_value - custom_fields.type - custom_type - custom_type.name - custom_type_status_option - custom_type_status_option.name - dependencies - dependents - due_at - due_on - external - external.data - followers - followers.name - hearted - hearts - hearts.user - hearts.user.name - html_notes - is_rendered_as_separator - liked - likes - likes.user - likes.user.name - memberships - memberships.project - memberships.project.name - memberships.section - memberships.section.name - modified_at - name - notes - num_hearts - num_likes - num_subtasks - offset - parent - parent.created_by - parent.name - parent.resource_subtype - path - permalink_url - projects - projects.name - resource_subtype - start_at - start_on - tags - tags.name - uri - workspace - workspace.name style: form explode: false responses: 200: description: >- Successfully retrieved the specified dependents of the task. content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/TaskCompact' next_page: $ref: '#/components/schemas/NextPage' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 402: $ref: '#/components/responses/PaymentRequired' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: - tasks:read x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); List result = client.tasks.getDependentsForTask(taskGid) .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let tasksApiInstance = new Asana.TasksApi(client); let task_gid = "321654"; // String | The task to operate on. let opts = { 'limit': 50, 'offset': "eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9", 'opt_fields': "actual_time_minutes,approval_status,assigned_by,assigned_by.name,assignee,assignee.name,assignee_section,assignee_section.name,assignee_status,completed,completed_at,completed_by,completed_by.name,created_at,created_by,custom_fields,custom_fields.asana_created_field,custom_fields.created_by,custom_fields.created_by.name,custom_fields.currency_code,custom_fields.custom_label,custom_fields.custom_label_position,custom_fields.date_value,custom_fields.date_value.date,custom_fields.date_value.date_time,custom_fields.default_access_level,custom_fields.description,custom_fields.display_value,custom_fields.enabled,custom_fields.enum_options,custom_fields.enum_options.color,custom_fields.enum_options.enabled,custom_fields.enum_options.name,custom_fields.enum_value,custom_fields.enum_value.color,custom_fields.enum_value.enabled,custom_fields.enum_value.name,custom_fields.format,custom_fields.has_notifications_enabled,custom_fields.id_prefix,custom_fields.input_restrictions,custom_fields.is_formula_field,custom_fields.is_global_to_workspace,custom_fields.is_value_read_only,custom_fields.multi_enum_values,custom_fields.multi_enum_values.color,custom_fields.multi_enum_values.enabled,custom_fields.multi_enum_values.name,custom_fields.name,custom_fields.number_value,custom_fields.people_value,custom_fields.people_value.name,custom_fields.precision,custom_fields.privacy_setting,custom_fields.reference_value,custom_fields.reference_value.name,custom_fields.representation_type,custom_fields.resource_subtype,custom_fields.text_value,custom_fields.type,custom_type,custom_type.name,custom_type_status_option,custom_type_status_option.name,dependencies,dependents,due_at,due_on,external,external.data,followers,followers.name,hearted,hearts,hearts.user,hearts.user.name,html_notes,is_rendered_as_separator,liked,likes,likes.user,likes.user.name,memberships,memberships.project,memberships.project.name,memberships.section,memberships.section.name,modified_at,name,notes,num_hearts,num_likes,num_subtasks,offset,parent,parent.created_by,parent.name,parent.resource_subtype,path,permalink_url,projects,projects.name,resource_subtype,start_at,start_on,tags,tags.name,uri,workspace,workspace.name" }; tasksApiInstance.getDependentsForTask(task_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.tasks.getDependentsForTask(taskGid, {param: "value", param: "value", opt_pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class tasks_api_instance = asana.TasksApi(api_client) task_gid = "321654" # str | The task to operate on. opts = { 'limit': 50, # int | Results per page. The number of objects to return per page. The value must be between 1 and 100. 'offset': "eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9", # 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': "actual_time_minutes,approval_status,assignee,assignee.name,assignee_section,assignee_section.name,assignee_status,completed,completed_at,completed_by,completed_by.name,created_at,created_by,custom_fields,custom_fields.asana_created_field,custom_fields.created_by,custom_fields.created_by.name,custom_fields.currency_code,custom_fields.custom_label,custom_fields.custom_label_position,custom_fields.date_value,custom_fields.date_value.date,custom_fields.date_value.date_time,custom_fields.default_access_level,custom_fields.description,custom_fields.display_value,custom_fields.enabled,custom_fields.enum_options,custom_fields.enum_options.color,custom_fields.enum_options.enabled,custom_fields.enum_options.name,custom_fields.enum_value,custom_fields.enum_value.color,custom_fields.enum_value.enabled,custom_fields.enum_value.name,custom_fields.format,custom_fields.has_notifications_enabled,custom_fields.id_prefix,custom_fields.input_restrictions,custom_fields.is_formula_field,custom_fields.is_global_to_workspace,custom_fields.is_value_read_only,custom_fields.multi_enum_values,custom_fields.multi_enum_values.color,custom_fields.multi_enum_values.enabled,custom_fields.multi_enum_values.name,custom_fields.name,custom_fields.number_value,custom_fields.people_value,custom_fields.people_value.name,custom_fields.precision,custom_fields.privacy_setting,custom_fields.reference_value,custom_fields.reference_value.name,custom_fields.representation_type,custom_fields.resource_subtype,custom_fields.text_value,custom_fields.type,custom_type,custom_type.name,custom_type_status_option,custom_type_status_option.name,dependencies,dependents,due_at,due_on,external,external.data,followers,followers.name,hearted,hearts,hearts.user,hearts.user.name,html_notes,is_rendered_as_separator,liked,likes,likes.user,likes.user.name,memberships,memberships.project,memberships.project.name,memberships.section,memberships.section.name,modified_at,name,notes,num_hearts,num_likes,num_subtasks,offset,parent,parent.created_by,parent.name,parent.resource_subtype,path,permalink_url,projects,projects.name,resource_subtype,start_at,start_on,tags,tags.name,uri,workspace,workspace.name", # list[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. } try: # Get dependents from a task api_response = tasks_api_instance.get_dependents_for_task(task_gid, opts) for data in api_response: pprint(data) except ApiException as e: print("Exception when calling TasksApi->get_dependents_for_task: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.tasks.get_dependents_for_task(task_gid, {'param': 'value', 'param': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- tasks->getDependentsForTask($task_gid, array('param' => 'value', 'param' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.tasks.get_dependents_for_task(task_gid: 'task_gid', param: "value", param: "value", options: {pretty: true}) /tasks/{task_gid}/addDependents: parameters: - $ref: '#/components/parameters/task_path_gid' - $ref: '#/components/parameters/pretty' post: summary: Set dependents for a task description: |- Required scope: tasks:write Marks a set of tasks as dependents of this task, if they are not already dependents. *A task can have at most 30 dependents and dependencies combined*. tags: - Tasks operationId: addDependentsForTask requestBody: description: The list of tasks to add as dependents. required: true content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/ModifyDependentsRequest' responses: 200: description: >- Successfully set the specified dependents on the given task. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/EmptyResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 402: $ref: '#/components/responses/PaymentRequired' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: - tasks:write x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); JsonElement result = client.tasks.addDependentsForTask(taskGid) .data("field", "value") .data("field", "value") .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let tasksApiInstance = new Asana.TasksApi(client); let body = {"data": {"": "", "": "",}}; // Object | The list of tasks to add as dependents. let task_gid = "321654"; // String | The task to operate on. tasksApiInstance.addDependentsForTask(body, task_gid).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.tasks.addDependentsForTask(taskGid, {field: "value", field: "value", pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class tasks_api_instance = asana.TasksApi(api_client) body = {"data": {"": "", "": "",}} # dict | The list of tasks to add as dependents. task_gid = "321654" # str | The task to operate on. try: # Set dependents for a task api_response = tasks_api_instance.add_dependents_for_task(body, task_gid) pprint(api_response) except ApiException as e: print("Exception when calling TasksApi->add_dependents_for_task: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.tasks.add_dependents_for_task(task_gid, {'field': 'value', 'field': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- tasks->addDependentsForTask($task_gid, array('field' => 'value', 'field' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.tasks.add_dependents_for_task(task_gid: 'task_gid', field: "value", field: "value", options: {pretty: true}) /tasks/{task_gid}/removeDependents: parameters: - $ref: '#/components/parameters/task_path_gid' - $ref: '#/components/parameters/pretty' post: summary: Unlink dependents from a task description: |- Required scope: tasks:write Unlinks a set of dependents from this task. tags: - Tasks operationId: removeDependentsForTask requestBody: description: The list of tasks to remove as dependents. required: true content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/ModifyDependentsRequest' responses: 200: description: >- Successfully unlinked the specified tasks as dependents. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/EmptyResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 402: $ref: '#/components/responses/PaymentRequired' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: - tasks:write x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); JsonElement result = client.tasks.removeDependentsForTask(taskGid) .data("field", "value") .data("field", "value") .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let tasksApiInstance = new Asana.TasksApi(client); let body = {"data": {"": "", "": "",}}; // Object | The list of tasks to remove as dependents. let task_gid = "321654"; // String | The task to operate on. tasksApiInstance.removeDependentsForTask(body, task_gid).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.tasks.removeDependentsForTask(taskGid, {field: "value", field: "value", pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class tasks_api_instance = asana.TasksApi(api_client) body = {"data": {"": "", "": "",}} # dict | The list of tasks to remove as dependents. task_gid = "321654" # str | The task to operate on. try: # Unlink dependents from a task api_response = tasks_api_instance.remove_dependents_for_task(body, task_gid) pprint(api_response) except ApiException as e: print("Exception when calling TasksApi->remove_dependents_for_task: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.tasks.remove_dependents_for_task(task_gid, {'field': 'value', 'field': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- tasks->removeDependentsForTask($task_gid, array('field' => 'value', 'field' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.tasks.remove_dependents_for_task(task_gid: 'task_gid', field: "value", field: "value", options: {pretty: true}) /tasks/{task_gid}/addProject: parameters: - $ref: '#/components/parameters/task_path_gid' - $ref: '#/components/parameters/pretty' post: summary: Add a project to a task description: |- Required scope: tasks:write Adds the task to the specified project, in the optional location specified. If no location arguments are given, the task will be added to the end of the project. `addProject` can also be used to reorder a task within a project or section that already contains it. **Positioning the task:** - Use `insert_before` or `insert_after` with a task ID to position relative to another task - Use `section` alone to add the task to the end of a section - Use `section` with `insert_after: null` to add to the **beginning** of a section - Use `section` with `insert_before: null` to add to the **end** of a section - Use `section` with `insert_before` or `insert_after` (non-null) to position relative to a task within that section. The anchor task must be in the specified section. At most one of `insert_before` or `insert_after` should be specified (both cannot be used together). A task can have at most 20 projects multi-homed to it. Returns an empty data block. tags: - Tasks operationId: addProjectForTask requestBody: description: The project to add the task to. required: true content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/TaskAddProjectRequest' examples: addToEndOfSection: summary: Add task to end of a section value: data: project: '13579' section: '987654' addToBeginningOfSection: summary: Add task to beginning of a section value: data: project: '13579' section: '987654' addAfterTaskInSection: summary: Add task after another task in a section value: data: project: '13579' section: '987654' insert_after: '124816' addBeforeTaskInSection: summary: Add task before another task in a section value: data: project: '13579' section: '987654' insert_before: '432134' responses: 200: description: >- Successfully added the specified project to the task. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/EmptyResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: - tasks:write x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); JsonElement result = client.tasks.addProjectForTask(taskGid) .data("field", "value") .data("field", "value") .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let tasksApiInstance = new Asana.TasksApi(client); let body = {"data": {"": "", "": "",}}; // Object | The project to add the task to. let task_gid = "321654"; // String | The task to operate on. tasksApiInstance.addProjectForTask(body, task_gid).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.tasks.addProjectForTask(taskGid, {field: "value", field: "value", pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class tasks_api_instance = asana.TasksApi(api_client) body = {"data": {"": "", "": "",}} # dict | The project to add the task to. task_gid = "321654" # str | The task to operate on. try: # Add a project to a task api_response = tasks_api_instance.add_project_for_task(body, task_gid) pprint(api_response) except ApiException as e: print("Exception when calling TasksApi->add_project_for_task: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.tasks.add_project_for_task(task_gid, {'field': 'value', 'field': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- tasks->addProjectForTask($task_gid, array('field' => 'value', 'field' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.tasks.add_project_for_task(task_gid: 'task_gid', field: "value", field: "value", options: {pretty: true}) /tasks/{task_gid}/removeProject: parameters: - $ref: '#/components/parameters/task_path_gid' - $ref: '#/components/parameters/pretty' post: summary: Remove a project from a task description: |- Required scope: tasks:write Removes the task from the specified project. The task will still exist in the system, but it will not be in the project anymore. Returns an empty data block. tags: - Tasks operationId: removeProjectForTask requestBody: description: The project to remove the task from. required: true content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/TaskRemoveProjectRequest' responses: 200: description: >- Successfully removed the specified project from the task. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/EmptyResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: - tasks:write x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); JsonElement result = client.tasks.removeProjectForTask(taskGid) .data("field", "value") .data("field", "value") .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let tasksApiInstance = new Asana.TasksApi(client); let body = {"data": {"": "", "": "",}}; // Object | The project to remove the task from. let task_gid = "321654"; // String | The task to operate on. tasksApiInstance.removeProjectForTask(body, task_gid).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.tasks.removeProjectForTask(taskGid, {field: "value", field: "value", pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class tasks_api_instance = asana.TasksApi(api_client) body = {"data": {"": "", "": "",}} # dict | The project to remove the task from. task_gid = "321654" # str | The task to operate on. try: # Remove a project from a task api_response = tasks_api_instance.remove_project_for_task(body, task_gid) pprint(api_response) except ApiException as e: print("Exception when calling TasksApi->remove_project_for_task: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.tasks.remove_project_for_task(task_gid, {'field': 'value', 'field': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- tasks->removeProjectForTask($task_gid, array('field' => 'value', 'field' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.tasks.remove_project_for_task(task_gid: 'task_gid', field: "value", field: "value", options: {pretty: true}) /tasks/{task_gid}/addTag: parameters: - $ref: '#/components/parameters/task_path_gid' - $ref: '#/components/parameters/pretty' post: summary: Add a tag to a task description: |- Required scope: tasks:write Adds a tag to a task. Returns an empty data block. tags: - Tasks operationId: addTagForTask requestBody: description: The tag to add to the task. required: true content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/TaskAddTagRequest' responses: 200: description: >- Successfully added the specified tag to the task. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/EmptyResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: - tasks:write x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); JsonElement result = client.tasks.addTagForTask(taskGid) .data("field", "value") .data("field", "value") .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let tasksApiInstance = new Asana.TasksApi(client); let body = {"data": {"": "", "": "",}}; // Object | The tag to add to the task. let task_gid = "321654"; // String | The task to operate on. tasksApiInstance.addTagForTask(body, task_gid).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.tasks.addTagForTask(taskGid, {field: "value", field: "value", pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class tasks_api_instance = asana.TasksApi(api_client) body = {"data": {"": "", "": "",}} # dict | The tag to add to the task. task_gid = "321654" # str | The task to operate on. try: # Add a tag to a task api_response = tasks_api_instance.add_tag_for_task(body, task_gid) pprint(api_response) except ApiException as e: print("Exception when calling TasksApi->add_tag_for_task: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.tasks.add_tag_for_task(task_gid, {'field': 'value', 'field': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- tasks->addTagForTask($task_gid, array('field' => 'value', 'field' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.tasks.add_tag_for_task(task_gid: 'task_gid', field: "value", field: "value", options: {pretty: true}) /tasks/{task_gid}/removeTag: parameters: - $ref: '#/components/parameters/task_path_gid' - $ref: '#/components/parameters/pretty' post: summary: Remove a tag from a task description: |- Required scope: tasks:write Removes a tag from a task. Returns an empty data block. tags: - Tasks operationId: removeTagForTask requestBody: description: The tag to remove from the task. required: true content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/TaskRemoveTagRequest' responses: 200: description: >- Successfully removed the specified tag from the task. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/EmptyResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: - tasks:write x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); JsonElement result = client.tasks.removeTagForTask(taskGid) .data("field", "value") .data("field", "value") .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let tasksApiInstance = new Asana.TasksApi(client); let body = {"data": {"": "", "": "",}}; // Object | The tag to remove from the task. let task_gid = "321654"; // String | The task to operate on. tasksApiInstance.removeTagForTask(body, task_gid).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.tasks.removeTagForTask(taskGid, {field: "value", field: "value", pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class tasks_api_instance = asana.TasksApi(api_client) body = {"data": {"": "", "": "",}} # dict | The tag to remove from the task. task_gid = "321654" # str | The task to operate on. try: # Remove a tag from a task api_response = tasks_api_instance.remove_tag_for_task(body, task_gid) pprint(api_response) except ApiException as e: print("Exception when calling TasksApi->remove_tag_for_task: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.tasks.remove_tag_for_task(task_gid, {'field': 'value', 'field': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- tasks->removeTagForTask($task_gid, array('field' => 'value', 'field' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.tasks.remove_tag_for_task(task_gid: 'task_gid', field: "value", field: "value", options: {pretty: true}) /tasks/{task_gid}/addFollowers: parameters: - $ref: '#/components/parameters/task_path_gid' - $ref: '#/components/parameters/pretty' post: summary: Add followers to a task description: |- Required scope: tasks:write Adds followers to a task. Returns an empty data block. Each task can be associated with zero or more followers in the system. Requests to add/remove followers, if successful, will return the complete updated task record, described above. tags: - Tasks operationId: addFollowersForTask parameters: - name: opt_fields in: query description: 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. required: false example: - actual_time_minutes - approval_status - assigned_by - assigned_by.name - assignee - assignee.name - assignee_section - assignee_section.name - assignee_status - completed - completed_at - completed_by - completed_by.name - created_at - created_by - custom_fields - custom_fields.asana_created_field - custom_fields.created_by - custom_fields.created_by.name - custom_fields.currency_code - custom_fields.custom_label - custom_fields.custom_label_position - custom_fields.date_value - custom_fields.date_value.date - custom_fields.date_value.date_time - custom_fields.default_access_level - custom_fields.description - custom_fields.display_value - custom_fields.enabled - custom_fields.enum_options - custom_fields.enum_options.color - custom_fields.enum_options.enabled - custom_fields.enum_options.name - custom_fields.enum_value - custom_fields.enum_value.color - custom_fields.enum_value.enabled - custom_fields.enum_value.name - custom_fields.format - custom_fields.has_notifications_enabled - custom_fields.id_prefix - custom_fields.input_restrictions - custom_fields.is_formula_field - custom_fields.is_global_to_workspace - custom_fields.is_value_read_only - custom_fields.multi_enum_values - custom_fields.multi_enum_values.color - custom_fields.multi_enum_values.enabled - custom_fields.multi_enum_values.name - custom_fields.name - custom_fields.number_value - custom_fields.people_value - custom_fields.people_value.name - custom_fields.precision - custom_fields.privacy_setting - custom_fields.reference_value - custom_fields.reference_value.name - custom_fields.representation_type - custom_fields.resource_subtype - custom_fields.text_value - custom_fields.type - custom_type - custom_type.name - custom_type_status_option - custom_type_status_option.name - dependencies - dependents - due_at - due_on - external - external.data - followers - followers.name - hearted - hearts - hearts.user - hearts.user.name - html_notes - is_rendered_as_separator - liked - likes - likes.user - likes.user.name - memberships - memberships.project - memberships.project.name - memberships.section - memberships.section.name - modified_at - name - notes - num_hearts - num_likes - num_subtasks - parent - parent.created_by - parent.name - parent.resource_subtype - permalink_url - projects - projects.name - resource_subtype - start_at - start_on - tags - tags.name - workspace - workspace.name schema: type: array items: type: string enum: - actual_time_minutes - approval_status - assigned_by - assigned_by.name - assignee - assignee.name - assignee_section - assignee_section.name - assignee_status - completed - completed_at - completed_by - completed_by.name - created_at - created_by - custom_fields - custom_fields.asana_created_field - custom_fields.created_by - custom_fields.created_by.name - custom_fields.currency_code - custom_fields.custom_label - custom_fields.custom_label_position - custom_fields.date_value - custom_fields.date_value.date - custom_fields.date_value.date_time - custom_fields.default_access_level - custom_fields.description - custom_fields.display_value - custom_fields.enabled - custom_fields.enum_options - custom_fields.enum_options.color - custom_fields.enum_options.enabled - custom_fields.enum_options.name - custom_fields.enum_value - custom_fields.enum_value.color - custom_fields.enum_value.enabled - custom_fields.enum_value.name - custom_fields.format - custom_fields.has_notifications_enabled - custom_fields.id_prefix - custom_fields.input_restrictions - custom_fields.is_formula_field - custom_fields.is_global_to_workspace - custom_fields.is_value_read_only - custom_fields.multi_enum_values - custom_fields.multi_enum_values.color - custom_fields.multi_enum_values.enabled - custom_fields.multi_enum_values.name - custom_fields.name - custom_fields.number_value - custom_fields.people_value - custom_fields.people_value.name - custom_fields.precision - custom_fields.privacy_setting - custom_fields.reference_value - custom_fields.reference_value.name - custom_fields.representation_type - custom_fields.resource_subtype - custom_fields.text_value - custom_fields.type - custom_type - custom_type.name - custom_type_status_option - custom_type_status_option.name - dependencies - dependents - due_at - due_on - external - external.data - followers - followers.name - hearted - hearts - hearts.user - hearts.user.name - html_notes - is_rendered_as_separator - liked - likes - likes.user - likes.user.name - memberships - memberships.project - memberships.project.name - memberships.section - memberships.section.name - modified_at - name - notes - num_hearts - num_likes - num_subtasks - parent - parent.created_by - parent.name - parent.resource_subtype - permalink_url - projects - projects.name - resource_subtype - start_at - start_on - tags - tags.name - workspace - workspace.name style: form explode: false requestBody: description: The followers to add to the task. required: true content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/TaskAddFollowersRequest' responses: 200: description: >- Successfully added the specified followers to the task. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/TaskResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: - tasks:write x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); Task result = client.tasks.addFollowersForTask(taskGid) .data("field", "value") .data("field", "value") .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let tasksApiInstance = new Asana.TasksApi(client); let body = {"data": {"": "", "": "",}}; // Object | The followers to add to the task. let task_gid = "321654"; // String | The task to operate on. let opts = { 'opt_fields': "actual_time_minutes,approval_status,assigned_by,assigned_by.name,assignee,assignee.name,assignee_section,assignee_section.name,assignee_status,completed,completed_at,completed_by,completed_by.name,created_at,created_by,custom_fields,custom_fields.asana_created_field,custom_fields.created_by,custom_fields.created_by.name,custom_fields.currency_code,custom_fields.custom_label,custom_fields.custom_label_position,custom_fields.date_value,custom_fields.date_value.date,custom_fields.date_value.date_time,custom_fields.default_access_level,custom_fields.description,custom_fields.display_value,custom_fields.enabled,custom_fields.enum_options,custom_fields.enum_options.color,custom_fields.enum_options.enabled,custom_fields.enum_options.name,custom_fields.enum_value,custom_fields.enum_value.color,custom_fields.enum_value.enabled,custom_fields.enum_value.name,custom_fields.format,custom_fields.has_notifications_enabled,custom_fields.id_prefix,custom_fields.input_restrictions,custom_fields.is_formula_field,custom_fields.is_global_to_workspace,custom_fields.is_value_read_only,custom_fields.multi_enum_values,custom_fields.multi_enum_values.color,custom_fields.multi_enum_values.enabled,custom_fields.multi_enum_values.name,custom_fields.name,custom_fields.number_value,custom_fields.people_value,custom_fields.people_value.name,custom_fields.precision,custom_fields.privacy_setting,custom_fields.reference_value,custom_fields.reference_value.name,custom_fields.representation_type,custom_fields.resource_subtype,custom_fields.text_value,custom_fields.type,custom_type,custom_type.name,custom_type_status_option,custom_type_status_option.name,dependencies,dependents,due_at,due_on,external,external.data,followers,followers.name,hearted,hearts,hearts.user,hearts.user.name,html_notes,is_rendered_as_separator,liked,likes,likes.user,likes.user.name,memberships,memberships.project,memberships.project.name,memberships.section,memberships.section.name,modified_at,name,notes,num_hearts,num_likes,num_subtasks,parent,parent.created_by,parent.name,parent.resource_subtype,permalink_url,projects,projects.name,resource_subtype,start_at,start_on,tags,tags.name,workspace,workspace.name" }; tasksApiInstance.addFollowersForTask(body, task_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.tasks.addFollowersForTask(taskGid, {field: "value", field: "value", pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class tasks_api_instance = asana.TasksApi(api_client) body = {"data": {"": "", "": "",}} # dict | The followers to add to the task. task_gid = "321654" # str | The task to operate on. opts = { 'opt_fields': "actual_time_minutes,approval_status,assignee,assignee.name,assignee_section,assignee_section.name,assignee_status,completed,completed_at,completed_by,completed_by.name,created_at,created_by,custom_fields,custom_fields.asana_created_field,custom_fields.created_by,custom_fields.created_by.name,custom_fields.currency_code,custom_fields.custom_label,custom_fields.custom_label_position,custom_fields.date_value,custom_fields.date_value.date,custom_fields.date_value.date_time,custom_fields.default_access_level,custom_fields.description,custom_fields.display_value,custom_fields.enabled,custom_fields.enum_options,custom_fields.enum_options.color,custom_fields.enum_options.enabled,custom_fields.enum_options.name,custom_fields.enum_value,custom_fields.enum_value.color,custom_fields.enum_value.enabled,custom_fields.enum_value.name,custom_fields.format,custom_fields.has_notifications_enabled,custom_fields.id_prefix,custom_fields.input_restrictions,custom_fields.is_formula_field,custom_fields.is_global_to_workspace,custom_fields.is_value_read_only,custom_fields.multi_enum_values,custom_fields.multi_enum_values.color,custom_fields.multi_enum_values.enabled,custom_fields.multi_enum_values.name,custom_fields.name,custom_fields.number_value,custom_fields.people_value,custom_fields.people_value.name,custom_fields.precision,custom_fields.privacy_setting,custom_fields.reference_value,custom_fields.reference_value.name,custom_fields.representation_type,custom_fields.resource_subtype,custom_fields.text_value,custom_fields.type,custom_type,custom_type.name,custom_type_status_option,custom_type_status_option.name,dependencies,dependents,due_at,due_on,external,external.data,followers,followers.name,hearted,hearts,hearts.user,hearts.user.name,html_notes,is_rendered_as_separator,liked,likes,likes.user,likes.user.name,memberships,memberships.project,memberships.project.name,memberships.section,memberships.section.name,modified_at,name,notes,num_hearts,num_likes,num_subtasks,parent,parent.created_by,parent.name,parent.resource_subtype,permalink_url,projects,projects.name,resource_subtype,start_at,start_on,tags,tags.name,workspace,workspace.name", # list[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. } try: # Add followers to a task api_response = tasks_api_instance.add_followers_for_task(body, task_gid, opts) pprint(api_response) except ApiException as e: print("Exception when calling TasksApi->add_followers_for_task: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.tasks.add_followers_for_task(task_gid, {'field': 'value', 'field': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- tasks->addFollowersForTask($task_gid, array('field' => 'value', 'field' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.tasks.add_followers_for_task(task_gid: 'task_gid', field: "value", field: "value", options: {pretty: true}) /tasks/{task_gid}/removeFollowers: parameters: - $ref: '#/components/parameters/task_path_gid' - $ref: '#/components/parameters/pretty' post: summary: Remove followers from a task description: |- Required scope: tasks:write Removes each of the specified followers from the task if they are following. Returns the complete, updated record for the affected task. tags: - Tasks operationId: removeFollowerForTask parameters: - name: opt_fields in: query description: 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. required: false example: - actual_time_minutes - approval_status - assigned_by - assigned_by.name - assignee - assignee.name - assignee_section - assignee_section.name - assignee_status - completed - completed_at - completed_by - completed_by.name - created_at - created_by - custom_fields - custom_fields.asana_created_field - custom_fields.created_by - custom_fields.created_by.name - custom_fields.currency_code - custom_fields.custom_label - custom_fields.custom_label_position - custom_fields.date_value - custom_fields.date_value.date - custom_fields.date_value.date_time - custom_fields.default_access_level - custom_fields.description - custom_fields.display_value - custom_fields.enabled - custom_fields.enum_options - custom_fields.enum_options.color - custom_fields.enum_options.enabled - custom_fields.enum_options.name - custom_fields.enum_value - custom_fields.enum_value.color - custom_fields.enum_value.enabled - custom_fields.enum_value.name - custom_fields.format - custom_fields.has_notifications_enabled - custom_fields.id_prefix - custom_fields.input_restrictions - custom_fields.is_formula_field - custom_fields.is_global_to_workspace - custom_fields.is_value_read_only - custom_fields.multi_enum_values - custom_fields.multi_enum_values.color - custom_fields.multi_enum_values.enabled - custom_fields.multi_enum_values.name - custom_fields.name - custom_fields.number_value - custom_fields.people_value - custom_fields.people_value.name - custom_fields.precision - custom_fields.privacy_setting - custom_fields.reference_value - custom_fields.reference_value.name - custom_fields.representation_type - custom_fields.resource_subtype - custom_fields.text_value - custom_fields.type - custom_type - custom_type.name - custom_type_status_option - custom_type_status_option.name - dependencies - dependents - due_at - due_on - external - external.data - followers - followers.name - hearted - hearts - hearts.user - hearts.user.name - html_notes - is_rendered_as_separator - liked - likes - likes.user - likes.user.name - memberships - memberships.project - memberships.project.name - memberships.section - memberships.section.name - modified_at - name - notes - num_hearts - num_likes - num_subtasks - parent - parent.created_by - parent.name - parent.resource_subtype - permalink_url - projects - projects.name - resource_subtype - start_at - start_on - tags - tags.name - workspace - workspace.name schema: type: array items: type: string enum: - actual_time_minutes - approval_status - assigned_by - assigned_by.name - assignee - assignee.name - assignee_section - assignee_section.name - assignee_status - completed - completed_at - completed_by - completed_by.name - created_at - created_by - custom_fields - custom_fields.asana_created_field - custom_fields.created_by - custom_fields.created_by.name - custom_fields.currency_code - custom_fields.custom_label - custom_fields.custom_label_position - custom_fields.date_value - custom_fields.date_value.date - custom_fields.date_value.date_time - custom_fields.default_access_level - custom_fields.description - custom_fields.display_value - custom_fields.enabled - custom_fields.enum_options - custom_fields.enum_options.color - custom_fields.enum_options.enabled - custom_fields.enum_options.name - custom_fields.enum_value - custom_fields.enum_value.color - custom_fields.enum_value.enabled - custom_fields.enum_value.name - custom_fields.format - custom_fields.has_notifications_enabled - custom_fields.id_prefix - custom_fields.input_restrictions - custom_fields.is_formula_field - custom_fields.is_global_to_workspace - custom_fields.is_value_read_only - custom_fields.multi_enum_values - custom_fields.multi_enum_values.color - custom_fields.multi_enum_values.enabled - custom_fields.multi_enum_values.name - custom_fields.name - custom_fields.number_value - custom_fields.people_value - custom_fields.people_value.name - custom_fields.precision - custom_fields.privacy_setting - custom_fields.reference_value - custom_fields.reference_value.name - custom_fields.representation_type - custom_fields.resource_subtype - custom_fields.text_value - custom_fields.type - custom_type - custom_type.name - custom_type_status_option - custom_type_status_option.name - dependencies - dependents - due_at - due_on - external - external.data - followers - followers.name - hearted - hearts - hearts.user - hearts.user.name - html_notes - is_rendered_as_separator - liked - likes - likes.user - likes.user.name - memberships - memberships.project - memberships.project.name - memberships.section - memberships.section.name - modified_at - name - notes - num_hearts - num_likes - num_subtasks - parent - parent.created_by - parent.name - parent.resource_subtype - permalink_url - projects - projects.name - resource_subtype - start_at - start_on - tags - tags.name - workspace - workspace.name style: form explode: false requestBody: description: The followers to remove from the task. required: true content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/TaskRemoveFollowersRequest' responses: 200: description: >- Successfully removed the specified followers from the task. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/TaskResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: - tasks:write x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); Task result = client.tasks.removeFollowerForTask(taskGid) .data("field", "value") .data("field", "value") .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let tasksApiInstance = new Asana.TasksApi(client); let body = {"data": {"": "", "": "",}}; // Object | The followers to remove from the task. let task_gid = "321654"; // String | The task to operate on. let opts = { 'opt_fields': "actual_time_minutes,approval_status,assigned_by,assigned_by.name,assignee,assignee.name,assignee_section,assignee_section.name,assignee_status,completed,completed_at,completed_by,completed_by.name,created_at,created_by,custom_fields,custom_fields.asana_created_field,custom_fields.created_by,custom_fields.created_by.name,custom_fields.currency_code,custom_fields.custom_label,custom_fields.custom_label_position,custom_fields.date_value,custom_fields.date_value.date,custom_fields.date_value.date_time,custom_fields.default_access_level,custom_fields.description,custom_fields.display_value,custom_fields.enabled,custom_fields.enum_options,custom_fields.enum_options.color,custom_fields.enum_options.enabled,custom_fields.enum_options.name,custom_fields.enum_value,custom_fields.enum_value.color,custom_fields.enum_value.enabled,custom_fields.enum_value.name,custom_fields.format,custom_fields.has_notifications_enabled,custom_fields.id_prefix,custom_fields.input_restrictions,custom_fields.is_formula_field,custom_fields.is_global_to_workspace,custom_fields.is_value_read_only,custom_fields.multi_enum_values,custom_fields.multi_enum_values.color,custom_fields.multi_enum_values.enabled,custom_fields.multi_enum_values.name,custom_fields.name,custom_fields.number_value,custom_fields.people_value,custom_fields.people_value.name,custom_fields.precision,custom_fields.privacy_setting,custom_fields.reference_value,custom_fields.reference_value.name,custom_fields.representation_type,custom_fields.resource_subtype,custom_fields.text_value,custom_fields.type,custom_type,custom_type.name,custom_type_status_option,custom_type_status_option.name,dependencies,dependents,due_at,due_on,external,external.data,followers,followers.name,hearted,hearts,hearts.user,hearts.user.name,html_notes,is_rendered_as_separator,liked,likes,likes.user,likes.user.name,memberships,memberships.project,memberships.project.name,memberships.section,memberships.section.name,modified_at,name,notes,num_hearts,num_likes,num_subtasks,parent,parent.created_by,parent.name,parent.resource_subtype,permalink_url,projects,projects.name,resource_subtype,start_at,start_on,tags,tags.name,workspace,workspace.name" }; tasksApiInstance.removeFollowerForTask(body, task_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.tasks.removeFollowerForTask(taskGid, {field: "value", field: "value", pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class tasks_api_instance = asana.TasksApi(api_client) body = {"data": {"": "", "": "",}} # dict | The followers to remove from the task. task_gid = "321654" # str | The task to operate on. opts = { 'opt_fields': "actual_time_minutes,approval_status,assignee,assignee.name,assignee_section,assignee_section.name,assignee_status,completed,completed_at,completed_by,completed_by.name,created_at,created_by,custom_fields,custom_fields.asana_created_field,custom_fields.created_by,custom_fields.created_by.name,custom_fields.currency_code,custom_fields.custom_label,custom_fields.custom_label_position,custom_fields.date_value,custom_fields.date_value.date,custom_fields.date_value.date_time,custom_fields.default_access_level,custom_fields.description,custom_fields.display_value,custom_fields.enabled,custom_fields.enum_options,custom_fields.enum_options.color,custom_fields.enum_options.enabled,custom_fields.enum_options.name,custom_fields.enum_value,custom_fields.enum_value.color,custom_fields.enum_value.enabled,custom_fields.enum_value.name,custom_fields.format,custom_fields.has_notifications_enabled,custom_fields.id_prefix,custom_fields.input_restrictions,custom_fields.is_formula_field,custom_fields.is_global_to_workspace,custom_fields.is_value_read_only,custom_fields.multi_enum_values,custom_fields.multi_enum_values.color,custom_fields.multi_enum_values.enabled,custom_fields.multi_enum_values.name,custom_fields.name,custom_fields.number_value,custom_fields.people_value,custom_fields.people_value.name,custom_fields.precision,custom_fields.privacy_setting,custom_fields.reference_value,custom_fields.reference_value.name,custom_fields.representation_type,custom_fields.resource_subtype,custom_fields.text_value,custom_fields.type,custom_type,custom_type.name,custom_type_status_option,custom_type_status_option.name,dependencies,dependents,due_at,due_on,external,external.data,followers,followers.name,hearted,hearts,hearts.user,hearts.user.name,html_notes,is_rendered_as_separator,liked,likes,likes.user,likes.user.name,memberships,memberships.project,memberships.project.name,memberships.section,memberships.section.name,modified_at,name,notes,num_hearts,num_likes,num_subtasks,parent,parent.created_by,parent.name,parent.resource_subtype,permalink_url,projects,projects.name,resource_subtype,start_at,start_on,tags,tags.name,workspace,workspace.name", # list[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. } try: # Remove followers from a task api_response = tasks_api_instance.remove_follower_for_task(body, task_gid, opts) pprint(api_response) except ApiException as e: print("Exception when calling TasksApi->remove_follower_for_task: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.tasks.remove_follower_for_task(task_gid, {'field': 'value', 'field': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- tasks->removeFollowerForTask($task_gid, array('field' => 'value', 'field' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.tasks.remove_follower_for_task(task_gid: 'task_gid', field: "value", field: "value", options: {pretty: true}) /workspaces/{workspace_gid}/tasks/custom_id/{custom_id}: parameters: - $ref: '#/components/parameters/workspace_path_gid' - $ref: '#/components/parameters/custom_id' get: summary: Get a task for a given custom ID description: |- Required scope: tasks:read
Field Required Scope
memberships projects:read, project_sections:read
actual_time_minutes time_tracking_entries:read
Returns a task given a custom ID shortcode. tags: - Tasks operationId: getTaskForCustomID security: - personalAccessToken: [] - oauth2: - tasks:read responses: 200: description: >- Successfully retrieved task for given custom ID. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/TaskResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' x-readme: code-samples: - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let tasksApiInstance = new Asana.TasksApi(client); let workspace_gid = "12345"; // String | Globally unique identifier for the workspace or organization. let custom_id = "EX-1"; // String | Generated custom ID for a task. tasksApiInstance.getTaskForCustomID(workspace_gid, custom_id).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.tasks.getTaskForCustomID(workspaceGid, customId, {param: "value", param: "value", opt_pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 /workspaces/{workspace_gid}/tasks/search: parameters: - $ref: '#/components/parameters/workspace_path_gid' - $ref: '#/components/parameters/pretty' - name: text in: query description: >- Performs full-text search on both task name and description schema: type: string example: Bug - name: resource_subtype in: query description: >- Filters results by the task's resource_subtype schema: type: string enum: - default_task - milestone - approval default: milestone - name: assignee.any in: query description: >- Comma-separated list of user identifiers schema: type: string example: 12345,23456,34567 - name: assignee.not in: query description: >- Comma-separated list of user identifiers schema: type: string example: 12345,23456,34567 - name: portfolios.any in: query description: >- Comma-separated list of portfolio IDs schema: type: string example: 12345,23456,34567 - name: projects.any in: query description: >- Comma-separated list of project IDs schema: type: string example: 12345,23456,34567 - name: projects.not in: query description: >- Comma-separated list of project IDs schema: type: string example: 12345,23456,34567 - name: projects.all in: query description: >- Comma-separated list of project IDs schema: type: string example: 12345,23456,34567 - name: sections.any in: query description: >- Comma-separated list of section or column IDs schema: type: string example: 12345,23456,34567 - name: sections.not in: query description: >- Comma-separated list of section or column IDs schema: type: string example: 12345,23456,34567 - name: sections.all in: query description: >- Comma-separated list of section or column IDs schema: type: string example: 12345,23456,34567 - name: tags.any in: query description: >- Comma-separated list of tag IDs schema: type: string example: 12345,23456,34567 - name: tags.not in: query description: >- Comma-separated list of tag IDs schema: type: string example: 12345,23456,34567 - name: tags.all in: query description: >- Comma-separated list of tag IDs schema: type: string example: 12345,23456,34567 - name: teams.any in: query description: >- Comma-separated list of team IDs schema: type: string example: 12345,23456,34567 - name: followers.any in: query description: >- Comma-separated list of user identifiers schema: type: string example: 12345,23456,34567 - name: followers.not in: query description: >- Comma-separated list of user identifiers schema: type: string example: 12345,23456,34567 - name: created_by.any in: query description: >- Comma-separated list of user identifiers schema: type: string example: 12345,23456,34567 - name: created_by.not in: query description: >- Comma-separated list of user identifiers schema: type: string example: 12345,23456,34567 - name: assigned_by.any in: query description: >- Comma-separated list of user identifiers schema: type: string example: 12345,23456,34567 - name: assigned_by.not in: query description: >- Comma-separated list of user identifiers schema: type: string example: 12345,23456,34567 - name: liked_by.not in: query description: >- Comma-separated list of user identifiers schema: type: string example: 12345,23456,34567 - name: commented_on_by.not in: query description: >- Comma-separated list of user identifiers schema: type: string example: 12345,23456,34567 - name: due_on.before in: query description: >- ISO 8601 date string schema: type: string format: date example: '2019-09-15' - name: due_on.after in: query description: >- ISO 8601 date string schema: type: string format: date example: '2019-09-15' - name: due_on in: query description: >- ISO 8601 date string or `null` schema: type: string format: date nullable: true example: '2019-09-15' - name: due_at.before in: query description: >- ISO 8601 datetime string schema: type: string format: date-time example: '2019-04-15T01:01:46.055Z' - name: due_at.after in: query description: >- ISO 8601 datetime string schema: type: string format: date-time example: '2019-04-15T01:01:46.055Z' - name: start_on.before in: query description: >- ISO 8601 date string schema: type: string format: date example: '2019-09-15' - name: start_on.after in: query description: >- ISO 8601 date string schema: type: string format: date example: '2019-09-15' - name: start_on in: query description: >- ISO 8601 date string or `null` schema: type: string format: date nullable: true example: '2019-09-15' - name: created_on.before in: query description: >- ISO 8601 date string schema: type: string format: date example: '2019-09-15' - name: created_on.after in: query description: >- ISO 8601 date string schema: type: string format: date example: '2019-09-15' - name: created_on in: query description: >- ISO 8601 date string or `null` schema: type: string format: date nullable: true example: '2019-09-15' - name: created_at.before in: query description: >- ISO 8601 datetime string schema: type: string format: date-time example: '2019-04-15T01:01:46.055Z' - name: created_at.after in: query description: >- ISO 8601 datetime string schema: type: string format: date-time example: '2019-04-15T01:01:46.055Z' - name: completed_on.before in: query description: >- ISO 8601 date string schema: type: string format: date example: '2019-09-15' - name: completed_on.after in: query description: >- ISO 8601 date string schema: type: string format: date example: '2019-09-15' - name: completed_on in: query description: >- ISO 8601 date string or `null` schema: type: string format: date nullable: true example: '2019-09-15' - name: completed_at.before in: query description: >- ISO 8601 datetime string schema: type: string format: date-time example: '2019-04-15T01:01:46.055Z' - name: completed_at.after in: query description: >- ISO 8601 datetime string schema: type: string format: date-time example: '2019-04-15T01:01:46.055Z' - name: modified_on.before in: query description: >- ISO 8601 date string schema: type: string format: date example: '2019-09-15' - name: modified_on.after in: query description: >- ISO 8601 date string schema: type: string format: date example: '2019-09-15' - name: modified_on in: query description: >- ISO 8601 date string or `null` schema: type: string format: date nullable: true example: '2019-09-15' - name: modified_at.before in: query description: >- ISO 8601 datetime string schema: type: string format: date-time example: '2019-04-15T01:01:46.055Z' - name: modified_at.after in: query description: >- ISO 8601 datetime string schema: type: string format: date-time example: '2019-04-15T01:01:46.055Z' - name: is_blocking in: query description: >- Filter to incomplete tasks with dependents schema: type: boolean example: false - name: is_blocked in: query description: >- Filter to tasks with incomplete dependencies schema: type: boolean example: false - name: has_attachment in: query description: >- Filter to tasks with attachments schema: type: boolean example: false - name: completed in: query description: >- Filter to completed tasks schema: type: boolean example: false - name: is_subtask in: query description: >- Filter to subtasks schema: type: boolean example: false - name: sort_by in: query description: >- One of `due_date`, `created_at`, `completed_at`, `likes`, or `modified_at`, defaults to `modified_at` schema: type: string enum: - due_date - created_at - completed_at - likes - modified_at default: modified_at example: likes - name: sort_ascending in: query description: >- Default `false` schema: type: boolean default: false example: true get: summary: Search tasks in a workspace description: |- Required scope: tasks:read To mirror the functionality of the Asana web app's advanced search feature, the Asana API has a task search endpoint that allows you to build complex filters to find and retrieve the exact data you need. #### Premium access Like the Asana web product's advance search feature, this search endpoint will only be available to premium Asana users. A user is premium if any of the following is true: - The workspace in which the search is being performed is a premium workspace - The user is a member of a premium team inside the workspace Even if a user is only a member of a premium team inside a non-premium workspace, search will allow them to find data anywhere in the workspace, not just inside the premium team. Making a search request using credentials of a non-premium user will result in a `402 Payment Required` error. #### Pagination Search results are not stable; repeating the same query multiple times may return the data in a different order, even if the data do not change. Because of this, the traditional [pagination](https://developers.asana.com/docs/#pagination) available elsewhere in the Asana API is not available here. However, you can paginate manually by sorting the search results by their creation time and then modifying each subsequent query to exclude data you have already seen. Page sizes are limited to a maximum of 100 items, and can be specified by the `limit` query parameter. #### Eventual consistency Changes in Asana (regardless of whether they’re made though the web product or the API) are forwarded to our search infrastructure to be indexed. This process can take between 10 and 60 seconds to complete under normal operation, and longer during some production incidents. Making a change to a task that would alter its presence in a particular search query will not be reflected immediately. This is also true of the advanced search feature in the web product. Because of this delay, the search endpoint is not suited for use cases that require immediate consistency after writes. If you need read-your-write behavior or strongly consistent results, we recommend using [Get multiple tasks](/reference/gettasks) instead. #### Rate limits You may receive a `429 Too Many Requests` response if you hit any of our [rate limits](https://developers.asana.com/docs/#rate-limits). #### Custom field parameters | Parameter name | Custom field type | Accepted type | |---|---|---| | custom_fields.{gid}.is_set | All | Boolean | | custom_fields.{gid}.value | Text | String | | custom_fields.{gid}.value | Number | Number | | custom_fields.{gid}.value | Enum | Enum option ID | | custom_fields.{gid}.starts_with | Text only | String | | custom_fields.{gid}.ends_with | Text only | String | | custom_fields.{gid}.contains | Text only | String | | custom_fields.{gid}.less_than | Number only | Number | | custom_fields.{gid}.greater_than | Number only | Number | For example, if the gid of the custom field is 12345, these query parameter to find tasks where it is set would be `custom_fields.12345.is_set=true`. To match an exact value for an enum custom field, use the gid of the desired enum option and not the name of the enum option: `custom_fields.12345.value=67890`. **Not Supported**: searching for multiple exact matches of a custom field, searching for multi-enum custom field *Note: If you specify `projects.any` and `sections.any`, you will receive tasks for the project **and** tasks for the section. If you're looking for only tasks in a section, omit the `projects.any` from the request.* tags: - Tasks operationId: searchTasksForWorkspace parameters: - name: opt_fields in: query description: 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. required: false example: - actual_time_minutes - approval_status - assigned_by - assigned_by.name - assignee - assignee.name - assignee_section - assignee_section.name - assignee_status - completed - completed_at - completed_by - completed_by.name - created_at - created_by - custom_fields - custom_fields.asana_created_field - custom_fields.created_by - custom_fields.created_by.name - custom_fields.currency_code - custom_fields.custom_label - custom_fields.custom_label_position - custom_fields.date_value - custom_fields.date_value.date - custom_fields.date_value.date_time - custom_fields.default_access_level - custom_fields.description - custom_fields.display_value - custom_fields.enabled - custom_fields.enum_options - custom_fields.enum_options.color - custom_fields.enum_options.enabled - custom_fields.enum_options.name - custom_fields.enum_value - custom_fields.enum_value.color - custom_fields.enum_value.enabled - custom_fields.enum_value.name - custom_fields.format - custom_fields.has_notifications_enabled - custom_fields.id_prefix - custom_fields.input_restrictions - custom_fields.is_formula_field - custom_fields.is_global_to_workspace - custom_fields.is_value_read_only - custom_fields.multi_enum_values - custom_fields.multi_enum_values.color - custom_fields.multi_enum_values.enabled - custom_fields.multi_enum_values.name - custom_fields.name - custom_fields.number_value - custom_fields.people_value - custom_fields.people_value.name - custom_fields.precision - custom_fields.privacy_setting - custom_fields.reference_value - custom_fields.reference_value.name - custom_fields.representation_type - custom_fields.resource_subtype - custom_fields.text_value - custom_fields.type - custom_type - custom_type.name - custom_type_status_option - custom_type_status_option.name - dependencies - dependents - due_at - due_on - external - external.data - followers - followers.name - hearted - hearts - hearts.user - hearts.user.name - html_notes - is_rendered_as_separator - liked - likes - likes.user - likes.user.name - memberships - memberships.project - memberships.project.name - memberships.section - memberships.section.name - modified_at - name - notes - num_hearts - num_likes - num_subtasks - parent - parent.created_by - parent.name - parent.resource_subtype - permalink_url - projects - projects.name - resource_subtype - start_at - start_on - tags - tags.name - workspace - workspace.name schema: type: array items: type: string enum: - actual_time_minutes - approval_status - assigned_by - assigned_by.name - assignee - assignee.name - assignee_section - assignee_section.name - assignee_status - completed - completed_at - completed_by - completed_by.name - created_at - created_by - custom_fields - custom_fields.asana_created_field - custom_fields.created_by - custom_fields.created_by.name - custom_fields.currency_code - custom_fields.custom_label - custom_fields.custom_label_position - custom_fields.date_value - custom_fields.date_value.date - custom_fields.date_value.date_time - custom_fields.default_access_level - custom_fields.description - custom_fields.display_value - custom_fields.enabled - custom_fields.enum_options - custom_fields.enum_options.color - custom_fields.enum_options.enabled - custom_fields.enum_options.name - custom_fields.enum_value - custom_fields.enum_value.color - custom_fields.enum_value.enabled - custom_fields.enum_value.name - custom_fields.format - custom_fields.has_notifications_enabled - custom_fields.id_prefix - custom_fields.input_restrictions - custom_fields.is_formula_field - custom_fields.is_global_to_workspace - custom_fields.is_value_read_only - custom_fields.multi_enum_values - custom_fields.multi_enum_values.color - custom_fields.multi_enum_values.enabled - custom_fields.multi_enum_values.name - custom_fields.name - custom_fields.number_value - custom_fields.people_value - custom_fields.people_value.name - custom_fields.precision - custom_fields.privacy_setting - custom_fields.reference_value - custom_fields.reference_value.name - custom_fields.representation_type - custom_fields.resource_subtype - custom_fields.text_value - custom_fields.type - custom_type - custom_type.name - custom_type_status_option - custom_type_status_option.name - dependencies - dependents - due_at - due_on - external - external.data - followers - followers.name - hearted - hearts - hearts.user - hearts.user.name - html_notes - is_rendered_as_separator - liked - likes - likes.user - likes.user.name - memberships - memberships.project - memberships.project.name - memberships.section - memberships.section.name - modified_at - name - notes - num_hearts - num_likes - num_subtasks - parent - parent.created_by - parent.name - parent.resource_subtype - permalink_url - projects - projects.name - resource_subtype - start_at - start_on - tags - tags.name - workspace - workspace.name style: form explode: false responses: 200: description: >- Successfully retrieved the section's tasks. content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/TaskCompact' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: - tasks:read x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); List result = client.tasks.searchTasksForWorkspace(workspaceGid, sortAscending, sortBy, isSubtask, completed, hasAttachment, isBlocked, isBlocking, modifiedAtAfter, modifiedAtBefore, dueOn, modifiedOn, modifiedOnAfter, modifiedOnBefore, completedAtAfter, completedAtBefore, completedOn, completedOnAfter, completedOnBefore, createdAtAfter, dueOnAfter, createdAtBefore, createdOn, createdOnAfter, createdOnBefore, startOn, startOnAfter, startOnBefore, dueAtAfter, dueAtBefore, dueOnBefore, commentedOnByNot, likedByNot, assignedByNot, assignedByAny, createdByNot, createdByAny, followersNot, teamsAny, tagsAll, tagsNot, tagsAny, sectionsAll, sectionsNot, sectionsAny, projectsAll, projectsNot, projectsAny, portfoliosAny, assigneeNot, assigneeAny, resourceSubtype, text) .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let tasksApiInstance = new Asana.TasksApi(client); let workspace_gid = "12345"; // String | Globally unique identifier for the workspace or organization. let opts = { 'text': "Bug", 'resource_subtype': "milestone", 'assignee.any': "12345,23456,34567", 'assignee.not': "12345,23456,34567", 'portfolios.any': "12345,23456,34567", 'projects.any': "12345,23456,34567", 'projects.not': "12345,23456,34567", 'projects.all': "12345,23456,34567", 'sections.any': "12345,23456,34567", 'sections.not': "12345,23456,34567", 'sections.all': "12345,23456,34567", 'tags.any': "12345,23456,34567", 'tags.not': "12345,23456,34567", 'tags.all': "12345,23456,34567", 'teams.any': "12345,23456,34567", 'followers.any': "12345,23456,34567", 'followers.not': "12345,23456,34567", 'created_by.any': "12345,23456,34567", 'created_by.not': "12345,23456,34567", 'assigned_by.any': "12345,23456,34567", 'assigned_by.not': "12345,23456,34567", 'liked_by.not': "12345,23456,34567", 'commented_on_by.not': "12345,23456,34567", 'due_on.before': "2019-09-15", 'due_on.after': "2019-09-15", 'due_on': "2019-09-15", 'due_at.before': "2019-04-15T01:01:46.055Z", 'due_at.after': "2019-04-15T01:01:46.055Z", 'start_on.before': "2019-09-15", 'start_on.after': "2019-09-15", 'start_on': "2019-09-15", 'created_on.before': "2019-09-15", 'created_on.after': "2019-09-15", 'created_on': "2019-09-15", 'created_at.before': "2019-04-15T01:01:46.055Z", 'created_at.after': "2019-04-15T01:01:46.055Z", 'completed_on.before': "2019-09-15", 'completed_on.after': "2019-09-15", 'completed_on': "2019-09-15", 'completed_at.before': "2019-04-15T01:01:46.055Z", 'completed_at.after': "2019-04-15T01:01:46.055Z", 'modified_on.before': "2019-09-15", 'modified_on.after': "2019-09-15", 'modified_on': "2019-09-15", 'modified_at.before': "2019-04-15T01:01:46.055Z", 'modified_at.after': "2019-04-15T01:01:46.055Z", 'is_blocking': false, 'is_blocked': false, 'has_attachment': false, 'completed': false, 'is_subtask': false, 'sort_by': "modified_at", 'sort_ascending': false, 'opt_fields': "actual_time_minutes,approval_status,assigned_by,assigned_by.name,assignee,assignee.name,assignee_section,assignee_section.name,assignee_status,completed,completed_at,completed_by,completed_by.name,created_at,created_by,custom_fields,custom_fields.asana_created_field,custom_fields.created_by,custom_fields.created_by.name,custom_fields.currency_code,custom_fields.custom_label,custom_fields.custom_label_position,custom_fields.date_value,custom_fields.date_value.date,custom_fields.date_value.date_time,custom_fields.default_access_level,custom_fields.description,custom_fields.display_value,custom_fields.enabled,custom_fields.enum_options,custom_fields.enum_options.color,custom_fields.enum_options.enabled,custom_fields.enum_options.name,custom_fields.enum_value,custom_fields.enum_value.color,custom_fields.enum_value.enabled,custom_fields.enum_value.name,custom_fields.format,custom_fields.has_notifications_enabled,custom_fields.id_prefix,custom_fields.input_restrictions,custom_fields.is_formula_field,custom_fields.is_global_to_workspace,custom_fields.is_value_read_only,custom_fields.multi_enum_values,custom_fields.multi_enum_values.color,custom_fields.multi_enum_values.enabled,custom_fields.multi_enum_values.name,custom_fields.name,custom_fields.number_value,custom_fields.people_value,custom_fields.people_value.name,custom_fields.precision,custom_fields.privacy_setting,custom_fields.reference_value,custom_fields.reference_value.name,custom_fields.representation_type,custom_fields.resource_subtype,custom_fields.text_value,custom_fields.type,custom_type,custom_type.name,custom_type_status_option,custom_type_status_option.name,dependencies,dependents,due_at,due_on,external,external.data,followers,followers.name,hearted,hearts,hearts.user,hearts.user.name,html_notes,is_rendered_as_separator,liked,likes,likes.user,likes.user.name,memberships,memberships.project,memberships.project.name,memberships.section,memberships.section.name,modified_at,name,notes,num_hearts,num_likes,num_subtasks,parent,parent.created_by,parent.name,parent.resource_subtype,permalink_url,projects,projects.name,resource_subtype,start_at,start_on,tags,tags.name,workspace,workspace.name" }; // Custom fields query opts['custom_fields.123.is_set'] = true; // Boolean | Replace "123" with . NOTE: searching for multiple exact matches of a custom field, searching for multi-enum custom field opts['custom_fields.123.value'] = '456'; // String, Number, Enum option ID | Replace "123" with . NOTE: searching for multiple exact matches of a custom field, searching for multi-enum custom field opts['custom_fields.123.starts_with'] = 'start'; // String | Replace "123" with . NOTE: searching for multiple exact matches of a custom field, searching for multi-enum custom field opts['custom_fields.123.ends_with'] = 'end'; // String | Replace "123" with . NOTE: searching for multiple exact matches of a custom field, searching for multi-enum custom field opts['custom_fields.123.contains'] = 'first'; // String | Replace "123" with . NOTE: searching for multiple exact matches of a custom field, searching for multi-enum custom field opts['custom_fields.123.less_than'] = 10; // Number | Replace "123" with . NOTE: searching for multiple exact matches of a custom field, searching for multi-enum custom field opts['custom_fields.123.greater_than'] = 100; // Number | Replace "123" with . NOTE: searching for multiple exact matches of a custom field, searching for multi-enum custom field tasksApiInstance.searchTasksForWorkspace(workspace_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.tasks.searchTasksForWorkspace(workspaceGid, {param: "value", param: "value", opt_pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class tasks_api_instance = asana.TasksApi(api_client) workspace_gid = "12345" # str | Globally unique identifier for the workspace or organization. opts = { 'text': "Bug", # str | Performs full-text search on both task name and description 'resource_subtype': "milestone", # str | Filters results by the task's resource_subtype 'assignee.any': "12345,23456,34567", # str | Comma-separated list of user identifiers 'assignee.not': "12345,23456,34567", # str | Comma-separated list of user identifiers 'portfolios.any': "12345,23456,34567", # str | Comma-separated list of portfolio IDs 'projects.any': "12345,23456,34567", # str | Comma-separated list of project IDs 'projects.not': "12345,23456,34567", # str | Comma-separated list of project IDs 'projects.all': "12345,23456,34567", # str | Comma-separated list of project IDs 'sections.any': "12345,23456,34567", # str | Comma-separated list of section or column IDs 'sections.not': "12345,23456,34567", # str | Comma-separated list of section or column IDs 'sections.all': "12345,23456,34567", # str | Comma-separated list of section or column IDs 'tags.any': "12345,23456,34567", # str | Comma-separated list of tag IDs 'tags.not': "12345,23456,34567", # str | Comma-separated list of tag IDs 'tags.all': "12345,23456,34567", # str | Comma-separated list of tag IDs 'teams.any': "12345,23456,34567", # str | Comma-separated list of team IDs 'followers.any': "12345,23456,34567", # str | Comma-separated list of user identifiers 'followers.not': "12345,23456,34567", # str | Comma-separated list of user identifiers 'created_by.any': "12345,23456,34567", # str | Comma-separated list of user identifiers 'created_by.not': "12345,23456,34567", # str | Comma-separated list of user identifiers 'assigned_by.any': "12345,23456,34567", # str | Comma-separated list of user identifiers 'assigned_by.not': "12345,23456,34567", # str | Comma-separated list of user identifiers 'liked_by.not': "12345,23456,34567", # str | Comma-separated list of user identifiers 'commented_on_by.not': "12345,23456,34567", # str | Comma-separated list of user identifiers 'due_on.before': '2019-09-15', # date | ISO 8601 date string 'due_on.after': '2019-09-15', # date | ISO 8601 date string 'due_on': '2019-09-15', # date | ISO 8601 date string or `null` 'due_at.before': '2019-04-15T01:01:46.055Z', # datetime | ISO 8601 datetime string 'due_at.after': '2019-04-15T01:01:46.055Z', # datetime | ISO 8601 datetime string 'start_on.before': '2019-09-15', # date | ISO 8601 date string 'start_on.after': '2019-09-15', # date | ISO 8601 date string 'start_on': '2019-09-15', # date | ISO 8601 date string or `null` 'created_on.before': '2019-09-15', # date | ISO 8601 date string 'created_on.after': '2019-09-15', # date | ISO 8601 date string 'created_on': '2019-09-15', # date | ISO 8601 date string or `null` 'created_at.before': '2019-04-15T01:01:46.055Z', # datetime | ISO 8601 datetime string 'created_at.after': '2019-04-15T01:01:46.055Z', # datetime | ISO 8601 datetime string 'completed_on.before': '2019-09-15', # date | ISO 8601 date string 'completed_on.after': '2019-09-15', # date | ISO 8601 date string 'completed_on': '2019-09-15', # date | ISO 8601 date string or `null` 'completed_at.before': '2019-04-15T01:01:46.055Z', # datetime | ISO 8601 datetime string 'completed_at.after': '2019-04-15T01:01:46.055Z', # datetime | ISO 8601 datetime string 'modified_on.before': '2019-09-15', # date | ISO 8601 date string 'modified_on.after': '2019-09-15', # date | ISO 8601 date string 'modified_on': '2019-09-15', # date | ISO 8601 date string or `null` 'modified_at.before': '2019-04-15T01:01:46.055Z', # datetime | ISO 8601 datetime string 'modified_at.after': '2019-04-15T01:01:46.055Z', # datetime | ISO 8601 datetime string 'is_blocking': False, # bool | Filter to incomplete tasks with dependents 'is_blocked': False, # bool | Filter to tasks with incomplete dependencies 'has_attachment': False, # bool | Filter to tasks with attachments 'completed': False, # bool | Filter to completed tasks 'is_subtask': False, # bool | Filter to subtasks 'sort_by': "modified_at", # str | One of `due_date`, `created_at`, `completed_at`, `likes`, or `modified_at`, defaults to `modified_at` 'sort_ascending': True, # bool | Default `false` 'opt_fields': "actual_time_minutes,approval_status,assignee,assignee.name,assignee_section,assignee_section.name,assignee_status,completed,completed_at,completed_by,completed_by.name,created_at,created_by,custom_fields,custom_fields.asana_created_field,custom_fields.created_by,custom_fields.created_by.name,custom_fields.currency_code,custom_fields.custom_label,custom_fields.custom_label_position,custom_fields.date_value,custom_fields.date_value.date,custom_fields.date_value.date_time,custom_fields.default_access_level,custom_fields.description,custom_fields.display_value,custom_fields.enabled,custom_fields.enum_options,custom_fields.enum_options.color,custom_fields.enum_options.enabled,custom_fields.enum_options.name,custom_fields.enum_value,custom_fields.enum_value.color,custom_fields.enum_value.enabled,custom_fields.enum_value.name,custom_fields.format,custom_fields.has_notifications_enabled,custom_fields.id_prefix,custom_fields.input_restrictions,custom_fields.is_formula_field,custom_fields.is_global_to_workspace,custom_fields.is_value_read_only,custom_fields.multi_enum_values,custom_fields.multi_enum_values.color,custom_fields.multi_enum_values.enabled,custom_fields.multi_enum_values.name,custom_fields.name,custom_fields.number_value,custom_fields.people_value,custom_fields.people_value.name,custom_fields.precision,custom_fields.privacy_setting,custom_fields.reference_value,custom_fields.reference_value.name,custom_fields.representation_type,custom_fields.resource_subtype,custom_fields.text_value,custom_fields.type,custom_type,custom_type.name,custom_type_status_option,custom_type_status_option.name,dependencies,dependents,due_at,due_on,external,external.data,followers,followers.name,hearted,hearts,hearts.user,hearts.user.name,html_notes,is_rendered_as_separator,liked,likes,likes.user,likes.user.name,memberships,memberships.project,memberships.project.name,memberships.section,memberships.section.name,modified_at,name,notes,num_hearts,num_likes,num_subtasks,parent,parent.created_by,parent.name,parent.resource_subtype,permalink_url,projects,projects.name,resource_subtype,start_at,start_on,tags,tags.name,workspace,workspace.name", # list[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. } opts['custom_fields.123.is_set'] = True # bool | Filiter to tasks with custom field set or unset. Note: searching for multiple exact matches of a custom field, searching for multi-enum custom field opts['custom_fields.123.value'] = '456' # str or bool or Enum option ID | Filter to tasks with custom field that matches the provided value. Note: searching for multiple exact matches of a custom field, searching for multi-enum custom field opts['custom_fields.123.starts_with'] = 'start' # string | Filter to tasks with custom field that starts with provided string. Note: searching for multiple exact matches of a custom field, searching for multi-enum custom field opts['custom_fields.123.ends_with'] = 'end' # string | Filter to tasks with custom field that ends in provided string. Note: searching for multiple exact matches of a custom field, searching for multi-enum custom field opts['custom_fields.123.contains'] = 'first' # string | Filter to tasks with custom field that contains the provided string. Note: searching for multiple exact matches of a custom field, searching for multi-enum custom field opts['custom_fields.123.less_than'] = 10 # number | Filter to tasks with custom field with number value less than the provided number. Note: searching for multiple exact matches of a custom field, searching for multi-enum custom field opts['custom_fields.123.greater_than'] = 100 # number | Filter to tasks with custom field with number value greater than the provided number. Note: searching for multiple exact matches of a custom field, searching for multi-enum custom field try: # Search tasks in a workspace api_response = tasks_api_instance.search_tasks_for_workspace(workspace_gid, opts) for data in api_response: pprint(data) except ApiException as e: print("Exception when calling TasksApi->search_tasks_for_workspace: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.tasks.search_tasks_for_workspace(workspace_gid, {'param': 'value', 'param': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- tasks->searchTasksForWorkspace($workspace_gid, array('param' => 'value', 'param' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.tasks.search_tasks_for_workspace(workspace_gid: 'workspace_gid', param: "value", param: "value", options: {pretty: true}) /team_memberships/{team_membership_gid}: parameters: - $ref: '#/components/parameters/team_membership_path_gid' - $ref: '#/components/parameters/pretty' get: summary: Get a team membership description: |- Required scope: team_memberships:read
Field Required Scope
team teams:read
Returns the complete team membership record for a single team membership. tags: - Team memberships operationId: getTeamMembership parameters: - name: opt_fields in: query description: 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. required: false example: - is_admin - is_guest - is_limited_access - team - team.name - user - user.name schema: type: array items: type: string enum: - is_admin - is_guest - is_limited_access - team - team.name - user - user.name style: form explode: false responses: 200: description: >- Successfully retrieved the requested team membership. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/TeamMembershipResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: - team_memberships:read x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); JsonElement result = client.teammemberships.getTeamMembership(teamMembershipGid) .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let teamMembershipsApiInstance = new Asana.TeamMembershipsApi(client); let team_membership_gid = "724362"; // String | let opts = { 'opt_fields': "is_admin,is_guest,is_limited_access,team,team.name,user,user.name" }; teamMembershipsApiInstance.getTeamMembership(team_membership_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.teammemberships.getTeamMembership(teamMembershipGid, {param: "value", param: "value", opt_pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class team_memberships_api_instance = asana.TeamMembershipsApi(api_client) team_membership_gid = "724362" # str | opts = { 'opt_fields': "is_admin,is_guest,is_limited_access,team,team.name,user,user.name", # list[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. } try: # Get a team membership api_response = team_memberships_api_instance.get_team_membership(team_membership_gid, opts) pprint(api_response) except ApiException as e: print("Exception when calling TeamMembershipsApi->get_team_membership: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.team_memberships.get_team_membership(team_membership_gid, {'param': 'value', 'param': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- teammemberships->getTeamMembership($team_membership_gid, array('param' => 'value', 'param' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.team_memberships.get_team_membership(team_membership_gid: 'team_membership_gid', param: "value", param: "value", options: {pretty: true}) /team_memberships: parameters: - $ref: '#/components/parameters/pretty' - $ref: '#/components/parameters/limit' - $ref: '#/components/parameters/offset' get: summary: Get team memberships description: |- Required scope: team_memberships:read Returns compact team membership records. tags: - Team memberships operationId: getTeamMemberships parameters: - name: team in: query description: Globally unique identifier for the team. schema: type: string example: '159874' - name: user in: query description: >- 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. schema: type: string example: '512241' - name: workspace in: query description: >- Globally unique identifier for the workspace. This parameter must be used with the user parameter. schema: type: string example: '31326' - name: opt_fields in: query description: 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. required: false example: - is_admin - is_guest - is_limited_access - offset - path - team - team.name - uri - user - user.name schema: type: array items: type: string enum: - is_admin - is_guest - is_limited_access - offset - path - team - team.name - uri - user - user.name style: form explode: false responses: 200: description: >- Successfully retrieved the requested team memberships. content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/TeamMembershipCompact' next_page: $ref: '#/components/schemas/NextPage' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: - team_memberships:read x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); List result = client.teammemberships.getTeamMemberships(workspace, user, team) .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let teamMembershipsApiInstance = new Asana.TeamMembershipsApi(client); let opts = { 'limit': 50, 'offset': "eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9", 'team': "159874", 'user': "512241", 'workspace': "31326", 'opt_fields': "is_admin,is_guest,is_limited_access,offset,path,team,team.name,uri,user,user.name" }; teamMembershipsApiInstance.getTeamMemberships(opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.teammemberships.getTeamMemberships({param: "value", param: "value", opt_pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class team_memberships_api_instance = asana.TeamMembershipsApi(api_client) opts = { 'limit': 50, # int | Results per page. The number of objects to return per page. The value must be between 1 and 100. 'offset': "eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9", # 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.* 'team': "159874", # str | Globally unique identifier for the team. 'user': "512241", # 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': "31326", # str | Globally unique identifier for the workspace. This parameter must be used with the user parameter. 'opt_fields': "is_admin,is_guest,is_limited_access,offset,path,team,team.name,uri,user,user.name", # list[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. } try: # Get team memberships api_response = team_memberships_api_instance.get_team_memberships(opts) for data in api_response: pprint(data) except ApiException as e: print("Exception when calling TeamMembershipsApi->get_team_memberships: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.team_memberships.get_team_memberships({'param': 'value', 'param': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- teammemberships->getTeamMemberships(array('param' => 'value', 'param' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.team_memberships.get_team_memberships(param: "value", param: "value", options: {pretty: true}) /teams/{team_gid}/team_memberships: parameters: - $ref: '#/components/parameters/team_path_gid' - $ref: '#/components/parameters/pretty' - $ref: '#/components/parameters/limit' - $ref: '#/components/parameters/offset' get: summary: Get memberships from a team description: |- Required scope: team_memberships:read Returns the compact team memberships for the team. tags: - Team memberships operationId: getTeamMembershipsForTeam parameters: - name: opt_fields in: query description: 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. required: false example: - is_admin - is_guest - is_limited_access - offset - path - team - team.name - uri - user - user.name schema: type: array items: type: string enum: - is_admin - is_guest - is_limited_access - offset - path - team - team.name - uri - user - user.name style: form explode: false responses: 200: description: >- Successfully retrieved the requested team's memberships. content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/TeamMembershipCompact' next_page: $ref: '#/components/schemas/NextPage' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: - team_memberships:read x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); List result = client.teammemberships.getTeamMembershipsForTeam(teamGid) .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let teamMembershipsApiInstance = new Asana.TeamMembershipsApi(client); let team_gid = "159874"; // String | Globally unique identifier for the team. let opts = { 'limit': 50, 'offset': "eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9", 'opt_fields': "is_admin,is_guest,is_limited_access,offset,path,team,team.name,uri,user,user.name" }; teamMembershipsApiInstance.getTeamMembershipsForTeam(team_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.teammemberships.getTeamMembershipsForTeam(teamGid, {param: "value", param: "value", opt_pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class team_memberships_api_instance = asana.TeamMembershipsApi(api_client) team_gid = "159874" # str | Globally unique identifier for the team. opts = { 'limit': 50, # int | Results per page. The number of objects to return per page. The value must be between 1 and 100. 'offset': "eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9", # 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': "is_admin,is_guest,is_limited_access,offset,path,team,team.name,uri,user,user.name", # list[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. } try: # Get memberships from a team api_response = team_memberships_api_instance.get_team_memberships_for_team(team_gid, opts) for data in api_response: pprint(data) except ApiException as e: print("Exception when calling TeamMembershipsApi->get_team_memberships_for_team: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.team_memberships.get_team_memberships_for_team(team_gid, {'param': 'value', 'param': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- teammemberships->getTeamMembershipsForTeam($team_gid, array('param' => 'value', 'param' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.team_memberships.get_team_memberships_for_team(team_gid: 'team_gid', param: "value", param: "value", options: {pretty: true}) /users/{user_gid}/team_memberships: parameters: - $ref: '#/components/parameters/user_path_gid' - $ref: '#/components/parameters/pretty' - $ref: '#/components/parameters/limit' - $ref: '#/components/parameters/offset' get: summary: Get memberships from a user description: |- Required scope: team_memberships:read Returns the compact team membership records for the user. tags: - Team memberships operationId: getTeamMembershipsForUser parameters: - name: workspace description: >- Globally unique identifier for the workspace. in: query schema: type: string example: '31326' required: true - name: opt_fields in: query description: 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. required: false example: - is_admin - is_guest - is_limited_access - offset - path - team - team.name - uri - user - user.name schema: type: array items: type: string enum: - is_admin - is_guest - is_limited_access - offset - path - team - team.name - uri - user - user.name style: form explode: false responses: 200: description: >- Successfully retrieved the requested users's memberships. content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/TeamMembershipCompact' next_page: $ref: '#/components/schemas/NextPage' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: - team_memberships:read x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); List result = client.teammemberships.getTeamMembershipsForUser(userGid, workspace) .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let teamMembershipsApiInstance = new Asana.TeamMembershipsApi(client); let user_gid = "me"; // String | A string identifying a user. This can either be the string \"me\", an email, or the gid of a user. let workspace = "31326"; // String | Globally unique identifier for the workspace. let opts = { 'limit': 50, 'offset': "eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9", 'opt_fields': "is_admin,is_guest,is_limited_access,offset,path,team,team.name,uri,user,user.name" }; teamMembershipsApiInstance.getTeamMembershipsForUser(user_gid, workspace, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.teammemberships.getTeamMembershipsForUser(userGid, {param: "value", param: "value", opt_pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class team_memberships_api_instance = asana.TeamMembershipsApi(api_client) user_gid = "me" # str | A string identifying a user. This can either be the string \"me\", an email, or the gid of a user. workspace = "31326" # str | Globally unique identifier for the workspace. opts = { 'limit': 50, # int | Results per page. The number of objects to return per page. The value must be between 1 and 100. 'offset': "eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9", # 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': "is_admin,is_guest,is_limited_access,offset,path,team,team.name,uri,user,user.name", # list[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. } try: # Get memberships from a user api_response = team_memberships_api_instance.get_team_memberships_for_user(user_gid, workspace, opts) for data in api_response: pprint(data) except ApiException as e: print("Exception when calling TeamMembershipsApi->get_team_memberships_for_user: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.team_memberships.get_team_memberships_for_user(user_gid, {'param': 'value', 'param': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- teammemberships->getTeamMembershipsForUser($user_gid, array('param' => 'value', 'param' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.team_memberships.get_team_memberships_for_user(user_gid: 'user_gid', workspace: ''workspace_example'', param: "value", param: "value", options: {pretty: true}) /teams: parameters: - $ref: '#/components/parameters/pretty' post: summary: Create a team description: |- Creates a team within the current workspace. tags: - Teams operationId: createTeam parameters: - name: opt_fields in: query description: 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. required: false example: - custom_field_settings - custom_field_settings.custom_field - custom_field_settings.custom_field.asana_created_field - custom_field_settings.custom_field.created_by - custom_field_settings.custom_field.created_by.name - custom_field_settings.custom_field.currency_code - custom_field_settings.custom_field.custom_label - custom_field_settings.custom_field.custom_label_position - custom_field_settings.custom_field.date_value - custom_field_settings.custom_field.date_value.date - custom_field_settings.custom_field.date_value.date_time - custom_field_settings.custom_field.default_access_level - custom_field_settings.custom_field.description - custom_field_settings.custom_field.display_value - custom_field_settings.custom_field.enabled - custom_field_settings.custom_field.enum_options - custom_field_settings.custom_field.enum_options.color - custom_field_settings.custom_field.enum_options.enabled - custom_field_settings.custom_field.enum_options.name - custom_field_settings.custom_field.enum_value - custom_field_settings.custom_field.enum_value.color - custom_field_settings.custom_field.enum_value.enabled - custom_field_settings.custom_field.enum_value.name - custom_field_settings.custom_field.format - custom_field_settings.custom_field.has_notifications_enabled - custom_field_settings.custom_field.id_prefix - custom_field_settings.custom_field.input_restrictions - custom_field_settings.custom_field.is_formula_field - custom_field_settings.custom_field.is_global_to_workspace - custom_field_settings.custom_field.is_value_read_only - custom_field_settings.custom_field.multi_enum_values - custom_field_settings.custom_field.multi_enum_values.color - custom_field_settings.custom_field.multi_enum_values.enabled - custom_field_settings.custom_field.multi_enum_values.name - custom_field_settings.custom_field.name - custom_field_settings.custom_field.number_value - custom_field_settings.custom_field.people_value - custom_field_settings.custom_field.people_value.name - custom_field_settings.custom_field.precision - custom_field_settings.custom_field.privacy_setting - custom_field_settings.custom_field.reference_value - custom_field_settings.custom_field.reference_value.name - custom_field_settings.custom_field.representation_type - custom_field_settings.custom_field.resource_subtype - custom_field_settings.custom_field.text_value - custom_field_settings.custom_field.type - custom_field_settings.is_important - custom_field_settings.parent - custom_field_settings.parent.name - custom_field_settings.project - custom_field_settings.project.name - description - edit_team_name_or_description_access_level - edit_team_visibility_or_trash_team_access_level - endorsed - guest_invite_management_access_level - html_description - join_request_management_access_level - member_invite_management_access_level - name - organization - organization.name - permalink_url - team_content_management_access_level - team_member_removal_access_level - visibility schema: type: array items: type: string enum: - custom_field_settings - custom_field_settings.custom_field - custom_field_settings.custom_field.asana_created_field - custom_field_settings.custom_field.created_by - custom_field_settings.custom_field.created_by.name - custom_field_settings.custom_field.currency_code - custom_field_settings.custom_field.custom_label - custom_field_settings.custom_field.custom_label_position - custom_field_settings.custom_field.date_value - custom_field_settings.custom_field.date_value.date - custom_field_settings.custom_field.date_value.date_time - custom_field_settings.custom_field.default_access_level - custom_field_settings.custom_field.description - custom_field_settings.custom_field.display_value - custom_field_settings.custom_field.enabled - custom_field_settings.custom_field.enum_options - custom_field_settings.custom_field.enum_options.color - custom_field_settings.custom_field.enum_options.enabled - custom_field_settings.custom_field.enum_options.name - custom_field_settings.custom_field.enum_value - custom_field_settings.custom_field.enum_value.color - custom_field_settings.custom_field.enum_value.enabled - custom_field_settings.custom_field.enum_value.name - custom_field_settings.custom_field.format - custom_field_settings.custom_field.has_notifications_enabled - custom_field_settings.custom_field.id_prefix - custom_field_settings.custom_field.input_restrictions - custom_field_settings.custom_field.is_formula_field - custom_field_settings.custom_field.is_global_to_workspace - custom_field_settings.custom_field.is_value_read_only - custom_field_settings.custom_field.multi_enum_values - custom_field_settings.custom_field.multi_enum_values.color - custom_field_settings.custom_field.multi_enum_values.enabled - custom_field_settings.custom_field.multi_enum_values.name - custom_field_settings.custom_field.name - custom_field_settings.custom_field.number_value - custom_field_settings.custom_field.people_value - custom_field_settings.custom_field.people_value.name - custom_field_settings.custom_field.precision - custom_field_settings.custom_field.privacy_setting - custom_field_settings.custom_field.reference_value - custom_field_settings.custom_field.reference_value.name - custom_field_settings.custom_field.representation_type - custom_field_settings.custom_field.resource_subtype - custom_field_settings.custom_field.text_value - custom_field_settings.custom_field.type - custom_field_settings.is_important - custom_field_settings.parent - custom_field_settings.parent.name - custom_field_settings.project - custom_field_settings.project.name - description - edit_team_name_or_description_access_level - edit_team_visibility_or_trash_team_access_level - endorsed - guest_invite_management_access_level - html_description - join_request_management_access_level - member_invite_management_access_level - name - organization - organization.name - permalink_url - team_content_management_access_level - team_member_removal_access_level - visibility style: form explode: false requestBody: description: The team to create. required: true content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/TeamRequest' responses: 201: description: Successfully created a new team. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/TeamResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: [] x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); Team result = client.teams.createTeam() .data("field", "value") .data("field", "value") .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let teamsApiInstance = new Asana.TeamsApi(client); let body = {"data": {"": "", "": "",}}; // Object | The team to create. let opts = { 'opt_fields': "custom_field_settings,custom_field_settings.custom_field,custom_field_settings.custom_field.asana_created_field,custom_field_settings.custom_field.created_by,custom_field_settings.custom_field.created_by.name,custom_field_settings.custom_field.currency_code,custom_field_settings.custom_field.custom_label,custom_field_settings.custom_field.custom_label_position,custom_field_settings.custom_field.date_value,custom_field_settings.custom_field.date_value.date,custom_field_settings.custom_field.date_value.date_time,custom_field_settings.custom_field.default_access_level,custom_field_settings.custom_field.description,custom_field_settings.custom_field.display_value,custom_field_settings.custom_field.enabled,custom_field_settings.custom_field.enum_options,custom_field_settings.custom_field.enum_options.color,custom_field_settings.custom_field.enum_options.enabled,custom_field_settings.custom_field.enum_options.name,custom_field_settings.custom_field.enum_value,custom_field_settings.custom_field.enum_value.color,custom_field_settings.custom_field.enum_value.enabled,custom_field_settings.custom_field.enum_value.name,custom_field_settings.custom_field.format,custom_field_settings.custom_field.has_notifications_enabled,custom_field_settings.custom_field.id_prefix,custom_field_settings.custom_field.input_restrictions,custom_field_settings.custom_field.is_formula_field,custom_field_settings.custom_field.is_global_to_workspace,custom_field_settings.custom_field.is_value_read_only,custom_field_settings.custom_field.multi_enum_values,custom_field_settings.custom_field.multi_enum_values.color,custom_field_settings.custom_field.multi_enum_values.enabled,custom_field_settings.custom_field.multi_enum_values.name,custom_field_settings.custom_field.name,custom_field_settings.custom_field.number_value,custom_field_settings.custom_field.people_value,custom_field_settings.custom_field.people_value.name,custom_field_settings.custom_field.precision,custom_field_settings.custom_field.privacy_setting,custom_field_settings.custom_field.reference_value,custom_field_settings.custom_field.reference_value.name,custom_field_settings.custom_field.representation_type,custom_field_settings.custom_field.resource_subtype,custom_field_settings.custom_field.text_value,custom_field_settings.custom_field.type,custom_field_settings.is_important,custom_field_settings.parent,custom_field_settings.parent.name,custom_field_settings.project,custom_field_settings.project.name,description,edit_team_name_or_description_access_level,edit_team_visibility_or_trash_team_access_level,endorsed,guest_invite_management_access_level,html_description,join_request_management_access_level,member_invite_management_access_level,name,organization,organization.name,permalink_url,team_content_management_access_level,team_member_removal_access_level,visibility" }; teamsApiInstance.createTeam(body, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.teams.createTeam({field: "value", field: "value", pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class teams_api_instance = asana.TeamsApi(api_client) body = {"data": {"": "", "": "",}} # dict | The team to create. opts = { 'opt_fields': "description,edit_team_name_or_description_access_level,edit_team_visibility_or_trash_team_access_level,endorsed,guest_invite_management_access_level,html_description,join_request_management_access_level,member_invite_management_access_level,name,organization,organization.name,permalink_url,team_content_management_access_level,team_member_removal_access_level,visibility", # list[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. } try: # Create a team api_response = teams_api_instance.create_team(body, opts) pprint(api_response) except ApiException as e: print("Exception when calling TeamsApi->create_team: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.teams.create_team({'field': 'value', 'field': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- teams->createTeam(array('field' => 'value', 'field' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.teams.create_team(field: "value", field: "value", options: {pretty: true}) /teams/{team_gid}: parameters: - $ref: '#/components/parameters/team_path_gid' - $ref: '#/components/parameters/pretty' get: summary: Get a team description: |- Required scope: teams:read Returns the full record for a single team. tags: - Teams operationId: getTeam parameters: - name: opt_fields in: query description: 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. required: false example: - custom_field_settings - custom_field_settings.custom_field - custom_field_settings.custom_field.asana_created_field - custom_field_settings.custom_field.created_by - custom_field_settings.custom_field.created_by.name - custom_field_settings.custom_field.currency_code - custom_field_settings.custom_field.custom_label - custom_field_settings.custom_field.custom_label_position - custom_field_settings.custom_field.date_value - custom_field_settings.custom_field.date_value.date - custom_field_settings.custom_field.date_value.date_time - custom_field_settings.custom_field.default_access_level - custom_field_settings.custom_field.description - custom_field_settings.custom_field.display_value - custom_field_settings.custom_field.enabled - custom_field_settings.custom_field.enum_options - custom_field_settings.custom_field.enum_options.color - custom_field_settings.custom_field.enum_options.enabled - custom_field_settings.custom_field.enum_options.name - custom_field_settings.custom_field.enum_value - custom_field_settings.custom_field.enum_value.color - custom_field_settings.custom_field.enum_value.enabled - custom_field_settings.custom_field.enum_value.name - custom_field_settings.custom_field.format - custom_field_settings.custom_field.has_notifications_enabled - custom_field_settings.custom_field.id_prefix - custom_field_settings.custom_field.input_restrictions - custom_field_settings.custom_field.is_formula_field - custom_field_settings.custom_field.is_global_to_workspace - custom_field_settings.custom_field.is_value_read_only - custom_field_settings.custom_field.multi_enum_values - custom_field_settings.custom_field.multi_enum_values.color - custom_field_settings.custom_field.multi_enum_values.enabled - custom_field_settings.custom_field.multi_enum_values.name - custom_field_settings.custom_field.name - custom_field_settings.custom_field.number_value - custom_field_settings.custom_field.people_value - custom_field_settings.custom_field.people_value.name - custom_field_settings.custom_field.precision - custom_field_settings.custom_field.privacy_setting - custom_field_settings.custom_field.reference_value - custom_field_settings.custom_field.reference_value.name - custom_field_settings.custom_field.representation_type - custom_field_settings.custom_field.resource_subtype - custom_field_settings.custom_field.text_value - custom_field_settings.custom_field.type - custom_field_settings.is_important - custom_field_settings.parent - custom_field_settings.parent.name - custom_field_settings.project - custom_field_settings.project.name - description - edit_team_name_or_description_access_level - edit_team_visibility_or_trash_team_access_level - endorsed - guest_invite_management_access_level - html_description - join_request_management_access_level - member_invite_management_access_level - name - organization - organization.name - permalink_url - team_content_management_access_level - team_member_removal_access_level - visibility schema: type: array items: type: string enum: - custom_field_settings - custom_field_settings.custom_field - custom_field_settings.custom_field.asana_created_field - custom_field_settings.custom_field.created_by - custom_field_settings.custom_field.created_by.name - custom_field_settings.custom_field.currency_code - custom_field_settings.custom_field.custom_label - custom_field_settings.custom_field.custom_label_position - custom_field_settings.custom_field.date_value - custom_field_settings.custom_field.date_value.date - custom_field_settings.custom_field.date_value.date_time - custom_field_settings.custom_field.default_access_level - custom_field_settings.custom_field.description - custom_field_settings.custom_field.display_value - custom_field_settings.custom_field.enabled - custom_field_settings.custom_field.enum_options - custom_field_settings.custom_field.enum_options.color - custom_field_settings.custom_field.enum_options.enabled - custom_field_settings.custom_field.enum_options.name - custom_field_settings.custom_field.enum_value - custom_field_settings.custom_field.enum_value.color - custom_field_settings.custom_field.enum_value.enabled - custom_field_settings.custom_field.enum_value.name - custom_field_settings.custom_field.format - custom_field_settings.custom_field.has_notifications_enabled - custom_field_settings.custom_field.id_prefix - custom_field_settings.custom_field.input_restrictions - custom_field_settings.custom_field.is_formula_field - custom_field_settings.custom_field.is_global_to_workspace - custom_field_settings.custom_field.is_value_read_only - custom_field_settings.custom_field.multi_enum_values - custom_field_settings.custom_field.multi_enum_values.color - custom_field_settings.custom_field.multi_enum_values.enabled - custom_field_settings.custom_field.multi_enum_values.name - custom_field_settings.custom_field.name - custom_field_settings.custom_field.number_value - custom_field_settings.custom_field.people_value - custom_field_settings.custom_field.people_value.name - custom_field_settings.custom_field.precision - custom_field_settings.custom_field.privacy_setting - custom_field_settings.custom_field.reference_value - custom_field_settings.custom_field.reference_value.name - custom_field_settings.custom_field.representation_type - custom_field_settings.custom_field.resource_subtype - custom_field_settings.custom_field.text_value - custom_field_settings.custom_field.type - custom_field_settings.is_important - custom_field_settings.parent - custom_field_settings.parent.name - custom_field_settings.project - custom_field_settings.project.name - description - edit_team_name_or_description_access_level - edit_team_visibility_or_trash_team_access_level - endorsed - guest_invite_management_access_level - html_description - join_request_management_access_level - member_invite_management_access_level - name - organization - organization.name - permalink_url - team_content_management_access_level - team_member_removal_access_level - visibility style: form explode: false responses: 200: description: Successfully retrieved the record for a single team. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/TeamResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: - teams:read x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); Team result = client.teams.getTeam(teamGid) .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let teamsApiInstance = new Asana.TeamsApi(client); let team_gid = "159874"; // String | Globally unique identifier for the team. let opts = { 'opt_fields': "custom_field_settings,custom_field_settings.custom_field,custom_field_settings.custom_field.asana_created_field,custom_field_settings.custom_field.created_by,custom_field_settings.custom_field.created_by.name,custom_field_settings.custom_field.currency_code,custom_field_settings.custom_field.custom_label,custom_field_settings.custom_field.custom_label_position,custom_field_settings.custom_field.date_value,custom_field_settings.custom_field.date_value.date,custom_field_settings.custom_field.date_value.date_time,custom_field_settings.custom_field.default_access_level,custom_field_settings.custom_field.description,custom_field_settings.custom_field.display_value,custom_field_settings.custom_field.enabled,custom_field_settings.custom_field.enum_options,custom_field_settings.custom_field.enum_options.color,custom_field_settings.custom_field.enum_options.enabled,custom_field_settings.custom_field.enum_options.name,custom_field_settings.custom_field.enum_value,custom_field_settings.custom_field.enum_value.color,custom_field_settings.custom_field.enum_value.enabled,custom_field_settings.custom_field.enum_value.name,custom_field_settings.custom_field.format,custom_field_settings.custom_field.has_notifications_enabled,custom_field_settings.custom_field.id_prefix,custom_field_settings.custom_field.input_restrictions,custom_field_settings.custom_field.is_formula_field,custom_field_settings.custom_field.is_global_to_workspace,custom_field_settings.custom_field.is_value_read_only,custom_field_settings.custom_field.multi_enum_values,custom_field_settings.custom_field.multi_enum_values.color,custom_field_settings.custom_field.multi_enum_values.enabled,custom_field_settings.custom_field.multi_enum_values.name,custom_field_settings.custom_field.name,custom_field_settings.custom_field.number_value,custom_field_settings.custom_field.people_value,custom_field_settings.custom_field.people_value.name,custom_field_settings.custom_field.precision,custom_field_settings.custom_field.privacy_setting,custom_field_settings.custom_field.reference_value,custom_field_settings.custom_field.reference_value.name,custom_field_settings.custom_field.representation_type,custom_field_settings.custom_field.resource_subtype,custom_field_settings.custom_field.text_value,custom_field_settings.custom_field.type,custom_field_settings.is_important,custom_field_settings.parent,custom_field_settings.parent.name,custom_field_settings.project,custom_field_settings.project.name,description,edit_team_name_or_description_access_level,edit_team_visibility_or_trash_team_access_level,endorsed,guest_invite_management_access_level,html_description,join_request_management_access_level,member_invite_management_access_level,name,organization,organization.name,permalink_url,team_content_management_access_level,team_member_removal_access_level,visibility" }; teamsApiInstance.getTeam(team_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.teams.getTeam(teamGid, {param: "value", param: "value", opt_pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class teams_api_instance = asana.TeamsApi(api_client) team_gid = "159874" # str | Globally unique identifier for the team. opts = { 'opt_fields': "description,edit_team_name_or_description_access_level,edit_team_visibility_or_trash_team_access_level,endorsed,guest_invite_management_access_level,html_description,join_request_management_access_level,member_invite_management_access_level,name,organization,organization.name,permalink_url,team_content_management_access_level,team_member_removal_access_level,visibility", # list[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. } try: # Get a team api_response = teams_api_instance.get_team(team_gid, opts) pprint(api_response) except ApiException as e: print("Exception when calling TeamsApi->get_team: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.teams.get_team(team_gid, {'param': 'value', 'param': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- teams->getTeam($team_gid, array('param' => 'value', 'param' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.teams.get_team(team_gid: 'team_gid', param: "value", param: "value", options: {pretty: true}) put: summary: Update a team description: |- Updates a team within the current workspace. tags: - Teams operationId: updateTeam parameters: - name: opt_fields in: query description: 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. required: false example: - custom_field_settings - custom_field_settings.custom_field - custom_field_settings.custom_field.asana_created_field - custom_field_settings.custom_field.created_by - custom_field_settings.custom_field.created_by.name - custom_field_settings.custom_field.currency_code - custom_field_settings.custom_field.custom_label - custom_field_settings.custom_field.custom_label_position - custom_field_settings.custom_field.date_value - custom_field_settings.custom_field.date_value.date - custom_field_settings.custom_field.date_value.date_time - custom_field_settings.custom_field.default_access_level - custom_field_settings.custom_field.description - custom_field_settings.custom_field.display_value - custom_field_settings.custom_field.enabled - custom_field_settings.custom_field.enum_options - custom_field_settings.custom_field.enum_options.color - custom_field_settings.custom_field.enum_options.enabled - custom_field_settings.custom_field.enum_options.name - custom_field_settings.custom_field.enum_value - custom_field_settings.custom_field.enum_value.color - custom_field_settings.custom_field.enum_value.enabled - custom_field_settings.custom_field.enum_value.name - custom_field_settings.custom_field.format - custom_field_settings.custom_field.has_notifications_enabled - custom_field_settings.custom_field.id_prefix - custom_field_settings.custom_field.input_restrictions - custom_field_settings.custom_field.is_formula_field - custom_field_settings.custom_field.is_global_to_workspace - custom_field_settings.custom_field.is_value_read_only - custom_field_settings.custom_field.multi_enum_values - custom_field_settings.custom_field.multi_enum_values.color - custom_field_settings.custom_field.multi_enum_values.enabled - custom_field_settings.custom_field.multi_enum_values.name - custom_field_settings.custom_field.name - custom_field_settings.custom_field.number_value - custom_field_settings.custom_field.people_value - custom_field_settings.custom_field.people_value.name - custom_field_settings.custom_field.precision - custom_field_settings.custom_field.privacy_setting - custom_field_settings.custom_field.reference_value - custom_field_settings.custom_field.reference_value.name - custom_field_settings.custom_field.representation_type - custom_field_settings.custom_field.resource_subtype - custom_field_settings.custom_field.text_value - custom_field_settings.custom_field.type - custom_field_settings.is_important - custom_field_settings.parent - custom_field_settings.parent.name - custom_field_settings.project - custom_field_settings.project.name - description - edit_team_name_or_description_access_level - edit_team_visibility_or_trash_team_access_level - endorsed - guest_invite_management_access_level - html_description - join_request_management_access_level - member_invite_management_access_level - name - organization - organization.name - permalink_url - team_content_management_access_level - team_member_removal_access_level - visibility schema: type: array items: type: string enum: - custom_field_settings - custom_field_settings.custom_field - custom_field_settings.custom_field.asana_created_field - custom_field_settings.custom_field.created_by - custom_field_settings.custom_field.created_by.name - custom_field_settings.custom_field.currency_code - custom_field_settings.custom_field.custom_label - custom_field_settings.custom_field.custom_label_position - custom_field_settings.custom_field.date_value - custom_field_settings.custom_field.date_value.date - custom_field_settings.custom_field.date_value.date_time - custom_field_settings.custom_field.default_access_level - custom_field_settings.custom_field.description - custom_field_settings.custom_field.display_value - custom_field_settings.custom_field.enabled - custom_field_settings.custom_field.enum_options - custom_field_settings.custom_field.enum_options.color - custom_field_settings.custom_field.enum_options.enabled - custom_field_settings.custom_field.enum_options.name - custom_field_settings.custom_field.enum_value - custom_field_settings.custom_field.enum_value.color - custom_field_settings.custom_field.enum_value.enabled - custom_field_settings.custom_field.enum_value.name - custom_field_settings.custom_field.format - custom_field_settings.custom_field.has_notifications_enabled - custom_field_settings.custom_field.id_prefix - custom_field_settings.custom_field.input_restrictions - custom_field_settings.custom_field.is_formula_field - custom_field_settings.custom_field.is_global_to_workspace - custom_field_settings.custom_field.is_value_read_only - custom_field_settings.custom_field.multi_enum_values - custom_field_settings.custom_field.multi_enum_values.color - custom_field_settings.custom_field.multi_enum_values.enabled - custom_field_settings.custom_field.multi_enum_values.name - custom_field_settings.custom_field.name - custom_field_settings.custom_field.number_value - custom_field_settings.custom_field.people_value - custom_field_settings.custom_field.people_value.name - custom_field_settings.custom_field.precision - custom_field_settings.custom_field.privacy_setting - custom_field_settings.custom_field.reference_value - custom_field_settings.custom_field.reference_value.name - custom_field_settings.custom_field.representation_type - custom_field_settings.custom_field.resource_subtype - custom_field_settings.custom_field.text_value - custom_field_settings.custom_field.type - custom_field_settings.is_important - custom_field_settings.parent - custom_field_settings.parent.name - custom_field_settings.project - custom_field_settings.project.name - description - edit_team_name_or_description_access_level - edit_team_visibility_or_trash_team_access_level - endorsed - guest_invite_management_access_level - html_description - join_request_management_access_level - member_invite_management_access_level - name - organization - organization.name - permalink_url - team_content_management_access_level - team_member_removal_access_level - visibility style: form explode: false requestBody: description: The team to update. required: true content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/TeamRequest' responses: 200: description: Successfully updated the team. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/TeamResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: [] x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); Team result = client.teams.updateTeam() .data("field", "value") .data("field", "value") .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let teamsApiInstance = new Asana.TeamsApi(client); let body = {"data": {"": "", "": "",}}; // Object | The team to update. let team_gid = "159874"; // String | Globally unique identifier for the team. let opts = { 'opt_fields': "custom_field_settings,custom_field_settings.custom_field,custom_field_settings.custom_field.asana_created_field,custom_field_settings.custom_field.created_by,custom_field_settings.custom_field.created_by.name,custom_field_settings.custom_field.currency_code,custom_field_settings.custom_field.custom_label,custom_field_settings.custom_field.custom_label_position,custom_field_settings.custom_field.date_value,custom_field_settings.custom_field.date_value.date,custom_field_settings.custom_field.date_value.date_time,custom_field_settings.custom_field.default_access_level,custom_field_settings.custom_field.description,custom_field_settings.custom_field.display_value,custom_field_settings.custom_field.enabled,custom_field_settings.custom_field.enum_options,custom_field_settings.custom_field.enum_options.color,custom_field_settings.custom_field.enum_options.enabled,custom_field_settings.custom_field.enum_options.name,custom_field_settings.custom_field.enum_value,custom_field_settings.custom_field.enum_value.color,custom_field_settings.custom_field.enum_value.enabled,custom_field_settings.custom_field.enum_value.name,custom_field_settings.custom_field.format,custom_field_settings.custom_field.has_notifications_enabled,custom_field_settings.custom_field.id_prefix,custom_field_settings.custom_field.input_restrictions,custom_field_settings.custom_field.is_formula_field,custom_field_settings.custom_field.is_global_to_workspace,custom_field_settings.custom_field.is_value_read_only,custom_field_settings.custom_field.multi_enum_values,custom_field_settings.custom_field.multi_enum_values.color,custom_field_settings.custom_field.multi_enum_values.enabled,custom_field_settings.custom_field.multi_enum_values.name,custom_field_settings.custom_field.name,custom_field_settings.custom_field.number_value,custom_field_settings.custom_field.people_value,custom_field_settings.custom_field.people_value.name,custom_field_settings.custom_field.precision,custom_field_settings.custom_field.privacy_setting,custom_field_settings.custom_field.reference_value,custom_field_settings.custom_field.reference_value.name,custom_field_settings.custom_field.representation_type,custom_field_settings.custom_field.resource_subtype,custom_field_settings.custom_field.text_value,custom_field_settings.custom_field.type,custom_field_settings.is_important,custom_field_settings.parent,custom_field_settings.parent.name,custom_field_settings.project,custom_field_settings.project.name,description,edit_team_name_or_description_access_level,edit_team_visibility_or_trash_team_access_level,endorsed,guest_invite_management_access_level,html_description,join_request_management_access_level,member_invite_management_access_level,name,organization,organization.name,permalink_url,team_content_management_access_level,team_member_removal_access_level,visibility" }; teamsApiInstance.updateTeam(body, team_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.teams.updateTeam(teamGid, {field: "value", field: "value", pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class teams_api_instance = asana.TeamsApi(api_client) body = {"data": {"": "", "": "",}} # dict | The team to update. team_gid = "159874" # str | Globally unique identifier for the team. opts = { 'opt_fields': "description,edit_team_name_or_description_access_level,edit_team_visibility_or_trash_team_access_level,endorsed,guest_invite_management_access_level,html_description,join_request_management_access_level,member_invite_management_access_level,name,organization,organization.name,permalink_url,team_content_management_access_level,team_member_removal_access_level,visibility", # list[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. } try: # Update a team api_response = teams_api_instance.update_team(body, team_gid, opts) pprint(api_response) except ApiException as e: print("Exception when calling TeamsApi->update_team: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.teams.update_team(team_gid, {'field': 'value', 'field': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- teams->updateTeam(array('field' => 'value', 'field' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.teams.update_team(field: "value", field: "value", options: {pretty: true}) /workspaces/{workspace_gid}/teams: parameters: - $ref: '#/components/parameters/workspace_path_gid' - $ref: '#/components/parameters/pretty' - $ref: '#/components/parameters/limit' - $ref: '#/components/parameters/offset' get: summary: Get teams in a workspace description: |- Required scope: teams:read Returns the compact records for all teams in the workspace visible to the authorized user. tags: - Teams operationId: getTeamsForWorkspace parameters: - name: opt_fields in: query description: 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. required: false example: - custom_field_settings - custom_field_settings.custom_field - custom_field_settings.custom_field.asana_created_field - custom_field_settings.custom_field.created_by - custom_field_settings.custom_field.created_by.name - custom_field_settings.custom_field.currency_code - custom_field_settings.custom_field.custom_label - custom_field_settings.custom_field.custom_label_position - custom_field_settings.custom_field.date_value - custom_field_settings.custom_field.date_value.date - custom_field_settings.custom_field.date_value.date_time - custom_field_settings.custom_field.default_access_level - custom_field_settings.custom_field.description - custom_field_settings.custom_field.display_value - custom_field_settings.custom_field.enabled - custom_field_settings.custom_field.enum_options - custom_field_settings.custom_field.enum_options.color - custom_field_settings.custom_field.enum_options.enabled - custom_field_settings.custom_field.enum_options.name - custom_field_settings.custom_field.enum_value - custom_field_settings.custom_field.enum_value.color - custom_field_settings.custom_field.enum_value.enabled - custom_field_settings.custom_field.enum_value.name - custom_field_settings.custom_field.format - custom_field_settings.custom_field.has_notifications_enabled - custom_field_settings.custom_field.id_prefix - custom_field_settings.custom_field.input_restrictions - custom_field_settings.custom_field.is_formula_field - custom_field_settings.custom_field.is_global_to_workspace - custom_field_settings.custom_field.is_value_read_only - custom_field_settings.custom_field.multi_enum_values - custom_field_settings.custom_field.multi_enum_values.color - custom_field_settings.custom_field.multi_enum_values.enabled - custom_field_settings.custom_field.multi_enum_values.name - custom_field_settings.custom_field.name - custom_field_settings.custom_field.number_value - custom_field_settings.custom_field.people_value - custom_field_settings.custom_field.people_value.name - custom_field_settings.custom_field.precision - custom_field_settings.custom_field.privacy_setting - custom_field_settings.custom_field.reference_value - custom_field_settings.custom_field.reference_value.name - custom_field_settings.custom_field.representation_type - custom_field_settings.custom_field.resource_subtype - custom_field_settings.custom_field.text_value - custom_field_settings.custom_field.type - custom_field_settings.is_important - custom_field_settings.parent - custom_field_settings.parent.name - custom_field_settings.project - custom_field_settings.project.name - description - edit_team_name_or_description_access_level - edit_team_visibility_or_trash_team_access_level - endorsed - guest_invite_management_access_level - html_description - join_request_management_access_level - member_invite_management_access_level - name - offset - organization - organization.name - path - permalink_url - team_content_management_access_level - team_member_removal_access_level - uri - visibility schema: type: array items: type: string enum: - custom_field_settings - custom_field_settings.custom_field - custom_field_settings.custom_field.asana_created_field - custom_field_settings.custom_field.created_by - custom_field_settings.custom_field.created_by.name - custom_field_settings.custom_field.currency_code - custom_field_settings.custom_field.custom_label - custom_field_settings.custom_field.custom_label_position - custom_field_settings.custom_field.date_value - custom_field_settings.custom_field.date_value.date - custom_field_settings.custom_field.date_value.date_time - custom_field_settings.custom_field.default_access_level - custom_field_settings.custom_field.description - custom_field_settings.custom_field.display_value - custom_field_settings.custom_field.enabled - custom_field_settings.custom_field.enum_options - custom_field_settings.custom_field.enum_options.color - custom_field_settings.custom_field.enum_options.enabled - custom_field_settings.custom_field.enum_options.name - custom_field_settings.custom_field.enum_value - custom_field_settings.custom_field.enum_value.color - custom_field_settings.custom_field.enum_value.enabled - custom_field_settings.custom_field.enum_value.name - custom_field_settings.custom_field.format - custom_field_settings.custom_field.has_notifications_enabled - custom_field_settings.custom_field.id_prefix - custom_field_settings.custom_field.input_restrictions - custom_field_settings.custom_field.is_formula_field - custom_field_settings.custom_field.is_global_to_workspace - custom_field_settings.custom_field.is_value_read_only - custom_field_settings.custom_field.multi_enum_values - custom_field_settings.custom_field.multi_enum_values.color - custom_field_settings.custom_field.multi_enum_values.enabled - custom_field_settings.custom_field.multi_enum_values.name - custom_field_settings.custom_field.name - custom_field_settings.custom_field.number_value - custom_field_settings.custom_field.people_value - custom_field_settings.custom_field.people_value.name - custom_field_settings.custom_field.precision - custom_field_settings.custom_field.privacy_setting - custom_field_settings.custom_field.reference_value - custom_field_settings.custom_field.reference_value.name - custom_field_settings.custom_field.representation_type - custom_field_settings.custom_field.resource_subtype - custom_field_settings.custom_field.text_value - custom_field_settings.custom_field.type - custom_field_settings.is_important - custom_field_settings.parent - custom_field_settings.parent.name - custom_field_settings.project - custom_field_settings.project.name - description - edit_team_name_or_description_access_level - edit_team_visibility_or_trash_team_access_level - endorsed - guest_invite_management_access_level - html_description - join_request_management_access_level - member_invite_management_access_level - name - offset - organization - organization.name - path - permalink_url - team_content_management_access_level - team_member_removal_access_level - uri - visibility style: form explode: false responses: 200: description: >- Returns the team records for all teams in the organization or workspace accessible to the authenticated user. content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/TeamCompact' next_page: $ref: '#/components/schemas/NextPage' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: - teams:read x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); List result = client.teams.getTeamsForWorkspace(workspaceGid) .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let teamsApiInstance = new Asana.TeamsApi(client); let workspace_gid = "12345"; // String | Globally unique identifier for the workspace or organization. let opts = { 'limit': 50, 'offset': "eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9", 'opt_fields': "custom_field_settings,custom_field_settings.custom_field,custom_field_settings.custom_field.asana_created_field,custom_field_settings.custom_field.created_by,custom_field_settings.custom_field.created_by.name,custom_field_settings.custom_field.currency_code,custom_field_settings.custom_field.custom_label,custom_field_settings.custom_field.custom_label_position,custom_field_settings.custom_field.date_value,custom_field_settings.custom_field.date_value.date,custom_field_settings.custom_field.date_value.date_time,custom_field_settings.custom_field.default_access_level,custom_field_settings.custom_field.description,custom_field_settings.custom_field.display_value,custom_field_settings.custom_field.enabled,custom_field_settings.custom_field.enum_options,custom_field_settings.custom_field.enum_options.color,custom_field_settings.custom_field.enum_options.enabled,custom_field_settings.custom_field.enum_options.name,custom_field_settings.custom_field.enum_value,custom_field_settings.custom_field.enum_value.color,custom_field_settings.custom_field.enum_value.enabled,custom_field_settings.custom_field.enum_value.name,custom_field_settings.custom_field.format,custom_field_settings.custom_field.has_notifications_enabled,custom_field_settings.custom_field.id_prefix,custom_field_settings.custom_field.input_restrictions,custom_field_settings.custom_field.is_formula_field,custom_field_settings.custom_field.is_global_to_workspace,custom_field_settings.custom_field.is_value_read_only,custom_field_settings.custom_field.multi_enum_values,custom_field_settings.custom_field.multi_enum_values.color,custom_field_settings.custom_field.multi_enum_values.enabled,custom_field_settings.custom_field.multi_enum_values.name,custom_field_settings.custom_field.name,custom_field_settings.custom_field.number_value,custom_field_settings.custom_field.people_value,custom_field_settings.custom_field.people_value.name,custom_field_settings.custom_field.precision,custom_field_settings.custom_field.privacy_setting,custom_field_settings.custom_field.reference_value,custom_field_settings.custom_field.reference_value.name,custom_field_settings.custom_field.representation_type,custom_field_settings.custom_field.resource_subtype,custom_field_settings.custom_field.text_value,custom_field_settings.custom_field.type,custom_field_settings.is_important,custom_field_settings.parent,custom_field_settings.parent.name,custom_field_settings.project,custom_field_settings.project.name,description,edit_team_name_or_description_access_level,edit_team_visibility_or_trash_team_access_level,endorsed,guest_invite_management_access_level,html_description,join_request_management_access_level,member_invite_management_access_level,name,offset,organization,organization.name,path,permalink_url,team_content_management_access_level,team_member_removal_access_level,uri,visibility" }; teamsApiInstance.getTeamsForWorkspace(workspace_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.teams.getTeamsForWorkspace(workspaceGid, {param: "value", param: "value", opt_pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class teams_api_instance = asana.TeamsApi(api_client) workspace_gid = "12345" # str | Globally unique identifier for the workspace or organization. opts = { 'limit': 50, # int | Results per page. The number of objects to return per page. The value must be between 1 and 100. 'offset': "eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9", # 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': "description,edit_team_name_or_description_access_level,edit_team_visibility_or_trash_team_access_level,endorsed,guest_invite_management_access_level,html_description,join_request_management_access_level,member_invite_management_access_level,name,offset,organization,organization.name,path,permalink_url,team_content_management_access_level,team_member_removal_access_level,uri,visibility", # list[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. } try: # Get teams in a workspace api_response = teams_api_instance.get_teams_for_workspace(workspace_gid, opts) for data in api_response: pprint(data) except ApiException as e: print("Exception when calling TeamsApi->get_teams_for_workspace: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.teams.get_teams_for_workspace(workspace_gid, {'param': 'value', 'param': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- teams->getTeamsForWorkspace($workspace_gid, array('param' => 'value', 'param' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.teams.get_teams_for_workspace(workspace_gid: 'workspace_gid', param: "value", param: "value", options: {pretty: true}) /users/{user_gid}/teams: parameters: - $ref: '#/components/parameters/user_path_gid' - $ref: '#/components/parameters/pretty' - $ref: '#/components/parameters/limit' - $ref: '#/components/parameters/offset' - name: organization in: query description: The workspace or organization to filter teams on. required: true schema: type: string example: '1331' get: summary: Get teams for a user description: |- Required scope: teams:read Returns the compact records for all teams to which the given user is assigned. tags: - Teams operationId: getTeamsForUser parameters: - name: opt_fields in: query description: 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. required: false example: - custom_field_settings - custom_field_settings.custom_field - custom_field_settings.custom_field.asana_created_field - custom_field_settings.custom_field.created_by - custom_field_settings.custom_field.created_by.name - custom_field_settings.custom_field.currency_code - custom_field_settings.custom_field.custom_label - custom_field_settings.custom_field.custom_label_position - custom_field_settings.custom_field.date_value - custom_field_settings.custom_field.date_value.date - custom_field_settings.custom_field.date_value.date_time - custom_field_settings.custom_field.default_access_level - custom_field_settings.custom_field.description - custom_field_settings.custom_field.display_value - custom_field_settings.custom_field.enabled - custom_field_settings.custom_field.enum_options - custom_field_settings.custom_field.enum_options.color - custom_field_settings.custom_field.enum_options.enabled - custom_field_settings.custom_field.enum_options.name - custom_field_settings.custom_field.enum_value - custom_field_settings.custom_field.enum_value.color - custom_field_settings.custom_field.enum_value.enabled - custom_field_settings.custom_field.enum_value.name - custom_field_settings.custom_field.format - custom_field_settings.custom_field.has_notifications_enabled - custom_field_settings.custom_field.id_prefix - custom_field_settings.custom_field.input_restrictions - custom_field_settings.custom_field.is_formula_field - custom_field_settings.custom_field.is_global_to_workspace - custom_field_settings.custom_field.is_value_read_only - custom_field_settings.custom_field.multi_enum_values - custom_field_settings.custom_field.multi_enum_values.color - custom_field_settings.custom_field.multi_enum_values.enabled - custom_field_settings.custom_field.multi_enum_values.name - custom_field_settings.custom_field.name - custom_field_settings.custom_field.number_value - custom_field_settings.custom_field.people_value - custom_field_settings.custom_field.people_value.name - custom_field_settings.custom_field.precision - custom_field_settings.custom_field.privacy_setting - custom_field_settings.custom_field.reference_value - custom_field_settings.custom_field.reference_value.name - custom_field_settings.custom_field.representation_type - custom_field_settings.custom_field.resource_subtype - custom_field_settings.custom_field.text_value - custom_field_settings.custom_field.type - custom_field_settings.is_important - custom_field_settings.parent - custom_field_settings.parent.name - custom_field_settings.project - custom_field_settings.project.name - description - edit_team_name_or_description_access_level - edit_team_visibility_or_trash_team_access_level - endorsed - guest_invite_management_access_level - html_description - join_request_management_access_level - member_invite_management_access_level - name - offset - organization - organization.name - path - permalink_url - team_content_management_access_level - team_member_removal_access_level - uri - visibility schema: type: array items: type: string enum: - custom_field_settings - custom_field_settings.custom_field - custom_field_settings.custom_field.asana_created_field - custom_field_settings.custom_field.created_by - custom_field_settings.custom_field.created_by.name - custom_field_settings.custom_field.currency_code - custom_field_settings.custom_field.custom_label - custom_field_settings.custom_field.custom_label_position - custom_field_settings.custom_field.date_value - custom_field_settings.custom_field.date_value.date - custom_field_settings.custom_field.date_value.date_time - custom_field_settings.custom_field.default_access_level - custom_field_settings.custom_field.description - custom_field_settings.custom_field.display_value - custom_field_settings.custom_field.enabled - custom_field_settings.custom_field.enum_options - custom_field_settings.custom_field.enum_options.color - custom_field_settings.custom_field.enum_options.enabled - custom_field_settings.custom_field.enum_options.name - custom_field_settings.custom_field.enum_value - custom_field_settings.custom_field.enum_value.color - custom_field_settings.custom_field.enum_value.enabled - custom_field_settings.custom_field.enum_value.name - custom_field_settings.custom_field.format - custom_field_settings.custom_field.has_notifications_enabled - custom_field_settings.custom_field.id_prefix - custom_field_settings.custom_field.input_restrictions - custom_field_settings.custom_field.is_formula_field - custom_field_settings.custom_field.is_global_to_workspace - custom_field_settings.custom_field.is_value_read_only - custom_field_settings.custom_field.multi_enum_values - custom_field_settings.custom_field.multi_enum_values.color - custom_field_settings.custom_field.multi_enum_values.enabled - custom_field_settings.custom_field.multi_enum_values.name - custom_field_settings.custom_field.name - custom_field_settings.custom_field.number_value - custom_field_settings.custom_field.people_value - custom_field_settings.custom_field.people_value.name - custom_field_settings.custom_field.precision - custom_field_settings.custom_field.privacy_setting - custom_field_settings.custom_field.reference_value - custom_field_settings.custom_field.reference_value.name - custom_field_settings.custom_field.representation_type - custom_field_settings.custom_field.resource_subtype - custom_field_settings.custom_field.text_value - custom_field_settings.custom_field.type - custom_field_settings.is_important - custom_field_settings.parent - custom_field_settings.parent.name - custom_field_settings.project - custom_field_settings.project.name - description - edit_team_name_or_description_access_level - edit_team_visibility_or_trash_team_access_level - endorsed - guest_invite_management_access_level - html_description - join_request_management_access_level - member_invite_management_access_level - name - offset - organization - organization.name - path - permalink_url - team_content_management_access_level - team_member_removal_access_level - uri - visibility style: form explode: false responses: 200: description: >- Returns the team records for all teams in the organization or workspace to which the given user is assigned. content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/TeamCompact' next_page: $ref: '#/components/schemas/NextPage' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: - teams:read x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); List result = client.teams.getTeamsForUser(userGid, organization) .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let teamsApiInstance = new Asana.TeamsApi(client); let user_gid = "me"; // String | A string identifying a user. This can either be the string \"me\", an email, or the gid of a user. let organization = "1331"; // String | The workspace or organization to filter teams on. let opts = { 'limit': 50, 'offset': "eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9", 'opt_fields': "custom_field_settings,custom_field_settings.custom_field,custom_field_settings.custom_field.asana_created_field,custom_field_settings.custom_field.created_by,custom_field_settings.custom_field.created_by.name,custom_field_settings.custom_field.currency_code,custom_field_settings.custom_field.custom_label,custom_field_settings.custom_field.custom_label_position,custom_field_settings.custom_field.date_value,custom_field_settings.custom_field.date_value.date,custom_field_settings.custom_field.date_value.date_time,custom_field_settings.custom_field.default_access_level,custom_field_settings.custom_field.description,custom_field_settings.custom_field.display_value,custom_field_settings.custom_field.enabled,custom_field_settings.custom_field.enum_options,custom_field_settings.custom_field.enum_options.color,custom_field_settings.custom_field.enum_options.enabled,custom_field_settings.custom_field.enum_options.name,custom_field_settings.custom_field.enum_value,custom_field_settings.custom_field.enum_value.color,custom_field_settings.custom_field.enum_value.enabled,custom_field_settings.custom_field.enum_value.name,custom_field_settings.custom_field.format,custom_field_settings.custom_field.has_notifications_enabled,custom_field_settings.custom_field.id_prefix,custom_field_settings.custom_field.input_restrictions,custom_field_settings.custom_field.is_formula_field,custom_field_settings.custom_field.is_global_to_workspace,custom_field_settings.custom_field.is_value_read_only,custom_field_settings.custom_field.multi_enum_values,custom_field_settings.custom_field.multi_enum_values.color,custom_field_settings.custom_field.multi_enum_values.enabled,custom_field_settings.custom_field.multi_enum_values.name,custom_field_settings.custom_field.name,custom_field_settings.custom_field.number_value,custom_field_settings.custom_field.people_value,custom_field_settings.custom_field.people_value.name,custom_field_settings.custom_field.precision,custom_field_settings.custom_field.privacy_setting,custom_field_settings.custom_field.reference_value,custom_field_settings.custom_field.reference_value.name,custom_field_settings.custom_field.representation_type,custom_field_settings.custom_field.resource_subtype,custom_field_settings.custom_field.text_value,custom_field_settings.custom_field.type,custom_field_settings.is_important,custom_field_settings.parent,custom_field_settings.parent.name,custom_field_settings.project,custom_field_settings.project.name,description,edit_team_name_or_description_access_level,edit_team_visibility_or_trash_team_access_level,endorsed,guest_invite_management_access_level,html_description,join_request_management_access_level,member_invite_management_access_level,name,offset,organization,organization.name,path,permalink_url,team_content_management_access_level,team_member_removal_access_level,uri,visibility" }; teamsApiInstance.getTeamsForUser(user_gid, organization, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.teams.getTeamsForUser(userGid, {param: "value", param: "value", opt_pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class teams_api_instance = asana.TeamsApi(api_client) user_gid = "me" # str | A string identifying a user. This can either be the string \"me\", an email, or the gid of a user. organization = "1331" # str | The workspace or organization to filter teams on. opts = { 'limit': 50, # int | Results per page. The number of objects to return per page. The value must be between 1 and 100. 'offset': "eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9", # 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': "description,edit_team_name_or_description_access_level,edit_team_visibility_or_trash_team_access_level,endorsed,guest_invite_management_access_level,html_description,join_request_management_access_level,member_invite_management_access_level,name,offset,organization,organization.name,path,permalink_url,team_content_management_access_level,team_member_removal_access_level,uri,visibility", # list[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. } try: # Get teams for a user api_response = teams_api_instance.get_teams_for_user(user_gid, organization, opts) for data in api_response: pprint(data) except ApiException as e: print("Exception when calling TeamsApi->get_teams_for_user: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.teams.get_teams_for_user(user_gid, {'param': 'value', 'param': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- teams->getTeamsForUser($user_gid, array('param' => 'value', 'param' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.teams.get_teams_for_user(user_gid: 'user_gid', organization: ''organization_example'', param: "value", param: "value", options: {pretty: true}) /teams/{team_gid}/addUser: parameters: - $ref: '#/components/parameters/team_path_gid' - $ref: '#/components/parameters/pretty' post: summary: Add a user to a team description: >- The user making this call must be a member of the team in order to add others. The user being added must exist in the same organization as the team. Returns the complete team membership record for the newly added user. tags: - Teams operationId: addUserForTeam parameters: - name: opt_fields in: query description: 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. required: false example: - is_admin - is_guest - is_limited_access - team - team.name - user - user.name schema: type: array items: type: string enum: - is_admin - is_guest - is_limited_access - team - team.name - user - user.name style: form explode: false requestBody: description: The user to add to the team. required: true content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/TeamAddUserRequest' responses: 200: description: >- Successfully added user to the team. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/TeamMembershipResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: [] x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); JsonElement result = client.teams.addUserForTeam(teamGid) .data("field", "value") .data("field", "value") .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let teamsApiInstance = new Asana.TeamsApi(client); let body = {"data": {"": "", "": "",}}; // Object | The user to add to the team. let team_gid = "159874"; // String | Globally unique identifier for the team. let opts = { 'opt_fields': "is_admin,is_guest,is_limited_access,team,team.name,user,user.name" }; teamsApiInstance.addUserForTeam(body, team_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.teams.addUserForTeam(teamGid, {field: "value", field: "value", pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class teams_api_instance = asana.TeamsApi(api_client) body = {"data": {"": "", "": "",}} # dict | The user to add to the team. team_gid = "159874" # str | Globally unique identifier for the team. opts = { 'opt_fields': "is_admin,is_guest,is_limited_access,team,team.name,user,user.name", # list[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. } try: # Add a user to a team api_response = teams_api_instance.add_user_for_team(body, team_gid, opts) pprint(api_response) except ApiException as e: print("Exception when calling TeamsApi->add_user_for_team: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.teams.add_user_for_team(team_gid, {'field': 'value', 'field': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- teams->addUserForTeam($team_gid, array('field' => 'value', 'field' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.teams.add_user_for_team(team_gid: 'team_gid', field: "value", field: "value", options: {pretty: true}) /teams/{team_gid}/removeUser: parameters: - $ref: '#/components/parameters/team_path_gid' - $ref: '#/components/parameters/pretty' post: summary: Remove a user from a team description: >- The user making this call must be a member of the team in order to remove themselves or others. tags: - Teams operationId: removeUserForTeam requestBody: description: The user to remove from the team. required: true content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/TeamRemoveUserRequest' responses: 200: description: >- Returns an empty data record content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/EmptyResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: [] x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); JsonElement result = client.teams.removeUserForTeam(teamGid) .data("field", "value") .data("field", "value") .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let teamsApiInstance = new Asana.TeamsApi(client); let body = {"data": {"": "", "": "",}}; // Object | The user to remove from the team. let team_gid = "159874"; // String | Globally unique identifier for the team. teamsApiInstance.removeUserForTeam(body, team_gid).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.teams.removeUserForTeam(teamGid, {field: "value", field: "value", pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class teams_api_instance = asana.TeamsApi(api_client) body = {"data": {"": "", "": "",}} # dict | The user to remove from the team. team_gid = "159874" # str | Globally unique identifier for the team. try: # Remove a user from a team api_response = teams_api_instance.remove_user_for_team(body, team_gid) pprint(api_response) except ApiException as e: print("Exception when calling TeamsApi->remove_user_for_team: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.teams.remove_user_for_team(team_gid, {'field': 'value', 'field': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- teams->removeUserForTeam($team_gid, array('field' => 'value', 'field' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.teams.remove_user_for_team(team_gid: 'team_gid', field: "value", field: "value", options: {pretty: true}) /time_periods/{time_period_gid}: parameters: - $ref: '#/components/parameters/time_period_path_gid' - $ref: '#/components/parameters/pretty' get: summary: Get a time period description: Returns the full record for a single time period. tags: - Time periods operationId: getTimePeriod parameters: - name: opt_fields in: query description: 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. required: false example: - display_name - end_on - parent - parent.display_name - parent.end_on - parent.period - parent.start_on - period - start_on schema: type: array items: type: string enum: - display_name - end_on - parent - parent.display_name - parent.end_on - parent.period - parent.start_on - period - start_on style: form explode: false responses: 200: description: Successfully retrieved the record for a single time period. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/TimePeriodResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: [] x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); JsonElement result = client.timeperiods.getTimePeriod(timePeriodGid) .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let timePeriodsApiInstance = new Asana.TimePeriodsApi(client); let time_period_gid = "917392"; // String | Globally unique identifier for the time period. let opts = { 'opt_fields': "display_name,end_on,parent,parent.display_name,parent.end_on,parent.period,parent.start_on,period,start_on" }; timePeriodsApiInstance.getTimePeriod(time_period_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.timeperiods.getTimePeriod(timePeriodGid, {param: "value", param: "value", opt_pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class time_periods_api_instance = asana.TimePeriodsApi(api_client) time_period_gid = "917392" # str | Globally unique identifier for the time period. opts = { 'opt_fields': "display_name,end_on,parent,parent.display_name,parent.end_on,parent.period,parent.start_on,period,start_on", # list[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. } try: # Get a time period api_response = time_periods_api_instance.get_time_period(time_period_gid, opts) pprint(api_response) except ApiException as e: print("Exception when calling TimePeriodsApi->get_time_period: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.time_periods.get_time_period(time_period_gid, {'param': 'value', 'param': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- timeperiods->getTimePeriod($time_period_gid, array('param' => 'value', 'param' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.time_periods.get_time_period(time_period_gid: 'time_period_gid', param: "value", param: "value", options: {pretty: true}) /time_periods: parameters: - $ref: '#/components/parameters/pretty' - $ref: '#/components/parameters/limit' - $ref: '#/components/parameters/offset' get: summary: Get time periods description: >- Returns compact time period records. tags: - Time periods operationId: getTimePeriods parameters: - name: start_on in: query description: >- ISO 8601 date string schema: type: string format: date example: '2019-09-15' - name: end_on in: query description: >- ISO 8601 date string schema: type: string format: date example: '2019-09-15' - name: workspace in: query required: true description: Globally unique identifier for the workspace. schema: type: string example: '31326' - name: opt_fields in: query description: 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. required: false example: - display_name - end_on - offset - parent - parent.display_name - parent.end_on - parent.period - parent.start_on - path - period - start_on - uri schema: type: array items: type: string enum: - display_name - end_on - offset - parent - parent.display_name - parent.end_on - parent.period - parent.start_on - path - period - start_on - uri style: form explode: false responses: 200: description: >- Successfully retrieved the requested time periods. content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/TimePeriodCompact' next_page: $ref: '#/components/schemas/NextPage' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: [] x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); List result = client.timeperiods.getTimePeriods(endOn, startOn, workspace) .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let timePeriodsApiInstance = new Asana.TimePeriodsApi(client); let workspace = "31326"; // String | Globally unique identifier for the workspace. let opts = { 'limit': 50, 'offset': "eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9", 'start_on': "2019-09-15", 'end_on': "2019-09-15", 'opt_fields': "display_name,end_on,offset,parent,parent.display_name,parent.end_on,parent.period,parent.start_on,path,period,start_on,uri" }; timePeriodsApiInstance.getTimePeriods(workspace, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.timeperiods.getTimePeriods({param: "value", param: "value", opt_pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class time_periods_api_instance = asana.TimePeriodsApi(api_client) workspace = "31326" # str | Globally unique identifier for the workspace. opts = { 'limit': 50, # int | Results per page. The number of objects to return per page. The value must be between 1 and 100. 'offset': "eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9", # 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.* 'start_on': '2019-09-15', # date | ISO 8601 date string 'end_on': '2019-09-15', # date | ISO 8601 date string 'opt_fields': "display_name,end_on,offset,parent,parent.display_name,parent.end_on,parent.period,parent.start_on,path,period,start_on,uri", # list[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. } try: # Get time periods api_response = time_periods_api_instance.get_time_periods(workspace, opts) for data in api_response: pprint(data) except ApiException as e: print("Exception when calling TimePeriodsApi->get_time_periods: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.time_periods.get_time_periods({'param': 'value', 'param': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- timeperiods->getTimePeriods(array('param' => 'value', 'param' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.time_periods.get_time_periods(workspace: ''workspace_example'', param: "value", param: "value", options: {pretty: true}) /tasks/{task_gid}/time_tracking_entries: parameters: - $ref: '#/components/parameters/task_path_gid' - $ref: '#/components/parameters/pretty' get: summary: Get time tracking entries for a task description: |- Required scope: time_tracking_entries:read Returns time tracking entries for a given task. tags: - Time tracking entries operationId: getTimeTrackingEntriesForTask parameters: - $ref: '#/components/parameters/limit' - $ref: '#/components/parameters/offset' - name: opt_fields in: query description: 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. required: false example: - attributable_to - attributable_to.name - created_by - created_by.name - duration_minutes - entered_on - offset - path - uri schema: type: array items: type: string enum: - attributable_to - attributable_to.name - created_by - created_by.name - duration_minutes - entered_on - offset - path - uri style: form explode: false responses: 200: description: Successfully retrieved the requested time tracking entries. content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/TimeTrackingEntryCompact' next_page: $ref: '#/components/schemas/NextPage' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: - time_tracking_entries:read x-readme: code-samples: - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let timeTrackingEntriesApiInstance = new Asana.TimeTrackingEntriesApi(client); let task_gid = "321654"; // String | The task to operate on. let opts = { 'limit': 50, 'offset': "eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9", 'opt_fields': "attributable_to,attributable_to.name,created_by,created_by.name,duration_minutes,entered_on,offset,path,uri" }; timeTrackingEntriesApiInstance.getTimeTrackingEntriesForTask(task_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.timetrackingentries.getTimeTrackingEntriesForTask(taskGid, {param: "value", param: "value", opt_pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class time_tracking_entries_api_instance = asana.TimeTrackingEntriesApi(api_client) task_gid = "321654" # str | The task to operate on. opts = { 'limit': 50, # int | Results per page. The number of objects to return per page. The value must be between 1 and 100. 'offset': "eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9", # 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': "attributable_to,attributable_to.name,created_by,created_by.name,duration_minutes,entered_on,offset,path,uri", # list[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. } try: # Get time tracking entries for a task api_response = time_tracking_entries_api_instance.get_time_tracking_entries_for_task(task_gid, opts) for data in api_response: pprint(data) except ApiException as e: print("Exception when calling TimeTrackingEntriesApi->get_time_tracking_entries_for_task: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.time_tracking_entries.get_time_tracking_entries_for_task(task_gid, {'param': 'value', 'param': 'value'}, opt_pretty=True) name: python-sdk-v3 post: summary: Create a time tracking entry description: |- Creates a time tracking entry on a given task. Returns the record of the newly created time tracking entry. tags: - Time tracking entries operationId: createTimeTrackingEntry parameters: - name: opt_fields in: query description: 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. required: false example: - approval_status - attributable_to - attributable_to.name - billable_status - created_at - created_by - created_by.name - description - duration_minutes - entered_on - task - task.created_by - task.name - task.resource_subtype schema: type: array items: type: string enum: - approval_status - attributable_to - attributable_to.name - billable_status - created_at - created_by - created_by.name - description - duration_minutes - entered_on - task - task.created_by - task.name - task.resource_subtype style: form explode: false requestBody: description: Information about the time tracking entry. required: true content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/CreateTimeTrackingEntryRequest' responses: 201: description: Successfully created a time tracking entry for the task. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/TimeTrackingEntryBase' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: [] x-readme: code-samples: - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let timeTrackingEntriesApiInstance = new Asana.TimeTrackingEntriesApi(client); let body = {"data": {"": "", "": "",}}; // Object | Information about the time tracking entry. let task_gid = "321654"; // String | The task to operate on. let opts = { 'opt_fields': "approval_status,attributable_to,attributable_to.name,billable_status,created_at,created_by,created_by.name,description,duration_minutes,entered_on,task,task.created_by,task.name,task.resource_subtype" }; timeTrackingEntriesApiInstance.createTimeTrackingEntry(body, task_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.timetrackingentries.createTimeTrackingEntry(taskGid, {field: "value", field: "value", pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class time_tracking_entries_api_instance = asana.TimeTrackingEntriesApi(api_client) body = {"data": {"": "", "": "",}} # dict | Information about the time tracking entry. task_gid = "321654" # str | The task to operate on. opts = { 'opt_fields': "approval_status,attributable_to,attributable_to.name,billable_status,created_at,created_by,created_by.name,description,duration_minutes,entered_on,task,task.created_by,task.name,task.resource_subtype", # list[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. } try: # Create a time tracking entry api_response = time_tracking_entries_api_instance.create_time_tracking_entry(body, task_gid, opts) pprint(api_response) except ApiException as e: print("Exception when calling TimeTrackingEntriesApi->create_time_tracking_entry: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.time_tracking_entries.create_time_tracking_entry(task_gid, {'field': 'value', 'field': 'value'}, opt_pretty=True) name: python-sdk-v3 /time_tracking_entries/{time_tracking_entry_gid}: parameters: - $ref: '#/components/parameters/time_tracking_entry_path_gid' - $ref: '#/components/parameters/pretty' get: summary: Get a time tracking entry description: |- Required scope: time_tracking_entries:read Returns the complete time tracking entry record for a single time tracking entry. tags: - Time tracking entries operationId: getTimeTrackingEntry parameters: - name: opt_fields in: query description: 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. required: false example: - approval_status - attributable_to - attributable_to.name - billable_status - created_at - created_by - created_by.name - description - duration_minutes - entered_on - task - task.created_by - task.name - task.resource_subtype schema: type: array items: type: string enum: - approval_status - attributable_to - attributable_to.name - billable_status - created_at - created_by - created_by.name - description - duration_minutes - entered_on - task - task.created_by - task.name - task.resource_subtype style: form explode: false responses: 200: description: Successfully retrieved the requested time tracking entry. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/TimeTrackingEntryBase' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: - time_tracking_entries:read x-readme: code-samples: - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let timeTrackingEntriesApiInstance = new Asana.TimeTrackingEntriesApi(client); let time_tracking_entry_gid = "917392"; // String | Globally unique identifier for the time tracking entry. let opts = { 'opt_fields': "approval_status,attributable_to,attributable_to.name,billable_status,created_at,created_by,created_by.name,description,duration_minutes,entered_on,task,task.created_by,task.name,task.resource_subtype" }; timeTrackingEntriesApiInstance.getTimeTrackingEntry(time_tracking_entry_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.timetrackingentries.getTimeTrackingEntry(timeTrackingEntryGid, {param: "value", param: "value", opt_pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class time_tracking_entries_api_instance = asana.TimeTrackingEntriesApi(api_client) time_tracking_entry_gid = "917392" # str | Globally unique identifier for the time tracking entry. opts = { 'opt_fields': "approval_status,attributable_to,attributable_to.name,billable_status,created_at,created_by,created_by.name,description,duration_minutes,entered_on,task,task.created_by,task.name,task.resource_subtype", # list[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. } try: # Get a time tracking entry api_response = time_tracking_entries_api_instance.get_time_tracking_entry(time_tracking_entry_gid, opts) pprint(api_response) except ApiException as e: print("Exception when calling TimeTrackingEntriesApi->get_time_tracking_entry: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.time_tracking_entries.get_time_tracking_entry(time_tracking_entry_gid, {'param': 'value', 'param': 'value'}, opt_pretty=True) name: python-sdk-v3 put: summary: Update a time tracking entry description: |- A specific, existing time tracking entry can be updated by making a `PUT` request on the URL for that time tracking entry. Only the fields provided in the `data` block will be updated; any unspecified fields will remain unchanged. When using this method, it is best to specify only those fields you wish to change, or else you may overwrite changes made by another user since you last retrieved the task. Returns the complete updated time tracking entry record. tags: - Time tracking entries operationId: updateTimeTrackingEntry parameters: - name: opt_fields in: query description: 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. required: false example: - approval_status - attributable_to - attributable_to.name - billable_status - created_at - created_by - created_by.name - description - duration_minutes - entered_on - task - task.created_by - task.name - task.resource_subtype schema: type: array items: type: string enum: - approval_status - attributable_to - attributable_to.name - billable_status - created_at - created_by - created_by.name - description - duration_minutes - entered_on - task - task.created_by - task.name - task.resource_subtype style: form explode: false requestBody: description: The updated fields for the time tracking entry. required: true content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/UpdateTimeTrackingEntryRequest' responses: 200: description: Successfully updated the time tracking entry. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/TimeTrackingEntryBase' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: [] x-readme: code-samples: - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let timeTrackingEntriesApiInstance = new Asana.TimeTrackingEntriesApi(client); let body = {"data": {"": "", "": "",}}; // Object | The updated fields for the time tracking entry. let time_tracking_entry_gid = "917392"; // String | Globally unique identifier for the time tracking entry. let opts = { 'opt_fields': "approval_status,attributable_to,attributable_to.name,billable_status,created_at,created_by,created_by.name,description,duration_minutes,entered_on,task,task.created_by,task.name,task.resource_subtype" }; timeTrackingEntriesApiInstance.updateTimeTrackingEntry(body, time_tracking_entry_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.timetrackingentries.updateTimeTrackingEntry(timeTrackingEntryGid, {field: "value", field: "value", pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class time_tracking_entries_api_instance = asana.TimeTrackingEntriesApi(api_client) body = {"data": {"": "", "": "",}} # dict | The updated fields for the time tracking entry. time_tracking_entry_gid = "917392" # str | Globally unique identifier for the time tracking entry. opts = { 'opt_fields': "approval_status,attributable_to,attributable_to.name,billable_status,created_at,created_by,created_by.name,description,duration_minutes,entered_on,task,task.created_by,task.name,task.resource_subtype", # list[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. } try: # Update a time tracking entry api_response = time_tracking_entries_api_instance.update_time_tracking_entry(body, time_tracking_entry_gid, opts) pprint(api_response) except ApiException as e: print("Exception when calling TimeTrackingEntriesApi->update_time_tracking_entry: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.time_tracking_entries.update_time_tracking_entry(time_tracking_entry_gid, {'field': 'value', 'field': 'value'}, opt_pretty=True) name: python-sdk-v3 delete: summary: Delete a time tracking entry description: |- A specific, existing time tracking entry can be deleted by making a `DELETE` request on the URL for that time tracking entry. Returns an empty data record. tags: - Time tracking entries operationId: deleteTimeTrackingEntry responses: 200: description: Successfully deleted the specified time tracking entry. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/EmptyResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: [] x-readme: code-samples: - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let timeTrackingEntriesApiInstance = new Asana.TimeTrackingEntriesApi(client); let time_tracking_entry_gid = "917392"; // String | Globally unique identifier for the time tracking entry. timeTrackingEntriesApiInstance.deleteTimeTrackingEntry(time_tracking_entry_gid).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.timetrackingentries.deleteTimeTrackingEntry(timeTrackingEntryGid) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class time_tracking_entries_api_instance = asana.TimeTrackingEntriesApi(api_client) time_tracking_entry_gid = "917392" # str | Globally unique identifier for the time tracking entry. try: # Delete a time tracking entry api_response = time_tracking_entries_api_instance.delete_time_tracking_entry(time_tracking_entry_gid) pprint(api_response) except ApiException as e: print("Exception when calling TimeTrackingEntriesApi->delete_time_tracking_entry: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.time_tracking_entries.delete_time_tracking_entry(time_tracking_entry_gid, opt_pretty=True) name: python-sdk-v3 /time_tracking_entries: parameters: - $ref: '#/components/parameters/pretty' get: summary: Get multiple time tracking entries description: |- Required scope: time_tracking_entries:read Returns a list of time tracking entries filtered to a task, attributed project, portfolio or user. tags: - Time tracking entries operationId: getTimeTrackingEntries parameters: - name: task in: query description: Globally unique identifier for the task to filter time tracking entries by. schema: type: string example: '12345' - name: attributable_to in: query description: Globally unique identifier for the project the time tracking entries are attributed to. schema: type: string example: '12345' - name: portfolio in: query description: Globally unique identifier for the portfolio to filter time tracking entries by. schema: type: string example: '12345' - name: user in: query description: Globally unique identifier for the user to filter time tracking entries by. schema: type: string example: '12345' - name: workspace in: query description: >- 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. schema: type: string example: '98765' - name: entered_on_start_date in: query description: The start date for filtering time tracking entries by when they were entered. schema: type: string format: date example: '2025-01-01' - name: entered_on_end_date in: query description: The end date for filtering time tracking entries by when they were entered. schema: type: string format: date example: '2025-12-31' - name: timesheet_approval_status in: query description: Globally unique identifier for the timesheet approval status to filter time tracking entries by. schema: type: string example: '12345' - $ref: '#/components/parameters/limit' - $ref: '#/components/parameters/offset' - name: opt_fields in: query description: 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. required: false example: - attributable_to - attributable_to.name - created_by - created_by.name - duration_minutes - entered_on - offset - path - uri schema: type: array items: type: string enum: - attributable_to - attributable_to.name - created_by - created_by.name - duration_minutes - entered_on - offset - path - uri style: form explode: false responses: 200: description: >- Successfully retrieved the requested time tracking entries. content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/TimeTrackingEntryCompact' next_page: $ref: '#/components/schemas/NextPage' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 402: $ref: '#/components/responses/PaymentRequired' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: - time_tracking_entries:read x-readme: code-samples: - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let timeTrackingEntriesApiInstance = new Asana.TimeTrackingEntriesApi(client); let opts = { 'task': "12345", 'attributable_to': "12345", 'portfolio': "12345", 'user': "12345", 'workspace': "98765", 'entered_on_start_date': "2025-01-01", 'entered_on_end_date': "2025-12-31", 'timesheet_approval_status': "12345", 'limit': 50, 'offset': "eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9", 'opt_fields': "attributable_to,attributable_to.name,created_by,created_by.name,duration_minutes,entered_on,offset,path,uri" }; timeTrackingEntriesApiInstance.getTimeTrackingEntries(opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class time_tracking_entries_api_instance = asana.TimeTrackingEntriesApi(api_client) opts = { 'task': "12345", # str | Globally unique identifier for the task to filter time tracking entries by. 'attributable_to': "12345", # str | Globally unique identifier for the project the time tracking entries are attributed to. 'portfolio': "12345", # str | Globally unique identifier for the portfolio to filter time tracking entries by. 'user': "12345", # str | Globally unique identifier for the user to filter time tracking entries by. 'workspace': "98765", # str | Globally unique identifier for the workspace. 'limit': 50, # int | Results per page. The number of objects to return per page. The value must be between 1 and 100. 'offset': "eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9", # 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': "attributable_to,attributable_to.name,created_by,created_by.name,duration_minutes,entered_on,offset,path,uri", # list[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. } try: # Get multiple time tracking entries api_response = time_tracking_entries_api_instance.get_time_tracking_entries(opts) for data in api_response: pprint(data) except ApiException as e: print("Exception when calling TimeTrackingEntriesApi->get_time_tracking_entries: %s\n" % e) name: python-sdk-v5 /timesheet_approval_statuses/{timesheet_approval_status_gid}: parameters: - $ref: '#/components/parameters/timesheet_approval_status_path_gid' - $ref: '#/components/parameters/pretty' /timesheet_approval_statuses: parameters: - $ref: '#/components/parameters/pretty' /workspaces/{workspace_gid}/typeahead: parameters: - $ref: '#/components/parameters/workspace_path_gid' - name: resource_type in: query description: >- The type of values the typeahead should return. You can choose from one of the following: `custom_field`, `goal`, `project`, `project_template`, `portfolio`, `tag`, `task`, `team`, and `user`. Note that unlike in the names of endpoints, the types listed here are in singular form (e.g. `task`). Using multiple types is not yet supported. required: true schema: type: string enum: - custom_field - goal - project - project_template - portfolio - tag - task - team - user default: user - name: type in: query description: >- *Deprecated: new integrations should prefer the resource_type field.* required: false schema: type: string enum: - custom_field - portfolio - project - tag - task - user default: user - name: query in: query description: >- The string that will be used to search for relevant objects. If an empty string is passed in, the API will return results. schema: type: string example: Greg - name: count in: query description: >- The number of results to return. The default is 20 if this parameter is omitted, with a minimum of 1 and a maximum of 100. If there are fewer results found than requested, all will be returned. schema: type: integer example: 20 - $ref: '#/components/parameters/pretty' get: summary: Get objects via typeahead description: |- Required scope: workspace.typeahead:read Retrieves objects in the workspace based via an auto-completion/typeahead search algorithm. This feature is meant to provide results quickly, so do not rely on this API to provide extremely accurate search results. The result set is limited to a single page of results with a maximum size, so you won’t be able to fetch large numbers of results. The typeahead search API provides search for objects from a single workspace. This endpoint should be used to query for objects when creating an auto-completion/typeahead search feature. This API is meant to provide results quickly and should not be relied upon for accurate or exhaustive search results. The results sets are limited in size and cannot be paginated. Queries return a compact representation of each object which is typically the gid and name fields. Interested in a specific set of fields or all of the fields?! Of course you are. Use field selectors to manipulate what data is included in a response. Resources with type `user` are returned in order of most contacted to least contacted. This is determined by task assignments, adding the user to projects, and adding the user as a follower to tasks, messages, etc. Resources with type `project` are returned in order of recency. This is determined when the user visits the project, is added to the project, and completes tasks in the project. Resources with type `task` are returned with priority placed on tasks the user is following, but no guarantee on the order of those tasks. Resources with type `project_template` are returned with priority placed on favorited project templates. Leaving the `query` string empty or omitted will give you results, still following the resource ordering above. This could be used to list users or projects that are relevant for the requesting user's api token. tags: - Typeahead operationId: typeaheadForWorkspace parameters: - name: opt_fields in: query description: 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. required: false example: - name schema: type: array items: type: string enum: - name style: form explode: false responses: 200: description: >- Successfully retrieved objects via a typeahead search algorithm. content: application/json: schema: type: object description: >- A generic list of objects, such as those returned by the typeahead search endpoint. properties: data: type: array items: $ref: '#/components/schemas/AsanaNamedResource' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: - workspace.typeahead:read x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); List result = client.typeahead.typeaheadForWorkspace(workspaceGid, count, query, type, resourceType) .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let typeaheadApiInstance = new Asana.TypeaheadApi(client); let workspace_gid = "12345"; // String | Globally unique identifier for the workspace or organization. let resource_type = "user"; // String | The type of values the typeahead should return. You can choose from one of the following: `custom_field`, `goal`, `project`, `project_template`, `portfolio`, `tag`, `task`, `team`, and `user`. Note that unlike in the names of endpoints, the types listed here are in singular form (e.g. `task`). Using multiple types is not yet supported. let opts = { 'type': "user", 'query': "Greg", 'count': 20, 'opt_fields': "name" }; typeaheadApiInstance.typeaheadForWorkspace(workspace_gid, resource_type, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.typeahead.typeaheadForWorkspace(workspaceGid, {param: "value", param: "value", opt_pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class typeahead_api_instance = asana.TypeaheadApi(api_client) workspace_gid = "12345" # str | Globally unique identifier for the workspace or organization. resource_type = "user" # str | The type of values the typeahead should return. You can choose from one of the following: `custom_field`, `goal`, `project`, `project_template`, `portfolio`, `tag`, `task`, `team`, and `user`. Note that unlike in the names of endpoints, the types listed here are in singular form (e.g. `task`). Using multiple types is not yet supported. opts = { 'type': "user", # str | *Deprecated: new integrations should prefer the resource_type field.* 'query': "Greg", # str | The string that will be used to search for relevant objects. If an empty string is passed in, the API will return results. 'count': 20, # int | The number of results to return. The default is 20 if this parameter is omitted, with a minimum of 1 and a maximum of 100. If there are fewer results found than requested, all will be returned. 'opt_fields': "name", # list[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. } try: # Get objects via typeahead api_response = typeahead_api_instance.typeahead_for_workspace(workspace_gid, resource_type, opts) for data in api_response: pprint(data) except ApiException as e: print("Exception when calling TypeaheadApi->typeahead_for_workspace: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.typeahead.typeahead_for_workspace(workspace_gid, {'param': 'value', 'param': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- typeahead->typeaheadForWorkspace($workspace_gid, array('param' => 'value', 'param' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.typeahead.typeahead_for_workspace(workspace_gid: 'workspace_gid', resource_type: ''resource_type_example'', param: "value", param: "value", options: {pretty: true}) /user_task_lists/{user_task_list_gid}: parameters: - $ref: '#/components/parameters/user_task_list_path_gid' - $ref: '#/components/parameters/pretty' get: summary: Get a user task list description: |- Required scope: tasks:read Returns the full record for a user task list. tags: - User task lists operationId: getUserTaskList parameters: - name: opt_fields in: query description: 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. required: false example: - name - owner - workspace schema: type: array items: type: string enum: - name - owner - workspace style: form explode: false responses: 200: description: >- Successfully retrieved the user task list. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/UserTaskListResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: - tasks:read x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); UserTaskList result = client.usertasklists.getUserTaskList(userTaskListGid) .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let userTaskListsApiInstance = new Asana.UserTaskListsApi(client); let user_task_list_gid = "12345"; // String | Globally unique identifier for the user task list. let opts = { 'opt_fields': "name,owner,workspace" }; userTaskListsApiInstance.getUserTaskList(user_task_list_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.usertasklists.getUserTaskList(userTaskListGid, {param: "value", param: "value", opt_pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class user_task_lists_api_instance = asana.UserTaskListsApi(api_client) user_task_list_gid = "12345" # str | Globally unique identifier for the user task list. opts = { 'opt_fields': "name,owner,workspace", # list[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. } try: # Get a user task list api_response = user_task_lists_api_instance.get_user_task_list(user_task_list_gid, opts) pprint(api_response) except ApiException as e: print("Exception when calling UserTaskListsApi->get_user_task_list: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.user_task_lists.get_user_task_list(user_task_list_gid, {'param': 'value', 'param': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- usertasklists->getUserTaskList($user_task_list_gid, array('param' => 'value', 'param' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.user_task_lists.get_user_task_list(user_task_list_gid: 'user_task_list_gid', param: "value", param: "value", options: {pretty: true}) /users/{user_gid}/user_task_list: parameters: - $ref: '#/components/parameters/user_path_gid' - $ref: '#/components/parameters/pretty' - name: workspace in: query required: true description: >- The workspace in which to get the user task list. schema: type: string example: '1234' get: summary: Get a user's task list description: |- Required scope: tasks:read Returns the full record for a user's task list. tags: - User task lists operationId: getUserTaskListForUser parameters: - name: opt_fields in: query description: 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. required: false example: - name - owner - workspace schema: type: array items: type: string enum: - name - owner - workspace style: form explode: false responses: 200: description: >- Successfully retrieved the user's task list. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/UserTaskListResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: - tasks:read x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); UserTaskList result = client.usertasklists.getUserTaskListForUser(userGid, workspace) .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let userTaskListsApiInstance = new Asana.UserTaskListsApi(client); let user_gid = "me"; // String | A string identifying a user. This can either be the string \"me\", an email, or the gid of a user. let workspace = "1234"; // String | The workspace in which to get the user task list. let opts = { 'opt_fields': "name,owner,workspace" }; userTaskListsApiInstance.getUserTaskListForUser(user_gid, workspace, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.usertasklists.getUserTaskListForUser(userGid, {param: "value", param: "value", opt_pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class user_task_lists_api_instance = asana.UserTaskListsApi(api_client) user_gid = "me" # str | A string identifying a user. This can either be the string \"me\", an email, or the gid of a user. workspace = "1234" # str | The workspace in which to get the user task list. opts = { 'opt_fields': "name,owner,workspace", # list[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. } try: # Get a user's task list api_response = user_task_lists_api_instance.get_user_task_list_for_user(user_gid, workspace, opts) pprint(api_response) except ApiException as e: print("Exception when calling UserTaskListsApi->get_user_task_list_for_user: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.user_task_lists.get_user_task_list_for_user(user_gid, {'param': 'value', 'param': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- usertasklists->getUserTaskListForUser($user_gid, array('param' => 'value', 'param' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.user_task_lists.get_user_task_list_for_user(user_gid: 'user_gid', workspace: ''workspace_example'', param: "value", param: "value", options: {pretty: true}) /users: parameters: - name: workspace in: query description: >- The workspace or organization ID to filter users on. schema: type: string example: '1331' - name: team in: query description: >- The team ID to filter users on. schema: type: string example: '15627' - $ref: '#/components/parameters/pretty' - $ref: '#/components/parameters/limit' - $ref: '#/components/parameters/offset' get: summary: Get multiple users description: |- Required scope: users:read Returns the user records for all users in all workspaces and organizations accessible to the authenticated user. Accepts an optional workspace ID parameter. Results are sorted by user ID. tags: - Users operationId: getUsers parameters: - name: opt_fields in: query description: 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. required: false example: - custom_fields - custom_fields.date_value - custom_fields.date_value.date - custom_fields.date_value.date_time - custom_fields.display_value - custom_fields.enabled - custom_fields.enum_options - custom_fields.enum_options.color - custom_fields.enum_options.enabled - custom_fields.enum_options.name - custom_fields.enum_value - custom_fields.enum_value.color - custom_fields.enum_value.enabled - custom_fields.enum_value.name - custom_fields.id_prefix - custom_fields.input_restrictions - custom_fields.is_formula_field - custom_fields.multi_enum_values - custom_fields.multi_enum_values.color - custom_fields.multi_enum_values.enabled - custom_fields.multi_enum_values.name - custom_fields.name - custom_fields.number_value - custom_fields.representation_type - custom_fields.text_value - custom_fields.type - email - name - offset - path - photo - photo.image_1024x1024 - photo.image_128x128 - photo.image_21x21 - photo.image_27x27 - photo.image_36x36 - photo.image_60x60 - uri - workspaces - workspaces.name schema: type: array items: type: string enum: - custom_fields - custom_fields.date_value - custom_fields.date_value.date - custom_fields.date_value.date_time - custom_fields.display_value - custom_fields.enabled - custom_fields.enum_options - custom_fields.enum_options.color - custom_fields.enum_options.enabled - custom_fields.enum_options.name - custom_fields.enum_value - custom_fields.enum_value.color - custom_fields.enum_value.enabled - custom_fields.enum_value.name - custom_fields.id_prefix - custom_fields.input_restrictions - custom_fields.is_formula_field - custom_fields.multi_enum_values - custom_fields.multi_enum_values.color - custom_fields.multi_enum_values.enabled - custom_fields.multi_enum_values.name - custom_fields.name - custom_fields.number_value - custom_fields.representation_type - custom_fields.text_value - custom_fields.type - email - name - offset - path - photo - photo.image_1024x1024 - photo.image_128x128 - photo.image_21x21 - photo.image_27x27 - photo.image_36x36 - photo.image_60x60 - uri - workspaces - workspaces.name style: form explode: false responses: 200: description: >- Successfully retrieved the requested user records. content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/UserCompact' next_page: $ref: '#/components/schemas/NextPage' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: - users:read x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); List result = client.users.getUsers(team, workspace) .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let usersApiInstance = new Asana.UsersApi(client); let opts = { 'workspace': "1331", 'team': "15627", 'limit': 50, 'offset': "eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9", 'opt_fields': "custom_fields,custom_fields.date_value,custom_fields.date_value.date,custom_fields.date_value.date_time,custom_fields.display_value,custom_fields.enabled,custom_fields.enum_options,custom_fields.enum_options.color,custom_fields.enum_options.enabled,custom_fields.enum_options.name,custom_fields.enum_value,custom_fields.enum_value.color,custom_fields.enum_value.enabled,custom_fields.enum_value.name,custom_fields.id_prefix,custom_fields.input_restrictions,custom_fields.is_formula_field,custom_fields.multi_enum_values,custom_fields.multi_enum_values.color,custom_fields.multi_enum_values.enabled,custom_fields.multi_enum_values.name,custom_fields.name,custom_fields.number_value,custom_fields.representation_type,custom_fields.text_value,custom_fields.type,email,name,offset,path,photo,photo.image_1024x1024,photo.image_128x128,photo.image_21x21,photo.image_27x27,photo.image_36x36,photo.image_60x60,uri,workspaces,workspaces.name" }; usersApiInstance.getUsers(opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.users.getUsers({param: "value", param: "value", opt_pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class users_api_instance = asana.UsersApi(api_client) opts = { 'workspace': "1331", # str | The workspace or organization ID to filter users on. 'team': "15627", # str | The team ID to filter users on. 'limit': 50, # int | Results per page. The number of objects to return per page. The value must be between 1 and 100. 'offset': "eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9", # 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': "custom_fields,custom_fields.date_value,custom_fields.date_value.date,custom_fields.date_value.date_time,custom_fields.display_value,custom_fields.enabled,custom_fields.enum_options,custom_fields.enum_options.color,custom_fields.enum_options.enabled,custom_fields.enum_options.name,custom_fields.enum_value,custom_fields.enum_value.color,custom_fields.enum_value.enabled,custom_fields.enum_value.name,custom_fields.id_prefix,custom_fields.input_restrictions,custom_fields.is_formula_field,custom_fields.multi_enum_values,custom_fields.multi_enum_values.color,custom_fields.multi_enum_values.enabled,custom_fields.multi_enum_values.name,custom_fields.name,custom_fields.number_value,custom_fields.representation_type,custom_fields.text_value,custom_fields.type,email,name,offset,path,photo,photo.image_1024x1024,photo.image_128x128,photo.image_21x21,photo.image_27x27,photo.image_36x36,photo.image_60x60,uri,workspaces,workspaces.name", # list[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. } try: # Get multiple users api_response = users_api_instance.get_users(opts) for data in api_response: pprint(data) except ApiException as e: print("Exception when calling UsersApi->get_users: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.users.get_users({'param': 'value', 'param': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- users->getUsers(array('param' => 'value', 'param' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.users.get_users(param: "value", param: "value", options: {pretty: true}) /users/{user_gid}: parameters: - $ref: '#/components/parameters/user_path_gid' - $ref: '#/components/parameters/pretty' - $ref: '#/components/parameters/workspace_query_param' get: summary: Get a user description: |- Required scope: users:read Returns the full user record for the single user with the provided ID. tags: - Users operationId: getUser parameters: - name: opt_fields in: query description: 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. required: false example: - custom_fields - custom_fields.date_value - custom_fields.date_value.date - custom_fields.date_value.date_time - custom_fields.display_value - custom_fields.enabled - custom_fields.enum_options - custom_fields.enum_options.color - custom_fields.enum_options.enabled - custom_fields.enum_options.name - custom_fields.enum_value - custom_fields.enum_value.color - custom_fields.enum_value.enabled - custom_fields.enum_value.name - custom_fields.id_prefix - custom_fields.input_restrictions - custom_fields.is_formula_field - custom_fields.multi_enum_values - custom_fields.multi_enum_values.color - custom_fields.multi_enum_values.enabled - custom_fields.multi_enum_values.name - custom_fields.name - custom_fields.number_value - custom_fields.representation_type - custom_fields.text_value - custom_fields.type - email - name - photo - photo.image_1024x1024 - photo.image_128x128 - photo.image_21x21 - photo.image_27x27 - photo.image_36x36 - photo.image_60x60 - workspaces - workspaces.name schema: type: array items: type: string enum: - custom_fields - custom_fields.date_value - custom_fields.date_value.date - custom_fields.date_value.date_time - custom_fields.display_value - custom_fields.enabled - custom_fields.enum_options - custom_fields.enum_options.color - custom_fields.enum_options.enabled - custom_fields.enum_options.name - custom_fields.enum_value - custom_fields.enum_value.color - custom_fields.enum_value.enabled - custom_fields.enum_value.name - custom_fields.id_prefix - custom_fields.input_restrictions - custom_fields.is_formula_field - custom_fields.multi_enum_values - custom_fields.multi_enum_values.color - custom_fields.multi_enum_values.enabled - custom_fields.multi_enum_values.name - custom_fields.name - custom_fields.number_value - custom_fields.representation_type - custom_fields.text_value - custom_fields.type - email - name - photo - photo.image_1024x1024 - photo.image_128x128 - photo.image_21x21 - photo.image_27x27 - photo.image_36x36 - photo.image_60x60 - workspaces - workspaces.name style: form explode: false responses: 200: description: Returns the user specified. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/UserResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: - users:read x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); User result = client.users.getUser(userGid) .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let usersApiInstance = new Asana.UsersApi(client); let user_gid = "me"; // String | A string identifying a user. This can either be the string \"me\", an email, or the gid of a user. let opts = { 'workspace': "12345", 'opt_fields': "custom_fields,custom_fields.date_value,custom_fields.date_value.date,custom_fields.date_value.date_time,custom_fields.display_value,custom_fields.enabled,custom_fields.enum_options,custom_fields.enum_options.color,custom_fields.enum_options.enabled,custom_fields.enum_options.name,custom_fields.enum_value,custom_fields.enum_value.color,custom_fields.enum_value.enabled,custom_fields.enum_value.name,custom_fields.id_prefix,custom_fields.input_restrictions,custom_fields.is_formula_field,custom_fields.multi_enum_values,custom_fields.multi_enum_values.color,custom_fields.multi_enum_values.enabled,custom_fields.multi_enum_values.name,custom_fields.name,custom_fields.number_value,custom_fields.representation_type,custom_fields.text_value,custom_fields.type,email,name,photo,photo.image_1024x1024,photo.image_128x128,photo.image_21x21,photo.image_27x27,photo.image_36x36,photo.image_60x60,workspaces,workspaces.name" }; usersApiInstance.getUser(user_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.users.getUser(userGid, {param: "value", param: "value", opt_pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class users_api_instance = asana.UsersApi(api_client) user_gid = "me" # str | A string identifying a user. This can either be the string \"me\", an email, or the gid of a user. opts = { 'opt_fields': "custom_fields,custom_fields.date_value,custom_fields.date_value.date,custom_fields.date_value.date_time,custom_fields.display_value,custom_fields.enabled,custom_fields.enum_options,custom_fields.enum_options.color,custom_fields.enum_options.enabled,custom_fields.enum_options.name,custom_fields.enum_value,custom_fields.enum_value.color,custom_fields.enum_value.enabled,custom_fields.enum_value.name,custom_fields.id_prefix,custom_fields.input_restrictions,custom_fields.is_formula_field,custom_fields.multi_enum_values,custom_fields.multi_enum_values.color,custom_fields.multi_enum_values.enabled,custom_fields.multi_enum_values.name,custom_fields.name,custom_fields.number_value,custom_fields.representation_type,custom_fields.text_value,custom_fields.type,email,name,photo,photo.image_1024x1024,photo.image_128x128,photo.image_21x21,photo.image_27x27,photo.image_36x36,photo.image_60x60,workspaces,workspaces.name", # list[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. } try: # Get a user api_response = users_api_instance.get_user(user_gid, opts) pprint(api_response) except ApiException as e: print("Exception when calling UsersApi->get_user: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.users.get_user(user_gid, {'param': 'value', 'param': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- users->getUser($user_gid, array('param' => 'value', 'param' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.users.get_user(user_gid: 'user_gid', param: "value", param: "value", options: {pretty: true}) put: summary: Update a user description: |- A specific, existing user can be updated by making a PUT request on the URL for that user. Only the fields provided in the `data` block will be updated; any unspecified fields will remain unchanged. Returns the complete updated user record. tags: - Users operationId: updateUser parameters: - name: opt_fields in: query description: 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. required: false example: - custom_fields - custom_fields.date_value - custom_fields.date_value.date - custom_fields.date_value.date_time - custom_fields.display_value - custom_fields.enabled - custom_fields.enum_options - custom_fields.enum_options.color - custom_fields.enum_options.enabled - custom_fields.enum_options.name - custom_fields.enum_value - custom_fields.enum_value.color - custom_fields.enum_value.enabled - custom_fields.enum_value.name - custom_fields.id_prefix - custom_fields.input_restrictions - custom_fields.is_formula_field - custom_fields.multi_enum_values - custom_fields.multi_enum_values.color - custom_fields.multi_enum_values.enabled - custom_fields.multi_enum_values.name - custom_fields.name - custom_fields.number_value - custom_fields.representation_type - custom_fields.text_value - custom_fields.type - email - name - photo - photo.image_1024x1024 - photo.image_128x128 - photo.image_21x21 - photo.image_27x27 - photo.image_36x36 - photo.image_60x60 - workspaces - workspaces.name schema: type: array items: type: string enum: - custom_fields - custom_fields.date_value - custom_fields.date_value.date - custom_fields.date_value.date_time - custom_fields.display_value - custom_fields.enabled - custom_fields.enum_options - custom_fields.enum_options.color - custom_fields.enum_options.enabled - custom_fields.enum_options.name - custom_fields.enum_value - custom_fields.enum_value.color - custom_fields.enum_value.enabled - custom_fields.enum_value.name - custom_fields.id_prefix - custom_fields.input_restrictions - custom_fields.is_formula_field - custom_fields.multi_enum_values - custom_fields.multi_enum_values.color - custom_fields.multi_enum_values.enabled - custom_fields.multi_enum_values.name - custom_fields.name - custom_fields.number_value - custom_fields.representation_type - custom_fields.text_value - custom_fields.type - email - name - photo - photo.image_1024x1024 - photo.image_128x128 - photo.image_21x21 - photo.image_27x27 - photo.image_36x36 - photo.image_60x60 - workspaces - workspaces.name style: form explode: false requestBody: description: The user to update. required: true content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/UserUpdateRequest' responses: 200: description: Successfully updated the specified user. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/UserResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: [] x-readme: code-samples: - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let usersApiInstance = new Asana.UsersApi(client); let body = {"data": {"": "", "": "",}}; // Object | The user to update. let user_gid = "me"; // String | A string identifying a user. This can either be the string \"me\", an email, or the gid of a user. let opts = { 'workspace': "12345", 'opt_fields': "custom_fields,custom_fields.date_value,custom_fields.date_value.date,custom_fields.date_value.date_time,custom_fields.display_value,custom_fields.enabled,custom_fields.enum_options,custom_fields.enum_options.color,custom_fields.enum_options.enabled,custom_fields.enum_options.name,custom_fields.enum_value,custom_fields.enum_value.color,custom_fields.enum_value.enabled,custom_fields.enum_value.name,custom_fields.id_prefix,custom_fields.input_restrictions,custom_fields.is_formula_field,custom_fields.multi_enum_values,custom_fields.multi_enum_values.color,custom_fields.multi_enum_values.enabled,custom_fields.multi_enum_values.name,custom_fields.name,custom_fields.number_value,custom_fields.representation_type,custom_fields.text_value,custom_fields.type,email,name,photo,photo.image_1024x1024,photo.image_128x128,photo.image_21x21,photo.image_27x27,photo.image_36x36,photo.image_60x60,workspaces,workspaces.name" }; usersApiInstance.updateUser(body, user_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 /users/{user_gid}/favorites: parameters: - $ref: '#/components/parameters/user_path_gid' - $ref: '#/components/parameters/pretty' - $ref: '#/components/parameters/limit' - $ref: '#/components/parameters/offset' - name: resource_type in: query required: true description: >- The resource type of favorites to be returned. schema: type: string enum: - portfolio - project - tag - task - user - project_template default: project - name: workspace in: query required: true description: >- The workspace in which to get favorites. schema: type: string example: '1234' get: summary: Get a user's favorites description: |- Required scope: users:read Returns all of a user's favorites within a specified workspace and of a given type. The results are ordered exactly as they appear in the user's Asana sidebar in the web application. Note that this endpoint currently only returns favorites for the current user (i.e., the user associated with the authentication token). tags: - Users operationId: getFavoritesForUser parameters: - name: opt_fields in: query description: 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. required: false example: - name - offset - path - uri schema: type: array items: type: string enum: - name - offset - path - uri style: form explode: false responses: 200: description: Returns the specified user's favorites. content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/AsanaNamedResource' next_page: $ref: '#/components/schemas/NextPage' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: - users:read x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); List result = client.users.getFavoritesForUser(userGid, workspace, resourceType) .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let usersApiInstance = new Asana.UsersApi(client); let user_gid = "me"; // String | A string identifying a user. This can either be the string \"me\", an email, or the gid of a user. let resource_type = "project"; // String | The resource type of favorites to be returned. let workspace = "1234"; // String | The workspace in which to get favorites. let opts = { 'limit': 50, 'offset': "eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9", 'opt_fields': "name,offset,path,uri" }; usersApiInstance.getFavoritesForUser(user_gid, resource_type, workspace, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.users.getFavoritesForUser(userGid, {param: "value", param: "value", opt_pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class users_api_instance = asana.UsersApi(api_client) user_gid = "me" # str | A string identifying a user. This can either be the string \"me\", an email, or the gid of a user. resource_type = "project" # str | The resource type of favorites to be returned. workspace = "1234" # str | The workspace in which to get favorites. opts = { 'limit': 50, # int | Results per page. The number of objects to return per page. The value must be between 1 and 100. 'offset': "eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9", # 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': "name,offset,path,uri", # list[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. } try: # Get a user's favorites api_response = users_api_instance.get_favorites_for_user(user_gid, resource_type, workspace, opts) for data in api_response: pprint(data) except ApiException as e: print("Exception when calling UsersApi->get_favorites_for_user: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.users.get_favorites_for_user(user_gid, {'param': 'value', 'param': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- users->getFavoritesForUser($user_gid, array('param' => 'value', 'param' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.users.get_favorites_for_user(user_gid: 'user_gid', resource_type: ''resource_type_example'', workspace: ''workspace_example'', param: "value", param: "value", options: {pretty: true}) /teams/{team_gid}/users: parameters: - $ref: '#/components/parameters/team_path_gid' - $ref: '#/components/parameters/pretty' - $ref: '#/components/parameters/offset' get: summary: Get users in a team description: |- Required scope: users:read Returns the compact records for all users that are members of the team. Results are sorted alphabetically and limited to 2000. For more results use the `/users` endpoint. tags: - Users operationId: getUsersForTeam parameters: - name: opt_fields in: query description: 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. required: false example: - custom_fields - custom_fields.date_value - custom_fields.date_value.date - custom_fields.date_value.date_time - custom_fields.display_value - custom_fields.enabled - custom_fields.enum_options - custom_fields.enum_options.color - custom_fields.enum_options.enabled - custom_fields.enum_options.name - custom_fields.enum_value - custom_fields.enum_value.color - custom_fields.enum_value.enabled - custom_fields.enum_value.name - custom_fields.id_prefix - custom_fields.input_restrictions - custom_fields.is_formula_field - custom_fields.multi_enum_values - custom_fields.multi_enum_values.color - custom_fields.multi_enum_values.enabled - custom_fields.multi_enum_values.name - custom_fields.name - custom_fields.number_value - custom_fields.representation_type - custom_fields.text_value - custom_fields.type - email - name - photo - photo.image_1024x1024 - photo.image_128x128 - photo.image_21x21 - photo.image_27x27 - photo.image_36x36 - photo.image_60x60 - workspaces - workspaces.name schema: type: array items: type: string enum: - custom_fields - custom_fields.date_value - custom_fields.date_value.date - custom_fields.date_value.date_time - custom_fields.display_value - custom_fields.enabled - custom_fields.enum_options - custom_fields.enum_options.color - custom_fields.enum_options.enabled - custom_fields.enum_options.name - custom_fields.enum_value - custom_fields.enum_value.color - custom_fields.enum_value.enabled - custom_fields.enum_value.name - custom_fields.id_prefix - custom_fields.input_restrictions - custom_fields.is_formula_field - custom_fields.multi_enum_values - custom_fields.multi_enum_values.color - custom_fields.multi_enum_values.enabled - custom_fields.multi_enum_values.name - custom_fields.name - custom_fields.number_value - custom_fields.representation_type - custom_fields.text_value - custom_fields.type - email - name - photo - photo.image_1024x1024 - photo.image_128x128 - photo.image_21x21 - photo.image_27x27 - photo.image_36x36 - photo.image_60x60 - workspaces - workspaces.name style: form explode: false responses: 200: description: >- Returns the user records for all the members of the team, including guests and limited access users. content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/UserCompact' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: - users:read x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); List result = client.users.getUsersForTeam(teamGid) .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let usersApiInstance = new Asana.UsersApi(client); let team_gid = "159874"; // String | Globally unique identifier for the team. let opts = { 'offset': "eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9", 'opt_fields': "custom_fields,custom_fields.date_value,custom_fields.date_value.date,custom_fields.date_value.date_time,custom_fields.display_value,custom_fields.enabled,custom_fields.enum_options,custom_fields.enum_options.color,custom_fields.enum_options.enabled,custom_fields.enum_options.name,custom_fields.enum_value,custom_fields.enum_value.color,custom_fields.enum_value.enabled,custom_fields.enum_value.name,custom_fields.id_prefix,custom_fields.input_restrictions,custom_fields.is_formula_field,custom_fields.multi_enum_values,custom_fields.multi_enum_values.color,custom_fields.multi_enum_values.enabled,custom_fields.multi_enum_values.name,custom_fields.name,custom_fields.number_value,custom_fields.representation_type,custom_fields.text_value,custom_fields.type,email,name,photo,photo.image_1024x1024,photo.image_128x128,photo.image_21x21,photo.image_27x27,photo.image_36x36,photo.image_60x60,workspaces,workspaces.name" }; usersApiInstance.getUsersForTeam(team_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.users.getUsersForTeam(teamGid, {param: "value", param: "value", opt_pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class users_api_instance = asana.UsersApi(api_client) team_gid = "159874" # str | Globally unique identifier for the team. opts = { 'offset': "eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9", # 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': "custom_fields,custom_fields.date_value,custom_fields.date_value.date,custom_fields.date_value.date_time,custom_fields.display_value,custom_fields.enabled,custom_fields.enum_options,custom_fields.enum_options.color,custom_fields.enum_options.enabled,custom_fields.enum_options.name,custom_fields.enum_value,custom_fields.enum_value.color,custom_fields.enum_value.enabled,custom_fields.enum_value.name,custom_fields.id_prefix,custom_fields.input_restrictions,custom_fields.is_formula_field,custom_fields.multi_enum_values,custom_fields.multi_enum_values.color,custom_fields.multi_enum_values.enabled,custom_fields.multi_enum_values.name,custom_fields.name,custom_fields.number_value,custom_fields.representation_type,custom_fields.text_value,custom_fields.type,email,name,photo,photo.image_1024x1024,photo.image_128x128,photo.image_21x21,photo.image_27x27,photo.image_36x36,photo.image_60x60,workspaces,workspaces.name", # list[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. } try: # Get users in a team api_response = users_api_instance.get_users_for_team(team_gid, opts) for data in api_response: pprint(data) except ApiException as e: print("Exception when calling UsersApi->get_users_for_team: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.users.get_users_for_team(team_gid, {'param': 'value', 'param': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- users->getUsersForTeam($team_gid, array('param' => 'value', 'param' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.users.get_users_for_team(team_gid: 'team_gid', param: "value", param: "value", options: {pretty: true}) /workspaces/{workspace_gid}/users: parameters: - $ref: '#/components/parameters/workspace_path_gid' - $ref: '#/components/parameters/pretty' - $ref: '#/components/parameters/offset' get: summary: >- Get users in a workspace or organization description: |- Required scope: users:read Returns the compact records for all users in the specified workspace or organization. Results are sorted alphabetically and limited to 2000. For more results use the `/users` endpoint. tags: - Users operationId: getUsersForWorkspace parameters: - name: opt_fields in: query description: 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. required: false example: - custom_fields - custom_fields.date_value - custom_fields.date_value.date - custom_fields.date_value.date_time - custom_fields.display_value - custom_fields.enabled - custom_fields.enum_options - custom_fields.enum_options.color - custom_fields.enum_options.enabled - custom_fields.enum_options.name - custom_fields.enum_value - custom_fields.enum_value.color - custom_fields.enum_value.enabled - custom_fields.enum_value.name - custom_fields.id_prefix - custom_fields.input_restrictions - custom_fields.is_formula_field - custom_fields.multi_enum_values - custom_fields.multi_enum_values.color - custom_fields.multi_enum_values.enabled - custom_fields.multi_enum_values.name - custom_fields.name - custom_fields.number_value - custom_fields.representation_type - custom_fields.text_value - custom_fields.type - email - name - photo - photo.image_1024x1024 - photo.image_128x128 - photo.image_21x21 - photo.image_27x27 - photo.image_36x36 - photo.image_60x60 - workspaces - workspaces.name schema: type: array items: type: string enum: - custom_fields - custom_fields.date_value - custom_fields.date_value.date - custom_fields.date_value.date_time - custom_fields.display_value - custom_fields.enabled - custom_fields.enum_options - custom_fields.enum_options.color - custom_fields.enum_options.enabled - custom_fields.enum_options.name - custom_fields.enum_value - custom_fields.enum_value.color - custom_fields.enum_value.enabled - custom_fields.enum_value.name - custom_fields.id_prefix - custom_fields.input_restrictions - custom_fields.is_formula_field - custom_fields.multi_enum_values - custom_fields.multi_enum_values.color - custom_fields.multi_enum_values.enabled - custom_fields.multi_enum_values.name - custom_fields.name - custom_fields.number_value - custom_fields.representation_type - custom_fields.text_value - custom_fields.type - email - name - photo - photo.image_1024x1024 - photo.image_128x128 - photo.image_21x21 - photo.image_27x27 - photo.image_36x36 - photo.image_60x60 - workspaces - workspaces.name style: form explode: false responses: 200: description: Return the users in the specified workspace or org. content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/UserCompact' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: - users:read x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); List result = client.users.getUsersForWorkspace(workspaceGid) .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let usersApiInstance = new Asana.UsersApi(client); let workspace_gid = "12345"; // String | Globally unique identifier for the workspace or organization. let opts = { 'offset': "eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9", 'opt_fields': "custom_fields,custom_fields.date_value,custom_fields.date_value.date,custom_fields.date_value.date_time,custom_fields.display_value,custom_fields.enabled,custom_fields.enum_options,custom_fields.enum_options.color,custom_fields.enum_options.enabled,custom_fields.enum_options.name,custom_fields.enum_value,custom_fields.enum_value.color,custom_fields.enum_value.enabled,custom_fields.enum_value.name,custom_fields.id_prefix,custom_fields.input_restrictions,custom_fields.is_formula_field,custom_fields.multi_enum_values,custom_fields.multi_enum_values.color,custom_fields.multi_enum_values.enabled,custom_fields.multi_enum_values.name,custom_fields.name,custom_fields.number_value,custom_fields.representation_type,custom_fields.text_value,custom_fields.type,email,name,photo,photo.image_1024x1024,photo.image_128x128,photo.image_21x21,photo.image_27x27,photo.image_36x36,photo.image_60x60,workspaces,workspaces.name" }; usersApiInstance.getUsersForWorkspace(workspace_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.users.getUsersForWorkspace(workspaceGid, {param: "value", param: "value", opt_pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class users_api_instance = asana.UsersApi(api_client) workspace_gid = "12345" # str | Globally unique identifier for the workspace or organization. opts = { 'offset': "eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9", # 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': "custom_fields,custom_fields.date_value,custom_fields.date_value.date,custom_fields.date_value.date_time,custom_fields.display_value,custom_fields.enabled,custom_fields.enum_options,custom_fields.enum_options.color,custom_fields.enum_options.enabled,custom_fields.enum_options.name,custom_fields.enum_value,custom_fields.enum_value.color,custom_fields.enum_value.enabled,custom_fields.enum_value.name,custom_fields.id_prefix,custom_fields.input_restrictions,custom_fields.is_formula_field,custom_fields.multi_enum_values,custom_fields.multi_enum_values.color,custom_fields.multi_enum_values.enabled,custom_fields.multi_enum_values.name,custom_fields.name,custom_fields.number_value,custom_fields.representation_type,custom_fields.text_value,custom_fields.type,email,name,photo,photo.image_1024x1024,photo.image_128x128,photo.image_21x21,photo.image_27x27,photo.image_36x36,photo.image_60x60,workspaces,workspaces.name", # list[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. } try: # Get users in a workspace or organization api_response = users_api_instance.get_users_for_workspace(workspace_gid, opts) for data in api_response: pprint(data) except ApiException as e: print("Exception when calling UsersApi->get_users_for_workspace: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.users.get_users_for_workspace(workspace_gid, {'param': 'value', 'param': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- users->getUsersForWorkspace($workspace_gid, array('param' => 'value', 'param' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.users.get_users_for_workspace(workspace_gid: 'workspace_gid', param: "value", param: "value", options: {pretty: true}) /workspaces/{workspace_gid}/users/{user_gid}: parameters: - $ref: '#/components/parameters/workspace_path_gid' - $ref: '#/components/parameters/user_path_gid' - $ref: '#/components/parameters/pretty' get: summary: Get a user in a workspace or organization description: |- Required scope: users:read Returns the full user record for the single user with the provided ID in the specified workspace or organization. tags: - Users operationId: getUserForWorkspace parameters: - name: opt_fields in: query description: 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. required: false example: - custom_fields - custom_fields.date_value - custom_fields.date_value.date - custom_fields.date_value.date_time - custom_fields.display_value - custom_fields.enabled - custom_fields.enum_options - custom_fields.enum_options.color - custom_fields.enum_options.enabled - custom_fields.enum_options.name - custom_fields.enum_value - custom_fields.enum_value.color - custom_fields.enum_value.enabled - custom_fields.enum_value.name - custom_fields.id_prefix - custom_fields.input_restrictions - custom_fields.is_formula_field - custom_fields.multi_enum_values - custom_fields.multi_enum_values.color - custom_fields.multi_enum_values.enabled - custom_fields.multi_enum_values.name - custom_fields.name - custom_fields.number_value - custom_fields.representation_type - custom_fields.text_value - custom_fields.type - email - name - photo - photo.image_1024x1024 - photo.image_128x128 - photo.image_21x21 - photo.image_27x27 - photo.image_36x36 - photo.image_60x60 - workspaces - workspaces.name schema: type: array items: type: string enum: - custom_fields - custom_fields.date_value - custom_fields.date_value.date - custom_fields.date_value.date_time - custom_fields.display_value - custom_fields.enabled - custom_fields.enum_options - custom_fields.enum_options.color - custom_fields.enum_options.enabled - custom_fields.enum_options.name - custom_fields.enum_value - custom_fields.enum_value.color - custom_fields.enum_value.enabled - custom_fields.enum_value.name - custom_fields.id_prefix - custom_fields.input_restrictions - custom_fields.is_formula_field - custom_fields.multi_enum_values - custom_fields.multi_enum_values.color - custom_fields.multi_enum_values.enabled - custom_fields.multi_enum_values.name - custom_fields.name - custom_fields.number_value - custom_fields.representation_type - custom_fields.text_value - custom_fields.type - email - name - photo - photo.image_1024x1024 - photo.image_128x128 - photo.image_21x21 - photo.image_27x27 - photo.image_36x36 - photo.image_60x60 - workspaces - workspaces.name style: form explode: false responses: 200: description: Returns the user specified. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/UserResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: - users:read x-readme: code-samples: - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let usersApiInstance = new Asana.UsersApi(client); let workspace_gid = "12345"; // String | Globally unique identifier for the workspace or organization. let user_gid = "me"; // String | A string identifying a user. This can either be the string \"me\", an email, or the gid of a user. let opts = { 'opt_fields': "custom_fields,custom_fields.date_value,custom_fields.date_value.date,custom_fields.date_value.date_time,custom_fields.display_value,custom_fields.enabled,custom_fields.enum_options,custom_fields.enum_options.color,custom_fields.enum_options.enabled,custom_fields.enum_options.name,custom_fields.enum_value,custom_fields.enum_value.color,custom_fields.enum_value.enabled,custom_fields.enum_value.name,custom_fields.id_prefix,custom_fields.input_restrictions,custom_fields.is_formula_field,custom_fields.multi_enum_values,custom_fields.multi_enum_values.color,custom_fields.multi_enum_values.enabled,custom_fields.multi_enum_values.name,custom_fields.name,custom_fields.number_value,custom_fields.representation_type,custom_fields.text_value,custom_fields.type,email,name,photo,photo.image_1024x1024,photo.image_128x128,photo.image_21x21,photo.image_27x27,photo.image_36x36,photo.image_60x60,workspaces,workspaces.name" }; usersApiInstance.getUserForWorkspace(workspace_gid, user_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 put: summary: Update a user in a workspace or organization description: >- An existing user can be updated by making a PUT request on the URL for that user in the specified workspace or organization. Only the fields provided in the `data` block will be updated; any unspecified fields will remain unchanged. tags: - Users operationId: updateUserForWorkspace parameters: - name: opt_fields in: query description: 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. required: false example: - custom_fields - custom_fields.date_value - custom_fields.date_value.date - custom_fields.date_value.date_time - custom_fields.display_value - custom_fields.enabled - custom_fields.enum_options - custom_fields.enum_options.color - custom_fields.enum_options.enabled - custom_fields.enum_options.name - custom_fields.enum_value - custom_fields.enum_value.color - custom_fields.enum_value.enabled - custom_fields.enum_value.name - custom_fields.id_prefix - custom_fields.input_restrictions - custom_fields.is_formula_field - custom_fields.multi_enum_values - custom_fields.multi_enum_values.color - custom_fields.multi_enum_values.enabled - custom_fields.multi_enum_values.name - custom_fields.name - custom_fields.number_value - custom_fields.representation_type - custom_fields.text_value - custom_fields.type - email - name - photo - photo.image_1024x1024 - photo.image_128x128 - photo.image_21x21 - photo.image_27x27 - photo.image_36x36 - photo.image_60x60 - workspaces - workspaces.name schema: type: array items: type: string enum: - custom_fields - custom_fields.date_value - custom_fields.date_value.date - custom_fields.date_value.date_time - custom_fields.display_value - custom_fields.enabled - custom_fields.enum_options - custom_fields.enum_options.color - custom_fields.enum_options.enabled - custom_fields.enum_options.name - custom_fields.enum_value - custom_fields.enum_value.color - custom_fields.enum_value.enabled - custom_fields.enum_value.name - custom_fields.id_prefix - custom_fields.input_restrictions - custom_fields.is_formula_field - custom_fields.multi_enum_values - custom_fields.multi_enum_values.color - custom_fields.multi_enum_values.enabled - custom_fields.multi_enum_values.name - custom_fields.name - custom_fields.number_value - custom_fields.representation_type - custom_fields.text_value - custom_fields.type - email - name - photo - photo.image_1024x1024 - photo.image_128x128 - photo.image_21x21 - photo.image_27x27 - photo.image_36x36 - photo.image_60x60 - workspaces - workspaces.name style: form explode: false requestBody: description: The user to update. required: true content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/UserUpdateRequest' responses: 200: description: Successfully updated the specified user. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/UserResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: [] x-readme: code-samples: - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let usersApiInstance = new Asana.UsersApi(client); let body = {"data": {"": "", "": "",}}; // Object | The user to update. let workspace_gid = "12345"; // String | Globally unique identifier for the workspace or organization. let user_gid = "me"; // String | A string identifying a user. This can either be the string \"me\", an email, or the gid of a user. let opts = { 'opt_fields': "custom_fields,custom_fields.date_value,custom_fields.date_value.date,custom_fields.date_value.date_time,custom_fields.display_value,custom_fields.enabled,custom_fields.enum_options,custom_fields.enum_options.color,custom_fields.enum_options.enabled,custom_fields.enum_options.name,custom_fields.enum_value,custom_fields.enum_value.color,custom_fields.enum_value.enabled,custom_fields.enum_value.name,custom_fields.id_prefix,custom_fields.input_restrictions,custom_fields.is_formula_field,custom_fields.multi_enum_values,custom_fields.multi_enum_values.color,custom_fields.multi_enum_values.enabled,custom_fields.multi_enum_values.name,custom_fields.name,custom_fields.number_value,custom_fields.representation_type,custom_fields.text_value,custom_fields.type,email,name,photo,photo.image_1024x1024,photo.image_128x128,photo.image_21x21,photo.image_27x27,photo.image_36x36,photo.image_60x60,workspaces,workspaces.name" }; usersApiInstance.updateUserForWorkspace(body, workspace_gid, user_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 /webhooks: parameters: - $ref: '#/components/parameters/pretty' get: summary: >- Get multiple webhooks description: |- Required scope: webhooks:read Get the compact representation of all webhooks your app has registered for the authenticated user in the given workspace. tags: - Webhooks operationId: getWebhooks parameters: - $ref: '#/components/parameters/limit' - $ref: '#/components/parameters/offset' - name: workspace in: query required: true description: >- The workspace to query for webhooks in. schema: type: string example: '1331' - name: resource in: query description: Only return webhooks for the given resource. schema: type: string example: '51648' - name: opt_fields in: query description: 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. required: false example: - active - created_at - delivery_retry_count - failure_deletion_timestamp - filters - filters.action - filters.fields - filters.resource_subtype - last_failure_at - last_failure_content - last_success_at - next_attempt_after - offset - path - resource - resource.name - target - uri schema: type: array items: type: string enum: - active - created_at - delivery_retry_count - failure_deletion_timestamp - filters - filters.action - filters.fields - filters.resource_subtype - last_failure_at - last_failure_content - last_success_at - next_attempt_after - offset - path - resource - resource.name - target - uri style: form explode: false responses: 200: description: Successfully retrieved the requested webhooks. content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/WebhookResponse' next_page: $ref: '#/components/schemas/NextPage' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: - webhooks:read x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); List result = client.webhooks.getWebhooks(resource, workspace) .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let webhooksApiInstance = new Asana.WebhooksApi(client); let workspace = "1331"; // String | The workspace to query for webhooks in. let opts = { 'limit': 50, 'offset': "eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9", 'resource': "51648", 'opt_fields': "active,created_at,delivery_retry_count,failure_deletion_timestamp,filters,filters.action,filters.fields,filters.resource_subtype,last_failure_at,last_failure_content,last_success_at,next_attempt_after,offset,path,resource,resource.name,target,uri" }; webhooksApiInstance.getWebhooks(workspace, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.webhooks.getWebhooks({param: "value", param: "value", opt_pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class webhooks_api_instance = asana.WebhooksApi(api_client) workspace = "1331" # str | The workspace to query for webhooks in. opts = { 'limit': 50, # int | Results per page. The number of objects to return per page. The value must be between 1 and 100. 'offset': "eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9", # 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': "51648", # str | Only return webhooks for the given resource. 'opt_fields': "active,created_at,delivery_retry_count,failure_deletion_timestamp,filters,filters.action,filters.fields,filters.resource_subtype,last_failure_at,last_failure_content,last_success_at,next_attempt_after,offset,path,resource,resource.name,target,uri", # list[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. } try: # Get multiple webhooks api_response = webhooks_api_instance.get_webhooks(workspace, opts) for data in api_response: pprint(data) except ApiException as e: print("Exception when calling WebhooksApi->get_webhooks: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.webhooks.get_webhooks({'param': 'value', 'param': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- webhooks->getWebhooks(array('param' => 'value', 'param' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.webhooks.get_webhooks(workspace: ''workspace_example'', param: "value", param: "value", options: {pretty: true}) post: summary: >- Establish a webhook description: |- Required scope: webhooks:write Establishing a webhook is a two-part process. First, a simple HTTP POST request initiates the creation similar to creating any other resource. Next, in the middle of this request comes the confirmation handshake. When a webhook is created, we will send a test POST to the target with an `X-Hook-Secret` header. The target must respond with a `200 OK` or `204 No Content` and a matching `X-Hook-Secret` header to confirm that this webhook subscription is indeed expected. We strongly recommend storing this secret to be used to verify future webhook event signatures. The POST request to create the webhook will then return with the status of the request. If you do not acknowledge the webhook’s confirmation handshake it will fail to setup, and you will receive an error in response to your attempt to create it. This means you need to be able to receive and complete the webhook *while* the POST request is in-flight (in other words, have a server that can handle requests asynchronously). Invalid hostnames like localhost will receive a 403 Forbidden status code. ``` # Request curl -H "Authorization: Bearer " \ -X POST https://app.asana.com/api/1.0/webhooks \ -d "resource=8675309" \ -d "target=https://example.com/receive-webhook/7654" ``` ``` # Handshake sent to https://example.com/ POST /receive-webhook/7654 X-Hook-Secret: b537207f20cbfa02357cf448134da559e8bd39d61597dcd5631b8012eae53e81 ``` ``` # Handshake response sent by example.com HTTP/1.1 200 X-Hook-Secret: b537207f20cbfa02357cf448134da559e8bd39d61597dcd5631b8012eae53e81 ``` ``` # Response HTTP/1.1 201 { "data": { "gid": "43214", "resource": { "gid": "8675309", "name": "Bugs" }, "target": "https://example.com/receive-webhook/7654", "active": false, "last_success_at": null, "last_failure_at": null, "last_failure_content": null }, "X-Hook-Secret": "b537207f20cbfa02357cf448134da559e8bd39d61597dcd5631b8012eae53e81" } ``` tags: - Webhooks operationId: createWebhook parameters: - name: opt_fields in: query description: 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. required: false example: - active - created_at - delivery_retry_count - failure_deletion_timestamp - filters - filters.action - filters.fields - filters.resource_subtype - last_failure_at - last_failure_content - last_success_at - next_attempt_after - resource - resource.name - target schema: type: array items: type: string enum: - active - created_at - delivery_retry_count - failure_deletion_timestamp - filters - filters.action - filters.fields - filters.resource_subtype - last_failure_at - last_failure_content - last_success_at - next_attempt_after - resource - resource.name - target style: form explode: false requestBody: description: The webhook workspace and target. required: true content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/WebhookRequest' responses: 201: description: Successfully created the requested webhook. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/WebhookResponse' X-Hook-Secret: type: string description: >- The secret to be used to verify future webhook event signatures. example: b537207f20cbfa02357cf448134da559e8bd39d61597dcd5631b8012eae53e81 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: - webhooks:write x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); Webhook result = client.webhooks.createWebhook() .data("field", "value") .data("field", "value") .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let webhooksApiInstance = new Asana.WebhooksApi(client); let body = {"data": {"": "", "": "",}}; // Object | The webhook workspace and target. let opts = { 'opt_fields': "active,created_at,delivery_retry_count,failure_deletion_timestamp,filters,filters.action,filters.fields,filters.resource_subtype,last_failure_at,last_failure_content,last_success_at,next_attempt_after,resource,resource.name,target" }; webhooksApiInstance.createWebhook(body, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.webhooks.createWebhook({field: "value", field: "value", pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class webhooks_api_instance = asana.WebhooksApi(api_client) body = {"data": {"": "", "": "",}} # dict | The webhook workspace and target. opts = { 'opt_fields': "active,created_at,delivery_retry_count,failure_deletion_timestamp,filters,filters.action,filters.fields,filters.resource_subtype,last_failure_at,last_failure_content,last_success_at,next_attempt_after,resource,resource.name,target", # list[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. } try: # Establish a webhook api_response = webhooks_api_instance.create_webhook(body, opts) pprint(api_response) except ApiException as e: print("Exception when calling WebhooksApi->create_webhook: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.webhooks.create_webhook({'field': 'value', 'field': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- webhooks->createWebhook(array('field' => 'value', 'field' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.webhooks.create_webhook(field: "value", field: "value", options: {pretty: true}) /webhooks/{webhook_gid}: parameters: - $ref: '#/components/parameters/webhook_path_gid' - $ref: '#/components/parameters/pretty' get: summary: >- Get a webhook description: |- Required scope: webhooks:read Returns the full record for the given webhook. tags: - Webhooks operationId: getWebhook parameters: - name: opt_fields in: query description: 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. required: false example: - active - created_at - delivery_retry_count - failure_deletion_timestamp - filters - filters.action - filters.fields - filters.resource_subtype - last_failure_at - last_failure_content - last_success_at - next_attempt_after - resource - resource.name - target schema: type: array items: type: string enum: - active - created_at - delivery_retry_count - failure_deletion_timestamp - filters - filters.action - filters.fields - filters.resource_subtype - last_failure_at - last_failure_content - last_success_at - next_attempt_after - resource - resource.name - target style: form explode: false responses: 200: description: Successfully retrieved the requested webhook. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/WebhookResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: - webhooks:read x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); Webhook result = client.webhooks.getWebhook(webhookGid) .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let webhooksApiInstance = new Asana.WebhooksApi(client); let webhook_gid = "12345"; // String | Globally unique identifier for the webhook. let opts = { 'opt_fields': "active,created_at,delivery_retry_count,failure_deletion_timestamp,filters,filters.action,filters.fields,filters.resource_subtype,last_failure_at,last_failure_content,last_success_at,next_attempt_after,resource,resource.name,target" }; webhooksApiInstance.getWebhook(webhook_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.webhooks.getWebhook(webhookGid, {param: "value", param: "value", opt_pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class webhooks_api_instance = asana.WebhooksApi(api_client) webhook_gid = "12345" # str | Globally unique identifier for the webhook. opts = { 'opt_fields': "active,created_at,delivery_retry_count,failure_deletion_timestamp,filters,filters.action,filters.fields,filters.resource_subtype,last_failure_at,last_failure_content,last_success_at,next_attempt_after,resource,resource.name,target", # list[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. } try: # Get a webhook api_response = webhooks_api_instance.get_webhook(webhook_gid, opts) pprint(api_response) except ApiException as e: print("Exception when calling WebhooksApi->get_webhook: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.webhooks.get_webhook(webhook_gid, {'param': 'value', 'param': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- webhooks->getWebhook($webhook_gid, array('param' => 'value', 'param' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.webhooks.get_webhook(webhook_gid: 'webhook_gid', param: "value", param: "value", options: {pretty: true}) put: summary: >- Update a webhook description: |- Required scope: webhooks:write An existing webhook's filters can be updated by making a PUT request on the URL for that webhook. Note that the webhook's previous `filters` array will be completely overwritten by the `filters` sent in the PUT request. tags: - Webhooks operationId: updateWebhook parameters: - name: opt_fields in: query description: 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. required: false example: - active - created_at - delivery_retry_count - failure_deletion_timestamp - filters - filters.action - filters.fields - filters.resource_subtype - last_failure_at - last_failure_content - last_success_at - next_attempt_after - resource - resource.name - target schema: type: array items: type: string enum: - active - created_at - delivery_retry_count - failure_deletion_timestamp - filters - filters.action - filters.fields - filters.resource_subtype - last_failure_at - last_failure_content - last_success_at - next_attempt_after - resource - resource.name - target style: form explode: false requestBody: description: The updated filters for the webhook. required: true content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/WebhookUpdateRequest' responses: 200: description: Successfully updated the webhook. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/WebhookResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: - webhooks:write x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); Webhook result = client.webhooks.updateWebhook(webhookGid) .data("field", "value") .data("field", "value") .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let webhooksApiInstance = new Asana.WebhooksApi(client); let body = {"data": {"": "", "": "",}}; // Object | The updated filters for the webhook. let webhook_gid = "12345"; // String | Globally unique identifier for the webhook. let opts = { 'opt_fields': "active,created_at,delivery_retry_count,failure_deletion_timestamp,filters,filters.action,filters.fields,filters.resource_subtype,last_failure_at,last_failure_content,last_success_at,next_attempt_after,resource,resource.name,target" }; webhooksApiInstance.updateWebhook(body, webhook_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.webhooks.updateWebhook(webhookGid, {field: "value", field: "value", pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class webhooks_api_instance = asana.WebhooksApi(api_client) body = {"data": {"": "", "": "",}} # dict | The updated filters for the webhook. webhook_gid = "12345" # str | Globally unique identifier for the webhook. opts = { 'opt_fields': "active,created_at,delivery_retry_count,failure_deletion_timestamp,filters,filters.action,filters.fields,filters.resource_subtype,last_failure_at,last_failure_content,last_success_at,next_attempt_after,resource,resource.name,target", # list[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. } try: # Update a webhook api_response = webhooks_api_instance.update_webhook(body, webhook_gid, opts) pprint(api_response) except ApiException as e: print("Exception when calling WebhooksApi->update_webhook: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.webhooks.update_webhook(webhook_gid, {'field': 'value', 'field': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- webhooks->updateWebhook($webhook_gid, array('field' => 'value', 'field' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.webhooks.update_webhook(webhook_gid: 'webhook_gid', field: "value", field: "value", options: {pretty: true}) delete: summary: Delete a webhook description: |- Required scope: webhooks:delete This method *permanently* removes a webhook. Note that it may be possible to receive a request that was already in flight after deleting the webhook, but no further requests will be issued. tags: - Webhooks operationId: deleteWebhook responses: 200: description: Successfully retrieved the requested webhook. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/EmptyResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: - webhooks:delete x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); JsonElement result = client.webhooks.deleteWebhook(webhookGid) .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let webhooksApiInstance = new Asana.WebhooksApi(client); let webhook_gid = "12345"; // String | Globally unique identifier for the webhook. webhooksApiInstance.deleteWebhook(webhook_gid).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.webhooks.deleteWebhook(webhookGid) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class webhooks_api_instance = asana.WebhooksApi(api_client) webhook_gid = "12345" # str | Globally unique identifier for the webhook. try: # Delete a webhook api_response = webhooks_api_instance.delete_webhook(webhook_gid) pprint(api_response) except ApiException as e: print("Exception when calling WebhooksApi->delete_webhook: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.webhooks.delete_webhook(webhook_gid, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- webhooks->deleteWebhook($webhook_gid, array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.webhooks.delete_webhook(webhook_gid: 'webhook_gid', options: {pretty: true}) /workspace_memberships/{workspace_membership_gid}: parameters: - $ref: '#/components/parameters/workspace_membership_path_gid' - $ref: '#/components/parameters/pretty' get: summary: Get a workspace membership description: >- Returns the complete workspace record for a single workspace membership. tags: - Workspace memberships operationId: getWorkspaceMembership parameters: - name: opt_fields in: query description: 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. required: false example: - created_at - is_active - is_admin - is_guest - is_view_only - user - user.name - user_task_list - user_task_list.name - user_task_list.owner - user_task_list.workspace - vacation_dates - vacation_dates.end_on - vacation_dates.start_on - workspace - workspace.name schema: type: array items: type: string enum: - created_at - is_active - is_admin - is_guest - is_view_only - user - user.name - user_task_list - user_task_list.name - user_task_list.owner - user_task_list.workspace - vacation_dates - vacation_dates.end_on - vacation_dates.start_on - workspace - workspace.name style: form explode: false responses: 200: description: >- Successfully retrieved the requested workspace membership. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/WorkspaceMembershipResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: [] x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); JsonElement result = client.workspacememberships.getWorkspaceMembership(workspaceMembershipGid) .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let workspaceMembershipsApiInstance = new Asana.WorkspaceMembershipsApi(client); let workspace_membership_gid = "12345"; // String | let opts = { 'opt_fields': "created_at,is_active,is_admin,is_guest,is_view_only,user,user.name,user_task_list,user_task_list.name,user_task_list.owner,user_task_list.workspace,vacation_dates,vacation_dates.end_on,vacation_dates.start_on,workspace,workspace.name" }; workspaceMembershipsApiInstance.getWorkspaceMembership(workspace_membership_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.workspacememberships.getWorkspaceMembership(workspaceMembershipGid, {param: "value", param: "value", opt_pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class workspace_memberships_api_instance = asana.WorkspaceMembershipsApi(api_client) workspace_membership_gid = "12345" # str | opts = { 'opt_fields': "created_at,is_active,is_admin,is_guest,is_view_only,user,user.name,user_task_list,user_task_list.name,user_task_list.owner,user_task_list.workspace,vacation_dates,vacation_dates.end_on,vacation_dates.start_on,workspace,workspace.name", # list[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. } try: # Get a workspace membership api_response = workspace_memberships_api_instance.get_workspace_membership(workspace_membership_gid, opts) pprint(api_response) except ApiException as e: print("Exception when calling WorkspaceMembershipsApi->get_workspace_membership: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.workspace_memberships.get_workspace_membership(workspace_membership_gid, {'param': 'value', 'param': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- workspacememberships->getWorkspaceMembership($workspace_membership_gid, array('param' => 'value', 'param' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.workspace_memberships.get_workspace_membership(workspace_membership_gid: 'workspace_membership_gid', param: "value", param: "value", options: {pretty: true}) /users/{user_gid}/workspace_memberships: parameters: - $ref: '#/components/parameters/user_path_gid' - $ref: '#/components/parameters/pretty' - $ref: '#/components/parameters/limit' - $ref: '#/components/parameters/offset' get: summary: Get workspace memberships for a user description: >- Returns the compact workspace membership records for the user. tags: - Workspace memberships operationId: getWorkspaceMembershipsForUser parameters: - name: opt_fields in: query description: 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. required: false example: - created_at - is_active - is_admin - is_guest - is_view_only - offset - path - uri - user - user.name - user_task_list - user_task_list.name - user_task_list.owner - user_task_list.workspace - vacation_dates - vacation_dates.end_on - vacation_dates.start_on - workspace - workspace.name schema: type: array items: type: string enum: - created_at - is_active - is_admin - is_guest - is_view_only - offset - path - uri - user - user.name - user_task_list - user_task_list.name - user_task_list.owner - user_task_list.workspace - vacation_dates - vacation_dates.end_on - vacation_dates.start_on - workspace - workspace.name style: form explode: false responses: 200: description: >- Successfully retrieved the requested user's workspace memberships. content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/WorkspaceMembershipCompact' next_page: $ref: '#/components/schemas/NextPage' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: [] x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); List result = client.workspacememberships.getWorkspaceMembershipsForUser(userGid) .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let workspaceMembershipsApiInstance = new Asana.WorkspaceMembershipsApi(client); let user_gid = "me"; // String | A string identifying a user. This can either be the string \"me\", an email, or the gid of a user. let opts = { 'limit': 50, 'offset': "eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9", 'opt_fields': "created_at,is_active,is_admin,is_guest,is_view_only,offset,path,uri,user,user.name,user_task_list,user_task_list.name,user_task_list.owner,user_task_list.workspace,vacation_dates,vacation_dates.end_on,vacation_dates.start_on,workspace,workspace.name" }; workspaceMembershipsApiInstance.getWorkspaceMembershipsForUser(user_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.workspacememberships.getWorkspaceMembershipsForUser(userGid, {param: "value", param: "value", opt_pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class workspace_memberships_api_instance = asana.WorkspaceMembershipsApi(api_client) user_gid = "me" # str | A string identifying a user. This can either be the string \"me\", an email, or the gid of a user. opts = { 'limit': 50, # int | Results per page. The number of objects to return per page. The value must be between 1 and 100. 'offset': "eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9", # 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': "created_at,is_active,is_admin,is_guest,is_view_only,offset,path,uri,user,user.name,user_task_list,user_task_list.name,user_task_list.owner,user_task_list.workspace,vacation_dates,vacation_dates.end_on,vacation_dates.start_on,workspace,workspace.name", # list[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. } try: # Get workspace memberships for a user api_response = workspace_memberships_api_instance.get_workspace_memberships_for_user(user_gid, opts) for data in api_response: pprint(data) except ApiException as e: print("Exception when calling WorkspaceMembershipsApi->get_workspace_memberships_for_user: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.workspace_memberships.get_workspace_memberships_for_user(user_gid, {'param': 'value', 'param': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- workspacememberships->getWorkspaceMembershipsForUser($user_gid, array('param' => 'value', 'param' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.workspace_memberships.get_workspace_memberships_for_user(user_gid: 'user_gid', param: "value", param: "value", options: {pretty: true}) /workspaces/{workspace_gid}/workspace_memberships: parameters: - $ref: '#/components/parameters/workspace_path_gid' - $ref: '#/components/parameters/user_query_param' - $ref: '#/components/parameters/pretty' - $ref: '#/components/parameters/limit' - $ref: '#/components/parameters/offset' get: summary: Get the workspace memberships for a workspace description: >- Returns the compact workspace membership records for the workspace. tags: - Workspace memberships operationId: getWorkspaceMembershipsForWorkspace parameters: - name: opt_fields in: query description: 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. required: false example: - created_at - is_active - is_admin - is_guest - is_view_only - offset - path - uri - user - user.name - user_task_list - user_task_list.name - user_task_list.owner - user_task_list.workspace - vacation_dates - vacation_dates.end_on - vacation_dates.start_on - workspace - workspace.name schema: type: array items: type: string enum: - created_at - is_active - is_admin - is_guest - is_view_only - offset - path - uri - user - user.name - user_task_list - user_task_list.name - user_task_list.owner - user_task_list.workspace - vacation_dates - vacation_dates.end_on - vacation_dates.start_on - workspace - workspace.name style: form explode: false responses: 200: description: >- Successfully retrieved the requested workspace's memberships. content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/WorkspaceMembershipCompact' next_page: $ref: '#/components/schemas/NextPage' security: - personalAccessToken: [] - oauth2: [] x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); List result = client.workspacememberships.getWorkspaceMembershipsForWorkspace(workspaceGid, user) .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let workspaceMembershipsApiInstance = new Asana.WorkspaceMembershipsApi(client); let workspace_gid = "12345"; // String | Globally unique identifier for the workspace or organization. let opts = { 'user': "me", 'limit': 50, 'offset': "eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9", 'opt_fields': "created_at,is_active,is_admin,is_guest,is_view_only,offset,path,uri,user,user.name,user_task_list,user_task_list.name,user_task_list.owner,user_task_list.workspace,vacation_dates,vacation_dates.end_on,vacation_dates.start_on,workspace,workspace.name" }; workspaceMembershipsApiInstance.getWorkspaceMembershipsForWorkspace(workspace_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.workspacememberships.getWorkspaceMembershipsForWorkspace(workspaceGid, {param: "value", param: "value", opt_pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class workspace_memberships_api_instance = asana.WorkspaceMembershipsApi(api_client) workspace_gid = "12345" # str | Globally unique identifier for the workspace or organization. opts = { 'user': "me", # str | A string identifying a user. This can either be the string \"me\", an email, or the gid of a user. 'limit': 50, # int | Results per page. The number of objects to return per page. The value must be between 1 and 100. 'offset': "eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9", # 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': "created_at,is_active,is_admin,is_guest,is_view_only,offset,path,uri,user,user.name,user_task_list,user_task_list.name,user_task_list.owner,user_task_list.workspace,vacation_dates,vacation_dates.end_on,vacation_dates.start_on,workspace,workspace.name", # list[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. } try: # Get the workspace memberships for a workspace api_response = workspace_memberships_api_instance.get_workspace_memberships_for_workspace(workspace_gid, opts) for data in api_response: pprint(data) except ApiException as e: print("Exception when calling WorkspaceMembershipsApi->get_workspace_memberships_for_workspace: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.workspace_memberships.get_workspace_memberships_for_workspace(workspace_gid, {'param': 'value', 'param': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- workspacememberships->getWorkspaceMembershipsForWorkspace($workspace_gid, array('param' => 'value', 'param' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.workspace_memberships.get_workspace_memberships_for_workspace(workspace_gid: 'workspace_gid', param: "value", param: "value", options: {pretty: true}) /workspaces: parameters: - $ref: '#/components/parameters/pretty' - $ref: '#/components/parameters/limit' - $ref: '#/components/parameters/offset' get: summary: Get multiple workspaces description: |- Required scope: workspaces:read Returns the compact records for all workspaces visible to the authorized user. tags: - Workspaces operationId: getWorkspaces parameters: - name: opt_fields in: query description: 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. required: false example: - email_domains - is_organization - name - offset - path - uri schema: type: array items: type: string enum: - email_domains - is_organization - name - offset - path - uri style: form explode: false responses: 200: description: Return all workspaces visible to the authorized user. content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/WorkspaceCompact' next_page: $ref: '#/components/schemas/NextPage' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: - workspaces:read x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); List result = client.workspaces.getWorkspaces() .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let workspacesApiInstance = new Asana.WorkspacesApi(client); let opts = { 'limit': 50, 'offset': "eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9", 'opt_fields': "email_domains,is_organization,name,offset,path,uri" }; workspacesApiInstance.getWorkspaces(opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.workspaces.getWorkspaces({param: "value", param: "value", opt_pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class workspaces_api_instance = asana.WorkspacesApi(api_client) opts = { 'limit': 50, # int | Results per page. The number of objects to return per page. The value must be between 1 and 100. 'offset': "eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9", # 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': "email_domains,is_organization,name,offset,path,uri", # list[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. } try: # Get multiple workspaces api_response = workspaces_api_instance.get_workspaces(opts) for data in api_response: pprint(data) except ApiException as e: print("Exception when calling WorkspacesApi->get_workspaces: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.workspaces.get_workspaces({'param': 'value', 'param': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- workspaces->getWorkspaces(array('param' => 'value', 'param' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.workspaces.get_workspaces(param: "value", param: "value", options: {pretty: true}) /workspaces/{workspace_gid}: parameters: - $ref: '#/components/parameters/workspace_path_gid' - $ref: '#/components/parameters/pretty' get: summary: Get a workspace description: |- Required scope: workspaces:read Returns the full workspace record for a single workspace. tags: - Workspaces operationId: getWorkspace parameters: - name: opt_fields in: query description: 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. required: false example: - email_domains - is_organization - name schema: type: array items: type: string enum: - email_domains - is_organization - name style: form explode: false responses: 200: description: Return the full workspace record. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/WorkspaceResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: - workspaces:read x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); Workspace result = client.workspaces.getWorkspace(workspaceGid) .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let workspacesApiInstance = new Asana.WorkspacesApi(client); let workspace_gid = "12345"; // String | Globally unique identifier for the workspace or organization. let opts = { 'opt_fields': "email_domains,is_organization,name" }; workspacesApiInstance.getWorkspace(workspace_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.workspaces.getWorkspace(workspaceGid, {param: "value", param: "value", opt_pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class workspaces_api_instance = asana.WorkspacesApi(api_client) workspace_gid = "12345" # str | Globally unique identifier for the workspace or organization. opts = { 'opt_fields': "email_domains,is_organization,name", # list[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. } try: # Get a workspace api_response = workspaces_api_instance.get_workspace(workspace_gid, opts) pprint(api_response) except ApiException as e: print("Exception when calling WorkspacesApi->get_workspace: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.workspaces.get_workspace(workspace_gid, {'param': 'value', 'param': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- workspaces->getWorkspace($workspace_gid, array('param' => 'value', 'param' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.workspaces.get_workspace(workspace_gid: 'workspace_gid', param: "value", param: "value", options: {pretty: true}) put: summary: Update a workspace description: >- A specific, existing workspace can be updated by making a PUT request on the URL for that workspace. Only the fields provided in the data block will be updated; any unspecified fields will remain unchanged. Currently the only field that can be modified for a workspace is its name. Returns the complete, updated workspace record. tags: - Workspaces operationId: updateWorkspace parameters: - name: opt_fields in: query description: 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. required: false example: - email_domains - is_organization - name schema: type: array items: type: string enum: - email_domains - is_organization - name style: form explode: false requestBody: description: The workspace object with all updated properties. required: true content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/WorkspaceRequest' responses: 200: description: Update for the workspace was successful. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/WorkspaceResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: [] x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); Workspace result = client.workspaces.updateWorkspace(workspaceGid) .data("field", "value") .data("field", "value") .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let workspacesApiInstance = new Asana.WorkspacesApi(client); let body = {"data": {"": "", "": "",}}; // Object | The workspace object with all updated properties. let workspace_gid = "12345"; // String | Globally unique identifier for the workspace or organization. let opts = { 'opt_fields': "email_domains,is_organization,name" }; workspacesApiInstance.updateWorkspace(body, workspace_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.workspaces.updateWorkspace(workspaceGid, {field: "value", field: "value", pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class workspaces_api_instance = asana.WorkspacesApi(api_client) body = {"data": {"": "", "": "",}} # dict | The workspace object with all updated properties. workspace_gid = "12345" # str | Globally unique identifier for the workspace or organization. opts = { 'opt_fields': "email_domains,is_organization,name", # list[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. } try: # Update a workspace api_response = workspaces_api_instance.update_workspace(body, workspace_gid, opts) pprint(api_response) except ApiException as e: print("Exception when calling WorkspacesApi->update_workspace: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.workspaces.update_workspace(workspace_gid, {'field': 'value', 'field': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- workspaces->updateWorkspace($workspace_gid, array('field' => 'value', 'field' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.workspaces.update_workspace(workspace_gid: 'workspace_gid', field: "value", field: "value", options: {pretty: true}) /workspaces/{workspace_gid}/addUser: parameters: - $ref: '#/components/parameters/workspace_path_gid' - $ref: '#/components/parameters/pretty' post: summary: Add a user to a workspace or organization description: >- Add a user to a workspace or organization. The user can be referenced by their globally unique user ID or their email address. Returns the full user record for the invited user. tags: - Workspaces operationId: addUserForWorkspace parameters: - name: opt_fields in: query description: 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. required: false example: - email - name - photo - photo.image_1024x1024 - photo.image_128x128 - photo.image_21x21 - photo.image_27x27 - photo.image_36x36 - photo.image_60x60 schema: type: array items: type: string enum: - email - name - photo - photo.image_1024x1024 - photo.image_128x128 - photo.image_21x21 - photo.image_27x27 - photo.image_36x36 - photo.image_60x60 style: form explode: false requestBody: description: The user to add to the workspace. required: true content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/WorkspaceAddUserRequest' responses: 200: description: >- The user was added successfully to the workspace or organization. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/UserBaseResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: [] x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); JsonElement result = client.workspaces.addUserForWorkspace(workspaceGid) .data("field", "value") .data("field", "value") .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let workspacesApiInstance = new Asana.WorkspacesApi(client); let body = {"data": {"": "", "": "",}}; // Object | The user to add to the workspace. let workspace_gid = "12345"; // String | Globally unique identifier for the workspace or organization. let opts = { 'opt_fields': "email,name,photo,photo.image_1024x1024,photo.image_128x128,photo.image_21x21,photo.image_27x27,photo.image_36x36,photo.image_60x60" }; workspacesApiInstance.addUserForWorkspace(body, workspace_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.workspaces.addUserForWorkspace(workspaceGid, {field: "value", field: "value", pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class workspaces_api_instance = asana.WorkspacesApi(api_client) body = {"data": {"": "", "": "",}} # dict | The user to add to the workspace. workspace_gid = "12345" # str | Globally unique identifier for the workspace or organization. opts = { 'opt_fields': "email,name,photo,photo.image_1024x1024,photo.image_128x128,photo.image_21x21,photo.image_27x27,photo.image_36x36,photo.image_60x60", # list[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. } try: # Add a user to a workspace or organization api_response = workspaces_api_instance.add_user_for_workspace(body, workspace_gid, opts) pprint(api_response) except ApiException as e: print("Exception when calling WorkspacesApi->add_user_for_workspace: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.workspaces.add_user_for_workspace(workspace_gid, {'field': 'value', 'field': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- workspaces->addUserForWorkspace($workspace_gid, array('field' => 'value', 'field' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.workspaces.add_user_for_workspace(workspace_gid: 'workspace_gid', field: "value", field: "value", options: {pretty: true}) /workspaces/{workspace_gid}/removeUser: parameters: - $ref: '#/components/parameters/workspace_path_gid' - $ref: '#/components/parameters/pretty' post: summary: Remove a user from a workspace or organization description: |- Remove a user from a workspace or organization. The user making this call must be an admin in the workspace. The user can be referenced by their globally unique user ID or their email address. When invoked using a **Service Account Token (SAT)**, this endpoint follows the same behavior as the [SCIM API Delete endpoint](/docs/scim). To learn more about how Asana handles user deprovisioning, refer to our [Help Center article on deprovisioning users](https://help.asana.com/s/article/user-deprovisioning). When invoked using a **Personal Access Token (PAT)**, the endpoint behaves similarly, except that ownership of the user’s resources is transferred to the **PAT owner** instead of the admin [specified in the Admin Console](https://help.asana.com/s/article/user-deprovisioning#gl-deprovisioning). **Note:** If you wish to retain access to a user’s private resources (i.e., those visible only to that user), you have to make them public manually (or ask the user to do so) before removal. Returns an empty data record. tags: - Workspaces operationId: removeUserForWorkspace requestBody: description: The user to remove from the workspace. required: true content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/WorkspaceRemoveUserRequest' responses: 200: description: >- The user was removed successfully to the workspace or organization. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/EmptyResponse' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: [] x-readme: code-samples: - language: java install: >- com.asanaasana1.0.0 code: >- import com.asana.Client; Client client = Client.accessToken("PERSONAL_ACCESS_TOKEN"); JsonElement result = client.workspaces.removeUserForWorkspace(workspaceGid) .data("field", "value") .data("field", "value") .option("pretty", true) .execute(); - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let workspacesApiInstance = new Asana.WorkspacesApi(client); let body = {"data": {"": "", "": "",}}; // Object | The user to remove from the workspace. let workspace_gid = "12345"; // String | Globally unique identifier for the workspace or organization. workspacesApiInstance.removeUserForWorkspace(body, workspace_gid).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: node install: npm install asana@1.0.5 code: >- const asana = require('asana'); const client = asana.Client.create().useAccessToken('PERSONAL_ACCESS_TOKEN'); client.workspaces.removeUserForWorkspace(workspaceGid, {field: "value", field: "value", pretty: true}) .then((result) => { console.log(result); }); name: node-sdk-v1 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class workspaces_api_instance = asana.WorkspacesApi(api_client) body = {"data": {"": "", "": "",}} # dict | The user to remove from the workspace. workspace_gid = "12345" # str | Globally unique identifier for the workspace or organization. try: # Remove a user from a workspace or organization api_response = workspaces_api_instance.remove_user_for_workspace(body, workspace_gid) pprint(api_response) except ApiException as e: print("Exception when calling WorkspacesApi->remove_user_for_workspace: %s\n" % e) name: python-sdk-v5 - language: python install: pip install asana==3.2.3 code: >- import asana client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') result = client.workspaces.remove_user_for_workspace(workspace_gid, {'field': 'value', 'field': 'value'}, opt_pretty=True) name: python-sdk-v3 - language: php install: composer require asana/asana code: >- workspaces->removeUserForWorkspace($workspace_gid, array('field' => 'value', 'field' => 'value'), array('opt_pretty' => 'true')) - language: ruby install: gem install asana code: >- require 'asana' client = Asana::Client.new do |c| c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN' end result = client.workspaces.remove_user_for_workspace(workspace_gid: 'workspace_gid', field: "value", field: "value", options: {pretty: true}) /workspaces/{workspace_gid}/events: parameters: - $ref: '#/components/parameters/workspace_path_gid' - $ref: '#/components/parameters/pretty' - name: sync in: query required: false description: >- A sync token received from the last request, or none on first sync. Events will be returned from the point in time that the sync token was generated. *Note: On your first request, omit the sync token. The response will be the same as for an expired sync token, and will include a new valid sync token. If the sync token is too old (which may happen from time to time) the API will return a `412 Precondition Failed` error, and include a fresh sync token in the response.* schema: type: string example: de4774f6915eae04714ca93bb2f5ee81 get: summary: Get workspace events description: >- Returns the full record for all events that have occurred since the sync token was created. The response is a list of events and the schema of each event is as described [here](/reference/events). Asana limits a single sync token to 1000 events. If more than 1000 events exist for a given domain, `has_more: true` will be returned in the response, indicating that there are more events to pull. tags: - Workspaces operationId: getWorkspaceEvents responses: 200: description: Successfully retrieved events. content: application/json: schema: type: object description: >- The full record for all events that have occurred since the sync token was created. properties: data: type: array items: $ref: '#/components/schemas/EventResponse' sync: description: A sync token to be used with the next call to the /events endpoint. type: string example: de4774f6915eae04714ca93bb2f5ee81 has_more: description: Indicates whether there are more events to pull. type: boolean example: true 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/Unauthorized' 403: $ref: '#/components/responses/Forbidden' 404: $ref: '#/components/responses/NotFound' 500: $ref: '#/components/responses/InternalServerError' security: - personalAccessToken: [] - oauth2: [] x-readme: code-samples: - language: node install: npm install asana code: |- const Asana = require('asana'); let client = new Asana.ApiClient(); client.authentications.token.accessToken = ''; let workspacesApiInstance = new Asana.WorkspacesApi(client); let workspace_gid = "12345"; // String | Globally unique identifier for the workspace or organization. let opts = { 'sync': "de4774f6915eae04714ca93bb2f5ee81" }; workspacesApiInstance.getWorkspaceEvents(workspace_gid, opts).then((result) => { console.log('API called successfully. Returned data: ' + JSON.stringify(result.data, null, 2)); }, (error) => { console.error(error.response.body); }); name: node-sdk-v3 - language: python install: pip install asana code: |- import asana from asana.rest import ApiException from pprint import pprint configuration = asana.Configuration() configuration.access_token = '' api_client = asana.ApiClient(configuration) # create an instance of the API class workspaces_api_instance = asana.WorkspacesApi(api_client) workspace_gid = "12345" # str | Globally unique identifier for the workspace or organization. opts = { 'sync': "de4774f6915eae04714ca93bb2f5ee81", # str | A sync token received from the last request, or none on first sync. Events will be returned from the point in time that the sync token was generated. *Note: On your first request, omit the sync token. The response will be the same as for an expired sync token, and will include a new valid sync token. If the sync token is too old (which may happen from time to time) the API will return a `412 Precondition Failed` error, and include a fresh sync token in the response.* } try: # Get workspace events api_response = workspaces_api_instance.get_workspace_events(workspace_gid, opts) for data in api_response: pprint(data) except ApiException as e: print("Exception when calling WorkspacesApi->get_workspace_events: %s\n" % e) name: python-sdk-v5