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

# Create token

> Create a scoped API token.

Required scope: `tokens:write`.

Dashboard sessions can call this route, and API tokens must include the listed scope.



## OpenAPI

````yaml openapi-v2.json POST /api/v2/tokens
openapi: 3.1.0
info:
  title: SiteGPT Agent API
  version: 2.0.0
  description: >-
    Agent-facing API for managing SiteGPT chatbots, dashboard summaries,
    appearance media, knowledge, settings, conversations, leads, members,
    account profiles, usage, billing reads, and API tokens.
servers:
  - url: https://sitegpt.ai
security:
  - bearerAuth: []
tags:
  - name: Discovery
  - name: Onboarding
  - name: Account
  - name: Billing
  - name: Tokens
  - name: Chatbots
  - name: Knowledge
  - name: Knowledge Sync Jobs
  - name: Knowledge Sources
  - name: Custom Responses
  - name: Personas
  - name: Instructions
  - name: Settings
  - name: Conversation Starters
  - name: Conversation Followups
  - name: Members
  - name: Leads
  - name: Conversations
  - name: Messages
  - name: Tags
paths:
  /api/v2/tokens:
    post:
      tags:
        - Tokens
      summary: Create token
      description: >-
        Create a scoped API token.


        Required scope: `tokens:write`.


        Dashboard sessions can call this route, and API tokens must include the
        listed scope.
      operationId: createToken
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - name
                - scopes
              additionalProperties: false
              properties:
                name:
                  type: string
                  minLength: 1
                  maxLength: 120
                scopes:
                  type: array
                  minItems: 1
                  items:
                    type: string
                    enum:
                      - account:read
                      - account:write
                      - tokens:read
                      - tokens:write
                      - chatbots:read
                      - chatbots:write
                      - chatbots:delete
                      - knowledge:read
                      - knowledge:write
                      - knowledge:delete
                      - personas:read
                      - personas:write
                      - personas:delete
                      - instructions:read
                      - instructions:write
                      - instructions:delete
                      - settings:read
                      - settings:write
                      - starters:read
                      - starters:write
                      - starters:delete
                      - followups:read
                      - followups:write
                      - followups:delete
                      - conversations:read
                      - conversations:write
                      - conversations:delete
                      - leads:read
                      - leads:write
                      - leads:delete
                      - members:read
                      - members:write
                      - members:delete
                      - integrations:read
                      - integrations:write
                      - billing:read
                      - billing:write
                chatbotIds:
                  type: array
                  items:
                    type: string
                  description: >-
                    Optional chatbot IDs to restrict this token to. Omit for all
                    accessible chatbots.
                expiresInDays:
                  type: integer
                  minimum: 1
                  maximum: 365
                  default: 90
                expiresAt:
                  type: string
                  format: date-time
                  description: >-
                    Absolute token expiration. Cannot be combined with
                    expiresInDays.
            example:
              name: Knowledge updater
              scopes:
                - account:read
                - chatbots:read
                - knowledge:read
                - knowledge:write
              expiresInDays: 90
      responses:
        '200':
          description: Successful SiteGPT API v2 response.
          content:
            application/json:
              schema:
                type: object
                required:
                  - ok
                  - data
                  - meta
                properties:
                  ok:
                    type: boolean
                    const: true
                  data:
                    type: object
                    additionalProperties: true
                    properties:
                      token:
                        $ref: '#/components/schemas/GenericObject'
                      plaintextToken:
                        type: string
                        description: Plaintext token returned once. Store it immediately.
                  meta:
                    $ref: '#/components/schemas/AgentResponseMeta'
                additionalProperties: false
              example:
                ok: true
                data:
                  token:
                    id: token-id
                    name: Knowledge updater
                    scopes:
                      - account:read
                      - chatbots:read
                      - knowledge:write
                  plaintextToken: sgpt_xxxxxxxxx
                meta:
                  requestId: request-id
        '400':
          $ref: '#/components/responses/AgentError'
        '401':
          $ref: '#/components/responses/AgentError'
        '403':
          $ref: '#/components/responses/AgentError'
        '404':
          $ref: '#/components/responses/AgentError'
        '405':
          $ref: '#/components/responses/AgentError'
      security:
        - bearerAuth:
            - tokens:write
components:
  schemas:
    GenericObject:
      type: object
      additionalProperties: true
    AgentResponseMeta:
      type: object
      required:
        - requestId
      properties:
        requestId:
          type: string
        warnings:
          type: array
          items:
            type: string
        nextCursor:
          type:
            - string
            - 'null'
      additionalProperties: true
    AgentError:
      type: object
      required:
        - ok
        - error
        - meta
      properties:
        ok:
          type: boolean
          const: false
        error:
          type: object
          required:
            - code
            - message
          properties:
            code:
              type: string
            message:
              type: string
            details: {}
          additionalProperties: false
        meta:
          type: object
          required:
            - requestId
          properties:
            requestId:
              type: string
          additionalProperties: true
      additionalProperties: false
  responses:
    AgentError:
      description: SiteGPT agent API error response.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/AgentError'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: SiteGPT API token

````