1. Docs
  2. API Reference
REST · JSON · v1

Canopy Portal API

v1.0OpenAPI 3.0 All systems operational

The API behind Canopy's two signed-in applications. Authenticated with a user JWT and scoped to an Account and Application by path, it manages the same resources your team works with in the UI.

Base URLhttps://auth.canopy-io.com/portal/v1/accounts/{accountSlug}/applications/{appSlug}

Authentication

Bearer TokenRequired
Authorization: Bearer <token>

Used for user-delegated actions via OAuth 2.0 flows.

Your first request

Minimal working example: list identities in your account.

bash — your-terminal
curl -H "Authorization: Bearer $CANOPY_TOKEN" \
  https://auth.canopy-io.com/portal/v1/accounts/acme/applications/prod/environments/production/identities
200 OK application/json
{
  "items": [
    {
      "id": "8f14e45f-ceea-467a-9b36-2c0b6f1c3e21",
      "email": "alex@acme.com",
      "first_name": "Alex",
      "last_name": "Rivera",
      "is_active": true,
      "created_at": "2026-06-28T14:02:11Z"
    }
  ],
  "pagination": {
    "page": 1,
    "take": 20,
    "item_count": 1,
    "page_count": 1,
    "has_previous_page": false,
    "has_next_page": false
  }
}

Response envelope

Every response follows one of a small set of predictable shapes, keyed by the top-level field.

Returns one resource wrapped in data .
{
  "data": {
    "id": "2c6a9b1e-7f3d-4a58-8e21-5b9c0d4f6a13",
    "name": "Acme Realty",
    "created_at": "2026-04-04T01:23:45.678Z"
  }
}

Errors

Errors use standard HTTP status codes and a consistent envelope. Use the code field for programmatic handling and message as the English fallback for display.

{
  "error": {
    "statusCode": 404,
    "code": "hierarchy.node_not_found",
    "message": "Node not found",
    "timestamp": "2026-04-04T01:23:45.678Z",
    "path": "/api/v1/nodes/3f2a1b9c-7d4e-4c8a-b6f5-0e9d8c7b6a51",
    "method": "GET"
  }
}
Error code Message
400Validation failed: see details
401Missing or invalid credentials
403Authenticated, but lacks permission
404Resource does not exist
429Rate limit exceeded: see Retry-After header
500Unexpected server error

Conventions

Pagination
Page with page & take (max 100). List responses carry a pagination block.
Timestamps
All datetimes are ISO 8601 in UTC, e.g. 2026-06-28T14:02:11Z.
Idempotency
Creates that accept an Idempotency-Key say so on their reference page. Send one to retry without creating duplicates: a matching retry replays the response for 24 hours; the same key with a different request is refused with 422.
Environments
Credentials resolve to a single Environment. They never cross the prod / test line.

Browse endpoints

Endpoints are grouped by resource. Jump into any group to see request parameters, schemas, and live examples.

Auth29 endpoints

Register, sign in, and manage sessions for platform admins.

GETPOSTDEL
Auth MFA14 endpoints

Enroll and manage an administrator's own multi-factor authenticators.

GETPOSTDEL
Auth MFA Challenge7 endpoints

Satisfy an administrator's in-flight MFA challenge with a code, passkey, or recovery code.

POST
OAuth Clients11 endpoints

Register and manage the OAuth clients behind hosted sign-in.

GETPOSTPATCHDEL
Portal Account Applications2 endpoints

List and create the Applications under an Account.

GETPOST
Portal Account Identities15 endpoints

Manage identities across the whole Account, including bulk operations.

GETPOSTPATCHDEL
Portal Account Identity Invites5 endpoints

Invite identities at the Account tier and track their status.

GETPOSTDEL
Portal Account Identity MFA2 endpoints

Review and force-reset an identity's MFA enrollment as an admin.

GETPOST
Portal Account Members2 endpoints

List and remove the platform admins who can manage the Account.

GETDEL
Portal Account Webhooks9 endpoints

Subscribe to Account-level events and manage signed delivery.

