Asana
Project description
asana
![PyPi Version](https://pypi-camo.freetls.fastly.net/c9de45613e6318c2a9488d4eabd5677ccefd751b/68747470733a2f2f696d672e736869656c64732e696f2f707970692f762f6173616e612e7376673f7374796c653d666c61742d737175617265)
Python client library for Asana
- API version: 1.0
- Package version: 4.0.0
Requirements.
Python 3.4+
Installation & Usage
pip install from PyPI
pip install asana
Then import the package:
import asana
Setuptools
Install via Setuptools.
python setup.py install --user
(or sudo python setup.py install
to install the package for all users)
Then import the package:
import asana
Getting Started
Please follow the installation procedure and then run the following:
import asana
from asana.rest import ApiException
from pprint import pprint
# Configure OAuth2 access token for authorization:
configuration = asana.Configuration()
configuration.access_token = '<YOUR_PERSONAL_ACCESS_TOKEN>'
# create an instance of the API class
users_api_instance = asana.UsersApi(asana.ApiClient(configuration))
user_gid = 'me' # str | A string identifying a user. This can either be the string \"me\", an email, or the gid of a user.
opt_fields = ["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] | Properties to include in the response. Set this query parameter to a comma-separated list of the properties you wish to include. (optional)
try:
# Get a user
api_response = users_api_instance.get_user(user_gid, opt_fields=opt_fields)
pprint(api_response)
except ApiException as e:
print("Exception when calling UsersApi->get_user: %s\n" % e)
Example: GET, POST, PUT, DELETE on tasks
GET - get multiple tasks
import asana
from asana.rest import ApiException
from pprint import pprint
# Configure OAuth2 access token for authorization:
configuration = asana.Configuration()
configuration.access_token = '<YOUR_PERSONAL_ACCESS_TOKEN>'
# create an instance of the API class
tasks_api_instance = asana.TasksApi(asana.ApiClient(configuration))
limit = 50
project = "<YOUR_PROJECT_GID>"
opt_fields = [
"assignee_section",
"due_at",
"name",
"completed_at",
"completed_by",
"tags",
"dependents",
"hearts",
"liked",
"projects",
"completed",
"num_hearts",
"permalink_url",
"parent",
"assignee",
"assignee_status",
"num_subtasks",
"start_on",
"dependencies",
"is_rendered_as_separator",
"modified_at",
"approval_status",
"notes",
"memberships",
"workspace",
"due_on",
"hearted",
"created_at",
"likes",
"num_likes",
"custom_fields",
"external",
"html_notes",
"followers",
"start_at",
"resource_subtype",
"actual_time_minutes",
]
try:
# GET - get multiple tasks
api_response = tasks_api_instance.get_tasks(
limit=limit, project=project, opt_fields=opt_fields
)
pprint(api_response)
except ApiException as e:
print("Exception when calling TasksApi->get_tasks: %s\n" % e)
POST - create a task
import asana
from asana.rest import ApiException
from pprint import pprint
# Configure OAuth2 access token for authorization:
configuration = asana.Configuration()
configuration.access_token = '<YOUR_PERSONAL_ACCESS_TOKEN>'
# create an instance of the API class
tasks_api_instance = asana.TasksApi(asana.ApiClient(configuration))
body = asana.TasksBody(
{
"name": "New Task",
"projects": ["<YOUR_PROJECT_GID>"],
}
)
try:
# POST - create a task
api_response = tasks_api_instance.create_task(body)
pprint(api_response)
except ApiException as e:
print("Exception when calling TasksApi->create_task: %s\n" % e)
PUT - update a task
import asana
from asana.rest import ApiException
from pprint import pprint
# Configure OAuth2 access token for authorization:
configuration = asana.Configuration()
configuration.access_token = '<YOUR_PERSONAL_ACCESS_TOKEN>'
# create an instance of the API class
tasks_api_instance = asana.TasksApi(asana.ApiClient(configuration))
task_gid = "<YOUR_TASK_GID>"
body = asana.TasksBody(
{
"name": "Updated Task",
}
)
try:
# PUT - update a task
api_response = tasks_api_instance.update_task(body, task_gid)
pprint(api_response)
except ApiException as e:
print("Exception when calling TasksApi->update_task: %s\n" % e)
DELETE - delete a task
import asana
from asana.rest import ApiException
from pprint import pprint
# Configure OAuth2 access token for authorization:
configuration = asana.Configuration()
configuration.access_token = '<YOUR_PERSONAL_ACCESS_TOKEN>'
# create an instance of the API class
tasks_api_instance = asana.TasksApi(asana.ApiClient(configuration))
task_gid = "<YOUR_TASK_GID>"
try:
# DELETE - 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)
Documentation for API Endpoints
All URIs are relative to https://app.asana.com/api/1.0
Class | Method | HTTP request | Description |
---|---|---|---|
AttachmentsApi | create_attachment_for_object | POST /attachments | Upload an attachment |
AttachmentsApi | delete_attachment | DELETE /attachments/{attachment_gid} | Delete an attachment |
AttachmentsApi | get_attachment | GET /attachments/{attachment_gid} | Get an attachment |
AttachmentsApi | get_attachments_for_object | GET /attachments | Get attachments from an object |
AuditLogAPIApi | get_audit_log_events | GET /workspaces/{workspace_gid}/audit_log_events | Get audit log events |
BatchAPIApi | create_batch_request | POST /batch | Submit parallel requests |
CustomFieldSettingsApi | get_custom_field_settings_for_portfolio | GET /portfolios/{portfolio_gid}/custom_field_settings | Get a portfolio's custom fields |
CustomFieldSettingsApi | get_custom_field_settings_for_project | GET /projects/{project_gid}/custom_field_settings | Get a project's custom fields |
CustomFieldsApi | create_custom_field | POST /custom_fields | Create a custom field |
CustomFieldsApi | create_enum_option_for_custom_field | POST /custom_fields/{custom_field_gid}/enum_options | Create an enum option |
CustomFieldsApi | delete_custom_field | DELETE /custom_fields/{custom_field_gid} | Delete a custom field |
CustomFieldsApi | get_custom_field | GET /custom_fields/{custom_field_gid} | Get a custom field |
CustomFieldsApi | get_custom_fields_for_workspace | GET /workspaces/{workspace_gid}/custom_fields | Get a workspace's custom fields |
CustomFieldsApi | insert_enum_option_for_custom_field | POST /custom_fields/{custom_field_gid}/enum_options/insert | Reorder a custom field's enum |
CustomFieldsApi | update_custom_field | PUT /custom_fields/{custom_field_gid} | Update a custom field |
CustomFieldsApi | update_enum_option | PUT /enum_options/{enum_option_gid} | Update an enum option |
EventsApi | get_events | GET /events | Get events on a resource |
GoalRelationshipsApi | add_supporting_relationship | POST /goals/{goal_gid}/addSupportingRelationship | Add a supporting goal relationship |
GoalRelationshipsApi | get_goal_relationship | GET /goal_relationships/{goal_relationship_gid} | Get a goal relationship |
GoalRelationshipsApi | get_goal_relationships | GET /goal_relationships | Get goal relationships |
GoalRelationshipsApi | remove_supporting_relationship | POST /goals/{goal_gid}/removeSupportingRelationship | Removes a supporting goal relationship |
GoalRelationshipsApi | update_goal_relationship | PUT /goal_relationships/{goal_relationship_gid} | Update a goal relationship |
GoalsApi | add_followers | POST /goals/{goal_gid}/addFollowers | Add a collaborator to a goal |
GoalsApi | create_goal | POST /goals | Create a goal |
GoalsApi | create_goal_metric | POST /goals/{goal_gid}/setMetric | Create a goal metric |
GoalsApi | delete_goal | DELETE /goals/{goal_gid} | Delete a goal |
GoalsApi | get_goal | GET /goals/{goal_gid} | Get a goal |
GoalsApi | get_goals | GET /goals | Get goals |
GoalsApi | get_parent_goals_for_goal | GET /goals/{goal_gid}/parentGoals | Get parent goals from a goal |
GoalsApi | remove_followers | POST /goals/{goal_gid}/removeFollowers | Remove a collaborator from a goal |
GoalsApi | update_goal | PUT /goals/{goal_gid} | Update a goal |
GoalsApi | update_goal_metric | POST /goals/{goal_gid}/setMetricCurrentValue | Update a goal metric |
JobsApi | get_job | GET /jobs/{job_gid} | Get a job by id |
MembershipsApi | create_membership | POST /memberships | Create a membership |
MembershipsApi | delete_membership | DELETE /memberships/{membership_gid} | Delete a membership |
MembershipsApi | get_memberships | GET /memberships | Get multiple memberships |
OrganizationExportsApi | create_organization_export | POST /organization_exports | Create an organization export request |
OrganizationExportsApi | get_organization_export | GET /organization_exports/{organization_export_gid} | Get details on an org export request |
PortfolioMembershipsApi | get_portfolio_membership | GET /portfolio_memberships/{portfolio_membership_gid} | Get a portfolio membership |
PortfolioMembershipsApi | get_portfolio_memberships | GET /portfolio_memberships | Get multiple portfolio memberships |
PortfolioMembershipsApi | get_portfolio_memberships_for_portfolio | GET /portfolios/{portfolio_gid}/portfolio_memberships | Get memberships from a portfolio |
PortfoliosApi | add_custom_field_setting_for_portfolio | POST /portfolios/{portfolio_gid}/addCustomFieldSetting | Add a custom field to a portfolio |
PortfoliosApi | add_item_for_portfolio | POST /portfolios/{portfolio_gid}/addItem | Add a portfolio item |
PortfoliosApi | add_members_for_portfolio | POST /portfolios/{portfolio_gid}/addMembers | Add users to a portfolio |
PortfoliosApi | create_portfolio | POST /portfolios | Create a portfolio |
PortfoliosApi | delete_portfolio | DELETE /portfolios/{portfolio_gid} | Delete a portfolio |
PortfoliosApi | get_items_for_portfolio | GET /portfolios/{portfolio_gid}/items | Get portfolio items |
PortfoliosApi | get_portfolio | GET /portfolios/{portfolio_gid} | Get a portfolio |
PortfoliosApi | get_portfolios | GET /portfolios | Get multiple portfolios |
PortfoliosApi | remove_custom_field_setting_for_portfolio | POST /portfolios/{portfolio_gid}/removeCustomFieldSetting | Remove a custom field from a portfolio |
PortfoliosApi | remove_item_for_portfolio | POST /portfolios/{portfolio_gid}/removeItem | Remove a portfolio item |
PortfoliosApi | remove_members_for_portfolio | POST /portfolios/{portfolio_gid}/removeMembers | Remove users from a portfolio |
PortfoliosApi | update_portfolio | PUT /portfolios/{portfolio_gid} | Update a portfolio |
ProjectBriefsApi | create_project_brief | POST /projects/{project_gid}/project_briefs | Create a project brief |
ProjectBriefsApi | delete_project_brief | DELETE /project_briefs/{project_brief_gid} | Delete a project brief |
ProjectBriefsApi | get_project_brief | GET /project_briefs/{project_brief_gid} | Get a project brief |
ProjectBriefsApi | update_project_brief | PUT /project_briefs/{project_brief_gid} | Update a project brief |
ProjectMembershipsApi | get_project_membership | GET /project_memberships/{project_membership_gid} | Get a project membership |
ProjectMembershipsApi | get_project_memberships_for_project | GET /projects/{project_gid}/project_memberships | Get memberships from a project |
ProjectStatusesApi | create_project_status_for_project | POST /projects/{project_gid}/project_statuses | Create a project status |
ProjectStatusesApi | delete_project_status | DELETE /project_statuses/{project_status_gid} | Delete a project status |
ProjectStatusesApi | get_project_status | GET /project_statuses/{project_status_gid} | Get a project status |
ProjectStatusesApi | get_project_statuses_for_project | GET /projects/{project_gid}/project_statuses | Get statuses from a project |
ProjectTemplatesApi | delete_project_template | DELETE /project_templates/{project_template_gid} | Delete a project template |
ProjectTemplatesApi | get_project_template | GET /project_templates/{project_template_gid} | Get a project template |
ProjectTemplatesApi | get_project_templates | GET /project_templates | Get multiple project templates |
ProjectTemplatesApi | get_project_templates_for_team | GET /teams/{team_gid}/project_templates | Get a team's project templates |
ProjectTemplatesApi | instantiate_project | POST /project_templates/{project_template_gid}/instantiateProject | Instantiate a project from a project template |
ProjectsApi | add_custom_field_setting_for_project | POST /projects/{project_gid}/addCustomFieldSetting | Add a custom field to a project |
ProjectsApi | add_followers_for_project | POST /projects/{project_gid}/addFollowers | Add followers to a project |
ProjectsApi | add_members_for_project | POST /projects/{project_gid}/addMembers | Add users to a project |
ProjectsApi | create_project | POST /projects | Create a project |
ProjectsApi | create_project_for_team | POST /teams/{team_gid}/projects | Create a project in a team |
ProjectsApi | create_project_for_workspace | POST /workspaces/{workspace_gid}/projects | Create a project in a workspace |
ProjectsApi | delete_project | DELETE /projects/{project_gid} | Delete a project |
ProjectsApi | duplicate_project | POST /projects/{project_gid}/duplicate | Duplicate a project |
ProjectsApi | get_project | GET /projects/{project_gid} | Get a project |
ProjectsApi | get_projects | GET /projects | Get multiple projects |
ProjectsApi | get_projects_for_task | GET /tasks/{task_gid}/projects | Get projects a task is in |
ProjectsApi | get_projects_for_team | GET /teams/{team_gid}/projects | Get a team's projects |
ProjectsApi | get_projects_for_workspace | GET /workspaces/{workspace_gid}/projects | Get all projects in a workspace |
ProjectsApi | get_task_counts_for_project | GET /projects/{project_gid}/task_counts | Get task count of a project |
ProjectsApi | project_save_as_template | POST /projects/{project_gid}/saveAsTemplate | Create a project template from a project |
ProjectsApi | remove_custom_field_setting_for_project | POST /projects/{project_gid}/removeCustomFieldSetting | Remove a custom field from a project |
ProjectsApi | remove_followers_for_project | POST /projects/{project_gid}/removeFollowers | Remove followers from a project |
ProjectsApi | remove_members_for_project | POST /projects/{project_gid}/removeMembers | Remove users from a project |
ProjectsApi | update_project | PUT /projects/{project_gid} | Update a project |
RulesApi | trigger_rule | POST /rule_triggers/{rule_trigger_gid}/run | Trigger a rule |
SectionsApi | add_task_for_section | POST /sections/{section_gid}/addTask | Add task to section |
SectionsApi | create_section_for_project | POST /projects/{project_gid}/sections | Create a section in a project |
SectionsApi | delete_section | DELETE /sections/{section_gid} | Delete a section |
SectionsApi | get_section | GET /sections/{section_gid} | Get a section |
SectionsApi | get_sections_for_project | GET /projects/{project_gid}/sections | Get sections in a project |
SectionsApi | insert_section_for_project | POST /projects/{project_gid}/sections/insert | Move or Insert sections |
SectionsApi | update_section | PUT /sections/{section_gid} | Update a section |
StatusUpdatesApi | create_status_for_object | POST /status_updates | Create a status update |
StatusUpdatesApi | delete_status | DELETE /status_updates/{status_update_gid} | Delete a status update |
StatusUpdatesApi | get_status | GET /status_updates/{status_update_gid} | Get a status update |
StatusUpdatesApi | get_statuses_for_object | GET /status_updates | Get status updates from an object |
StoriesApi | create_story_for_task | POST /tasks/{task_gid}/stories | Create a story on a task |
StoriesApi | delete_story | DELETE /stories/{story_gid} | Delete a story |
StoriesApi | get_stories_for_task | GET /tasks/{task_gid}/stories | Get stories from a task |
StoriesApi | get_story | GET /stories/{story_gid} | Get a story |
StoriesApi | update_story | PUT /stories/{story_gid} | Update a story |
TagsApi | create_tag | POST /tags | Create a tag |
TagsApi | create_tag_for_workspace | POST /workspaces/{workspace_gid}/tags | Create a tag in a workspace |
TagsApi | delete_tag | DELETE /tags/{tag_gid} | Delete a tag |
TagsApi | get_tag | GET /tags/{tag_gid} | Get a tag |
TagsApi | get_tags | GET /tags | Get multiple tags |
TagsApi | get_tags_for_task | GET /tasks/{task_gid}/tags | Get a task's tags |
TagsApi | get_tags_for_workspace | GET /workspaces/{workspace_gid}/tags | Get tags in a workspace |
TagsApi | update_tag | PUT /tags/{tag_gid} | Update a tag |
TasksApi | add_dependencies_for_task | POST /tasks/{task_gid}/addDependencies | Set dependencies for a task |
TasksApi | add_dependents_for_task | POST /tasks/{task_gid}/addDependents | Set dependents for a task |
TasksApi | add_followers_for_task | POST /tasks/{task_gid}/addFollowers | Add followers to a task |
TasksApi | add_project_for_task | POST /tasks/{task_gid}/addProject | Add a project to a task |
TasksApi | add_tag_for_task | POST /tasks/{task_gid}/addTag | Add a tag to a task |
TasksApi | create_subtask_for_task | POST /tasks/{task_gid}/subtasks | Create a subtask |
TasksApi | create_task | POST /tasks | Create a task |
TasksApi | delete_task | DELETE /tasks/{task_gid} | Delete a task |
TasksApi | duplicate_task | POST /tasks/{task_gid}/duplicate | Duplicate a task |
TasksApi | get_dependencies_for_task | GET /tasks/{task_gid}/dependencies | Get dependencies from a task |
TasksApi | get_dependents_for_task | GET /tasks/{task_gid}/dependents | Get dependents from a task |
TasksApi | get_subtasks_for_task | GET /tasks/{task_gid}/subtasks | Get subtasks from a task |
TasksApi | get_task | GET /tasks/{task_gid} | Get a task |
TasksApi | get_tasks | GET /tasks | Get multiple tasks |
TasksApi | get_tasks_for_project | GET /projects/{project_gid}/tasks | Get tasks from a project |
TasksApi | get_tasks_for_section | GET /sections/{section_gid}/tasks | Get tasks from a section |
TasksApi | get_tasks_for_tag | GET /tags/{tag_gid}/tasks | Get tasks from a tag |
TasksApi | get_tasks_for_user_task_list | GET /user_task_lists/{user_task_list_gid}/tasks | Get tasks from a user task list |
TasksApi | remove_dependencies_for_task | POST /tasks/{task_gid}/removeDependencies | Unlink dependencies from a task |
TasksApi | remove_dependents_for_task | POST /tasks/{task_gid}/removeDependents | Unlink dependents from a task |
TasksApi | remove_follower_for_task | POST /tasks/{task_gid}/removeFollowers | Remove followers from a task |
TasksApi | remove_project_for_task | POST /tasks/{task_gid}/removeProject | Remove a project from a task |
TasksApi | remove_tag_for_task | POST /tasks/{task_gid}/removeTag | Remove a tag from a task |
TasksApi | search_tasks_for_workspace | GET /workspaces/{workspace_gid}/tasks/search | Search tasks in a workspace |
TasksApi | set_parent_for_task | POST /tasks/{task_gid}/setParent | Set the parent of a task |
TasksApi | update_task | PUT /tasks/{task_gid} | Update a task |
TeamMembershipsApi | get_team_membership | GET /team_memberships/{team_membership_gid} | Get a team membership |
TeamMembershipsApi | get_team_memberships | GET /team_memberships | Get team memberships |
TeamMembershipsApi | get_team_memberships_for_team | GET /teams/{team_gid}/team_memberships | Get memberships from a team |
TeamMembershipsApi | get_team_memberships_for_user | GET /users/{user_gid}/team_memberships | Get memberships from a user |
TeamsApi | add_user_for_team | POST /teams/{team_gid}/addUser | Add a user to a team |
TeamsApi | create_team | POST /teams | Create a team |
TeamsApi | get_team | GET /teams/{team_gid} | Get a team |
TeamsApi | get_teams_for_user | GET /users/{user_gid}/teams | Get teams for a user |
TeamsApi | get_teams_for_workspace | GET /workspaces/{workspace_gid}/teams | Get teams in a workspace |
TeamsApi | remove_user_for_team | POST /teams/{team_gid}/removeUser | Remove a user from a team |
TeamsApi | update_team | PUT /teams/{team_gid} | Update a team |
TimePeriodsApi | get_time_period | GET /time_periods/{time_period_gid} | Get a time period |
TimePeriodsApi | get_time_periods | GET /time_periods | Get time periods |
TimeTrackingEntriesApi | create_time_tracking_entry | POST /tasks/{task_gid}/time_tracking_entries | Create a time tracking entry |
TimeTrackingEntriesApi | delete_time_tracking_entry | DELETE /time_tracking_entries/{time_tracking_entry_gid} | Delete a time tracking entry |
TimeTrackingEntriesApi | get_time_tracking_entries_for_task | GET /tasks/{task_gid}/time_tracking_entries | Get time tracking entries for a task |
TimeTrackingEntriesApi | get_time_tracking_entry | GET /time_tracking_entries/{time_tracking_entry_gid} | Get a time tracking entry |
TimeTrackingEntriesApi | update_time_tracking_entry | PUT /time_tracking_entries/{time_tracking_entry_gid} | Update a time tracking entry |
TypeaheadApi | typeahead_for_workspace | GET /workspaces/{workspace_gid}/typeahead | Get objects via typeahead |
UserTaskListsApi | get_user_task_list | GET /user_task_lists/{user_task_list_gid} | Get a user task list |
UserTaskListsApi | get_user_task_list_for_user | GET /users/{user_gid}/user_task_list | Get a user's task list |
UsersApi | get_favorites_for_user | GET /users/{user_gid}/favorites | Get a user's favorites |
UsersApi | get_user | GET /users/{user_gid} | Get a user |
UsersApi | get_users | GET /users | Get multiple users |
UsersApi | get_users_for_team | GET /teams/{team_gid}/users | Get users in a team |
UsersApi | get_users_for_workspace | GET /workspaces/{workspace_gid}/users | Get users in a workspace or organization |
WebhooksApi | create_webhook | POST /webhooks | Establish a webhook |
WebhooksApi | delete_webhook | DELETE /webhooks/{webhook_gid} | Delete a webhook |
WebhooksApi | get_webhook | GET /webhooks/{webhook_gid} | Get a webhook |
WebhooksApi | get_webhooks | GET /webhooks | Get multiple webhooks |
WebhooksApi | update_webhook | PUT /webhooks/{webhook_gid} | Update a webhook |
WorkspaceMembershipsApi | get_workspace_membership | GET /workspace_memberships/{workspace_membership_gid} | Get a workspace membership |
WorkspaceMembershipsApi | get_workspace_memberships_for_user | GET /users/{user_gid}/workspace_memberships | Get workspace memberships for a user |
WorkspaceMembershipsApi | get_workspace_memberships_for_workspace | GET /workspaces/{workspace_gid}/workspace_memberships | Get the workspace memberships for a workspace |
WorkspacesApi | add_user_for_workspace | POST /workspaces/{workspace_gid}/addUser | Add a user to a workspace or organization |
WorkspacesApi | get_workspace | GET /workspaces/{workspace_gid} | Get a workspace |
WorkspacesApi | get_workspaces | GET /workspaces | Get multiple workspaces |
WorkspacesApi | remove_user_for_workspace | POST /workspaces/{workspace_gid}/removeUser | Remove a user from a workspace or organization |
WorkspacesApi | update_workspace | PUT /workspaces/{workspace_gid} | Update a workspace |
Documentation For Models
- AddCustomFieldSettingRequest
- AddFollowersRequest
- AddMembersRequest
- AllOfProjectResponseOwner
- AllOfProjectTemplateBaseOwner
- AllOfProjectTemplateResponseOwner
- AllOfStoryResponseNewDateValue
- AllOfStoryResponseOldDateValue
- AllOfUserTaskListBaseOwner
- AllOfUserTaskListBaseWorkspace
- AllOfUserTaskListCompactOwner
- AllOfUserTaskListCompactWorkspace
- AllOfUserTaskListRequestOwner
- AllOfUserTaskListRequestWorkspace
- AllOfUserTaskListResponseOwner
- AllOfUserTaskListResponseWorkspace
- AllOfWorkspaceMembershipResponseUserTaskListOwner
- AllOfWorkspaceMembershipResponseUserTaskListWorkspace
- AsanaNamedResource
- AsanaNamedResourceArray
- AsanaResource
- AttachmentBase
- AttachmentCompact
- AttachmentRequest
- AttachmentResponse
- AttachmentResponseArray
- AttachmentResponseData
- AttachmentResponseParent
- AuditLogEvent
- AuditLogEventActor
- AuditLogEventArray
- AuditLogEventContext
- AuditLogEventDetails
- AuditLogEventResource
- BatchBody
- BatchRequest
- BatchRequestAction
- BatchRequestActions
- BatchRequestOptions
- BatchResponse
- BatchResponseArray
- CreateMembershipRequest
- CreateTimeTrackingEntryRequest
- CustomFieldBase
- CustomFieldBaseDateValue
- CustomFieldBaseEnumOptions
- CustomFieldBaseEnumValue
- CustomFieldCompact
- CustomFieldGidEnumOptionsBody
- CustomFieldRequest
- CustomFieldResponse
- CustomFieldResponseArray
- CustomFieldResponseCreatedBy
- CustomFieldResponseData
- CustomFieldResponsePeopleValue
- CustomFieldSettingBase
- CustomFieldSettingCompact
- CustomFieldSettingResponse
- CustomFieldSettingResponseArray
- CustomFieldSettingResponseCustomField
- CustomFieldSettingResponseData
- CustomFieldSettingResponseParent
- CustomFieldSettingResponseProject
- CustomFieldsBody
- CustomFieldsCustomFieldGidBody
- DateVariableCompact
- DateVariableRequest
- EmptyResponse
- EmptyResponseData
- EnumOption
- EnumOptionBase
- EnumOptionData
- EnumOptionInsertRequest
- EnumOptionRequest
- EnumOptionsEnumOptionGidBody
- EnumOptionsInsertBody
- Error
- ErrorResponse
- ErrorResponseErrors
- EventResponse
- EventResponseArray
- EventResponseChange
- EventResponseParent
- EventResponseResource
- EventResponseUser
- GoalAddSubgoalRequest
- GoalAddSupportingRelationshipRequest
- GoalAddSupportingWorkRequest
- GoalBase
- GoalCompact
- GoalGidAddFollowersBody
- GoalGidAddSupportingRelationshipBody
- GoalGidRemoveFollowersBody
- GoalGidRemoveSupportingRelationshipBody
- GoalGidSetMetricBody
- GoalGidSetMetricCurrentValueBody
- GoalMembershipBase
- GoalMembershipBaseGoal
- GoalMembershipCompact
- GoalMembershipResponse
- GoalMetricBase
- GoalMetricCurrentValueRequest
- GoalMetricRequest
- GoalRelationshipBase
- GoalRelationshipBaseSupportedGoal
- GoalRelationshipBaseSupportingResource
- GoalRelationshipCompact
- GoalRelationshipRequest
- GoalRelationshipResponse
- GoalRelationshipResponseArray
- GoalRelationshipResponseData
- GoalRelationshipsGoalRelationshipGidBody
- GoalRemoveSubgoalRequest
- GoalRemoveSupportingRelationshipRequest
- GoalRequest
- GoalRequestBase
- GoalResponse
- GoalResponseArray
- GoalResponseCurrentStatusUpdate
- GoalResponseData
- GoalResponseLikes
- GoalResponseMetric
- GoalResponseTeam
- GoalResponseTimePeriod
- GoalResponseWorkspace
- GoalUpdateRequest
- GoalsBody
- GoalsGoalGidBody
- InlineResponse412
- InlineResponse412Errors
- JobBase
- JobBaseNewProject
- JobBaseNewProjectTemplate
- JobBaseNewTask
- JobCompact
- JobResponse
- JobResponseData
- Like
- MemberCompact
- MembershipRequest
- MembershipResponse
- MembershipResponseArray
- MembershipResponseData
- MembershipsBody
- ModifyDependenciesRequest
- ModifyDependentsRequest
- NextPage
- OrganizationExportBase
- OrganizationExportCompact
- OrganizationExportRequest
- OrganizationExportResponse
- OrganizationExportResponseData
- OrganizationExportsBody
- PortfolioAddItemRequest
- PortfolioBase
- PortfolioCompact
- PortfolioGidAddCustomFieldSettingBody
- PortfolioGidAddItemBody
- PortfolioGidAddMembersBody
- PortfolioGidRemoveCustomFieldSettingBody
- PortfolioGidRemoveItemBody
- PortfolioGidRemoveMembersBody
- PortfolioMembershipBase
- PortfolioMembershipBasePortfolio
- PortfolioMembershipCompact
- PortfolioMembershipResponse
- PortfolioMembershipResponseArray
- PortfolioMembershipResponseData
- PortfolioRemoveItemRequest
- PortfolioRequest
- PortfolioResponse
- PortfolioResponseArray
- PortfolioResponseCurrentStatusUpdate
- PortfolioResponseCustomFieldSettings
- PortfolioResponseCustomFields
- PortfolioResponseData
- PortfolioResponseWorkspace
- PortfoliosBody
- PortfoliosPortfolioGidBody
- Preview
- ProjectBase
- ProjectBaseCurrentStatus
- ProjectBaseCurrentStatusUpdate
- ProjectBaseWorkspace
- ProjectBriefBase
- ProjectBriefCompact
- ProjectBriefRequest
- ProjectBriefResponse
- ProjectBriefResponseData
- ProjectBriefResponseProject
- ProjectBriefsProjectBriefGidBody
- ProjectCompact
- ProjectDuplicateRequest
- ProjectDuplicateRequestScheduleDates
- ProjectGidAddCustomFieldSettingBody
- ProjectGidAddFollowersBody
- ProjectGidAddMembersBody
- ProjectGidDuplicateBody
- ProjectGidProjectBriefsBody
- ProjectGidProjectStatusesBody
- ProjectGidRemoveCustomFieldSettingBody
- ProjectGidRemoveFollowersBody
- ProjectGidRemoveMembersBody
- ProjectGidSaveAsTemplateBody
- ProjectGidSectionsBody
- ProjectMembershipBase
- ProjectMembershipCompact
- ProjectMembershipResponse
- ProjectMembershipResponseArray
- ProjectMembershipResponseData
- ProjectMembershipResponseMember
- ProjectRequest
- ProjectResponse
- ProjectResponseArray
- ProjectResponseCompletedBy
- ProjectResponseCreatedFromTemplate
- ProjectResponseData
- ProjectResponseProjectBrief
- ProjectResponseTeam
- ProjectSaveAsTemplateRequest
- ProjectSectionInsertRequest
- ProjectStatusBase
- ProjectStatusCompact
- ProjectStatusRequest
- ProjectStatusResponse
- ProjectStatusResponseArray
- ProjectStatusResponseData
- ProjectTemplateBase
- ProjectTemplateBaseRequestedDates
- ProjectTemplateBaseRequestedRoles
- ProjectTemplateBaseTeam
- ProjectTemplateCompact
- ProjectTemplateGidInstantiateProjectBody
- ProjectTemplateInstantiateProjectRequest
- ProjectTemplateInstantiateProjectRequestRequestedDates
- ProjectTemplateInstantiateProjectRequestRequestedRoles
- ProjectTemplateResponse
- ProjectTemplateResponseArray
- ProjectTemplateResponseData
- ProjectsBody
- ProjectsProjectGidBody
- RemoveCustomFieldSettingRequest
- RemoveFollowersRequest
- RemoveMembersRequest
- RequestedRoleRequest
- RuleTriggerGidRunBody
- RuleTriggerRequest
- RuleTriggerResponse
- RuleTriggerResponseData
- SectionBase
- SectionCompact
- SectionGidAddTaskBody
- SectionRequest
- SectionResponse
- SectionResponseArray
- SectionResponseData
- SectionTaskInsertRequest
- SectionsInsertBody
- SectionsSectionGidBody
- StatusUpdateBase
- StatusUpdateCompact
- StatusUpdateRequest
- StatusUpdateResponse
- StatusUpdateResponseArray
- StatusUpdateResponseData
- StatusUpdateResponseParent
- StatusUpdatesBody
- StoriesStoryGidBody
- StoryBase
- StoryCompact
- StoryRequest
- StoryResponse
- StoryResponseArray
- StoryResponseAssignee
- StoryResponseCustomField
- StoryResponseData
- StoryResponseDates
- StoryResponseOldDates
- StoryResponseOldEnumValue
- StoryResponseOldSection
- StoryResponsePreviews
- StoryResponseProject
- StoryResponseStory
- StoryResponseTag
- StoryResponseTarget
- StoryResponseTask
- TagBase
- TagCompact
- TagRequest
- TagResponse
- TagResponseArray
- TagResponseData
- TagsBody
- TaskAddFollowersRequest
- TaskAddProjectRequest
- TaskAddTagRequest
- TaskBase
- TaskBaseCompletedBy
- TaskBaseDependencies
- TaskBaseExternal
- TaskBaseMemberships
- TaskBaseSection
- TaskCompact
- TaskCountResponse
- TaskCountResponseData
- TaskDuplicateRequest
- TaskGidAddDependenciesBody
- TaskGidAddDependentsBody
- TaskGidAddFollowersBody
- TaskGidAddProjectBody
- TaskGidAddTagBody
- TaskGidDuplicateBody
- TaskGidRemoveDependenciesBody
- TaskGidRemoveDependentsBody
- TaskGidRemoveFollowersBody
- TaskGidRemoveProjectBody
- TaskGidRemoveTagBody
- TaskGidSetParentBody
- TaskGidStoriesBody
- TaskGidSubtasksBody
- TaskGidTimeTrackingEntriesBody
- TaskRemoveFollowersRequest
- TaskRemoveProjectRequest
- TaskRemoveTagRequest
- TaskRequest
- TaskResponse
- TaskResponseArray
- TaskResponseAssigneeSection
- TaskResponseCustomFields
- TaskResponseData
- TaskResponseParent
- TaskResponseTags
- TaskResponseWorkspace
- TaskSetParentRequest
- TasksBody
- TasksTaskGidBody
- TeamAddUserRequest
- TeamBase
- TeamCompact
- TeamGidAddUserBody
- TeamGidProjectsBody
- TeamGidRemoveUserBody
- TeamMembershipBase
- TeamMembershipCompact
- TeamMembershipResponse
- TeamMembershipResponseArray
- TeamMembershipResponseData
- TeamRemoveUserRequest
- TeamRequest
- TeamResponse
- TeamResponseArray
- TeamResponseData
- TeamResponseOrganization
- TeamsBody
- TeamsTeamGidBody
- TemplateRole
- TimePeriodBase
- TimePeriodCompact
- TimePeriodResponse
- TimePeriodResponseArray
- TimePeriodResponseData
- TimeTrackingEntriesTimeTrackingEntryGidBody
- TimeTrackingEntryBase
- TimeTrackingEntryBaseData
- TimeTrackingEntryCompact
- TimeTrackingEntryCompactArray
- UpdateTimeTrackingEntryRequest
- UserBase
- UserBaseResponse
- UserBaseResponseData
- UserBaseResponsePhoto
- UserCompact
- UserRequest
- UserResponse
- UserResponseArray
- UserResponseData
- UserTaskListBase
- UserTaskListCompact
- UserTaskListRequest
- UserTaskListResponse
- UserTaskListResponseData
- WebhookCompact
- WebhookCompactResource
- WebhookFilter
- WebhookRequest
- WebhookRequestFilters
- WebhookResponse
- WebhookResponseArray
- WebhookResponseData
- WebhookUpdateRequest
- WebhooksBody
- WebhooksWebhookGidBody
- WorkspaceAddUserRequest
- WorkspaceBase
- WorkspaceCompact
- WorkspaceGidAddUserBody
- WorkspaceGidProjectsBody
- WorkspaceGidRemoveUserBody
- WorkspaceGidTagsBody
- WorkspaceMembershipBase
- WorkspaceMembershipCompact
- WorkspaceMembershipRequest
- WorkspaceMembershipResponse
- WorkspaceMembershipResponseArray
- WorkspaceMembershipResponseData
- WorkspaceMembershipResponseUserTaskList
- WorkspaceMembershipResponseVacationDates
- WorkspaceRemoveUserRequest
- WorkspaceRequest
- WorkspaceResponse
- WorkspaceResponseArray
- WorkspaceResponseData
- WorkspacesWorkspaceGidBody
Documentation For Authorization
oauth2
- Type: OAuth
- Flow: accessCode
- Authorization URL: https://app.asana.com/-/oauth_authorize
- 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.
Documentation for Using the callApi
method
Use this to make HTTP calls when the endpoint does not exist in the current library version or has bugs
import asana
from asana.rest import ApiException
from pprint import pprint
# Configure OAuth2 access token for authorization:
configuration = asana.Configuration()
configuration.access_token = '<YOUR_PERSONAL_ACCESS_TOKEN>'
api_client = asana.ApiClient(configuration)
# GET - get a task
api_response = api_client.call_api(
"/tasks/{task_gid}",
"GET",
path_params={"task_gid": "<YOUR_TASK_GID>"},
query_params=[],
header_params={"Accept": "application/json; charset=utf-8"},
body=None,
post_params=[],
files={},
response_type=object, # If there is an existing response model for the resource you can use that EX: "TaskResponseData" or you can specify one of the following types: float, bool, bytes, str, object
auth_settings=["oauth2"],
async_req=None,
_return_http_data_only=True,
_preload_content=True,
_request_timeout=None,
collection_formats={},
)
pprint(api_response)
# POST - create a task
api_response = api_client.call_api(
"/tasks",
"POST",
path_params={},
query_params=[],
header_params={
"Accept": "application/json; charset=utf-8",
"Content-Type": "application/json; charset=utf-8",
},
body={
"data": {
"name": "New Task",
"projects": ["<YOUR_PROJECT_GID>"],
}
},
post_params=[],
files={},
response_type=object, # If there is an existing response model for the resource you can use that EX: "TaskResponseData" or you can specify one of the following types: float, bool, bytes, str, object
auth_settings=["oauth2"],
async_req=None,
_return_http_data_only=True,
_preload_content=True,
_request_timeout=None,
collection_formats={},
)
pprint(api_response)
# PUT - update a task
api_response = api_client.call_api(
"/tasks/{task_gid}",
"PUT",
path_params={"task_gid": "<YOUR_TASK_GID>"},
query_params=[],
header_params={
"Accept": "application/json; charset=utf-8",
"Content-Type": "application/json; charset=utf-8",
},
body={
"data": {
"name": "Updated Task",
}
},
post_params=[],
files={},
response_type=object, # If there is an existing response model for the resource you can use that EX: "TaskResponseData" or you can specify one of the following types: float, bool, bytes, str, object
auth_settings=["oauth2"],
async_req=None,
_return_http_data_only=True,
_preload_content=True,
_request_timeout=None,
collection_formats={},
)
pprint(api_response)
# DELETE - delete a task
api_response = api_client.call_api(
"/tasks/{task_gid}",
"DELETE",
path_params={"task_gid": "<YOUR_TASK_GID>"},
query_params=[],
header_params={"Accept": "application/json; charset=utf-8"},
body=None,
post_params=[],
files={},
response_type=object, # If there is an existing response model for the resource you can use that EX: "EmptyResponseData" or you can specify one of the following types: float, bool, bytes, str, object
auth_settings=["oauth2"],
async_req=None,
_return_http_data_only=True,
_preload_content=True,
_request_timeout=None,
collection_formats={},
)
pprint(api_response)
Author
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
asana-4.0.0.tar.gz
(311.5 kB
view hashes)
Built Distribution
asana-4.0.0-py3-none-any.whl
(1.2 MB
view hashes)