Asana · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Asana Goals API

11 actions 11 updates phrasing extends openapi/asana-goals-api-openapi.yml
Generated by API Evangelist Written by API Evangelist tooling for Asana's API. It is a proposal applied on top of the contract, not a document Asana publishes.
View Overlay File View on GitHub Overlay Specification

What the actions change

x-apievangelist-phrasing

Targets 11

$.info
$.paths['/goals/{goal_gid}'].get
$.paths['/goals/{goal_gid}'].put
$.paths['/goals/{goal_gid}'].delete
$.paths['/goals'].get
$.paths['/goals'].post
$.paths['/goals/{goal_gid}/setMetric'].post
$.paths['/goals/{goal_gid}/setMetricCurrentValue'].post
$.paths['/goals/{goal_gid}/addFollowers'].post
$.paths['/goals/{goal_gid}/removeFollowers'].post
$.paths['/goals/{goal_gid}/parentGoals'].get

OpenAPI Overlay

Raw ↑
# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand.
overlay: 1.0.0
info:
  title: API Evangelist conversational phrasing for Asana Goals API
  version: 1.0.0
extends: openapi/asana-goals-api-openapi.yml
actions:
- target: $.info
  update:
    x-apievangelist-phrasing:
      method: generated
      generated: '2026-10-01'
      generator: build-phrasing.py
      label: Generated by API Evangelist
      operations: 10
- target: $.paths['/goals/{goal_gid}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a goal's details
      effect: read
      questions:
      - What does the full record of a goal show?
      - Can I look up a goal's owner, status and metric by ID?
      instructions:
      - text: Show the details of goal {goal}.
        slots:
          goal: path.goal_gid
      - text: Fetch goal {goal}.
        slots:
          goal: path.goal_gid
      method: generated
      generated: '2026-10-01'
- target: $.paths['/goals/{goal_gid}'].put
  update:
    x-apievangelist-phrasing:
      intent: Update a goal
      effect: write
      questions:
      - How do I change a goal's status, owner or due date?
      - Do fields I leave out of a goal update stay the same?
      instructions:
      - text: Set goal {goal}'s status to {status}.
        slots:
          goal: path.goal_gid
          status: requestBody.data
      - text: Update goal {goal} with {changes}.
        slots:
          goal: path.goal_gid
          changes: requestBody.data
      method: generated
      generated: '2026-10-01'
- target: $.paths['/goals/{goal_gid}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete a goal
      effect: destructive
      questions:
      - Can I delete a goal that's no longer relevant?
      - What does deleting a goal return?
      instructions:
      - text: Delete goal {goal}.
        slots:
          goal: path.goal_gid
      - text: Remove goal {goal} permanently.
        slots:
          goal: path.goal_gid
      method: generated
      generated: '2026-10-01'
- target: $.paths['/goals'].get
  update:
    x-apievangelist-phrasing:
      intent: List goals by team, project or time period
      effect: read
      questions:
      - Which goals does a team have this quarter?
      - Can I list only workspace-level goals?
      - How do I find the goals tied to a portfolio or project?
      instructions:
      - text: List goals for team {team} in time periods {periods}.
        slots:
          team: query.team
          periods: query.time_periods
      - text: Show workspace-level goals in workspace {workspace}.
        slots:
          workspace: query.workspace
      - text: List the goals linked to project {project}.
        slots:
          project: query.project
      method: generated
      generated: '2026-10-01'
- target: $.paths['/goals'].post
  update:
    x-apievangelist-phrasing:
      intent: Create a goal
      effect: write
      questions:
      - How do I create a new goal for my team?
      - Can a goal be created at the workspace level instead of under a team?
      instructions:
      - text: Create a goal named {goal} in my workspace.
        slots:
          goal: requestBody.data
      - text: Set a new team goal with {fields}.
        slots:
          fields: requestBody.data
      method: generated
      generated: '2026-10-01'
- target: $.paths['/goals/{goal_gid}/setMetric'].post
  update:
    x-apievangelist-phrasing:
      intent: Set the metric that tracks a goal
      effect: write
      questions:
      - How do I attach a numeric target to a goal?
      - Will setting a metric replace one the goal already has?
      instructions:
      - text: Set a metric on goal {goal} with target {metric}.
        slots:
          goal: path.goal_gid
          metric: requestBody.data
      - text: Replace goal {goal}'s metric with {metric}.
        slots:
          goal: path.goal_gid
          metric: requestBody.data
      method: generated
      generated: '2026-10-01'
- target: $.paths['/goals/{goal_gid}/setMetricCurrentValue'].post
  update:
    x-apievangelist-phrasing:
      intent: Record a goal metric's current value
      effect: write
      questions:
      - How do I report progress on a goal's metric?
      - What happens if I update the current value on a goal with no metric?
      instructions:
      - text: Set goal {goal}'s current metric value to {value}.
        slots:
          goal: path.goal_gid
          value: requestBody.data
      - text: Record progress of {value} on goal {goal}.
        slots:
          goal: path.goal_gid
          value: requestBody.data
      method: generated
      generated: '2026-10-01'
- target: $.paths['/goals/{goal_gid}/addFollowers'].post
  update:
    x-apievangelist-phrasing:
      intent: Add collaborators to a goal
      effect: write
      questions:
      - How do I add collaborators to a goal?
      - Can several people follow a goal?
      instructions:
      - text: Add collaborators {followers} to goal {goal}.
        slots:
          goal: path.goal_gid
          followers: requestBody.data
      - text: Have {followers} follow goal {goal}.
        slots:
          goal: path.goal_gid
          followers: requestBody.data
      method: generated
      generated: '2026-10-01'
- target: $.paths['/goals/{goal_gid}/removeFollowers'].post
  update:
    x-apievangelist-phrasing:
      intent: Remove collaborators from a goal
      effect: write
      questions:
      - Can I take a collaborator off a goal?
      - How do I stop people following a goal?
      instructions:
      - text: Remove collaborators {followers} from goal {goal}.
        slots:
          goal: path.goal_gid
          followers: requestBody.data
      - text: Stop {followers} following goal {goal}.
        slots:
          goal: path.goal_gid
          followers: requestBody.data
      method: generated
      generated: '2026-10-01'
- target: $.paths['/goals/{goal_gid}/parentGoals'].get
  update:
    x-apievangelist-phrasing:
      intent: List a goal's parent goals
      effect: read
      questions:
      - Which higher-level goals does this goal roll up to?
      - Can I see the parent goals of a goal?
      instructions:
      - text: List the parent goals of goal {goal}.
        slots:
          goal: path.goal_gid
      - text: Show what goal {goal} rolls up into.
        slots:
          goal: path.goal_gid
      method: generated
      generated: '2026-10-01'

Work with this as data

Every overlay here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for openapi overlays

4 MCP tools reach this
  • find_overlaysBrowse and filter every overlay in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This overlay
curl "https://apis.io/api/v1/overlays/asana-goals-api-phrasing-overlay"
All openapi overlays
curl "https://apis.io/api/v1/overlays?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.