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

# List Sandbox scenarios and businesses

> List Sandbox scenarios and businesses.

Sandbox only. Uses the same records and API contracts as the normal product endpoints. Live requests are rejected. See [Sandbox scenarios](https://docs.amlok.io/api-reference/sandbox-journeys.md) for permissions, fixture coverage, expected results, delivery controls and limitations.

Examples use synthetic IDs. Replace them with values returned by your environment.


## OpenAPI

````yaml openapi/amlok.json GET /v1/sandbox/catalog
openapi: 3.1.0
info:
  title: AMLOK API
  version: 1.0.0
  description: >-
    AMLOK API: borrower connections, Insights origination, immutable risk
    packages and Signal monitoring. Use your institution-issued API origin.
servers: []
security:
  - BearerAuth: []
tags:
  - name: Sandbox
    description: Reproducible developer scenarios with synthetic data and money.
paths:
  /v1/sandbox/catalog:
    get:
      tags:
        - Sandbox
      summary: List Sandbox scenarios and businesses
      description: >-
        Sandbox only. Uses the same records and API contracts as the normal
        product endpoints. Live requests are rejected. See [Sandbox
        scenarios](/api-reference/sandbox-journeys) for permissions, fixture
        coverage, expected results, delivery controls and limitations.
      operationId: getSandboxCatalog
      parameters: []
      responses:
        '200':
          description: Successful request
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/SandboxCatalog'
                  meta:
                    $ref: '#/components/schemas/Meta'
                required:
                  - data
                  - meta
                additionalProperties: false
              example:
                data:
                  version: 2026-11-07.1
                  businesses:
                    - id: maple-retail
                      name: Maple & Pine Retail Ltd.
                      market: CA
                      industry: Retail
                      scenario_id: healthy
                      annual_revenue: '720000.00'
                      monthly_inflows: '60000.00'
                      monthly_outflows: '45000.00'
                    - id: harbor-logistics
                      name: Harbor Route Logistics Inc.
                      market: US
                      industry: Transportation
                      scenario_id: outside_policy
                      annual_revenue: '240000.00'
                      monthly_inflows: '20000.00'
                      monthly_outflows: '23000.00'
                    - id: cedar-software
                      name: Cedar Cloud Software Inc.
                      market: CA
                      industry: Software
                      scenario_id: manual_review
                      annual_revenue: '480000.00'
                      monthly_inflows: '40000.00'
                      monthly_outflows: '30000.00'
                    - id: prairie-manufacturing
                      name: Prairie Precision Manufacturing Ltd.
                      market: CA
                      industry: Manufacturing
                      scenario_id: document_required
                      annual_revenue: '960000.00'
                      monthly_inflows: '80000.00'
                      monthly_outflows: '64000.00'
                    - id: summit-hospitality
                      name: Summit Table Hospitality LLC
                      market: US
                      industry: Hospitality
                      scenario_id: source_reauthorization
                      annual_revenue: '600000.00'
                      monthly_inflows: '50000.00'
                      monthly_outflows: '42000.00'
                    - id: atlas-wholesale
                      name: Atlas Supply Wholesale Ltd.
                      market: CA
                      industry: Wholesale
                      scenario_id: provider_failure
                      annual_revenue: '1200000.00'
                      monthly_inflows: '100000.00'
                      monthly_outflows: '86000.00'
                  scenarios:
                    - id: sample_pack
                      name: Complete sample workspace
                      category: Getting started
                      description: >-
                        Six fictional businesses, linked integrations,
                        documents, underwriting, monitoring, exports, payment
                        attempts and ledger entries.
                      expected: >-
                        Six businesses and associated records are available in
                        the API and console.
                      owner_only: true
                      requires_endpoint: false
                    - id: healthy
                      name: Within-policy underwriting
                      category: Underwriting
                      description: >-
                        Complete the borrower-to-risk-package journey with
                        healthy synthetic cash flow.
                      expected: completed / within_policy
                      owner_only: false
                      requires_endpoint: false
                    - id: outside_policy
                      name: Outside-policy underwriting
                      category: Underwriting
                      description: >-
                        Run the same test policy against a business with lower
                        cash receipts.
                      expected: completed / outside_policy
                      owner_only: false
                      requires_endpoint: false
                    - id: manual_review
                      name: Manual review
                      category: Underwriting
                      description: >-
                        Test a policy metric whose required source input is
                        unavailable.
                      expected: completed / review_required
                      owner_only: false
                      requires_endpoint: false
                    - id: document_required
                      name: Additional document required
                      category: Underwriting
                      description: >-
                        Pause underwriting with an actionable document
                        requirement.
                      expected: requires_action / upload_document
                      owner_only: false
                      requires_endpoint: false
                    - id: document_recovery
                      name: Upload the missing document
                      category: Underwriting
                      description: >-
                        Run a missing-document flow and resume it with a real
                        synthetic PDF upload.
                      expected: requires_action → completed
                      owner_only: false
                      requires_endpoint: false
                    - id: source_reauthorization
                      name: Source authorization required
                      category: Connections
                      description: >-
                        Pause a case until the borrower renews the requested
                        source.
                      expected: requires_action / reauthorize_source
                      owner_only: false
                      requires_endpoint: false
                    - id: source_recovery
                      name: Renew source authorization
                      category: Connections
                      description: >-
                        Complete the reauthorization Hub and resume
                        underwriting.
                      expected: requires_action → completed
                      owner_only: false
                      requires_endpoint: false
                    - id: consent_cancelled
                      name: Borrower cancels connection
                      category: Connections
                      description: Cancel a synthetic Hub session before consent.
                      expected: cancelled / no connections
                      owner_only: false
                      requires_endpoint: false
                    - id: consent_revoked
                      name: Borrower withdraws consent
                      category: Connections
                      description: >-
                        Revoke consent and confirm that normalized source
                        content becomes restricted.
                      expected: revoked / restricted source data
                      owner_only: false
                      requires_endpoint: false
                    - id: provider_failure
                      name: Provider unavailable
                      category: Underwriting
                      description: >-
                        Exercise terminal processing failure without fabricating
                        a risk package.
                      expected: failed / processing_failed
                      owner_only: false
                      requires_endpoint: false
                    - id: insufficient_credits
                      name: Insufficient credit handling
                      category: Billing
                      description: >-
                        Pause an assessment and then resume it with simulated
                        funding.
                      expected: waiting_for_credits → completed
                      owner_only: true
                      requires_endpoint: false
                    - id: monitoring_alert
                      name: Cash-flow deterioration
                      category: Monitoring
                      description: >-
                        Create a funded baseline, reduce synthetic receipts, and
                        evaluate monitoring.
                      expected: alert.created / outside_policy
                      owner_only: false
                      requires_endpoint: false
                    - id: monitoring_recovery
                      name: Risk recovery
                      category: Monitoring
                      description: >-
                        Restore receipts after a deterioration and resolve the
                        previous alert.
                      expected: alert.resolved / within_policy
                      owner_only: false
                      requires_endpoint: false
                    - id: monitoring_lifecycle
                      name: Pause and resume monitoring
                      category: Monitoring
                      description: >-
                        Exercise monitor state changes and a new evaluation
                        after resumption.
                      expected: active → paused → active
                      owner_only: false
                      requires_endpoint: false
                    - id: card_success
                      name: Successful card top-up
                      category: Billing
                      description: >-
                        Post a simulated card payment and matching funding
                        transaction.
                      expected: succeeded / credits posted
                      owner_only: true
                      requires_endpoint: false
                    - id: card_declined
                      name: Declined card payment
                      category: Billing
                      description: Create a failed test payment with no credit posting.
                      expected: failed / balance unchanged
                      owner_only: true
                      requires_endpoint: false
                    - id: ach_pending
                      name: Pending ACH top-up
                      category: Billing
                      description: Record an ACH payment before settlement.
                      expected: pending / balance unchanged
                      owner_only: true
                      requires_endpoint: false
                    - id: ach_settled
                      name: ACH settlement
                      category: Billing
                      description: >-
                        Move an ACH payment from pending to succeeded and post
                        its credits once.
                      expected: pending → succeeded / credits posted
                      owner_only: true
                      requires_endpoint: false
                    - id: ach_returned
                      name: ACH returned
                      category: Billing
                      description: >-
                        Settle then return an ACH payment with a linked
                        reversing ledger entry.
                      expected: returned / net zero funding
                      owner_only: true
                      requires_endpoint: false
                    - id: payment_refund
                      name: Payment refund
                      category: Billing
                      description: >-
                        Post a payment followed by a full refund and linked
                        immutable transactions.
                      expected: refunded / net zero funding
                      owner_only: true
                      requires_endpoint: false
                    - id: autopay
                      name: Automatic top-up
                      category: Billing
                      description: >-
                        Exercise a run-local low-balance trigger and an
                        automatic simulated payment.
                      expected: automatic_top_up / succeeded
                      owner_only: true
                      requires_endpoint: false
                    - id: export_success
                      name: Download reports and evidence
                      category: Exports
                      description: >-
                        Create JSON, PDF and CSV exports from the same risk
                        package and evidence.
                      expected: completed / downloadable files
                      owner_only: false
                      requires_endpoint: false
                    - id: export_failure
                      name: Failed export
                      category: Exports
                      description: Exercise the documented export failure state.
                      expected: failed / export.failed
                      owner_only: false
                      requires_endpoint: false
                    - id: idempotency
                      name: Safe retries and conflicts
                      category: API behavior
                      description: >-
                        Repeat a create request with the same key, then change
                        its payload.
                      expected: same resource on retry / 409 on conflict
                      owner_only: false
                      requires_endpoint: false
                    - id: validation_error
                      name: Invalid input
                      category: API behavior
                      description: >-
                        Submit an invalid borrower request and inspect the
                        structured error.
                      expected: 422 / validation_error
                      owner_only: false
                      requires_endpoint: false
                    - id: pagination
                      name: Snapshot pagination
                      category: API behavior
                      description: >-
                        Read a frozen page, create another borrower, and
                        continue the original snapshot.
                      expected: no duplicates / new record excluded from snapshot
                      owner_only: false
                      requires_endpoint: false
                    - id: webhook_delivery
                      name: Signed webhook delivery
                      category: Webhooks
                      description: >-
                        Create a real Sandbox event and enqueue delivery to the
                        selected Sandbox endpoint.
                      expected: signed HTTP request / persisted delivery attempt
                      owner_only: false
                      requires_endpoint: true
                    - id: webhook_duplicate
                      name: Duplicate webhook delivery
                      category: Webhooks
                      description: >-
                        Replay the same persisted event twice to test
                        deduplication by event ID.
                      expected: same event ID / separate deliveries
                      owner_only: false
                      requires_endpoint: true
                    - id: webhook_out_of_order
                      name: Out-of-order events
                      category: Webhooks
                      description: Replay persisted resource versions in reverse order.
                      expected: newer event replay queued before older event replay
                      owner_only: false
                      requires_endpoint: true
                meta:
                  request_id: req_example
                  schema_version: 1.0.0
                  environment: sandbox
        '400':
          description: >-
            Inspect structured error; retry only when retryable. 429 and 503 can
            include Retry-After.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    $ref: '#/components/schemas/Error'
                required:
                  - error
                additionalProperties: false
              example:
                error:
                  code: validation_error
                  message: Validation error.
                  retryable: false
                  request_id: req_synthetic
                  field: null
          headers:
            X-Request-ID:
              schema:
                type: string
                minLength: 1
              description: Same request ID as meta.request_id or error.request_id.
        '401':
          description: >-
            Inspect structured error; retry only when retryable. 429 and 503 can
            include Retry-After.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    $ref: '#/components/schemas/Error'
                required:
                  - error
                additionalProperties: false
              example:
                error:
                  code: unauthenticated
                  message: Unauthenticated.
                  retryable: false
                  request_id: req_synthetic
                  field: null
          headers:
            X-Request-ID:
              schema:
                type: string
                minLength: 1
              description: Same request ID as meta.request_id or error.request_id.
        '402':
          description: >-
            Inspect structured error; retry only when retryable. 429 and 503 can
            include Retry-After.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    $ref: '#/components/schemas/Error'
                required:
                  - error
                additionalProperties: false
              example:
                error:
                  code: insufficient_credits
                  message: Insufficient credits.
                  retryable: false
                  request_id: req_synthetic
                  field: null
          headers:
            X-Request-ID:
              schema:
                type: string
                minLength: 1
              description: Same request ID as meta.request_id or error.request_id.
        '403':
          description: >-
            Inspect structured error; retry only when retryable. 429 and 503 can
            include Retry-After.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    $ref: '#/components/schemas/Error'
                required:
                  - error
                additionalProperties: false
              example:
                error:
                  code: forbidden
                  message: Forbidden.
                  retryable: false
                  request_id: req_synthetic
                  field: null
          headers:
            X-Request-ID:
              schema:
                type: string
                minLength: 1
              description: Same request ID as meta.request_id or error.request_id.
        '404':
          description: >-
            Inspect structured error; retry only when retryable. 429 and 503 can
            include Retry-After.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    $ref: '#/components/schemas/Error'
                required:
                  - error
                additionalProperties: false
              example:
                error:
                  code: not_found
                  message: Not found.
                  retryable: false
                  request_id: req_synthetic
                  field: null
          headers:
            X-Request-ID:
              schema:
                type: string
                minLength: 1
              description: Same request ID as meta.request_id or error.request_id.
        '409':
          description: >-
            Inspect structured error; retry only when retryable. 429 and 503 can
            include Retry-After.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    $ref: '#/components/schemas/Error'
                required:
                  - error
                additionalProperties: false
              example:
                error:
                  code: idempotency_conflict
                  message: Idempotency conflict.
                  retryable: false
                  request_id: req_synthetic
                  field: null
          headers:
            X-Request-ID:
              schema:
                type: string
                minLength: 1
              description: Same request ID as meta.request_id or error.request_id.
        '410':
          description: >-
            Inspect structured error; retry only when retryable. 429 and 503 can
            include Retry-After.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    $ref: '#/components/schemas/Error'
                required:
                  - error
                additionalProperties: false
              example:
                error:
                  code: cursor_expired
                  message: Cursor expired.
                  retryable: false
                  request_id: req_synthetic
                  field: null
          headers:
            X-Request-ID:
              schema:
                type: string
                minLength: 1
              description: Same request ID as meta.request_id or error.request_id.
        '413':
          description: >-
            Request exceeds the effective profile size limit or media type is
            unsupported. No command is accepted.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    $ref: '#/components/schemas/Error'
                required:
                  - error
                additionalProperties: false
              example:
                error:
                  code: payload_too_large
                  message: payload too large
                  retryable: false
                  request_id: req_synthetic
                  field: null
        '415':
          description: >-
            Request exceeds the effective profile size limit or media type is
            unsupported. No command is accepted.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    $ref: '#/components/schemas/Error'
                required:
                  - error
                additionalProperties: false
              example:
                error:
                  code: unsupported_media_type
                  message: unsupported media type
                  retryable: false
                  request_id: req_synthetic
                  field: null
        '422':
          description: >-
            Inspect structured error; retry only when retryable. 429 and 503 can
            include Retry-After.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    $ref: '#/components/schemas/Error'
                required:
                  - error
                additionalProperties: false
              example:
                error:
                  code: validation_error
                  message: Validation error.
                  retryable: false
                  request_id: req_synthetic
                  field: null
          headers:
            X-Request-ID:
              schema:
                type: string
                minLength: 1
              description: Same request ID as meta.request_id or error.request_id.
        '429':
          description: >-
            Rate budget, shared in-flight limit or ready-queue limit exceeded
            before admission. Retry-After is mandatory in whole seconds.
            Preserve command identity. No accepted receipt or charge is created.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    $ref: '#/components/schemas/Error'
                required:
                  - error
                additionalProperties: false
              example:
                error:
                  code: rate_limited
                  message: Rate limited.
                  retryable: true
                  request_id: req_synthetic
                  field: null
          headers:
            Retry-After:
              description: Minimum delay in seconds before retry.
              schema:
                type: integer
                minimum: 0
            X-Request-ID:
              schema:
                type: string
                minLength: 1
              description: Same request ID as meta.request_id or error.request_id.
        '503':
          description: >-
            Inspect structured error; retry only when retryable. 429 and 503 can
            include Retry-After.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    $ref: '#/components/schemas/Error'
                required:
                  - error
                additionalProperties: false
              example:
                error:
                  code: temporarily_unavailable
                  message: Temporarily unavailable.
                  retryable: true
                  request_id: req_synthetic
                  field: null
          headers:
            Retry-After:
              description: Minimum delay in seconds before retry.
              schema:
                type: integer
                minimum: 0
            X-Request-ID:
              schema:
                type: string
                minLength: 1
              description: Same request ID as meta.request_id or error.request_id.
      security:
        - BearerAuth: []
      x-codeSamples:
        - lang: Shell
          label: cURL
          source: |-
            curl --request GET --fail-with-body --max-time 30 \
              "${AMLOK_API_BASE_URL}/v1/sandbox/catalog" \
              --header "Authorization: Bearer ${AMLOK_API_KEY}" \
              --header 'Accept: application/json'
        - lang: Python
          source: >
            import os

            import requests


            headers = {'Accept': 'application/json'}

            headers["Authorization"] = "Bearer " + os.environ["AMLOK_API_KEY"]

            response = requests.request('GET', os.environ["AMLOK_API_BASE_URL"]
            + '/v1/sandbox/catalog', headers=headers, timeout=30,
            allow_redirects=False)

            response.raise_for_status()

            print(response.json())
        - lang: JavaScript
          source: >
            const headers = {"Accept": "application/json"};

            headers.Authorization = `Bearer ${process.env.AMLOK_API_KEY}`;

            const response = await fetch(process.env.AMLOK_API_BASE_URL +
            "/v1/sandbox/catalog", {
              method: "GET", headers, redirect: "error", signal: AbortSignal.timeout(30000)
            });

            if (!response.ok) throw new Error(`HTTP ${response.status}: ${await
            response.text()}`);

            console.log(await response.json());
components:
  schemas:
    SandboxCatalog:
      type: object
      properties:
        version:
          type: string
          description: Version for this Sandbox fixture.
        businesses:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                description: Id for this Sandbox fixture.
              name:
                type: string
                description: Name for this Sandbox fixture.
              market:
                type: string
                description: Market for this Sandbox fixture.
              industry:
                type: string
                description: Industry for this Sandbox fixture.
              scenario_id:
                type: string
                description: Stable scenario identifier from the versioned catalog.
              annual_revenue:
                type: string
                description: Annual revenue for this Sandbox fixture.
              monthly_inflows:
                type: string
                description: Monthly inflows for this Sandbox fixture.
              monthly_outflows:
                type: string
                description: Monthly outflows for this Sandbox fixture.
            required:
              - id
              - name
              - market
              - industry
              - scenario_id
              - annual_revenue
              - monthly_inflows
              - monthly_outflows
            additionalProperties: false
          description: Businesses for this Sandbox fixture.
        scenarios:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                description: Id for this Sandbox fixture.
              name:
                type: string
                description: Name for this Sandbox fixture.
              category:
                type: string
                description: Category for this Sandbox fixture.
              description:
                type: string
                description: Description for this Sandbox fixture.
              expected:
                type: string
                description: Expected for this Sandbox fixture.
              owner_only:
                type: boolean
                description: Owner only for this Sandbox fixture.
              requires_endpoint:
                type: boolean
                description: Requires endpoint for this Sandbox fixture.
            required:
              - id
              - name
              - category
              - description
              - expected
              - owner_only
              - requires_endpoint
            additionalProperties: false
          description: Scenarios for this Sandbox fixture.
      required:
        - version
        - businesses
        - scenarios
      additionalProperties: false
    Meta:
      type: object
      properties:
        request_id:
          type: string
          minLength: 1
          description: >-
            Opaque identifier, authorized within the API key workspace and
            environment.
        schema_version:
          type: string
          minLength: 1
          description: >-
            Schema version for Meta. Constraints, requiredness and allowed
            values are defined by this schema.
        environment:
          type: string
          enum:
            - sandbox
            - live
          description: >-
            Environment for Meta. Constraints, requiredness and allowed values
            are defined by this schema.
      required:
        - request_id
        - schema_version
        - environment
      additionalProperties: false
    Error:
      type: object
      properties:
        code:
          type: string
          enum:
            - validation_error
            - unauthenticated
            - forbidden
            - not_found
            - invalid_state
            - idempotency_conflict
            - insufficient_credits
            - precondition_failed
            - cursor_expired
            - rate_limited
            - temporarily_unavailable
            - deal_snapshot_conflict
            - payload_too_large
            - unsupported_media_type
            - document_rejected
            - processing_failed
            - session_expired
            - consent_purpose_missing
            - sandbox_only
            - scenario_not_available
            - idempotency_result_expired
            - capacity_exceeded
            - queue_full
            - queue_wait_exceeded
            - processing_deadline_exceeded
            - response_too_large
            - export_too_large
            - export_expired
            - invalid_export_part
          description: >-
            Code for Error. Constraints, requiredness and allowed values are
            defined by this schema.
        message:
          type: string
          minLength: 1
          description: >-
            Message for Error. Constraints, requiredness and allowed values are
            defined by this schema.
        retryable:
          type: boolean
          description: >-
            Retryable for Error. Constraints, requiredness and allowed values
            are defined by this schema.
        request_id:
          type: string
          minLength: 1
          description: >-
            Opaque identifier, authorized within the API key workspace and
            environment.
        field:
          anyOf:
            - type: string
              minLength: 1
            - type: 'null'
          description: >-
            Field for Error. Constraints, requiredness and allowed values are
            defined by this schema.
        capacity:
          $ref: '#/components/schemas/CapacityErrorDetail'
        recovery:
          $ref: '#/components/schemas/LargeResponseRecovery'
      required:
        - code
        - message
        - retryable
        - request_id
        - field
      additionalProperties: false
      allOf:
        - if:
            properties:
              code:
                const: response_too_large
          then:
            required:
              - recovery
            properties:
              retryable:
                const: false
        - if:
            properties:
              code:
                enum:
                  - capacity_exceeded
                  - queue_full
          then:
            required:
              - capacity
            properties:
              retryable:
                const: true
    CapacityErrorDetail:
      type: object
      properties:
        group:
          type: string
          enum:
            - http
            - origination
            - monitoring
            - export
        reason:
          type: string
          enum:
            - in_flight_limit
            - queue_full
        limit:
          type: integer
          minimum: 0
          maximum: 9007199254740991
          description: Effective admission limit.
        profile_id:
          type: string
          minLength: 1
        profile_version:
          type: string
          minLength: 1
      required:
        - group
        - reason
        - limit
        - profile_id
        - profile_version
      additionalProperties: false
    LargeResponseRecovery:
      type: object
      properties:
        export_request:
          $ref: '#/components/schemas/CreateExport'
        summary_available:
          type: boolean
        snapshot_expires_at:
          anyOf:
            - type: string
              minLength: 1
              format: date-time
            - type: 'null'
        data_checkpoint:
          anyOf:
            - $ref: '#/components/schemas/DataCheckpoint'
            - type: 'null'
      required:
        - export_request
        - summary_available
        - snapshot_expires_at
        - data_checkpoint
      additionalProperties: false
      description: >-
        Complete authorized export source captured before the failed response.
        Existing export scopes and source permissions still apply. Snapshot
        expiry is null for immutable package/record sources; create snapshot
        exports before expiry.
    CreateExport:
      type: object
      properties:
        kind:
          type: string
          enum:
            - risk_package
            - evidence
            - billing
            - data
          description: >-
            Kind for CreateExport. Constraints, requiredness and allowed values
            are defined by this schema.
        risk_package_id:
          type: string
          minLength: 1
          description: >-
            Opaque identifier, authorized within the API key workspace and
            environment.
        evidence_set_id:
          type: string
          minLength: 1
          description: >-
            Opaque identifier, authorized within the API key workspace and
            environment.
        billing_report_type:
          type: string
          enum:
            - usage
            - credits
            - statements
            - funding
            - rates
            - workload
          description: >-
            Billing report type for CreateExport. Constraints, requiredness and
            allowed values are defined by this schema.
        window:
          $ref: '#/components/schemas/Window'
          description: >-
            Window for CreateExport. Constraints, requiredness and allowed
            values are defined by this schema.
        format:
          type: string
          enum:
            - json
            - csv
            - pdf
          description: >-
            Format for CreateExport. Constraints, requiredness and allowed
            values are defined by this schema.
        data_snapshot_id:
          type: string
          minLength: 1
          description: Opaque ID within the authorized workspace and environment.
        data_record_id:
          type: string
          minLength: 1
          description: >-
            Exact immutable DataRecord version, alternative to data_snapshot_id
            for kind=data.
      required:
        - kind
        - format
      additionalProperties: false
      oneOf:
        - properties:
            kind:
              const: risk_package
            format:
              type: string
              enum:
                - json
                - pdf
          required:
            - risk_package_id
          not:
            anyOf:
              - required:
                  - evidence_set_id
              - required:
                  - billing_report_type
              - required:
                  - window
              - required:
                  - data_snapshot_id
              - required:
                  - data_record_id
          title: Risk-package export
        - properties:
            kind:
              const: evidence
            format:
              type: string
              enum:
                - json
                - csv
          required:
            - evidence_set_id
          not:
            anyOf:
              - required:
                  - risk_package_id
              - required:
                  - billing_report_type
              - required:
                  - window
              - required:
                  - data_snapshot_id
              - required:
                  - data_record_id
          title: Evidence export
        - properties:
            kind:
              const: billing
            format:
              type: string
              enum:
                - json
                - csv
          required:
            - billing_report_type
            - window
          not:
            anyOf:
              - required:
                  - risk_package_id
              - required:
                  - evidence_set_id
              - required:
                  - data_snapshot_id
              - required:
                  - data_record_id
          title: Billing export
        - title: Collected data export
          properties:
            kind:
              const: data
            format:
              type: string
              enum:
                - json
                - csv
          required: []
          not:
            anyOf:
              - required:
                  - risk_package_id
              - required:
                  - evidence_set_id
              - required:
                  - billing_report_type
              - required:
                  - window
          oneOf:
            - required:
                - data_snapshot_id
              not:
                required:
                  - data_record_id
            - required:
                - data_record_id
              not:
                required:
                  - data_snapshot_id
    DataCheckpoint:
      type: object
      properties:
        snapshot_id:
          type: string
          minLength: 1
        as_of:
          type: string
          minLength: 1
          format: date-time
        changes_cursor:
          type: string
          minLength: 1
        expires_at:
          type: string
          minLength: 1
          format: date-time
      required:
        - snapshot_id
        - as_of
        - changes_cursor
        - expires_at
      additionalProperties: false
      description: >-
        Atomic data snapshot and feed boundary retained even when the first
        record exceeds the response limit.
    Window:
      type: object
      properties:
        start:
          type: string
          minLength: 1
          format: date-time
          description: >-
            Start for Window. Constraints, requiredness and allowed values are
            defined by this schema.
        end:
          type: string
          minLength: 1
          format: date-time
          description: >-
            End for Window. Constraints, requiredness and allowed values are
            defined by this schema.
      required:
        - start
        - end
      additionalProperties: false
      description: UTC interval [start, end). The server rejects end <= start.
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: API key
      description: >-
        Server-to-server API key bound to exactly one workspace, institution
        tenant and environment. No caller-supplied workspace override is
        accepted. Do not use in public browser code.

````

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