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

# Create the first administrator

> Requires the unused installation setup secret. Creates the team and verified first administrator, then sets a session cookie. A configured installation rejects another setup.

No signed-in session is required. Endpoint-specific tokens, setup secrets or challenges may still be required.

Requires the unused installation setup secret. Creates the team and verified first administrator, then sets a session cookie. A configured installation rejects another setup.

[Request conventions](/api-reference/overview) · [API keys](/api-keys) · [MCP connections](/mcp-connections)


## OpenAPI

````yaml api-reference/openapi.json POST /api/auth/setup
openapi: 3.1.0
info:
  title: Posted HTTP API
  version: 0.2.0
  description: >-
    All registered application, account, OAuth, MCP transport and health
    endpoints. Publishing and draft request schemas come from the shared runtime
    validators. Replace the example server with your installation. Documentation
    uses simple request examples and does not execute live publishing requests.
servers:
  - url: https://posted-api.example.com
security: []
paths:
  /api/auth/setup:
    post:
      tags:
        - Account and sessions
      summary: Create the first administrator
      description: >-
        Requires the unused installation setup secret. Creates the team and
        verified first administrator, then sets a session cookie. A configured
        installation rejects another setup.


        No signed-in session is required. Endpoint-specific tokens, setup
        secrets or challenges may still be required.
      operationId: post_api_auth_setup
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                setupSecret:
                  type: string
                  minLength: 1
                  maxLength: 1024
                workspaceName:
                  type: string
                  minLength: 1
                  maxLength: 120
                name:
                  type: string
                  minLength: 1
                  maxLength: 120
                email:
                  type: string
                  maxLength: 320
                  format: email
                  pattern: >-
                    ^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$
                password:
                  type: string
                  minLength: 15
                  maxLength: 1024
                dateFormat:
                  type: string
                  enum:
                    - day-short-month-year
                    - short-month-day-year
                    - year-month-day
                    - day-month-year
                    - month-day-year
                timeFormat:
                  type: string
                  enum:
                    - 24-hour
                    - 12-hour
                    - 24-hour-seconds
                    - 12-hour-seconds
                timeZone:
                  type: string
                  minLength: 1
                  maxLength: 100
              required:
                - setupSecret
                - workspaceName
                - name
                - email
                - password
              additionalProperties: false
      responses:
        '201':
          description: >-
            Successful response. Examples are illustrative; field values vary by
            record.
          content:
            application/json:
              schema:
                type: object
                properties:
                  user:
                    type: object
                    properties:
                      id:
                        type: string
                      name:
                        type: string
                      email:
                        type: string
                      role:
                        type: string
                      timeZone:
                        type: string
                      emailVerified:
                        type: boolean
                      dateFormat:
                        type: string
                      timeFormat:
                        type: string
                      notificationPreferences:
                        type: object
                        properties:
                          assignments:
                            type: boolean
                          mentions:
                            type: boolean
                        additionalProperties: true
                      passkeyCount:
                        type: integer
                    additionalProperties: true
                  workspace:
                    type: object
                    properties:
                      id:
                        type: string
                      name:
                        type: string
                      createdAt:
                        type: string
                    additionalProperties: true
                additionalProperties: true
              example:
                user:
                  id: 66666666-6666-4666-8666-666666666666
                  name: Alex Morgan
                  email: alex@example.test
                  role: admin
                  timeZone: UTC
                  emailVerified: true
                  dateFormat: day-short-month-year
                  timeFormat: 24-hour
                  notificationPreferences:
                    assignments: true
                    mentions: true
                  passkeyCount: 0
                workspace:
                  id: 55555555-5555-4555-8555-555555555555
                  name: Studio team
                  createdAt: '2027-01-18T09:30:00.000Z'
        default:
          description: >-
            Request failure. Inspect code, message and requestId; respect
            Retry-After on HTTP 429.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security: []
components:
  schemas:
    Error:
      type: object
      required:
        - error
      properties:
        error:
          type: object
          required:
            - code
            - message
            - requestId
          properties:
            code:
              type: string
            message:
              type: string
            requestId:
              type: string

````

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