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

# List sandboxes

> Sandboxes the team reported starting in the period, newest first, with their estimated cost computed as in the summary. decision explains how the provider was chosen when the sandbox was started with a decision_id from POST /api/v1/tenant/sandboxes/route: the team's policy then, baseline_provider (the team's first provider), the reason, expected_seconds, and every provider considered in the returned order with its price per hour, expected cost, benchmark start time and success rate, as the route endpoint returned them. Each candidate also has result, why the policy did or did not put it first: picked, eligible, not_priced, unreliable (success_rate below 0.95), too_slow (startup_p50_ms more than twice the first provider's for cheapest, or past the balanced start-time limit) over_budget (expected_cost above the first provider's, for fastest and balanced), no_start_time (no benchmark start time to compare with the first provider's, for fastest and balanced) or no_saving (no cheaper than the first provider within the start-time limit, for balanced); result is null except for the picked provider when the order was not ranked (reasons off, no_size and baseline_not_priced). Once the sandbox has stopped, when it ran at the size the decision priced (decision vcpus and memory_mib), each candidate's actual_cost_usd is what the sandbox's run time would have cost there, rounded up to that provider's billing increment and at least its minimum billed time; for the provider the sandbox ran on it equals cost_usd. outcome is failed_here when the sandbox ran on a provider other than the picked one, with outcome_provider the picked provider; it is too_costly when the sandbox ran on the picked provider but, for its actual run time, an eligible candidate would have cost less (cheapest) or the first provider would have cost less (fastest and balanced), with outcome_provider that cheaper provider; otherwise outcome is null. decision is null for a sandbox started without a decision_id, and once the decision has passed its retention of about 90 days. Defaults to the last 30 days; a period over 400 days is rejected.



## OpenAPI

````yaml /api-reference/costgraph/openapi.json get /api/v1/tenant/sandboxes/autopilot/runs
openapi: 3.0.0
info:
  description: Read and manage your CostGraph organization, spend, alerts, and settings.
  title: CostGraph API
  contact: {}
  version: '1.0'
servers:
  - url: https://api.costgraph.ai
security: []
tags:
  - name: ai
    x-group: AI
  - name: ai-serving
    x-group: AI serving
  - name: anomalies
    x-group: Anomalies
  - name: auth
    x-group: Auth
  - name: billing
    x-group: Billing
  - name: billing-export
    x-group: Billing export
  - name: budgets
    x-group: Budgets
  - name: ci
    x-group: CI
  - name: compute-recommendations
    x-group: Compute recommendations
  - name: config
    x-group: Config
  - name: context-graph
    x-group: Context graph
  - name: cost
    x-group: Cost
  - name: gpus
    x-group: GPUs
  - name: graphai
    x-group: Graph AI
  - name: integrations
    x-group: Integrations
  - name: invitations
    x-group: Invitations
  - name: kubernetes-clusters
    x-group: Kubernetes clusters
  - name: marketplace
    x-group: Marketplace
  - name: network
    x-group: Network
  - name: network-requests
    x-group: Network requests
  - name: notifications
    x-group: Notifications
  - name: oauth
    x-group: OAuth
  - name: oauth-clients
    x-group: OAuth clients
  - name: opencost
    x-group: OpenCost
  - name: organization
    x-group: Audit log
  - name: organizations
    x-group: Organizations
  - name: placement-alternatives
    x-group: Placement alternatives
  - name: reports
    x-group: Reports
  - name: sandboxes
    x-group: Sandboxes
  - name: settings
    x-group: Settings
  - name: sso
    x-group: Single sign-on
  - name: tenants
    x-group: Tenants
  - name: ticketing
    x-group: Ticketing
  - name: user
    x-group: Users
  - name: virtual-machines
    x-group: Virtual machines
  - name: virtual-tags
    x-group: Virtual tags
  - name: workflows
    x-group: Workflows
paths:
  /api/v1/tenant/sandboxes/autopilot/runs:
    get:
      tags:
        - sandboxes
      summary: List sandboxes
      description: >-
        Sandboxes the team reported starting in the period, newest first, with
        their estimated cost computed as in the summary. decision explains how
        the provider was chosen when the sandbox was started with a decision_id
        from POST /api/v1/tenant/sandboxes/route: the team's policy then,
        baseline_provider (the team's first provider), the reason,
        expected_seconds, and every provider considered in the returned order
        with its price per hour, expected cost, benchmark start time and success
        rate, as the route endpoint returned them. Each candidate also has
        result, why the policy did or did not put it first: picked, eligible,
        not_priced, unreliable (success_rate below 0.95), too_slow
        (startup_p50_ms more than twice the first provider's for cheapest, or
        past the balanced start-time limit) over_budget (expected_cost above the
        first provider's, for fastest and balanced), no_start_time (no benchmark
        start time to compare with the first provider's, for fastest and
        balanced) or no_saving (no cheaper than the first provider within the
        start-time limit, for balanced); result is null except for the picked
        provider when the order was not ranked (reasons off, no_size and
        baseline_not_priced). Once the sandbox has stopped, when it ran at the
        size the decision priced (decision vcpus and memory_mib), each
        candidate's actual_cost_usd is what the sandbox's run time would have
        cost there, rounded up to that provider's billing increment and at least
        its minimum billed time; for the provider the sandbox ran on it equals
        cost_usd. outcome is failed_here when the sandbox ran on a provider
        other than the picked one, with outcome_provider the picked provider; it
        is too_costly when the sandbox ran on the picked provider but, for its
        actual run time, an eligible candidate would have cost less (cheapest)
        or the first provider would have cost less (fastest and balanced), with
        outcome_provider that cheaper provider; otherwise outcome is null.
        decision is null for a sandbox started without a decision_id, and once
        the decision has passed its retention of about 90 days. Defaults to the
        last 30 days; a period over 400 days is rejected.
      parameters:
        - description: Tenant ID
          name: X-CostGraph-Tenant-ID
          in: header
          required: true
          schema:
            type: string
        - description: First day, YYYY-MM-DD
          name: from
          in: query
          schema:
            type: string
        - description: Day after the last day, YYYY-MM-DD
          name: to
          in: query
          schema:
            type: string
        - description: Only sandboxes on this provider
          name: provider
          in: query
          schema:
            type: string
        - description: Number of rows to return (default 50, max 200)
          name: limit
          in: query
          schema:
            type: integer
        - description: Rows to skip before returning results (default 0)
          name: offset
          in: query
          schema:
            type: integer
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/responses.SuccessResponse'
                  - type: object
                    properties:
                      data:
                        $ref: '#/components/schemas/db.SandboxRunList'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/responses.ErrorResponse'
      security:
        - BearerAuth: []
components:
  schemas:
    responses.SuccessResponse:
      type: object
      required:
        - message
        - status
      properties:
        data: {}
        message:
          type: string
          example: some message
        status:
          type: string
          example: success
    db.SandboxRunList:
      type: object
      required:
        - items
        - limit
        - offset
        - total_count
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/db.SandboxRun'
        limit:
          type: integer
        offset:
          type: integer
        total_count:
          type: integer
    responses.ErrorResponse:
      type: object
      required:
        - message
        - status
      properties:
        message:
          type: string
          example: some message
        status:
          type: string
          example: error
    db.SandboxRun:
      type: object
      required:
        - currency
        - default_size
        - metadata
        - provider
        - routed
        - sandbox_id
        - seconds
        - started_at
      properties:
        baseline_cost_usd:
          type: number
          x-semantic: costAmount
          nullable: true
        baseline_price_per_hour:
          type: number
          x-semantic: costAmount
          nullable: true
        baseline_provider:
          type: string
          nullable: true
        cost_usd:
          type: number
          x-semantic: costAmount
          nullable: true
        currency:
          type: string
          x-semantic: currencyCode
        decision:
          allOf:
            - $ref: '#/components/schemas/db.SandboxRunDecision'
          nullable: true
        decision_id:
          type: string
          nullable: true
        default_size:
          type: boolean
        memory_mib:
          type: integer
          nullable: true
        metadata:
          type: object
          additionalProperties:
            type: string
        outcome:
          type: string
          enum:
            - too_costly
            - failed_here
          nullable: true
        outcome_provider:
          type: string
          nullable: true
        price_per_hour:
          type: number
          x-semantic: costAmount
          nullable: true
        provider:
          type: string
        routed:
          type: boolean
        sandbox_id:
          type: string
        seconds:
          type: number
        size_class:
          type: string
          nullable: true
        started_at:
          type: string
        stopped_at:
          type: string
          nullable: true
        vcpus:
          type: number
          nullable: true
    db.SandboxRunDecision:
      type: object
      required:
        - baseline_provider
        - candidates
        - reason
      properties:
        baseline_provider:
          type: string
        candidates:
          type: array
          items:
            $ref: '#/components/schemas/db.SandboxRunCandidate'
        expected_seconds:
          type: number
          nullable: true
        memory_mib:
          type: integer
          nullable: true
        policy:
          type: string
          enum:
            - cheapest
            - balanced
            - fastest
          nullable: true
        reason:
          type: string
          enum:
            - cheapest
            - balanced
            - fastest
            - no_better_candidate
            - 'off'
            - no_size
            - baseline_not_priced
        vcpus:
          type: integer
          nullable: true
    db.SandboxRunCandidate:
      type: object
      required:
        - priced
        - provider
      properties:
        actual_cost_usd:
          type: number
          x-semantic: costAmount
          nullable: true
        billing_increment_seconds:
          type: integer
          nullable: true
        expected_cost:
          type: number
          x-semantic: costAmount
          nullable: true
        minimum_billed_seconds:
          type: integer
          nullable: true
        price_per_hour:
          type: number
          x-semantic: costAmount
          nullable: true
        priced:
          type: boolean
        provider:
          type: string
        result:
          type: string
          enum:
            - picked
            - eligible
            - not_priced
            - unreliable
            - too_slow
            - over_budget
            - no_start_time
            - no_saving
          nullable: true
        sku:
          type: string
        startup_p50_ms:
          type: number
          nullable: true
        success_rate:
          type: number
          nullable: true
  securitySchemes:
    BearerAuth:
      description: Enter "Bearer {token}"
      type: apiKey
      name: Authorization
      in: header

````

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