Skip to content

Missions Guide ​

Time-boxed engagement tasks. "Place 10 bets this week." "Wager 200 EUR today." Completions grant rewards.

Works standalone - no challenge or funded account required.


How It Works ​

  1. Operator creates mission templates in the backoffice
  2. Users are enrolled automatically (auto mode) or opt-in manually
  3. Bets increment progress toward the goal
  4. On completion, a reward is granted and mission.completed webhook fires
  5. If the mission expires before completion, mission.expired fires

Deployment Modes ​

ModeDescription
Challenges + MissionsMissions drive daily activity, rewards feed into challenge bonuses
Missions onlyPure engagement. Rewards are free_bet, bonus_credit, etc. Operator fulfills.

Mission Template Fields ​

FieldRequiredDescription
nameYesDisplay name ("Weekend Warrior")
descriptionNoLonger explanation shown in widget
criteriaTypeYesWhat to count (see below)
criteriaThresholdYesTarget value to reach
rewardTypeYesWhat to grant on completion
rewardValueYesAmount/points to grant
rewardApplyModeNoauto (default) or claim
enrollmentModeYesauto, opt_in, or targeted
startsAtYesWhen the mission window opens
endsAtYesWhen the mission expires
iconNoIcon name for widget display
repeatableNoIf true, resets and can be done again

Criteria Types ​

TypeWhat it countsThreshold unit
bets_placedAccepted bet placementsCount
bets_wonWon settlementsCount
total_wageredCumulative stakeCents
odds_aboveBets at odds >= thresholdDecimal odds
bets_settledAny settlement (won + lost)Count
bet_countSame as bets_placedCount
win_countSame as bets_wonCount

Enrollment Modes ​

ModeBehavior
autoAll users are enrolled when the mission starts. No action needed.
opt_inUser must click "Join" in the widget or call POST /users/:id/missions/:id/join
targetedOperator selects specific users via admin API

API Reference ​

Operator (admin) ​

MethodEndpointPurpose
GET/v1/admin/missionsList all mission templates
POST/v1/admin/missionsCreate a mission template
PUT/v1/admin/missions/:idUpdate a mission
DELETE/v1/admin/missions/:idDelete a mission
GET/v1/admin/missions/statsGlobal mission stats
GET/v1/admin/missions/:id/statsStats for a specific mission

Public (widget key) ​

MethodEndpointPurpose
GET/v1/users/:userId/missionsActive + available + completed missions
POST/v1/users/:userId/missions/:id/joinJoin an opt-in mission

SDK Usage ​

typescript
import { FastClient } from '@fundedfast/sdk';
const fast = new FastClient({ apiKey: 'key-...' });

// List missions
const missions = await fast.admin.missions.list();

// Create a mission
await fast.admin.missions.create({
  name: 'Weekend 10',
  criteriaType: 'bets_placed',
  criteriaThreshold: 10,
  rewardType: 'free_bet',
  rewardValue: 500,
  enrollmentMode: 'auto',
  startsAt: '2026-07-05T00:00:00Z',
  endsAt: '2026-07-07T23:59:59Z',
});

// Get user missions (public)
const { active, available, completed } = await fast.admin.missions.getUserMissions('player-42');

Webhook Events ​

EventWhen
mission.enrolledUser enrolled (auto or join)
mission.progressProgress incremented
mission.completedTarget reached, reward granted
mission.expiredTime ran out before completion

Widget Display ​

Missions appear as collapsible rows in the Missions tab:

  • In Progress (blue accent): progress bar, time remaining
  • Available (neutral): description, join button (opt-in) or auto badge
  • Completed (grey): done checkmark, completion date

BLACKLINE CONSULTING d.o.o.