Asana Memberships API

The Asana Memberships API is a tool that allows developers to integrate Asana's membership features into their own applications. This API allows users to access and manage information related to team membership, such as adding and removing members from teams, assigning roles and permissions, and viewing membership details. With the Asana Memberships API, developers can create custom workflows and automations that streamline the process of managing team membership within the Asana platform.

Operations 5

GET /memberships Asana Get multiple memberships #
POST /memberships Asana Create a membership #
GET /memberships/{membership_gid} Asana Get a membership #
PUT /memberships/{membership_gid} Asana Update a membership #
DELETE /memberships/{membership_gid} Asana Delete a membership #

Work with this as data

Every API 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 apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • 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 API
curl "https://apis.io/api/v1/apis/asana-memberships-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

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.

OpenAPI Specification

asana-memberships-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Asana Allocations Memberships API
  description: The Asana Allocations API allows users to manage and allocate resources within their Asana project management system. An allocation object represents how much of a resource (e.g. person, team) is dedicated to a specific work object (e.g. project, portfolio) over a specific period of time. The effort value can be a percentage or number of hours.
  version: '1.0'
  termsOfService: https://asana.com/terms
  contact:
    name: Asana Support
    url: https://asana.com/support
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0
servers:
- url: https://app.asana.com/api/1.0
  description: Main endpoint.
security:
- personalAccessToken: []
- oauth2: []
tags:
- name: Memberships
  description: Manage memberships for goals, projects, and portfolios.
paths:
  /memberships:
    parameters:
    - $ref: '#/components/parameters/pretty'
    get:
      summary: Asana Get multiple memberships
      description: Returns compact membership records.
      operationId: getMemberships
      tags:
      - Memberships
      parameters:
      - name: parent
        in: query
        required: false
        schema:
          type: string
      - name: member
        in: query
        required: false
        schema:
          type: string
      - name: limit
        in: query
        schema:
          type: integer
          minimum: 1
          maximum: 100
      - name: offset
        in: query
        schema:
          type: string
      responses:
        '200':
          description: Successfully retrieved the requested memberships.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/MembershipCompact'
        '400':
          description: Bad request.
        '401':
          description: Unauthorized.
        '403':
          description: Forbidden.
        '500':
          description: Internal server error.
    post:
      summary: Asana Create a membership
      description: Creates a new membership.
      operationId: createMembership
      tags:
      - Memberships
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                data:
                  $ref: '#/components/schemas/CreateMembershipRequest'
      responses:
        '200':
          description: Successfully created the membership.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/MembershipResponse'
        '400':
          description: Bad request.
        '401':
          description: Unauthorized.
        '403':
          description: Forbidden.
        '500':
          description: Internal server error.
  /memberships/{membership_gid}:
    parameters:
    - $ref: '#/components/parameters/membership_path_gid'
    - $ref: '#/components/parameters/pretty'
    get:
      summary: Asana Get a membership
      description: Returns the complete record for a single membership.
      operationId: getMembership
      tags:
      - Memberships
      parameters:
      - name: membership_gid
        in: path
        required: true
        schema:
          type: string
        example: '12345'
      responses:
        '200':
          description: Successfully retrieved the record for a single membership.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/MembershipResponse'
        '400':
          description: Bad request.
        '401':
          description: Unauthorized.
        '403':
          description: Forbidden.
        '404':
          description: Not found.
        '500':
          description: Internal server error.
    put:
      summary: Asana Update a membership
      description: Updates a membership's properties.
      operationId: updateMembership
      tags:
      - Memberships
      parameters:
      - name: membership_gid
        in: path
        required: true
        schema:
          type: string
        example: '12345'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                data:
                  $ref: '#/components/schemas/MembershipUpdateRequest'
      responses:
        '200':
          description: Successfully updated the membership.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/MembershipResponse'
        '400':
          description: Bad request.
        '401':
          description: Unauthorized.
        '403':
          description: Forbidden.
        '404':
          description: Not found.
        '500':
          description: Internal server error.
    delete:
      summary: Asana Delete a membership
      description: Deletes a membership.
      operationId: deleteMembership
      tags:
      - Memberships
      parameters:
      - name: membership_gid
        in: path
        required: true
        schema:
          type: string
        example: '12345'
      responses:
        '200':
          description: Successfully deleted the membership.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
        '400':
          description: Bad request.
        '401':
          description: Unauthorized.
        '403':
          description: Forbidden.
        '404':
          description: Not found.
        '500':
          description: Internal server error.
components:
  parameters:
    pretty:
      name: opt_pretty
      in: query
      description: 'Provides “pretty” output.

        Provides the response in a “pretty” format. In the case of JSON this means doing proper line breaking and indentation to make it readable. This will take extra time and increase the response size so it is advisable only to use this during debugging.'
      required: false
      allowEmptyValue: true
      schema:
        type: boolean
      style: form
      example: true
    membership_path_gid:
      name: membership_gid
      in: path
      description: Globally unique identifier for the membership.
      required: true
      schema:
        type: string
      example: '12345'
      x-env-variable: membership
  schemas:
    MembershipResponse:
      type: object
      properties:
        gid:
          type: string
          readOnly: true
          example: '12345'
        resource_type:
          type: string
          readOnly: true
          example: membership
        member:
          type: object
          properties:
            gid:
              type: string
            resource_type:
              type: string
            name:
              type: string
        parent:
          type: object
          properties:
            gid:
              type: string
            resource_type:
              type: string
            name:
              type: string
        role:
          type: string
          enum:
          - editor
          - commenter
          - viewer
        is_active:
          type: boolean
        is_guest:
          type: boolean
          readOnly: true
        is_editable:
          type: boolean
          readOnly: true
        access_level:
          type: string
          readOnly: true
    MembershipCompact:
      type: object
      properties:
        gid:
          type: string
          readOnly: true
          example: '12345'
        resource_type:
          type: string
          readOnly: true
          example: membership
    MembershipUpdateRequest:
      type: object
      properties:
        role:
          type: string
          enum:
          - editor
          - commenter
          - viewer
        is_active:
          type: boolean
    CreateMembershipRequest:
      type: object
      properties:
        member:
          type: string
          example: '12345'
        parent:
          type: string
          example: '12345'
        role:
          type: string
          enum:
          - editor
          - commenter
          - viewer
        is_active:
          type: boolean
  securitySchemes:
    personalAccessToken:
      type: http
      description: A personal access token for the Asana API.
      scheme: bearer
    oauth2:
      type: oauth2
      description: OAuth 2.0 authorization code flow.
      flows:
        authorizationCode:
          authorizationUrl: https://app.asana.com/-/oauth_authorize
          tokenUrl: https://app.asana.com/-/oauth_token
          scopes:
            default: Provides access to all endpoints documented in the API reference.