Runloop Devbox-PersistenceTools API

The Devbox-PersistenceTools API from Runloop — 11 operation(s) for devbox-persistencetools.

Operations 11

GET /v1/devboxes/disk_snapshots List disk snapshots of a Devbox. #
GET /v1/devboxes/disk_snapshots/list_public List public disk snapshots. #
GET /v1/devboxes/disk_snapshots/metadata/keys List available snapshot metadata keys. #
GET /v1/devboxes/disk_snapshots/metadata/keys/{key}/values List values for a specific snapshot metadata key. #
GET /v1/devboxes/disk_snapshots/public/metadata/keys List available public snapshot metadata keys. #
GET /v1/devboxes/disk_snapshots/public/metadata/keys/{key}/values List values for a specific public snapshot metadata key. #
POST /v1/devboxes/disk_snapshots/{id} Update metadata of Disk Snapshot. #
POST /v1/devboxes/disk_snapshots/{id}/delete Delete a disk snapshot of a Devbox. #
GET /v1/devboxes/disk_snapshots/{id}/status Query the status of an asynchronous disk snapshot. #
POST /v1/devboxes/{id}/snapshot_disk Synchronously create a disk snapshot of a running Devbox. #
POST /v1/devboxes/{id}/snapshot_disk_async Start an asynchronous disk snapshot of a running Devbox. #

Documentation

Specifications

Schemas & Data

📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/runloop-ai/refs/heads/main/json-schema/runloop-devbox-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/runloop-ai/refs/heads/main/json-schema/runloop-execution-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/runloop-ai/refs/heads/main/json-schema/runloop-snapshot-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/runloop-ai/refs/heads/main/json-schema/runloop-tunnel-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/runloop-ai/refs/heads/main/json-schema/runloop-launch-parameters-schema.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/runloop-ai/refs/heads/main/json-structure/runloop-devbox-structure.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/runloop-ai/refs/heads/main/json-schema/runloop-blueprint-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/runloop-ai/refs/heads/main/json-schema/runloop-benchmark-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/runloop-ai/refs/heads/main/json-schema/runloop-benchmark-run-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/runloop-ai/refs/heads/main/json-schema/runloop-scenario-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/runloop-ai/refs/heads/main/json-schema/runloop-agent-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/runloop-ai/refs/heads/main/json-schema/runloop-axon-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/runloop-ai/refs/heads/main/json-schema/runloop-object-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/runloop-ai/refs/heads/main/json-schema/runloop-secret-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/runloop-ai/refs/heads/main/json-schema/runloop-network-policy-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/runloop-ai/refs/heads/main/json-schema/runloop-gateway-config-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/runloop-ai/refs/heads/main/json-schema/runloop-mcp-config-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/runloop-ai/refs/heads/main/json-schema/runloop-api-key-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/runloop-ai/refs/heads/main/json-schema/runloop-restricted-key-schema.json

Other Resources

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/runloop-ai-devbox-persistencetools-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

runloop-ai-devbox-persistencetools-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Runloop agents Devbox Persistence Tools API
  version: '0.1'
  description: Register, version, and mount Agents — packaged agent definitions sourced from Git, npm, pip, or storage objects that can be installed on Devboxes for fast, reproducible agent execution.
  contact:
    name: Runloop AI Support
    url: https://runloop.ai
    email: support@runloop.ai
servers:
- url: https://api.runloop.ai
  description: Runloop API
  variables: {}
