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

# Get a test key without an account

> No signup, but not anonymous. The name and email are how an incident
notice reaches you, and asking again with the same email returns a key
for the same application, so work already done is not lost.

Test environment only.




## OpenAPI

````yaml /api-reference/openapi.yaml post /sandbox_keys
openapi: 3.1.0
info:
  title: Useroutr API
  version: 1.0.0
  description: |
    Universal application funding. Users fund an application with whatever they
    hold, on whatever rail, and the application receives exactly what it needs,
    credited exactly once.

    This document is the single source of truth for every wire type. Server
    handlers, the SDK, the checkout, and the dashboard all consume types
    generated from it. A handler change without a regenerated type fails CI.
servers:
  - url: https://api.useroutr.com/v1
    description: Production
  - url: https://api.sandbox.useroutr.com/v1
    description: Sandbox
security:
  - secretKey: []
tags:
  - name: Funding intents
  - name: Funding addresses
  - name: Customers
  - name: Registry
  - name: Webhooks
paths:
  /sandbox_keys:
    post:
      tags:
        - Onboarding
      summary: Get a test key without an account
      description: |
        No signup, but not anonymous. The name and email are how an incident
        notice reaches you, and asking again with the same email returns a key
        for the same application, so work already done is not lost.

        Test environment only.
      operationId: createSandboxKey
      parameters:
        - $ref: '#/components/parameters/IdempotencyKey'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - name
                - email
              properties:
                name:
                  type: string
                  minLength: 1
                  maxLength: 200
                email:
                  type: string
                  maxLength: 320
      responses:
        '201':
          description: The keys, shown once.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SandboxKey'
        default:
          $ref: '#/components/responses/Error'
components:
  parameters:
    IdempotencyKey:
      name: Idempotency-Key
      in: header
      required: true
      description: Required on every mutating request. Absent is a 400.
      schema:
        type: string
        minLength: 8
        maxLength: 200
  schemas:
    SandboxKey:
      type: object
      description: |
        A test-environment key pair. Only hashes are stored, so these are shown
        once and cannot be retrieved later.
      required:
        - application_id
        - secret_key
        - publishable_key
        - environment
      properties:
        application_id:
          type: string
          examples:
            - app_...
        secret_key:
          type: string
          examples:
            - sk_test_...
        publishable_key:
          type: string
          examples:
            - pk_test_...
        environment:
          type: string
          enum:
            - test
    ErrorResponse:
      type: object
      required:
        - error
      properties:
        error:
          type: object
          required:
            - code
            - message
            - type
            - request_id
          properties:
            code:
              type: string
            message:
              type: string
            type:
              type: string
              enum:
                - validation_error
                - authentication_error
                - permission_error
                - not_found
                - conflict
                - rate_limit
                - provider_error
                - compliance_error
                - internal_error
            param:
              type:
                - string
                - 'null'
            retryable:
              type: boolean
            retry_after_seconds:
              type: integer
            docs_url:
              type: string
              format: uri
            request_id:
              type: string
  responses:
    Error:
      description: Error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
  securitySchemes:
    secretKey:
      type: http
      scheme: bearer
      description: Server-side only. Never ships to a browser.

````