Rivalless Games
CONNECT YOUR WEBSITE

Connect WordPress
or your own website.

Use our plugin with your WordPress theme, or have your developer connect a custom website through the API. Both use the same Games account and launch allowance.

Compare launch allowances →

WordPress plugin

Free to download and connect. Game launches require an active plan or valid trial. Use your existing WordPress theme; CasinoFrame is not required.

Download WordPress plugin 0.2.42

Verify this download

SHA-256: 28aa6021195afc6b0438538ceca82a1dc9d0447e1d444ed06a7caed89a7d0c7e

Requirements: WordPress 6.8 or newer, PHP 8.2 or newer, and an HTTPS website.

  1. Download and install. Upload the ZIP through WordPress → Plugins → Add New → Upload Plugin, then activate Rivalless Games.
  2. Get your website key. Add your domain name and copy its API key.
  3. Connect. Open Rivalless Games → Settings in WordPress, paste the key and click Connect.
Next: import and display games

In Rivalless Games → Catalogue sync, choose providers or individual games. Select Import & publish to make new games public immediately, or Import as drafts to review them first. Existing drafts stay drafts; later syncs preserve your titles, content and publication choices.

Place the Games Catalogue block or [rivalless_games_catalogue] on a WordPress page. Only published, visible games appear. Use Public display in plugin settings to adjust player text and colours.

Updating an existing installation?

Upload the latest plugin ZIP and choose to replace the installed version. Your saved connection, settings and games stay in place. There is no need to create another account or regenerate a working API key.

The credential stays on your WordPress server. Downloading or installing the plugin does not buy a subscription. Compare launch allowances →

Connect a non-WordPress website

Your developer can use the API to build a game catalogue and load free-play games inside your website. You need an HTTPS website and a server-side application. A static HTML page alone cannot safely hold the private API key.

  1. Add the website domain under Websites & API keys.
  2. Store that website's API key privately on your server. Use it as a Bearer token and send the registered HTTPS origin with each request.
  3. Fetch the catalogue and build your game pages.
  4. When a visitor chooses to play, request a short-lived launch ticket on your server and display the returned player URL.

Adding a site and reading the catalogue are free. Launching games requires an active plan or valid trial with allowance remaining. Subscription changes do not require a new API key.

Check the connection first

GET SERVICE_ORIGIN/api/v1/connection with the same headers below returns the connected site, current usage and whether launches are enabled. A valid key confirms the connection, not a paid subscription. Never put the API key in frontend JavaScript, a repository or an iframe URL.

Catalogue and usage requests
GET SERVICE_ORIGIN/api/v1/catalogue/batches?limit=50
Authorization: Bearer YOUR_PRIVATE_SITE_CREDENTIAL
X-Rivalless-Site-Origin: https://YOUR_REGISTERED_HOST

GET SERVICE_ORIGIN/api/v1/usage
Authorization: Bearer YOUR_PRIVATE_SITE_CREDENTIAL
X-Rivalless-Site-Origin: https://YOUR_REGISTERED_HOST

The batches API returns at most 100 metadata records per request. Follow next_cursor using the cursor parameter until complete is true and the cursor is null. Save progress after applying each batch; keep filters and the registered site unchanged. This does not use your launch allowance.

Filter and update your catalogue

Use provider, type, theme and game_ids for comma-separated selections. Search with q. Use available_only=1 when selecting new games. For ongoing syncs, omit that flag so unavailable records can update previously imported games; do not create new pages for unavailable records.

Update by stable game ID to avoid duplicates. A fresh sync picks up newly added records and availability changes. Keep the registered site and filters unchanged while following a cursor. Catalogue availability is not a guarantee that a provider will load in every country or on every device. In WordPress, publication follows the import choice, not the API record's review status.

Use /api/v1/catalogue/batches for new integrations. The legacy /api/v1/catalogue endpoint uses a revision checkpoint, not a page cursor.

Usage: GET /api/v1/usage reports the account's used and remaining allowance and period dates. It can return subscription_required when there is no active plan. That does not mean the API key is invalid.

Signed iframe embeds

Your backend requests a launch ticket after the visitor's age and country checks. Put the returned launch_path under your configured service origin in an iframe. This uses the same account allowance as the plugin and API.

Request a launch ticket on your server
POST SERVICE_ORIGIN/api/v1/launch-tickets
Authorization: Bearer YOUR_PRIVATE_SITE_CREDENTIAL
X-Rivalless-Site-Origin: https://YOUR_REGISTERED_HOST
Content-Type: application/json

{
    "game_id": "GAME_ID_FROM_CATALOGUE",
    "site_id": "YOUR_SITE_ID",
    "site_host": "YOUR_REGISTERED_HOST",
    "age_decision_reference": "YOUR_24_HEX_AGE_DECISION",
    "country": "VISITOR_ISO_COUNTRY",
    "locale": "en",
    "device": "desktop",
    "nonce": "YOUR_UNIQUE_REQUEST_NONCE"
}

The age reference must identify a real age confirmation in your application, not a constant claiming everybody is verified. Use a trusted country decision, not a hardcoded country intended to bypass restrictions. The nonce is 16-64 letters, digits, underscores or hyphens. Reuse it only for an exact retry.

Embed the returned player URL
<iframe src="ESCAPED_SERVICE_ORIGIN_PLUS_RETURNED_LAUNCH_PATH"
  title="Free-play game"
  allow="fullscreen" allowfullscreen
  referrerpolicy="no-referrer"></iframe>

Construct and HTML-escape the URL on your server from your trusted service origin and the returned relative path. Tickets expire and are single-use: create them on demand, not at page-build time. Only the registered HTTPS site can frame the player. Static, permanent provider iframe links are not a supported subscription integration.

When a game cannot start

Keep subscription and connection details in your private administration area, not in messages shown to website visitors. Check the response's code, not only its HTTP status.

  • subscription_required: ask the site owner to activate a plan. Visitors see "This game is currently unavailable." Do not offer a retry that cannot resolve a missing plan.
  • launch_quota_exceeded (429): the account allowance is used. Show usage and the next period to the owner; use the same neutral unavailable message for visitors. Do not retry automatically.
  • unauthorized or site_binding_mismatch: check the saved key, registered hostname and HTTPS origin on your server. Do not regenerate a key unless it needs replacing.
  • Temporary connection failures or service outages: offer a manual "Try again". Do not repeatedly request new tickets in a loop.
  • An explicit country restriction: explain that the game is unavailable in that country. Do not infer a country restriction from a generic loading error.

A launch session is counted when a ticket is issued, not when a game is verified as loaded. Reuse the same nonce and request data only for an exact retry while the ticket remains valid; a new nonce can create another counted launch. Do not automatically issue another ticket when a provider fails.

View plans and current access → · Manage websites and keys →