Meridwave gives your platform programmable voice, SMS, SIP trunking and phone numbers through a single REST interface — metered by the second and the message, with no long-term contracts.
Usage-based billing · No minimum commit · Cancel any time
# Send an SMS curl -X POST https://api.meridwave.com/v1/messages \ -H "Authorization: Bearer $MERIDWAVE_KEY" \ -H "Content-Type: application/json" \ -d '{ "from": "+13475550100", "to": "+442079460000", "text": "Your code is 4821" }' # → 202 Accepted { "id": "msg_9Qd4Lm2xTbA", "status": "queued", "segments": 1, "price": "0.0075" }
One account, one key, one set of docs. Mix the pieces you need and pay only for what you use.
Place and receive calls over our API. Control call flow, record, transfer and bridge legs in real time.
Send and receive text at scale with delivery receipts, inbound webhooks and automatic segmentation.
Point your existing PBX or softswitch at our edge. Burst capacity up and down without re-provisioning.
Search and provision local and toll-free numbers through the API. Port existing numbers when you're ready.
One endpoint to send and check one-time codes over SMS or voice. We handle retries, expiry and rate limits.
Per-call and per-message records with latency, routing and cost — queryable by API or exported to your warehouse.
No SDK lock-in and no surprise abstractions. If you can send an HTTP request, you can use Meridwave.
Retry safely. Duplicate requests with the same key return the original result instead of double-charging.
Every callback is signed, timestamped and replay-protected, so you can trust what arrives.
Each call and message returns its own cost, so you can reconcile spend without waiting for an invoice.
A sandbox key is issued with your account. Build and integrate before you move a single real minute.
import requests r = requests.post( "https://api.meridwave.com/v1/calls", headers={"Authorization": f"Bearer {KEY}"}, json={ "from": "+13475550100", "to": "+13475550142", "answer_url": "https://you.app/flow", "record": True, }, headers_extra={"Idempotency-Key": order_id}, ) print(r.json()) # {'id': 'call_7Hk2…', 'status': 'ringing', # 'rate': '0.0085', 'direction': 'outbound'}
United States and Canada rates. Billed monthly in arrears for what you actually used.
Taxes, regulatory fees and surcharges are billed separately where they apply. International destinations are quoted per country — ask us for a rate sheet.
We're new, and we'd rather say so than pretend otherwise. Here's what that actually buys you.
Support goes to the people who run the platform, not a tiered queue. Early customers get a direct line.
Published per-minute and per-message pricing with no tier gymnastics, no hidden platform fee, no annual commit.
No contract term and no exit penalty. Numbers you bring stay portable, and we'll help you port them out if you go.
We're onboarding a small group of early customers and sizing capacity around them. If voice or messaging sits on your roadmap, start a conversation.