asana — quality + safety report

In the Skillier index (lap__asana-com-asana-com) · scanned 2026-06-03 · engine: builtin+triage

A
Quality
90/100
Safety

✓ Clean — no heuristic safety flags surfaced.

Heuristic flags from the builtin scanner, which is known to over-flag (it trips on legitimate env-reading integrations, security skills, and library .eval calls). This is NOT an authoritative malicious verdict — re-scan with SkillSpector for the authoritative result. Run the authoritative scan →

Skillproof quality grade A

📇 This skill is in the Skillier index (curated · deduped · quality-filtered). Install Skillier to route & load it into your AI client.

Quality notes

Skill is large (~6200 tokens)
medium · quality · body
→ Tighten to the essential procedure; move long reference material to linked files.
No example
low · quality · body
→ Add at least one worked example (input → expected action/output).

About this skill

Asana API skill. Use when working with Asana for attachments, workspaces, batch. Covers 167 endpoints.

📄 Read the SKILL.md
---
name: asana
description: "Asana API skill. Use when working with Asana for attachments, workspaces, batch. Covers 167 endpoints."
version: 1.0.0
generator: lapsh
---

# Asana
API version: 1.0

## Auth
Bearer bearer | OAuth2

## Base URL
https://app.asana.com/api/1.0

## Setup
1. Set Authorization header with your Bearer token
2. GET /attachments -- verify access
3. POST /attachments -- create first attachments

## Endpoints

167 endpoints across 29 groups. See references/api-spec.lap for full details.

### attachments
| Method | Path | Description |
|--------|------|-------------|
| GET | /attachments/{attachment_gid} | Get an attachment |
| DELETE | /attachments/{attachment_gid} | Delete an attachment |
| GET | /attachments | Get attachments from an object |
| POST | /attachments | Upload an attachment |

### workspaces
| Method | Path | Description |
|--------|------|-------------|
| GET | /workspaces/{workspace_gid}/audit_log_events | Get audit log events |
| GET | /workspaces/{workspace_gid}/custom_fields | Get a workspace's custom fields |
| GET | /workspaces/{workspace_gid}/projects | Get all projects in a workspace |
| POST | /workspaces/{workspace_gid}/projects | Create a project in a workspace |
| GET | /workspaces/{workspace_gid}/tags | Get tags in a workspace |
| POST | /workspaces/{workspace_gid}/tags | Create a tag in a workspace |
| GET | /workspaces/{workspace_gid}/tasks/search | Search tasks in a workspace |
| GET | /workspaces/{workspace_gid}/teams | Get teams in a workspace |
| GET | /workspaces/{workspace_gid}/typeahead | Get objects via typeahead |
| GET | /workspaces/{workspace_gid}/users | Get users in a workspace or organization |
| GET | /workspaces/{workspace_gid}/workspace_memberships | Get the workspace memberships for a workspace |
| GET | /workspaces | Get multiple workspaces |
| GET | /workspaces/{workspace_gid} | Get a workspace |
| PUT | /workspaces/{workspace_gid} | Update a workspace |
| POST | /workspaces/{workspace_gid}/addUser | Add a user to a workspace or organization |
| POST | /workspaces/{workspace_gid}/removeUser | Remove a user from a workspace or organization |

### batch
| Method | Path | Description |
|--------|------|-------------|
| POST | /batch | Submit parallel requests |

### projects
| Method | Path | Description |
|--------|------|-------------|
| GET | /projects/{project_gid}/custom_field_settings | Get a project's custom fields |
| POST | /projects/{project_gid}/project_briefs | Create a project brief |
| GET | /projects/{project_gid}/project_memberships | Get memberships from a project |
| GET | /projects/{project_gid}/project_statuses | Get statuses from a project |
| POST | /projects/{project_gid}/project_statuses | Create a project status |
| GET | /projects | Get multiple projects |
| POST | /projects | Create a project |
| GET | /projects/{project_gid} | Get a project |
| PUT | /projects/{project_gid} | Update a project |
| DELETE | /projects/{project_gid} | Delete a project |
| POST | /projects/{project_gid}/duplicate | Duplicate a project |
| POST | /projects/{project_gid}/addCustomFieldSetting | Add a custom field to a project |
| POST | /projects/{project_gid}/removeCustomFieldSetting | Remove a custom field from a project |
| GET | /projects/{project_gid}/task_counts | Get task count of a project |
| POST | /projects/{project_gid}/addMembers | Add users to a project |
| POST | /projects/{project_gid}/removeMembers | Remove users from a project |
| POST | /projects/{project_gid}/addFollowers | Add followers to a project |
| POST | /projects/{project_gid}/removeFollowers | Remove followers from a project |
| POST | /projects/{project_gid}/saveAsTemplate | Create a project template from a project |
| GET | /projects/{project_gid}/sections | Get sections in a project |
| POST | /projects/{project_gid}/sections | Create a section in a project |
| POST | /projects/{project_gid}/sections/insert | Move or Insert sections |
| GET | /projects/{project_gid}/tasks | Get tasks from a project |

