Quickstart
From zero to a working call in a few minutes
Publishable keys
Create a
pk_live_ key scoped to your originThree integration modes
Start with Floating. Choose Bar when your layout already has a place for calling. Choose Headless only when you need control over every screen, form, state and message.
What you get
- No React dependency. The bundled UIs render in an isolated Shadow DOM and work with plain JavaScript, TypeScript or any framework.
- English and Spanish, plus per-label copy overrides.
- Themeable via a theme object or CSS custom properties.
- No provider objects. The SDK encapsulates WebRTC and Telnyx entirely — your app never sees a SIP password or a Telnyx JWT.
- Real Ringee calls. Every call lands in call history, respects credits, caller ID rules and Do Not Call, and fires your webhooks.
How agents sign in
A publishable key identifies an installation, not a person. Agent identity is proven separately with a one-time code sent by email: That means it is safe to shippk_live_… in your frontend. It is not safe to ship the cik_live_… Public API key — those are different credentials. See Publishable keys.
Requirements
Before embedding:- an active Ringee Custom Integration;
- a
pk_live_…publishable key scoped to your exact origin; - a Ringee agent with access to that workspace;
- at least one caller ID available to that agent or workspace;
- enough credit and permission to place calls;
- HTTPS in production — browsers require it for microphone access;
- a modern browser with WebRTC and
navigator.mediaDevices.
+13055550198, +34911234567, +18095550123.
Not included in this release
- There is no public Ringee URL you can drop straight into
<iframe src="…">. - There is no automatic
data-ringee-keyloader attribute. - There is no separate React wrapper package — mount from
useEffect, see React and Next.js.
allow="microphone", an allowed origin and storage access. There is no ready-made postMessage bridge yet.
Dialer SDK or click-to-call?
Many teams start with click-to-call and move to the SDK once they want the call to live in their own interface.
Next steps
Quickstart
Place your first call from your own page
API reference
Options, methods, events and states

