# POST /forms/templates/:template_id/submit

**Resource:** [Forms](./forms.md)  
**MCP tool:** `submit_public_form`  
**Scopes:** `forms:write`  
**Write operation:** yes

Submit a public form. Find-or-creates a contact + opportunity from the submitted answers (matched by the fields wired to contact.email / first_name / last_name / phone / account.name), then writes every wired field onto the records. The template must have public mode enabled. Credit-free.

## Parameters

| Name | In | Type | Required | Description |
|------|----|------|----------|-------------|
| `template_id` | path | string | yes | Form template id (must have public mode enabled). |
| `responses` | body | array | no | Submitted answers. |
| `fields` | body | object | no | Convenience alternative to responses — an object keyed by form field id with the answer as the value. |

## Request example

```bash
curl -X POST   "https://api.trustpager.com/functions/v1/api/v1/forms/templates/:template_id/submit"   -H "Authorization: Bearer YOUR_API_KEY"   -H "Content-Type: application/json"   -d '{"responses":"...","fields":"..."}'
```

---
Base URL: `https://api.trustpager.com/functions/v1/api/v1` — Auth: `Authorization: Bearer YOUR_API_KEY`