minimoth

Authentication

Every request to the MiniMoth API must include your project's API key in the X-Api-Key header:

headers: {
  'X-Api-Key': 'mm_live_...',
  'Content-Type': 'application/json',
}

Find or regenerate your key any time from the dashboard under Project → Settings. Regenerating a key immediately invalidates the old one.

Using Node.js, Express, or Next.js? @minimoth/sdk-node attaches the X-Api-Key header for you — pass the key once to the client instead of setting it on every request:

import { MiniMoth } from '@minimoth/sdk-node'

const mm = new MiniMoth({
  apiKey: process.env.MINIMOTH_API_KEY,  // mm_live_...
})
// mm.otp.send(), mm.otp.verify(), etc. attach the header for you

See the Node.js SDK guide for the full API.

Rate limits

Endpoint Live key (mm_live_) Test key (mm_test_)
POST /v1/otp/send 3 per phone per 10 minutes 20 per phone per 10 minutes
POST /v1/otp/verify 5 attempts per OTP, then invalidated 20 attempts per OTP
POST /v1/session/validate 3000 requests/min 300 requests/min
Other /v1/*
(refresh, logout, status)
1000 requests/min 100 requests/min

Try the full OTP flow interactively in the sandbox — no SMS sent, no credits consumed. The same Playground also has a live test to send a real OTP to your phone (uses your credits).

Test in Playground →