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

# List team invitations

> Open invitations first, then newest, up to 200 rows. A team has at
most 20 open invitations, so every open invitation is always listed.
Older expired or closed rows past the cap are history only, since
inviting the same email again replaces an expired invitation.
Requires `users:read` or `users:write`. A pending invitation past its
expiry is reported as `expired` and sorts with the closed ones.




## OpenAPI

````yaml https://api.superserve.ai/openapi.yaml get /teams/{team_id}/invitations
openapi: 3.1.0
info:
  title: Superserve API
  version: 0.1.0
  description: >
    Superserve provides sandbox infrastructure to run AI agents in the cloud.
    Powered by Firecracker MicroVMs.


    ## Sandbox lifecycle


    ```

    active <--> paused --> deleted

    ```


    A sandbox is `active` when running and `paused` after being paused. Resuming

    a paused sandbox returns it to `active`. Deleting releases all resources.


    | Endpoint | What it does |

    |----------|-------------|

    | `POST /sandboxes` | Create a new sandbox (optionally `from_template`) |

    | `PATCH /sandboxes/:id` | Partially update a running sandbox (e.g. network
    rules) |

    | `POST /sandboxes/:id/pause` | Snapshot full state, suspend the VM |

    | `POST /sandboxes/:id/resume` | Restore from snapshot, continue where it
    left off |

    | `DELETE /sandboxes/:id` | Delete sandbox and all resources |


    ## Sandbox environment


    By default sandboxes boot from the curated `superserve/base` template
    (Ubuntu 24.04,

    1 vCPU, 1 GB RAM, 8 GB disk, with Python 3.12, Node.js 22, npm, git, curl,

    and build-essential pre-installed). Callers can override with any template

    name (e.g. `superserve/python-3.11`, `superserve/node-22`) or a team-owned
    template UUID

    via the `from_template` field on `POST /sandboxes`.


    ## Files and commands


    `/files`, `/exec`, and `/exec/stream` run against a single sandbox and use

    its `X-Access-Token` (returned by create, resume, and activate), not the

    team API key. Two host forms reach them:


    - `https://sandbox.superserve.ai/...` with `X-Superserve-Sandbox-Id:
    <sandbox_id>`.

    - `https://boxd-{sandbox_id}.sandbox.superserve.ai/...` — no routing header
    needed.
  contact:
    name: Superserve Team
  license:
    name: Proprietary
servers:
  - url: https://api.superserve.ai
    description: Production
security: []
paths:
  /teams/{team_id}/invitations:
    parameters:
      - name: team_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
    get:
      tags:
        - RBAC
      summary: List team invitations
      description: |
        Open invitations first, then newest, up to 200 rows. A team has at
        most 20 open invitations, so every open invitation is always listed.
        Older expired or closed rows past the cap are history only, since
        inviting the same email again replaces an expired invitation.
        Requires `users:read` or `users:write`. A pending invitation past its
        expiry is reported as `expired` and sorts with the closed ones.
      operationId: listTeamInvitations
      responses:
        '200':
          description: Team invitations
          content:
            application/json:
              schema:
                type: object
                required:
                  - invitations
                properties:
                  invitations:
                    type: array
                    items:
                      $ref: '#/components/schemas/TeamInvitation'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
      security:
        - apiKey: []
components:
  schemas:
    TeamInvitation:
      type: object
      required:
        - id
        - email
        - status
        - invited_by
        - created_at
        - expires_at
        - last_sent_at
        - delivery_status
      properties:
        id:
          type: string
          format: uuid
        email:
          type: string
          format: email
        status:
          type: string
          enum:
            - pending
            - accepted
            - revoked
            - expired
        invited_by:
          type: string
          format: uuid
        created_at:
          type: string
          format: date-time
        expires_at:
          type: string
          format: date-time
        last_sent_at:
          type: string
          format: date-time
        delivery_status:
          type: string
          enum:
            - pending
            - sent
            - failed
    Error:
      type: object
      description: >
        Error envelope. `error.code` is a stable, machine-readable identifier

        (e.g. `bad_request`, `not_found`, `conflict`, `sandbox_pausing`,

        `rate_limited`, `too_many_builds`, `too_many_templates`,
        `too_many_sandboxes`,

        `image_pull_failed`, `step_failed`, `snapshot_failed`,

        `start_cmd_failed`, `ready_cmd_failed`, `capacity_unavailable`,

        `build_timed_out`, `infrastructure_failed`, `build_failed`,

        `trial_exhausted`, `trial_unavailable`, `trial_check_unavailable`,

        `free_allowance_exhausted`, `sandbox_exceeds_plan_limits`,

        `billing_ineligible`).

        `error.message` is human-readable and may change between releases;

        clients should branch on `code`, not `message`.
      properties:
        error:
          type: object
          properties:
            code:
              type: string
            message:
              type: string
            action_url:
              type: string
              format: uri
              example: https://console.superserve.ai/plan-usage
              description: >
                Where to resolve the error, when there is a next step. Sent with
                `trial_exhausted`, `trial_unavailable` and
                `trial_check_unavailable`: the page where the team adds a card
                and chooses a plan.
  responses:
    Unauthorized:
      description: Missing or invalid API key
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Forbidden:
      description: Caller is authenticated but not allowed to perform the action
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: X-API-Key

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.