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 |
JSON Schema
{
"$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.
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.