Index Commerce · Schema

UpdateToolRequest

Request body for updating an existing tool. All fields are optional — only provided fields are updated.

CompanyE-CommercePlatformStorefrontAnalytics

Properties

Name Type Description
name string Human-readable name for the tool
steps array Ordered execution steps (replaces all existing steps)
instruction string Human-readable instruction describing what the tool does
inputSchema object JSON Schema for tool inputs
outputSchema object JSON Schema for tool outputs
outputTransform string JavaScript function for final output transformation. Format: (sourceData) => expression
folder string Folder path for organizing tools
archived boolean Set to true to archive the tool (prevents execution and hides from default listing)
View JSON Schema on GitHub

JSON Schema

superglue-update-tool-request-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/superglue/main/json-schema/superglue-update-tool-request-schema.json",
  "title": "UpdateToolRequest",
  "description": "Request body for updating an existing tool. All fields are optional — only provided fields are updated.",
  "x-generated": "2026-10-19",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/superglue-openapi.yml#/components/schemas/UpdateToolRequest",
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "description": "Human-readable name for the tool"
    },
    "steps": {
      "type": "array",
      "description": "Ordered execution steps (replaces all existing steps)",
      "items": {
        "$ref": "#/$defs/ToolStep"
      }
    },
    "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"
    },
    "outputTransform": {
      "type": "string",
      "description": "JavaScript function for final output transformation. Format: (sourceData) => expression"
    },
    "folder": {
      "type": "string",
      "description": "Folder path for organizing tools"
    },
    "archived": {
      "type": "boolean",
      "description": "Set to true to archive the tool (prevents execution and hides from default listing)"
    }
  },
  "$defs": {
    "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"
        }
      ]
    },
    "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-update-tool-request"
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.