# Features API

## Optional: provider features

`POST https://api.rexplay.site/v2/features/<call>`, signed as in §2.3. Each game supports only some features. Call `get_game_features` first and look at `features[]`. Postman: `postman/GA_Features_API_v2.postman_collection.json`.

## The calls

| What you want | Call | Send | Get back |
|---|---|---|---|
| Which features does this game support? | `get_game_features` | `game_code`, `provider_slug` | `features[]` (`FEATURE_FREE_ROUNDS_GRANT`, `FEATURE_BONUS_BUY`, `FEATURE_JACKPOT_FEED`, `FEATURE_BET_RANGES`, `FEATURE_ROUND_REPLAY`, `FEATURE_TOURNAMENT`, `FEATURE_DEMO`, …), `limits` |
| Allowed stake levels for a game | `get_bet_ranges` | `provider_slug`, `game_code`, `currency` | `bet_ranges[]` with `bet_level`, `bet_value`, `min_bet`, `max_bet`, `step`. Use `bet_level` in `issue_grant`. |
| Bonus buy | `list_bonus_buy_types`, `issue_bonus_buy`, `cancel_bonus_buy` | `provider_slug`, `game_code`, `player_ref`, `bonus_type`, `amount`, `currency`, `attributes["idempotency_key"]` | `provider_ref` |
| Current jackpot values | `get_jackpots` | `provider_slug`, `currency` | `jackpots[]` |
| Replay or details of a disputed round | `get_round_replay`, `get_round_details` | `provider_slug`, `round_id`, `player_ref` | `replay_url` / `details` |
| Provider campaigns | `list_campaigns`, `cancel_campaign` | `provider_slug`, `campaign_id` | campaigns |
| Tournaments | `list_tournaments`, `get_tournament`, `get_leaderboard` | `provider_slug`, `tournament_id` | tournaments, `entries[]` |
| Provider-side statement for reconciliation | `query_provider_transactions` | `provider_slug`, `player_ref`, `date_from`, `date_to` | `transactions[]`, totals |

Errors: the `{"code", "message", "retryable"}` body of §2.8 with a non-200 status, Appendix A.2.

## Reference

- **POST** `/v2/features/get_game_features` — [getGameFeatures: parameters, errors, code samples, try it](/docs/aggregation/reference/features/#tag/features/POST/v2/features/get_game_features)
- **POST** `/v2/features/list_bonus_buy_types` — [listBonusBuyTypes: parameters, errors, code samples, try it](/docs/aggregation/reference/features/#tag/features/POST/v2/features/list_bonus_buy_types)
- **POST** `/v2/features/issue_bonus_buy` — [issueBonusBuy: parameters, errors, code samples, try it](/docs/aggregation/reference/features/#tag/features/POST/v2/features/issue_bonus_buy)
- **POST** `/v2/features/cancel_bonus_buy` — [cancelBonusBuy: parameters, errors, code samples, try it](/docs/aggregation/reference/features/#tag/features/POST/v2/features/cancel_bonus_buy)
- **POST** `/v2/features/get_jackpots` — [getJackpots: parameters, errors, code samples, try it](/docs/aggregation/reference/features/#tag/features/POST/v2/features/get_jackpots)
- **POST** `/v2/features/get_bet_ranges` — [getBetRanges: parameters, errors, code samples, try it](/docs/aggregation/reference/features/#tag/features/POST/v2/features/get_bet_ranges)
- **POST** `/v2/features/get_round_replay` — [getRoundReplay: parameters, errors, code samples, try it](/docs/aggregation/reference/features/#tag/features/POST/v2/features/get_round_replay)
- **POST** `/v2/features/get_round_details` — [getRoundDetails: parameters, errors, code samples, try it](/docs/aggregation/reference/features/#tag/features/POST/v2/features/get_round_details)
- **POST** `/v2/features/list_campaigns` — [listCampaigns: parameters, errors, code samples, try it](/docs/aggregation/reference/features/#tag/features/POST/v2/features/list_campaigns)
- **POST** `/v2/features/cancel_campaign` — [cancelCampaign: parameters, errors, code samples, try it](/docs/aggregation/reference/features/#tag/features/POST/v2/features/cancel_campaign)
- **POST** `/v2/features/query_provider_transactions` — [queryProviderTransactions: parameters, errors, code samples, try it](/docs/aggregation/reference/features/#tag/features/POST/v2/features/query_provider_transactions)
- **POST** `/v2/features/list_tournaments` — [listTournaments: parameters, errors, code samples, try it](/docs/aggregation/reference/features/#tag/features/POST/v2/features/list_tournaments)
- **POST** `/v2/features/get_tournament` — [getTournament: parameters, errors, code samples, try it](/docs/aggregation/reference/features/#tag/features/POST/v2/features/get_tournament)
- **POST** `/v2/features/get_leaderboard` — [getLeaderboard: parameters, errors, code samples, try it](/docs/aggregation/reference/features/#tag/features/POST/v2/features/get_leaderboard)
