Social contests in your app

We handle identity, contests, scoring, leaderboards, feeds, and real-time infrastructure while you keep your fans, authentication, and data.

0+
Creators
0+
Participants
0+
Contests
0+
Channels
The contest engine

One API for fans, contests, and prizes

Three building blocks cover the full lifecycle — from identifying fans to delivering prizes — without storing what shouldn't leave your app.

identify-fan.sh
$ curl https://api.soucher.com/v2/platform/identities \
    -H "Authorization: Bearer fcn_live_..." \
    -d tenant_user_id="user_42" \
    -d display_name="Alex M." \
    -d country="GB"
Featured customer

Fans Contest runs every contest on Soucher.

Live prediction games, quizzes, and tournaments for sports fans across iOS and Android — built end-to-end on the Soucher API.

Fans Contest home feed showing quiz and prediction contestsFans Contest events list of upcoming sports matches

Move fast. Sleep at night.

Three guarantees that make Soucher safe to plug into production — a typed public API, hardened webhook delivery, and tenant isolation that's never an opt-in.

One API, same shape for everyone

Tenant-scoped REST endpoints for identity, contests, scoring, leaderboards, and prize delivery. Whatever your stack — Rails, Node, Go, Django — you integrate the same way Adidas would.

Feature 01

Signed webhooks, hardened

HMAC-SHA256 signed events. Exponential backoff. Idempotency keys. Dead-letter routing on permanent failure. The boring stuff, done right.

Feature 02

Multi-tenant isolation

Every row carries a tenant_id. No shared schemas. No cross-tenant leaks. Your data stays yours.

Feature 03

Idempotent writes

Send the same event twice; the second is a no-op. No double-scores, no double-charges.

Geo-eligibility

Restrict participation by country at the contest level. Server-enforced, not client-trusted.

Bracket tournaments

Multi-round contests with seeding, advancement rules, and full bracket trees.

Sponsored prizes

Attach sponsor brands and reward currencies to any contest. Multiple sponsors per contest supported.

Anti-cheat blocks

PI-to-PI blocks, submission anti-cheat, and juror review for creative contests.

Live leaderboards

Ranks recompute on every scored entry. Pushed to your endpoint via webhook.

Built-in mechanics

Every contest format, one API

From prediction polls to creative submissions, the same integration ships any format. Configure the rules; ship the contest.

Why brands trust us

Three disciplines underpin everything we ship: how we hold your fans, how we deliver events, and how we keep your data yours.

Identity

PlatformIdentity

Lightweight fan records. Display name plus optional geo. We never store emails or phones.

Tenant API keys

fcn_* keys with rotation, scoping, and per-key audit. Issue and revoke without downtime.

Tenant-scoped reads

Every query carries tenant_id. Cross-tenant leaks are impossible at the row level.

Resilience

Signed webhooks

HMAC-SHA256 signatures per event, per tenant secret. Verify before you trust.

Idempotency keys

Send the same event twice; the second is a no-op. Safe to retry, always.

Dead-letter on failure

After max attempts, events land in a queue you can replay, inspect, or audit.

Operations

Audit log

Every tenant-bound action timestamped, scoped, and queryable. No mysteries.

OpenTelemetry traces

Distributed traces from API call to webhook delivery. Exportable to your stack.

Per-tenant isolation

Strict tenant boundaries. No shared schemas, no shared queries, no surprise leaks.

Pricing

Pricing scales with your contests

We're in private beta with custom pricing for each integration. Tell us about your fans, your contests, and your timeline — we'll write the right deal.

What we ask
Your monthly volume of contests, fans, and webhook events.
What we offer
A deal that fits — not a self-serve tier you've outgrown.
Timeline
Keys issued in days. Integrated within a sprint.
Jessie J
The ability to capture responses is a game-changer. If a user gets tired of the sign up and leaves, that data is still persisted. Additionally, it's great to be able to select between formats.ture responses is a game-changer.
Common questions

What integrators ask first

Every request needs a tenant API key in the Authorization header — keys look like fcn_<env>_<prefix><secret>. The platform verifies the key, resolves your tenant, and applies tenant scoping on every query. Fan authentication stays on your side — your fans never log into us.

Every webhook is signed with HMAC-SHA256 using a per-tenant secret. The signature ships in an X-Soucher-Signature header — verify before you trust. Replay attacks are blocked by per-event idempotency keys.

No emails, no phone numbers, no real names, no payment details. The platform stores a PlatformIdentity per fan — your tenant_user_id plus optional display name and country. Everything else lives in your database.

Retries with exponential backoff for up to 24 hours. After max attempts, the event lands in a dead-letter queue you can inspect, replay, or audit. You will never silently lose an event.

Yes. Send your existing user IDs as tenant_user_id when creating PlatformIdentities and we mint platform UUIDs you can store alongside. Migration is one bulk API call — no exports, no schema mapping.

A weekend for a proof of concept; a sprint for production. The integration surface is one API plus your webhook endpoints — most of the work is in your own code (mapping our PI UUID to your user id, writing webhook handlers, dispatching notifications and rewards your way).

Ready to start?

Ship your first contest this sprint.

Apply for a private-beta tenant. Keys in days. Integrated within a sprint.