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

# Invite a person into your account

> Invites one email address into the caller's own account as a member. A member opens and steers every workspace in the account and cannot store secrets, connect integrations, or manage members. The invite expires after 7 days. `link` is the dashboard page the invitee opens to accept it. An address that already has a pending invite, or already belongs to the account, is refused with 409 `UZ-INV-003`. Its `current_state` is `invited` when a pending invite exists, and `member` when the address already belongs to the account. Retrying after an uncertain response is safe: the retry is refused with that 409, and the invite list shows the first one. 



## OpenAPI

````yaml https://raw.githubusercontent.com/agentsfleet/agentsfleet/main/public/openapi.json post /v1/tenants/me/invites
openapi: 3.1.0
info:
  title: agentsfleet Control Plane API
  description: API for managing workspaces, fleets, triggers, and runs.
  contact:
    name: agentsfleet
    url: https://agentsfleet.net
  license:
    name: MIT
    identifier: MIT
  version: 1.0.0
servers:
  - url: https://api.agentsfleet.net
    description: Production
security: []
paths:
  /v1/tenants/me/invites:
    post:
      tags:
        - Invites
      summary: Invite a person into your account
      description: >-
        Invites one email address into the caller's own account as a member. A
        member opens and steers every workspace in the account and cannot store
        secrets, connect integrations, or manage members. The invite expires
        after 7 days. `link` is the dashboard page the invitee opens to accept
        it. An address that already has a pending invite, or already belongs to
        the account, is refused with 409 `UZ-INV-003`. Its `current_state` is
        `invited` when a pending invite exists, and `member` when the address
        already belongs to the account. Retrying after an uncertain response is
        safe: the retry is refused with that 409, and the invite list shows the
        first one. 
      operationId: create_invite
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateInviteRequest'
        required: true
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InviteSummary'
        '400':
          description: The request could not be read
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemBody'
        '401':
          description: No credential, or one this route does not accept
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemBody'
        '403':
          description: The credential is good and lacks the capability this route requires
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemBody'
        '409':
          description: The request conflicts with the resource's current state
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemBody'
        '413':
          description: The payload is over this route's ceiling
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemBody'
        '429':
          description: The instance is at its ceiling
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemBody'
        '500':
          description: The daemon failed to answer
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemBody'
        '503':
          description: A dependency this route needs is unreachable
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemBody'
      security:
        - BearerAuth: []
components:
  schemas:
    CreateInviteRequest:
      type: object
      description: >-
        `POST /v1/tenants/me/invites` — invite one address into the caller's
        account.
      required:
        - email
      properties:
        email:
          type: string
          description: |-
            The address to invite. Stored lowercased; accepting requires the
            signed-in account's address to equal it. A domain literal, an IP
            domain, a domain without a dot, or over 254 characters is refused
            with 400 `UZ-REQ-001`.
      additionalProperties: false
    InviteSummary:
      type: object
      description: One invite, as the account's owner sees it.
      required:
        - id
        - email
        - role
        - expires_at
        - created_at
        - link
        - email_status
      properties:
        created_at:
          type: integer
          format: int64
          description: When it was issued, epoch milliseconds.
        email:
          type: string
          description: The address it is for, lowercased.
        email_sent_at:
          type:
            - integer
            - 'null'
          format: int64
          description: >-
            When the relay last accepted its email, epoch milliseconds; `null`
            if

            it never has.
        email_status:
          type: string
          description: |-
            What became of its most recent email: `sent`, `failed`, or
            `unconfigured` when this deployment has no mail relay set up.
        expires_at:
          type: integer
          format: int64
          description: When it stops being acceptable, epoch milliseconds.
        id:
          type: string
          description: The invite's identifier.
        link:
          type: string
          description: The dashboard page the invitee opens to accept it.
        role:
          type: string
          description: 'The role accepting it grants: `member`.'
    ProblemBody:
      type: object
      description: The body every refusal carries, under `application/problem+json`.
      required:
        - docs_uri
        - title
        - detail
        - error_code
        - request_id
      properties:
        action_id:
          type:
            - string
            - 'null'
          description: 'On that 409 only: the action the gate held.'
        current_state:
          type:
            - string
            - 'null'
          description: 'On a 409 only: the state that forbade the transition.'
        detail:
          type: string
          description: One sentence on what was refused and why.
        docs_uri:
          type: string
          description: Where the error code is documented.
        error_code:
          type: string
          description: The registry code, stable across releases.
        etag:
          type:
            - string
            - 'null'
          description: >-
            On a 412 only: the resource's current entity tag, to refetch and
            retry.
        gate_id:
          type:
            - string
            - 'null'
          description: 'On an answered approval gate''s 409 only: the gate that was answered.'
        outcome:
          type:
            - string
            - 'null'
          description: 'On that 409 only: the answer that stands.'
        request_id:
          type: string
          description: The request this refusal answers, for support.
        resolved_at:
          type:
            - integer
            - 'null'
          format: int64
          description: 'On that 409 only: when the standing answer was given.'
        resolved_by:
          type:
            - string
            - 'null'
          description: 'On that 409 only: who gave it.'
        title:
          type: string
          description: A short name for the refusal, safe to show a person.
        user_message:
          type:
            - string
            - 'null'
          description: A curated sentence for end users, where the code has one.
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: >-
        Obtain a token via the CLI auth flow (POST /v1/auth/sessions) or GitHub
        OAuth

````

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