Appearance
Getting Access
FAST is not self-serve. There is no sign-up page that hands out API keys: every operator is reviewed first, then provisioned by the FAST team. This page covers how to ask, what you get back, and how staging differs from production.
1. Request access
Fill in the form in the Get started section of fundedfast.eu. It asks for:
| Field | Required |
|---|---|
| Company name | Yes |
| Contact name | Yes |
| Business email | Yes. Credentials and the backoffice login go to this address. |
| Website | No |
| Estimated monthly challenges | No |
| Message | No |
The form posts to POST /v1/onboarding/request. That endpoint needs no authentication and accepts three submissions per client per hour. Each submission lands in a review queue for the FAST team, and you get a confirmation email straight away. We review every request within 24 hours.
You can also call the endpoint directly:
bash
curl -X POST https://api.fundedfast.eu/v1/onboarding/request \
-H "Content-Type: application/json" \
-d '{
"companyName": "Example Sportsbook Ltd",
"contactName": "Ana Example",
"contactEmail": "ana@example-sportsbook.com",
"website": "https://example-sportsbook.com",
"estimatedMonthlyChallenges": 500
}'
# -> 201 { "id": "…", "status": "pending", "message": "Your request has been submitted. …" }If you have questions before or after submitting, write to support@fundedfast.eu.
2. What you receive on approval
When the FAST team approves your request, FAST provisions a staging tenant in your company's name and emails the credentials to the contact address:
| Credential | Format | Where it lives | Used for |
|---|---|---|---|
| Server API key | key-… | Your backend only | Every server-to-server call (X-API-Key header): purchases, bets, progress, withdrawals, admin settings, minting user tokens |
| Public widget key | pk_… | Your frontend (safe to expose) | The embedded widget's tenant-level reads (tiers, leaderboard, widget config). User data also needs a user token. |
| Webhook secret | 64 hex characters | Your backend only | Verifying the X-Webhook-Signature header on webhooks and approval calls |
| Backoffice login | Your contact email + a generated password | backoffice.fundedfast.eu | The operator console. Sign-in also sends a one-time code to that email address. |
Store the keys when you receive them
FAST stores only hashes of the API key and widget key, so it cannot show them to you again. If you lose one, ask support for new keys. You can rotate the webhook secret yourself with POST /v1/admin/webhooks/rotate-secret.
The staging tenant comes pre-configured so you can start calling the API immediately:
- one ruleset called Standard, and two challenge tiers built on it, Starter and Pro. Edit them in the backoffice or through
/v1/admin/rulesetsand/v1/admin/challenge-tiers. - integration mode
sync:POST /v1/betsprocesses the event inline and returns the result. - a placeholder webhook URL (
https://example.com/webhooks/fast). Set your own before you expect any webhooks. You can do this in the backoffice under Settings or with the API:
bash
curl -X PUT https://api.fundedfast.eu/v1/admin/settings/webhook \
-H "X-API-Key: $FAST_API_KEY" -H "Content-Type: application/json" \
-d '{"webhookUrl":"https://your-backend.example.com/fast/webhooks"}'Keep the keys in your backend's environment, never in source control:
bash
FAST_API_KEY=key-…
FAST_WEBHOOK_SECRET=…
FAST_WIDGET_KEY=pk_… # the only one that may appear in frontend HTML3. Embed the widget on any site
There is nothing to register for the widget. It runs on whatever domain you embed it on: its routes accept browser requests from any origin, because they are authorised by the public key and a user token your backend mints, never by cookies. Keep the server key (key-…) on your backend; only pk_… belongs in a page.
4. Staging vs production
| Staging | Production | |
|---|---|---|
| How you get it | Created when your request is approved | Created by the FAST team from your staging tenant when you are ready to go live |
| Keys | Its own key-…, pk_… and webhook secret | New key-…, pk_… and webhook secret. Staging keys do not work against it. |
| Data | Test data. Reset any time with POST /v1/sandbox/reset or POST /v1/sandbox/reset/:userId. | Starts empty. Reset is refused (403). |
| Configuration | Yours to experiment with | Copied from staging: webhook URL, approval URL, widget theme, integration mode, challenge limits, and every ruleset and challenge tier. Test tiers come along too, such as the Quickstart one. Delete them on the production tenant after the clone: nothing references them there, whereas on staging a tier that has challenges can only be disabled. |
| Backoffice | Your login | The same login. After signing in, pick the tenant you want to work in. |
| Widget user tokens | The widget may mint its own token with the public key, for demos | Your backend must mint the token and pass it as data-user-token |
| Widget money actions without an approval URL | Allowed automatically | Refused with 403 approval_required. See Operator Approvals. |
| Analytics | Excluded from FAST's dashboards | Counted |
Both environments use the same API host, https://api.fundedfast.eu/v1. The key you send decides which tenant a call reaches.
When you switch to production, change all three secrets in your environment. Production gets a new webhook secret, and a backend still verifying with the staging secret will reject every production webhook and approval call. The Go-Live Checklist has the full list.
Next
- Quickstart: your first purchase, bet and passed challenge on staging
- Authentication: server key, public key, user tokens
- Staging Environment: resetting data and testing edge cases