Runloop objects API

The objects API from Runloop — 8 operation(s) for objects.

Operations 9

POST /v1/objects Create an Object. #
GET /v1/objects List Objects. #
GET /v1/objects/list_public List Public Objects. #
GET /v1/objects/metadata/keys List available object metadata keys. #
GET /v1/objects/metadata/keys/{key}/values List values for a specific object metadata key. #
GET /v1/objects/{id} Get an Object. #
POST /v1/objects/{id}/complete Complete Object Upload. #
POST /v1/objects/{id}/delete Delete an Object. #
GET /v1/objects/{id}/download Generate Download URL for Object. #

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-objects-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-objects-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Runloop agents Objects 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: objects
paths:
  /v1/objects:
    post:
      tags:
      - objects
      summary: Create an Object.
      description: Create a new Object with content and metadata. The Object will be assigned a unique ID.
      operationId: createObject
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ObjectCreateParameters'
        required: false
      responses:
        '200':
          description: Object created successfully. Returns the Object with metadata.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ObjectView'
        '400':
          description: Bad request. Invalid content or parameters.
        '401':
          description: Unauthorized. Invalid or missing authentication.
        '403':
          description: Forbidden. Account does not have devbox capability.
        '500':
          description: Internal server error.
      deprecated: false
    get:
      tags:
      - objects
      summary: List Objects.
      description: List all Objects for the authenticated account with pagination support.
      operationId: listObjects
      parameters:
      - 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: name
        in: query
        description: Filter storage objects by name (partial match supported).
        required: false
        deprecated: false
        allowEmptyValue: true
        schema:
          type: string
      - name: content_type
        in: query
        description: Filter storage objects by content type.
        required: false
        deprecated: false
        allowEmptyValue: true
        schema:
          $ref: '#/components/schemas/ContentType'
      - name: state
        in: query
        description: Filter storage objects by state.
        required: false
        deprecated: false
        allowEmptyValue: true
        schema:
          $ref: '#/components/schemas/ObjectState'
      - name: search
        in: query
        description: Search by object ID or name.
        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: Successfully retrieved list of Objects.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ObjectListView'
        '401':
          description: Unauthorized. Invalid or missing authentication.
        '403':
          description: Forbidden. Account does not have devbox capability.
        '500':
          description: Internal server error.
      deprecated: false
  /v1/objects/list_public:
    get:
      tags:
      - objects
      summary: List Public Objects.
      description: List all public Objects with pagination support.
      operationId: listPublicObjects
      parameters:
      - 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: name
        in: query
        description: Filter storage objects by name (partial match supported).
        required: false
        deprecated: false
        allowEmptyValue: true
        schema:
          type: string
      - name: content_type
        in: query
        description: Filter storage objects by content type.
        required: false
        deprecated: false
        allowEmptyValue: true
        schema:
          $ref: '#/components/schemas/ContentType'
      - name: state
        in: query
        description: Filter storage objects by state.
        required: false
        deprecated: false
        allowEmptyValue: true
        schema:
          $ref: '#/components/schemas/ObjectState'
      - name: search
        in: query
        description: Search by object ID or name.
        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: Successfully retrieved list of public Objects.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ObjectListView'
        '401':
          description: Unauthorized. Invalid or missing authentication.
        '403':
          description: Forbidden. Account does not have devbox capability.
        '500':
          description: Internal server error.
      deprecated: false
  /v1/objects/metadata/keys:
    get:
      tags:
      - objects
      summary: List available object metadata keys.
      description: Returns a list of all available metadata keys that can be used for filtering objects.
      operationId: getObjectMetadataKeys
      parameters: []
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MetadataKeysView'
      deprecated: false
  /v1/objects/metadata/keys/{key}/values:
    get:
      tags:
      - objects
      summary: List values for a specific object metadata key.
      description: Returns a list of all values that exist for a specific metadata key across all objects.
      operationId: getObjectMetadataValues
      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/objects/{id}:
    get:
      tags:
      - objects
      summary: Get an Object.
      description: Retrieve a specific Object by its unique identifier.
      operationId: getObject
      parameters:
      - name: id
        in: path
        description: The unique identifier of the Object to retrieve.
        required: true
        deprecated: false
        allowEmptyValue: false
        schema:
          type: string
      responses:
        '200':
          description: Object retrieved successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ObjectView'
        '401':
          description: Unauthorized. Invalid or missing authentication.
        '403':
          description: Forbidden. Account does not have devbox capability.
        '404':
          description: Object not found.
        '500':
          description: Internal server error.
      deprecated: false
  /v1/objects/{id}/complete:
    post:
      tags:
      - objects
      summary: Complete Object Upload.
      description: Mark an Object's upload as complete, transitioning it from UPLOADING to READ-only state.
      operationId: completeObject
      parameters:
      - name: id
        in: path
        description: The unique identifier of the Object to complete.
        required: true
        deprecated: false
        allowEmptyValue: false
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EmptyRecord'
        required: false
      responses:
        '200':
          description: Object upload completed successfully. Returns the Object with updated state.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ObjectView'
        '401':
          description: Unauthorized. Invalid or missing authentication.
        '403':
          description: Forbidden. Account does not have devbox capability.
        '404':
          description: Object not found.
        '409':
          description: Object is not in UPLOADING state.
        '500':
          description: Internal server error.
      deprecated: false
  /v1/objects/{id}/delete:
    post:
      tags:
      - objects
      summary: Delete an Object.
      description: Delete an existing Object by ID. This action is irreversible and will remove the Object and all its metadata.
      operationId: deleteObject
      parameters:
      - name: id
        in: path
        description: The unique identifier of the Object to delete.
        required: true
        deprecated: false
        allowEmptyValue: false
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EmptyRecord'
        required: false
      responses:
        '200':
          description: Object deleted successfully. Returns the deleted Object metadata.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ObjectView'
        '401':
          description: Unauthorized. Invalid or missing authentication.
        '403':
          description: Forbidden. Account does not have devbox capability.
        '404':
          description: Object not found.
        '500':
          description: Internal server error.
      deprecated: false
  /v1/objects/{id}/download:
    get:
      tags:
      - objects
      summary: Generate Download URL for Object.
      description: Generate a presigned download URL for an Object. The URL will be valid for the specified duration.
      operationId: generateDownloadUrl
      parameters:
      - name: id
        in: path
        description: The unique identifier of the Object to generate download URL for.
        required: true
        deprecated: false
        allowEmptyValue: false
        schema:
          type: string
      - name: duration_seconds
        in: query
        description: 'Duration in seconds for the presigned URL validity (default: 3600).'
        required: false
        deprecated: false
        allowEmptyValue: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: Download URL generated successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ObjectDownloadUrlView'
        '400':
          description: Bad request. Object is in deleted state or invalid parameters.
        '401':
          description: Unauthorized. Invalid or missing authentication.
        '403':
          description: Forbidden. Account does not have devbox capability.
        '404':
          description: Object not found.
        '500':
          description: Internal server error.
      deprecated: false
