API REFERANSE · CONTENT
Content Agent API
Vekst-harness — keyword discovery, draft generation, approval queue.
Endepunkter for Growth Intelligence Agent Harness. Alle krever Basic Auth.
GET /api/content/state
Snapshot av hele harness-state: agenter, keywords, klynger, drafts, runs, actions, connections, tasks.
{ "generatedAt": "2026-05-15T13:00:00Z", "agents": [ { "slug": "keyword", "name": "Keyword Intelligence Agent", "role": "Trend discovery + opportunity scoring", "status": "active", "tier": "v1", "allowed_tools": ["gtrends:rising", "reddit:list", "..."], "budget_usd_month": 15, "monthly_spend_usd": 0.04, "risk_default": "low" } ], "clusters": [{ "id": 1, "label": "...", "composite_score": 92, "coverage": { "gap_score": 80 } }], "drafts": { "pending": [...], "approved": [...], "published": [...], "rejected": [...] }, "keywords": { "recent": [...] }, "runs": [...], "actions": [...], "connections": [...], "tasks": [...]}POST /api/content/run
Trigger pipeline. Async — returnerer 202.
Body:
{ "phase": "all|discover|analyze|generate" }all kjører discover → analyze → generate sekvensielt (~5-10 min på prod).
POST /api/content/drafts/:id/approve
Marker en draft som godkjent. Påkrevd før publish.
Body (optional): { "note": "string", "reviewer": "string" }
POST /api/content/drafts/:id/reject
Avvis en draft. Beholdes i basen for prompt-retraining.
Body (optional): { "note": "string", "reviewer": "string" }
POST /api/content/drafts/:id/edit
Rediger draft før publish.
Body:
{ "title": "string (optional)", "body": "string (optional)" }Minst én av title og body må være satt.
POST /api/content/drafts/:id/publish
Eksplisitt menneskelig handling. Eneste vei ut av harness for ekstern publisering.
Krever at draft har status='approved'.
Avhengig av channel:
- blog — skriver
<slug>.mdtilsrc/content/blog/og bygges på neste deploy - linkedin — POST til
linkedin.com/v2/ugcPosts(kreverLINKEDIN_ACCESS_TOKEN+LINKEDIN_ORG_URN) - x — splitter
bodypå\n---\n, posts som tråd via X v2 API (kreverX_BEARER_TOKEN)
Returns ved success:
{ "ok": true, "externalUrl": "https://...", "externalId": "..." }Returns ved manglende credentials:
{ "ok": false, "errorCode": "missing-credentials", "error": "LinkedIn credentials missing. Set LINKEDIN_ACCESS_TOKEN + LINKEDIN_ORG_URN in /etc/digilist-api.env." }Draft beholdes som approved slik at en admin kan retry etter å ha satt credentials.