RelayAPI
Guides

Posting Streaks

Track and maintain your organization's posting consistency with streak tracking.

Overview

Posting streaks track how many consecutive days your organization has maintained an active posting cadence. Every time a post is successfully published, a 24-hour window starts. Publish another post within that window to keep the streak going.

Streaks are available on all plans and are tracked per-organization.

How Streaks Work

  1. Publish a post — this starts or extends your streak
  2. 24-hour window — you have 24 hours from your last post to publish again
  3. Warning at 22 hours — team members receive a notification 2 hours before the streak expires
  4. Streak breaks at 24 hours — if no post is published within the window, the streak resets to zero

The streak counter shows how many days have elapsed since the streak started, not the number of posts. Publishing multiple posts in a single day still counts as one day.

API Reference

Get Streak Status

curl https://api.relayapi.dev/v1/streak \
  -H "Authorization: Bearer rlay_live_your_api_key"

Response:

{
  "active": true,
  "current_streak_days": 15,
  "streak_started_at": "2026-03-21T14:30:00Z",
  "last_post_at": "2026-04-05T10:00:00Z",
  "best_streak_days": 42,
  "total_streaks_broken": 3,
  "hours_remaining": 14.5
}
FieldTypeDescription
activebooleanWhether there is a current active streak
current_streak_daysintegerCurrent streak length in days
streak_started_atstring | nullISO 8601 timestamp of when the streak started
last_post_atstring | nullISO 8601 timestamp of the most recent post
best_streak_daysintegerLongest streak ever achieved
total_streaks_brokenintegerTotal number of streaks that have ended
hours_remainingnumber | nullHours remaining before the current streak expires

SDK Usage

import Relay from "@relayapi/sdk";

const relay = new Relay({ apiKey: "rlay_live_..." });

const streak = await relay.streaks.retrieve();

if (streak.active) {
  console.log(`Current streak: ${streak.current_streak_days} days`);
  console.log(`Hours remaining: ${streak.hours_remaining}`);
}

Webhook Events

Subscribe to streak events via webhooks to integrate streak data into your workflows:

EventDescription
streak.startedFirst post after no active streak
streak.warning22 hours since the last post (2 hours remaining)
streak.broken24 hours passed without a post, streak reset
streak.milestoneStreak reached a milestone: 7, 30, 100, or 365 days

Notification Preferences

Streak notifications are enabled by default for all team members. Each user can opt out from the dashboard settings under Notifications > Streak Warnings.

Notification channels:

  • In-app — badge and notification in the dashboard
  • Email — warning email 2 hours before expiry, and a notification when the streak ends

Best Streak Tracking

Unlike simple streak counters, RelayAPI tracks your organization's best streak ever. When a streak breaks, the best_streak_days field is updated if the broken streak was longer than the previous record. This lets you gamify your posting goals.

Dashboard Integration

The posting streak appears in two places in the dashboard:

  • Sidebar — a flame icon with the current day count, always visible during an active streak. Turns red and pulses when less than 2 hours remain.
  • Analytics page — a detailed streak card showing current streak, best streak, start date, and time remaining.

Found something wrong? Help us improve this page.

On this page

Submit an Issue
Requires a GitHub account.View repo