Security

VerifyRelay handles authentication traffic, so it's built like it. Here's exactly what protects the API.

  • API-key auth: Every send requires X-API-Key, compared in constant time against the server-side key.
  • Twilio signature verification: Status callbacks are HMAC-verified against your Twilio auth token whenever it's configured.
  • Input validation: E.164 phone validation, message length caps, and a 1 MiB request-body limit on every endpoint.
  • No secret logging: Structured JSON logs record request metadata only — never API keys, codes, or message bodies.
  • Config via environment: All credentials live in env vars; nothing is hardcoded. Sample values only in .env.example.
  • TLS at the edge: Terminate TLS at your reverse proxy (Caddy/nginx); the app binds loopback by default.

Known limits (we'd rather you read them here)

Questions or a vulnerability to report? Contact us — security reports go to the top of the queue.