### portfolios
| Method | Path | Description |
|--------|------|-------------|
| GET | /portfolios/{portfolio_gid}/custom_field_settings | Get a portfolio's custom fields |
| GET | /portfolios/{portfolio_gid}/portfolio_memberships | Get memberships from a portfolio |
| GET | /portfolios | Get multiple portfolios |
| POST | /portfolios | Create a portfolio |
| GET | /portfolios/{portfolio_gid} | Get a portfolio |
| PUT | /portfolios/{portfolio_gid} | Update a portfolio |
| DELETE | /portfolios/{portfolio_gid} | Delete a portfolio |
| GET | /portfolios/{portfolio_gid}/items | Get portfolio items |
| POST | /portfolios/{portfolio_gid}/addItem | Add a portfolio item |
| POST | /portfolios/{portfolio_gid}/removeItem | Remove a portfolio item |
| POST | /portfolios/{portfolio_gid}/addCustomFieldSetting | Add a custom field to a portfolio |
| POST | /portfolios/{portfolio_gid}/removeCustomFieldSetting | Remove a custom field from a portfolio |
| POST | /portfolios/{portfolio_gid}/addMembers | Add users to a portfolio |
| POST | /portfolios/{portfolio_gid}/removeMembers | Remove users from a portfolio |

### custom_fields
| Method | Path | Description |
|--------|------|-------------|
| POST | /custom_fields | Create a custom field |
| GET | /custom_fields/{custom_field_gid} | Get a custom field |
| PUT | /custom_fields/{custom_field_gid} | Update a custom field |
| DELETE | /custom_fields/{custom_field_gid} | Delete a custom field |
| POST | /custom_fields/{custom_field_gid}/enum_options | Create an enum option |
| POST | /custom_fields/{custom_field_gid}/enum_options/insert | Reorder a custom field's enum |

### enum_options
| Method | Path | Description |
|--------|------|-------------|
| PUT | /enum_options/{enum_option_gid} | Update an enum option |

### events
| Method | Path | Description |
|--------|------|-------------|
| GET | /events | Get events on a resource |

### goal_relationships
| Method | Path | Description |
|--------|------|-------------|
| GET | /goal_relationships/{goal_relationship_gid} | Get a goal relationship |
| PUT | /goal_relationships/{goal_relationship_gid} | Update a goal relationship |
| GET | /goal_relationships | Get goal relationships |

### goals
| Method | Path | Description |
|--------|------|-------------|
| POST | /goals/{goal_gid}/addSupportingRelationship | Add a supporting goal relationship |
| POST | /goals/{goal_gid}/removeSupportingRelationship | Removes a supporting goal relationship |
| GET | /goals/{goal_gid} | Get a goal |
| PUT | /goals/{goal_gid} | Update a goal |
| DELETE | /goals/{goal_gid} | Delete a goal |
| GET | /goals | Get goals |
| POST | /goals | Create a goal |
| POST | /goals/{goal_gid}/setMetric | Create a goal metric |
| POST | /goals/{goal_gid}/setMetricCurrentValue | Update a goal metric |
| POST | /goals/{goal_gid}/addFollowers | Add a collaborator to a goal |
| POST | /goals/{goal_gid}/removeFollowers | Remove a collaborator from a goal |
| GET | /goals/{goal_gid}/parentGoals | Get parent goals from a goal |

### jobs
| Method | Path | Description |
|--------|------|-------------|
| GET | /jobs/{job_gid} | Get a job by id |

### organization_exports
| Method | Path | Description |
|--------|------|-------------|
| POST | /organization_exports | Create an organization export request |
| GET | /organization_exports/{organization_export_gid} | Get details on an org export request |

### portfolio_memberships
| Method | Path | Description |
|--------|------|-------------|
| GET | /portfolio_memberships | Get multiple portfolio memberships |
| GET | /portfolio_memberships/{portfolio_membership_gid} | Get a portfolio membership |

### project_briefs
| Method | Path | Description |
|--------|------|-------------|
| GET | /project_briefs/{project_brief_gid} | Get a project brief |
| PUT | /project_briefs/{project_brief_gid} | Update a project brief |
| DELETE | /project_briefs/{project_brief_gid} | Delete a project brief |

