Build your own dashboard
Every screen of the Rewardly dashboard, reproduced with the API.
The entire merchant dashboard is built on the same public API you have, so you can embed a rewards program in your own product without ever sending users to ours. Here's the endpoint map, screen by screen.
Overview screen
GET /v1/account/overview
returns the wallet snapshot plus lifetime counts in one call:
{
"wallet": { "availableCents": 84500, "reservedCents": 12000, "currency": "USD" },
"stats": { "totalRewards": 214, "activeRewards": 12, "redeemedRewards": 188, "totalIssuedCents": 512300 }
}Recent activity comes from
GET /v1/rewards?page_size=10.
Rewards table
- List with filters:
GET /v1/rewards?status=SENT&external_id=...(paginated) - Detail with cards + event timeline:
GET /v1/rewards/:id - Actions: cancel, resend email
Send flow
- Brand picker:
GET /v1/catalogwithsearch/currency/country, or one brand viaGET /v1/catalog/brands/:brandKey - Single send:
POST /v1/rewards(with an idempotency key) - CSV import / batch:
POST /v1/rewards/bulk
Wallet screen
- Balance:
GET /v1/wallet - Ledger:
GET /v1/wallet/transactions - Add funds:
POST /v1/topups→ redirect tocheckoutUrl; history viaGET /v1/topups
Settings
- Branding:
GET /v1/account+PATCH /v1/account/branding
Developers screen
Full webhook endpoint management: create, update/pause, rotate secret, delivery log, and test ping.
Staying in sync
Prefer webhooks over polling: reward.* events
update your rewards table, card.issued/card.failed update detail views,
and wallet.credited refreshes the balance. Poll only as a reconciliation
fallback.
What stays in our dashboard
API key management and team membership are deliberately dashboard-only, so a leaked API key can't mint more keys or invite users.