---
title: "SubmitContact"
method: POST
path: "/api/leads/v1/submit-contact"
tags: ["LeadsService"]
---

# SubmitContact

`POST /api/leads/v1/submit-contact`

## Request

- Base URL: `https://api.worldmonitor.app`
- URL: `https://api.worldmonitor.app/api/leads/v1/submit-contact`
- Auth: none required

SubmitContact stores an enterprise contact submission in Convex and emails ops. Turnstile-gated. Missing or invalid Cloudflare Turnstile token returns 403 Bot verification failed.

## Headers

- `Idempotency-Key` string

## Request body

- WorldmonitorLeadsV1SubmitContactRequest: SubmitContactRequest carries an enterprise contact form submission.
  - `email` string, required
  - `name` string, required
  - `organization` string, required
  - `phone` string, required
  - `message` string
  - `source` string
  - `website` string: Honeypot — bots auto-fill this hidden field; real submissions leave it empty.
  - `turnstileToken` string, required: Cloudflare Turnstile token proving the submitter is human.

## Response `200`

OK

- WorldmonitorLeadsV1SubmitContactResponse: SubmitContactResponse reports the outcome of storing the lead and notifying ops.
  - `status` string: Always "sent" on success.
  - `emailSent` boolean: True when the Resend notification to ops was delivered.

## Other responses

- `400`: Validation error, invalid Idempotency-Key header, or malformed JSON request body
- `403`: Bot verification failed.
- `409`: A request with this Idempotency-Key is still being processed
- `422`: The Idempotency-Key was already used with a different request body
- `429`: Rate limit exceeded.
- `default`: Gateway or handler error response.

---

[API](https://skmtc.dev/worldmonitor/apis/worldmonitor-api.md) · [All operations](https://skmtc.dev/worldmonitor/apis/worldmonitor-api/llms.txt) · [OpenAPI document](https://skmtc.dev/worldmonitor/apis/worldmonitor-api/revisions/e3dc8463a5c9?raw)
