Runloop · Arazzo Workflow

Runloop Publish an Object Artifact

Version 1.0.0

Create a storage object, mark its upload complete to make it read-only, then generate a presigned download URL for it.

1 workflow 1 source API 1 provider
View Spec View on GitHub Artificial IntelligenceAI AgentsCoding AgentsSandboxesDevboxesCode ExecutionEvaluationBenchmarksSWE-BenchMCPSnapshotsMicroVMEnterpriseSOC 2ArazzoWorkflows

Provider

runloop-ai

Workflows

publish-object-artifact
Create an object, complete its upload, and get a download URL.
Creates a storage object, marks its upload complete, and generates a presigned download URL for it.
3 steps inputs: apiToken, contentType, durationSeconds, objectName outputs: downloadUrl, objectId, state
1
createObject
Create the object; it starts in the UPLOADING state.
2
completeUpload
Mark the object upload complete, transitioning it to the read-only state.
3
generateDownloadUrl
Generate a presigned download URL for the completed object.

Source API Descriptions

Arazzo Workflow Specification

Raw ↑
arazzo: 1.0.1
info:
  title: Runloop Publish an Object Artifact
  summary: Create a storage object, mark its upload complete to make it read-only, then generate a presigned download URL for it.
  description: >-
    Objects are Runloop's stored data artifacts. This workflow creates an object
    with a name and content type, completes its upload to transition it from the
    UPLOADING state into the read-only state, and then generates a time limited
    presigned download URL so the artifact can be retrieved. Every step spells out
    its request inline so the flow can be read and executed without opening the
    underlying OpenAPI description.
  version: 1.0.0
sourceDescriptions:
- name: objectsApi
  url: ../openapi/runloop-ai-objects-api-openapi.yml
  type: openapi
workflows:
- workflowId: publish-object-artifact
  summary: Create an object, complete its upload, and get a download URL.
  description: >-
    Creates a storage object, marks its upload complete, and generates a
    presigned download URL for it.
  inputs:
    type: object
    required:
    - apiToken
    - objectName
    - contentType
    properties:
      apiToken:
        type: string
        description: Runloop API bearer token.
      objectName:
        type: string
        description: The name of the object to create.
      contentType:
        type: string
        description: The content type of the object (one of unspecified, text, binary, gzip, tar, tgz).
      durationSeconds:
        type: integer
        description: Validity window in seconds for the generated download URL.
  steps:
  - stepId: createObject
    description: Create the object; it starts in the UPLOADING state.
    operationId: createObject
    parameters:
    - name: Authorization
      in: header
      value: Bearer $inputs.apiToken
    requestBody:
      contentType: application/json
      payload:
        name: $inputs.objectName
        content_type: $inputs.contentType
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      objectId: $response.body#/id
      state: $response.body#/state
  - stepId: completeUpload
    description: Mark the object upload complete, transitioning it to the read-only state.
    operationId: completeObject
    parameters:
    - name: Authorization
      in: header
      value: Bearer $inputs.apiToken
    - name: id
      in: path
      value: $steps.createObject.outputs.objectId
    requestBody:
      contentType: application/json
      payload: {}
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      state: $response.body#/state
  - stepId: generateDownloadUrl
    description: Generate a presigned download URL for the completed object.
    operationId: generateDownloadUrl
    parameters:
    - name: Authorization
      in: header
      value: Bearer $inputs.apiToken
    - name: id
      in: path
      value: $steps.createObject.outputs.objectId
    - name: duration_seconds
      in: query
      value: $inputs.durationSeconds
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      downloadUrl: $response.body#/download_url
  outputs:
    objectId: $steps.createObject.outputs.objectId
    state: $steps.completeUpload.outputs.state
    downloadUrl: $steps.generateDownloadUrl.outputs.downloadUrl

Work with this as data

Every workflow 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 arazzo workflows

4 MCP tools reach this
  • find_arazzoBrowse and filter every workflow in the catalog.
  • 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 workflow
curl "https://apis.io/api/v1/arazzo/runloop-ai-publish-object-artifact-workflow"
All arazzo workflows
curl "https://apis.io/api/v1/arazzo?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.