components:
  schemas:
    MetadataKeysView:
      type: object
      additionalProperties: false
      properties:
        keys:
          type: array
          items:
            type: string
    ObjectState:
      type: string
      enum:
      - UPLOADING
      - READ_ONLY
      - DELETED
      - ERROR
    ObjectDownloadUrlView:
      type: object
      additionalProperties: false
      description: A response containing a presigned download URL for an Object.
      properties:
        download_url:
          type: string
          description: The presigned download URL for the Object.
      required:
      - download_url
    MetadataValuesView:
      type: object
      additionalProperties: false
      properties:
        key:
          type: string
        values:
          type: array
          items:
            type: string
    ObjectListView:
      type: object
      additionalProperties: false
      description: A paginated list of Objects.
      properties:
        objects:
          type: array
          items:
            $ref: '#/components/schemas/ObjectView'
          description: List of Object entities.
        has_more:
          type: boolean
          description: True if there are more results available beyond this page.
        total_count:
          type:
          - integer
          - 'null'
          format: int32
          description: Total number of Objects across all pages.
      required:
      - objects
      - has_more
    ContentType:
      type: string
      enum:
      - unspecified
      - text
      - binary
      - gzip
      - tar
      - tgz
    ObjectView:
      type: object
      additionalProperties: false
      description: An Object represents a stored data entity with metadata.
      properties:
        id:
          type: string
          description: The unique identifier of the Object.
        name:
          type: string
          description: The name of the Object.
        state:
          $ref: '#/components/schemas/ObjectState'
          description: The current state of the Object.
        size_bytes:
          type:
          - integer
          - 'null'
          format: int64
          description: The size of the Object content in bytes (null until uploaded).
        content_type:
          $ref: '#/components/schemas/ContentType'
          description: The content type of the Object.
        create_time_ms:
          type: integer
          format: int64
          description: The creation time of the Object in milliseconds since epoch.
        delete_after_time_ms:
          type:
          - integer
          - 'null'
          format: int64
          description: The time after which the Object will be deleted in milliseconds since epoch.
        metadata:
          type:
          - object
          - 'null'
          additionalProperties:
            type: string
          description: User defined metadata to attach to the Object for organization.
        upload_url:
          type:
          - string
          - 'null'
          description: Presigned URL for uploading content to S3 (only present on create).
      required:
      - id
      - name
      - state
      - content_type
      - create_time_ms
    EmptyRecord:
      type: object
      additionalProperties: false
      properties: {}
    ObjectCreateParameters:
      type: object
      additionalProperties: false
      description: Parameters required to create a new Object.
      properties:
        name:
          type: string
          description: The name of the Object.
        content_type:
          $ref: '#/components/schemas/ContentType'
          description: The content type of the Object.
        metadata:
          type:
          - object
          - 'null'
          additionalProperties:
            type: string
          description: User defined metadata to attach to the object for organization.
        ttl_ms:
          type:
          - integer
          - 'null'
          format: int64
          description: Optional lifetime of the object in milliseconds, after which the object is automatically deleted. Time starts ticking after the object is created.
      required:
      - name
      - content_type
  securitySchemes:
    bearerAuth:
      scheme: bearer
      type: http