Docs: sync the Locales list with the backend — added zh_cn, cs, fi, el, hu, it, no, pl.
Core: document the initDemoBalance lifecycle in POST /create-new-game — it is applied only when the demo balance is first created for a (cID, extCID, user.id, currency) combination, it is ignored for a user that already has a demo balance, and no Public API operation updates the demo balance after creation.
Core: added the optional fallbackToDefaultLocale flag to Create new game. When true and the requested locale is not supported, the game is created with the default locale (en_us) instead of returning 400 locale_not_supported. Documented the default locale on the Locales page.
Core: corrected the documented error responses of Create new game to match the implementation — added the previously-undocumented 400 (currency_not_supported / locale_not_supported) and 403 (account_blocked / game_not_found) responses, each listing only the error codes it actually returns (the 401 / 500 responses no longer advertise business error codes).
Core: added GET /free-rounds to read a free-rounds campaign by its internal id or external extID — returns status source data (quantity, maxBet, maxMult, currency, validity window, and cancellation).
Correction: fiat currencies carry up to 2 decimal places — some (JPY, KRW, VND, …) carry none. The Integration Adapter spec previously said we support 2 decimal places for all fiat currencies. If you assumed exactly 2 everywhere, re-check your rounding.
Go: dropped the unused github.com/swipegames/platform-lib-common dependency, so importing the Go packages no longer requires access to a private module.
Added the currencyFilters and additionalCurrencies query parameters to Get Games Information, letting you narrow each game's currencies and betLines to the currency types you support. Omitting currencyFilters returns all non-virtual currencies, as before.
Add a Game Session entry to the Terms glossary and remove the standalone Game Session page.
Document the gameURL and gsID fields of the Create New Game response.
Clarify that the response gsID (Swipe Games's Game Session ID) is not the request sessionID (your external session reference) — in both the Core and Integration Adapter API specs and the integration docs.
Publish the Swipe Games Integration Skill — an Agent Skill that teaches an AI coding agent the whole integration (Core API + the four signed reverse calls), covering the official Node, Go, and PHP SDKs plus working directly against the HTTP API for any other language. Install with npx skills add swipegames/public-api.
Correction: Integration Adapter amount/balance fields are decimal strings in the currency's main unit (e.g. "0.90" = €0.90), not the smallest unit. The OpenAPI spec was always correct; this fixes the AI-integration guidance (skill + prompts) that previously described them as smallest-unit ("1000"). If you integrated against the old wording, re-check your money handling.
Rename the Integration Tools page (formerly "Integration SDKs", at /sdks) and reframe it so the Integration Skill is the recommended path, alongside the official SDKs and per-language AI prompts (now including a "No SDK / other language" prompt). No API changes.
Add optional horizontal_337x181 image (337:181 aspect) to GameInfoImages in the Get Games response (Core API). Backward compatible — the field is optional.
Remove hardcoded game ID table from the Games page. Available games are configured per integration — use the Get Games API endpoint to retrieve the list for your specific integration.
Add optional excludeBetLines query parameter to GET /games (Core API). When set to true, the betLines field is omitted from each game in the response, significantly reducing payload size for clients that don't need free-rounds bet-lines data.
Document gzip response compression support on GET /games (Core API). The endpoint accepts an optional Accept-Encoding: gzip header — strongly recommended because the response can exceed 1 MB and the request may take 10–20 seconds. No API behavior changes; documentation only.
Add optional roundID field to RefundRequest in the Integration Adapter API. This field identifies the game round associated with the refund and is optional for backward compatibility.
Clarify txID uniqueness guarantees across all Integration Adapter API endpoints (bet, win, refund). txID is a UUID v4 with a 3-month rolling uniqueness window; use composite key (txID + roundID) for longer guarantees.
Remove BETA label from documentation. Add support contact email to the navigation header.
Update the "Refund" section in Swipe Games Public Integration Adapter API page. The documentation clarify that when sending a 200 OK response to a /refund request, this should always have a valid body.
Add documentation about 30-day limit for finite free rounds campaigns. Free rounds with a validUntil date must not exceed 30 days. Infinite free rounds (no validUntil) are still supported.
Made returnUrl parameter optional in /create-new-game. The field is only used when games are launched via redirect (no iframe), so it should not always be required.