security:
- bearerAuth: []
tags:
- name: Devbox-PersistenceTools
paths:
  /v1/devboxes/disk_snapshots:
    get:
      tags:
      - Devbox-PersistenceTools
      summary: List disk snapshots of a Devbox.
      description: List all snapshots of a Devbox while optionally filtering by Devbox ID, source Blueprint ID, and metadata.
      operationId: getDevboxDiskSnapshotList
      parameters:
      - name: devbox_id
        in: query
        description: Devbox ID to filter by.
        required: false
        deprecated: false
        allowEmptyValue: true
        schema:
          type: string
      - name: source_blueprint_id
        in: query
        description: Source Blueprint ID to filter snapshots by.
        required: false
        deprecated: false
        allowEmptyValue: true
        schema:
          type: string
      - name: metadata[key]
        in: query
        description: Filter snapshots by metadata key-value pair. Can be used multiple times for different keys.
        required: false
        deprecated: false
        allowEmptyValue: true
        schema:
          type: string
      - name: metadata[key][in]
        in: query
        description: Filter snapshots by metadata key with multiple possible values (OR condition).
        required: false
        deprecated: false
        allowEmptyValue: true
        schema:
          type: string
      - name: limit
        in: query
        description: The limit of items to return. Default is 20. Max is 5000.
        required: false
        deprecated: false
        allowEmptyValue: true
        schema:
          type: integer
          format: int32
      - name: starting_after
        in: query
        description: Load the next page of data starting after the item with the given ID.
        required: false
        deprecated: false
        allowEmptyValue: true
        schema:
          type: string
      - name: include_total_count
        in: query
        description: If true (default), includes total_count in the response. Set to false to skip the count query for better performance on large datasets.
        required: false
        deprecated: false
        allowEmptyValue: true
        schema:
          type: boolean
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DevboxDiskSnapshotListView'
        '404':
          description: Devbox not found.
      deprecated: false
  /v1/devboxes/disk_snapshots/list_public:
    get:
      tags:
      - Devbox-PersistenceTools
      summary: List public disk snapshots.
      description: List all public disk snapshots that are available to all users.
      operationId: listPublicSnapshots
      parameters:
      - name: devbox_id
        in: query
        description: Devbox ID to filter by.
        required: false
        deprecated: false
        allowEmptyValue: true
        schema:
          type: string
      - name: source_blueprint_id
        in: query
        description: Source Blueprint ID to filter snapshots by.
        required: false
        deprecated: false
        allowEmptyValue: true
        schema:
          type: string
      - name: metadata[key]
        in: query
        description: Filter snapshots by metadata key-value pair. Can be used multiple times for different keys.
        required: false
        deprecated: false
        allowEmptyValue: true
        schema:
          type: string
      - name: metadata[key][in]
        in: query
        description: Filter snapshots by metadata key with multiple possible values (OR condition).
        required: false
        deprecated: false
        allowEmptyValue: true
        schema:
          type: string
      - name: limit
        in: query
        description: The limit of items to return. Default is 20. Max is 5000.
        required: false
        deprecated: false
        allowEmptyValue: true
        schema:
          type: integer
          format: int32
      - name: starting_after
        in: query
        description: Load the next page of data starting after the item with the given ID.
        required: false
        deprecated: false
        allowEmptyValue: true
        schema:
          type: string
      - name: include_total_count
        in: query
        description: If true (default), includes total_count in the response. Set to false to skip the count query for better performance on large datasets.
        required: false
        deprecated: false
        allowEmptyValue: true
        schema:
          type: boolean
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DevboxDiskSnapshotListView'
      deprecated: false
  /v1/devboxes/disk_snapshots/metadata/keys:
    get:
      tags:
      - Devbox-PersistenceTools
      summary: List available snapshot metadata keys.
      description: Returns a list of all available metadata keys that can be used for filtering snapshots.
      operationId: getSnapshotMetadataKeys
      parameters: []
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MetadataKeysView'
      deprecated: false
  /v1/devboxes/disk_snapshots/metadata/keys/{key}/values:
    get:
      tags:
      - Devbox-PersistenceTools
      summary: List values for a specific snapshot metadata key.
      description: Returns a list of all values that exist for a specific metadata key across all snapshots.
      operationId: getSnapshotMetadataValues
      parameters:
      - name: key
        in: path
        description: The metadata key to get values for.
        required: true
        deprecated: false
        allowEmptyValue: false
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MetadataValuesView'
        '400':
          description: Invalid metadata key provided.
      deprecated: false
  /v1/devboxes/disk_snapshots/public/metadata/keys:
    get:
      tags:
      - Devbox-PersistenceTools
      summary: List available public snapshot metadata keys.
      description: Returns a list of all available metadata keys from public snapshots only that can be used for filtering.
      operationId: getPublicSnapshotMetadataKeys
      parameters: []
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MetadataKeysView'
      deprecated: false
  /v1/devboxes/disk_snapshots/public/metadata/keys/{key}/values:
    get:
      tags:
      - Devbox-PersistenceTools
      summary: List values for a specific public snapshot metadata key.
      description: Returns a list of all values that exist for a specific metadata key across all public snapshots only.
      operationId: getPublicSnapshotMetadataValues
      parameters:
      - name: key
        in: path
        description: The metadata key to get values for from public snapshots.
        required: true
        deprecated: false
        allowEmptyValue: false
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MetadataValuesView'
        '400':
          description: Invalid metadata key provided.
      deprecated: false
  /v1/devboxes/disk_snapshots/{id}:
    post:
      tags:
      - Devbox-PersistenceTools
      summary: Update metadata of Disk Snapshot.
      description: Updates disk snapshot metadata via update vs patch. The entire metadata will be replaced.
      operationId: updateDiskSnapshot
      parameters:
      - name: id
        in: path
        description: The Snapshot ID.
        required: true
        deprecated: false
        allowEmptyValue: false
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DevboxSnapshotRequest'
        required: false
      responses:
        '200':
          description: Snapshot created successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DevboxDiskSnapshotView'
        '404':
          description: Devbox not found.
      deprecated: false
  /v1/devboxes/disk_snapshots/{id}/delete:
    post:
      tags:
      - Devbox-PersistenceTools
      summary: Delete a disk snapshot of a Devbox.
      description: Delete a previously taken disk snapshot of a Devbox.
      operationId: deleteSnapshot
      parameters:
      - name: id
        in: path
        description: The ID of the snapshot.
        required: true
        deprecated: false
        allowEmptyValue: false
        schema:
          type: string
      responses:
        '200':
          description: Snapshot deleted successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmptyRecord'
        '404':
          description: Snapshot not found.
        '409':
          description: Only successfully created snapshots can be deleted.
      deprecated: false
  /v1/devboxes/disk_snapshots/{id}/status:
    get:
      tags:
      - Devbox-PersistenceTools
      summary: Query the status of an asynchronous disk snapshot.
      description: Get the current status of an asynchronous disk snapshot operation, including whether it is still in progress and any error messages if it failed.
      operationId: queryDiskSnapshotAsync
      parameters:
      - name: id
        in: path
        description: The Snapshot ID.
        required: true
        deprecated: false
        allowEmptyValue: false
        schema:
          type: string
      responses:
        '200':
          description: Snapshot status retrieved successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DevboxSnapshotAsyncStatusView'
        '404':
          description: Snapshot not found.
      deprecated: false
  /v1/devboxes/{id}/snapshot_disk:
    post:
      tags:
      - Devbox-PersistenceTools
      summary: Synchronously create a disk snapshot of a running Devbox.
      description: Create a disk snapshot of a devbox with the specified name and metadata to enable launching future Devboxes with the same disk state.
      operationId: createDiskSnapshot
      parameters:
      - name: id
        in: path
        description: The Devbox ID.
        required: true
        deprecated: false
        allowEmptyValue: false
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DevboxSnapshotRequest'
        required: false
      responses:
        '200':
          description: Snapshot created successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DevboxDiskSnapshotView'
        '404':
          description: Devbox not found.
      deprecated: false
  /v1/devboxes/{id}/snapshot_disk_async:
    post:
      tags:
      - Devbox-PersistenceTools
      summary: Start an asynchronous disk snapshot of a running Devbox.
      description: Start an asynchronous disk snapshot of a devbox with the specified name and metadata. The snapshot operation will continue in the background and can be monitored using the query endpoint.
      operationId: createDiskSnapshotAsync
      parameters:
      - name: id
        in: path
        description: The Devbox ID.
        required: true
        deprecated: false
        allowEmptyValue: false
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DevboxSnapshotRequest'
        required: false
      responses:
        '200':
          description: Snapshot operation started successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DevboxDiskSnapshotView'
        '404':
          description: Devbox not found.
      deprecated: false
