Read GoFormz templates, forms, groups and data sources; create and update forms and rows.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
WRITE: add a row to a data source. key_column is the lookup key; values are the column values in the data source's column order (see goformz_get_datasource). Each call adds another row. POST /v2/datasources/{dataSourceId}/rows.
Column values in column order, as strings.
The row's lookup key (the value of the key column).
Data source id (a GUID).
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
WRITE: add a row to a data source. key_column is the lookup key; values are the column values in the data source's column order (see goformz_get_datasource). Each call adds another row. POST /v2/datasources/{dataSourceId}/rows.
| Argument | Type | Description |
|---|---|---|
| values* | array | Column values in column order, as strings. |
| key_column* | string | The row's lookup key (the value of the key column). |
| datasource_id* | string | Data source id (a GUID). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"datasource_id",
"key_column",
"values"
],
"properties": {
"values": {
"type": "array",
"items": {
"type": "string",
"maxLength": 2000
},
"maxItems": 100,
"description": "Column values in column order, as strings."
},
"key_column": {
"type": "string",
"maxLength": 500,
"minLength": 1,
"description": "The row's lookup key (the value of the key column)."
},
"datasource_id": {
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$",
"description": "Data source id (a GUID)."
}
}
}WRITE: create a new draft form from a template, optionally pre-filled and assigned to a user or group (assignment is only possible at creation). Field keys are the template's field names (or ids) and the values are field objects such as {"text": "Acme"}; see goformz_get_form on an existing form of the template for each field's shape. Each call creates another form. POST /v2/formz.
| Argument | Type | Description |
|---|---|---|
| name | string | Form name. Ignored unless override_default_form_name is true: GoFormz names forms by the template's rule. |
| fields | object | Field values keyed by field name or id, for example {"PO #": {"value": "1223333"}, "Customer": {"text": "Acme"}}. |
| template_id* | string | Template id (a GUID). |
| assign_to_id | string | User or group id (a GUID). |
| assign_to_type | string | Assign the form to a User or a Group (needs assign_to_id). |
| override_default_form_name | boolean | Use `name` instead of the template's automatic form name (default false). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"template_id"
],
"properties": {
"name": {
"type": "string",
"maxLength": 250,
"minLength": 1,
"description": "Form name. Ignored unless override_default_form_name is true: GoFormz names forms by the template's rule."
},
"fields": {
"type": "object",
"description": "Field values keyed by field name or id, for example {\"PO #\": {\"value\": \"1223333\"}, \"Customer\": {\"text\": \"Acme\"}}.",
"propertyNames": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"additionalProperties": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
},
"template_id": {
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$",
"description": "Template id (a GUID)."
},
"assign_to_id": {
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$",
"description": "User or group id (a GUID)."
},
"assign_to_type": {
"enum": [
"User",
"Group"
],
"type": "string",
"description": "Assign the form to a User or a Group (needs assign_to_id)."
},
"override_default_form_name": {
"type": "boolean",
"description": "Use `name` instead of the template's automatic form name (default false)."
}
}
}WRITE: start a PDF export of a form (the form is not changed; GoFormz creates a PDF file). The reply gives the queue_id of the job: poll goformz_get_queue_item until Completed, then read the file with goformz_get_file using the id in redirectUrl. POST /v2/formz/{formId}/exports.
| Argument | Type | Description |
|---|---|---|
| pages | string | Pages to include, for example "1-5,7,9" (default all pages). |
| form_id* | string | Form id (a GUID). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"form_id"
],
"properties": {
"pages": {
"type": "string",
"pattern": "^\\d+(-\\d+)?(,\\d+(-\\d+)?)*$",
"maxLength": 100,
"description": "Pages to include, for example \"1-5,7,9\" (default all pages)."
},
"form_id": {
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$",
"description": "Form id (a GUID)."
}
}
}Get one data source: its name, columns and indexed columns. GET /v2/datasources/{id}.
| Argument | Type | Description |
|---|---|---|
| datasource_id* | string | Data source id (a GUID). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"datasource_id"
],
"properties": {
"datasource_id": {
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$",
"description": "Data source id (a GUID)."
}
}
}Get one data source row by id. GET /v2/datasources/{dataSourceId}/rows/{rowId}.
| Argument | Type | Description |
|---|---|---|
| row_id* | string | Row id (a GUID). |
| datasource_id* | string | Data source id (a GUID). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"datasource_id",
"row_id"
],
"properties": {
"row_id": {
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$",
"description": "Row id (a GUID)."
},
"datasource_id": {
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$",
"description": "Data source id (a GUID)."
}
}
}Get a file summary: type, created date and a temporary download `link` (it expires; see linkExpiration). Use it for an exported PDF or a form image/signature. The file itself is not downloaded here. GET /v2/files/{id}.
| Argument | Type | Description |
|---|---|---|
| file_id* | string | File id (a GUID). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"file_id"
],
"properties": {
"file_id": {
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$",
"description": "File id (a GUID)."
}
}
}Get one form with all its field values (text, numbers, dates, checkboxes, table rows, signature/image references), status, assignment and template version. GET /v2/formz/{id}.
| Argument | Type | Description |
|---|---|---|
| form_id* | string | Form id (a GUID). |
| include_deleted | boolean | Also return a form that has been deleted (default false). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"form_id"
],
"properties": {
"form_id": {
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$",
"description": "Form id (a GUID)."
},
"include_deleted": {
"type": "boolean",
"description": "Also return a form that has been deleted (default false)."
}
}
}Get one group by id. GET /v2/groups/{id}.
| Argument | Type | Description |
|---|---|---|
| group_id* | string | Group id (a GUID). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"group_id"
],
"properties": {
"group_id": {
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$",
"description": "Group id (a GUID)."
}
}
}Get the metadata of a PDF export of a form, including the temporary download `link` once the PDF is ready. GET /v2/formz/{formId}/exports/{exportId}.
| Argument | Type | Description |
|---|---|---|
| form_id* | string | Form id (a GUID). |
| export_id* | string | Export id (a GUID). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"form_id",
"export_id"
],
"properties": {
"form_id": {
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$",
"description": "Form id (a GUID)."
},
"export_id": {
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$",
"description": "Export id (a GUID)."
}
}
}Check a queued job, for example the PDF export started by goformz_export_form_pdf. Returns status (and progressIndicator); when it is Completed, redirectUrl points at the result (a /v2/files/{id} URL: pass that id to goformz_get_file). GET /v2/queue/{id}.
| Argument | Type | Description |
|---|---|---|
| queue_id* | string | Queue item id (a GUID). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"queue_id"
],
"properties": {
"queue_id": {
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$",
"description": "Queue item id (a GUID)."
}
}
}Get one template by id. GET /v2/templates/{id}.
| Argument | Type | Description |
|---|---|---|
| template_id* | string | Template id (a GUID). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"template_id"
],
"properties": {
"template_id": {
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$",
"description": "Template id (a GUID)."
}
}
}Get one user by id. GET /v2/users/{id}.
| Argument | Type | Description |
|---|---|---|
| user_id* | string | User id (a GUID). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"user_id"
],
"properties": {
"user_id": {
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$",
"description": "User id (a GUID)."
}
}
}List the rows of a data source. Each row has an id, a keyColumn (the lookup key) and a value (a JSON-encoded array of the column values). GET /v2/datasources/{dataSourceId}/rows.
| Argument | Type | Description |
|---|---|---|
| name | string | Only rows whose key column starts with this text. |
| page | integer | Page number, from 1 (default 1). Pass the previous reply's next_page. |
| page_size | integer | Results per page, 1-100 (default 25). |
| datasource_id* | string | Data source id (a GUID). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"datasource_id"
],
"properties": {
"name": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Only rows whose key column starts with this text."
},
"page": {
"type": "integer",
"maximum": 100000,
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"exclusiveMinimum": 0
},
"page_size": {
"type": "integer",
"maximum": 100,
"description": "Results per page, 1-100 (default 25).",
"exclusiveMinimum": 0
},
"datasource_id": {
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$",
"description": "Data source id (a GUID)."
}
}
}List data sources (lookup tables that feed dropdown and database fields in templates). GET /v2/datasources.
| Argument | Type | Description |
|---|---|---|
| name | string | Only items whose name starts with this text. |
| page | integer | Page number, from 1 (default 1). Pass the previous reply's next_page. |
| page_size | integer | Results per page, 1-100 (default 25). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"name": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Only items whose name starts with this text."
},
"page": {
"type": "integer",
"maximum": 100000,
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"exclusiveMinimum": 0
},
"page_size": {
"type": "integer",
"maximum": 100,
"description": "Results per page, 1-100 (default 25).",
"exclusiveMinimum": 0
}
}
}List forms (filled-in instances of templates) with name, status (draft or complete), last update date and assignment. Field values are NOT included: call goformz_get_form for those. Filter by name prefix, status or last-updated date. GET /v2/formz.
| Argument | Type | Description |
|---|---|---|
| name | string | Only items whose name starts with this text. |
| page | integer | Page number, from 1 (default 1). Pass the previous reply's next_page. |
| sort | string | Sort field. |
| status | string | Only draft or only complete forms. |
| direction | string | Sort direction (default asc). |
| page_size | integer | Results per page, 1-100 (default 25). |
| updated_after | string | Only forms last updated after this date or date-time (ISO 8601). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"name": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Only items whose name starts with this text."
},
"page": {
"type": "integer",
"maximum": 100000,
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"exclusiveMinimum": 0
},
"sort": {
"enum": [
"name",
"createddate",
"lastupdateddate",
"completeddate"
],
"type": "string",
"description": "Sort field."
},
"status": {
"enum": [
"draft",
"complete"
],
"type": "string",
"description": "Only draft or only complete forms."
},
"direction": {
"enum": [
"asc",
"desc"
],
"type": "string",
"description": "Sort direction (default asc)."
},
"page_size": {
"type": "integer",
"maximum": 100,
"description": "Results per page, 1-100 (default 25).",
"exclusiveMinimum": 0
},
"updated_after": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d{1,7})?)?(Z|[+-]\\d{2}:\\d{2})?)?$",
"description": "Only forms last updated after this date or date-time (ISO 8601)."
}
}
}List user groups (forms can be assigned to a group). GET /v2/groups.
| Argument | Type | Description |
|---|---|---|
| name | string | Only items whose name starts with this text. |
| page | integer | Page number, from 1 (default 1). Pass the previous reply's next_page. |
| page_size | integer | Results per page, 1-100 (default 25). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"name": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Only items whose name starts with this text."
},
"page": {
"type": "integer",
"maximum": 100000,
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"exclusiveMinimum": 0
},
"page_size": {
"type": "integer",
"maximum": 100,
"description": "Results per page, 1-100 (default 25).",
"exclusiveMinimum": 0
}
}
}List the forms created from one template (name, status, last update date). Field values are not included. GET /v2/templates/{templateId}/formz.
| Argument | Type | Description |
|---|---|---|
| name | string | Only items whose name starts with this text. |
| page | integer | Page number, from 1 (default 1). Pass the previous reply's next_page. |
| sort | string | Sort field. |
| status | string | Only draft or only complete forms. |
| direction | string | Sort direction (default asc). |
| page_size | integer | Results per page, 1-100 (default 25). |
| template_id* | string | Template id (a GUID). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"template_id"
],
"properties": {
"name": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Only items whose name starts with this text."
},
"page": {
"type": "integer",
"maximum": 100000,
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"exclusiveMinimum": 0
},
"sort": {
"enum": [
"name",
"createddate",
"lastupdateddate",
"completeddate"
],
"type": "string",
"description": "Sort field."
},
"status": {
"enum": [
"draft",
"complete"
],
"type": "string",
"description": "Only draft or only complete forms."
},
"direction": {
"enum": [
"asc",
"desc"
],
"type": "string",
"description": "Sort direction (default asc)."
},
"page_size": {
"type": "integer",
"maximum": 100,
"description": "Results per page, 1-100 (default 25).",
"exclusiveMinimum": 0
},
"template_id": {
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$",
"description": "Template id (a GUID)."
}
}
}List the form templates of the account (id, name). Use a template id to list its forms or to create a form. GET /v2/templates.
| Argument | Type | Description |
|---|---|---|
| name | string | Only items whose name starts with this text. |
| page | integer | Page number, from 1 (default 1). Pass the previous reply's next_page. |
| page_size | integer | Results per page, 1-100 (default 25). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"name": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Only items whose name starts with this text."
},
"page": {
"type": "integer",
"maximum": 100000,
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"exclusiveMinimum": 0
},
"page_size": {
"type": "integer",
"maximum": 100,
"description": "Results per page, 1-100 (default 25).",
"exclusiveMinimum": 0
}
}
}List the account's users (id, username, first and last name). A user id is needed to assign a new form. GET /v2/users.
| Argument | Type | Description |
|---|---|---|
| name | string | Only items whose name starts with this text. |
| page | integer | Page number, from 1 (default 1). Pass the previous reply's next_page. |
| page_size | integer | Results per page, 1-100 (default 25). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"name": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Only items whose name starts with this text."
},
"page": {
"type": "integer",
"maximum": 100000,
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"exclusiveMinimum": 0
},
"page_size": {
"type": "integer",
"maximum": 100,
"description": "Results per page, 1-100 (default 25).",
"exclusiveMinimum": 0
}
}
}List the webhooks that call a URL when a form of a template is completed (event form.complete). Read-only. GET /v2/webhooks.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number, from 1 (default 1). Pass the previous reply's next_page. |
| page_size | integer | Results per page, 1-100 (default 25). |
| template_id | string | Only webhooks for this template (the webhook's entity id). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page": {
"type": "integer",
"maximum": 100000,
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"exclusiveMinimum": 0
},
"page_size": {
"type": "integer",
"maximum": 100,
"description": "Results per page, 1-100 (default 25).",
"exclusiveMinimum": 0
},
"template_id": {
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$",
"description": "Only webhooks for this template (the webhook's entity id)."
}
}
}WRITE: mark a form complete (this can trigger the template's completion workflows and webhooks) or re-open it as a draft so it can be edited. POST /v2/formz/{id}/status.
| Argument | Type | Description |
|---|---|---|
| status* | string | complete to finish the form, draft to re-open it. |
| form_id* | string | Form id (a GUID). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"form_id",
"status"
],
"properties": {
"status": {
"enum": [
"draft",
"complete"
],
"type": "string",
"description": "complete to finish the form, draft to re-open it."
},
"form_id": {
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$",
"description": "Form id (a GUID)."
}
}
}WRITE: replace a data source row's key and values (the whole row is replaced; send every column). PATCH /v2/datasources/{dataSourceId}/rows/{rowId}.
| Argument | Type | Description |
|---|---|---|
| row_id* | string | Row id (a GUID). |
| values* | array | All column values in column order, as strings. |
| key_column* | string | The row's lookup key. |
| datasource_id* | string | Data source id (a GUID). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"datasource_id",
"row_id",
"key_column",
"values"
],
"properties": {
"row_id": {
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$",
"description": "Row id (a GUID)."
},
"values": {
"type": "array",
"items": {
"type": "string",
"maxLength": 2000
},
"maxItems": 100,
"description": "All column values in column order, as strings."
},
"key_column": {
"type": "string",
"maxLength": 500,
"minLength": 1,
"description": "The row's lookup key."
},
"datasource_id": {
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$",
"description": "Data source id (a GUID)."
}
}
}WRITE: change a form's name and/or field values (partial update: only the fields given change; a null value clears a field). Does NOT change the status and does not trigger workflows; to re-run completion workflows use goformz_set_form_status draft, update, then complete. PATCH /v2/formz/{id}.
| Argument | Type | Description |
|---|---|---|
| name | string | New form name. |
| fields | object | Field values keyed by field name or id, for example {"PO #": {"value": "1223333"}}; null clears the field. |
| form_id* | string | Form id (a GUID). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"form_id"
],
"properties": {
"name": {
"type": "string",
"maxLength": 250,
"minLength": 1,
"description": "New form name."
},
"fields": {
"type": "object",
"description": "Field values keyed by field name or id, for example {\"PO #\": {\"value\": \"1223333\"}}; null clears the field.",
"propertyNames": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"additionalProperties": {
"anyOf": [
{
"type": "null"
},
{
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
]
}
},
"form_id": {
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$",
"description": "Form id (a GUID)."
}
}
}