> ## Documentation Index
> Fetch the complete documentation index at: https://docs.nekt.com/llms.txt
> Use this file to discover all available pages before exploring further.

# List Invitations

> The invitations still waiting on a reply.

Returns the invitations that are still outstanding: not yet accepted, not revoked, and — for an expired one — still the most recent invitation sent to that address.

Once somebody accepts, they stop being an invitation and become a member, so they drop off this list. To see them after that, read the member list in the app under [Members](/workspace/members).

<Note>
  One row per address. Resending does not create a second invitation, so an address you have chased three times still appears once, with the latest `expires_at`.
</Note>

## Response

An array of [invitation objects](/platform-api/invitations/invitation). This endpoint is not paginated.

```json theme={null}
[
  {
    "id": "c1f0a9d4-5b62-4e18-9a73-2d8e4f6b0c51",
    "email": "analyst@example.com",
    "first_name": "",
    "last_name": "",
    "role": "member",
    "sent_at": "2026-09-24T10:14:02Z",
    "expires_at": "2026-10-01T10:14:02Z",
    "accepted_at": null,
    "revoked_at": null
  }
]
```

## Find what has gone stale

An expired invitation still holds every group and grant attached to it — the link stopped working, the access did not. Resending re-opens it without re-granting anything.

```python theme={null}
from datetime import datetime, timezone

import requests

API_KEY = "YOUR_API_KEY"
BASE_URL = "https://api.nekt.ai"

headers = {"x-api-key": API_KEY, "Content-Type": "application/json"}
now = datetime.now(timezone.utc)

invitations = requests.get(f"{BASE_URL}/api/v1/invitations/", headers=headers).json()

for invitation in invitations:
    expires_at = datetime.fromisoformat(invitation["expires_at"].replace("Z", "+00:00"))
    if expires_at < now:
        print(f"{invitation['email']} expired on {expires_at:%Y-%m-%d} — resending")
        requests.post(
            f"{BASE_URL}/api/v1/invitations/",
            headers=headers,
            json={"email": invitation["email"], "role": invitation["role"]},
        )
```

## Related

* [Invite User](/platform-api/invitations/invite) — inviting and resending.
* [Revoke an Invitation](/platform-api/invitations/revoke) — for the ones that are never coming.


## OpenAPI

````yaml GET /api/v1/invitations/
openapi: 3.0.3
info:
  title: Nekt API
  version: v1
  description: Nekt API Documentation
  contact:
    email: support@nekt.ai
servers:
  - url: https://api.nekt.ai
security: []
paths:
  /api/v1/invitations/:
    get:
      tags:
        - v1
      operationId: v1_invitations_list
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Invitation'
          description: ''
      security:
        - ApiKeyAuth: []
components:
  schemas:
    Invitation:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        first_name:
          type: string
          maxLength: 150
        last_name:
          type: string
          maxLength: 150
        email:
          type: string
          format: email
          title: Email address
          maxLength: 254
        role:
          allOf:
            - $ref: '#/components/schemas/RoleEnum'
          default: member
          description: >-
            Defaults to `member`. You cannot invite somebody to a role above
            your own, and on the Free plan only owners can be invited.


            * `owner` - Owner

            * `admin` - Admin

            * `member` - Member
        functional_area:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/FunctionalAreaEnum'
            - $ref: '#/components/schemas/BlankEnum'
            - $ref: '#/components/schemas/NullEnum'
        other_functional_area:
          type: string
          nullable: true
          maxLength: 128
        sent_at:
          type: string
          format: date-time
          readOnly: true
        expires_at:
          type: string
          format: date-time
          readOnly: true
        accepted_at:
          type: string
          format: date-time
          readOnly: true
          nullable: true
        revoked_at:
          type: string
          format: date-time
          readOnly: true
          nullable: true
        created_at:
          type: string
          format: date-time
          readOnly: true
        created_by:
          allOf:
            - $ref: '#/components/schemas/OrganizationUser'
          readOnly: true
      required:
        - accepted_at
        - created_at
        - created_by
        - email
        - expires_at
        - id
        - revoked_at
        - sent_at
    RoleEnum:
      enum:
        - owner
        - admin
        - member
      type: string
      description: |-
        * `owner` - Owner
        * `admin` - Admin
        * `member` - Member
    FunctionalAreaEnum:
      enum:
        - data_analytics
        - sales
        - customer_support
        - operations
        - marketing
        - finance
        - product_development
        - growth
        - executive_leadership
        - other
      type: string
      description: |-
        * `data_analytics` - Data & Analytics
        * `sales` - Sales
        * `customer_support` - Customer Support
        * `operations` - Operations
        * `marketing` - Marketing
        * `finance` - Finance
        * `product_development` - Product Development
        * `growth` - Growth
        * `executive_leadership` - Executive Leadership
        * `other` - Other
    BlankEnum:
      enum:
        - ''
    NullEnum:
      enum:
        - null
    OrganizationUser:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        first_name:
          type: string
          readOnly: true
        last_name:
          type: string
          readOnly: true
        email:
          type: string
          format: email
          readOnly: true
          title: Email address
        picture:
          type: string
          format: uri
          readOnly: true
          nullable: true
        role:
          type: string
          readOnly: true
        functional_area:
          readOnly: true
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/FunctionalAreaEnum'
            - $ref: '#/components/schemas/NullEnum'
        other_functional_area:
          type: string
          readOnly: true
          nullable: true
        date_joined:
          type: string
          format: date-time
          readOnly: true
        last_login:
          type: string
          format: date-time
          readOnly: true
          nullable: true
        is_active:
          type: boolean
          readOnly: true
          default: false
        is_pending:
          type: boolean
          readOnly: true
          default: false
      required:
        - date_joined
        - email
        - first_name
        - functional_area
        - id
        - is_active
        - is_pending
        - last_login
        - last_name
        - other_functional_area
        - picture
        - role
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: 'API Key authentication. Format: ''x-api-key: api_key'''

````