10 free OTPs — no credit card

WhatsApp OTP,
built for Indonesia.

One REST API to send and verify one-time codes over WhatsApp — to every Indonesian number. Integrate in two calls and go live today.

Rp 100 / OTP WhatsApp delivery · start with 10 free · no credit card
Phone numbers encrypted at rest Live in two API calls Every Indonesian carrier
Send an OTP
curl -X POST https://api.otpspace.com/v1/send \
  -H "Authorization: Bearer sk_live_xxx" \
  -H "Content-Type: application/json" \
  -d '{ "to": "+628123456789", "template": "login" }'

# → { "id": "otp_a8f2b1", "status": "queued" }
Delivered on WhatsApp
Your verification code:482917
How it works

Three steps, done.

From the API call to a verified user, the whole flow finishes in seconds.

1

Send the request

Your app sends one API call to the send endpoint with the user's WhatsApp number.

POST /v1/send
{
  "to": "+628..."
}
2

OTP delivered via WhatsApp

OTP Space's infrastructure delivers the verification code to the user's WhatsApp in seconds.

→ status: queued
→ status: delivered
~6s
3

Verify the code

The user enters the code in your app, you send it to the verify endpoint for validation.

POST /v1/verify
{ "verified": true }
For developers

Integration without drama.

A clean REST API that works from any language. Documentation designed to be understood, not guessed at.

# 1. Send an OTP to a WhatsApp number
curl -X POST https://api.otpspace.com/v1/send \
  -H "Authorization: Bearer sk_live_xxx" \
  -H "Content-Type: application/json" \
  -d '{ "to": "+628123456789", "template": "login" }'

# Response
# { "id": "otp_a8f2b1", "status": "queued" }

# 2. Verify the code from the user
curl -X POST https://api.otpspace.com/v1/verify \
  -H "Authorization: Bearer sk_live_xxx" \
  -d '{ "id": "otp_a8f2b1", "code": "482917" }'
// Send OTP
const res = await fetch('https://api.otpspace.com/v1/send', {
  method: 'POST',
  headers: {
    'Authorization': `Bearer ${process.env.OTP_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    to: '+628123456789',
    template: 'login',
  }),
});
const otp = await res.json();
// → { id: 'otp_a8f2b1', status: 'queued' }
<?php
// Send OTP
$ch = curl_init('https://api.otpspace.com/v1/send');
curl_setopt_array($ch, [
  CURLOPT_POST => true,
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_HTTPHEADER => [
    'Authorization: Bearer ' . $_ENV['OTP_KEY'],
    'Content-Type: application/json',
  ],
  CURLOPT_POSTFIELDS => json_encode([
    'to' => '+628123456789',
    'template' => 'login',
  ]),
]);
$otp = json_decode(curl_exec($ch), true);
package main

import (
  "bytes"
  "net/http"
)

// Send OTP
body := `{"to":"+628123456789","template":"login"}`
req, _ := http.NewRequest("POST", "https://api.otpspace.com/v1/send", bytes.NewBufferString(body))
req.Header.Set("Authorization", "Bearer sk_live_xxx")
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
Use cases

What can you build with it?

From e-commerce to enterprise apps, OTP Space fits a wide range of user-verification needs.

🛒

E-commerce

Verify buyers at checkout, confirm orders, and let customers sign in without friction.

Checkout Login Confirmation
💳

Fintech

Secure transactions, onboard customers, and run two-factor checks for sensitive actions.

KYC 2FA Transactions
📱

SaaS & apps

New-user signup, passwordless login, and account-change verification for digital products.

Sign-up Passwordless Reset
Pricing

Simple, flat pricing.

Rp 100 per verification — one flat rate for everyone. No tiers to track, no monthly fee, no minimum commitment.

🎁
10 free verifications for testing
Sign up with an email and immediately get 10 free OTPs to explore and integrate. No credit card.
Sign up now →
WhatsApp OTP One flat rate for every volume
Rp 100 / OTP
✉️ Email OTP: 0.2 credit per verification — one-fifth the WhatsApp rate. Same API, just set channel: "email".
Only pay for verifications that successfully deliver
One flat rate — no tiers to track, no surprises
No monthly fees, no hidden charges
Top up any time via QRIS, bank transfer, or card
Security & reliability

Infrastructure you can rely on.

Built to high security standards with a strong commitment to keeping your business running.

🔒

End-to-end encryption

Verification data is encrypted in transit and at rest using industry standards.

Auto-failover

Smart routing keeps delivery flowing even when something upstream goes down.

📊

Full audit log

Every request is recorded for full transparency and compliance needs.

🇮🇩

Indonesian servers

Local infrastructure for low latency and compliance with data regulations.

FAQ

Frequently asked questions.

How long does integration take? +
For a basic integration, your team can be done in 5–15 minutes using our REST API. Just two API calls: one to send an OTP and one to verify. The full documentation is published in Indonesian and English with copy-paste examples in cURL, Node.js, PHP, and Go.
Is the price the same at any volume? +
Yes. Every WhatsApp verification is a flat Rp 100 per OTP, whatever your monthly volume — no tiers, no plans to pick, no minimum commitment. Email OTP is one-fifth the rate (0.2 credit). You only pay for verifications that successfully deliver. Sending very high volume? Email [email protected] and we'll talk.
What if delivery fails? +
Our auto-failover keeps deliveries flowing. If a verification fails to deliver within the time limit, you're not charged. The dashboard gives full visibility into the status of every verification, and our support team is around if you hit a problem.
How do I test without paying? +
Every new account gets 10 free OTP credits on signup — enough for a smoke test before topping up. No credit card required, and the free credits work directly with the production sk_live_* key.
Do you support all Indonesian carriers? +
Yes. OTP Space delivers to every active Indonesian WhatsApp number across Telkomsel, Indosat, XL, Tri, Smartfren, and other carriers. The per-verification rate is the same on every carrier, so there's no math to do.

Ready to ship in 5 minutes?

Sign up free today, generate an API key, and send your first 10 verifications at no cost.