### project_memberships
| Method | Path | Description |
|--------|------|-------------|
| GET | /project_memberships/{project_membership_gid} | Get a project membership |

### project_statuses
| Method | Path | Description |
|--------|------|-------------|
| GET | /project_statuses/{project_status_gid} | Get a project status |
| DELETE | /project_statuses/{project_status_gid} | Delete a project status |

### project_templates
| Method | Path | Description |
|--------|------|-------------|
| GET | /project_templates/{project_template_gid} | Get a project template |
| GET | /project_templates | Get multiple project templates |
| POST | /project_templates/{project_template_gid}/instantiateProject | Instantiate a project from a project template |

### teams
| Method | Path | Description |
|--------|------|-------------|
| GET | /teams/{team_gid}/project_templates | Get a team's project templates |
| GET | /teams/{team_gid}/projects | Get a team's projects |
| POST | /teams/{team_gid}/projects | Create a project in a team |
| GET | /teams/{team_gid}/team_memberships | Get memberships from a team |
| POST | /teams | Create a team |
| PUT | /teams | Update a team |
| GET | /teams/{team_gid} | Get a team |
| POST | /teams/{team_gid}/addUser | Add a user to a team |
| POST | /teams/{team_gid}/removeUser | Remove a user from a team |
| GET | /teams/{team_gid}/users | Get users in a team |

### tasks
| Method | Path | Description |
|--------|------|-------------|
| GET | /tasks/{task_gid}/projects | Get projects a task is in |
| GET | /tasks/{task_gid}/stories | Get stories from a task |
| POST | /tasks/{task_gid}/stories | Create a story on a task |
| GET | /tasks/{task_gid}/tags | Get a task's tags |
| GET | /tasks | Get multiple tasks |
| POST | /tasks | Create a task |
| GET | /tasks/{task_gid} | Get a task |
| PUT | /tasks/{task_gid} | Update a task |
| DELETE | /tasks/{task_gid} | Delete a task |
| POST | /tasks/{task_gid}/duplicate | Duplicate a task |
| GET | /tasks/{task_gid}/subtasks | Get subtasks from a task |
| POST | /tasks/{task_gid}/subtasks | Create a subtask |
| POST | /tasks/{task_gid}/setParent | Set the parent of a task |
| GET | /tasks/{task_gid}/dependencies | Get dependencies from a task |
| POST | /tasks/{task_gid}/addDependencies | Set dependencies for a task |
| POST | /tasks/{task_gid}/removeDependencies | Unlink dependencies from a task |
| GET | /tasks/{task_gid}/dependents | Get dependents from a task |
| POST | /tasks/{task_gid}/addDependents | Set dependents for a task |
| POST | /tasks/{task_gid}/removeDependents | Unlink dependents from a task |
| POST | /tasks/{task_gid}/addProject | Add a project to a task |
| POST | /tasks/{task_gid}/removeProject | Remove a project from a task |
| POST | /tasks/{task_gid}/addTag | Add a tag to a task |
| POST | /tasks/{task_gid}/removeTag | Remove a tag from a task |
| POST | /tasks/{task_gid}/addFollowers | Add followers to a task |
| POST | /tasks/{task_gid}/removeFollowers | Remove followers from a task |

### sections
| Method | Path | Description |
|--------|------|-------------|
| GET | /sections/{section_gid} | Get a section |
| PUT | /sections/{section_gid} | Update a section |
| DELETE | /sections/{section_gid} | Delete a section |
| POST | /sections/{section_gid}/addTask | Add task to section |
| GET | /sections/{section_gid}/tasks | Get tasks from a section |

### status_updates
| Method | Path | Description |
|--------|------|-------------|
| GET | /status_updates/{status_gid} | Get a status update |
| DELETE | /status_updates/{status_gid} | Delete a status update |
| GET | /status_updates | Get status updates from an object |
| POST | /status_updates | Create a status update |

### stories
| Method | Path | Description |
|--------|------|-------------|
| GET | /stories/{story_gid} | Get a story |
| PUT | /stories/{story_gid} | Update a story |
| DELETE | /stories/{story_gid} | Delete a story |

### tags
| Method | Path | Description |
|--------|------|-------------|
| GET |

… (truncated)
Scan or optimize your own skill →

Want a live grade + an embeddable README badge? Run your skill through the free scanner.

Graded independently by Skillproof — nothing to sell the author. Quality is mechanical + corpus-grounded; safety flags are heuristic (builtin+triage), not a malicious verdict.