Overview
This page documents the most important REST endpoints exposed byapp.winstory.io.It is intended for internal engineering use and for agency partners who need to integrate directly. Base URL:
https://app.winstory.io/api
Authentication:
- Most endpoints used by the app are server-side and authenticated via Supabase JWT (handled internally).
- Public endpoints are explicitly marked below.
Full OpenAPI/Swagger generation is planned as a next step. This page is the canonical source of truth until then.
Campaigns
GET /campaigns/moderation
Fetch moderation data for one campaign or all campaigns of a creator.
Query params:
campaignId(optional): string — specific campaignwalletAddress(optional): string — creator walletpage/pageSize(optional): server-side pagination when querying bywalletAddress
moderationData[]with:campaignId,campaignTitle,campaignStatus,creatorType,campaignTypeprogress(votes, staking, hybrid score)sessions[](individual moderator votes)blockchainMapping(on-chain mapping info)
GET /campaigns/dashboard?campaignId={id}
Unified dashboard endpoint used by the Validated Campaign view.
Returns:
metrics(ROI, completions, validated/refused history, vote history)platformFeeInfovalidationStatus
GET /campaigns/metrics?campaignId={id}
Detailed metrics for a single campaign.Used internally by
metricsService and CampaignEconomics.
GET /campaigns/metrics/batch?campaignIds=a,b,c
Batch metrics endpoint (used by MyWin/Creations):
- Input: comma-separated list of
campaignIds - Output:
{ metrics: Record<campaignId, CampaignMetrics>, errors?: Record<campaignId, string> }
POST /campaigns
Campaign creation endpoint (/campaigns/create in the codebase):
- Validates pricing, duration, rewards, and payment
- For B2C/Agency, crypto/Stripe payment must be verified before creation in production
Completions
GET /completions/community-completions
Public endpoint used by community moderation tooling.Returns a curated list of completions with moderation and reward data.
POST /completions/submit
Create a new completion for a given campaign (B2C or Individual):
- Validates user authentication
- Validates that the campaign is open and budget is available
- Handles payment (if required)
GET /completions/details?completionId={id}
Returns full moderation/score details for a single completion.
Rewards
GET /rewards/individual/distribution-status
Returns detailed reward distribution status for individual campaigns:
- Rankings, expected vs actual amounts
- On-chain distribution status and tx hashes
GET /campaigns/[id]/rewards-monitoring
B2C/Agency reward monitoring endpoint used by the Rewards Monitoring dashboard.
Short Links
GET /campaigns/short-link?campaignId={id}&devMode={true|false}
Returns or creates a short completion link for a campaign.
- In production, only available when the campaign is fully validated
- In development,
devMode=truebypasses validation for faster testing
GET /campaigns/short-link/redirect?shortCode={code}
Resolves a short code to the full completion URL.Used by
https://app.winstory.io/c/{code}.
Cron & Monitoring
GET /cron/monitor-resources
Periodic resource monitoring (CPU, DB connections, storage).Configured via
vercel.json cron.
GET /cron/monitor-onchain
On-chain consistency checker:
- Samples recent crypto payments
- Verifies on-chain status via RPC
- Logs anomalies into
system_error_logs