Submit Consent
Record an individual's affirmative SMS opt-in consent.
THE ROW IS THE RECORD NOW, not the email. This used to only email a proof-of-consent artifact to support@ — consent existed solely in an inbox, queryable by nobody. It now persists an sms_consent row as pending_review (a web submission is NOT bound to a site contact and authorizes nothing until an owner reviews and links it), commits, answers, and only then emails.
NO-FAIL-AFTER-PERSIST, AND IT IS A DELIBERATE BEHAVIOR CHANGE: the email is best-effort AFTER the commit, so an SES outage no longer 502s a submission whose consent we have already durably recorded. Telling someone their opt-in failed when it did not is worse than a missing notification email.
ALSO A BEHAVIOR CHANGE: numbers are canonicalized with the shared US-only to_e164, so a non-NANP number is now a 422 instead of a stored record we could never text. Both changes affect the live verdun.ai form.
consent_version is optional for exactly as long as verdun.ai does not send it: missing means legacy_web_v1 (the live copy), while a version we do not recognize is a 422 — a key we cannot resolve to words looks like evidence and isn't.
The response body is ALWAYS the same generic {"status": "ok"}. It never echoes the row: an unauthenticated endpoint that reflected stored consent details back would be an oracle for whether a number has opted in.
Request
- Base URLhttps://api.verdun.ai (the document declares no server; this is the origin it was published from)
- URLhttps://api.verdun.ai/sms-opt-in/consent
- Authnone declared
Request body application/x-www-form-urlencoded
Response
Successful Response
Changes
No recorded changes to this operation across all 2 revisions of this API.