Custom message template. Use {code} as a placeholder for the verification code.Default: "Your verification code is: {code}"Example: "Your Acme Corp verification code is: {code}. Valid for 5 minutes."
Custom verification code. Must be a numeric string between 4-10 digits.If not provided, a code will be automatically generated with a length defined in your account settings.Example: "123456"
This endpoint enforces per-recipient rate limits to prevent spam and abuse:
2 sends per minute per recipient
15 sends per hour per recipient
50 sends per 24 hours per recipient
When you exceed these limits, you’ll receive a 429 response with a retry_after field indicating how many seconds until you can retry.
In addition to per-recipient limits, API keys are also rate limited to 120 requests per minute across all endpoints. Test recipients (like +15555550100) are exempt from per-recipient limits but still count toward your API key limits. See the Rate Limits section for more details.
Keep messages clear and branded: Include your app name in the message so users know where the code is coming from.Good: "Your Acme Corp verification code is: {code}"Bad: "{code}"
Set appropriate expiration times:
SMS/Voice: 2-5 minutes (users typically verify immediately)
Email: 10-15 minutes (users may need to open their email client)
Phone number format: Phone numbers must be in E.164 format (starting with + and country code). Invalid formats will be rejected.
Message length limits:
SMS: 160 characters recommended
Email: No hard limit, but keep it concise
Voice: Keep under 50 characters for best experience