Rhapsody of Realities

Plug RhapsodyAsk into any website

Embed & API

Add RhapsodyAsk's chat and voice to any site with one script tag, or call the API from any backend. Every answer comes only from Rhapsody of Realities, with the devotional's date, title, edition and scripture.

Sign up with KingsChat or email, add your website or app, and get its key in a minute. No card needed for the trial.

Plans for websites and apps

Asking questions on RhapsodyAsk is free for everyone. These plans are for putting RhapsodyAsk on your own website or app. Every plan includes chat, voice, the widget, the inline iframe, the Android SDK and the API, after a 14-day free trial. Prices are in Espees; pay with Espees, card, bank or mobile money.

1. The widget (chat + voice)

Add your site in your developer dashboard to get a site key locked to your domains, then paste:

<script src="https://your-rora-host/widget.js" data-site="rora_YOUR_SITE_KEY" async></script>

Options: data-position="left", data-color="#c9a24a", data-label="RhapsodyAsk", data-mode="voice".

// Control it from your page
window.RhapsodyAsk.open();
window.RhapsodyAsk.ask("What does Pastor Chris teach about healing?");
window.RhapsodyAsk.close();

Already have a live chat? One bubble, not two

RhapsodyAsk works alongside LiveChat, Intercom, Tawk.to, Crisp, Zendesk and Freshchat, detecting them automatically. Pick one:

A. Shared bubble. RhapsodyAsk hides your live chat's bubble and shows one button with a small menu: Chat with RhapsodyAsk, Talk to RhapsodyAsk (voice) and Chat with our team, which opens your live chat. When the live chat is closed, its bubble stays hidden.

<script src="https://your-rora-host/widget.js" data-site="rora_YOUR_SITE_KEY" data-launcher="combined" async></script>

B. No RhapsodyAsk bubble. Keep your current bubble and open RhapsodyAsk from your own button, menu or your live chat's welcome message.

<script src="https://your-rora-host/widget.js" data-site="rora_YOUR_SITE_KEY" data-launcher="none" async></script>
<button onclick="RhapsodyAsk.open()">Ask a question</button>
<button onclick="RhapsodyAsk.openVoice()">Talk to RhapsodyAsk</button>

Either way, RhapsodyAsk shows a Chat with our team button inside its chat, so people can reach a person at any time.data-handoff="intercom" picks a provider by name, and data-handoff="none" turns the button off. For any other live chat, define what opens and hides it:

window.RoraHandoff = () => myLiveChat.open();       // "Chat with our team"
window.RoraHandoffHide = () => myLiveChat.hideLauncher(); // used by data-launcher="combined"

2. Inline iframe

<iframe src="https://your-rora-host/embed?site=rora_YOUR_SITE_KEY&parent=https://your-site.com"
        allow="microphone; autoplay" style="width:100%;height:640px;border:0;border-radius:16px"></iframe>

Android apps (Java SDK)

Embed RhapsodyAsk's chat and voice in one line, or build your own UI on the native API (streamed answers, native voice calls). The SDK and a sample app are in sdk/android of the RhapsodyAsk repository.

RoraConfig config = new RoraConfig.Builder(context).siteKey("rora_YOUR_SITE_KEY").build();
RoraActivity.start(activity, config, RoraView.Mode.CHAT);   // or Mode.VOICE

RoraClient rora = new RoraClient(config);                    // native, streamed
rora.chat("How do I walk in righteousness?", null, listener);

// App already has live support? Show "Chat with our team" in RhapsodyAsk and open your own screen:
RoraActivity.setHumanHandoff(roraScreen -> roraScreen.startActivity(new Intent(roraScreen, SupportChatActivity.class)));

3. REST API

OpenAPI: https://your-rora-host/api/public/v1/openapi. Send your site key in X-Rora-Site-Key; browser calls are limited to the site's allowed origins.

curl -X POST https://your-rora-host/api/public/v1/ask \
  -H "Content-Type: application/json" \
  -H "X-Rora-Site-Key: rora_YOUR_SITE_KEY" \
  -d '{"question":"Comment recevoir la guérison divine ?","userId":"user-123"}'
// Response
{
  "answer": "… Pastor Chris teaches that … [1]",
  "language": "fr",
  "citations": [{ "n": 1, "date": "2024-03-14", "title": "…", "fulldate": "March 14th, 2024",
                  "edition": "Rhapsody of Realities, March 2024 edition", "openingScripture": "…" }],
  "sources": [ … ],
  "conversationId": "…"   // pass back to keep the conversation going
}
POST https://your-rora-host/api/public/v1/chat   // same answer streamed as NDJSON: meta, sources, delta…, done
GET https://your-rora-host/api/public/v1/search?q=righteousness&year=2023
GET https://your-rora-host/api/public/v1/devotional/2026-10-01