# info.summary
Submit a hosted lead form. Line creates the contact, opens a conversation, and fires the form's workflow trigger.

# info.description
Submit a Line lead form from your own front end.

One call does the whole job: Line validates the values against the form the
tenant built, finds or creates the contact by phone or email, opens a
conversation in the shared inbox, and fires the form's workflow trigger.

The endpoint is unauthenticated — the form's public key and slug are the
address. Abuse is held back by per-IP rate limits and, when the tenant has
configured it, a Cloudflare Turnstile check.

# paths./api/channels/webchat/forms/{publicKey}/{slug}/submit.post.parameters[].description
The public key of the widget that owns the form.

# paths./api/channels/webchat/forms/{publicKey}/{slug}/submit.post.parameters[].description
The form's slug. The form must be active.

# paths./api/channels/webchat/forms/{publicKey}/{slug}/submit.post.requestBody.description
`values` is keyed by the form's own field keys. Required fields must be non-empty, `select` fields must match one of their options, and `phone` must be a valid number — UK is assumed when no country code is given.

# paths./api/channels/webchat/forms/{publicKey}/{slug}/submit.post.requestBody.content.application/json.schema.properties.values.description
Answers, keyed by field key. Each value is a string.

# paths./api/channels/webchat/forms/{publicKey}/{slug}/submit.post.requestBody.content.application/json.schema.properties.turnstileToken.description
Cloudflare Turnstile token. Required when the tenant has Turnstile enabled.

# paths./api/channels/webchat/forms/{publicKey}/{slug}/submit.post.responses.400.description
A required field is empty, a value is invalid, or the security check failed. `error` names the field.

# paths./api/channels/webchat/forms/{publicKey}/{slug}/submit.post.responses.404.description
No active form matches that public key and slug.