Asana
182 tools • OpenAPI spec ↗
GETlist_tasks/tasksGet multiple tasks. Filter by project, section, tag, user task list, or assignee+workspace.
Request
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| limit | number | No | Results per page (1-100) |
| offset | string | No | Offset token for pagination |
| opt_fields | string | No | Comma-separated list of optional fields to include |
| assignee | string | No | Filter by assignee (user GID or 'me'). Requires workspace. |
| project | string | No | Filter by project GID |
| section | string | No | Filter by section GID |
| workspace | string | No | Filter by workspace GID. Required when using assignee. |
| completed_since | string | No | Only return tasks incomplete or completed since this time (ISO 8601) |
| modified_since | string | No | Only return tasks modified since this time (ISO 8601) |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "list_tasks"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "list_tasks",
"params": {}
}
}
}Request
GET https://app.ferrule.io/api/v1/asana/tasks Authorization: Bearer <your-api-key> Content-Type: application/json
Response
[
{
"items": []
}
]POSTcreate_task/tasksCreate a new task in Asana.
Request
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| opt_fields | string | No | Comma-separated list of optional fields to include |
Body Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| name | string | No | |
| resource_subtype | object | No | |
| approval_status | object | No | |
| assignee_status | object | No | |
| assigned_by | object | No | |
| completed | boolean | No | |
| completed_by | object | No | |
| due_at | object | No | |
| due_on | object | No | |
| external | object | No | |
| html_notes | string | No | |
| liked | boolean | No | |
| name | string | No | |
| notes | string | No | |
| start_at | object | No | |
| start_on | object | No | |
| assignee | object | No | |
| assignee_section | object | No | |
| custom_fields | object | No | |
| parent | object | No | |
| followers | array | No | |
| projects | array | No | |
| tags | array | No | |
| workspace | string | No |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "create_task"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "create_task",
"params": {}
}
}
}Request
POST https://app.ferrule.io/api/v1/asana/tasks
Authorization: Bearer <your-api-key>
Content-Type: application/json
{
"name": "<name>",
"resource_subtype": "<resource_subtype>",
"approval_status": "<approval_status>",
"assignee_status": "<assignee_status>",
"assigned_by": "<assigned_by>"
}GETget_task/tasks/:task_gidGet a single task by its GID.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| task_gid | string | Yes | Task GID |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| opt_fields | string | No | Comma-separated list of optional fields to include |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "get_task"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "get_task",
"params": {
"task_gid": "<task_gid>"
}
}
}
}Request
GET https://app.ferrule.io/api/v1/asana/tasks/:task_gid Authorization: Bearer <your-api-key> Content-Type: application/json
PUTupdate_task/tasks/:task_gidUpdate an existing task.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| task_gid | string | Yes | Task GID |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| opt_fields | string | No | Comma-separated list of optional fields to include |
Body Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| name | string | No | |
| resource_subtype | object | No | |
| approval_status | object | No | |
| assignee_status | object | No | |
| assigned_by | object | No | |
| completed | boolean | No | |
| completed_by | object | No | |
| due_at | object | No | |
| due_on | object | No | |
| external | object | No | |
| html_notes | string | No | |
| liked | boolean | No | |
| name | string | No | |
| notes | string | No | |
| start_at | object | No | |
| start_on | object | No | |
| assignee | object | No | |
| assignee_section | object | No | |
| custom_fields | object | No | |
| parent | object | No | |
| custom_type | object | No | |
| custom_type_status_option | object | No |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "update_task"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "update_task",
"params": {
"task_gid": "<task_gid>"
}
}
}
}Request
PUT https://app.ferrule.io/api/v1/asana/tasks/:task_gid
Authorization: Bearer <your-api-key>
Content-Type: application/json
{
"name": "<name>",
"resource_subtype": "<resource_subtype>",
"approval_status": "<approval_status>",
"assignee_status": "<assignee_status>",
"assigned_by": "<assigned_by>"
}DELETEdelete_task/tasks/:task_gidDelete a task by its GID.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| task_gid | string | Yes | Task GID |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "delete_task"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "delete_task",
"params": {
"task_gid": "<task_gid>"
}
}
}
}Request
DELETE https://app.ferrule.io/api/v1/asana/tasks/:task_gid Authorization: Bearer <your-api-key> Content-Type: application/json
POSTduplicate_task/tasks/:task_gid/duplicateDuplicate a task, including specified components.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| task_gid | string | Yes | Task GID |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| opt_fields | string | No | Comma-separated list of optional fields to include |
Body Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| name | string | No | |
| include | string | No |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "duplicate_task"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "duplicate_task",
"params": {
"task_gid": "<task_gid>"
}
}
}
}Request
POST https://app.ferrule.io/api/v1/asana/tasks/:task_gid/duplicate
Authorization: Bearer <your-api-key>
Content-Type: application/json
{
"name": "<name>",
"include": "<include>"
}Response
{
"gid": "...",
"resource_type": "...",
"resource_subtype": "...",
"status": null,
"new_portfolio": {
"gid": "...",
"resource_type": "...",
"name": "..."
},
"new_project": {
"gid": "...",
"resource_type": "...",
"name": "..."
},
"new_task": {
"gid": "...",
"resource_type": "...",
"name": "...",
"resource_subtype": null,
"created_by": {
"gid": "...",
"resource_type": "..."
}
},
"new_project_template": {
"gid": "...",
"resource_type": "...",
"name": "..."
},
"new_graph_export": {
"gid": "...",
"resource_type": "...",
"created_at": "...",
"download_url": null,
"completed_at": "..."
},
"new_resource_export": {
"gid": "...",
"resource_type": "...",
"created_at": "...",
"download_url": null,
"completed_at": "..."
}
}GETlist_subtasks/tasks/:task_gid/subtasksGet subtasks of a task.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| task_gid | string | Yes | Task GID |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| limit | number | No | Results per page (1-100) |
| offset | string | No | Offset token for pagination |
| opt_fields | string | No | Comma-separated list of optional fields to include |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "list_subtasks"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "list_subtasks",
"params": {
"task_gid": "<task_gid>"
}
}
}
}Request
GET https://app.ferrule.io/api/v1/asana/tasks/:task_gid/subtasks Authorization: Bearer <your-api-key> Content-Type: application/json
Response
[
{
"items": []
}
]POSTcreate_subtask/tasks/:task_gid/subtasksCreate a subtask under a parent task.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| task_gid | string | Yes | Parent task GID |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| opt_fields | string | No | Comma-separated list of optional fields to include |
Body Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| name | string | No | |
| resource_subtype | object | No | |
| approval_status | object | No | |
| assignee_status | object | No | |
| assigned_by | object | No | |
| completed | boolean | No | |
| completed_by | object | No | |
| due_at | object | No | |
| due_on | object | No | |
| external | object | No | |
| html_notes | string | No | |
| liked | boolean | No | |
| name | string | No | |
| notes | string | No | |
| start_at | object | No | |
| start_on | object | No | |
| assignee | object | No | |
| assignee_section | object | No | |
| custom_fields | object | No | |
| parent | object | No | |
| followers | array | No | |
| projects | array | No | |
| tags | array | No | |
| workspace | string | No |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "create_subtask"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "create_subtask",
"params": {
"task_gid": "<task_gid>"
}
}
}
}Request
POST https://app.ferrule.io/api/v1/asana/tasks/:task_gid/subtasks
Authorization: Bearer <your-api-key>
Content-Type: application/json
{
"name": "<name>",
"resource_subtype": "<resource_subtype>",
"approval_status": "<approval_status>",
"assignee_status": "<assignee_status>",
"assigned_by": "<assigned_by>"
}POSTset_task_parent/tasks/:task_gid/setParentSet the parent of a task. Use null to remove the parent.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| task_gid | string | Yes | Task GID |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| opt_fields | string | No | Comma-separated list of optional fields to include |
Body Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| parent | string | Yes | |
| insert_after | string | No | |
| insert_before | string | No |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "set_task_parent"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "set_task_parent",
"params": {
"task_gid": "<task_gid>"
}
}
}
}Request
POST https://app.ferrule.io/api/v1/asana/tasks/:task_gid/setParent
Authorization: Bearer <your-api-key>
Content-Type: application/json
{
"parent": "<parent>",
"insert_after": "<insert_after>",
"insert_before": "<insert_before>"
}GETlist_task_dependencies/tasks/:task_gid/dependenciesGet tasks that a task depends on.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| task_gid | string | Yes | Task GID |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| limit | number | No | Results per page (1-100) |
| offset | string | No | Offset token for pagination |
| opt_fields | string | No | Comma-separated list of optional fields to include |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "list_task_dependencies"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "list_task_dependencies",
"params": {
"task_gid": "<task_gid>"
}
}
}
}Request
GET https://app.ferrule.io/api/v1/asana/tasks/:task_gid/dependencies Authorization: Bearer <your-api-key> Content-Type: application/json
Response
[
{
"items": []
}
]POSTadd_task_dependencies/tasks/:task_gid/addDependenciesSet dependencies for a task.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| task_gid | string | Yes | Task GID |
Body Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| dependencies | array | No |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "add_task_dependencies"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "add_task_dependencies",
"params": {
"task_gid": "<task_gid>"
}
}
}
}Request
POST https://app.ferrule.io/api/v1/asana/tasks/:task_gid/addDependencies
Authorization: Bearer <your-api-key>
Content-Type: application/json
{
"dependencies": "<dependencies>"
}POSTremove_task_dependencies/tasks/:task_gid/removeDependenciesUnlink dependencies from a task.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| task_gid | string | Yes | Task GID |
Body Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| dependencies | array | No |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "remove_task_dependencies"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "remove_task_dependencies",
"params": {
"task_gid": "<task_gid>"
}
}
}
}Request
POST https://app.ferrule.io/api/v1/asana/tasks/:task_gid/removeDependencies
Authorization: Bearer <your-api-key>
Content-Type: application/json
{
"dependencies": "<dependencies>"
}GETlist_task_dependents/tasks/:task_gid/dependentsGet tasks that depend on a task.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| task_gid | string | Yes | Task GID |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| limit | number | No | Results per page (1-100) |
| offset | string | No | Offset token for pagination |
| opt_fields | string | No | Comma-separated list of optional fields to include |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "list_task_dependents"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "list_task_dependents",
"params": {
"task_gid": "<task_gid>"
}
}
}
}Request
GET https://app.ferrule.io/api/v1/asana/tasks/:task_gid/dependents Authorization: Bearer <your-api-key> Content-Type: application/json
Response
[
{
"items": []
}
]POSTadd_task_dependents/tasks/:task_gid/addDependentsSet dependents for a task.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| task_gid | string | Yes | Task GID |
Body Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| dependents | array | No |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "add_task_dependents"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "add_task_dependents",
"params": {
"task_gid": "<task_gid>"
}
}
}
}Request
POST https://app.ferrule.io/api/v1/asana/tasks/:task_gid/addDependents
Authorization: Bearer <your-api-key>
Content-Type: application/json
{
"dependents": "<dependents>"
}POSTremove_task_dependents/tasks/:task_gid/removeDependentsUnlink dependents from a task.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| task_gid | string | Yes | Task GID |
Body Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| dependents | array | No |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "remove_task_dependents"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "remove_task_dependents",
"params": {
"task_gid": "<task_gid>"
}
}
}
}Request
POST https://app.ferrule.io/api/v1/asana/tasks/:task_gid/removeDependents
Authorization: Bearer <your-api-key>
Content-Type: application/json
{
"dependents": "<dependents>"
}POSTadd_task_followers/tasks/:task_gid/addFollowersAdd followers to a task.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| task_gid | string | Yes | Task GID |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| opt_fields | string | No | Comma-separated list of optional fields to include |
Body Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| followers | array | Yes |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "add_task_followers"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "add_task_followers",
"params": {
"task_gid": "<task_gid>"
}
}
}
}Request
POST https://app.ferrule.io/api/v1/asana/tasks/:task_gid/addFollowers
Authorization: Bearer <your-api-key>
Content-Type: application/json
{
"followers": "<followers>"
}POSTremove_task_followers/tasks/:task_gid/removeFollowersRemove followers from a task.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| task_gid | string | Yes | Task GID |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| opt_fields | string | No | Comma-separated list of optional fields to include |
Body Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| followers | array | Yes |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "remove_task_followers"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "remove_task_followers",
"params": {
"task_gid": "<task_gid>"
}
}
}
}Request
POST https://app.ferrule.io/api/v1/asana/tasks/:task_gid/removeFollowers
Authorization: Bearer <your-api-key>
Content-Type: application/json
{
"followers": "<followers>"
}POSTadd_task_project/tasks/:task_gid/addProjectAdd a project to a task.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| task_gid | string | Yes | Task GID |
Body Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| project | string | Yes | |
| insert_after | object | No | |
| insert_before | object | No | |
| section | object | No |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "add_task_project"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "add_task_project",
"params": {
"task_gid": "<task_gid>"
}
}
}
}Request
POST https://app.ferrule.io/api/v1/asana/tasks/:task_gid/addProject
Authorization: Bearer <your-api-key>
Content-Type: application/json
{
"project": "<project>",
"insert_after": "<insert_after>",
"insert_before": "<insert_before>",
"section": "<section>"
}POSTremove_task_project/tasks/:task_gid/removeProjectRemove a project from a task.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| task_gid | string | Yes | Task GID |
Body Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| project | string | Yes |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "remove_task_project"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "remove_task_project",
"params": {
"task_gid": "<task_gid>"
}
}
}
}Request
POST https://app.ferrule.io/api/v1/asana/tasks/:task_gid/removeProject
Authorization: Bearer <your-api-key>
Content-Type: application/json
{
"project": "<project>"
}POSTadd_task_tag/tasks/:task_gid/addTagAdd a tag to a task.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| task_gid | string | Yes | Task GID |
Body Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| tag | string | Yes |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "add_task_tag"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "add_task_tag",
"params": {
"task_gid": "<task_gid>"
}
}
}
}Request
POST https://app.ferrule.io/api/v1/asana/tasks/:task_gid/addTag
Authorization: Bearer <your-api-key>
Content-Type: application/json
{
"tag": "<tag>"
}POSTremove_task_tag/tasks/:task_gid/removeTagRemove a tag from a task.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| task_gid | string | Yes | Task GID |
Body Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| tag | string | Yes |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "remove_task_tag"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "remove_task_tag",
"params": {
"task_gid": "<task_gid>"
}
}
}
}Request
POST https://app.ferrule.io/api/v1/asana/tasks/:task_gid/removeTag
Authorization: Bearer <your-api-key>
Content-Type: application/json
{
"tag": "<tag>"
}GETlist_stories_for_task/tasks/:task_gid/storiesGet stories (comments and activity) from a task.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| task_gid | string | Yes | Task GID |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| limit | number | No | Results per page (1-100) |
| offset | string | No | Offset token for pagination |
| opt_fields | string | No | Comma-separated list of optional fields to include |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "list_stories_for_task"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "list_stories_for_task",
"params": {
"task_gid": "<task_gid>"
}
}
}
}Request
GET https://app.ferrule.io/api/v1/asana/tasks/:task_gid/stories Authorization: Bearer <your-api-key> Content-Type: application/json
Response
[
{
"items": []
}
]POSTcreate_story_for_task/tasks/:task_gid/storiesCreate a story (comment) on a task. For html_text, wrap plain text in <body> tags only — Asana rejects standard HTML tags like <p>, <ul>, <li>.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| task_gid | string | Yes | Task GID |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| opt_fields | string | No | Comma-separated list of optional fields to include |
Body Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| text | string | No | |
| html_text | string | No | |
| is_pinned | boolean | No | |
| sticker_name | object | No |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "create_story_for_task"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "create_story_for_task",
"params": {
"task_gid": "<task_gid>"
}
}
}
}Request
POST https://app.ferrule.io/api/v1/asana/tasks/:task_gid/stories
Authorization: Bearer <your-api-key>
Content-Type: application/json
{
"text": "<text>",
"html_text": "<html_text>",
"is_pinned": "<is_pinned>",
"sticker_name": "<sticker_name>"
}GETget_story/stories/:story_gidGet a single story by its GID.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| story_gid | string | Yes | Story GID |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| opt_fields | string | No | Comma-separated list of optional fields to include |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "get_story"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "get_story",
"params": {
"story_gid": "<story_gid>"
}
}
}
}Request
GET https://app.ferrule.io/api/v1/asana/stories/:story_gid Authorization: Bearer <your-api-key> Content-Type: application/json
PUTupdate_story/stories/:story_gidUpdate a story. For html_text, wrap plain text in <body> tags only — Asana rejects standard HTML tags like <p>, <ul>, <li>.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| story_gid | string | Yes | Story GID |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| opt_fields | string | No | Comma-separated list of optional fields to include |
Body Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| text | string | No | |
| html_text | string | No | |
| is_pinned | boolean | No | |
| sticker_name | object | No |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "update_story"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "update_story",
"params": {
"story_gid": "<story_gid>"
}
}
}
}Request
PUT https://app.ferrule.io/api/v1/asana/stories/:story_gid
Authorization: Bearer <your-api-key>
Content-Type: application/json
{
"text": "<text>",
"html_text": "<html_text>",
"is_pinned": "<is_pinned>",
"sticker_name": "<sticker_name>"
}DELETEdelete_story/stories/:story_gidDelete a story.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| story_gid | string | Yes | Story GID |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "delete_story"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "delete_story",
"params": {
"story_gid": "<story_gid>"
}
}
}
}Request
DELETE https://app.ferrule.io/api/v1/asana/stories/:story_gid Authorization: Bearer <your-api-key> Content-Type: application/json
GETlist_projects_for_task/tasks/:task_gid/projectsGet projects a task is in.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| task_gid | string | Yes | Task GID |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| limit | number | No | Results per page (1-100) |
| offset | string | No | Offset token for pagination |
| opt_fields | string | No | Comma-separated list of optional fields to include |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "list_projects_for_task"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "list_projects_for_task",
"params": {
"task_gid": "<task_gid>"
}
}
}
}Request
GET https://app.ferrule.io/api/v1/asana/tasks/:task_gid/projects Authorization: Bearer <your-api-key> Content-Type: application/json
Response
[
{
"items": []
}
]GETlist_projects/projectsGet multiple projects. Filter by workspace, team, or archived status.
Request
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| limit | number | No | Results per page (1-100) |
| offset | string | No | Offset token for pagination |
| opt_fields | string | No | Comma-separated list of optional fields to include |
| workspace | string | No | Filter by workspace GID |
| team | string | No | Filter by team GID |
| archived | boolean | No | Filter by archived status |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "list_projects"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "list_projects",
"params": {}
}
}
}Request
GET https://app.ferrule.io/api/v1/asana/projects Authorization: Bearer <your-api-key> Content-Type: application/json
Response
[
{
"items": []
}
]POSTcreate_project/projectsCreate a new project.
Request
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| opt_fields | string | No | Comma-separated list of optional fields to include |
Body Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| name | string | No | |
| archived | boolean | No | |
| color | object | No | |
| icon | object | No | |
| current_status | object | No | |
| current_status_update | object | No | |
| default_view | object | No | |
| due_date | object | No | |
| due_on | object | No | |
| html_notes | string | No | |
| notes | string | No | |
| public | boolean | No | |
| privacy_setting | object | No | |
| start_on | object | No | |
| default_access_level | object | No | |
| minimum_access_level_for_customization | object | No | |
| minimum_access_level_for_sharing | object | No | |
| custom_fields | object | No | |
| followers | string | No | |
| owner | object | No | |
| team | string | No | |
| workspace | string | No |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "create_project"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "create_project",
"params": {}
}
}
}Request
POST https://app.ferrule.io/api/v1/asana/projects
Authorization: Bearer <your-api-key>
Content-Type: application/json
{
"name": "<name>",
"archived": "<archived>",
"color": "<color>",
"icon": "<icon>",
"current_status": "<current_status>"
}GETget_project/projects/:project_gidGet a single project by its GID.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| project_gid | string | Yes | Project GID |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| opt_fields | string | No | Comma-separated list of optional fields to include |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "get_project"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "get_project",
"params": {
"project_gid": "<project_gid>"
}
}
}
}Request
GET https://app.ferrule.io/api/v1/asana/projects/:project_gid Authorization: Bearer <your-api-key> Content-Type: application/json
PUTupdate_project/projects/:project_gidUpdate an existing project.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| project_gid | string | Yes | Project GID |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| opt_fields | string | No | Comma-separated list of optional fields to include |
Body Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| name | string | No | |
| archived | boolean | No | |
| color | object | No | |
| icon | object | No | |
| current_status | object | No | |
| current_status_update | object | No | |
| default_view | object | No | |
| due_date | object | No | |
| due_on | object | No | |
| html_notes | string | No | |
| notes | string | No | |
| public | boolean | No | |
| privacy_setting | object | No | |
| start_on | object | No | |
| default_access_level | object | No | |
| minimum_access_level_for_customization | object | No | |
| minimum_access_level_for_sharing | object | No | |
| custom_fields | object | No | |
| followers | string | No | |
| owner | object | No | |
| team | string | No |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "update_project"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "update_project",
"params": {
"project_gid": "<project_gid>"
}
}
}
}Request
PUT https://app.ferrule.io/api/v1/asana/projects/:project_gid
Authorization: Bearer <your-api-key>
Content-Type: application/json
{
"name": "<name>",
"archived": "<archived>",
"color": "<color>",
"icon": "<icon>",
"current_status": "<current_status>"
}DELETEdelete_project/projects/:project_gidDelete a project.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| project_gid | string | Yes | Project GID |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "delete_project"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "delete_project",
"params": {
"project_gid": "<project_gid>"
}
}
}
}Request
DELETE https://app.ferrule.io/api/v1/asana/projects/:project_gid Authorization: Bearer <your-api-key> Content-Type: application/json
POSTduplicate_project/projects/:project_gid/duplicateDuplicate a project, including specified components.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| project_gid | string | Yes | Project GID |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| opt_fields | string | No | Comma-separated list of optional fields to include |
Body Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| name | string | Yes | |
| team | string | No | |
| include | string | No | |
| schedule_dates | object | No |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "duplicate_project"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "duplicate_project",
"params": {
"project_gid": "<project_gid>"
}
}
}
}Request
POST https://app.ferrule.io/api/v1/asana/projects/:project_gid/duplicate
Authorization: Bearer <your-api-key>
Content-Type: application/json
{
"name": "<name>",
"team": "<team>",
"include": "<include>",
"schedule_dates": "<schedule_dates>"
}Response
{
"gid": "...",
"resource_type": "...",
"resource_subtype": "...",
"status": null,
"new_portfolio": {
"gid": "...",
"resource_type": "...",
"name": "..."
},
"new_project": {
"gid": "...",
"resource_type": "...",
"name": "..."
},
"new_task": {
"gid": "...",
"resource_type": "...",
"name": "...",
"resource_subtype": null,
"created_by": {
"gid": "...",
"resource_type": "..."
}
},
"new_project_template": {
"gid": "...",
"resource_type": "...",
"name": "..."
},
"new_graph_export": {
"gid": "...",
"resource_type": "...",
"created_at": "...",
"download_url": null,
"completed_at": "..."
},
"new_resource_export": {
"gid": "...",
"resource_type": "...",
"created_at": "...",
"download_url": null,
"completed_at": "..."
}
}GETlist_tasks_for_project/projects/:project_gid/tasksGet tasks from a project.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| project_gid | string | Yes | Project GID |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| limit | number | No | Results per page (1-100) |
| offset | string | No | Offset token for pagination |
| opt_fields | string | No | Comma-separated list of optional fields to include |
| completed_since | string | No | Only return tasks incomplete or completed since this time (ISO 8601) |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "list_tasks_for_project"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "list_tasks_for_project",
"params": {
"project_gid": "<project_gid>"
}
}
}
}Request
GET https://app.ferrule.io/api/v1/asana/projects/:project_gid/tasks Authorization: Bearer <your-api-key> Content-Type: application/json
Response
[
{
"items": []
}
]GETget_task_counts_for_project/projects/:project_gid/task_countsGet task count of a project (total, completed, incomplete).
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| project_gid | string | Yes | Project GID |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| opt_fields | string | No | Comma-separated list of optional fields to include |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "get_task_counts_for_project"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "get_task_counts_for_project",
"params": {
"project_gid": "<project_gid>"
}
}
}
}Request
GET https://app.ferrule.io/api/v1/asana/projects/:project_gid/task_counts Authorization: Bearer <your-api-key> Content-Type: application/json
Response
{
"num_tasks": 0,
"num_incomplete_tasks": 0,
"num_completed_tasks": 0,
"num_milestones": 0,
"num_incomplete_milestones": 0,
"num_completed_milestones": 0
}POSTadd_project_members/projects/:project_gid/addMembersAdd users to a project.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| project_gid | string | Yes | Project GID |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| opt_fields | string | No | Comma-separated list of optional fields to include |
Body Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| members | string | Yes |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "add_project_members"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "add_project_members",
"params": {
"project_gid": "<project_gid>"
}
}
}
}Request
POST https://app.ferrule.io/api/v1/asana/projects/:project_gid/addMembers
Authorization: Bearer <your-api-key>
Content-Type: application/json
{
"members": "<members>"
}POSTremove_project_members/projects/:project_gid/removeMembersRemove users from a project.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| project_gid | string | Yes | Project GID |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| opt_fields | string | No | Comma-separated list of optional fields to include |
Body Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| members | string | Yes |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "remove_project_members"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "remove_project_members",
"params": {
"project_gid": "<project_gid>"
}
}
}
}Request
POST https://app.ferrule.io/api/v1/asana/projects/:project_gid/removeMembers
Authorization: Bearer <your-api-key>
Content-Type: application/json
{
"members": "<members>"
}POSTadd_project_followers/projects/:project_gid/addFollowersAdd followers to a project.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| project_gid | string | Yes | Project GID |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| opt_fields | string | No | Comma-separated list of optional fields to include |
Body Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| followers | string | Yes |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "add_project_followers"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "add_project_followers",
"params": {
"project_gid": "<project_gid>"
}
}
}
}Request
POST https://app.ferrule.io/api/v1/asana/projects/:project_gid/addFollowers
Authorization: Bearer <your-api-key>
Content-Type: application/json
{
"followers": "<followers>"
}POSTremove_project_followers/projects/:project_gid/removeFollowersRemove followers from a project.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| project_gid | string | Yes | Project GID |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| opt_fields | string | No | Comma-separated list of optional fields to include |
Body Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| followers | string | Yes |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "remove_project_followers"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "remove_project_followers",
"params": {
"project_gid": "<project_gid>"
}
}
}
}Request
POST https://app.ferrule.io/api/v1/asana/projects/:project_gid/removeFollowers
Authorization: Bearer <your-api-key>
Content-Type: application/json
{
"followers": "<followers>"
}POSTadd_project_custom_field/projects/:project_gid/addCustomFieldSettingAdd a custom field setting to a project.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| project_gid | string | Yes | Project GID |
Body Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| custom_field | object | Yes | |
| is_important | boolean | No | |
| insert_before | string | No | |
| insert_after | string | No |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "add_project_custom_field"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "add_project_custom_field",
"params": {
"project_gid": "<project_gid>"
}
}
}
}Request
POST https://app.ferrule.io/api/v1/asana/projects/:project_gid/addCustomFieldSetting
Authorization: Bearer <your-api-key>
Content-Type: application/json
{
"custom_field": "<custom_field>",
"is_important": "<is_important>",
"insert_before": "<insert_before>",
"insert_after": "<insert_after>"
}POSTremove_project_custom_field/projects/:project_gid/removeCustomFieldSettingRemove a custom field setting from a project.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| project_gid | string | Yes | Project GID |
Body Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| custom_field | string | Yes |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "remove_project_custom_field"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "remove_project_custom_field",
"params": {
"project_gid": "<project_gid>"
}
}
}
}Request
POST https://app.ferrule.io/api/v1/asana/projects/:project_gid/removeCustomFieldSetting
Authorization: Bearer <your-api-key>
Content-Type: application/json
{
"custom_field": "<custom_field>"
}GETlist_project_custom_fields/projects/:project_gid/custom_field_settingsGet custom field settings for a project.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| project_gid | string | Yes | Project GID |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| limit | number | No | Results per page (1-100) |
| offset | string | No | Offset token for pagination |
| opt_fields | string | No | Comma-separated list of optional fields to include |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "list_project_custom_fields"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "list_project_custom_fields",
"params": {
"project_gid": "<project_gid>"
}
}
}
}Request
GET https://app.ferrule.io/api/v1/asana/projects/:project_gid/custom_field_settings Authorization: Bearer <your-api-key> Content-Type: application/json
Response
[
{
"items": []
}
]GETlist_project_memberships_for_project/projects/:project_gid/project_membershipsGet memberships from a project.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| project_gid | string | Yes | Project GID |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| limit | number | No | Results per page (1-100) |
| offset | string | No | Offset token for pagination |
| opt_fields | string | No | Comma-separated list of optional fields to include |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "list_project_memberships_for_project"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "list_project_memberships_for_project",
"params": {
"project_gid": "<project_gid>"
}
}
}
}Request
GET https://app.ferrule.io/api/v1/asana/projects/:project_gid/project_memberships Authorization: Bearer <your-api-key> Content-Type: application/json
Response
[
{
"items": []
}
]GETlist_project_statuses/projects/:project_gid/project_statusesGet statuses from a project.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| project_gid | string | Yes | Project GID |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| limit | number | No | Results per page (1-100) |
| offset | string | No | Offset token for pagination |
| opt_fields | string | No | Comma-separated list of optional fields to include |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "list_project_statuses"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "list_project_statuses",
"params": {
"project_gid": "<project_gid>"
}
}
}
}Request
GET https://app.ferrule.io/api/v1/asana/projects/:project_gid/project_statuses Authorization: Bearer <your-api-key> Content-Type: application/json
Response
[
{
"items": []
}
]POSTcreate_project_status/projects/:project_gid/project_statusesCreate a project status update. For html_text, wrap plain text in <body> tags only — Asana rejects standard HTML tags like <p>, <ul>, <li>.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| project_gid | string | Yes | Project GID |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| opt_fields | string | No | Comma-separated list of optional fields to include |
Body Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| title | string | No | |
| text | string | No | |
| html_text | string | No | |
| color | object | No |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "create_project_status"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "create_project_status",
"params": {
"project_gid": "<project_gid>"
}
}
}
}Request
POST https://app.ferrule.io/api/v1/asana/projects/:project_gid/project_statuses
Authorization: Bearer <your-api-key>
Content-Type: application/json
{
"title": "<title>",
"text": "<text>",
"html_text": "<html_text>",
"color": "<color>"
}GETlist_projects_for_team/teams/:team_gid/projectsGet a team's projects.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| team_gid | string | Yes | Team GID |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| limit | number | No | Results per page (1-100) |
| offset | string | No | Offset token for pagination |
| opt_fields | string | No | Comma-separated list of optional fields to include |
| archived | boolean | No | Filter by archived status |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "list_projects_for_team"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "list_projects_for_team",
"params": {
"team_gid": "<team_gid>"
}
}
}
}Request
GET https://app.ferrule.io/api/v1/asana/teams/:team_gid/projects Authorization: Bearer <your-api-key> Content-Type: application/json
Response
[
{
"items": []
}
]GETlist_projects_for_workspace/workspaces/:workspace_gid/projectsGet all projects in a workspace.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| workspace_gid | string | Yes | Workspace GID |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| limit | number | No | Results per page (1-100) |
| offset | string | No | Offset token for pagination |
| opt_fields | string | No | Comma-separated list of optional fields to include |
| archived | boolean | No | Filter by archived status |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "list_projects_for_workspace"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "list_projects_for_workspace",
"params": {
"workspace_gid": "<workspace_gid>"
}
}
}
}Request
GET https://app.ferrule.io/api/v1/asana/workspaces/:workspace_gid/projects Authorization: Bearer <your-api-key> Content-Type: application/json
Response
[
{
"items": []
}
]GETget_project_brief/project_briefs/:project_brief_gidGet a project brief.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| project_brief_gid | string | Yes | Project brief GID |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| opt_fields | string | No | Comma-separated list of optional fields to include |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "get_project_brief"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "get_project_brief",
"params": {
"project_brief_gid": "<project_brief_gid>"
}
}
}
}Request
GET https://app.ferrule.io/api/v1/asana/project_briefs/:project_brief_gid Authorization: Bearer <your-api-key> Content-Type: application/json
PUTupdate_project_brief/project_briefs/:project_brief_gidUpdate a project brief. For html_text, wrap plain text in <body> tags only — Asana rejects standard HTML tags like <p>, <ul>, <li>.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| project_brief_gid | string | Yes | Project brief GID |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| opt_fields | string | No | Comma-separated list of optional fields to include |
Body Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| title | string | No | |
| html_text | string | No | |
| text | string | No |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "update_project_brief"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "update_project_brief",
"params": {
"project_brief_gid": "<project_brief_gid>"
}
}
}
}Request
PUT https://app.ferrule.io/api/v1/asana/project_briefs/:project_brief_gid
Authorization: Bearer <your-api-key>
Content-Type: application/json
{
"title": "<title>",
"html_text": "<html_text>",
"text": "<text>"
}DELETEdelete_project_brief/project_briefs/:project_brief_gidDelete a project brief.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| project_brief_gid | string | Yes | Project brief GID |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "delete_project_brief"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "delete_project_brief",
"params": {
"project_brief_gid": "<project_brief_gid>"
}
}
}
}Request
DELETE https://app.ferrule.io/api/v1/asana/project_briefs/:project_brief_gid Authorization: Bearer <your-api-key> Content-Type: application/json
POSTcreate_project_brief/projects/:project_gid/project_briefsCreate a project brief on a project. For html_text, wrap plain text in <body> tags only — Asana rejects standard HTML tags like <p>, <ul>, <li>.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| project_gid | string | Yes | Project GID |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| opt_fields | string | No | Comma-separated list of optional fields to include |
Body Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| title | string | No | |
| html_text | string | No | |
| text | string | No |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "create_project_brief"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "create_project_brief",
"params": {
"project_gid": "<project_gid>"
}
}
}
}Request
POST https://app.ferrule.io/api/v1/asana/projects/:project_gid/project_briefs
Authorization: Bearer <your-api-key>
Content-Type: application/json
{
"title": "<title>",
"html_text": "<html_text>",
"text": "<text>"
}GETget_project_status/project_statuses/:project_status_gidGet a project status by its GID.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| project_status_gid | string | Yes | Project status GID |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| opt_fields | string | No | Comma-separated list of optional fields to include |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "get_project_status"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "get_project_status",
"params": {
"project_status_gid": "<project_status_gid>"
}
}
}
}Request
GET https://app.ferrule.io/api/v1/asana/project_statuses/:project_status_gid Authorization: Bearer <your-api-key> Content-Type: application/json
DELETEdelete_project_status/project_statuses/:project_status_gidDelete a project status.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| project_status_gid | string | Yes | Project status GID |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "delete_project_status"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "delete_project_status",
"params": {
"project_status_gid": "<project_status_gid>"
}
}
}
}Request
DELETE https://app.ferrule.io/api/v1/asana/project_statuses/:project_status_gid Authorization: Bearer <your-api-key> Content-Type: application/json
GETlist_project_templates/project_templatesGet multiple project templates.
Request
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| limit | number | No | Results per page (1-100) |
| offset | string | No | Offset token for pagination |
| opt_fields | string | No | Comma-separated list of optional fields to include |
| workspace | string | No | Filter by workspace GID |
| team | string | No | Filter by team GID |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "list_project_templates"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "list_project_templates",
"params": {}
}
}
}Request
GET https://app.ferrule.io/api/v1/asana/project_templates Authorization: Bearer <your-api-key> Content-Type: application/json
Response
[
{
"items": []
}
]GETget_project_template/project_templates/:project_template_gidGet a project template by its GID.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| project_template_gid | string | Yes | Project template GID |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| opt_fields | string | No | Comma-separated list of optional fields to include |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "get_project_template"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "get_project_template",
"params": {
"project_template_gid": "<project_template_gid>"
}
}
}
}Request
GET https://app.ferrule.io/api/v1/asana/project_templates/:project_template_gid Authorization: Bearer <your-api-key> Content-Type: application/json
DELETEdelete_project_template/project_templates/:project_template_gidDelete a project template.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| project_template_gid | string | Yes | Project template GID |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "delete_project_template"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "delete_project_template",
"params": {
"project_template_gid": "<project_template_gid>"
}
}
}
}Request
DELETE https://app.ferrule.io/api/v1/asana/project_templates/:project_template_gid Authorization: Bearer <your-api-key> Content-Type: application/json
POSTinstantiate_project/project_templates/:project_template_gid/instantiateProjectInstantiate a project from a project template.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| project_template_gid | string | Yes | Project template GID |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| opt_fields | string | No | Comma-separated list of optional fields to include |
Body Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| name | string | Yes | |
| team | string | No | |
| public | boolean | No | |
| privacy_setting | object | No | |
| is_strict | boolean | No | |
| requested_dates | array | No | |
| requested_roles | array | No |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "instantiate_project"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "instantiate_project",
"params": {
"project_template_gid": "<project_template_gid>"
}
}
}
}Request
POST https://app.ferrule.io/api/v1/asana/project_templates/:project_template_gid/instantiateProject
Authorization: Bearer <your-api-key>
Content-Type: application/json
{
"name": "<name>",
"team": "<team>",
"public": "<public>",
"privacy_setting": "<privacy_setting>",
"is_strict": "<is_strict>"
}Response
{
"gid": "...",
"resource_type": "...",
"resource_subtype": "...",
"status": null,
"new_portfolio": {
"gid": "...",
"resource_type": "...",
"name": "..."
},
"new_project": {
"gid": "...",
"resource_type": "...",
"name": "..."
},
"new_task": {
"gid": "...",
"resource_type": "...",
"name": "...",
"resource_subtype": null,
"created_by": {
"gid": "...",
"resource_type": "..."
}
},
"new_project_template": {
"gid": "...",
"resource_type": "...",
"name": "..."
},
"new_graph_export": {
"gid": "...",
"resource_type": "...",
"created_at": "...",
"download_url": null,
"completed_at": "..."
},
"new_resource_export": {
"gid": "...",
"resource_type": "...",
"created_at": "...",
"download_url": null,
"completed_at": "..."
}
}GETlist_project_templates_for_team/teams/:team_gid/project_templatesGet a team's project templates.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| team_gid | string | Yes | Team GID |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| limit | number | No | Results per page (1-100) |
| offset | string | No | Offset token for pagination |
| opt_fields | string | No | Comma-separated list of optional fields to include |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "list_project_templates_for_team"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "list_project_templates_for_team",
"params": {
"team_gid": "<team_gid>"
}
}
}
}Request
GET https://app.ferrule.io/api/v1/asana/teams/:team_gid/project_templates Authorization: Bearer <your-api-key> Content-Type: application/json
Response
[
{
"items": []
}
]GETlist_sections_for_project/projects/:project_gid/sectionsGet sections in a project.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| project_gid | string | Yes | Project GID |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| limit | number | No | Results per page (1-100) |
| offset | string | No | Offset token for pagination |
| opt_fields | string | No | Comma-separated list of optional fields to include |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "list_sections_for_project"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "list_sections_for_project",
"params": {
"project_gid": "<project_gid>"
}
}
}
}Request
GET https://app.ferrule.io/api/v1/asana/projects/:project_gid/sections Authorization: Bearer <your-api-key> Content-Type: application/json
Response
[
{
"items": []
}
]POSTcreate_section/projects/:project_gid/sectionsCreate a section in a project.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| project_gid | string | Yes | Project GID |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| opt_fields | string | No | Comma-separated list of optional fields to include |
Body Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| name | string | Yes | |
| insert_before | string | No | |
| insert_after | string | No |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "create_section"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "create_section",
"params": {
"project_gid": "<project_gid>"
}
}
}
}Request
POST https://app.ferrule.io/api/v1/asana/projects/:project_gid/sections
Authorization: Bearer <your-api-key>
Content-Type: application/json
{
"name": "<name>",
"insert_before": "<insert_before>",
"insert_after": "<insert_after>"
}POSTinsert_section/projects/:project_gid/sections/insertMove or insert sections in a project (reorder).
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| project_gid | string | Yes | Project GID |
Body Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| section | string | Yes | |
| before_section | string | No | |
| after_section | string | No |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "insert_section"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "insert_section",
"params": {
"project_gid": "<project_gid>"
}
}
}
}Request
POST https://app.ferrule.io/api/v1/asana/projects/:project_gid/sections/insert
Authorization: Bearer <your-api-key>
Content-Type: application/json
{
"section": "<section>",
"before_section": "<before_section>",
"after_section": "<after_section>"
}GETget_section/sections/:section_gidGet a section by its GID.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| section_gid | string | Yes | Section GID |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| opt_fields | string | No | Comma-separated list of optional fields to include |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "get_section"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "get_section",
"params": {
"section_gid": "<section_gid>"
}
}
}
}Request
GET https://app.ferrule.io/api/v1/asana/sections/:section_gid Authorization: Bearer <your-api-key> Content-Type: application/json
PUTupdate_section/sections/:section_gidUpdate a section.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| section_gid | string | Yes | Section GID |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| opt_fields | string | No | Comma-separated list of optional fields to include |
Body Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| name | string | Yes | |
| insert_before | string | No | |
| insert_after | string | No |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "update_section"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "update_section",
"params": {
"section_gid": "<section_gid>"
}
}
}
}Request
PUT https://app.ferrule.io/api/v1/asana/sections/:section_gid
Authorization: Bearer <your-api-key>
Content-Type: application/json
{
"name": "<name>",
"insert_before": "<insert_before>",
"insert_after": "<insert_after>"
}DELETEdelete_section/sections/:section_gidDelete a section.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| section_gid | string | Yes | Section GID |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "delete_section"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "delete_section",
"params": {
"section_gid": "<section_gid>"
}
}
}
}Request
DELETE https://app.ferrule.io/api/v1/asana/sections/:section_gid Authorization: Bearer <your-api-key> Content-Type: application/json
GETlist_tasks_for_section/sections/:section_gid/tasksGet tasks from a section.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| section_gid | string | Yes | Section GID |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| limit | number | No | Results per page (1-100) |
| offset | string | No | Offset token for pagination |
| opt_fields | string | No | Comma-separated list of optional fields to include |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "list_tasks_for_section"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "list_tasks_for_section",
"params": {
"section_gid": "<section_gid>"
}
}
}
}Request
GET https://app.ferrule.io/api/v1/asana/sections/:section_gid/tasks Authorization: Bearer <your-api-key> Content-Type: application/json
Response
[
{
"items": []
}
]POSTadd_task_to_section/sections/:section_gid/addTaskAdd a task to a section.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| section_gid | string | Yes | Section GID |
Body Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| task | string | Yes | |
| insert_before | string | No | |
| insert_after | string | No |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "add_task_to_section"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "add_task_to_section",
"params": {
"section_gid": "<section_gid>"
}
}
}
}Request
POST https://app.ferrule.io/api/v1/asana/sections/:section_gid/addTask
Authorization: Bearer <your-api-key>
Content-Type: application/json
{
"task": "<task>",
"insert_before": "<insert_before>",
"insert_after": "<insert_after>"
}GETlist_portfolios/portfoliosGet multiple portfolios.
Request
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| limit | number | No | Results per page (1-100) |
| offset | string | No | Offset token for pagination |
| opt_fields | string | No | Comma-separated list of optional fields to include |
| workspace | string | No | Filter by workspace GID (required) |
| owner | string | No | Filter by owner (user GID or 'me') |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "list_portfolios"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "list_portfolios",
"params": {}
}
}
}Request
GET https://app.ferrule.io/api/v1/asana/portfolios Authorization: Bearer <your-api-key> Content-Type: application/json
Response
[
{
"items": []
}
]POSTcreate_portfolio/portfoliosCreate a new portfolio.
Request
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| opt_fields | string | No | Comma-separated list of optional fields to include |
Body Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| name | string | No | |
| archived | boolean | No | |
| color | object | No | |
| start_on | object | No | |
| due_on | object | No | |
| default_access_level | object | No | |
| workspace | string | No | |
| public | boolean | No |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "create_portfolio"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "create_portfolio",
"params": {}
}
}
}Request
POST https://app.ferrule.io/api/v1/asana/portfolios
Authorization: Bearer <your-api-key>
Content-Type: application/json
{
"name": "<name>",
"archived": "<archived>",
"color": "<color>",
"start_on": "<start_on>",
"due_on": "<due_on>"
}GETget_portfolio/portfolios/:portfolio_gidGet a portfolio by its GID.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| portfolio_gid | string | Yes | Portfolio GID |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| opt_fields | string | No | Comma-separated list of optional fields to include |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "get_portfolio"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "get_portfolio",
"params": {
"portfolio_gid": "<portfolio_gid>"
}
}
}
}Request
GET https://app.ferrule.io/api/v1/asana/portfolios/:portfolio_gid Authorization: Bearer <your-api-key> Content-Type: application/json
PUTupdate_portfolio/portfolios/:portfolio_gidUpdate a portfolio.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| portfolio_gid | string | Yes | Portfolio GID |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| opt_fields | string | No | Comma-separated list of optional fields to include |
Body Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| name | string | No | |
| archived | boolean | No | |
| color | object | No | |
| start_on | object | No | |
| due_on | object | No | |
| default_access_level | object | No | |
| custom_fields | object | No |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "update_portfolio"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "update_portfolio",
"params": {
"portfolio_gid": "<portfolio_gid>"
}
}
}
}Request
PUT https://app.ferrule.io/api/v1/asana/portfolios/:portfolio_gid
Authorization: Bearer <your-api-key>
Content-Type: application/json
{
"name": "<name>",
"archived": "<archived>",
"color": "<color>",
"start_on": "<start_on>",
"due_on": "<due_on>"
}DELETEdelete_portfolio/portfolios/:portfolio_gidDelete a portfolio.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| portfolio_gid | string | Yes | Portfolio GID |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "delete_portfolio"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "delete_portfolio",
"params": {
"portfolio_gid": "<portfolio_gid>"
}
}
}
}Request
DELETE https://app.ferrule.io/api/v1/asana/portfolios/:portfolio_gid Authorization: Bearer <your-api-key> Content-Type: application/json
POSTduplicate_portfolio/portfolios/:portfolio_gid/duplicateDuplicate a portfolio.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| portfolio_gid | string | Yes | Portfolio GID |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| opt_fields | string | No | Comma-separated list of optional fields to include |
Body Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| name | string | Yes | |
| include | string | No |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "duplicate_portfolio"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "duplicate_portfolio",
"params": {
"portfolio_gid": "<portfolio_gid>"
}
}
}
}Request
POST https://app.ferrule.io/api/v1/asana/portfolios/:portfolio_gid/duplicate
Authorization: Bearer <your-api-key>
Content-Type: application/json
{
"name": "<name>",
"include": "<include>"
}Response
{
"gid": "...",
"resource_type": "...",
"resource_subtype": "...",
"status": null,
"new_portfolio": {
"gid": "...",
"resource_type": "...",
"name": "..."
},
"new_project": {
"gid": "...",
"resource_type": "...",
"name": "..."
},
"new_task": {
"gid": "...",
"resource_type": "...",
"name": "...",
"resource_subtype": null,
"created_by": {
"gid": "...",
"resource_type": "..."
}
},
"new_project_template": {
"gid": "...",
"resource_type": "...",
"name": "..."
},
"new_graph_export": {
"gid": "...",
"resource_type": "...",
"created_at": "...",
"download_url": null,
"completed_at": "..."
},
"new_resource_export": {
"gid": "...",
"resource_type": "...",
"created_at": "...",
"download_url": null,
"completed_at": "..."
}
}GETlist_portfolio_items/portfolios/:portfolio_gid/itemsGet items (projects) in a portfolio.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| portfolio_gid | string | Yes | Portfolio GID |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| limit | number | No | Results per page (1-100) |
| offset | string | No | Offset token for pagination |
| opt_fields | string | No | Comma-separated list of optional fields to include |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "list_portfolio_items"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "list_portfolio_items",
"params": {
"portfolio_gid": "<portfolio_gid>"
}
}
}
}Request
GET https://app.ferrule.io/api/v1/asana/portfolios/:portfolio_gid/items Authorization: Bearer <your-api-key> Content-Type: application/json
Response
[
{
"items": []
}
]POSTadd_portfolio_item/portfolios/:portfolio_gid/addItemAdd a project to a portfolio.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| portfolio_gid | string | Yes | Portfolio GID |
Body Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| item | string | Yes | |
| insert_before | string | No | |
| insert_after | string | No |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "add_portfolio_item"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "add_portfolio_item",
"params": {
"portfolio_gid": "<portfolio_gid>"
}
}
}
}Request
POST https://app.ferrule.io/api/v1/asana/portfolios/:portfolio_gid/addItem
Authorization: Bearer <your-api-key>
Content-Type: application/json
{
"item": "<item>",
"insert_before": "<insert_before>",
"insert_after": "<insert_after>"
}POSTremove_portfolio_item/portfolios/:portfolio_gid/removeItemRemove a project from a portfolio.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| portfolio_gid | string | Yes | Portfolio GID |
Body Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| item | string | Yes |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "remove_portfolio_item"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "remove_portfolio_item",
"params": {
"portfolio_gid": "<portfolio_gid>"
}
}
}
}Request
POST https://app.ferrule.io/api/v1/asana/portfolios/:portfolio_gid/removeItem
Authorization: Bearer <your-api-key>
Content-Type: application/json
{
"item": "<item>"
}POSTadd_portfolio_members/portfolios/:portfolio_gid/addMembersAdd users to a portfolio.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| portfolio_gid | string | Yes | Portfolio GID |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| opt_fields | string | No | Comma-separated list of optional fields to include |
Body Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| members | string | Yes |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "add_portfolio_members"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "add_portfolio_members",
"params": {
"portfolio_gid": "<portfolio_gid>"
}
}
}
}Request
POST https://app.ferrule.io/api/v1/asana/portfolios/:portfolio_gid/addMembers
Authorization: Bearer <your-api-key>
Content-Type: application/json
{
"members": "<members>"
}POSTremove_portfolio_members/portfolios/:portfolio_gid/removeMembersRemove users from a portfolio.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| portfolio_gid | string | Yes | Portfolio GID |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| opt_fields | string | No | Comma-separated list of optional fields to include |
Body Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| members | string | Yes |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "remove_portfolio_members"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "remove_portfolio_members",
"params": {
"portfolio_gid": "<portfolio_gid>"
}
}
}
}Request
POST https://app.ferrule.io/api/v1/asana/portfolios/:portfolio_gid/removeMembers
Authorization: Bearer <your-api-key>
Content-Type: application/json
{
"members": "<members>"
}POSTadd_portfolio_custom_field/portfolios/:portfolio_gid/addCustomFieldSettingAdd a custom field setting to a portfolio.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| portfolio_gid | string | Yes | Portfolio GID |
Body Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| custom_field | object | Yes | |
| is_important | boolean | No | |
| insert_before | string | No | |
| insert_after | string | No |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "add_portfolio_custom_field"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "add_portfolio_custom_field",
"params": {
"portfolio_gid": "<portfolio_gid>"
}
}
}
}Request
POST https://app.ferrule.io/api/v1/asana/portfolios/:portfolio_gid/addCustomFieldSetting
Authorization: Bearer <your-api-key>
Content-Type: application/json
{
"custom_field": "<custom_field>",
"is_important": "<is_important>",
"insert_before": "<insert_before>",
"insert_after": "<insert_after>"
}POSTremove_portfolio_custom_field/portfolios/:portfolio_gid/removeCustomFieldSettingRemove a custom field setting from a portfolio.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| portfolio_gid | string | Yes | Portfolio GID |
Body Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| custom_field | string | Yes |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "remove_portfolio_custom_field"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "remove_portfolio_custom_field",
"params": {
"portfolio_gid": "<portfolio_gid>"
}
}
}
}Request
POST https://app.ferrule.io/api/v1/asana/portfolios/:portfolio_gid/removeCustomFieldSetting
Authorization: Bearer <your-api-key>
Content-Type: application/json
{
"custom_field": "<custom_field>"
}GETlist_portfolio_memberships/portfolio_membershipsGet multiple portfolio memberships.
Request
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| limit | number | No | Results per page (1-100) |
| offset | string | No | Offset token for pagination |
| opt_fields | string | No | Comma-separated list of optional fields to include |
| portfolio | string | No | Filter by portfolio GID |
| workspace | string | No | Filter by workspace GID |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "list_portfolio_memberships"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "list_portfolio_memberships",
"params": {}
}
}
}Request
GET https://app.ferrule.io/api/v1/asana/portfolio_memberships Authorization: Bearer <your-api-key> Content-Type: application/json
Response
[
{
"items": []
}
]GETget_portfolio_membership/portfolio_memberships/:portfolio_membership_gidGet a portfolio membership by its GID.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| portfolio_membership_gid | string | Yes | Portfolio membership GID |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| opt_fields | string | No | Comma-separated list of optional fields to include |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "get_portfolio_membership"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "get_portfolio_membership",
"params": {
"portfolio_membership_gid": "<portfolio_membership_gid>"
}
}
}
}Request
GET https://app.ferrule.io/api/v1/asana/portfolio_memberships/:portfolio_membership_gid Authorization: Bearer <your-api-key> Content-Type: application/json
Response
{
"gid": "...",
"resource_type": "...",
"parent": {
"gid": "...",
"resource_type": "...",
"name": "..."
},
"member": {
"gid": "...",
"resource_type": "...",
"name": "..."
},
"access_level": null
}GETlist_portfolio_memberships_for_portfolio/portfolios/:portfolio_gid/portfolio_membershipsGet memberships from a portfolio.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| portfolio_gid | string | Yes | Portfolio GID |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| limit | number | No | Results per page (1-100) |
| offset | string | No | Offset token for pagination |
| opt_fields | string | No | Comma-separated list of optional fields to include |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "list_portfolio_memberships_for_portfolio"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "list_portfolio_memberships_for_portfolio",
"params": {
"portfolio_gid": "<portfolio_gid>"
}
}
}
}Request
GET https://app.ferrule.io/api/v1/asana/portfolios/:portfolio_gid/portfolio_memberships Authorization: Bearer <your-api-key> Content-Type: application/json
Response
[
{
"items": []
}
]GETlist_goals/goalsGet goals. Filter by workspace, team, time period, or portfolio.
Request
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| limit | number | No | Results per page (1-100) |
| offset | string | No | Offset token for pagination |
| opt_fields | string | No | Comma-separated list of optional fields to include |
| workspace | string | No | Filter by workspace GID |
| team | string | No | Filter by team GID |
| portfolio | string | No | Filter by portfolio GID |
| time_periods | string | No | Comma-separated time period GIDs |
| is_workspace_level | boolean | No | Filter by workspace-level goals |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "list_goals"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "list_goals",
"params": {}
}
}
}Request
GET https://app.ferrule.io/api/v1/asana/goals Authorization: Bearer <your-api-key> Content-Type: application/json
Response
[
{
"items": []
}
]POSTcreate_goal/goalsCreate a new goal.
Request
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| opt_fields | string | No | Comma-separated list of optional fields to include |
Body Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| name | string | No | |
| html_notes | string | No | |
| notes | string | No | |
| due_on | object | No | |
| start_on | object | No | |
| is_workspace_level | boolean | No | |
| liked | boolean | No | |
| team | object | No | |
| workspace | string | No | |
| time_period | object | No | |
| owner | object | No | |
| followers | array | No |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "create_goal"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "create_goal",
"params": {}
}
}
}Request
POST https://app.ferrule.io/api/v1/asana/goals
Authorization: Bearer <your-api-key>
Content-Type: application/json
{
"name": "<name>",
"html_notes": "<html_notes>",
"notes": "<notes>",
"due_on": "<due_on>",
"start_on": "<start_on>"
}GETget_goal/goals/:goal_gidGet a goal by its GID.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| goal_gid | string | Yes | Goal GID |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| opt_fields | string | No | Comma-separated list of optional fields to include |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "get_goal"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "get_goal",
"params": {
"goal_gid": "<goal_gid>"
}
}
}
}Request
GET https://app.ferrule.io/api/v1/asana/goals/:goal_gid Authorization: Bearer <your-api-key> Content-Type: application/json
PUTupdate_goal/goals/:goal_gidUpdate a goal.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| goal_gid | string | Yes | Goal GID |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| opt_fields | string | No | Comma-separated list of optional fields to include |
Body Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| name | string | No | |
| html_notes | string | No | |
| notes | string | No | |
| due_on | object | No | |
| start_on | object | No | |
| is_workspace_level | boolean | No | |
| liked | boolean | No | |
| team | object | No | |
| workspace | string | No | |
| time_period | object | No | |
| owner | object | No | |
| status | object | No | |
| custom_fields | object | No |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "update_goal"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "update_goal",
"params": {
"goal_gid": "<goal_gid>"
}
}
}
}Request
PUT https://app.ferrule.io/api/v1/asana/goals/:goal_gid
Authorization: Bearer <your-api-key>
Content-Type: application/json
{
"name": "<name>",
"html_notes": "<html_notes>",
"notes": "<notes>",
"due_on": "<due_on>",
"start_on": "<start_on>"
}DELETEdelete_goal/goals/:goal_gidDelete a goal.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| goal_gid | string | Yes | Goal GID |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "delete_goal"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "delete_goal",
"params": {
"goal_gid": "<goal_gid>"
}
}
}
}Request
DELETE https://app.ferrule.io/api/v1/asana/goals/:goal_gid Authorization: Bearer <your-api-key> Content-Type: application/json
POSTadd_goal_followers/goals/:goal_gid/addFollowersAdd a collaborator (follower) to a goal.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| goal_gid | string | Yes | Goal GID |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| opt_fields | string | No | Comma-separated list of optional fields to include |
Body Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| followers | array | Yes |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "add_goal_followers"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "add_goal_followers",
"params": {
"goal_gid": "<goal_gid>"
}
}
}
}Request
POST https://app.ferrule.io/api/v1/asana/goals/:goal_gid/addFollowers
Authorization: Bearer <your-api-key>
Content-Type: application/json
{
"followers": "<followers>"
}POSTremove_goal_followers/goals/:goal_gid/removeFollowersRemove a collaborator (follower) from a goal.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| goal_gid | string | Yes | Goal GID |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| opt_fields | string | No | Comma-separated list of optional fields to include |
Body Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| followers | array | Yes |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "remove_goal_followers"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "remove_goal_followers",
"params": {
"goal_gid": "<goal_gid>"
}
}
}
}Request
POST https://app.ferrule.io/api/v1/asana/goals/:goal_gid/removeFollowers
Authorization: Bearer <your-api-key>
Content-Type: application/json
{
"followers": "<followers>"
}POSTadd_goal_supporting_relationship/goals/:goal_gid/addSupportingRelationshipAdd a supporting goal relationship.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| goal_gid | string | Yes | Goal GID |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| opt_fields | string | No | Comma-separated list of optional fields to include |
Body Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| supporting_resource | string | Yes | |
| insert_before | string | No | |
| insert_after | string | No | |
| contribution_weight | number | No |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "add_goal_supporting_relationship"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "add_goal_supporting_relationship",
"params": {
"goal_gid": "<goal_gid>"
}
}
}
}Request
POST https://app.ferrule.io/api/v1/asana/goals/:goal_gid/addSupportingRelationship
Authorization: Bearer <your-api-key>
Content-Type: application/json
{
"supporting_resource": "<supporting_resource>",
"insert_before": "<insert_before>",
"insert_after": "<insert_after>",
"contribution_weight": 1
}POSTremove_goal_supporting_relationship/goals/:goal_gid/removeSupportingRelationshipRemove a supporting goal relationship.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| goal_gid | string | Yes | Goal GID |
Body Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| supporting_resource | string | Yes |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "remove_goal_supporting_relationship"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "remove_goal_supporting_relationship",
"params": {
"goal_gid": "<goal_gid>"
}
}
}
}Request
POST https://app.ferrule.io/api/v1/asana/goals/:goal_gid/removeSupportingRelationship
Authorization: Bearer <your-api-key>
Content-Type: application/json
{
"supporting_resource": "<supporting_resource>"
}POSTcreate_goal_metric/goals/:goal_gid/setMetricCreate a goal metric (set the metric on a goal).
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| goal_gid | string | Yes | Goal GID |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| opt_fields | string | No | Comma-separated list of optional fields to include |
Body Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| precision | number | No | |
| unit | object | No | |
| currency_code | object | No | |
| initial_number_value | number | No | |
| target_number_value | number | No | |
| current_number_value | number | No | |
| progress_source | object | No | |
| is_custom_weight | boolean | No |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "create_goal_metric"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "create_goal_metric",
"params": {
"goal_gid": "<goal_gid>"
}
}
}
}Request
POST https://app.ferrule.io/api/v1/asana/goals/:goal_gid/setMetric
Authorization: Bearer <your-api-key>
Content-Type: application/json
{
"precision": 1,
"unit": "<unit>",
"currency_code": "<currency_code>",
"initial_number_value": 1,
"target_number_value": 1
}POSTupdate_goal_metric/goals/:goal_gid/setMetricCurrentValueUpdate a goal metric's current value.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| goal_gid | string | Yes | Goal GID |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| opt_fields | string | No | Comma-separated list of optional fields to include |
Body Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| current_number_value | number | No |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "update_goal_metric"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "update_goal_metric",
"params": {
"goal_gid": "<goal_gid>"
}
}
}
}Request
POST https://app.ferrule.io/api/v1/asana/goals/:goal_gid/setMetricCurrentValue
Authorization: Bearer <your-api-key>
Content-Type: application/json
{
"current_number_value": 1
}GETlist_parent_goals/goals/:goal_gid/parentGoalsGet parent goals of a goal.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| goal_gid | string | Yes | Goal GID |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| opt_fields | string | No | Comma-separated list of optional fields to include |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "list_parent_goals"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "list_parent_goals",
"params": {
"goal_gid": "<goal_gid>"
}
}
}
}Request
GET https://app.ferrule.io/api/v1/asana/goals/:goal_gid/parentGoals Authorization: Bearer <your-api-key> Content-Type: application/json
Response
[
{
"items": []
}
]GETlist_goal_custom_fields/goals/:goal_gid/custom_field_settingsGet custom field settings for a goal.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| goal_gid | string | Yes | Goal GID |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| limit | number | No | Results per page (1-100) |
| offset | string | No | Offset token for pagination |
| opt_fields | string | No | Comma-separated list of optional fields to include |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "list_goal_custom_fields"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "list_goal_custom_fields",
"params": {
"goal_gid": "<goal_gid>"
}
}
}
}Request
GET https://app.ferrule.io/api/v1/asana/goals/:goal_gid/custom_field_settings Authorization: Bearer <your-api-key> Content-Type: application/json
Response
[
{
"items": []
}
]POSTadd_goal_custom_field/goals/:goal_gid/addCustomFieldSettingAdd a custom field setting to a goal.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| goal_gid | string | Yes | Goal GID |
Body Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| custom_field | object | Yes | |
| is_important | boolean | No | |
| insert_before | string | No | |
| insert_after | string | No |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "add_goal_custom_field"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "add_goal_custom_field",
"params": {
"goal_gid": "<goal_gid>"
}
}
}
}Request
POST https://app.ferrule.io/api/v1/asana/goals/:goal_gid/addCustomFieldSetting
Authorization: Bearer <your-api-key>
Content-Type: application/json
{
"custom_field": "<custom_field>",
"is_important": "<is_important>",
"insert_before": "<insert_before>",
"insert_after": "<insert_after>"
}POSTremove_goal_custom_field/goals/:goal_gid/removeCustomFieldSettingRemove a custom field setting from a goal.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| goal_gid | string | Yes | Goal GID |
Body Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| custom_field | string | Yes |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "remove_goal_custom_field"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "remove_goal_custom_field",
"params": {
"goal_gid": "<goal_gid>"
}
}
}
}Request
POST https://app.ferrule.io/api/v1/asana/goals/:goal_gid/removeCustomFieldSetting
Authorization: Bearer <your-api-key>
Content-Type: application/json
{
"custom_field": "<custom_field>"
}GETlist_goal_relationships/goal_relationshipsGet goal relationships. Filter by supported_goal.
Request
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| limit | number | No | Results per page (1-100) |
| offset | string | No | Offset token for pagination |
| opt_fields | string | No | Comma-separated list of optional fields to include |
| supported_goal | string | No | Filter by supported goal GID (required) |
| resource_subtype | string | No | Filter by relationship type (subgoal or supporting_work) |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "list_goal_relationships"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "list_goal_relationships",
"params": {}
}
}
}Request
GET https://app.ferrule.io/api/v1/asana/goal_relationships Authorization: Bearer <your-api-key> Content-Type: application/json
Response
[
{
"items": []
}
]GETget_goal_relationship/goal_relationships/:goal_relationship_gidGet a goal relationship by its GID.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| goal_relationship_gid | string | Yes | Goal relationship GID |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| opt_fields | string | No | Comma-separated list of optional fields to include |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "get_goal_relationship"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "get_goal_relationship",
"params": {
"goal_relationship_gid": "<goal_relationship_gid>"
}
}
}
}Request
GET https://app.ferrule.io/api/v1/asana/goal_relationships/:goal_relationship_gid Authorization: Bearer <your-api-key> Content-Type: application/json
PUTupdate_goal_relationship/goal_relationships/:goal_relationship_gidUpdate a goal relationship.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| goal_relationship_gid | string | Yes | Goal relationship GID |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| opt_fields | string | No | Comma-separated list of optional fields to include |
Body Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| supporting_resource | object | No | |
| contribution_weight | number | No | |
| supported_goal | object | No |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "update_goal_relationship"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "update_goal_relationship",
"params": {
"goal_relationship_gid": "<goal_relationship_gid>"
}
}
}
}Request
PUT https://app.ferrule.io/api/v1/asana/goal_relationships/:goal_relationship_gid
Authorization: Bearer <your-api-key>
Content-Type: application/json
{
"supporting_resource": "<supporting_resource>",
"contribution_weight": 1,
"supported_goal": "<supported_goal>"
}GETlist_stories_for_goal/goals/:goal_gid/storiesGet stories (comments/activity) from a goal.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| goal_gid | string | Yes | Goal GID |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| limit | number | No | Results per page (1-100) |
| offset | string | No | Offset token for pagination |
| opt_fields | string | No | Comma-separated list of optional fields to include |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "list_stories_for_goal"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "list_stories_for_goal",
"params": {
"goal_gid": "<goal_gid>"
}
}
}
}Request
GET https://app.ferrule.io/api/v1/asana/goals/:goal_gid/stories Authorization: Bearer <your-api-key> Content-Type: application/json
Response
[
{
"items": []
}
]POSTcreate_story_for_goal/goals/:goal_gid/storiesCreate a story (comment) on a goal. For html_text, wrap plain text in <body> tags only — Asana rejects standard HTML tags like <p>, <ul>, <li>.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| goal_gid | string | Yes | Goal GID |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| opt_fields | string | No | Comma-separated list of optional fields to include |
Body Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| text | string | No | |
| html_text | string | No | |
| is_pinned | boolean | No | |
| sticker_name | object | No |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "create_story_for_goal"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "create_story_for_goal",
"params": {
"goal_gid": "<goal_gid>"
}
}
}
}Request
POST https://app.ferrule.io/api/v1/asana/goals/:goal_gid/stories
Authorization: Bearer <your-api-key>
Content-Type: application/json
{
"text": "<text>",
"html_text": "<html_text>",
"is_pinned": "<is_pinned>",
"sticker_name": "<sticker_name>"
}POSTcreate_tag/tagsCreate a new tag.
Request
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| opt_fields | string | No | Comma-separated list of optional fields to include |
Body Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| name | string | No | |
| color | object | No | |
| notes | string | No | |
| followers | array | No | |
| workspace | string | No |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "create_tag"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "create_tag",
"params": {}
}
}
}Request
POST https://app.ferrule.io/api/v1/asana/tags
Authorization: Bearer <your-api-key>
Content-Type: application/json
{
"name": "<name>",
"color": "<color>",
"notes": "<notes>",
"followers": "<followers>",
"workspace": "<workspace>"
}GETget_tag/tags/:tag_gidGet a tag by its GID.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| tag_gid | string | Yes | Tag GID |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| opt_fields | string | No | Comma-separated list of optional fields to include |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "get_tag"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "get_tag",
"params": {
"tag_gid": "<tag_gid>"
}
}
}
}Request
GET https://app.ferrule.io/api/v1/asana/tags/:tag_gid Authorization: Bearer <your-api-key> Content-Type: application/json
PUTupdate_tag/tags/:tag_gidUpdate a tag.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| tag_gid | string | Yes | Tag GID |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| opt_fields | string | No | Comma-separated list of optional fields to include |
Body Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| name | string | No | |
| color | object | No | |
| notes | string | No |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "update_tag"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "update_tag",
"params": {
"tag_gid": "<tag_gid>"
}
}
}
}Request
PUT https://app.ferrule.io/api/v1/asana/tags/:tag_gid
Authorization: Bearer <your-api-key>
Content-Type: application/json
{
"name": "<name>",
"color": "<color>",
"notes": "<notes>"
}DELETEdelete_tag/tags/:tag_gidDelete a tag.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| tag_gid | string | Yes | Tag GID |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "delete_tag"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "delete_tag",
"params": {
"tag_gid": "<tag_gid>"
}
}
}
}Request
DELETE https://app.ferrule.io/api/v1/asana/tags/:tag_gid Authorization: Bearer <your-api-key> Content-Type: application/json
GETlist_tasks_for_tag/tags/:tag_gid/tasksGet tasks tagged with a specific tag.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| tag_gid | string | Yes | Tag GID |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| limit | number | No | Results per page (1-100) |
| offset | string | No | Offset token for pagination |
| opt_fields | string | No | Comma-separated list of optional fields to include |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "list_tasks_for_tag"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "list_tasks_for_tag",
"params": {
"tag_gid": "<tag_gid>"
}
}
}
}Request
GET https://app.ferrule.io/api/v1/asana/tags/:tag_gid/tasks Authorization: Bearer <your-api-key> Content-Type: application/json
Response
[
{
"items": []
}
]POSTcreate_custom_field/custom_fieldsCreate a custom field.
Request
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| opt_fields | string | No | Comma-separated list of optional fields to include |
Body Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| name | string | No | |
| enum_options | array | No | |
| id_prefix | object | No | |
| input_restrictions | array | No | |
| is_formula_field | boolean | No | |
| date_value | object | No | |
| enum_value | object | No | |
| multi_enum_values | array | No | |
| number_value | object | No | |
| text_value | object | No | |
| description | string | No | |
| enum_options | array | No | |
| precision | number | No | |
| format | object | No | |
| currency_code | object | No | |
| custom_label | object | No | |
| custom_label_position | object | No | |
| has_notifications_enabled | boolean | No | |
| workspace | string | No | |
| owned_by_app | boolean | No | |
| people_value | array | No | |
| reference_value | array | No | |
| resource_subtype | object | No |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "create_custom_field"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "create_custom_field",
"params": {}
}
}
}Request
POST https://app.ferrule.io/api/v1/asana/custom_fields
Authorization: Bearer <your-api-key>
Content-Type: application/json
{
"name": "<name>",
"enum_options": "<enum_options>",
"id_prefix": "<id_prefix>",
"input_restrictions": "<input_restrictions>",
"is_formula_field": "<is_formula_field>"
}GETget_custom_field/custom_fields/:custom_field_gidGet a custom field by its GID.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| custom_field_gid | string | Yes | Custom field GID |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| opt_fields | string | No | Comma-separated list of optional fields to include |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "get_custom_field"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "get_custom_field",
"params": {
"custom_field_gid": "<custom_field_gid>"
}
}
}
}Request
GET https://app.ferrule.io/api/v1/asana/custom_fields/:custom_field_gid Authorization: Bearer <your-api-key> Content-Type: application/json
PUTupdate_custom_field/custom_fields/:custom_field_gidUpdate a custom field.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| custom_field_gid | string | Yes | Custom field GID |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| opt_fields | string | No | Comma-separated list of optional fields to include |
Body Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| name | string | No | |
| enum_options | array | No | |
| id_prefix | object | No | |
| input_restrictions | array | No | |
| is_formula_field | boolean | No | |
| date_value | object | No | |
| enum_value | object | No | |
| multi_enum_values | array | No | |
| number_value | object | No | |
| text_value | object | No | |
| description | string | No | |
| enum_options | array | No | |
| precision | number | No | |
| format | object | No | |
| currency_code | object | No | |
| custom_label | object | No | |
| custom_label_position | object | No | |
| has_notifications_enabled | boolean | No | |
| workspace | string | No | |
| owned_by_app | boolean | No | |
| people_value | array | No | |
| reference_value | array | No |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "update_custom_field"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "update_custom_field",
"params": {
"custom_field_gid": "<custom_field_gid>"
}
}
}
}Request
PUT https://app.ferrule.io/api/v1/asana/custom_fields/:custom_field_gid
Authorization: Bearer <your-api-key>
Content-Type: application/json
{
"name": "<name>",
"enum_options": "<enum_options>",
"id_prefix": "<id_prefix>",
"input_restrictions": "<input_restrictions>",
"is_formula_field": "<is_formula_field>"
}DELETEdelete_custom_field/custom_fields/:custom_field_gidDelete a custom field.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| custom_field_gid | string | Yes | Custom field GID |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "delete_custom_field"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "delete_custom_field",
"params": {
"custom_field_gid": "<custom_field_gid>"
}
}
}
}Request
DELETE https://app.ferrule.io/api/v1/asana/custom_fields/:custom_field_gid Authorization: Bearer <your-api-key> Content-Type: application/json
GETlist_custom_fields_for_workspace/workspaces/:workspace_gid/custom_fieldsGet custom fields in a workspace.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| workspace_gid | string | Yes | Workspace GID |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| limit | number | No | Results per page (1-100) |
| offset | string | No | Offset token for pagination |
| opt_fields | string | No | Comma-separated list of optional fields to include |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "list_custom_fields_for_workspace"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "list_custom_fields_for_workspace",
"params": {
"workspace_gid": "<workspace_gid>"
}
}
}
}Request
GET https://app.ferrule.io/api/v1/asana/workspaces/:workspace_gid/custom_fields Authorization: Bearer <your-api-key> Content-Type: application/json
Response
[
{
"items": []
}
]POSTcreate_enum_option/custom_fields/:custom_field_gid/enum_optionsCreate an enum option for a custom field.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| custom_field_gid | string | Yes | Custom field GID |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| opt_fields | string | No | Comma-separated list of optional fields to include |
Body Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| name | string | No | |
| enabled | boolean | No | |
| color | string | No | |
| insert_before | string | No | |
| insert_after | string | No |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "create_enum_option"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "create_enum_option",
"params": {
"custom_field_gid": "<custom_field_gid>"
}
}
}
}Request
POST https://app.ferrule.io/api/v1/asana/custom_fields/:custom_field_gid/enum_options
Authorization: Bearer <your-api-key>
Content-Type: application/json
{
"name": "<name>",
"enabled": "<enabled>",
"color": "<color>",
"insert_before": "<insert_before>",
"insert_after": "<insert_after>"
}POSTcreate_team/teamsCreate a new team.
Request
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| opt_fields | string | No | Comma-separated list of optional fields to include |
Body Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| name | string | No | |
| description | string | No | |
| html_description | string | No | |
| organization | string | No | |
| visibility | object | No | |
| edit_team_name_or_description_access_level | object | No | |
| edit_team_visibility_or_trash_team_access_level | object | No | |
| member_invite_management_access_level | object | No | |
| guest_invite_management_access_level | object | No | |
| join_request_management_access_level | object | No | |
| team_member_removal_access_level | object | No | |
| team_content_management_access_level | object | No | |
| endorsed | boolean | No |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "create_team"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "create_team",
"params": {}
}
}
}Request
POST https://app.ferrule.io/api/v1/asana/teams
Authorization: Bearer <your-api-key>
Content-Type: application/json
{
"name": "<name>",
"description": "<description>",
"html_description": "<html_description>",
"organization": "<organization>",
"visibility": "<visibility>"
}GETget_team/teams/:team_gidGet a team by its GID.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| team_gid | string | Yes | Team GID |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| opt_fields | string | No | Comma-separated list of optional fields to include |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "get_team"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "get_team",
"params": {
"team_gid": "<team_gid>"
}
}
}
}Request
GET https://app.ferrule.io/api/v1/asana/teams/:team_gid Authorization: Bearer <your-api-key> Content-Type: application/json
PUTupdate_team/teams/:team_gidUpdate a team.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| team_gid | string | Yes | Team GID |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| opt_fields | string | No | Comma-separated list of optional fields to include |
Body Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| name | string | No | |
| description | string | No | |
| html_description | string | No | |
| organization | string | No | |
| visibility | object | No | |
| edit_team_name_or_description_access_level | object | No | |
| edit_team_visibility_or_trash_team_access_level | object | No | |
| member_invite_management_access_level | object | No | |
| guest_invite_management_access_level | object | No | |
| join_request_management_access_level | object | No | |
| team_member_removal_access_level | object | No | |
| team_content_management_access_level | object | No | |
| endorsed | boolean | No |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "update_team"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "update_team",
"params": {
"team_gid": "<team_gid>"
}
}
}
}Request
PUT https://app.ferrule.io/api/v1/asana/teams/:team_gid
Authorization: Bearer <your-api-key>
Content-Type: application/json
{
"name": "<name>",
"description": "<description>",
"html_description": "<html_description>",
"organization": "<organization>",
"visibility": "<visibility>"
}POSTadd_user_to_team/teams/:team_gid/addUserAdd a user to a team.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| team_gid | string | Yes | Team GID |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| opt_fields | string | No | Comma-separated list of optional fields to include |
Body Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| user | string | No |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "add_user_to_team"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "add_user_to_team",
"params": {
"team_gid": "<team_gid>"
}
}
}
}Request
POST https://app.ferrule.io/api/v1/asana/teams/:team_gid/addUser
Authorization: Bearer <your-api-key>
Content-Type: application/json
{
"user": "<user>"
}Response
{
"gid": "...",
"resource_type": "...",
"user": {
"gid": "...",
"resource_type": "...",
"name": "..."
},
"team": {
"gid": "...",
"resource_type": "...",
"name": "..."
},
"is_guest": false,
"is_limited_access": false,
"is_admin": false
}POSTremove_user_from_team/teams/:team_gid/removeUserRemove a user from a team.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| team_gid | string | Yes | Team GID |
Body Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| user | string | No |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "remove_user_from_team"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "remove_user_from_team",
"params": {
"team_gid": "<team_gid>"
}
}
}
}Request
POST https://app.ferrule.io/api/v1/asana/teams/:team_gid/removeUser
Authorization: Bearer <your-api-key>
Content-Type: application/json
{
"user": "<user>"
}GETlist_users_for_team/teams/:team_gid/usersGet users in a team.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| team_gid | string | Yes | Team GID |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| limit | number | No | Results per page (1-100) |
| offset | string | No | Offset token for pagination |
| opt_fields | string | No | Comma-separated list of optional fields to include |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "list_users_for_team"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "list_users_for_team",
"params": {
"team_gid": "<team_gid>"
}
}
}
}Request
GET https://app.ferrule.io/api/v1/asana/teams/:team_gid/users Authorization: Bearer <your-api-key> Content-Type: application/json
Response
[
{
"items": []
}
]GETlist_teams_for_workspace/workspaces/:workspace_gid/teamsGet teams in a workspace or organization.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| workspace_gid | string | Yes | Workspace GID |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| limit | number | No | Results per page (1-100) |
| offset | string | No | Offset token for pagination |
| opt_fields | string | No | Comma-separated list of optional fields to include |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "list_teams_for_workspace"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "list_teams_for_workspace",
"params": {
"workspace_gid": "<workspace_gid>"
}
}
}
}Request
GET https://app.ferrule.io/api/v1/asana/workspaces/:workspace_gid/teams Authorization: Bearer <your-api-key> Content-Type: application/json
Response
[
{
"items": []
}
]GETlist_team_memberships/team_membershipsGet team memberships. Filter by team or user.
Request
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| limit | number | No | Results per page (1-100) |
| offset | string | No | Offset token for pagination |
| opt_fields | string | No | Comma-separated list of optional fields to include |
| team | string | No | Filter by team GID |
| user | string | No | Filter by user GID |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "list_team_memberships"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "list_team_memberships",
"params": {}
}
}
}Request
GET https://app.ferrule.io/api/v1/asana/team_memberships Authorization: Bearer <your-api-key> Content-Type: application/json
Response
[
{
"items": []
}
]GETget_team_membership/team_memberships/:team_membership_gidGet a team membership by its GID.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| team_membership_gid | string | Yes | Team membership GID |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| opt_fields | string | No | Comma-separated list of optional fields to include |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "get_team_membership"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "get_team_membership",
"params": {
"team_membership_gid": "<team_membership_gid>"
}
}
}
}Request
GET https://app.ferrule.io/api/v1/asana/team_memberships/:team_membership_gid Authorization: Bearer <your-api-key> Content-Type: application/json
Response
{
"gid": "...",
"resource_type": "...",
"user": {
"gid": "...",
"resource_type": "...",
"name": "..."
},
"team": {
"gid": "...",
"resource_type": "...",
"name": "..."
},
"is_guest": false,
"is_limited_access": false,
"is_admin": false
}GETlist_team_memberships_for_team/teams/:team_gid/team_membershipsGet memberships from a team.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| team_gid | string | Yes | Team GID |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| limit | number | No | Results per page (1-100) |
| offset | string | No | Offset token for pagination |
| opt_fields | string | No | Comma-separated list of optional fields to include |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "list_team_memberships_for_team"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "list_team_memberships_for_team",
"params": {
"team_gid": "<team_gid>"
}
}
}
}Request
GET https://app.ferrule.io/api/v1/asana/teams/:team_gid/team_memberships Authorization: Bearer <your-api-key> Content-Type: application/json
Response
[
{
"items": []
}
]GETlist_team_memberships_for_user/users/:user_gid/team_membershipsGet team memberships for a user.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| user_gid | string | Yes | User GID |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| limit | number | No | Results per page (1-100) |
| offset | string | No | Offset token for pagination |
| opt_fields | string | No | Comma-separated list of optional fields to include |
| workspace | string | No | Filter by workspace GID (required) |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "list_team_memberships_for_user"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "list_team_memberships_for_user",
"params": {
"user_gid": "<user_gid>"
}
}
}
}Request
GET https://app.ferrule.io/api/v1/asana/users/:user_gid/team_memberships Authorization: Bearer <your-api-key> Content-Type: application/json
Response
[
{
"items": []
}
]GETlist_users/usersGet multiple users. Filter by workspace.
Request
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| limit | number | No | Results per page (1-100) |
| offset | string | No | Offset token for pagination |
| opt_fields | string | No | Comma-separated list of optional fields to include |
| workspace | string | No | Filter by workspace GID |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "list_users"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "list_users",
"params": {}
}
}
}Request
GET https://app.ferrule.io/api/v1/asana/users Authorization: Bearer <your-api-key> Content-Type: application/json
Response
[
{
"items": []
}
]GETget_user/users/:user_gidGet a user by GID. Use 'me' as the user_gid to get the authenticated user.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| user_gid | string | Yes | User GID (or 'me' for authenticated user) |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| opt_fields | string | No | Comma-separated list of optional fields to include |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "get_user"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "get_user",
"params": {
"user_gid": "<user_gid>"
}
}
}
}Request
GET https://app.ferrule.io/api/v1/asana/users/:user_gid Authorization: Bearer <your-api-key> Content-Type: application/json
PUTupdate_user/users/:user_gidUpdate a user's photo.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| user_gid | string | Yes | User GID |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| opt_fields | string | No | Comma-separated list of optional fields to include |
Body Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| name | string | No | |
| custom_fields | object | No |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "update_user"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "update_user",
"params": {
"user_gid": "<user_gid>"
}
}
}
}Request
PUT https://app.ferrule.io/api/v1/asana/users/:user_gid
Authorization: Bearer <your-api-key>
Content-Type: application/json
{
"name": "<name>",
"custom_fields": "<custom_fields>"
}GETlist_user_favorites/users/:user_gid/favoritesGet a user's favorites.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| user_gid | string | Yes | User GID |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| limit | number | No | Results per page (1-100) |
| offset | string | No | Offset token for pagination |
| opt_fields | string | No | Comma-separated list of optional fields to include |
| resource_type | string | No | Filter by resource type (project, portfolio, tag, task, user, project_template) |
| workspace | string | No | Filter by workspace GID (required) |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "list_user_favorites"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "list_user_favorites",
"params": {
"user_gid": "<user_gid>"
}
}
}
}Request
GET https://app.ferrule.io/api/v1/asana/users/:user_gid/favorites Authorization: Bearer <your-api-key> Content-Type: application/json
Response
[
{
"items": []
}
]GETlist_teams_for_user/users/:user_gid/teamsGet teams for a user.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| user_gid | string | Yes | User GID |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| limit | number | No | Results per page (1-100) |
| offset | string | No | Offset token for pagination |
| opt_fields | string | No | Comma-separated list of optional fields to include |
| organization | string | No | Organization GID (required) |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "list_teams_for_user"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "list_teams_for_user",
"params": {
"user_gid": "<user_gid>"
}
}
}
}Request
GET https://app.ferrule.io/api/v1/asana/users/:user_gid/teams Authorization: Bearer <your-api-key> Content-Type: application/json
Response
[
{
"items": []
}
]GETget_user_task_list/users/:user_gid/user_task_listGet a user's task list (My Tasks).
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| user_gid | string | Yes | User GID |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| opt_fields | string | No | Comma-separated list of optional fields to include |
| workspace | string | No | Workspace GID (required) |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "get_user_task_list"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "get_user_task_list",
"params": {
"user_gid": "<user_gid>"
}
}
}
}Request
GET https://app.ferrule.io/api/v1/asana/users/:user_gid/user_task_list Authorization: Bearer <your-api-key> Content-Type: application/json
Response
{
"gid": "...",
"resource_type": "...",
"name": "...",
"owner": {
"gid": "...",
"resource_type": "...",
"name": "..."
},
"workspace": {
"gid": "...",
"resource_type": "...",
"name": "..."
}
}GETlist_users_for_workspace/workspaces/:workspace_gid/usersGet users in a workspace or organization.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| workspace_gid | string | Yes | Workspace GID |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| limit | number | No | Results per page (1-100) |
| offset | string | No | Offset token for pagination |
| opt_fields | string | No | Comma-separated list of optional fields to include |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "list_users_for_workspace"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "list_users_for_workspace",
"params": {
"workspace_gid": "<workspace_gid>"
}
}
}
}Request
GET https://app.ferrule.io/api/v1/asana/workspaces/:workspace_gid/users Authorization: Bearer <your-api-key> Content-Type: application/json
Response
[
{
"items": []
}
]GETget_user_task_list_by_id/user_task_lists/:user_task_list_gidGet a user task list by its GID.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| user_task_list_gid | string | Yes | User task list GID |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| opt_fields | string | No | Comma-separated list of optional fields to include |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "get_user_task_list_by_id"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "get_user_task_list_by_id",
"params": {
"user_task_list_gid": "<user_task_list_gid>"
}
}
}
}Request
GET https://app.ferrule.io/api/v1/asana/user_task_lists/:user_task_list_gid Authorization: Bearer <your-api-key> Content-Type: application/json
Response
{
"gid": "...",
"resource_type": "...",
"name": "...",
"owner": {
"gid": "...",
"resource_type": "...",
"name": "..."
},
"workspace": {
"gid": "...",
"resource_type": "...",
"name": "..."
}
}GETlist_tasks_for_user_task_list/user_task_lists/:user_task_list_gid/tasksGet tasks from a user task list.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| user_task_list_gid | string | Yes | User task list GID |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| limit | number | No | Results per page (1-100) |
| offset | string | No | Offset token for pagination |
| opt_fields | string | No | Comma-separated list of optional fields to include |
| completed_since | string | No | Only return tasks incomplete or completed since this time (ISO 8601) |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "list_tasks_for_user_task_list"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "list_tasks_for_user_task_list",
"params": {
"user_task_list_gid": "<user_task_list_gid>"
}
}
}
}Request
GET https://app.ferrule.io/api/v1/asana/user_task_lists/:user_task_list_gid/tasks Authorization: Bearer <your-api-key> Content-Type: application/json
Response
[
{
"items": []
}
]GETlist_workspaces/workspacesGet all workspaces visible to the authenticated user.
Request
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| limit | number | No | Results per page (1-100) |
| offset | string | No | Offset token for pagination |
| opt_fields | string | No | Comma-separated list of optional fields to include |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "list_workspaces"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "list_workspaces",
"params": {}
}
}
}Request
GET https://app.ferrule.io/api/v1/asana/workspaces Authorization: Bearer <your-api-key> Content-Type: application/json
Response
[
{
"items": []
}
]GETget_workspace/workspaces/:workspace_gidGet a workspace by its GID.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| workspace_gid | string | Yes | Workspace GID |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| opt_fields | string | No | Comma-separated list of optional fields to include |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "get_workspace"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "get_workspace",
"params": {
"workspace_gid": "<workspace_gid>"
}
}
}
}Request
GET https://app.ferrule.io/api/v1/asana/workspaces/:workspace_gid Authorization: Bearer <your-api-key> Content-Type: application/json
PUTupdate_workspace/workspaces/:workspace_gidUpdate a workspace.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| workspace_gid | string | Yes | Workspace GID |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| opt_fields | string | No | Comma-separated list of optional fields to include |
Body Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| name | string | No |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "update_workspace"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "update_workspace",
"params": {
"workspace_gid": "<workspace_gid>"
}
}
}
}Request
PUT https://app.ferrule.io/api/v1/asana/workspaces/:workspace_gid
Authorization: Bearer <your-api-key>
Content-Type: application/json
{
"name": "<name>"
}POSTadd_user_to_workspace/workspaces/:workspace_gid/addUserAdd a user to a workspace or organization.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| workspace_gid | string | Yes | Workspace GID |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| opt_fields | string | No | Comma-separated list of optional fields to include |
Body Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| user | string | No |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "add_user_to_workspace"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "add_user_to_workspace",
"params": {
"workspace_gid": "<workspace_gid>"
}
}
}
}Request
POST https://app.ferrule.io/api/v1/asana/workspaces/:workspace_gid/addUser
Authorization: Bearer <your-api-key>
Content-Type: application/json
{
"user": "<user>"
}POSTremove_user_from_workspace/workspaces/:workspace_gid/removeUserRemove a user from a workspace or organization.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| workspace_gid | string | Yes | Workspace GID |
Body Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| user | string | No |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "remove_user_from_workspace"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "remove_user_from_workspace",
"params": {
"workspace_gid": "<workspace_gid>"
}
}
}
}Request
POST https://app.ferrule.io/api/v1/asana/workspaces/:workspace_gid/removeUser
Authorization: Bearer <your-api-key>
Content-Type: application/json
{
"user": "<user>"
}GETget_workspace_membership/workspace_memberships/:workspace_membership_gidGet a workspace membership by its GID.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| workspace_membership_gid | string | Yes | Workspace membership GID |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| opt_fields | string | No | Comma-separated list of optional fields to include |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "get_workspace_membership"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "get_workspace_membership",
"params": {
"workspace_membership_gid": "<workspace_membership_gid>"
}
}
}
}Request
GET https://app.ferrule.io/api/v1/asana/workspace_memberships/:workspace_membership_gid Authorization: Bearer <your-api-key> Content-Type: application/json
GETlist_workspace_memberships_for_user/users/:user_gid/workspace_membershipsGet workspace memberships for a user.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| user_gid | string | Yes | User GID |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| limit | number | No | Results per page (1-100) |
| offset | string | No | Offset token for pagination |
| opt_fields | string | No | Comma-separated list of optional fields to include |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "list_workspace_memberships_for_user"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "list_workspace_memberships_for_user",
"params": {
"user_gid": "<user_gid>"
}
}
}
}Request
GET https://app.ferrule.io/api/v1/asana/users/:user_gid/workspace_memberships Authorization: Bearer <your-api-key> Content-Type: application/json
Response
[
{
"items": []
}
]GETlist_workspace_memberships_for_workspace/workspaces/:workspace_gid/workspace_membershipsGet workspace memberships for a workspace.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| workspace_gid | string | Yes | Workspace GID |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| limit | number | No | Results per page (1-100) |
| offset | string | No | Offset token for pagination |
| opt_fields | string | No | Comma-separated list of optional fields to include |
| user | string | No | Filter by user GID |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "list_workspace_memberships_for_workspace"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "list_workspace_memberships_for_workspace",
"params": {
"workspace_gid": "<workspace_gid>"
}
}
}
}Request
GET https://app.ferrule.io/api/v1/asana/workspaces/:workspace_gid/workspace_memberships Authorization: Bearer <your-api-key> Content-Type: application/json
Response
[
{
"items": []
}
]GETlist_memberships/membershipsGet multiple memberships. Filter by parent, member, or resource_subtype.
Request
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| limit | number | No | Results per page (1-100) |
| offset | string | No | Offset token for pagination |
| opt_fields | string | No | Comma-separated list of optional fields to include |
| parent | string | No | Filter by parent GID (project, portfolio, goal, etc.) |
| member | string | No | Filter by member GID |
| resource_subtype | string | No | Filter by membership type |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "list_memberships"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "list_memberships",
"params": {}
}
}
}Request
GET https://app.ferrule.io/api/v1/asana/memberships Authorization: Bearer <your-api-key> Content-Type: application/json
Response
[
{
"items": []
}
]POSTcreate_membership/membershipsCreate a membership.
Request
Body Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| access_level | string | No | |
| member | string | No | |
| parent | string | No | |
| role | string | No |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "create_membership"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "create_membership",
"params": {}
}
}
}Request
POST https://app.ferrule.io/api/v1/asana/memberships
Authorization: Bearer <your-api-key>
Content-Type: application/json
{
"access_level": "<access_level>",
"member": "<member>",
"parent": "<parent>",
"role": "<role>"
}GETget_membership/memberships/:membership_gidGet a membership by its GID.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| membership_gid | string | Yes | Membership GID |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| opt_fields | string | No | Comma-separated list of optional fields to include |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "get_membership"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "get_membership",
"params": {
"membership_gid": "<membership_gid>"
}
}
}
}Request
GET https://app.ferrule.io/api/v1/asana/memberships/:membership_gid Authorization: Bearer <your-api-key> Content-Type: application/json
DELETEdelete_membership/memberships/:membership_gidDelete a membership.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| membership_gid | string | Yes | Membership GID |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "delete_membership"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "delete_membership",
"params": {
"membership_gid": "<membership_gid>"
}
}
}
}Request
DELETE https://app.ferrule.io/api/v1/asana/memberships/:membership_gid Authorization: Bearer <your-api-key> Content-Type: application/json
GETlist_attachments/attachmentsGet attachments on an object (task, project, etc.).
Request
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| limit | number | No | Results per page (1-100) |
| offset | string | No | Offset token for pagination |
| opt_fields | string | No | Comma-separated list of optional fields to include |
| parent | string | No | GID of the parent object (required) |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "list_attachments"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "list_attachments",
"params": {}
}
}
}Request
GET https://app.ferrule.io/api/v1/asana/attachments Authorization: Bearer <your-api-key> Content-Type: application/json
Response
[
{
"items": []
}
]GETget_attachment/attachments/:attachment_gidGet an attachment by its GID.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| attachment_gid | string | Yes | Attachment GID |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| opt_fields | string | No | Comma-separated list of optional fields to include |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "get_attachment"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "get_attachment",
"params": {
"attachment_gid": "<attachment_gid>"
}
}
}
}Request
GET https://app.ferrule.io/api/v1/asana/attachments/:attachment_gid Authorization: Bearer <your-api-key> Content-Type: application/json
DELETEdelete_attachment/attachments/:attachment_gidDelete an attachment.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| attachment_gid | string | Yes | Attachment GID |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "delete_attachment"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "delete_attachment",
"params": {
"attachment_gid": "<attachment_gid>"
}
}
}
}Request
DELETE https://app.ferrule.io/api/v1/asana/attachments/:attachment_gid Authorization: Bearer <your-api-key> Content-Type: application/json
GETsearch_tasks/workspaces/:workspace_gid/tasks/searchSearch tasks in a workspace. Supports text search, assignee, project, tag, and date filters.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| workspace_gid | string | Yes | Workspace GID |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| opt_fields | string | No | Comma-separated list of optional fields to include |
| text | string | No | Full-text search on task name and description |
| resource_subtype | string | No | Filter by resource subtype (default_task, milestone, approval, custom) |
| assignee.any | string | No | Comma-separated user GIDs or 'me' |
| projects.any | string | No | Comma-separated project GIDs |
| sections.any | string | No | Comma-separated section GIDs |
| tags.any | string | No | Comma-separated tag GIDs |
| teams.any | string | No | Comma-separated team GIDs |
| completed | boolean | No | Filter by completion status |
| is_subtask | boolean | No | Filter by subtask status |
| sort_by | string | No | Sort field (due_date, created_at, completed_at, modified_at, likes) |
| sort_ascending | boolean | No | Sort ascending (default false) |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "search_tasks"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "search_tasks",
"params": {
"workspace_gid": "<workspace_gid>"
}
}
}
}Request
GET https://app.ferrule.io/api/v1/asana/workspaces/:workspace_gid/tasks/search Authorization: Bearer <your-api-key> Content-Type: application/json
Response
[
{
"items": []
}
]GETsearch_projects/workspaces/:workspace_gid/projects/searchSearch projects in a workspace.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| workspace_gid | string | Yes | Workspace GID |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| opt_fields | string | No | Comma-separated list of optional fields to include |
| name | string | No | Search by project name |
| archived | boolean | No | Filter by archived status |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "search_projects"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "search_projects",
"params": {
"workspace_gid": "<workspace_gid>"
}
}
}
}Request
GET https://app.ferrule.io/api/v1/asana/workspaces/:workspace_gid/projects/search Authorization: Bearer <your-api-key> Content-Type: application/json
Response
[
{
"items": []
}
]GETtypeahead/workspaces/:workspace_gid/typeaheadGet objects via typeahead search. Useful for finding resources by name fragment.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| workspace_gid | string | Yes | Workspace GID |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| opt_fields | string | No | Comma-separated list of optional fields to include |
| resource_type | string | No | Resource type to search (task, project, portfolio, tag, user, custom_field) |
| query | string | No | Search query string |
| count | number | No | Number of results to return (1-100, default 10) |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "typeahead"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "typeahead",
"params": {
"workspace_gid": "<workspace_gid>"
}
}
}
}Request
GET https://app.ferrule.io/api/v1/asana/workspaces/:workspace_gid/typeahead Authorization: Bearer <your-api-key> Content-Type: application/json
Response
[
{
"items": []
}
]GETlist_status_updates/status_updatesGet status updates from an object (project, portfolio, goal).
Request
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| limit | number | No | Results per page (1-100) |
| offset | string | No | Offset token for pagination |
| opt_fields | string | No | Comma-separated list of optional fields to include |
| parent | string | No | GID of the parent object (required) |
| created_since | string | No | Only return statuses created since this time (ISO 8601) |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "list_status_updates"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "list_status_updates",
"params": {}
}
}
}Request
GET https://app.ferrule.io/api/v1/asana/status_updates Authorization: Bearer <your-api-key> Content-Type: application/json
Response
[
{
"items": []
}
]POSTcreate_status_update/status_updatesCreate a status update on an object. For html_text, wrap plain text in <body> tags only — Asana rejects standard HTML tags like <p>, <ul>, <li>.
Request
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| opt_fields | string | No | Comma-separated list of optional fields to include |
Body Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| title | string | No | |
| text | string | No | |
| html_text | string | No | |
| status_type | object | No | |
| parent | string | No |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "create_status_update"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "create_status_update",
"params": {}
}
}
}Request
POST https://app.ferrule.io/api/v1/asana/status_updates
Authorization: Bearer <your-api-key>
Content-Type: application/json
{
"title": "<title>",
"text": "<text>",
"html_text": "<html_text>",
"status_type": "<status_type>",
"parent": "<parent>"
}GETget_status_update/status_updates/:status_update_gidGet a status update by its GID.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| status_update_gid | string | Yes | Status update GID |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| opt_fields | string | No | Comma-separated list of optional fields to include |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "get_status_update"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "get_status_update",
"params": {
"status_update_gid": "<status_update_gid>"
}
}
}
}Request
GET https://app.ferrule.io/api/v1/asana/status_updates/:status_update_gid Authorization: Bearer <your-api-key> Content-Type: application/json
GETlist_time_tracking_entries/time_tracking_entriesGet multiple time tracking entries.
Request
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| limit | number | No | Results per page (1-100) |
| offset | string | No | Offset token for pagination |
| opt_fields | string | No | Comma-separated list of optional fields to include |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "list_time_tracking_entries"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "list_time_tracking_entries",
"params": {}
}
}
}Request
GET https://app.ferrule.io/api/v1/asana/time_tracking_entries Authorization: Bearer <your-api-key> Content-Type: application/json
Response
[
{
"items": []
}
]GETget_time_tracking_entry/time_tracking_entries/:time_tracking_entry_gidGet a time tracking entry by its GID.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| time_tracking_entry_gid | string | Yes | Time tracking entry GID |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| opt_fields | string | No | Comma-separated list of optional fields to include |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "get_time_tracking_entry"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "get_time_tracking_entry",
"params": {
"time_tracking_entry_gid": "<time_tracking_entry_gid>"
}
}
}
}Request
GET https://app.ferrule.io/api/v1/asana/time_tracking_entries/:time_tracking_entry_gid Authorization: Bearer <your-api-key> Content-Type: application/json
Response
{
"gid": "...",
"resource_type": "...",
"duration_minutes": 0,
"entered_on": "...",
"attributable_to": {
"gid": "...",
"resource_type": "...",
"name": "..."
},
"created_by": {
"gid": "...",
"resource_type": "...",
"name": "..."
},
"categories": []
}PUTupdate_time_tracking_entry/time_tracking_entries/:time_tracking_entry_gidUpdate a time tracking entry.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| time_tracking_entry_gid | string | Yes | Time tracking entry GID |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| opt_fields | string | No | Comma-separated list of optional fields to include |
Body Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| duration_minutes | number | No | |
| entered_on | string | No | |
| attributable_to | string | No | |
| billable_status | object | No | |
| description | string | No | |
| categories | array | No |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "update_time_tracking_entry"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "update_time_tracking_entry",
"params": {
"time_tracking_entry_gid": "<time_tracking_entry_gid>"
}
}
}
}Request
PUT https://app.ferrule.io/api/v1/asana/time_tracking_entries/:time_tracking_entry_gid
Authorization: Bearer <your-api-key>
Content-Type: application/json
{
"duration_minutes": 1,
"entered_on": "<entered_on>",
"attributable_to": "<attributable_to>",
"billable_status": "<billable_status>",
"description": "<description>"
}Response
{
"gid": "...",
"resource_type": "...",
"duration_minutes": 0,
"entered_on": "...",
"attributable_to": {
"gid": "...",
"resource_type": "...",
"name": "..."
},
"created_by": {
"gid": "...",
"resource_type": "...",
"name": "..."
},
"categories": []
}DELETEdelete_time_tracking_entry/time_tracking_entries/:time_tracking_entry_gidDelete a time tracking entry.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| time_tracking_entry_gid | string | Yes | Time tracking entry GID |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "delete_time_tracking_entry"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "delete_time_tracking_entry",
"params": {
"time_tracking_entry_gid": "<time_tracking_entry_gid>"
}
}
}
}Request
DELETE https://app.ferrule.io/api/v1/asana/time_tracking_entries/:time_tracking_entry_gid Authorization: Bearer <your-api-key> Content-Type: application/json
GETlist_time_tracking_entries_for_task/tasks/:task_gid/time_tracking_entriesGet time tracking entries for a task.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| task_gid | string | Yes | Task GID |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| limit | number | No | Results per page (1-100) |
| offset | string | No | Offset token for pagination |
| opt_fields | string | No | Comma-separated list of optional fields to include |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "list_time_tracking_entries_for_task"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "list_time_tracking_entries_for_task",
"params": {
"task_gid": "<task_gid>"
}
}
}
}Request
GET https://app.ferrule.io/api/v1/asana/tasks/:task_gid/time_tracking_entries Authorization: Bearer <your-api-key> Content-Type: application/json
Response
[
{
"items": []
}
]GETlist_time_tracking_categories/time_tracking_categoriesGet time tracking categories.
Request
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| limit | number | No | Results per page (1-100) |
| offset | string | No | Offset token for pagination |
| opt_fields | string | No | Comma-separated list of optional fields to include |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "list_time_tracking_categories"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "list_time_tracking_categories",
"params": {}
}
}
}Request
GET https://app.ferrule.io/api/v1/asana/time_tracking_categories Authorization: Bearer <your-api-key> Content-Type: application/json
Response
[
{
"items": []
}
]GETget_time_tracking_category/time_tracking_categories/:time_tracking_category_gidGet a time tracking category by its GID.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| time_tracking_category_gid | string | Yes | Time tracking category GID |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| opt_fields | string | No | Comma-separated list of optional fields to include |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "get_time_tracking_category"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "get_time_tracking_category",
"params": {
"time_tracking_category_gid": "<time_tracking_category_gid>"
}
}
}
}Request
GET https://app.ferrule.io/api/v1/asana/time_tracking_categories/:time_tracking_category_gid Authorization: Bearer <your-api-key> Content-Type: application/json
PUTupdate_time_tracking_category/time_tracking_categories/:time_tracking_category_gidUpdate a time tracking category.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| time_tracking_category_gid | string | Yes | Time tracking category GID |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| opt_fields | string | No | Comma-separated list of optional fields to include |
Body Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| name | string | No | |
| color | object | No | |
| is_archived | boolean | No |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "update_time_tracking_category"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "update_time_tracking_category",
"params": {
"time_tracking_category_gid": "<time_tracking_category_gid>"
}
}
}
}Request
PUT https://app.ferrule.io/api/v1/asana/time_tracking_categories/:time_tracking_category_gid
Authorization: Bearer <your-api-key>
Content-Type: application/json
{
"name": "<name>",
"color": "<color>",
"is_archived": "<is_archived>"
}DELETEdelete_time_tracking_category/time_tracking_categories/:time_tracking_category_gidDelete a time tracking category.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| time_tracking_category_gid | string | Yes | Time tracking category GID |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "delete_time_tracking_category"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "delete_time_tracking_category",
"params": {
"time_tracking_category_gid": "<time_tracking_category_gid>"
}
}
}
}Request
DELETE https://app.ferrule.io/api/v1/asana/time_tracking_categories/:time_tracking_category_gid Authorization: Bearer <your-api-key> Content-Type: application/json
GETlist_reactions/reactionsGet reactions on a story or other object.
Request
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| limit | number | No | Results per page (1-100) |
| offset | string | No | Offset token for pagination |
| opt_fields | string | No | Comma-separated list of optional fields to include |
| parent | string | No | GID of the parent object (story GID, required) |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "list_reactions"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "list_reactions",
"params": {}
}
}
}Request
GET https://app.ferrule.io/api/v1/asana/reactions Authorization: Bearer <your-api-key> Content-Type: application/json
Response
[
{
"items": []
}
]GETget_events/eventsGet events on a resource (task, project, or goal). Polling-based change tracking. Returns a sync token for subsequent calls.
Request
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| resource | string | No | Resource GID to subscribe to (required) |
| sync | string | No | Sync token from the last request. Omit on first call. |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "get_events"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "get_events",
"params": {}
}
}
}Request
GET https://app.ferrule.io/api/v1/asana/events Authorization: Bearer <your-api-key> Content-Type: application/json
Response
{
"user": null,
"resource": null,
"type": "...",
"action": "...",
"parent": null,
"created_at": "...",
"change": {
"field": "...",
"action": "...",
"new_value": null,
"added_value": null,
"removed_value": null
}
}GETget_workspace_events/workspaces/:workspace_gid/eventsGet events for a workspace.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| workspace_gid | string | Yes | Workspace GID |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| sync | string | No | Sync token from the last request. Omit on first call. |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "get_workspace_events"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "get_workspace_events",
"params": {
"workspace_gid": "<workspace_gid>"
}
}
}
}Request
GET https://app.ferrule.io/api/v1/asana/workspaces/:workspace_gid/events Authorization: Bearer <your-api-key> Content-Type: application/json
Response
{
"user": null,
"resource": null,
"type": "...",
"action": "...",
"parent": null,
"created_at": "...",
"change": {
"field": "...",
"action": "...",
"new_value": null,
"added_value": null,
"removed_value": null
}
}GETget_job/jobs/:job_gidGet a job by its GID. Jobs represent async operations (e.g., duplicate project).
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| job_gid | string | Yes | Job GID |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| opt_fields | string | No | Comma-separated list of optional fields to include |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "get_job"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "get_job",
"params": {
"job_gid": "<job_gid>"
}
}
}
}Request
GET https://app.ferrule.io/api/v1/asana/jobs/:job_gid Authorization: Bearer <your-api-key> Content-Type: application/json
Response
{
"gid": "...",
"resource_type": "...",
"resource_subtype": "...",
"status": null,
"new_portfolio": {
"gid": "...",
"resource_type": "...",
"name": "..."
},
"new_project": {
"gid": "...",
"resource_type": "...",
"name": "..."
},
"new_task": {
"gid": "...",
"resource_type": "...",
"name": "...",
"resource_subtype": null,
"created_by": {
"gid": "...",
"resource_type": "..."
}
},
"new_project_template": {
"gid": "...",
"resource_type": "...",
"name": "..."
},
"new_graph_export": {
"gid": "...",
"resource_type": "...",
"created_at": "...",
"download_url": null,
"completed_at": "..."
},
"new_resource_export": {
"gid": "...",
"resource_type": "...",
"created_at": "...",
"download_url": null,
"completed_at": "..."
}
}GETlist_custom_types/custom_typesGet all custom types.
Request
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| limit | number | No | Results per page (1-100) |
| offset | string | No | Offset token for pagination |
| opt_fields | string | No | Comma-separated list of optional fields to include |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "list_custom_types"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "list_custom_types",
"params": {}
}
}
}Request
GET https://app.ferrule.io/api/v1/asana/custom_types Authorization: Bearer <your-api-key> Content-Type: application/json
Response
[
{
"items": []
}
]GETget_custom_type/custom_types/:custom_type_gidGet a custom type by its GID.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| custom_type_gid | string | Yes | Custom type GID |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| opt_fields | string | No | Comma-separated list of optional fields to include |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "get_custom_type"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "get_custom_type",
"params": {
"custom_type_gid": "<custom_type_gid>"
}
}
}
}Request
GET https://app.ferrule.io/api/v1/asana/custom_types/:custom_type_gid Authorization: Bearer <your-api-key> Content-Type: application/json
GETlist_task_templates/task_templatesGet multiple task templates.
Request
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| limit | number | No | Results per page (1-100) |
| offset | string | No | Offset token for pagination |
| opt_fields | string | No | Comma-separated list of optional fields to include |
| project | string | No | Filter by project GID |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "list_task_templates"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "list_task_templates",
"params": {}
}
}
}Request
GET https://app.ferrule.io/api/v1/asana/task_templates Authorization: Bearer <your-api-key> Content-Type: application/json
Response
[
{
"items": []
}
]GETget_task_template/task_templates/:task_template_gidGet a task template by its GID.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| task_template_gid | string | Yes | Task template GID |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| opt_fields | string | No | Comma-separated list of optional fields to include |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "get_task_template"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "get_task_template",
"params": {
"task_template_gid": "<task_template_gid>"
}
}
}
}Request
GET https://app.ferrule.io/api/v1/asana/task_templates/:task_template_gid Authorization: Bearer <your-api-key> Content-Type: application/json
POSTinstantiate_task_from_template/task_templates/:task_template_gid/instantiateTaskInstantiate a task from a task template.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| task_template_gid | string | Yes | Task template GID |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| opt_fields | string | No | Comma-separated list of optional fields to include |
Body Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| name | string | No |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "instantiate_task_from_template"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "instantiate_task_from_template",
"params": {
"task_template_gid": "<task_template_gid>"
}
}
}
}Request
POST https://app.ferrule.io/api/v1/asana/task_templates/:task_template_gid/instantiateTask
Authorization: Bearer <your-api-key>
Content-Type: application/json
{
"name": "<name>"
}Response
{
"gid": "...",
"resource_type": "...",
"resource_subtype": "...",
"status": null,
"new_portfolio": {
"gid": "...",
"resource_type": "...",
"name": "..."
},
"new_project": {
"gid": "...",
"resource_type": "...",
"name": "..."
},
"new_task": {
"gid": "...",
"resource_type": "...",
"name": "...",
"resource_subtype": null,
"created_by": {
"gid": "...",
"resource_type": "..."
}
},
"new_project_template": {
"gid": "...",
"resource_type": "...",
"name": "..."
},
"new_graph_export": {
"gid": "...",
"resource_type": "...",
"created_at": "...",
"download_url": null,
"completed_at": "..."
},
"new_resource_export": {
"gid": "...",
"resource_type": "...",
"created_at": "...",
"download_url": null,
"completed_at": "..."
}
}GETlist_time_periods/time_periodsGet time periods. Filter by workspace.
Request
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| limit | number | No | Results per page (1-100) |
| offset | string | No | Offset token for pagination |
| opt_fields | string | No | Comma-separated list of optional fields to include |
| workspace | string | No | Filter by workspace GID (required) |
| start_on | string | No | Filter by start date (ISO date) |
| end_on | string | No | Filter by end date (ISO date) |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "list_time_periods"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "list_time_periods",
"params": {}
}
}
}Request
GET https://app.ferrule.io/api/v1/asana/time_periods Authorization: Bearer <your-api-key> Content-Type: application/json
Response
[
{
"items": []
}
]GETget_time_period/time_periods/:time_period_gidGet a time period by its GID.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| time_period_gid | string | Yes | Time period GID |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| opt_fields | string | No | Comma-separated list of optional fields to include |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "get_time_period"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "get_time_period",
"params": {
"time_period_gid": "<time_period_gid>"
}
}
}
}Request
GET https://app.ferrule.io/api/v1/asana/time_periods/:time_period_gid Authorization: Bearer <your-api-key> Content-Type: application/json
GETget_project_membership/project_memberships/:project_membership_gidGet a project membership by its GID.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| project_membership_gid | string | Yes | Project membership GID |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| opt_fields | string | No | Comma-separated list of optional fields to include |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "get_project_membership"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "get_project_membership",
"params": {
"project_membership_gid": "<project_membership_gid>"
}
}
}
}Request
GET https://app.ferrule.io/api/v1/asana/project_memberships/:project_membership_gid Authorization: Bearer <your-api-key> Content-Type: application/json
GETlist_webhooks/webhooksGet multiple webhooks. Filter by workspace.
Request
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| limit | number | No | Results per page (1-100) |
| offset | string | No | Offset token for pagination |
| opt_fields | string | No | Comma-separated list of optional fields to include |
| workspace | string | No | Filter by workspace GID (required) |
| resource | string | No | Filter by resource GID |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "list_webhooks"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "list_webhooks",
"params": {}
}
}
}Request
GET https://app.ferrule.io/api/v1/asana/webhooks Authorization: Bearer <your-api-key> Content-Type: application/json
Response
[
{
"items": []
}
]POSTcreate_webhook/webhooksEstablish a new webhook subscription.
Request
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| opt_fields | string | No | Comma-separated list of optional fields to include |
Body Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| resource | string | Yes | |
| target | string | Yes | |
| filters | array | No |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "create_webhook"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "create_webhook",
"params": {}
}
}
}Request
POST https://app.ferrule.io/api/v1/asana/webhooks
Authorization: Bearer <your-api-key>
Content-Type: application/json
{
"resource": "<resource>",
"target": "<target>",
"filters": "<filters>"
}GETget_webhook/webhooks/:webhook_gidGet a webhook by its GID.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| webhook_gid | string | Yes | Webhook GID |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| opt_fields | string | No | Comma-separated list of optional fields to include |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "get_webhook"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "get_webhook",
"params": {
"webhook_gid": "<webhook_gid>"
}
}
}
}Request
GET https://app.ferrule.io/api/v1/asana/webhooks/:webhook_gid Authorization: Bearer <your-api-key> Content-Type: application/json
DELETEdelete_webhook/webhooks/:webhook_gidDelete a webhook.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| webhook_gid | string | Yes | Webhook GID |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "asana",
"method": "delete_webhook"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_asana",
"arguments": {
"method": "delete_webhook",
"params": {
"webhook_gid": "<webhook_gid>"
}
}
}
}Request
DELETE https://app.ferrule.io/api/v1/asana/webhooks/:webhook_gid Authorization: Bearer <your-api-key> Content-Type: application/json