Agent Diff Sandboxes API

The Sandboxes API from Agent Diff — 2 operation(s) for sandboxes.

OpenAPI Specification

agent-diff-sandboxes-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Agent Diff Sandbox Diffs Sandboxes API
  description: The Agent Diff Sandbox API creates isolated, ephemeral replicas of third-party APIs such as Slack and Linear. Agents interact with these sandboxes to produce deterministic state-change diffs without side effects, rate limits, or real API calls.
  version: '1.0'
  contact:
    name: Agent Diff
    url: https://www.agentdiff.dev/
servers:
- url: https://api.agentdiff.dev/v1
  description: Agent Diff API
security:
- bearerAuth: []
tags:
- name: Sandboxes
paths:
  /sandboxes:
    post:
      operationId: create-sandbox
      summary: Agent Diff Create Sandbox
      description: Create an isolated sandbox replica of a third-party API (e.g., Slack, Linear) for agent testing.
      tags:
      - Sandboxes
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SandboxCreateRequest'
            examples:
              CreateSandboxRequest:
                summary: Create a Slack sandbox
                value:
                  api: slack
                  scenario: customer-support-workflow
                  seed_data:
                    channels:
                    - name: support
                      members:
                      - U001
                      - U002
                    users:
                    - id: U001
                      name: Alice
                    - id: U002
                      name: Bob
                  ttl: 3600
                x-microcks-default: true
      responses:
        '201':
          description: Sandbox created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Sandbox'
              examples:
                CreateSandboxResponse:
                  summary: Sandbox creation response
                  value:
                    id: sbox_abc123
                    api: slack
                    scenario: customer-support-workflow
                    status: ready
                    base_url: https://sbox_abc123.sandbox.agentdiff.dev
                    created_at: '2026-04-19T10:00:00Z'
                    expires_at: '2026-04-19T11:00:00Z'
                  x-microcks-default: true
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                create-sandbox400Example:
                  summary: Default create-sandbox 400 response
                  x-microcks-default: true
                  value:
                    error: example_value
                    message: example_value
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    get:
      operationId: list-sandboxes
      summary: Agent Diff List Sandboxes
      description: List all active sandboxes for the account.
      tags:
      - Sandboxes
      parameters:
      - name: status
        in: query
        schema:
          type: string
          enum:
          - ready
          - active
          - expired
        description: Filter by sandbox status.
        example: ready
      - name: api
        in: query
        schema:
          type: string
        description: Filter by sandboxed API (e.g., slack, linear).
        example: example_value
      - name: limit
        in: query
        schema:
          type: integer
          default: 100
        description: Maximum number of results.
        example: 1
      - name: offset
        in: query
        schema:
          type: integer
          default: 0
        description: Pagination offset.
        example: 1
      responses:
        '200':
          description: List of sandboxes
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SandboxList'
              examples:
                ListSandboxesResponse:
                  summary: List of sandboxes
                  value:
                    sandboxes:
                    - id: sbox_abc123
                      api: slack
                      status: ready
                      created_at: '2026-04-19T10:00:00Z'
                    total: 1
                  x-microcks-default: true
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /sandboxes/{sandboxId}:
    get:
      operationId: get-sandbox
      summary: Agent Diff Get Sandbox
      description: Retrieve details of a specific sandbox including its current status and configuration.
      tags:
      - Sandboxes
      parameters:
      - name: sandboxId
        in: path
        required: true
        schema:
          type: string
        description: Sandbox identifier.
        example: example_value
      responses:
        '200':
          description: Sandbox details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Sandbox'
              examples:
                GetSandboxResponse:
                  summary: Sandbox details
                  value:
                    id: sbox_abc123
                    api: slack
                    scenario: customer-support-workflow
                    status: active
                    base_url: https://sbox_abc123.sandbox.agentdiff.dev
                    created_at: '2026-04-19T10:00:00Z'
                    expires_at: '2026-04-19T11:00:00Z'
                  x-microcks-default: true
        '404':
          description: Sandbox not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                get-sandbox404Example:
                  summary: Default get-sandbox 404 response
                  x-microcks-default: true
                  value:
                    error: example_value
                    message: example_value
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    delete:
      operationId: delete-sandbox
      summary: Agent Diff Delete Sandbox
      description: Terminate and delete a sandbox, freeing all associated resources.
      tags:
      - Sandboxes
      parameters:
      - name: sandboxId
        in: path
        required: true
        schema:
          type: string
        description: Sandbox identifier.
        example: example_value
      responses:
        '204':
          description: Sandbox deleted
        '404':
          description: Sandbox not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                delete-sandbox404Example:
                  summary: Default delete-sandbox 404 response
                  x-microcks-default: true
                  value:
                    error: example_value
                    message: example_value
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
components:
  schemas:
    SandboxCreateRequest:
      type: object
      required:
      - api
      properties:
        api:
          type: string
          description: The third-party API to sandbox (e.g., slack, linear, github).
          example: example_value
        scenario:
          type: string
          description: Named scenario for the sandbox seed data.
          example: example_value
        seed_data:
          type: object
          description: Initial state data to populate the sandbox.
          example: {}
        ttl:
          type: integer
          description: Time-to-live in seconds before the sandbox expires.
          default: 3600
          example: 1
    Sandbox:
      type: object
      properties:
        id:
          type: string
          description: Unique sandbox identifier.
          example: '500123'
        api:
          type: string
          description: The third-party API being sandboxed.
          example: example_value
        scenario:
          type: string
          description: Scenario name for this sandbox.
          example: example_value
        status:
          type: string
          enum:
          - ready
          - active
          - expired
          - deleted
          description: Current sandbox status.
          example: ready
        base_url:
          type: string
          description: Base URL for interacting with the sandbox replica.
          example: https://example.com
        created_at:
          type: string
          format: date-time
          description: When the sandbox was created.
          example: '2025-03-15T14:30:00Z'
        expires_at:
          type: string
          format: date-time
          description: When the sandbox will expire.
          example: '2025-03-15T14:30:00Z'
    SandboxList:
      type: object
      properties:
        sandboxes:
          type: array
          items:
            $ref: '#/components/schemas/Sandbox'
          example:
          - example_value
        total:
          type: integer
          description: Total number of matching sandboxes.
          example: 1
    Error:
      type: object
      properties:
        error:
          type: string
          description: Error code.
          example: example_value
        message:
          type: string
          description: Human-readable error message.
          example: example_value
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: Bearer token authentication for Agent Diff API.