---
title: "List the organization's pending (and other-state) WorkOS invitations."
method: GET
path: "/v1/orgs/{orgId}/invites"
tags: ["members"]
---

# List the organization's pending (and other-state) WorkOS invitations.

`GET /v1/orgs/{orgId}/invites`

## Request

- Base URL: `http://localhost:8080`
- URL: `http://localhost:8080/v1/orgs/{orgId}/invites`
- Auth: one of:
  - API key in cookie `dvt_session`
  - HTTP bearer

Read-through over WorkOS — dvt keeps no local invitation table, so this always
reflects WorkOS's current view. Admin or owner only.

Returns an empty list (not an error) when there is no hosted identity provider
configured (dev mode) or when the organization has no WorkOS backing yet (a
claimed trial org before its first invite, or a sandbox org, which never binds
one — DVT-914).

## Response `200`

The org's WorkOS invitations.

- object
  - `data` Invitation[], required
    - `id` string, required: The WorkOS invitation id.
    - `email` string, email, required
    - `state` 'pending' | 'accepted' | 'expired' | 'revoked', required
    - `createdAt` string, date-time, required
    - `expiresAt` string, date-time, required
    - `acceptInvitationUrl` string, uri: WorkOS's hosted accept link. Present ONLY for pending invitations, and only visible to an org admin/owner (this endpoint is already admin/owner-gated). Lets an admin copy the link and hand it to the invitee out-of-band (Slack/DM) when a corporate email gateway blocks or rewrites the invitation email. Absent for accepted/expired/revoked invitations.
  - `meta` Meta, required: Response metadata.
    - `requestId` string, required: Correlates with the X-Request-Id header.
    - `total` integer: Item count, present on collection responses.
    - `nextCursor` string, nullable: Opaque keyset-pagination cursor, present on paginated responses (e.g. GET /v1/dashboards) when more rows exist beyond this page. Pass it back as the `cursor` query param to fetch the next page; absent or null on the last page.
    - `roleResolveDegraded` boolean: Snowflake mode only (DVT-2260), on GET /v1/dashboards: present and true when the caller's live Snowflake role resolution failed or was unavailable — role-shared dashboards may be missing from this page. Omitted (not merely false) whenever resolution succeeded or the role-share arm does not apply (off snowflake mode, an org admin/owner, or off the ingress listener).

## Other responses

- `401`: Missing, invalid, or expired session.
- `403`: The caller's role does not permit this action.
- `404`: Resource does not exist.
- `502`: The identity provider could not be reached.

---

[API](https://skmtc.dev/dvt/apis/dvt-rest-api.md) · [All operations](https://skmtc.dev/dvt/apis/dvt-rest-api/llms.txt) · [OpenAPI document](https://skmtc.dev/dvt/apis/dvt-rest-api/revisions/00016f504165?raw)
