Skip to main content

Provider Limits

Use Case

Provider limits control the minimum and maximum bet amounts that the platform enforces per game provider. Limits operate at two levels:

  • Team-level limits — Default min/max bet amounts that apply across all Brands for a given provider.
  • Brand-level limits — Per-brand overrides that take precedence over team-level defaults for a specific provider.

This two-tier system lets you set sensible platform-wide defaults and then fine-tune limits for individual brands (e.g. to accommodate VIP or high-volume operators).

Effective limit priority:

Brand-level limit  →  (if set, this takes effect)
Team-level limit → (fallback when no brand override)
No limit → (if neither is configured, no enforcement)

Complete Flow — Team-Level Limits

Step 1 — List Team-Level Limits

GET /api/provider-limit/team

Returns all team-level provider limits configured for your team.

No query parameters.

Response:

[
{
"provider_id": 3,
"provider_code": "evolution",
"min_bet": "1000.00",
"max_bet": "5000000.00"
},
{
"provider_id": 7,
"provider_code": "pragmatic",
"min_bet": "500.00",
"max_bet": "2000000.00"
},
{
"provider_id": 12,
"provider_code": "betconstruct",
"min_bet": "1000.00",
"max_bet": "10000000.00"
}
]

Only providers that have a limit record are returned. Providers without any configured limit are not listed.


Step 2 — Set or Update a Team-Level Limit

PUT /api/provider-limit/team/{provider_id}

Creates or updates the team-level min/max bet for a specific provider. This is an upsert operation — if a limit already exists it is updated, otherwise a new record is created.

Path parameter: provider_id — the numeric ID of the provider.

Request body:

{
"min_bet": "1000.00",
"max_bet": "5000000.00"
}
FieldTypeRequiredConstraintsDescription
min_betdecimal stringYes≥ 0Minimum allowed bet amount
max_betdecimal stringYes≥ 0, ≥ min_betMaximum allowed bet amount

Response (200 OK):

{
"provider_id": 3,
"provider_code": "evolution",
"min_bet": "1000.00",
"max_bet": "5000000.00"
}

Limit changes propagate automatically to game servers. No manual restart or refresh is required.


Complete Flow — Brand-Level Limits

Step 3 — List Brand-Level Limits

GET /api/provider-limit/brand/{brand_id}

Returns the limit configuration for all providers in a specific Brand's whitelist. Each entry shows the team-level limit, the brand-level override (if any), and the computed effective limit.

Path parameter: brand_id — the numeric ID of the Brand.

Response:

[
{
"provider_id": 3,
"provider_code": "evolution",
"team_min_bet": "1000.00",
"team_max_bet": "5000000.00",
"brand_min_bet": "5000.00",
"brand_max_bet": "10000000.00",
"effective_min_bet": "5000.00",
"effective_max_bet": "10000000.00",
"has_override": true
},
{
"provider_id": 7,
"provider_code": "pragmatic",
"team_min_bet": "500.00",
"team_max_bet": "2000000.00",
"brand_min_bet": null,
"brand_max_bet": null,
"effective_min_bet": "500.00",
"effective_max_bet": "2000000.00",
"has_override": false
}
]
FieldDescription
team_min_bet / team_max_betThe team-level defaults for this provider. "0.00" if no team limit is set.
brand_min_bet / brand_max_betThe brand-specific override. null if no override is set for this brand.
effective_min_bet / effective_max_betThe limit actually enforced: brand override if present, otherwise team default.
has_overridetrue if this brand has an explicit override for this provider.

Only providers in the Brand's provider whitelist are returned. See the Brand Management guide for how to configure the whitelist.

404 Not Found is returned if the brand does not exist or belongs to a different team.


Step 4 — Set or Update a Brand-Level Limit

PUT /api/provider-limit/brand/{brand_id}/{provider_id}

Creates or updates a brand-level limit override for a specific provider. This is an upsert operation.

Path parameters:

ParameterDescription
brand_idNumeric ID of the Brand
provider_idNumeric ID of the provider

Request body:

{
"min_bet": "5000.00",
"max_bet": "10000000.00"
}
FieldTypeRequiredConstraintsDescription
min_betdecimal stringYes≥ 0Brand-specific minimum bet amount
max_betdecimal stringYes≥ 0, ≥ min_betBrand-specific maximum bet amount

Response (200 OK): Full BrandLimitResponse with effective values:

{
"provider_id": 3,
"provider_code": "evolution",
"team_min_bet": "1000.00",
"team_max_bet": "5000000.00",
"brand_min_bet": "5000.00",
"brand_max_bet": "10000000.00",
"effective_min_bet": "5000.00",
"effective_max_bet": "10000000.00",
"has_override": true
}

Limit changes propagate automatically to game servers. No manual restart or refresh is required.


Important Notes

  • min_bet must be less than or equal to max_bet. A request where min_bet > max_bet returns 422 Unprocessable Entity.
  • Both limits are required in each PUT request. There is no partial update for limits — always supply both min_bet and max_bet.
  • A team-level limit of "0.00" / "0.00" is treated as "no limit configured" from the effective-value perspective. If neither team nor brand limits are set, the platform does not enforce a bet size cap.
  • Brand-level limits are only visible for providers in the brand's whitelist. Add the provider to the brand's whitelist before configuring brand-specific limits.
  • Removing a brand-level override is not yet supported via the API. To effectively revert to team defaults, set the brand limit to match the team limit values.
  • Provider IDs are required. Contact your Ruby account manager to obtain the list of available provider IDs and codes for your team.
  • Limit changes propagate automatically to game servers. No manual restart or refresh is required.