# Munition Form Builder

> Munition Form Builder is a paid API for AI agents from api.munition.io, paid per call via x402, $0.01/call, status unknown (last checked 2026-10-23).

Creates a hosted web form with custom fields and returns a public URL, read token, and response access details

## Facts

- Endpoint: POST https://api.munition.io/v1/forms?utm_source=zero.xyz
- Price: $0.01/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-23
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/munition-form-builder-9fb5ff19
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_c6j8uyvrUF2FUZu_FjEP-

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability munition-form-builder-9fb5ff19 -d '<json body>'
```

Example prompt: Create a form titled 'Workshop Feedback' with three questions: a required text field asking 'What was your name?', a required email field asking 'What is your email?', and a required choice field asking 'How would you rate the session?' with options 'Excellent', 'Good', 'Fair', and 'Poor' — make it close in 7 days and show 'Thanks for your feedback!' after submission.

## When to prefer this

Use this endpoint when an AI agent needs to create a live, hosted web form programmatically and immediately get a shareable public URL — without needing a separate form provider account or API key. It is ideal for agents that need to collect structured input from humans (surveys, registrations, feedback) as part of an automated workflow, paying per form creation in USDC via the x402 protocol.

## Known failure modes

- Missing required 'title' or 'fields' returns a 400 validation error
- Providing 'options' on a non-choice field type returns a 400 error
- Omitting 'options' on a 'choice' or 'multi_choice' field returns a 400 error
- 'closesAt' set fewer than 5 minutes or more than 30 days from now returns a 400 error
- More than 20 fields or more than 20 options per field returns a 400 error
- Duplicate option values (case-insensitive) within a field return a 400 error
- Payment not provided or insufficient USDC results in a 402 Payment Required response
- Field 'id' not matching pattern ^[a-z][a-z0-9_]{0,39}$ returns a 400 error

## How this service works

Web search, page reading, PDFs, file sharing, and flight APIs for AI agents. Pay per call in USDC without separate provider API keys.

## Output

Returns a JSON object containing the unique form ID, a public URL where respondents can fill out the form, a read token to retrieve responses later, the close timestamp, maximum response count, and the deadline until which responses are readable.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "title": {
   "type": "string",
   "maxLength": 120,
   "minLength": 1,
   "description": "Form title shown to people."
  },
  "fields": {
   "type": "array",
   "items": {
    "type": "object",
    "required": [
     "id",
     "label",
     "type"
    ],
    "properties": {
     "id": {
      "type": "string",
      "pattern": "^[a-z][a-z0-9_]{0,39}$",
      "description": "Stable key used in answers, unique within the form."
     },
     "type": {
      "enum": [
       "text",
       "long_text",
       "email",
       "number",
       "choice",
       "multi_choice"
      ],
      "type": "string",
      "description": "text (up to 2000 characters), long_text (up to 5000), email, number, choice (exactly one option) or multi_choice (any number of options)."
     },
     "label": {
      "type": "string",
      "maxLength": 200,
      "minLength": 1,
      "description": "Question text shown to people."
     },
     "options": {
      "type": "array",
      "items": {
       "type": "string",
       "maxLength": 100,
       "minLength": 1
      },
      "maxItems": 20,
      "minItems": 2,
      "description": "Required for choice and multi_choice, not allowed otherwise. Unique, ignoring case."
     },
     "required": {
      "type": "boolean",
      "default": false
     }
    },
    "additionalProperties": false
   },
   "maxItems": 20,
   "minItems": 1,
   "description": "1 to 20 questions, shown in order."
  },
  "closesAt": {
   "type": "string",
   "format": "date-time",
   "description": "When the form stops accepting answers, with a timezone: between 5 minutes and 30 days from now. Default: 30 days."
  },
  "description": {
   "type": "string",
   "maxLength": 1000,
   "description": "Optional intro under the title. Plain text: newlines are kept, links are not clickable."
  },
  "successMessage": {
   "type": "string",
   "maxLength": 300,
   "description": "Optional message shown after an answer is sent."
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "formId": "frm_AAAAAAAAAAAAAAAAAAAAAA",
  "closesAt": "2026-11-10T00:00:00.000Z",
  "publicUrl": "https://forms.munition.io/f/frm_AAAAAAAAAAAAAAAAAAAAAA",
  "readToken": "frt_example",
  "maxResponses": 100,
  "responsesReadableUntil": "2026-11-17T00:00:00.000Z"
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/munition-form-builder-9fb5ff19/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from api.munition.io](https://www.zero.xyz/host/api.munition.io/llms.txt)
