[New] Request access endpoints

Summary

We’re launching new API endpoints for Asana’s request access framework, allowing developers to programmatically manage access requests for private projects and portfolios. These endpoints enable users to request access to private work and allow admins to approve or reject those requests directly through the API.

Who benefits

This is a new feature that affects developers building integrations that:

  • Need to handle access to private projects or portfolios
  • Want to automate access request workflows
  • Require programmatic admin capabilities for managing team permissions

Existing API functionality remains unchanged - this is purely additive.

Timeline

Now available: The request access endpoints are live and ready for use.
Request Access API Reference

Usage

The request access framework introduces four new endpoints for managing access requests:

  • POST /access_requests - Create an access request for a private project or portfolio
  • GET /access_requests - Retrieve access requests with optional filtering by target and user
  • POST /access_requests/{access_request_gid}/approve - Approve a specific access request
  • POST /access_requests/{access_request_gid}/reject - Reject a specific access request

Key fields

Field Name Description
target The GID of the project or portfolio for which access is requested
message Optional message from the requester explaining why they need access
approval_status Current status of the request: pending, approved, or rejected
requester User object containing details about who made the request

Creating access requests

Request access to a private project or portfolio:

// POST /access_requests
{
  "data": {
    "target": "12345",
    "message": "I'm looking to request access to this project."
  }
}

Response (201):

{
  "data": {
    "gid": "12345",
    "resource_type": "access_request",
    "message": "I'm looking to request access to this project.",
    "approval_status": "pending",
    "requester": {
      "gid": "12345",
      "resource_type": "user",
      "name": "Greg Sanchez"
    },
    "target": {
      "gid": "12345",
      "resource_type": "project"
    }
  }
}

Retrieving access requests

Fetch pending access requests for a specific project or portfolio:

// GET /access_requests?target=123&user=456

Managing access requests

Approve or reject access requests using the request GID:

// POST /access_requests/{access_request_gid}/approve
// POST /access_requests/{access_request_gid}/reject

Both endpoints return an empty success response (201).

Resources

6 Likes