Skip to content

API Overview

PolitikTok exposes server functions as HTTP endpoints via Dioxus fullstack.

Architecture

PolitikTok uses Dioxus server functions rather than a traditional REST API. Each server function is:

  • Defined with #[server(endpoint = "name")]
  • Automatically serialized/deserialized
  • Callable from both client-side components and external HTTP requests

Authentication

All API endpoints (except check-auth) require an authenticated session. Authentication is handled via Keycloak OIDC session cookies.

Endpoint Conventions

Server function endpoints follow the pattern:

POST /api/{endpoint-name}
Content-Type: application/cbor

Module Endpoints

Each module exposes its own set of server functions. See the individual module documentation for endpoint details:

ModuleKey Endpoints
Volunteer Matchinglist-volunteers, match-volunteer, volunteer-detail
Policy Chatbotpolicy-chat, policy-ingest, list-policy-sessions
Sentiment Monitoringest-posts, sentiment-summary, detect-spikes
Campaign Copygenerate-copy, list-copy-history
Opposition Researchlist-opponents, generate-briefing, detect-contradictions
Canvassinggenerate-script
Fundraisinglist-donors, record-donation, draft-solicitation
Accountabilityextract-commitments, add-evidence, accountability-report
Empathy Simulatorsimulate-reaction
Narrative Contagionextract-narratives, predict-virality
Coalition Detectordetect-tensions
Candidate Briefingsgenerate-briefing
Call Intelligenceanalyze-transcript, call-trends
Coaching & Debatecoaching-exchange
Multilingualtranslate-content
Question Anticipationanticipate-questions, preparation-checklist
Local Issuesanalyze-local-issues
Policy Diffcompare-policies
Faction Mappermap-factions, consensus-finder
Regulatory Monitoranalyze-regulation
Media Monitoranalyze-article, compare-coverage
Disinfo Warninganalyze-disinfo, counter-messaging
Compliancegenerate-report, compliance-check
Meetingssummarize-meeting
Knowledge Basekb-query, kb-ingest
Adminadmin-health, admin-list-users

Feedback Endpoint

All modules share a common feedback endpoint:

POST /api/record-feedback

Parameters: module_id, resource_id, is_positive, is_active