Index Commerce · Schema

Run

CompanyE-CommercePlatformStorefrontAnalytics

Properties

Name Type Description
runId string Unique identifier for this run
toolId string ID of the tool that was executed
tool object Full tool configuration that was executed
systemIds array Systems used by the run.
status string Execution status: - running: Execution in progress - success: Completed successfully - failed: Failed due to error - aborted: Cancelled by user or system
toolPayload object The inputs provided when running the tool
data object Tool execution result data when available. Large persisted results may be stored separately; use GET /runs/{runId}/results when `resultStorageUri` is present.
error string Error message (only present when status is failed or aborted)
stepResults array Per-step status and error details. A synchronous run response includes step data only when `includeStepResultData` is true; stored run records omit step data.
options object Execution options that were used for this run
requestSource string Source identifier for where the run was initiated
traceId string Trace ID for this run (for debugging and log correlation)
resultStorageUri string Internal storage URI for full results, when separate result storage was used. Use GET /runs/{runId}/results to fetch the full data.
userId string User who triggered this run
metadata object
fileArtifacts array Files promoted as downloadable artifacts by the tool run. Only present when a step with `outputFile: true` produced file output. In list responses, includes metadata only (no downloadUrl). In single-r
View JSON Schema on GitHub

JSON Schema

superglue-run-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/superglue/main/json-schema/superglue-run-schema.json",
  "title": "Run",
  "x-generated": "2026-10-19",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/superglue-openapi.yml#/components/schemas/Run",
  "type": "object",
  "required": [
    "runId",
    "toolId",
    "status",
    "metadata"
  ],
  "properties": {
    "runId": {
      "type": "string",
      "description": "Unique identifier for this run"
    },
    "toolId": {
      "type": "string",
      "description": "ID of the tool that was executed"
    },
    "tool": {
      "$ref": "#/$defs/Tool",
      "description": "Full tool configuration that was executed"
    },
    "systemIds": {
      "type": "array",
      "description": "Systems used by the run.",
      "items": {
        "type": "string"
      }
    },
    "status": {
      "type": "string",
      "enum": [
        "running",
        "success",
        "failed",
        "aborted"
      ],
      "description": "Execution status:\n- running: Execution in progress\n- success: Completed successfully\n- failed: Failed due to error\n- aborted: Cancelled by user or system\n"
    },
    "toolPayload": {
      "type": "object",
      "description": "The inputs provided when running the tool",
      "additionalProperties": true
    },
    "data": {
      "description": "Tool execution result data when available. Large persisted results may be stored separately;\nuse GET /runs/{runId}/results when `resultStorageUri` is present.\n",
      "allOf": [
        {
          "$ref": "#/$defs/AnyValue"
        }
      ]
    },
    "error": {
      "type": "string",
      "description": "Error message (only present when status is failed or aborted)"
    },
    "stepResults": {
      "type": "array",
      "description": "Per-step status and error details. A synchronous run response includes step data only\nwhen `includeStepResultData` is true; stored run records omit step data.\n",
      "items": {
        "$ref": "#/$defs/StepResult"
      }
    },
    "options": {
      "type": "object",
      "description": "Execution options that were used for this run",
      "additionalProperties": true
    },
    "requestSource": {
      "type": "string",
      "description": "Source identifier for where the run was initiated",
      "enum": [
        "api",
        "frontend",
        "agent",
        "scheduler",
        "mcp",
        "tool-chain",
        "webhook",
        "cli"
      ]
    },
    "traceId": {
      "type": "string",
      "description": "Trace ID for this run (for debugging and log correlation)"
    },
    "resultStorageUri": {
      "type": "string",
      "description": "Internal storage URI for full results, when separate result storage was used.\nUse GET /runs/{runId}/results to fetch the full data.\n"
    },
    "userId": {
      "type": "string",
      "description": "User who triggered this run"
    },
    "metadata": {
      "type": "object",
      "required": [
        "startedAt"
      ],
      "properties": {
        "startedAt": {
          "type": "string",
          "format": "date-time"
        },
        "completedAt": {
          "type": "string",
          "format": "date-time",
          "description": "Only present when run has finished (success, failed, or aborted)"
        },
        "durationMs": {
          "type": "integer"
        },
        "executionKind": {
          "type": "string",
          "enum": [
            "full",
            "draft",
            "single-step"
          ],
          "default": "full"
        },
        "parentToolId": {
          "type": "string",
          "description": "Parent saved tool for draft and single-step executions."
        },
        "warnings": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Non-fatal run warnings, e.g. removed reserved inputs, persistent tool state write rejections, or concurrent-run conflicts."
        },
        "clientInfo": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string"
            },
            "version": {
              "type": "string"
            },
            "userAgent": {
              "type": "string"
            }
          }
        }
      }
    },
    "fileArtifacts": {
      "type": "array",
      "description": "Files promoted as downloadable artifacts by the tool run.\nOnly present when a step with `outputFile: true` produced file output.\nIn list responses, includes metadata only (no downloadUrl).\nIn single-run responses (GET /runs/{runId}), includes presigned download URLs (1 hour TTL).\nUse GET /runs/{runId}/files to get fresh download URLs.\n",
      "items": {
        "$ref": "#/$defs/FileArtifact"
      }
    }
  },
  "$defs": {
    "AnyValue": {
      "description": "Any valid JSON value."
    },
    "FileArtifact": {
      "type": "object",
      "description": "A file promoted as downloadable output by a tool step.",
      "required": [
        "fileKey",
        "filename",
        "contentType",
        "size"
      ],
      "properties": {
        "fileKey": {
          "type": "string",
          "description": "Unique key identifying this file within the run"
        },
        "filename": {
          "type": "string",
          "description": "Original filename"
        },
        "contentType": {
          "type": "string",
          "description": "MIME type of the file"
        },
        "size": {
          "type": "integer",
          "description": "File size in bytes"
        },
        "downloadUrl": {
          "type": "string",
          "format": "uri",
          "description": "Pre-signed download URL, valid for 1 hour. Included in single-run and file-specific endpoints, omitted in list responses."
        }
      }
    },
    "HttpResponseMetadata": {
      "type": "object",
      "description": "Response metadata for an HTTP request step. Header names are lowercase; `set-cookie` values are arrays.",
      "required": [
        "statusCode",
        "headers"
      ],
      "properties": {
        "statusCode": {
          "type": "integer",
          "description": "HTTP response status code"
        },
        "headers": {
          "type": "object",
          "description": "Response headers keyed by lowercase name",
          "additionalProperties": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            ]
          }
        },
        "omittedHeaderCount": {
          "type": "integer",
          "description": "Number of headers omitted from a size-bounded view"
        }
      }
    },
    "Pagination": {
      "type": "object",
      "description": "Pagination configuration (HTTP/HTTPS only, not applicable to Postgres/FTP)",
      "required": [
        "type"
      ],
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "offsetBased",
            "pageBased",
            "cursorBased",
            "disabled"
          ]
        },
        "pageSize": {
          "type": "string",
          "description": "Number of items per page. Becomes available as <<(sourceData) => sourceData.limit>> in request templates."
        },
        "cursorPath": {
          "type": "string",
          "description": "JSONPath to extract next page cursor from response body (e.g. \"meta.next_cursor\" for {meta:{next_cursor:\"abc\"}})"
        },
        "stopCondition": {
          "type": "string",
          "description": "JavaScript function to determine when to stop pagination. Format: (response, pageInfo, sourceData) => boolean\n- response: Object with {data: ..., headers: ...} - access response body via response.data\n- pageInfo: Object with {page: number, offset: number, cursor: any, totalFetched: number, mergedResult: any}\n- pageInfo.totalFetched counts the merged paginated result including the current page\n- pageInfo.mergedResult contains the accumulated paginated result including the current page\n- sourceData: Current step input data with payload fields at the root plus previous step results\n- Return true to STOP pagination, false to continue\n"
        }
      }
    },
    "RequestStepConfig": {
      "type": "object",
      "description": "Configuration for a request step. Protocol is detected from URL scheme:\n- HTTP/HTTPS: Standard REST API calls with query params, headers, body\n- Postgres: postgres:// or postgresql:// URLs, body contains SQL query\n- FTP/SFTP: ftp://, ftps://, or sftp:// URLs, body contains operation details\n",
      "required": [
        "url"
      ],
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "request"
          ],
          "description": "Optional type discriminator (defaults to request)"
        },
        "url": {
          "type": "string",
          "description": "Full URL including protocol. Examples:\n- HTTP: https://api.example.com/search\n- Postgres: postgres://user:pass@host:5432/database\n- FTP: ftp://user:pass@host:21/path\n- SFTP: sftp://user:pass@host:22/path\n"
        },
        "method": {
          "type": "string",
          "enum": [
            "GET",
            "POST",
            "PUT",
            "DELETE",
            "PATCH",
            "HEAD",
            "OPTIONS"
          ],
          "description": "HTTP method. Defaults to GET. For non-HTTP protocols, use POST.",
          "default": "GET"
        },
        "queryParams": {
          "type": "object",
          "description": "URL query parameters (HTTP only). Supports template expressions with <<(sourceData) => ...>> syntax.",
          "additionalProperties": true
        },
        "headers": {
          "type": "object",
          "description": "HTTP headers (HTTP only). Supports template expressions with <<(sourceData) => ...>> syntax.",
          "additionalProperties": true
        },
        "body": {
          "type": "string",
          "description": "Request body (protocol-specific). Supports template expressions with <<(sourceData) => ...>> syntax.\n\nHTTP: Any content (JSON, XML, form data, etc.)\nExample: '{\"query\": \"<<(sourceData) => sourceData.query>>\"}'\n\nPostgres: JSON with query and optional params\nExample: '{\"query\": \"SELECT * FROM users WHERE id = $1\", \"params\": [\"<<(sourceData) => sourceData.userId>>\"]}'\n\nFTP/SFTP: JSON with operation, path, and optional content\nExample: '{\"operation\": \"get\", \"path\": \"/data/file.csv\"}'\nExample: '{\"operation\": \"list\", \"path\": \"/data\"}'\nExample: '{\"operation\": \"put\", \"path\": \"/data/file.txt\", \"content\": \"<<(sourceData) => sourceData.fileContent>>\"}'\n"
        },
        "pagination": {
          "$ref": "#/$defs/Pagination"
        },
        "systemId": {
          "type": "string",
          "description": "Connection namespace used to resolve credentials"
        },
        "captureHttpResponse": {
          "type": "boolean",
          "description": "HTTP only. When true, the step envelope and step result include `http` with the response status code and lowercase headers. Defaults to false.",
          "default": false
        }
      }
    },
    "StepConfig": {
      "oneOf": [
        {
          "$ref": "#/$defs/RequestStepConfig"
        },
        {
          "$ref": "#/$defs/TransformStepConfig"
        }
      ]
    },
    "StepResult": {
      "type": "object",
      "description": "Execution result for a single tool step",
      "required": [
        "stepId",
        "success"
      ],
      "properties": {
        "stepId": {
          "type": "string",
          "description": "ID of the step that was executed"
        },
        "success": {
          "type": "boolean",
          "description": "Whether the step completed successfully"
        },
        "data": {
          "description": "Step result data",
          "allOf": [
            {
              "$ref": "#/$defs/AnyValue"
            }
          ]
        },
        "error": {
          "type": "string",
          "description": "Error message if the step failed"
        },
        "stepFileKeys": {
          "type": "array",
          "description": "File keys produced by this step.",
          "items": {
            "type": "string"
          }
        },
        "http": {
          "description": "HTTP response metadata. Present only for HTTP request steps with `captureHttpResponse` enabled.",
          "allOf": [
            {
              "$ref": "#/$defs/HttpResponseMetadata"
            }
          ]
        }
      }
    },
    "Tool": {
      "type": "object",
      "description": "A saved integration tool containing request and transformation steps.",
      "required": [
        "id",
        "steps"
      ],
      "properties": {
        "id": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "version": {
          "type": "string",
          "description": "Semantic version string (major.minor.patch)",
          "pattern": "^\\d+\\.\\d+\\.\\d+$"
        },
        "instruction": {
          "type": "string",
          "description": "Human-readable instruction describing what the tool does"
        },
        "inputSchema": {
          "type": "object",
          "description": "JSON Schema for tool inputs"
        },
        "outputSchema": {
          "type": "object",
          "description": "JSON Schema for tool outputs (after transformations applied)"
        },
        "steps": {
          "type": "array",
          "description": "Ordered execution steps. May be empty when `outputTransform` is present.",
          "items": {
            "$ref": "#/$defs/ToolStep"
          }
        },
        "outputTransform": {
          "type": "string",
          "description": "JavaScript function for final output transformation.\nFormat: (sourceData) => expression\n"
        },
        "folder": {
          "type": "string",
          "description": "Folder path for organizing tools"
        },
        "archived": {
          "type": "boolean",
          "description": "Whether this tool is archived (if so, it will not be listed in the UI and cannot be run)",
          "default": false
        },
        "createdByUserId": {
          "type": "string",
          "description": "ID of the user who created the tool."
        },
        "createdAt": {
          "type": "string",
          "format": "date-time"
        },
        "updatedAt": {
          "type": "string",
          "format": "date-time"
        },
        "lastUsedAt": {
          "type": "string",
          "format": "date-time"
        }
      }
    },
    "ToolStep": {
      "type": "object",
      "description": "A single execution step containing either a request configuration (API call)\nor a transform configuration (data transformation).\n",
      "required": [
        "id",
        "config"
      ],
      "properties": {
        "id": {
          "type": "string",
          "description": "Unique identifier for this step"
        },
        "config": {
          "$ref": "#/$defs/StepConfig"
        },
        "instruction": {
          "type": "string",
          "description": "Human-readable instruction describing what this step does"
        },
        "modify": {
          "type": "boolean",
          "description": "Whether this step modifies data on the system it operates on",
          "default": false
        },
        "dataSelector": {
          "type": "string",
          "description": "JavaScript function to select data for loop execution.\nFormat: (sourceData) => expression\n"
        },
        "failureBehavior": {
          "type": "string",
          "enum": [
            "fail",
            "continue"
          ],
          "description": "How to handle step failures (fail stops execution, continue proceeds to next step)",
          "default": "fail"
        },
        "outputFile": {
          "type": "boolean",
          "default": false,
          "description": "Promote files produced by this step as downloadable run artifacts."
        }
      }
    },
    "TransformStepConfig": {
      "type": "object",
      "description": "Configuration for a transform step. Transform steps execute JavaScript code\nto reshape data between request steps without making external API calls.\n",
      "required": [
        "type",
        "transformCode"
      ],
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "transform"
          ],
          "description": "Type discriminator for transform steps"
        },
        "transformCode": {
          "type": "string",
          "description": "JavaScript function that transforms sourceData.\nFormat: (sourceData) => transformedData\nThe function receives all previous step results and payload data.\n"
        }
      }
    }
  }
}

Work with this as data

Every JSON Schema 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 schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema 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 JSON Schema
curl "https://apis.io/api/v1/json-schemas/superglue-run"
All schemas
curl "https://apis.io/api/v1/json-schemas?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.