API Reference

Get Control Pane Analytics Summary

Return the cached Rankhog control-pane analytics summary for a paid workspace. `recap` covers the period's submitted comments, replies and posts, each labelled by what it did for the product, with upvotes, replies, a per-day grid and a per-account breakdown. `recap.siteVisits` is the visits from Reddit that the customer's own analytics (Plausible, Fathom or Datafast, connected in the app) counted in the last 7 days and the 7 before, or null when none is connected; Rankhog adds no tracking links. The recap needs `reddit:activity:read`; without it `recap` is null. Cache policy: cached. Idempotency: none. Auth modes: api_key, mcp_oauth, session_bearer.

POST
/agent/v1/analytics/control-pane-summary

Return the cached Rankhog control-pane analytics summary for a paid workspace. recap covers the period's submitted comments, replies and posts, each labelled by what it did for the product, with upvotes, replies, a per-day grid and a per-account breakdown. recap.siteVisits is the visits from Reddit that the customer's own analytics (Plausible, Fathom or Datafast, connected in the app) counted in the last 7 days and the 7 before, or null when none is connected; Rankhog adds no tracking links. The recap needs reddit:activity:read; without it recap is null. Cache policy: cached. Idempotency: none. Auth modes: api_key, mcp_oauth, session_bearer.

Authorization

AuthorizationBearer <token>

Rankhog organization API key sent as Authorization: Bearer rhog_....

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/agent/v1/analytics/control-pane-summary" \  -H "Content-Type: application/json" \  -d '{    "managedRedditAccountId": "mra_2x9rnkhdemo",    "organizationId": "org_2x9rnkhdemo",    "websiteId": "site_2x9rnkhdemo",    "period": "week"  }'
{  "accountPool": {    "connectedRedditAccounts": 3,    "karma": {      "current": 924,      "delta": 42,      "deltaPercent": 4.76,      "previous": 882    }  },  "generatedAt": "2026-06-17T12:00:00.000Z",  "googleRankingsFound": {    "delta": 2,    "value": 8  },  "karma": {    "current": 284,    "delta": 31,    "deltaPercent": 12.25,    "previous": 253  },  "meaningfulSignals": {    "delta": 4,    "value": 19  },  "opportunitiesFound": {    "delta": 6,    "value": 42  },  "period": "week",  "periodEndsAt": "2026-06-21T23:59:59.999Z",  "periodStartsAt": "2026-06-15T00:00:00.000Z",  "plannedWork": {    "generatedAt": "2026-06-17T12:00:00.000Z",    "needsAttention": 2,    "plannedActions": {      "blocked": 1,      "comments": 6,      "dueThisWeek": 8,      "openTotal": 13,      "pendingApproval": 3,      "posts": 4,      "ready": 5,      "research": 2,      "running": 1    },    "workerJobs": {      "activeTotal": 4,      "failedLast24h": 1,      "running": 1,      "scheduled": 3    }  },  "postsAndComments": {    "comments": {      "delta": 3,      "value": 11    },    "posts": {      "delta": 1,      "value": 4    }  },  "recap": {    "accounts": [      {        "comments": 9,        "linked": 2,        "named": 3,        "posts": 1,        "redditAccountId": "racc_01JXAMPLE",        "redditUsername": "acme_builder",        "replies": 3,        "repliesReceived": 11,        "topic": 4,        "upvotes": 87,        "warmup": 4      }    ],    "activeDays": 6,    "days": [      {        "count": 2,        "day": "2026-06-20"      },      {        "count": 3,        "day": "2026-06-21"      }    ],    "deleted": 0,    "kinds": {      "linked": 2,      "named": 3,      "topic": 4,      "warmup": 4    },    "productName": "Acme Notes",    "removed": 1,    "repliesReceived": 11,    "siteVisits": {      "lastReadAt": "2026-06-21T14:00:00.000Z",      "previousWeek": 30,      "provider": "plausible",      "providerLabel": "Plausible",      "site": "acmenotes.com",      "status": "connected",      "statusMessage": null,      "thisWeek": 42    },    "since": "2026-06-15",    "timeZone": "America/New_York",    "totals": {      "comments": 9,      "posts": 1,      "replies": 3    },    "upvotes": 87,    "words": 1240  }}
{  "error": {    "code": "agentic_invalid_input",    "details": {      "issues": [        {          "code": "invalid_type",          "message": "Expected string, received undefined.",          "path": [            "organizationId"          ]        }      ]    },    "message": "Request body did not match the agentic capability schema."  }}

{  "error": {    "code": "agentic_unauthorized",    "message": "Authenticate before using Rankhog agentic capabilities."  }}

{  "error": {    "code": "agentic_paid_plan_required",    "details": {      "managedAccountBillingStatus": "active",      "subscriptionStatus": "past_due"    },    "message": "Rankhog agentic capabilities are available only for active or trialing paid workspaces."  }}

{  "error": {    "code": "agentic_missing_scope",    "details": {      "missingScopes": [        "rankhog:read"      ]    },    "message": "Missing required scope: rankhog:read."  }}

{  "error": {    "code": "agentic_managed_account_not_found",    "message": "Managed Reddit account not found."  }}
{  "error": {    "code": "agentic_internal_error",    "message": "Rankhog could not complete this agentic request."  }}