API overview REST endpoints by module. Every route below sits behind JwtAuthGuard unless noted.
Hand-maintained, not generated
There's no OpenAPI spec behind this page. It's a direct reflection of the NestJS controllers.
Treat the controller source as the final word if this drifts.
Method Path Notes POST/auth/loginNo guard. Returns a JWT carrying { sub, tenantId }. No signup or refresh flow.
Method Path Notes GET/accountsList accounts for the current tenant. POST/accountsCreate a channel row. Requires riskAcknowledged: true for browser_session connections. GET/accounts/:idPATCH/accounts/:idDELETE/accounts/:idAlso unschedules any recurring mention-scrape job for the account. POST/accounts/:id/secretStore the encrypted session/bot credential. POST/accounts/:id/verifyRuns a live check against the platform, flips status to active on success. GET/accounts/:id/topic-performanceSee The loop . GET/accounts/:id/metrics-timeseries?days=7|30Zero-filled daily series behind Analytics .
Method Path Notes GET/postsFilterable by status, accountId, and a date range. POST/posts/:id/approveMoves pending_approval → scheduled. PATCH/posts/:id/bodyEdit draft text before approval. POST/posts/:id/rejectBody includes a rejection reason. See Review queue . POST/posts/:id/publishPublish now, skipping the schedule. PATCH/posts/:id/scheduleReschedule; replaces rather than duplicates the pending publish job. PATCH/posts/:id/mark-postedManual-posting accounts only. Requires the post already be ready_to_copy. DELETE/posts/:idRemoves the record. Does not un-post from the platform if already posted.
Method Path Notes GET/schedulesFilterable by account and date range; includes projected future runs. PATCH/schedules/:idPause/resume, or change cadence. GET / POST/configsPATCH / DELETE/configs/:idPOST/configs/:id/generateTriggers GenerationService.generate on demand.
Method Path Notes GET / POST/topicsShared across all accounts. GET / POST/brand-profilesScoped to one account.
Method Path Notes GET / POST/competitorsPATCH / DELETE/competitors/:idPause/resume tracking, or remove.
Method Path Notes GET/dm-threadsScrapes live on every call. No background job. GET/dm-threads/:id/messagesPOST/dm-threads/:id/messagesSends a reply through the account's session.
Method Path Notes GET/mentionsFilterable by status. POST/mentions/:id/approveSends the drafted reply. POST/mentions/:id/dismissGET / POST/reply-configsPATCH/reply-configs/:idToggle active or requireApproval.
Method Path Notes GET/billing/balancePOST/billing/topupGET/cost/summaryTotal spend, broken down by kind. GET/cost/eventsThe raw, itemized event ledger.
Method Path Notes GET/healthNo guard. Liveness check.