Skip to content

Add BigBang Casino Aggregator API#2557

Open
dritancelait wants to merge 1 commit into
APIs-guru:mainfrom
dritancelait:add-bigbang
Open

Add BigBang Casino Aggregator API#2557
dritancelait wants to merge 1 commit into
APIs-guru:mainfrom
dritancelait:add-bigbang

Conversation

@dritancelait

Copy link
Copy Markdown

Adds the BigBang Casino Aggregator API to the directory.

Provider: bigbangcasino.bet
Category: entertainment
Spec source: https://api.bigbangcasino.bet/openapi.yaml (self-hosted)

B2B casino game aggregator API — 1,400+ games across 14 providers (Pragmatic Play, Greentube, Habanero, Evoplay,
Playtech, PG Soft, BGaming, 3 Oaks, Mascot Gaming, Inout Games, Gamzix, Hacksaw, Novomatic, Bellink). One signed REST
integration with normalized RGS callbacks. Free sandbox tier. Crypto-friendly billing.

Includes x-apisguru-categories: [entertainment], x-providerName: bigbangcasino.bet, x-origin pointing at the
self-hosted spec, and x-logo with brand color. YAML validates cleanly.

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces the initial OpenAPI 3.0.3 specification for the BigBang Casino Aggregator API, defining endpoints for listing games and providers, launching games in real-money and demo modes, and checking player session status. The review feedback suggests several key improvements to enhance API robustness and usability: adding pagination parameters to the /games endpoint to handle large catalogs, defining a 404 response for non-existent sessions on the /session/{id} endpoint, and explicitly marking required fields in both the Game and Provider schemas to ensure contract safety.

Comment on lines +52 to +74
parameters:
- name: provider
in: query
schema: { type: string }
description: Filter by provider slug (pragmatic-play, greentube, etc.)
- name: vertical
in: query
schema:
type: string
enum: [slot, live, crash, table, scratch, instant, bonus-buy]
- name: min_rtp
in: query
schema: { type: number, format: float }
description: Minimum RTP percentage (e.g. 96.5)
- name: volatility
in: query
schema:
type: string
enum: [low, medium, high, extreme]
- name: lang
in: query
schema: { type: string }
description: Language code (ISO 639-1) for game name localization

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The /games endpoint returns a list of games (1,400+ as per description) and includes a count in the response, but it lacks pagination parameters (such as limit and offset or page). Returning the entire catalog in a single request can lead to performance bottlenecks and high memory usage. Consider adding pagination parameters to this endpoint.

      parameters:
        - name: provider
          in: query
          schema: { type: string }
          description: Filter by provider slug (pragmatic-play, greentube, etc.)
        - name: vertical
          in: query
          schema:
            type: string
            enum: [slot, live, crash, table, scratch, instant, bonus-buy]
        - name: min_rtp
          in: query
          schema: { type: number, format: float }
          description: Minimum RTP percentage (e.g. 96.5)
        - name: volatility
          in: query
          schema:
            type: string
            enum: [low, medium, high, extreme]
        - name: lang
          in: query
          schema: { type: string }
          description: Language code (ISO 639-1) for game name localization
        - name: limit
          in: query
          schema: { type: integer, default: 20, minimum: 1, maximum: 100 }
          description: Number of items to return
        - name: offset
          in: query
          schema: { type: integer, default: 0, minimum: 0 }
          description: Number of items to skip

Comment on lines +182 to +197
responses:
'200':
description: Session state
content:
application/json:
schema:
type: object
properties:
session_id: { type: string }
player_id: { type: string }
game_code: { type: string }
state:
type: string
enum: [active, ended, expired]
started_at: { type: string, format: date-time }
ended_at: { type: string, format: date-time, nullable: true }

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The /session/{id} endpoint should define a 404 response for cases where the requested session ID does not exist, ensuring clients can handle non-existent sessions properly.

      responses:
        '200':
          description: Session state
          content:
            application/json:
              schema:
                type: object
                properties:
                  session_id: { type: string }
                  player_id: { type: string }
                  game_code: { type: string }
                  state:
                    type: string
                    enum: [active, ended, expired]
                  started_at: { type: string, format: date-time }
                  ended_at: { type: string, format: date-time, nullable: true }
        '404':
          description: Session not found

Comment on lines +205 to +222
Game:
type: object
properties:
code: { type: string, example: vs20fruitsw }
name: { type: string, example: Sweet Bonanza }
provider: { type: string, example: pragmatic-play }
vertical:
type: string
enum: [slot, live, crash, table, scratch, instant, bonus-buy]
thumb: { type: string, format: uri }
rtp: { type: number, format: float, example: 96.51 }
volatility:
type: string
enum: [low, medium, high, extreme]
paylines: { type: integer, example: 20 }
max_win: { type: integer, description: Max win multiplier of bet, example: 21100 }
languages: { type: array, items: { type: string } }
currencies: { type: array, items: { type: string } }

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The Game schema defines several properties but does not specify which ones are required. To ensure API clients can safely parse the response without encountering unexpected null values, please define the list of required properties (e.g., code, name, provider, vertical).

    Game:
      type: object
      required: [code, name, provider, vertical]
      properties:
        code: { type: string, example: vs20fruitsw }
        name: { type: string, example: Sweet Bonanza }
        provider: { type: string, example: pragmatic-play }
        vertical:
          type: string
          enum: [slot, live, crash, table, scratch, instant, bonus-buy]
        thumb: { type: string, format: uri }
        rtp: { type: number, format: float, example: 96.51 }
        volatility:
          type: string
          enum: [low, medium, high, extreme]
        paylines: { type: integer, example: 20 }
        max_win: { type: integer, description: Max win multiplier of bet, example: 21100 }
        languages: { type: array, items: { type: string } }
        currencies: { type: array, items: { type: string } }

Comment on lines +223 to +229
Provider:
type: object
properties:
slug: { type: string, example: pragmatic-play }
name: { type: string, example: Pragmatic Play }
game_count: { type: integer }
verticals: { type: array, items: { type: string } }

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The Provider schema defines several properties but does not specify which ones are required. Defining required properties (e.g., slug, name) ensures better contract safety for clients.

    Provider:
      type: object
      required: [slug, name]
      properties:
        slug: { type: string, example: pragmatic-play }
        name: { type: string, example: Pragmatic Play }
        game_count: { type: integer }
        verticals: { type: array, items: { type: string } }

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant