Runloop · Capability

Runloop Objects (objects)

Runloop objects capability covering one Runloop business surface. 9 operations.

Runloop Objects (objects) is a Naftiko capability published by Runloop, one of 17 capabilities the APIs.io network indexes for this provider. It bundles 9 operations across the GET and POST methods rooted at /v1/objects.

The capability includes 6 read-only operations and 3 state-changing operations. Lead operation: Create an Object. Can be deployed as a REST endpoint, MCP tool, or Agent Skill via Naftiko.

Tagged areas include Runloop, Objects, AI Agents, and Sandboxes.

Run with Naftiko RunloopObjectsAI AgentsSandboxes

What You Can Do

POST
Createobject — Create an Object.
/v1/objects
GET
Listobjects — List Objects.
/v1/objects
GET
Listpublicobjects — List Public Objects.
/v1/objects/list_public
GET
Getobjectmetadatakeys — List available object metadata keys.
/v1/objects/metadata/keys
GET
Getobjectmetadatavalues — List values for a specific object metadata key.
/v1/objects/metadata/keys/{key}/values
GET
Getobject — Get an Object.
/v1/objects/{id}
POST
Completeobject — Complete Object Upload.
/v1/objects/{id}/complete
POST
Deleteobject — Delete an Object.
/v1/objects/{id}/delete
GET
Generatedownloadurl — Generate Download URL for Object.
/v1/objects/{id}/download

MCP Tools

runloop-objects-objects-createObject

Create an Object.

runloop-objects-objects-listObjects

List Objects.

read-only idempotent
runloop-objects-objects-listPublicObjects

List Public Objects.

read-only idempotent
runloop-objects-objects-getObjectMetadataKeys

List available object metadata keys.

read-only idempotent
runloop-objects-objects-getObjectMetadataValues

List values for a specific object metadata key.

read-only idempotent
runloop-objects-objects-getObject

Get an Object.

read-only idempotent
runloop-objects-objects-completeObject

Complete Object Upload.

runloop-objects-objects-deleteObject

Delete an Object.

runloop-objects-objects-generateDownloadUrl

Generate Download URL for Object.

read-only idempotent

Capability Spec

objects-objects.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Runloop Objects (objects)
  description: Runloop objects capability covering one Runloop business surface. 9 operations.
  tags:
  - Runloop
  - Objects
  - AI Agents
  - Sandboxes
  created: '2026-05-25'
  modified: '2026-05-25'
binds:
- namespace: env
  keys:
    RUNLOOP_API_KEY: RUNLOOP_API_KEY
capability:
  consumes:
  - type: http
    namespace: objects-objects
    baseUri: https://api.runloop.ai
    description: Runloop objects business capability. Self-contained, no shared references.
    resources:
    - name: v1-objects
      path: /v1/objects
      operations:
      - name: createObject
        method: POST
        description: Create an Object.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
      - name: listObjects
        method: GET
        description: List Objects.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: limit
          in: query
          type: integer
          description: The limit of items to return. Default is 20. Max is 5000.
          required: false
        - name: starting_after
          in: query
          type: string
          description: Load the next page of data starting after the item with the given ID.
          required: false
        - name: name
          in: query
          type: string
          description: Filter storage objects by name (partial match supported).
          required: false
        - name: content_type
          in: query
          type: string
          description: Filter storage objects by content type.
          required: false
        - name: state
          in: query
          type: string
          description: Filter storage objects by state.
          required: false
        - name: search
          in: query
          type: string
          description: Search by object ID or name.
          required: false
        - name: include_total_count
          in: query
          type: boolean
          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
    - name: v1-objects-list-public
      path: /v1/objects/list_public
      operations:
      - name: listPublicObjects
        method: GET
        description: List Public Objects.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: limit
          in: query
          type: integer
          description: The limit of items to return. Default is 20. Max is 5000.
          required: false
        - name: starting_after
          in: query
          type: string
          description: Load the next page of data starting after the item with the given ID.
          required: false
        - name: name
          in: query
          type: string
          description: Filter storage objects by name (partial match supported).
          required: false
        - name: content_type
          in: query
          type: string
          description: Filter storage objects by content type.
          required: false
        - name: state
          in: query
          type: string
          description: Filter storage objects by state.
          required: false
        - name: search
          in: query
          type: string
          description: Search by object ID or name.
          required: false
        - name: include_total_count
          in: query
          type: boolean
          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
    - name: v1-objects-metadata-keys
      path: /v1/objects/metadata/keys
      operations:
      - name: getObjectMetadataKeys
        method: GET
        description: List available object metadata keys.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: _
          in: query
          type: string
          description: ''
          required: false
    - name: v1-objects-metadata-keys-key-values
      path: /v1/objects/metadata/keys/{key}/values
      operations:
      - name: getObjectMetadataValues
        method: GET
        description: List values for a specific object metadata key.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: key
          in: path
          type: string
          description: The metadata key to get values for.
          required: true
    - name: v1-objects-id
      path: /v1/objects/{id}
      operations:
      - name: getObject
        method: GET
        description: Get an Object.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: The unique identifier of the Object to retrieve.
          required: true
    - name: v1-objects-id-complete
      path: /v1/objects/{id}/complete
      operations:
      - name: completeObject
        method: POST
        description: Complete Object Upload.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: The unique identifier of the Object to complete.
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: v1-objects-id-delete
      path: /v1/objects/{id}/delete
      operations:
      - name: deleteObject
        method: POST
        description: Delete an Object.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: The unique identifier of the Object to delete.
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: v1-objects-id-download
      path: /v1/objects/{id}/download
      operations:
      - name: generateDownloadUrl
        method: GET
        description: Generate Download URL for Object.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: The unique identifier of the Object to generate download URL for.
          required: true
        - name: duration_seconds
          in: query
          type: integer
          description: 'Duration in seconds for the presigned URL validity (default: 3600).'
          required: false
    authentication:
      type: bearer
      value: '{{env.RUNLOOP_API_KEY}}'
      placement: header
  exposes:
  - type: rest
    namespace: objects-objects-rest
    port: 8080
    description: REST adapter for Runloop objects. One Spectral-compliant resource per consumed operation.
    resources:
    - path: /v1/objects
      name: v1-objects
      description: REST surface for v1-objects.
      operations:
      - method: POST
        name: createObject
        description: Create an Object.
        call: objects-objects.createObject
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
      - method: GET
        name: listObjects
        description: List Objects.
        call: objects-objects.listObjects
        with:
          limit: rest.params.limit
          starting_after: rest.params.starting_after
          name: rest.params.name
          content_type: rest.params.content_type
          state: rest.params.state
          search: rest.params.search
          include_total_count: rest.params.include_total_count
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/objects/list_public
      name: v1-objects-list-public
      description: REST surface for v1-objects-list-public.
      operations:
      - method: GET
        name: listPublicObjects
        description: List Public Objects.
        call: objects-objects.listPublicObjects
        with:
          limit: rest.params.limit
          starting_after: rest.params.starting_after
          name: rest.params.name
          content_type: rest.params.content_type
          state: rest.params.state
          search: rest.params.search
          include_total_count: rest.params.include_total_count
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/objects/metadata/keys
      name: v1-objects-metadata-keys
      description: REST surface for v1-objects-metadata-keys.
      operations:
      - method: GET
        name: getObjectMetadataKeys
        description: List available object metadata keys.
        call: objects-objects.getObjectMetadataKeys
        with:
          _: rest.params._
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/objects/metadata/keys/{key}/values
      name: v1-objects-metadata-keys-key-values
      description: REST surface for v1-objects-metadata-keys-key-values.
      operations:
      - method: GET
        name: getObjectMetadataValues
        description: List values for a specific object metadata key.
        call: objects-objects.getObjectMetadataValues
        with:
          key: rest.params.key
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/objects/{id}
      name: v1-objects-id
      description: REST surface for v1-objects-id.
      operations:
      - method: GET
        name: getObject
        description: Get an Object.
        call: objects-objects.getObject
        with:
          id: rest.params.id
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/objects/{id}/complete
      name: v1-objects-id-complete
      description: REST surface for v1-objects-id-complete.
      operations:
      - method: POST
        name: completeObject
        description: Complete Object Upload.
        call: objects-objects.completeObject
        with:
          id: rest.params.id
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/objects/{id}/delete
      name: v1-objects-id-delete
      description: REST surface for v1-objects-id-delete.
      operations:
      - method: POST
        name: deleteObject
        description: Delete an Object.
        call: objects-objects.deleteObject
        with:
          id: rest.params.id
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/objects/{id}/download
      name: v1-objects-id-download
      description: REST surface for v1-objects-id-download.
      operations:
      - method: GET
        name: generateDownloadUrl
        description: Generate Download URL for Object.
        call: objects-objects.generateDownloadUrl
        with:
          id: rest.params.id
          duration_seconds: rest.params.duration_seconds
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: objects-objects-mcp
    port: 9090
    transport: http
    description: MCP adapter for Runloop objects. One tool per consumed operation.
    tools:
    - name: runloop-objects-objects-createObject
      description: Create an Object.
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: objects-objects.createObject
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: runloop-objects-objects-listObjects
      description: List Objects.
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: objects-objects.listObjects
      with:
        limit: tools.limit
        starting_after: tools.starting_after
        name: tools.name
        content_type: tools.content_type
        state: tools.state
        search: tools.search
        include_total_count: tools.include_total_count
      outputParameters:
      - type: object
        mapping: $.
    - name: runloop-objects-objects-listPublicObjects
      description: List Public Objects.
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: objects-objects.listPublicObjects
      with:
        limit: tools.limit
        starting_after: tools.starting_after
        name: tools.name
        content_type: tools.content_type
        state: tools.state
        search: tools.search
        include_total_count: tools.include_total_count
      outputParameters:
      - type: object
        mapping: $.
    - name: runloop-objects-objects-getObjectMetadataKeys
      description: List available object metadata keys.
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: objects-objects.getObjectMetadataKeys
      with:
        _: tools._
      outputParameters:
      - type: object
        mapping: $.
    - name: runloop-objects-objects-getObjectMetadataValues
      description: List values for a specific object metadata key.
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: objects-objects.getObjectMetadataValues
      with:
        key: tools.key
      outputParameters:
      - type: object
        mapping: $.
    - name: runloop-objects-objects-getObject
      description: Get an Object.
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: objects-objects.getObject
      with:
        id: tools.id
      outputParameters:
      - type: object
        mapping: $.
    - name: runloop-objects-objects-completeObject
      description: Complete Object Upload.
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: objects-objects.completeObject
      with:
        id: tools.id
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: runloop-objects-objects-deleteObject
      description: Delete an Object.
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: objects-objects.deleteObject
      with:
        id: tools.id
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: runloop-objects-objects-generateDownloadUrl
      description: Generate Download URL for Object.
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: objects-objects.generateDownloadUrl
      with:
        id: tools.id
        duration_seconds: tools.duration_seconds
      outputParameters:
      - type: object
        mapping: $.