List pending invitations
List the organization's pending member invitations, optionally filtered by role. Requires the caller's org:members:read permission on the organization. Returns a page ordered by a keyset cursor; pass the response's next/prev link, or the after/before value it carries, to page through the rest.
Authorization
oauth2 Create a client with POST /v1/oauth/clients, then exchange its credentials for an access token. AUTHORIZATION_CODE clients act on behalf of a signed-in user and always use PKCE; CLIENT_CREDENTIALS clients act as themselves. A client may only be granted scopes its creator already holds — read the grantable list from GET /v1/oauth/clients/scopes.
In: header
Path Parameters
Unique identifier (slug) of the organization.
Query Parameters
Maximum number of invitations to return. Defaults to 20. Capped at 100.
0 < valueOpaque cursor. Returns the page of invitations after this position.
Opaque cursor. Returns the page of invitations before this position.
Optional. Return invitations that grant at least one of these roles. Repeat the parameter for a logical OR.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
curl -X GET "https://example.com/v1/organizations/greenwheels/members/invitations?size=20&after=eyJpZCI6IjU1MGU4NDAwLWUyOWItNDFkNC1hNzE2LTQ0NjY1NTQ0MDAwNCJ9&before=eyJpZCI6IjU1MGU4NDAwLWUyOWItNDFkNC1hNzE2LTQ0NjY1NTQ0MDAwNCJ9"{ "data": [ { "id": "550e8400-e29b-41d4-a716-446655440004", "organization_id": "greenwheels", "email": "jane@example.com", "roles": [ "organization-financing-admin" ], "status": "PENDING", "created_at": "2026-03-15T10:00:00Z", "resource_id": "string" } ], "links": { "next": "/v1/payees?after=eyJpZCI6MX0", "prev": "/v1/payees?before=eyJpZCI6MX0" }}{ "code": "BAD_REQUEST", "description": "Bad Request"}{ "code": "UNAUTHORISED", "description": "Unauthorised"}{ "code": "FORBIDDEN", "description": "Forbidden"}{ "code": "RATE_LIMIT_EXCEEDED", "description": "Too Many Requests"}{ "code": "INTERNAL_ERROR", "description": "Internal Server Error"}Add an organization member POST
Attach an existing user to the organization as a member. Requires the caller's `org:members:write` permission on the organization. Optionally sets `organization_user_id`, the organization's own identifier for the user. Returns 409 when the user is already a member, and 404 when the user does not exist.
Invite a member POST
Invite an email to join the organization with roles. Requires the caller's `org:members:write` permission on the organization. Only a signed-in user can invite. An agent or a machine token gets 403. Each role must be an organization role that the organization can assign, or the request returns 400. The caller must hold every permission of each role, or the request returns 403. When a pending invitation for the email already exists, the request sets its roles to the requested roles, returns 200, and sends no email. Otherwise the request creates the invitation, returns 201, and sends the invitee an email built from `accept_url`. The invitee accepts or rejects it through the `Accept an invitation`/`Reject an invitation` operations.