$tendiesWho's A Good Boy?

Data API

Read-only JSON for other sites and tools. Approved posts only; pending, filtered and rejected posts are never included. Responses are cached for up to 5 minutes. Browser calls are allowed from tendies.now, www.tendies.now and tendiesdev.space; server-to-server calls work from anywhere.

EndpointParamsReturns
/api/stats—Board totals, freshness, coverage start, this week vs last week (Monday weeks, Central Time).
/api/leaderboardlimit 1-100, default 25
range 7d | 30d | all (default)
Top posters by good boy points. Tracked accounts excluded.
/api/top-postslimit 1-50, default 10Top posts by the current engagement score.
/api/postshandle optional X handle
limit 1-100, default 25
before status_id cursor from next_before
Recent approved posts, newest first.
/api/poster/{handle}—One poster: rank, points, posts, 7d/30d points, best and latest posts, milestone badges (earned_at), next badge progress.
/api/officialaccount optional: TendiesRH | Tendieprodxn
limit 1-100, default 25
Recent posts and replies from the official accounts.
/api/analyticsrange 7d | 30d | all (default)List of /analytics charts with their data and config URLs.
/api/analytics/{chart}range 7d | 30d | all (default)The exact series a chart on /analytics renders (fields + values). Charts: daily-posts, cumulative-points, engagement, views-score, active-posters, new-vs-returning, post-mix, official, top-posters.
/api/analytics/{chart}/configrange 7d | 30d | all (default)
data 1 embeds the current values (offline); default pulls live data.url
Download a Vega-Lite v5 config for that chart (attachment). Open in https://vega.github.io/editor/.
/api/analytics/bundlerange 7d | 30d | all (default)
data 0 | 1
Download every chart config in one JSON file.

Index as JSON: /api. Paginate /api/posts by passing next_before back as before.