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

# Invite an owner to make an account

> Platform keys only. Emails the address a link to sign up, so an owner with no LobbyStack account can make one and then accept your claim link. If the address already has an account, LobbyStack emails it a link to sign in instead and changes nothing. The answer is the same either way, so it never tells you whether someone has an account. No account exists until the person signs up, with a password or with Google. Idempotency-Key is required: a retry of the same request sends nothing more. One platform key can invite 50 addresses a day; past that it gets a 429.



## OpenAPI

````yaml /api-reference/openapi.json post /users
openapi: 3.1.0
info:
  title: LobbyStack API
  version: v1
  description: >-
    Read calls, contacts, appointments and messages, book appointments, and
    subscribe to webhooks. Authenticate with an API key in the Authorization
    header. A platform key also names the business it acts on in the
    LobbyStack-Business header. Each key allows 120 requests per minute by
    default.
servers:
  - url: https://app.lobbystack.com/api/v1
security:
  - bearerAuth: []
tags:
  - name: Business
  - name: Receptionist
  - name: Billing
  - name: Phone numbers
  - name: Onboarding
  - name: Team
  - name: Website chat
  - name: Calendars
  - name: Notifications
  - name: Calls
  - name: Contacts
  - name: Appointments
  - name: Messages
  - name: Knowledge
  - name: Webhooks
  - name: Platform
paths:
  /users:
    post:
      tags:
        - Platform
      summary: Invite an owner to make an account
      description: >-
        Platform keys only. Emails the address a link to sign up, so an owner
        with no LobbyStack account can make one and then accept your claim link.
        If the address already has an account, LobbyStack emails it a link to
        sign in instead and changes nothing. The answer is the same either way,
        so it never tells you whether someone has an account. No account exists
        until the person signs up, with a password or with Google.
        Idempotency-Key is required: a retry of the same request sends nothing
        more. One platform key can invite 50 addresses a day; past that it gets
        a 429.
      operationId: createUser
      parameters:
        - name: Idempotency-Key
          in: header
          required: true
          description: >-
            Required. A unique value, up to 255 characters, that makes retries
            of this request safe.
          schema:
            type: string
            maxLength: 255
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserCreate'
      responses:
        '202':
          description: Accepted
          content:
            application/json:
              schema:
                type: object
                required:
                  - data
                properties:
                  data:
                    $ref: '#/components/schemas/UserInvitation'
        '400':
          description: >-
            The request is invalid (invalid_request), including a missing
            Idempotency-Key.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: The API key is missing, invalid, or revoked (unauthorized).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: >-
            Refused. insufficient_scope: the key lacks the users:create scope.
            forbidden: only platform keys can call this endpoint.
            key_owner_inactive: the person the key acts for can't any more: a
            per-business key's creator is no longer an owner or admin, or a
            platform key's owner_email has no verified LobbyStack account.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '409':
          description: The request conflicts with the current state.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '422':
          description: >-
            The Idempotency-Key was already used with a different request body
            (idempotency_key_reused).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: >-
            Too many requests (rate_limited). Wait for the Retry-After header's
            number of seconds.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          headers:
            Retry-After:
              schema:
                type: integer
              description: Seconds to wait.
      security:
        - bearerAuth: []
components:
  schemas:
    UserCreate:
      type: object
      properties:
        email:
          type: string
          minLength: 3
          maxLength: 320
          description: The owner's email.
        locale:
          description: 'The language of the email: en, fr, es or sr. Defaults to en.'
          type: string
          enum:
            - en
            - fr
            - es
            - sr
      required:
        - email
      additionalProperties: false
    UserInvitation:
      type: object
      properties:
        email:
          type: string
          description: The address, lowercased.
        locale:
          type: string
          description: The language you asked for.
      required:
        - email
        - locale
      additionalProperties: false
      description: >-
        The address LobbyStack emailed. The answer looks the same whether or not
        the address has an account.
    Error:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
              enum:
                - invalid_request
                - unauthorized
                - forbidden
                - insufficient_scope
                - not_found
                - conflict
                - idempotency_key_reused
                - idempotency_request_in_progress
                - booking_disabled
                - booking_requires_confirmation
                - slot_unavailable
                - rate_limited
                - rate_limit_unavailable
                - method_not_allowed
                - internal_error
                - business_required
                - key_owner_inactive
                - plan_limit_reached
            message:
              type: string
            details:
              type: array
              items:
                type: object
                properties:
                  path:
                    type: string
                  message:
                    type: string
                required:
                  - path
                  - message
                additionalProperties: false
          required:
            - code
            - message
          additionalProperties: false
      required:
        - error
      additionalProperties: false
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        An API key from Settings > API keys (lsk_...), which acts on its own
        business, or a platform key from the PLATFORM_API_KEYS setting
        (lsp_...), which onboards and manages businesses. Scopes: business:read,
        business:write, calls:read, contacts:read, contacts:write,
        appointments:read, appointments:write, messages:read, knowledge:read,
        knowledge:write, webhooks:manage, billing:manage, phone_numbers:manage,
        team:manage, businesses:create, users:create. Only platform keys can
        hold businesses:create and users:create.

````

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