Formstep · Schema

MethodCall

The request body: a method name and its parameters. `params` may be omitted; it defaults to `{}`. See `x-formstep-methods` for the list of methods.

FormsAutomationData CollectionWorkflow IntegrationSoftware-as-a-Service
View JSON Schema on GitHub

JSON Schema

formstep-io-method-call-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/formstep-io/json-schema/formstep-io-method-call-schema.json",
  "title": "MethodCall",
  "description": "The request body: a method name and its parameters. `params` may be omitted; it defaults to `{}`. See `x-formstep-methods` for the list of methods.",
  "x-generated": "2026-11-08",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/formstep-io-openapi.json#/components/schemas/MethodCall",
  "oneOf": [
    {
      "$ref": "#/$defs/MethodsListCall"
    },
    {
      "$ref": "#/$defs/AnalyticsGetCall"
    },
    {
      "$ref": "#/$defs/DocumentsCreateCall"
    },
    {
      "$ref": "#/$defs/FieldsListCall"
    },
    {
      "$ref": "#/$defs/FoldersCreateCall"
    },
    {
      "$ref": "#/$defs/FoldersDeleteCall"
    },
    {
      "$ref": "#/$defs/FoldersListCall"
    },
    {
      "$ref": "#/$defs/FoldersUpdateCall"
    },
    {
      "$ref": "#/$defs/FormSettingsGetCall"
    },
    {
      "$ref": "#/$defs/FormSettingsUpdateCall"
    },
    {
      "$ref": "#/$defs/FormsCreateCall"
    },
    {
      "$ref": "#/$defs/FormsDeleteCall"
    },
    {
      "$ref": "#/$defs/FormsGetCall"
    },
    {
      "$ref": "#/$defs/FormsListCall"
    },
    {
      "$ref": "#/$defs/FormsPublishCall"
    },
    {
      "$ref": "#/$defs/FormsRestoreCall"
    },
    {
      "$ref": "#/$defs/FormsUnpublishCall"
    },
    {
      "$ref": "#/$defs/FormsUpdateCall"
    },
    {
      "$ref": "#/$defs/MeGetCall"
    },
    {
      "$ref": "#/$defs/RequestsCancelCall"
    },
    {
      "$ref": "#/$defs/RequestsCreateCall"
    },
    {
      "$ref": "#/$defs/RequestsDeleteCall"
    },
    {
      "$ref": "#/$defs/RequestsGetCall"
    },
    {
      "$ref": "#/$defs/RequestsListCall"
    },
    {
      "$ref": "#/$defs/RequestsRemindCall"
    },
    {
      "$ref": "#/$defs/RequestsReplayCallbackCall"
    },
    {
      "$ref": "#/$defs/RequestsSampleCall"
    },
    {
      "$ref": "#/$defs/ShareLinksCreateCall"
    },
    {
      "$ref": "#/$defs/ShareLinksListCall"
    },
    {
      "$ref": "#/$defs/ShareLinksUpdateCall"
    },
    {
      "$ref": "#/$defs/SubmissionsListCall"
    },
    {
      "$ref": "#/$defs/SubmissionsPdfCall"
    },
    {
      "$ref": "#/$defs/SubmissionsSampleCall"
    },
    {
      "$ref": "#/$defs/TranslationsAddLanguageCall"
    },
    {
      "$ref": "#/$defs/TranslationsDeleteEntryCall"
    },
    {
      "$ref": "#/$defs/TranslationsListEntriesCall"
    },
    {
      "$ref": "#/$defs/TranslationsListLanguagesCall"
    },
    {
      "$ref": "#/$defs/TranslationsRemoveLanguageCall"
    },
    {
      "$ref": "#/$defs/TranslationsSetEntryCall"
    },
    {
      "$ref": "#/$defs/WebhooksCreateCall"
    },
    {
      "$ref": "#/$defs/WebhooksDeleteCall"
    },
    {
      "$ref": "#/$defs/WebhooksListCall"
    },
    {
      "$ref": "#/$defs/WorkspacesCreateInviteCall"
    },
    {
      "$ref": "#/$defs/WorkspacesGetInviteCall"
    },
    {
      "$ref": "#/$defs/WorkspacesListCall"
    },
    {
      "$ref": "#/$defs/WorkspacesRevokeInviteCall"
    },
    {
      "$ref": "#/$defs/WorkspacesUpdateInviteCall"
    }
  ],
  "$defs": {
    "AnalyticsGetCall": {
      "title": "analytics.get",
      "type": "object",
      "description": "Get aggregated analytics metrics for a form.",
      "required": [
        "method",
        "params"
      ],
      "properties": {
        "method": {
          "type": "string",
          "const": "analytics.get"
        },
        "params": {
          "$ref": "#/$defs/AnalyticsGetParams"
        }
      }
    },
    "AnalyticsGetParams": {
      "type": "object",
      "description": "A Pro feature that follows the workspace owner's plan: if the owner is not on Pro, this returns `UPGRADE_REQUIRED`, including for history recorded while they were.",
      "required": [
        "formId"
      ],
      "properties": {
        "formId": {
          "type": "string",
          "description": "Form ID."
        },
        "from": {
          "type": "integer",
          "description": "Start of date range as Unix timestamp in milliseconds. Must be less than or equal to `to` when both are set.",
          "minimum": 0
        },
        "to": {
          "type": "integer",
          "description": "End of date range as Unix timestamp in milliseconds. Omit both for all time.",
          "minimum": 0
        },
        "device": {
          "type": "string",
          "description": "Filter by device type.",
          "enum": [
            "all",
            "desktop",
            "mobile",
            "tablet"
          ],
          "default": "all"
        },
        "trafficSource": {
          "type": "string",
          "description": "Filter by traffic source (e.g. `\"Direct\"`, `\"Google\"`).",
          "maxLength": 255
        },
        "country": {
          "type": "string",
          "description": "Filter by 2-letter country code (e.g. `\"US\"`, `\"DE\"`).",
          "maxLength": 10
        },
        "includeEvents": {
          "type": "boolean",
          "description": "Also return the sanitized analytics events behind the metrics. No visitor ids.",
          "default": false
        }
      }
    },
    "Cover": {
      "description": "Form cover. `{\"type\": \"color\", \"color\": \"#ffffff\"}`, `{\"type\": \"image\", \"url\": \"https://...\", \"offsetY\": 50}`, or `{\"type\": \"none\"}` to remove.",
      "oneOf": [
        {
          "type": "object",
          "required": [
            "type",
            "color"
          ],
          "properties": {
            "type": {
              "const": "color"
            },
            "color": {
              "type": "string",
              "description": "Hex color, `#rgb` or `#rrggbb`.",
              "pattern": "^#([0-9A-Fa-f]{3}|[0-9A-Fa-f]{6})$"
            }
          }
        },
        {
          "type": "object",
          "required": [
            "type",
            "url"
          ],
          "properties": {
            "type": {
              "const": "image"
            },
            "url": {
              "type": "string",
              "description": "An `http(s)` URL or a `data:image` URI.",
              "pattern": "^(https?://|data:image/)"
            },
            "offsetY": {
              "type": "number",
              "description": "Vertical alignment, 0–100.",
              "minimum": 0,
              "maximum": 100,
              "default": 50
            }
          }
        },
        {
          "type": "object",
          "required": [
            "type"
          ],
          "properties": {
            "type": {
              "const": "none"
            }
          }
        }
      ]
    },
    "DocumentsCreateCall": {
      "title": "documents.create",
      "type": "object",
      "description": "Reserve an upload for a file you will hand to one recipient through the form's Documents block.",
      "required": [
        "method",
        "params"
      ],
      "properties": {
        "method": {
          "type": "string",
          "const": "documents.create"
        },
        "params": {
          "$ref": "#/$defs/DocumentsCreateParams"
        }
      }
    },
    "DocumentsCreateParams": {
      "type": "object",
      "description": "`PUT` the raw bytes to `uploadUrl` within the hour, with `Content-Type` set to the declared type, then reference the id from `requests.create`.",
      "required": [
        "formId",
        "name",
        "contentType",
        "size"
      ],
      "properties": {
        "formId": {
          "type": "string",
          "description": "The form whose Documents block will show the file. Scopes the upload to that workspace."
        },
        "name": {
          "type": "string",
          "description": "Display name the recipient sees (1–200 characters). Overridable per request.",
          "minLength": 1,
          "maxLength": 200
        },
        "contentType": {
          "type": "string",
          "description": "`application/pdf` or an image type. Office documents are not accepted.",
          "enum": [
            "application/pdf",
            "image/png",
            "image/jpeg",
            "image/webp",
            "image/gif",
            "image/svg+xml",
            "image/avif",
            "image/bmp",
            "image/tiff"
          ]
        },
        "size": {
          "type": "integer",
          "description": "Exact byte length. Maximum 25 MB (26,214,400).",
          "minimum": 1,
          "maximum": 26214400
        },
        "sha256": {
          "type": "string",
          "description": "Hex digest of the bytes. Verified after upload when given."
        }
      }
    },
    "FieldsListCall": {
      "title": "fields.list",
      "type": "object",
      "description": "List every field of a form's current published version, with the key to address each one by.",
      "required": [
        "method",
        "params"
      ],
      "properties": {
        "method": {
          "type": "string",
          "const": "fields.list"
        },
        "params": {
          "$ref": "#/$defs/FieldsListParams"
        }
      }
    },
    "FieldsListParams": {
      "type": "object",
      "required": [
        "formId"
      ],
      "properties": {
        "formId": {
          "type": "string",
          "description": "Form ID. A form that has never been published answers `published: false` with no items."
        }
      }
    },
    "FoldersCreateCall": {
      "title": "folders.create",
      "type": "object",
      "description": "Create a folder in a workspace.",
      "required": [
        "method",
        "params"
      ],
      "properties": {
        "method": {
          "type": "string",
          "const": "folders.create"
        },
        "params": {
          "$ref": "#/$defs/FoldersCreateParams"
        }
      }
    },
    "FoldersCreateParams": {
      "type": "object",
      "description": "Idempotent: returns the existing folder if a folder with the same name already exists.",
      "required": [
        "workspaceId",
        "name"
      ],
      "properties": {
        "workspaceId": {
          "type": "string",
          "description": "Workspace ID."
        },
        "name": {
          "type": "string",
          "description": "Folder name (1–255 characters).",
          "minLength": 1,
          "maxLength": 255
        },
        "parentId": {
          "type": [
            "string",
            "null"
          ],
          "description": "Parent folder ID for nesting. Omit for root level."
        }
      }
    },
    "FoldersDeleteCall": {
      "title": "folders.delete",
      "type": "object",
      "description": "Permanently delete a folder and all its contents (subfolders and forms).",
      "required": [
        "method",
        "params"
      ],
      "properties": {
        "method": {
          "type": "string",
          "const": "folders.delete"
        },
        "params": {
          "$ref": "#/$defs/FoldersDeleteParams"
        }
      }
    },
    "FoldersDeleteParams": {
      "type": "object",
      "required": [
        "folderId"
      ],
      "properties": {
        "folderId": {
          "type": "string",
          "description": "Folder ID."
        }
      }
    },
    "FoldersListCall": {
      "title": "folders.list",
      "type": "object",
      "description": "List folders in a workspace.",
      "required": [
        "method",
        "params"
      ],
      "properties": {
        "method": {
          "type": "string",
          "const": "folders.list"
        },
        "params": {
          "$ref": "#/$defs/FoldersListParams"
        }
      }
    },
    "FoldersListParams": {
      "type": "object",
      "required": [
        "workspaceId"
      ],
      "properties": {
        "workspaceId": {
          "type": "string",
          "description": "Workspace ID."
        },
        "limit": {
          "type": "integer",
          "description": "Page size (1–100).",
          "minimum": 1,
          "maximum": 100,
          "default": 20
        },
        "cursor": {
          "type": "string",
          "description": "Pagination cursor from a previous response (`nextCursor`)."
        }
      }
    },
    "FoldersUpdateCall": {
      "title": "folders.update",
      "type": "object",
      "description": "Rename a folder or move it to a different parent.",
      "required": [
        "method",
        "params"
      ],
      "properties": {
        "method": {
          "type": "string",
          "const": "folders.update"
        },
        "params": {
          "$ref": "#/$defs/FoldersUpdateParams"
        }
      }
    },
    "FoldersUpdateParams": {
      "type": "object",
      "required": [
        "folderId"
      ],
      "properties": {
        "folderId": {
          "type": "string",
          "description": "Folder ID."
        },
        "name": {
          "type": "string",
          "description": "New folder name (1–255 characters).",
          "minLength": 1,
          "maxLength": 255
        },
        "parentId": {
          "type": [
            "string",
            "null"
          ],
          "description": "New parent folder. Pass `null` to move to root."
        }
      }
    },
    "FormSettingsGetCall": {
      "title": "formSettings.get",
      "type": "object",
      "description": "Read a form's behavior settings.",
      "required": [
        "method",
        "params"
      ],
      "properties": {
        "method": {
          "type": "string",
          "const": "formSettings.get"
        },
        "params": {
          "$ref": "#/$defs/FormSettingsGetParams"
        }
      }
    },
    "FormSettingsGetParams": {
      "type": "object",
      "required": [
        "formId"
      ],
      "properties": {
        "formId": {
          "type": "string",
          "description": "Form ID."
        }
      }
    },
    "FormSettingsUpdateCall": {
      "title": "formSettings.update",
      "type": "object",
      "description": "Update a form's behavior settings.",
      "required": [
        "method",
        "params"
      ],
      "properties": {
        "method": {
          "type": "string",
          "const": "formSettings.update"
        },
        "params": {
          "$ref": "#/$defs/FormSettingsUpdateParams"
        }
      }
    },
    "FormSettingsUpdateParams": {
      "type": "object",
      "description": "A partial update: only the fields you send are written. Subjects and bodies are plain text and accept `{{variable}}` placeholders; newlines become paragraphs.",
      "required": [
        "formId"
      ],
      "properties": {
        "formId": {
          "type": "string",
          "description": "Form ID."
        },
        "language": {
          "type": "string",
          "description": "BCP-47 form language. Default `\"en\"`."
        },
        "requireAuthentication": {
          "type": "boolean"
        },
        "showBranding": {
          "type": "boolean"
        },
        "captchaEnabled": {
          "type": "boolean"
        },
        "passwordEnabled": {
          "type": "boolean"
        },
        "password": {
          "type": [
            "string",
            "null"
          ],
          "description": "4 characters or more. A string implies `passwordEnabled: true`; `null` clears the gate.",
          "minLength": 4
        },
        "notifyOnSubmission": {
          "type": "boolean"
        },
        "notificationEmails": {
          "type": [
            "array",
            "null"
          ],
          "items": {
            "type": "string",
            "format": "email"
          },
          "maxItems": 10,
          "description": "Owner notification recipients."
        },
        "selfNotificationSubject": {
          "type": "string",
          "description": "Owner emails are not translatable; write them in the language you want."
        },
        "selfNotificationEmailBody": {
          "type": "string"
        },
        "pdfGenerationEnabled": {
          "type": "boolean"
        },
        "showViewSubmissionButton": {
          "type": "boolean"
        },
        "respondentNotificationEnabled": {
          "type": "boolean"
        },
        "respondentNotificationTo": {
          "type": [
            "string",
            "null"
          ],
          "description": "The field id of an email question, or `null`."
        },
        "respondentNotificationSubject": {
          "type": "string"
        },
        "respondentNotificationBody": {
          "type": "string"
        },
        "respondentNotificationPdfEnabled": {
          "type": "boolean"
        },
        "respondentReminderEnabled": {
          "type": "boolean",
          "description": "Pro."
        },
        "respondentReminderTo": {
          "type": [
            "string",
            "null"
          ],
          "description": "The field id of an email question, or `null`."
        },
        "respondentReminderSubject": {
          "type": "string"
        },
        "respondentReminderBody": {
          "type": "string"
        },
        "respondentReminderRequiredFieldIds": {
          "type": [
            "array",
            "null"
          ],
          "items": {
            "type": "string"
          }
        },
        "reminderSteps": {
          "type": [
            "array",
            "null"
          ],
          "items": {
            "type": "string"
          },
          "description": "Idle offsets like `[\"1d\",\"3d\",\"1w\"]`, at most 5, sorted and deduplicated on save; `[]` for none. Applies to abandoned public-link responses and to requests alike. Pro."
        },
        "respondentReminderIdleWindow": {
          "$ref": "#/$defs/IdleWindow",
          "description": "Single-step form of `reminderSteps`, ignored when `reminderSteps` is set.",
          "deprecated": true
        },
        "redirectUrl": {
          "type": [
            "string",
            "null"
          ],
          "description": "`http(s)` URL; `null` or `\"\"` clears."
        },
        "redirectQueryParams": {
          "type": [
            "array",
            "null"
          ],
          "items": {
            "type": "object",
            "required": [
              "paramName",
              "fieldId"
            ],
            "properties": {
              "paramName": {
                "type": "string"
              },
              "fieldId": {
                "type": "string"
              }
            }
          }
        },
        "allowAnotherResponse": {
          "type": "boolean",
          "description": "Mutually exclusive with a redirect."
        },
        "maxSubmissionsPerRespondent": {
          "type": "integer",
          "description": "0 = unlimited, max 1000.",
          "minimum": 0,
          "maximum": 1000
        },
        "editAfterSubmit": {
          "type": "boolean"
        },
        "maxEdits": {
          "type": "integer",
          "description": "0 = unlimited, max 3.",
          "minimum": 0,
          "maximum": 3
        },
        "draftRetentionDays": {
          "type": [
            "integer",
            "null"
          ],
          "description": "0–36500; `null` reverts to the default.",
          "minimum": 0,
          "maximum": 36500
        },
        "submissionRetentionDays": {
          "type": [
            "integer",
            "null"
          ],
          "description": "0–36500; `null` reverts to the default. Business. Setting it clears any fixed deletion date configured in the builder.",
          "minimum": 0,
          "maximum": 36500
        },
        "emailDomainId": {
          "type": [
            "string",
            "null"
          ],
          "description": "A verified email-domain id from `formSettings.get`, for a custom From address. `null` resets to the default sender."
        }
      }
    },
    "FormsCreateCall": {
      "title": "forms.create",
      "type": "object",
      "description": "Create a new empty form.",
      "required": [
        "method",
        "params"
      ],
      "properties": {
        "method": {
          "type": "string",
          "const": "forms.create"
        },
        "params": {
          "$ref": "#/$defs/FormsCreateParams"
        }
      }
    },
    "FormsCreateParams": {
      "type": "object",
      "required": [
        "name",
        "workspaceId"
      ],
      "properties": {
        "name": {
          "type": "string",
          "description": "Form name (1–255 characters).",
          "minLength": 1,
          "maxLength": 255
        },
        "workspaceId": {
          "type": "string",
          "description": "Workspace ID."
        },
        "folderId": {
          "type": [
            "string",
            "null"
          ],
          "description": "Place the form in a folder. Omit to create at workspace root."
        }
      }
    },
    "FormsDeleteCall": {
      "title": "forms.delete",
      "type": "object",
      "description": "Move a form to trash.",
      "required": [
        "method",
        "params"
      ],
      "properties": {
        "method": {
          "type": "string",
          "const": "forms.delete"
        },
        "params": {
          "$ref": "#/$defs/FormsDeleteParams"
        }
      }
    },
    "FormsDeleteParams": {
      "type": "object",
      "required": [
        "formId"
      ],
      "properties": {
        "formId": {
          "type": "string",
          "description": "Form ID."
        }
      }
    },
    "FormsGetCall": {
      "title": "forms.get",
      "type": "object",
      "description": "Get full details for a single form, including questions, cover, logo, and a preview URL.",
      "required": [
        "method",
        "params"
      ],
      "properties": {
        "method": {
          "type": "string",
          "const": "forms.get"
        },
        "params": {
          "$ref": "#/$defs/FormsGetParams"
        }
      }
    },
    "FormsGetParams": {
      "type": "object",
      "required": [
        "formId"
      ],
      "properties": {
        "formId": {
          "type": "string",
          "description": "Form ID."
        }
      }
    },
    "FormsListCall": {
      "title": "forms.list",
      "type": "object",
      "description": "List forms in a workspace.",
      "required": [
        "method",
        "params"
      ],
      "properties": {
        "method": {
          "type": "string",
          "const": "forms.list"
        },
        "params": {
          "$ref": "#/$defs/FormsListParams"
        }
      }
    },
    "FormsListParams": {
      "type": "object",
      "required": [
        "workspaceId"
      ],
      "properties": {
        "workspaceId": {
          "type": "string",
          "description": "Workspace ID."
        },
        "folderId": {
          "type": [
            "string",
            "null"
          ],
          "description": "Filter by folder. Pass `null` for root-level forms only. Omit to list all."
        },
        "query": {
          "type": "string",
          "description": "Fuzzy name search. Results capped at `limit`; not cursor-paginated."
        },
        "limit": {
          "type": "integer",
          "description": "Page size (1–100).",
          "minimum": 1,
          "maximum": 100,
          "default": 20
        },
        "cursor": {
          "type": "string",
          "description": "Pagination cursor from a previous response (`nextCursor`)."
        }
      }
    },
    "FormsPublishCall": {
      "title": "forms.publish",
      "type": "object",
      "description": "Publish a form so it can accept responses, and freeze its field keys into a new snapshot.",
      "required": [
        "method",
        "params"
      ],
      "properties": {
        "method": {
          "type": "string",
          "const": "forms.publish"
        },
        "params": {
          "$ref": "#/$defs/FormsPublishParams"
        }
      }
    },
    "FormsPublishParams": {
      "type": "object",
      "required": [
        "formId"
      ],
      "properties": {
        "formId": {
          "type": "string",
          "description": "Form ID."
        }
      }
    },
    "FormsRestoreCall": {
      "title": "forms.restore",
      "type": "object",
      "description": "Restore a form from trash.",
      "required": [
        "method",
        "params"
      ],
      "properties": {
        "method": {
          "type": "string",
          "const": "forms.restore"
        },
        "params": {
          "$ref": "#/$defs/FormsRestoreParams"
        }
      }
    },
    "FormsRestoreParams": {
      "type": "object",
      "required": [
        "formId"
      ],
      "properties": {
        "formId": {
          "type": "string",
          "description": "Form ID."
        },
        "folderId": {
          "type": [
            "string",
            "null"
          ],
          "description": "Where to restore it. Omit for its original folder, `null` for workspace root, or a folder ID."
        }
      }
    },
    "FormsUnpublishCall": {
      "title": "forms.unpublish",
      "type": "object",
      "description": "Take a form offline.",
      "required": [
        "method",
        "params"
      ],
      "properties": {
        "method": {
          "type": "string",
          "const": "forms.unpublish"
        },
        "params": {
          "$ref": "#/$defs/FormsUnpublishParams"
        }
      }
    },
    "FormsUnpublishParams": {
      "type": "object",
      "required": [
        "formId"
      ],
      "properties": {
        "formId": {
          "type": "string",
          "description": "Form ID."
        }
      }
    },
    "FormsUpdateCall": {
      "title": "forms.update",
      "type": "object",
      "description": "Update form metadata: name, folder, emoji, cover, or logo.",
      "required": [
        "method",
        "params"
      ],
      "properties": {
        "method": {
          "type": "string",
          "const": "forms.update"
        },
        "params": {
          "$ref": "#/$defs/FormsUpdateParams"
        }
      }
    },
    "FormsUpdateParams": {
      "type": "object",
      "description": "Pass at least one of the five updatable fields. Form content is not changed here.",
      "required": [
        "formId"
      ],
      "properties": {
        "formId": {
          "type": "string",
          "description": "Form ID."
        },
        "name": {
          "type": "string",
          "description": "New form name (1–255 characters).",
          "minLength": 1,
          "maxLength": 255
        },
        "folderId": {
          "type": [
            "string",
            "null"
          ],
          "description": "Move form to a folder. Pass `null` to move to workspace root."
        },
        "emoji": {
          "type": [
            "string",
            "null"
          ],
          "description": "Form emoji (max 10 characters). Pass `null` to clear.",
          "maxLength": 10
        },
        "cover": {
          "$ref": "#/$defs/Cover"
        },
        "logo": {
          "$ref": "#/$defs/Logo"
        }
      }
    },
    "IdleWindow": {
      "type": "string",
      "enum": [
        "12h",
        "1d",
        "3d",
        "1w"
      ]
    },
    "Logo": {
      "description": "Form logo. `{\"type\": \"icon\", \"name\": \"HeartIcon\"}`, `{\"type\": \"image\", \"url\": \"https://...\"}`, or `{\"type\": \"none\"}` to remove.",
      "oneOf": [
        {
          "type": "object",
          "required": [
            "type",
            "name"
          ],
          "properties": {
            "type": {
              "const": "icon"
            },
            "name": {
              "type": "string",
              "description": "Icon name.",
              "enum": [
                "QuestionMarkIcon",
                "ListBulletsIcon",
                "ChartBarIcon",
                "ClockCountdownIcon",
                "HeartIcon",
                "LightbulbIcon",
                "CheckCircleIcon",
                "MagnifyingGlassIcon",
                "TrendUpIcon",
                "EnvelopeIcon",
                "PhoneIcon",
                "CalendarIcon",
                "LinkIcon",
                "UsersIcon"
              ]
            }
          }
        },
        {
          "type": "object",
          "required": [
            "type",
            "url"
          ],
          "properties": {
            "type": {
              "const": "image"
            },
            "url": {
              "type": "string",
              "description": "An `http(s)` URL or a `data:image` URI.",
              "pattern": "^(https?://|data:image/)"
            }
          }
        },
        {
          "type": "object",
          "required": [
            "type"
          ],
          "properties": {
            "type": {
              "const": "none"
            }
          }
        }
      ]
    },
    "MeGetCall": {
      "title": "me.get",
      "type": "object",
      "description": "Get information about the authenticated user.",
      "required": [
        "method"
      ],
      "properties": {
        "method": {
          "type": "string",
          "const": "me.get"
        },
        "params": {
          "$ref": "#/$defs/MeGetParams"
        }
      }
    },
    "MeGetParams": {
      "type": "object",
      "properties": {},
      "description": "No parameters."
    },
    "MethodsListCall": {
      "title": "methods.list",
      "type": "object",
      "description": "List every method name this deployment serves, sorted.",
      "required": [
        "method"
      ],
      "properties": {
        "method": {
          "type": "string",
          "const": "methods.list"
        },
        "params": {
          "$ref": "#/$defs/MethodsListParams"
        }
      }
    },
    "MethodsListParams": {
      "type": "object",
      "properties": {},
      "description": "No parameters."
    },
    "RequestOutcome": {
      "type": "string",
      "description": "The recipient's verdict from a decision question.",
      "enum": [
        "approve",
        "decline",
        "changes"
      ]
    },
    "RequestStatus": {
      "type": "string",
      "enum": [
        "pending",
        "completed",
        "expired",
        "canceled"
      ]
    },
    "RequestsCancelCall": {
      "title": "requests.cancel",
      "type": "object",
      "description": "Withdraw a pending request.",
      "required": [
        "method",
        "params"
      ],
      "properties": {
        "method": {
          "type": "string",
          "const": "requests.cancel"
        },
        "params": {
          "$ref": "#/$defs/RequestsCancelParams"
        }
      }
    },
    "RequestsCancelParams": {
      "type": "object",
      "required": [
        "requestId"
      ],
      "properties": {
        "requestId": {
          "type": "string",
          "description": "Request ID."
        },
        "reason": {
          "type": "string",
          "description": "Your note for why, kept on the request and sent in the callback."
        }
      }
    },
    "RequestsCreateCall": {
      "title": "requests.create",
      "type": "object",
      "description": "Create a request.",
      "required": [
        "method",
        "params"
      ],
      "properties": {
        "method": {
          "type": "string",
          "const": "requests.create"
        },
        "params": {
          "$ref": "#/$defs/RequestsCreateParams"
        }
      }
    },
    "RequestsCreateParams": {
      "type": "object",
      "description": "Spends one unit of the workspace's monthly allowance, whether or not the recipient answers.",
      "required": [
        "formId"
      ],
      "properties": {
        "formId": {
          "type": "string",
          "description": "The published form to assign."
        },
        "recipient": {
          "type": "object",
          "description": "An email is required when `delivery` is `\"email\"`; otherwise it only identifies the person in the Requests page and on their answers.",
          "properties": {
            "email": {
              "type": "string",
              "format": "email"
            },
            "name": {
              "type": "string"
            }
          }
        },
        "prefill": {
          "type": "object",
          "additionalProperties": true,
          "description": "Initial answ

# --- truncated at 32 KB (61 KB total) ---
# Full source: https://artifacts.apis.io/formstep-io/json-schema/formstep-io-method-call-schema.json

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/formstep-io-method-call"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

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.