docs/ai-agents/connectors/asana/REFERENCE.md
This is the full reference documentation for the Asana agent connector.
The Asana connector supports the following entities and actions.
| Entity | Actions |
|---|---|
| Tasks | List, Get, Search |
| Project Tasks | List |
| Workspace Task Search | List |
| Projects | List, Get, Search |
| Task Projects | List |
| Team Projects | List |
| Workspace Projects | List |
| Workspaces | List, Get, Search |
| Users | List, Get, Search |
| Workspace Users | List |
| Team Users | List |
| Teams | Get, Search |
| Workspace Teams | List |
| User Teams | List |
| Attachments | List, Get, Download, Search |
| Workspace Tags | List |
| Tags | Get, Search |
| Project Sections | List |
| Sections | Get, Search |
| Task Subtasks | List |
| Task Dependencies | List |
| Task Dependents | List |
Returns a paginated list of tasks. Must include either a project OR a section OR a workspace AND assignee parameter.
await asana.tasks.list()
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "tasks",
"action": "list"
}'
| Parameter Name | Type | Required | Description |
|---|---|---|---|
limit | integer | No | Number of items to return per page |
offset | string | No | Pagination offset token |
project | string | No | The project to filter tasks on |
workspace | string | No | The workspace to filter tasks on |
section | string | No | The workspace to filter tasks on |
assignee | string | No | The assignee to filter tasks on |
completed_since | string | No | Only return tasks that have been completed since this time |
modified_since | string | No | Only return tasks that have been completed since this time |
| Field Name | Type | Description |
|---|---|---|
gid | string | |
resource_type | string | |
name | string | |
resource_subtype | string | |
created_by | object |
| Field Name | Type | Description |
|---|---|---|
next_page | object | null |
Get a single task by its ID
await asana.tasks.get(
task_gid="<str>"
)
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "tasks",
"action": "get",
"params": {
"task_gid": "<str>"
}
}'
| Parameter Name | Type | Required | Description |
|---|---|---|---|
task_gid | string | Yes | Task GID |
| Field Name | Type | Description |
|---|---|---|
gid | string |
Search and filter tasks records powered by Airbyte's data sync. This often provides additional fields and operators beyond what the API natively supports, making it easier to narrow down results before performing further operations. Only available in hosted mode.
await asana.tasks.search(
query={"filter": {"eq": {"actual_time_minutes": 0}}}
)
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "tasks",
"action": "search",
"params": {
"query": {"filter": {"eq": {"actual_time_minutes": 0}}}
}
}'
| Parameter Name | Type | Required | Description |
|---|---|---|---|
query | object | Yes | Filter and sort conditions. Supports operators: eq, neq, gt, gte, lt, lte, in, like, fuzzy, keyword, not, and, or |
query.filter | object | No | Filter conditions |
query.sort | array | No | Sort conditions |
limit | integer | No | Maximum results to return (default 1000) |
cursor | string | No | Pagination cursor from previous response's meta.cursor |
fields | array | No | Field paths to include in results |
| Field Name | Type | Description |
|---|---|---|
actual_time_minutes | integer | The actual time spent on the task in minutes |
approval_status | string | |
assignee | object | |
completed | boolean | |
completed_at | string | |
completed_by | object | |
created_at | string | |
custom_fields | array | |
dependencies | array | |
dependents | array | |
due_at | string | |
due_on | string | |
external | object | |
followers | array | |
gid | string | |
hearted | boolean | |
hearts | array | |
html_notes | string | |
is_rendered_as_separator | boolean | |
liked | boolean | |
likes | array | |
memberships | array | |
modified_at | string | |
name | string | |
notes | string | |
num_hearts | integer | |
num_likes | integer | |
num_subtasks | integer | |
parent | object | |
permalink_url | string | |
projects | array | |
resource_subtype | string | |
resource_type | string | |
start_on | string | |
tags | array | |
workspace | object |
| Field Name | Type | Description |
|---|---|---|
data | array | List of matching records |
meta | object | Pagination metadata |
meta.has_more | boolean | Whether additional pages are available |
meta.cursor | string | null | Cursor for next page of results |
meta.took_ms | number | null | Query execution time in milliseconds |
data[].actual_time_minutes | integer | The actual time spent on the task in minutes |
data[].approval_status | string | |
data[].assignee | object | |
data[].completed | boolean | |
data[].completed_at | string | |
data[].completed_by | object | |
data[].created_at | string | |
data[].custom_fields | array | |
data[].dependencies | array | |
data[].dependents | array | |
data[].due_at | string | |
data[].due_on | string | |
data[].external | object | |
data[].followers | array | |
data[].gid | string | |
data[].hearted | boolean | |
data[].hearts | array | |
data[].html_notes | string | |
data[].is_rendered_as_separator | boolean | |
data[].liked | boolean | |
data[].likes | array | |
data[].memberships | array | |
data[].modified_at | string | |
data[].name | string | |
data[].notes | string | |
data[].num_hearts | integer | |
data[].num_likes | integer | |
data[].num_subtasks | integer | |
data[].parent | object | |
data[].permalink_url | string | |
data[].projects | array | |
data[].resource_subtype | string | |
data[].resource_type | string | |
data[].start_on | string | |
data[].tags | array | |
data[].workspace | object |
Returns all tasks in a project
await asana.project_tasks.list(
project_gid="<str>"
)
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "project_tasks",
"action": "list",
"params": {
"project_gid": "<str>"
}
}'
| Parameter Name | Type | Required | Description |
|---|---|---|---|
project_gid | string | Yes | Project GID to list tasks from |
limit | integer | No | Number of items to return per page |
offset | string | No | Pagination offset token |
completed_since | string | No | Only return tasks that have been completed since this time |
| Field Name | Type | Description |
|---|---|---|
gid | string | |
resource_type | string | |
name | string | |
resource_subtype | string | |
created_by | object |
| Field Name | Type | Description |
|---|---|---|
next_page | object | null |
Returns tasks that match the specified search criteria. This endpoint requires a premium Asana account.
IMPORTANT: At least one search filter parameter must be provided. Valid filter parameters include: text, completed, assignee.any, projects.any, sections.any, teams.any, followers.any, created_at.after, created_at.before, modified_at.after, modified_at.before, due_on.after, due_on.before, and resource_subtype. The sort_by and sort_ascending parameters are for ordering results and do not count as search filters.
await asana.workspace_task_search.list(
workspace_gid="<str>"
)
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "workspace_task_search",
"action": "list",
"params": {
"workspace_gid": "<str>"
}
}'
| Parameter Name | Type | Required | Description |
|---|---|---|---|
workspace_gid | string | Yes | Workspace GID to search tasks in |
limit | integer | No | Number of items to return per page |
offset | string | No | Pagination offset token |
text | string | No | Search text to filter tasks |
completed | boolean | No | Filter by completion status |
assignee.any | string | No | Comma-separated list of assignee GIDs |
projects.any | string | No | Comma-separated list of project GIDs |
sections.any | string | No | Comma-separated list of section GIDs |
teams.any | string | No | Comma-separated list of team GIDs |
followers.any | string | No | Comma-separated list of follower GIDs |
created_at.after | string | No | Filter tasks created after this date (ISO 8601 format) |
created_at.before | string | No | Filter tasks created before this date (ISO 8601 format) |
modified_at.after | string | No | Filter tasks modified after this date (ISO 8601 format) |
modified_at.before | string | No | Filter tasks modified before this date (ISO 8601 format) |
due_on.after | string | No | Filter tasks due after this date (ISO 8601 date format) |
due_on.before | string | No | Filter tasks due before this date (ISO 8601 date format) |
resource_subtype | string | No | Filter by task resource subtype (e.g., default_task, milestone) |
sort_by | string | No | Field to sort by (e.g., created_at, modified_at, due_date) |
sort_ascending | boolean | No | Sort order (true for ascending, false for descending) |
| Field Name | Type | Description |
|---|---|---|
gid | string | |
resource_type | string | |
name | string | |
resource_subtype | string | |
created_by | object |
| Field Name | Type | Description |
|---|---|---|
next_page | object | null |
Returns a paginated list of projects
await asana.projects.list()
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "projects",
"action": "list"
}'
| Parameter Name | Type | Required | Description |
|---|---|---|---|
limit | integer | No | Number of items to return per page |
offset | string | No | Pagination offset token |
workspace | string | No | The workspace to filter projects on |
team | string | No | The team to filter projects on |
archived | boolean | No | Filter by archived status |
| Field Name | Type | Description |
|---|---|---|
gid | string | |
resource_type | string | |
name | string |
| Field Name | Type | Description |
|---|---|---|
next_page | object | null |
Get a single project by its ID
await asana.projects.get(
project_gid="<str>"
)
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "projects",
"action": "get",
"params": {
"project_gid": "<str>"
}
}'
| Parameter Name | Type | Required | Description |
|---|---|---|---|
project_gid | string | Yes | Project GID |
| Field Name | Type | Description |
|---|---|---|
gid | string | |
archived | boolean | |
color | string | null | |
completed | boolean | |
completed_at | string | null | |
created_at | string | |
current_status | object | null | |
current_status_update | object | null | |
custom_fields | array | |
default_access_level | string | |
default_view | string | |
due_on | string | null | |
due_date | string | null | |
followers | array<object> | |
members | array<object> | |
minimum_access_level_for_customization | string | |
minimum_access_level_for_sharing | string | |
modified_at | string | |
name | string | |
notes | string | |
owner | object | |
permalink_url | string | |
privacy_setting | string | |
public | boolean | |
resource_type | string | |
start_on | string | null | |
team | object | |
workspace | object |
Search and filter projects records powered by Airbyte's data sync. This often provides additional fields and operators beyond what the API natively supports, making it easier to narrow down results before performing further operations. Only available in hosted mode.
await asana.projects.search(
query={"filter": {"eq": {"archived": True}}}
)
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "projects",
"action": "search",
"params": {
"query": {"filter": {"eq": {"archived": True}}}
}
}'
| Parameter Name | Type | Required | Description |
|---|---|---|---|
query | object | Yes | Filter and sort conditions. Supports operators: eq, neq, gt, gte, lt, lte, in, like, fuzzy, keyword, not, and, or |
query.filter | object | No | Filter conditions |
query.sort | array | No | Sort conditions |
limit | integer | No | Maximum results to return (default 1000) |
cursor | string | No | Pagination cursor from previous response's meta.cursor |
fields | array | No | Field paths to include in results |
| Field Name | Type | Description |
|---|---|---|
archived | boolean | |
color | string | |
created_at | string | |
current_status | object | |
custom_field_settings | array | |
custom_fields | array | |
default_view | string | |
due_date | string | |
due_on | string | |
followers | array | |
gid | string | |
html_notes | string | |
icon | string | |
is_template | boolean | |
members | array | |
modified_at | string | |
name | string | |
notes | string | |
owner | object | |
permalink_url | string | |
public | boolean | |
resource_type | string | |
start_on | string | |
team | object | |
workspace | object |
| Field Name | Type | Description |
|---|---|---|
data | array | List of matching records |
meta | object | Pagination metadata |
meta.has_more | boolean | Whether additional pages are available |
meta.cursor | string | null | Cursor for next page of results |
meta.took_ms | number | null | Query execution time in milliseconds |
data[].archived | boolean | |
data[].color | string | |
data[].created_at | string | |
data[].current_status | object | |
data[].custom_field_settings | array | |
data[].custom_fields | array | |
data[].default_view | string | |
data[].due_date | string | |
data[].due_on | string | |
data[].followers | array | |
data[].gid | string | |
data[].html_notes | string | |
data[].icon | string | |
data[].is_template | boolean | |
data[].members | array | |
data[].modified_at | string | |
data[].name | string | |
data[].notes | string | |
data[].owner | object | |
data[].permalink_url | string | |
data[].public | boolean | |
data[].resource_type | string | |
data[].start_on | string | |
data[].team | object | |
data[].workspace | object |
Returns all projects a task is in
await asana.task_projects.list(
task_gid="<str>"
)
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "task_projects",
"action": "list",
"params": {
"task_gid": "<str>"
}
}'
| Parameter Name | Type | Required | Description |
|---|---|---|---|
task_gid | string | Yes | Task GID to list projects from |
limit | integer | No | Number of items to return per page |
offset | string | No | Pagination offset token |
| Field Name | Type | Description |
|---|---|---|
gid | string | |
resource_type | string | |
name | string |
| Field Name | Type | Description |
|---|---|---|
next_page | object | null |
Returns all projects for a team
await asana.team_projects.list(
team_gid="<str>"
)
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "team_projects",
"action": "list",
"params": {
"team_gid": "<str>"
}
}'
| Parameter Name | Type | Required | Description |
|---|---|---|---|
team_gid | string | Yes | Team GID to list projects from |
limit | integer | No | Number of items to return per page |
offset | string | No | Pagination offset token |
archived | boolean | No | Filter by archived status |
| Field Name | Type | Description |
|---|---|---|
gid | string | |
resource_type | string | |
name | string |
| Field Name | Type | Description |
|---|---|---|
next_page | object | null |
Returns all projects in a workspace
await asana.workspace_projects.list(
workspace_gid="<str>"
)
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "workspace_projects",
"action": "list",
"params": {
"workspace_gid": "<str>"
}
}'
| Parameter Name | Type | Required | Description |
|---|---|---|---|
workspace_gid | string | Yes | Workspace GID to list projects from |
limit | integer | No | Number of items to return per page |
offset | string | No | Pagination offset token |
archived | boolean | No | Filter by archived status |
| Field Name | Type | Description |
|---|---|---|
gid | string | |
resource_type | string | |
name | string |
| Field Name | Type | Description |
|---|---|---|
next_page | object | null |
Returns a paginated list of workspaces
await asana.workspaces.list()
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "workspaces",
"action": "list"
}'
| Parameter Name | Type | Required | Description |
|---|---|---|---|
limit | integer | No | Number of items to return per page |
offset | string | No | Pagination offset token |
| Field Name | Type | Description |
|---|---|---|
gid | string | |
resource_type | string | |
name | string |
| Field Name | Type | Description |
|---|---|---|
next_page | object | null |
Get a single workspace by its ID
await asana.workspaces.get(
workspace_gid="<str>"
)
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "workspaces",
"action": "get",
"params": {
"workspace_gid": "<str>"
}
}'
| Parameter Name | Type | Required | Description |
|---|---|---|---|
workspace_gid | string | Yes | Workspace GID |
| Field Name | Type | Description |
|---|---|---|
gid | string | |
resource_type | string | |
name | string | |
email_domains | array<string> | |
is_organization | boolean |
Search and filter workspaces records powered by Airbyte's data sync. This often provides additional fields and operators beyond what the API natively supports, making it easier to narrow down results before performing further operations. Only available in hosted mode.
await asana.workspaces.search(
query={"filter": {"eq": {"email_domains": []}}}
)
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "workspaces",
"action": "search",
"params": {
"query": {"filter": {"eq": {"email_domains": []}}}
}
}'
| Parameter Name | Type | Required | Description |
|---|---|---|---|
query | object | Yes | Filter and sort conditions. Supports operators: eq, neq, gt, gte, lt, lte, in, like, fuzzy, keyword, not, and, or |
query.filter | object | No | Filter conditions |
query.sort | array | No | Sort conditions |
limit | integer | No | Maximum results to return (default 1000) |
cursor | string | No | Pagination cursor from previous response's meta.cursor |
fields | array | No | Field paths to include in results |
| Field Name | Type | Description |
|---|---|---|
email_domains | array | |
gid | string | |
is_organization | boolean | |
name | string | |
resource_type | string |
| Field Name | Type | Description |
|---|---|---|
data | array | List of matching records |
meta | object | Pagination metadata |
meta.has_more | boolean | Whether additional pages are available |
meta.cursor | string | null | Cursor for next page of results |
meta.took_ms | number | null | Query execution time in milliseconds |
data[].email_domains | array | |
data[].gid | string | |
data[].is_organization | boolean | |
data[].name | string | |
data[].resource_type | string |
Returns a paginated list of users
await asana.users.list()
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "users",
"action": "list"
}'
| Parameter Name | Type | Required | Description |
|---|---|---|---|
limit | integer | No | Number of items to return per page |
offset | string | No | Pagination offset token |
workspace | string | No | The workspace to filter users on |
team | string | No | The team to filter users on |
| Field Name | Type | Description |
|---|---|---|
gid | string | |
resource_type | string | |
name | string |
| Field Name | Type | Description |
|---|---|---|
next_page | object | null |
Get a single user by their ID
await asana.users.get(
user_gid="<str>"
)
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "users",
"action": "get",
"params": {
"user_gid": "<str>"
}
}'
| Parameter Name | Type | Required | Description |
|---|---|---|---|
user_gid | string | Yes | User GID |
| Field Name | Type | Description |
|---|---|---|
gid | string | |
email | string | |
name | string | |
photo | object | null | |
resource_type | string | |
workspaces | array<object> |
Search and filter users records powered by Airbyte's data sync. This often provides additional fields and operators beyond what the API natively supports, making it easier to narrow down results before performing further operations. Only available in hosted mode.
await asana.users.search(
query={"filter": {"eq": {"email": "<str>"}}}
)
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "users",
"action": "search",
"params": {
"query": {"filter": {"eq": {"email": "<str>"}}}
}
}'
| Parameter Name | Type | Required | Description |
|---|---|---|---|
query | object | Yes | Filter and sort conditions. Supports operators: eq, neq, gt, gte, lt, lte, in, like, fuzzy, keyword, not, and, or |
query.filter | object | No | Filter conditions |
query.sort | array | No | Sort conditions |
limit | integer | No | Maximum results to return (default 1000) |
cursor | string | No | Pagination cursor from previous response's meta.cursor |
fields | array | No | Field paths to include in results |
| Field Name | Type | Description |
|---|---|---|
email | string | |
gid | string | |
name | string | |
photo | object | |
resource_type | string | |
workspaces | array |
| Field Name | Type | Description |
|---|---|---|
data | array | List of matching records |
meta | object | Pagination metadata |
meta.has_more | boolean | Whether additional pages are available |
meta.cursor | string | null | Cursor for next page of results |
meta.took_ms | number | null | Query execution time in milliseconds |
data[].email | string | |
data[].gid | string | |
data[].name | string | |
data[].photo | object | |
data[].resource_type | string | |
data[].workspaces | array |
Returns all users in a workspace
await asana.workspace_users.list(
workspace_gid="<str>"
)
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "workspace_users",
"action": "list",
"params": {
"workspace_gid": "<str>"
}
}'
| Parameter Name | Type | Required | Description |
|---|---|---|---|
workspace_gid | string | Yes | Workspace GID to list users from |
limit | integer | No | Number of items to return per page |
offset | string | No | Pagination offset token |
| Field Name | Type | Description |
|---|---|---|
gid | string | |
resource_type | string | |
name | string |
| Field Name | Type | Description |
|---|---|---|
next_page | object | null |
Returns all users in a team
await asana.team_users.list(
team_gid="<str>"
)
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "team_users",
"action": "list",
"params": {
"team_gid": "<str>"
}
}'
| Parameter Name | Type | Required | Description |
|---|---|---|---|
team_gid | string | Yes | Team GID to list users from |
limit | integer | No | Number of items to return per page |
offset | string | No | Pagination offset token |
| Field Name | Type | Description |
|---|---|---|
gid | string | |
resource_type | string | |
name | string |
| Field Name | Type | Description |
|---|---|---|
next_page | object | null |
Get a single team by its ID
await asana.teams.get(
team_gid="<str>"
)
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "teams",
"action": "get",
"params": {
"team_gid": "<str>"
}
}'
| Parameter Name | Type | Required | Description |
|---|---|---|---|
team_gid | string | Yes | Team GID |
| Field Name | Type | Description |
|---|---|---|
gid | string | |
name | string | |
organization | object | |
permalink_url | string | |
resource_type | string |
Search and filter teams records powered by Airbyte's data sync. This often provides additional fields and operators beyond what the API natively supports, making it easier to narrow down results before performing further operations. Only available in hosted mode.
await asana.teams.search(
query={"filter": {"eq": {"description": "<str>"}}}
)
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "teams",
"action": "search",
"params": {
"query": {"filter": {"eq": {"description": "<str>"}}}
}
}'
| Parameter Name | Type | Required | Description |
|---|---|---|---|
query | object | Yes | Filter and sort conditions. Supports operators: eq, neq, gt, gte, lt, lte, in, like, fuzzy, keyword, not, and, or |
query.filter | object | No | Filter conditions |
query.sort | array | No | Sort conditions |
limit | integer | No | Maximum results to return (default 1000) |
cursor | string | No | Pagination cursor from previous response's meta.cursor |
fields | array | No | Field paths to include in results |
| Field Name | Type | Description |
|---|---|---|
description | string | |
gid | string | |
html_description | string | |
name | string | |
organization | object | |
permalink_url | string | |
resource_type | string |
| Field Name | Type | Description |
|---|---|---|
data | array | List of matching records |
meta | object | Pagination metadata |
meta.has_more | boolean | Whether additional pages are available |
meta.cursor | string | null | Cursor for next page of results |
meta.took_ms | number | null | Query execution time in milliseconds |
data[].description | string | |
data[].gid | string | |
data[].html_description | string | |
data[].name | string | |
data[].organization | object | |
data[].permalink_url | string | |
data[].resource_type | string |
Returns all teams in a workspace
await asana.workspace_teams.list(
workspace_gid="<str>"
)
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "workspace_teams",
"action": "list",
"params": {
"workspace_gid": "<str>"
}
}'
| Parameter Name | Type | Required | Description |
|---|---|---|---|
workspace_gid | string | Yes | Workspace GID to list teams from |
limit | integer | No | Number of items to return per page |
offset | string | No | Pagination offset token |
| Field Name | Type | Description |
|---|---|---|
gid | string | |
resource_type | string | |
name | string |
| Field Name | Type | Description |
|---|---|---|
next_page | object | null |
Returns all teams a user is a member of
await asana.user_teams.list(
user_gid="<str>",
organization="<str>"
)
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "user_teams",
"action": "list",
"params": {
"user_gid": "<str>",
"organization": "<str>"
}
}'
| Parameter Name | Type | Required | Description |
|---|---|---|---|
user_gid | string | Yes | User GID to list teams from |
organization | string | Yes | The workspace or organization to filter teams on |
limit | integer | No | Number of items to return per page |
offset | string | No | Pagination offset token |
| Field Name | Type | Description |
|---|---|---|
gid | string | |
resource_type | string | |
name | string |
| Field Name | Type | Description |
|---|---|---|
next_page | object | null |
Returns a list of attachments for an object (task, project, etc.)
await asana.attachments.list(
parent="<str>"
)
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "attachments",
"action": "list",
"params": {
"parent": "<str>"
}
}'
| Parameter Name | Type | Required | Description |
|---|---|---|---|
parent | string | Yes | Globally unique identifier for the object to fetch attachments for (e.g., a task GID) |
limit | integer | No | Number of items to return per page |
offset | string | No | Pagination offset token |
| Field Name | Type | Description |
|---|---|---|
gid | string | |
resource_type | string | |
name | string | |
resource_subtype | string |
| Field Name | Type | Description |
|---|---|---|
next_page | object | null |
Get details for a single attachment by its GID
await asana.attachments.get(
attachment_gid="<str>"
)
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "attachments",
"action": "get",
"params": {
"attachment_gid": "<str>"
}
}'
| Parameter Name | Type | Required | Description |
|---|---|---|---|
attachment_gid | string | Yes | Globally unique identifier for the attachment |
| Field Name | Type | Description |
|---|---|---|
gid | string | |
resource_type | string | |
name | string | |
resource_subtype | string | |
created_at | string | |
download_url | string | null | |
permanent_url | string | null | |
host | string | |
parent | object | |
view_url | string | null | |
size | integer | null |
Downloads the file content of an attachment. This operation first retrieves the attachment metadata to get the download_url, then downloads the file from that URL.
async for chunk in asana.attachments.download( attachment_gid="<str>"):# Process each chunk (e.g., write to file)
file.write(chunk)
Note: Download operations return an async iterator of bytes chunks for memory-efficient streaming. Use
async forto process chunks as they arrive.
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "attachments",
"action": "download",
"params": {
"attachment_gid": "<str>"
}
}'
| Parameter Name | Type | Required | Description |
|---|---|---|---|
attachment_gid | string | Yes | Globally unique identifier for the attachment |
range_header | string | No | Optional Range header for partial downloads (e.g., 'bytes=0-99') |
Search and filter attachments records powered by Airbyte's data sync. This often provides additional fields and operators beyond what the API natively supports, making it easier to narrow down results before performing further operations. Only available in hosted mode.
await asana.attachments.search(
query={"filter": {"eq": {"connected_to_app": True}}}
)
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "attachments",
"action": "search",
"params": {
"query": {"filter": {"eq": {"connected_to_app": True}}}
}
}'
| Parameter Name | Type | Required | Description |
|---|---|---|---|
query | object | Yes | Filter and sort conditions. Supports operators: eq, neq, gt, gte, lt, lte, in, like, fuzzy, keyword, not, and, or |
query.filter | object | No | Filter conditions |
query.sort | array | No | Sort conditions |
limit | integer | No | Maximum results to return (default 1000) |
cursor | string | No | Pagination cursor from previous response's meta.cursor |
fields | array | No | Field paths to include in results |
| Field Name | Type | Description |
|---|---|---|
connected_to_app | boolean | |
created_at | string | |
download_url | string | |
gid | string | |
host | string | |
name | string | |
parent | object | |
permanent_url | string | |
resource_subtype | string | |
resource_type | string | |
size | integer | |
view_url | string |
| Field Name | Type | Description |
|---|---|---|
data | array | List of matching records |
meta | object | Pagination metadata |
meta.has_more | boolean | Whether additional pages are available |
meta.cursor | string | null | Cursor for next page of results |
meta.took_ms | number | null | Query execution time in milliseconds |
data[].connected_to_app | boolean | |
data[].created_at | string | |
data[].download_url | string | |
data[].gid | string | |
data[].host | string | |
data[].name | string | |
data[].parent | object | |
data[].permanent_url | string | |
data[].resource_subtype | string | |
data[].resource_type | string | |
data[].size | integer | |
data[].view_url | string |
Returns all tags in a workspace
await asana.workspace_tags.list(
workspace_gid="<str>"
)
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "workspace_tags",
"action": "list",
"params": {
"workspace_gid": "<str>"
}
}'
| Parameter Name | Type | Required | Description |
|---|---|---|---|
workspace_gid | string | Yes | Workspace GID to list tags from |
limit | integer | No | Number of items to return per page |
offset | string | No | Pagination offset token |
| Field Name | Type | Description |
|---|---|---|
gid | string | |
resource_type | string | |
name | string |
| Field Name | Type | Description |
|---|---|---|
next_page | object | null |
Get a single tag by its ID
await asana.tags.get(
tag_gid="<str>"
)
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "tags",
"action": "get",
"params": {
"tag_gid": "<str>"
}
}'
| Parameter Name | Type | Required | Description |
|---|---|---|---|
tag_gid | string | Yes | Tag GID |
| Field Name | Type | Description |
|---|---|---|
gid | string | |
resource_type | string | |
name | string | |
color | string | |
created_at | string | |
followers | array | |
notes | string | |
permalink_url | string | |
workspace | object |
Search and filter tags records powered by Airbyte's data sync. This often provides additional fields and operators beyond what the API natively supports, making it easier to narrow down results before performing further operations. Only available in hosted mode.
await asana.tags.search(
query={"filter": {"eq": {"color": "<str>"}}}
)
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "tags",
"action": "search",
"params": {
"query": {"filter": {"eq": {"color": "<str>"}}}
}
}'
| Parameter Name | Type | Required | Description |
|---|---|---|---|
query | object | Yes | Filter and sort conditions. Supports operators: eq, neq, gt, gte, lt, lte, in, like, fuzzy, keyword, not, and, or |
query.filter | object | No | Filter conditions |
query.sort | array | No | Sort conditions |
limit | integer | No | Maximum results to return (default 1000) |
cursor | string | No | Pagination cursor from previous response's meta.cursor |
fields | array | No | Field paths to include in results |
| Field Name | Type | Description |
|---|---|---|
color | string | |
followers | array | |
gid | string | |
name | string | |
permalink_url | string | |
resource_type | string | |
workspace | object |
| Field Name | Type | Description |
|---|---|---|
data | array | List of matching records |
meta | object | Pagination metadata |
meta.has_more | boolean | Whether additional pages are available |
meta.cursor | string | null | Cursor for next page of results |
meta.took_ms | number | null | Query execution time in milliseconds |
data[].color | string | |
data[].followers | array | |
data[].gid | string | |
data[].name | string | |
data[].permalink_url | string | |
data[].resource_type | string | |
data[].workspace | object |
Returns all sections in a project
await asana.project_sections.list(
project_gid="<str>"
)
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "project_sections",
"action": "list",
"params": {
"project_gid": "<str>"
}
}'
| Parameter Name | Type | Required | Description |
|---|---|---|---|
project_gid | string | Yes | Project GID to list sections from |
limit | integer | No | Number of items to return per page |
offset | string | No | Pagination offset token |
| Field Name | Type | Description |
|---|---|---|
gid | string | |
resource_type | string | |
name | string |
| Field Name | Type | Description |
|---|---|---|
next_page | object | null |
Get a single section by its ID
await asana.sections.get(
section_gid="<str>"
)
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "sections",
"action": "get",
"params": {
"section_gid": "<str>"
}
}'
| Parameter Name | Type | Required | Description |
|---|---|---|---|
section_gid | string | Yes | Section GID |
| Field Name | Type | Description |
|---|---|---|
gid | string | |
resource_type | string | |
name | string | |
created_at | string | |
project | object |
Search and filter sections records powered by Airbyte's data sync. This often provides additional fields and operators beyond what the API natively supports, making it easier to narrow down results before performing further operations. Only available in hosted mode.
await asana.sections.search(
query={"filter": {"eq": {"created_at": "<str>"}}}
)
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "sections",
"action": "search",
"params": {
"query": {"filter": {"eq": {"created_at": "<str>"}}}
}
}'
| Parameter Name | Type | Required | Description |
|---|---|---|---|
query | object | Yes | Filter and sort conditions. Supports operators: eq, neq, gt, gte, lt, lte, in, like, fuzzy, keyword, not, and, or |
query.filter | object | No | Filter conditions |
query.sort | array | No | Sort conditions |
limit | integer | No | Maximum results to return (default 1000) |
cursor | string | No | Pagination cursor from previous response's meta.cursor |
fields | array | No | Field paths to include in results |
| Field Name | Type | Description |
|---|---|---|
created_at | string | |
gid | string | |
name | string | |
project | object | |
resource_type | string |
| Field Name | Type | Description |
|---|---|---|
data | array | List of matching records |
meta | object | Pagination metadata |
meta.has_more | boolean | Whether additional pages are available |
meta.cursor | string | null | Cursor for next page of results |
meta.took_ms | number | null | Query execution time in milliseconds |
data[].created_at | string | |
data[].gid | string | |
data[].name | string | |
data[].project | object | |
data[].resource_type | string |
Returns all subtasks of a task
await asana.task_subtasks.list(
task_gid="<str>"
)
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "task_subtasks",
"action": "list",
"params": {
"task_gid": "<str>"
}
}'
| Parameter Name | Type | Required | Description |
|---|---|---|---|
task_gid | string | Yes | Task GID to list subtasks from |
limit | integer | No | Number of items to return per page |
offset | string | No | Pagination offset token |
| Field Name | Type | Description |
|---|---|---|
gid | string | |
resource_type | string | |
name | string | |
resource_subtype | string | |
created_by | object |
| Field Name | Type | Description |
|---|---|---|
next_page | object | null |
Returns all tasks that this task depends on
await asana.task_dependencies.list(
task_gid="<str>"
)
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "task_dependencies",
"action": "list",
"params": {
"task_gid": "<str>"
}
}'
| Parameter Name | Type | Required | Description |
|---|---|---|---|
task_gid | string | Yes | Task GID to list dependencies from |
limit | integer | No | Number of items to return per page |
offset | string | No | Pagination offset token |
| Field Name | Type | Description |
|---|---|---|
gid | string | |
resource_type | string | |
name | string | |
resource_subtype | string | |
created_by | object |
| Field Name | Type | Description |
|---|---|---|
next_page | object | null |
Returns all tasks that depend on this task
await asana.task_dependents.list(
task_gid="<str>"
)
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "task_dependents",
"action": "list",
"params": {
"task_gid": "<str>"
}
}'
| Parameter Name | Type | Required | Description |
|---|---|---|---|
task_gid | string | Yes | Task GID to list dependents from |
limit | integer | No | Number of items to return per page |
offset | string | No | Pagination offset token |
| Field Name | Type | Description |
|---|---|---|
gid | string | |
resource_type | string | |
name | string | |
resource_subtype | string | |
created_by | object |
| Field Name | Type | Description |
|---|---|---|
next_page | object | null |