Open Source Official SDKs, maintained by the Ovrtxt team

SDKs & Libraries

Integrate Ovrtxt into your stack in minutes. Our SDKs abstract away carrier routing, device detection, and webhook signature verification — leaving your team to focus on what matters.

JS
Stable

Node.js

The primary SDK. Full TypeScript types, async/await, WebSocket support for real-time auth events.

npm install @ovrtxt/sdk
v2.4.1 · GitHub → · npm →
Py
Stable

Python

Sync and async clients. Django and FastAPI integrations built-in. Type hints throughout.

pip install ovrtxt
v1.9.0 · GitHub → · PyPI →
Go
Stable

Go

Idiomatic Go. Context support, zero external dependencies, structured errors.

go get github.com/ovrtxt/ovrtxt-go
v1.3.2 · GitHub → · pkg.go.dev →
💎
Ruby
Beta
🐘
PHP
Beta
Java
Beta
📱
React Native
Beta
🌐
REST API
Always

Quickstart

From zero to verified in 5 lines.

Pick your language. Copy the snippet. That's your entire integration surface.

Installation

npm install @ovrtxt/sdk

Quickstart

verify.js
import { Ovrtxt } from '@ovrtxt/sdk';

const auth = new Ovrtxt({
  apiKey: process.env.OVRTXT_SECRET_KEY
});

const session = await auth.verify({
  phone: "+15550192834",
  brandName: "Joe's Gym",
  logoUrl: "https://joesgym.com/logo.png",
  webhookUrl: "https://api.joesgym.com/webhooks/ovrtxt"
});

// session.id — use to correlate the webhook event
// session.fallbackUri — render this as your CTA if channel = sms_fallback
console.log(session.id, session.channel);

What happens next

1

Device Detection

Ovrtxt pings the carrier graph to determine if the destination number supports RCS. No polling. No waiting.

2

RCS or Fallback URI

If RCS-capable: a branded rich card fires instantly. If not: session.fallbackUri contains the OS deep link — render it as a button on your login page.

3

Webhook or Poll

When the user taps Send, your webhookUrl receives a signed verification.completed event. Alternatively, poll GET /v1/verify/{id}.

User is Authenticated

Total wall-clock time: under 800ms average. Zero outbound OTP exposure. Zero bot attack surface.

Handling the fallback URI in your frontend:

// Example: React component
if (session.channel === 'sms_fallback') {
  return (
    <a href={session.fallbackUri} className="btn-auth">
      🔒 Tap to verify via SMS
    </a>
  );
}

Feature Coverage by SDK

Capability Node.js Python Go REST API
Initiate Verification
Poll Session Status
Cancel Session
Webhook Signature VerificationManual
Native TypeScript Types
WebSocket Realtime EventsSoonSoon
Async / Await SupportContext
Auto-Retry with BackoffManual
Usage / Billing Endpoint

Missing your language?

All our SDKs are open source. If you're working with a stack we don't support yet, file a GitHub issue or submit a PR — our team reviews contributions within 48 hours.

Star us on GitHub

Be notified when new SDK versions ship

💬

Join Developer Slack

Get help from the Ovrtxt team in real-time

📖

Read the Changelog

Every release. Every breaking change. Documented.