MIP-003 Input Validation Schema
Standard format for agent input types per MIP-003 Attachment 01. Types align with HTML input types (except button).
Core Fields
| Field |
Required |
Description |
id |
Yes |
Unique identifier; links input to data. Must be unique within the form. |
type |
Yes |
Input type; determines rendering and validation. |
name |
Yes |
Display label for the user. |
data |
No |
Type-specific config (placeholder, description, values, default, etc.). |
validations |
No |
Validation rules. |
Default: All fields are required unless validation: "optional" is set.
Quick Reference: Input Types
| Type |
Use Case |
Key Data Fields |
none |
Display-only text |
description |
text |
Single-line text |
placeholder, description, default |
textarea |
Multi-line text |
placeholder, description, default |
number |
Numeric input |
placeholder, description, default |
boolean / checkbox |
True/false |
description, default |
email |
Email address |
placeholder, description, default |
password |
Hidden password |
placeholder, description |
tel |
Phone number |
placeholder, description, default |
url |
URL/website |
placeholder, description, default |
date |
Date picker |
description, default |
datetime-local |
Date + time |
description, default |
time |
Time picker |
description, default |
month |
Month/year |
description, default |
week |
Week picker |
description, default |
color |
Color picker |
default, description |
range |
Slider |
min, max, step, default, description |
file |
File upload |
description, outputFormat (required) |
hidden |
Hidden field |
value (required) |
search |
Search input |
placeholder, description, default |
radio |
Radio group |
values (required), default, description |
option |
Single/multi select |
values (required), description |
Validations
| Validation |
Applies To |
Description |
min |
text, number, range, date/time, option, etc. |
Min length, value, date, or options. Inclusive. |
max |
Same as min |
Max length, value, date, or options. Inclusive. |
format |
text, email, url, tel, number |
email, url, nonempty, integer, tel_pattern |
accept |
file |
HTML accept spec (e.g. image/*,.pdf,.doc,.docx) |
optional |
all |
Field is not required (default: required) |
Validations are combined with logical AND. Avoid contradictory rules (e.g. format: email with max: 2).
Minimal Examples
Text with length:
{
"id": "username",
"type": "text",
"name": "Username",
"data": { "placeholder": "Enter username", "description": "3-20 characters" },
"validations": [
{ "validation": "min", "value": "3" },
{ "validation": "max", "value": "20" }
]
}
Select (radio):
{
"id": "payment",
"type": "radio",
"name": "Payment Method",
"data": {
"values": ["Credit Card", "PayPal", "Bank Transfer"],
"default": "Credit Card"
}
}
File upload (outputFormat required):
{
"id": "document",
"type": "file",
"name": "Document Upload",
"data": { "description": "PDF only (max 4.5MB)", "outputFormat": "url" },
"validations": [
{ "validation": "accept", "value": "image/*,.pdf,.doc,.docx" },
{ "validation": "min", "value": "1" },
{ "validation": "max", "value": "1" }
]
}
Optional boolean:
{
"id": "newsletter",
"type": "boolean",
"name": "Subscribe to Newsletter",
"data": { "default": false },
"validations": [{ "validation": "optional", "value": "true" }]
}
Important Notes
- File
outputFormat: Only url is supported; agent receives file as URL string.
- option/radio: Require non-empty
values array; values must be unique.
- range: Put min/max in
data for display; use validations for constraints.
- hidden: Requires
data.value.
- Untrusted data: Always validate received input server-side; schema guides UI only.
Reference
- MIP-003 Attachment 01 – Official spec
- For complete type table, validation matrix, and all examples, see reference.md.
1---2name: mip-003-input-schema3description: Defines the Masumi MIP-003 input validation schema format for agent job inputs. Use when creating, rendering, or validating agent input schemas, job input forms, input types, validation rules, or when working with Masumi protocol inputs.4---56# MIP-003 Input Validation Schema78Standard format for agent input types per [MIP-003 Attachment 01](https://github.com/masumi-network/masumi-improvement-proposals/blob/main/MIPs/MIP-003/MIP-003-Attachement-01.md). Types align with HTML input types (except button).910## Core Fields1112| Field | Required | Description |13|-------|----------|-------------|14| `id` | Yes | Unique identifier; links input to data. Must be unique within the form. |15| `type` | Yes | Input type; determines rendering and validation. |16| `name` | Yes | Display label for the user. |17| `data` | No | Type-specific config (placeholder, description, values, default, etc.). |18| `validations` | No | Validation rules. |1920**Default:** All fields are required unless `validation: "optional"` is set.2122## Quick Reference: Input Types2324| Type | Use Case | Key Data Fields |25|------|----------|-----------------|26| `none` | Display-only text | `description` |27| `text` | Single-line text | placeholder, description, default |28| `textarea` | Multi-line text | placeholder, description, default |29| `number` | Numeric input | placeholder, description, default |30| `boolean` / `checkbox` | True/false | description, default |31| `email` | Email address | placeholder, description, default |32| `password` | Hidden password | placeholder, description |33| `tel` | Phone number | placeholder, description, default |34| `url` | URL/website | placeholder, description, default |35| `date` | Date picker | description, default |36| `datetime-local` | Date + time | description, default |37| `time` | Time picker | description, default |38| `month` | Month/year | description, default |39| `week` | Week picker | description, default |40| `color` | Color picker | default, description |41| `range` | Slider | min, max, step, default, description |42| `file` | File upload | description, **outputFormat** (required) |43| `hidden` | Hidden field | **value** (required) |44| `search` | Search input | placeholder, description, default |45| `radio` | Radio group | **values** (required), default, description |46| `option` | Single/multi select | **values** (required), description |4748## Validations4950| Validation | Applies To | Description |51|------------|------------|-------------|52| `min` | text, number, range, date/time, option, etc. | Min length, value, date, or options. Inclusive. |53| `max` | Same as min | Max length, value, date, or options. Inclusive. |54| `format` | text, email, url, tel, number | `email`, `url`, `nonempty`, `integer`, `tel_pattern` |55| `accept` | file | HTML accept spec (e.g. `image/*,.pdf,.doc,.docx`) |56| `optional` | all | Field is not required (default: required) |5758Validations are combined with logical AND. Avoid contradictory rules (e.g. `format: email` with `max: 2`).5960## Minimal Examples6162**Text with length:**63```json64{65 "id": "username",66 "type": "text",67 "name": "Username",68 "data": { "placeholder": "Enter username", "description": "3-20 characters" },69 "validations": [70 { "validation": "min", "value": "3" },71 { "validation": "max", "value": "20" }72 ]73}74```7576**Select (radio):**77```json78{79 "id": "payment",80 "type": "radio",81 "name": "Payment Method",82 "data": {83 "values": ["Credit Card", "PayPal", "Bank Transfer"],84 "default": "Credit Card"85 }86}87```8889**File upload (outputFormat required):**90```json91{92 "id": "document",93 "type": "file",94 "name": "Document Upload",95 "data": { "description": "PDF only (max 4.5MB)", "outputFormat": "url" },96 "validations": [97 { "validation": "accept", "value": "image/*,.pdf,.doc,.docx" },98 { "validation": "min", "value": "1" },99 { "validation": "max", "value": "1" }100 ]101}102```103104**Optional boolean:**105```json106{107 "id": "newsletter",108 "type": "boolean",109 "name": "Subscribe to Newsletter",110 "data": { "default": false },111 "validations": [{ "validation": "optional", "value": "true" }]112}113```114115## Important Notes1161171. **File `outputFormat`**: Only `url` is supported; agent receives file as URL string.1182. **option/radio**: Require non-empty `values` array; values must be unique.1193. **range**: Put min/max in `data` for display; use `validations` for constraints.1204. **hidden**: Requires `data.value`.1215. **Untrusted data**: Always validate received input server-side; schema guides UI only.122123## Reference124125- [MIP-003 Attachment 01](https://github.com/masumi-network/masumi-improvement-proposals/blob/main/MIPs/MIP-003/MIP-003-Attachement-01.md) – Official spec126- For complete type table, validation matrix, and all examples, see [reference.md](reference.md).