ReactionSaaS
Documentation

ReactifySDK · Reference

API reference

All routes are namespaced under /api/reactify. They are independent from ReactionSDK routes (/api/sdk/*). Authentication uses the Reactify dashboard JWT unless marked public.

Source of truth lives in app/api/reactify/. For tier gates, see Plans & tiers.

MethodPathAuthDescription
GET/api/reactify/meBearer (dashboard JWT)Current creator profile, tier, and entitlements snapshot.
GET/api/reactify/plansPublicPublished tier catalog (limits, analytics depth, API access).
GET/api/reactify/templatesMixedList/search templates; some filters require creator auth.
GET/api/reactify/templates/[slug]PublicTemplate detail for embed resolution and previews.
POST/api/reactify/templates/[slug]/trackPublicTemplate analytics (views, selections).
GET/api/reactify/threadsBearerCreator-owned threads index (dashboard).
POST/api/reactify/threadsBearerCreate thread from template_slug or source media ids.
GET/api/reactify/threads/[thread_id]PublicThread JSON for custom rendering or verification.
PATCH/api/reactify/threads/[thread_id]BearerUpdate metadata, source attachment, publish state.
POST/api/reactify/threads/[thread_id]/claimBearerClaim flow for collaborative threads.
GET/api/reactify/threads/[thread_id]/reactionsPublicList reactions / branch nodes for thread UI.
POST/api/reactify/threads/[thread_id]/reactionsMixedSubmit reaction payload (recording, stitch, reply).
GET/api/reactify/threads/[thread_id]/branches/[reaction_id]PublicBranch detail for deep links.
GET/api/reactify/threads/[thread_id]/ranked-pathPublicRanked path leaderboard data.
POST/api/reactify/upload-urlBearerPresigned PUT for reaction or original source media.
GET/api/reactify/videos/[video_id]MixedSigned playback URL or external passthrough.
POST/api/reactify/videos/[video_id]/poster-upload-urlBearerPoster image upload for a video asset.
POST/api/reactify/eventsPublicTelemetry ingest; product_type fixed to reactify_sdk.
POST/api/reactify/install-pingPublicOptional install attribution ping from host sites.
GET/api/reactify/record-configPublicClient recording constraints (duration caps by tier).
GET/api/reactify/dashboard/threadsBearerPaginated dashboard thread list: query `page` (default 1), `limit` (default 20, max 100). Response includes `threads`, `page`, `limit`, `total`, `totalPages`.
GET/api/reactify/analytics/thread/[thread_id]BearerThread-level analytics when tier allows.
GET/api/reactify/leaderboardsPublicGlobal or scoped leaderboards.
GET/api/reactify/branch-leaderboardsPublicBranch competition standings.
GET/api/reactify/widgetsBearerList widgets for creator.
POST/api/reactify/widgetsBearerCreate/update widget configuration.
GET/api/reactify/widgets/public/[widget_id]PublicPublic widget manifest for embed script.
GET/api/reactify/marketplace/threadsPublicMarketplace discovery for threads.
GET/api/reactify/marketplace/widgetsPublicMarketplace discovery for widgets.
POST/api/reactify/reportMixedSafety / abuse reporting endpoint.

Client custom elements

The production bundle (reactify.js) calls these endpoints from the browser. You do not expose dashboard JWTs to anonymous viewers—public routes power the embed; creator routes stay in your signed-in tooling only.