components:
  schemas:
    MetadataKeysView:
      type: object
      additionalProperties: false
      properties:
        keys:
          type: array
          items:
            type: string
    DevboxSnapshotStatus:
      type: string
      enum:
      - in_progress
      - error
      - complete
      - deleted
    MetadataValuesView:
      type: object
      additionalProperties: false
      properties:
        key:
          type: string
        values:
          type: array
          items:
            type: string
    DevboxSnapshotAsyncStatusView:
      type: object
      additionalProperties: false
      properties:
        status:
          $ref: '#/components/schemas/DevboxSnapshotStatus'
          description: The current status of the snapshot operation.
        snapshot:
          $ref: '#/components/schemas/DevboxDiskSnapshotView'
          description: The snapshot details if the operation completed successfully.
        error_message:
          type:
          - string
          - 'null'
          description: Error message if the operation failed.
      required:
      - status
    DevboxSnapshotRequest:
      type: object
      additionalProperties: false
      properties:
        name:
          type:
          - string
          - 'null'
          description: (Optional) A user specified name to give the snapshot
        metadata:
          type:
          - object
          - 'null'
          additionalProperties:
            type: string
          description: (Optional) Metadata used to describe the snapshot
        commit_message:
          type:
          - string
          - 'null'
          description: (Optional) Commit message associated with the snapshot (max 1000 characters)
    DevboxDiskSnapshotView:
      type: object
      additionalProperties: false
      properties:
        id:
          type: string
          description: The unique identifier of the snapshot.
        name:
          type:
          - string
          - 'null'
          description: (Optional) The custom name of the snapshot.
        create_time_ms:
          type: integer
          format: int64
          description: Creation time of the Snapshot (Unix timestamp milliseconds).
        metadata:
          type: object
          additionalProperties:
            type: string
          description: User defined metadata associated with the snapshot.
        source_devbox_id:
          type: string
          description: The source Devbox ID this snapshot was created from.
        source_blueprint_id:
          type:
          - string
          - 'null'
          description: (Optional) The source Blueprint ID this snapshot was created from.
        commit_message:
          type:
          - string
          - 'null'
          description: (Optional) The commit message of the snapshot (max 1000 characters).
        size_bytes:
          type:
          - integer
          - 'null'
          format: int64
          description: (Optional) The size of the snapshot in bytes, relative to the base blueprint.
      required:
      - id
      - create_time_ms
      - metadata
      - source_devbox_id
    DevboxDiskSnapshotListView:
      type: object
      additionalProperties: false
      properties:
        snapshots:
          type: array
          items:
            $ref: '#/components/schemas/DevboxDiskSnapshotView'
          description: List of snapshots matching filter.
        has_more:
          type: boolean
        total_count:
          type:
          - integer
          - 'null'
          format: int32
      required:
      - snapshots
      - has_more
    EmptyRecord:
      type: object
      additionalProperties: false
      properties: {}
  securitySchemes:
    bearerAuth:
      scheme: bearer
      type: http