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

# Create demo session

> Creates an isolated demo customer and returns a sandbox API key. No authentication required.
Rate limited to 5 requests per IP per minute.


Creates an isolated sandbox environment with its own customer scope and API key. No
authentication required - this is the entry point for trying the API.

The returned `api_key` is prefixed with `sk_demo_` and is the only credential you need
for all subsequent API calls. **It is returned exactly once** - there is no retrieval
endpoint. Save it immediately.

The `customer_id` is the scope your key is bound to. It is reserved for future use; do
not rely on its format.

<Note>
  Rate limited to **5 requests per IP per minute**. If you hit the limit, wait 60 seconds.
</Note>


## OpenAPI

````yaml POST /demo/session
openapi: 3.1.0
info:
  title: Structural API
  version: '1.0'
  description: |
    Bidirectional data translation between construction management platforms.
    One integration gives you normalized access to every connected platform.
  contact:
    email: support@structural.app
    url: https://structural.app
servers:
  - url: https://api.structural.app/api/v1
    description: Production
security: []
paths:
  /demo/session:
    post:
      tags:
        - Demo
      summary: Create demo session
      description: >
        Creates an isolated demo customer and returns a sandbox API key. No
        authentication required.

        Rate limited to 5 requests per IP per minute.
      operationId: createDemoSession
      responses:
        '201':
          description: Demo session created
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      api_key:
                        type: string
                        description: >
                          The demo API key. Prefixed with `sk_demo_`. Returned
                          exactly once —

                          capture it immediately. There is no retrieval
                          endpoint.
                        example: sk_demo_a1b2c3d4e5f6g7h8
                      customer_id:
                        type: string
                        description: |
                          The customer scope this key is bound to.
                          Reserved for future use; do not rely on its format.
                        example: 550e8400-e29b-41d4-a716-446655440000
        '429':
          $ref: '#/components/responses/RateLimitError'
components:
  responses:
    RateLimitError:
      description: Too many requests
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            error:
              type: RATE_LIMIT_ERROR
              message: Too many requests
              request_id: req_a1b2c3d4e5f6
  schemas:
    ErrorResponse:
      type: object
      properties:
        error:
          type: object
          required:
            - type
            - message
            - request_id
          properties:
            type:
              type: string
              description: Machine-readable error code
              example: VALIDATION_ERROR
            message:
              type: string
              description: Human-readable error description
              example: platform and entity_type query params required
            request_id:
              type: string
              description: Unique request identifier — quote this in support requests
              example: req_a1b2c3d4e5f6

````