ReactifySDK · Guides
Patterns map to API reference routes. Each example sits with its explanation—no cramped side rail. Replace host and auth for your environment.
In-page recorder embed (recommended)
Bootstrap reactifyWprtEmbed.apiKey before reactify.js so "React To This" opens a modal (same as WordPress). Base is https://api.reactionsaas.com. Try the SDK playground.
<script>
window.reactifyWprtEmbed = {
base: "https://api.reactionsaas.com",
apiKey: "YOUR_PUBLISHABLE_API_KEY"
};
window.reactifyShopifyEmbed = window.reactifyWprtEmbed;
window.REACTIFY_EMBED_BASE = "https://api.reactionsaas.com";
</script>
<script src="https://reactify-cdn.s3.us-east-2.amazonaws.com/reactify.js?v=1.1.34" defer></script>
<reactify-thread thread="YOUR_THREAD_ID" data-base="https://api.reactionsaas.com"></reactify-thread>View-only template embed
Without apiKey, the thread still renders, but "React To This" opens https://api.reactionsaas.com/reactify/record. Prefer the recorder embed above for production.
<script src="https://reactify-cdn.s3.us-east-2.amazonaws.com/reactify.js?v=1.1.34" defer></script>
<reactify-thread template="hot-takes"></reactify-thread>Read a thread (public JSON)
Useful for custom chrome or SSR previews alongside the embed.
const res = await fetch("/api/reactify/threads/thread_123", {
headers: { Accept: "application/json" },
});
const thread = await res.json();Create a thread (authenticated)
Dashboard JWTs come from the Reactify creator session—see GET /api/reactify/me.
const res = await fetch("/api/reactify/threads", {
method: "POST",
headers: {
"Content-Type": "application/json",
Authorization: "Bearer YOUR_DASHBOARD_JWT",
},
body: JSON.stringify({
template_slug: "hot-takes",
title: "Friday drop",
}),
});
const created = await res.json();Upload source media (original)
After upload, pass original_video_id into thread create or patch—see /reactify/record.
// 1) Mint upload URL (creator-authenticated route)
const u = await fetch("/api/reactify/upload-url", {
method: "POST",
headers: {
"Content-Type": "application/json",
Authorization: "Bearer YOUR_DASHBOARD_JWT",
},
body: JSON.stringify({
purpose: "original",
contentType: "video/mp4",
filename: "source.mp4",
}),
}).then((r) => r.json());
// 2) PUT file to presigned URL
await fetch(u.uploadUrl, { method: "PUT", body: file, headers: u.headers ?? {} });
// 3) Create thread referencing original_video_id from response
Send telemetry from your shell
No API key required for anonymous thread analytics; include anonymous_session_id to dedupe sessions. Event types: Event schema.
await fetch("/api/reactify/events", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
event_type: "thread_impression",
thread_id: "thread_123",
anonymous_session_id: "sess_demo",
}),
});Framework installs: ReactifySDK installation guides.