Single endpoint · Wallet billing · Project-scoped API key

OTP delivery built for developers — clean, fast, and predictable.

Create a project, top up your wallet, and send OTPs with one API call. Your backend provides the OTP value, and we handle WhatsApp template delivery, request logging, and balance-based charging.

Create your account Read the docs
Built for production OTP delivery.
Project isolation
One API key per project
Single endpoint
POST /api/v1/send-otp
Portal ready
Keys, balance, usage
send-otp • live flow
Project: Active Project
API Key
otp_•••••••••••••••• scoped to this project
120ms avg
Send OTP (WhatsApp)
POST /api/v1/send-otp
Example request
{
  "phone_code": "961",
  "phone": "70123456",
  "otp": "123456"
}
OTP sent
Delivery accepted and logged
id: req_9f3a…
Request controls
Cooldown + validation
Consistent 2xx/4xx/5xx responses
Billing
Shared wallet balance
Credits and debits tracked in ledger

Tip: Use separate projects for dev/staging/prod.

Everything needed for OTP operations.

Keep project keys scoped, fund once, and monitor delivery and spend from one portal.

How it works
Project-based API keys

Each project has its own API key and environment metadata, with a built-in project switcher.

WhatsApp authentication

OTP delivery over WhatsApp templates with provider response tracking and failure handling.

One endpoint

One endpoint: POST /api/v1/send-otp with phone_code, phone, and otp.

Team-friendly portal

Livewire dashboard for API keys, billing, usage, requests, and support tickets.

Requests & outcomes

Track request IDs, status codes, latency, and delivery outcomes per project.

Secure by default

Idempotent billing flow, webhook-backed top-ups, and clear API response shapes.

How it works

A straightforward flow built around your current platform behavior.

Start now
Step 1
Create and select a project

Configure name, env, and domain. Use the active project switcher to operate contextually.

Step 2
Generate API key and top up

Fund your wallet and use the project key from your backend. Rotate keys whenever needed.

Step 3
Send user-provided OTP

Call POST /api/v1/send-otp with phone_code, phone, and otp, then track logs and spend.

cURL example
POST /api/v1/send-otp
curl -X POST "https://meta.codeloops.net/api/v1/send-otp" \
  -H "X-API-Key: otp_xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "phone_code": "961",
    "phone": "70123456",
    "otp": "123456"
  }'
Operational clarity
Predictable responses • request traceability • wallet visibility
Project isolation Yes
API key rotation Anytime
Balance-based billing Wallet + ledger

Documentation that matches implementation

Request/response shapes, status codes, auth headers, and pricing defaults aligned with the running platform.

Endpoint
POST /api/v1/send-otp
Auth
Authorization: Bearer otp_…

Ready to ship OTP today?

Create your account, add balance, and start delivering OTPs through WhatsApp from your project context.

Security note
Keep API keys server-side. Rotate on leaks.

Need help during integration? Use the built-in Support page to open tickets with request IDs.