Introduction

Quick Start

This guide walks you through generating an API key, making your first authenticated request, and receiving a webhook event. You should be sending and receiving live data in under five minutes.

Before you start

  • · A FrontRow creator account
  • · Completed identity verification (KYC) via Persona
  • · A terminal with curl available, or any HTTP client

Code samples below use Node.js / TypeScript. The same calls work from any language — see the API Reference for the raw HTTP shape.

01

Generate an API key

Sign in to your FrontRow creator account and open Settings → Developer. Click Create API key, give it a recognizable name (for example local-dev), and select the scopes the integration needs.

Copy the key immediately — it’s shown once and stored hashed at rest. If you lose it, revoke it and create a new one.

02

Set your environment

Export the key as an environment variable so you don’t paste it into command history or commit it by accident.

bash
1export FRONTROW_API_KEY="fr_live_..."

All requests go to https://frontrow.center/api/v1.

03

Make your first request

Fetch the authenticated creator’s profile to confirm the key works:

bash · curl
1curl https://frontrow.center/api/v1/me \
2 -H "Authorization: Bearer $FRONTROW_API_KEY"

You should receive a JSON response like:

json · 200 OK
1{
2 "id": "usr_8f3c1a92",
3 "handle": "yourname",
4 "displayName": "Your Name",
5 "subscriberCount": 1284,
6 "verified": true
7}

04

Send a message

Reply to a fan in an existing conversation. Replace conv_... with a real conversation ID from GET /api/v1/conversations.

ts · Node.js
1const res = await fetch(
2 "https://frontrow.center/api/v1/conversations/conv_abc/messages",
3 {
4 method: "POST",
5 headers: {
6 Authorization: `Bearer ${process.env.FRONTROW_API_KEY}`,
7 "Content-Type": "application/json",
8 },
9 body: JSON.stringify({
10 text: "Hey! Thanks for the sub — anything you'd like to see?",
11 }),
12 }
13);
14 
15const message = await res.json();
16console.log(message.id);

Messages sent through the API are automatically tagged as AI-generated when the calling key is associated with an agent integration. The fan sees a small “AI” label so transparency stays intact.

05

Receive a webhook

Webhooks let your application react the moment something happens — a new subscriber, a new message, a tip. From Settings → Developer → Webhooks, add an endpoint URL and pick the events you care about.

FrontRow signs every payload with HMAC-SHA256 using your webhook signing secret. Verify it before trusting the body:

ts · webhook handler (Node.js + Express)
1import crypto from "node:crypto";
2 
3app.post("/webhooks/frontrow", (req, res) => {
4 const signature = req.header("X-FrontRow-Signature");
5 const expected = crypto
6 .createHmac("sha256", process.env.FRONTROW_WEBHOOK_SECRET)
7 .update(req.rawBody)
8 .digest("hex");
9 
10 if (signature !== expected) {
11 return res.status(401).send("Invalid signature");
12 }
13 
14 const { event, data } = JSON.parse(req.rawBody);
15 
16 if (event === "message.received") {
17 // hand off to your agent
18 }
19 
20 res.sendStatus(200);
21});

Where to go next

Browse the full set of endpoints, request bodies, and webhook events in the API Reference. Every endpoint includes copy-paste examples in curl and JavaScript.