GETPOSTPATCHDEL
Portal Accounts7 endpoints

Read, rename, and delete the Account that owns your Applications.

GETPATCHDEL
Portal Admin Assignments3 endpoints

Grant and revoke administrator roles across the Account.

GETPOSTDEL
Portal Admin Roles8 endpoints

Define what an administrator can be, and how far it reaches.

GETPOSTPUTPATCHDEL
Portal API Keys7 endpoints

Issue, scope, list, and revoke Application API keys.

GETPOSTPATCHDEL
Portal Applications6 endpoints

Read, rename, and delete an individual Application.

GETPUTPATCHDEL
Portal Audit Log Admin7 endpoints

Query, live-tail, and export the admin audit log.

GETPOSTDEL
Portal Audit Log Identities7 endpoints

Query, live-tail, and export the end-user identity audit log.

GETPOSTDEL
Portal Auth Domain4 endpoints

Serve hosted sign-in from your own subdomain, and verify its DNS.

GETPOSTDEL
Portal Environments18 endpoints

Create and configure the Environments within an Application.

GETPOSTPUTPATCHDEL
Portal Hierarchy11 endpoints

Build and reshape the organizational tree: create, move, and prune nodes.

GETPOSTPATCHDEL
Portal Identities12 endpoints

Create and manage identities and their role assignments in an Application.

GETPOSTPATCHDEL
Portal Identity Invites6 endpoints

Invite identities to an Application and manage pending invites.

GETPOSTDEL
Portal Me3 endpoints

What the signed-in user may do, and which products they open.

GET
Portal Me Audit Views3 endpoints

Save, update, and delete your personal audit-log views.

GETPOSTDEL
Portal Me Preferences2 endpoints

Read and update your Developer Console preferences.

GETPATCH
Portal Organizations38 endpoints

Create an Environment's organizations and manage their members, policy, SSO bindings, and the roles each one's directory may grant.

GETPOSTPUTPATCHDEL
Portal Publishable Keys4 endpoints

Create, rename, and revoke the web and native keys that front-end sign-in uses.

GETPOSTPATCHDEL
Portal RBAC Assignments8 endpoints

Assign roles to identities at any node, and review coverage.

GETPOSTPATCHDEL
Portal RBAC Permissions7 endpoints

Browse the permission catalog and explain authorization decisions.

GETPOSTPATCHDEL
Portal RBAC Roles7 endpoints

List built-in roles and define custom ones from the permission catalog.

GETPOSTPUTPATCHDEL
Portal SCIM Groups3 endpoints

Map IdP-pushed SCIM groups to roles at a node.

GETPUTDEL
Portal SCIM Tokens4 endpoints

Mint and manage the SCIM bearer tokens that drive directory sync.

GETPOSTDEL
Portal Setup2 endpoints

Bootstrap an Environment's permission catalog and starter roles.

POST
Portal Setup Summaries1 endpoint

Check setup status across every Environment in the Account.

GET
Portal Signing Keys2 endpoints

Read an Environment's token-signing keys and rotate them on demand.

GETPOST
Portal SSO Connections25 endpoints

Configure inbound SSO connections for end-user login.

GETPOSTPATCHDEL
Portal User Invites6 endpoints

Invite platform admins to the Account and track their status.

GETPOSTPATCHDEL
Portal Users6 endpoints

List and inspect the platform admins in the Account.

GETPOSTDEL
Portal Webhooks9 endpoints

Subscribe to Application events and manage signed delivery.

GETPOSTPATCHDEL
Portal Workspace16 endpoints

The operator surface, scoped to the caller’s own grants.

GETPOSTPATCHDEL
Portal Workspace Environments1 endpoint

The Environments the caller may operate in.

GET

Machine-readable API

Everything in this reference is generated from OpenAPI 3 documents you can fetch directly. Point a code generator, your own tooling, or an AI agent at the same source the docs are built from.

Ready to build?
Jump into any resource group above, or start with the most common first integration.
Browse endpoints
Environment
API version
v1.0
On this page Was this page helpful?

Tell us how we can improve this guide.