Acres Manufacturing · AsyncAPI Specification
Acres Manufacturing Foundation Events
Version
View Spec
View on GitHub
Casino GamingCasino Management SystemGaming TechnologySlot MachinesCashless PaymentsReal-Time DataEvent StreamingWebSocketBluetooth Low EnergyLoyalty and BonusingHospitalityAsyncAPIEvents
AsyncAPI Specification
generated: '2026-09-06'
method: searched
source: https://github.com/acres4/foundation-documentation/blob/master/apis/event/1.4/usage.md — the Foundation
Event Replay API reference published by Acres in its own acres4 GitHub organization (versions 1.2, 1.3
and 1.4 are each documented in their own folder; 1.4 is the current one).
name: Foundation Event Replay API — event surface
description: 'Acres publishes no AsyncAPI document. This is the event catalog read verbatim out of the
provider''s own API reference: two WebSocket channels and the 80 packet types their data dictionary
defines. It is recorded as a Webhooks/event-surface artifact rather than as a generated AsyncAPI spec,
because API Evangelist does not author contracts on a provider''s behalf — every event, field and channel
parameter below appears in the linked document.'
spec_published: false
spec_format: none
transport: websocket
payload: application/json
delivery: Server-push over a client-initiated WebSocket. This is not an HTTP callback/webhook surface
— the consumer dials out to the property's Foundation host and the server streams packets. A request
that is not upgraded to a WebSocket is rejected with HTTP 400.
host_pattern: wss://{property}.kailabor.com
host_note: '{property} is the subdomain of the casino running Foundation, so every consumer connects to
their own operator''s host. There is no shared vendor endpoint to probe and none was invented.'
ordering:
field: idx
description: Monotonically increasing uint64 the provider uses to apply a global ordering to every packet
in the stream. sas_queue_index orders events that passed through a single Bridge board and hdr_id
orders events through the same GMI.
channels:
- id: real-time-event-streamer
path: /nex7/sas-reader/ws/real-time-event-streamer
operation: subscribe
summary: Live stream of floor events as the collector receives them.
replay_buffer: Server keeps a cache of up to 10,000 events or 10 minutes, whichever is smaller; start_idx
reads slightly into the past.
parameters:
- name: sas_codes
description: Comma-delimited real-time SAS exception codes (decimal) to filter on; the full list is
SAS 6.02 Appendix A Table A-1.
- name: asset_number
description: Comma-delimited asset numbers. OR'd with sas_serial_number when both are set.
- name: sas_serial_number
description: Comma-delimited SAS serial numbers. OR'd with asset_number when both are set.
- name: start_idx
description: Global idx to start reading from.
- name: raw-json
description: Deprecated — the API only sends JSON from 1.4.3 onward.
deprecated: true
example: wss://mycasino.kailabor.com/nex7/sas-reader/ws/real-time-event-streamer?raw-json=true&start_idx=161526
- id: historical-event-streamer
path: /nex7/sas-reader/ws/historical-event-streamer
operation: subscribe
summary: Bounded replay of the event history.
parameters:
- name: start
description: Start of the window, nanoseconds since the Unix epoch.
- name: end
description: End of the window, nanoseconds since the Unix epoch.
- name: limit
description: Maximum number of packets to process before sending to the client.
- name: sas_codes
description: Comma-delimited real-time SAS exception codes (decimal).
- name: asset_number
description: Comma-delimited asset numbers. OR'd with sas_serial_number.
- name: sas_serial_number
description: Comma-delimited SAS serial numbers. OR'd with asset_number.
- name: start_idx
description: Global idx lower bound. Removed in 1.4.3.
removed_in: 1.4.3
- name: end_idx
description: Global idx upper bound. Removed in 1.4.3.
removed_in: 1.4.3
- name: raw-json
description: Deprecated — the API only sends JSON from 1.4.3 onward.
deprecated: true
example: wss://mycasino.kailabor.com/nex7/sas-reader/ws/historical-event-streamer?start=1561705200000000000&end=1562184823000000000&limit=50000
envelope:
description: Flattened JSON packet. Every packet other than MachineInfo and PlayerInfo carries these
top-level fields.
fields:
type: The type of data carried in this packet (the event catalog below).
sas_serial_number: Serial number of the EGM at which the event originated, if any.
player_card_number: Card number of the player to associate with this event, if any.
asset_number: Asset number of the gaming machine, if any.
host_id_player: Unique player identifier according to the player-tracking (host) system.
idx: Monotonically increasing global ordering index.
cache_time: Millisecond Unix epoch at which the global event collector received the event.
event_time: Millisecond Unix epoch at which the Machine Interface Board received the event.
sas_queue_index: Monotonic index of events through a single Bridge board.
hdr_id: Index of events through the same GMI.
dest: Index of the Bridge board component the event originated from.
device_serial_number: Serial number of the Foundation device (GMI, player-tracking unit, Bluetooth
transceiver).
data: Per-type map of event fields.
meters: Map of machine meters.
standard_meters:
- CoinIn
- CoinOut
- CurrentCredits
- GamesPlayed
- GamesWon
- HandpayCancelCredit
- Jackpot
common_data_fields:
MIBTime: Deprecated in the reference — "will be removed soon".
SASEvent: The SAS exception code for this real-time SAS event.
SASPoll: The code sent to the gaming machine to request information.
meter_change:
packet: PACKET_SAS_METERS_CHANGE
since: '1.3'
description: Reports meter movement as <meter name>:<meter value> pairs, where the meter name is any
meter from SAS 6.02 Appendix C Table C-7 or a standard Foundation data field. The reference lists
190 meter names Foundation uses.
meter_names_documented: 190
pii_note: The PlayerInfo packet carries personal data (first and last name, birth date, gender, zip code,
membership tier, banned flag, theoretical win). Named here only as a schema fact for integrators and
regulators; no player data was collected. The provider's published example payloads (example_1.4.2.json,
example_1.4.3.json) contain machine meter packets only.
event_count: 80
events:
- type: CriticalMeterMovement
summary: Critical Meter Movement
category: meters
standard_fields_only: false
data_fields:
- HostIDPlayer
- MIBTime
- type: MachineInfo
summary: Machine Info
category: entity-snapshot
standard_fields_only: false
data_fields:
- Bank
- Crc
- Denom
- EndDate
- HostDeviceID
- Paylines
- PurchaseDate
- SasSerialNumber
- Seat
- AssetNumber
- CabinetType
- LastUpdate
- Model
- ProgramNumber
- Reels
- SealNumber
- TokenDenom
- GLIConfirmation
- GameTheme
- HoldPct
- Mfr
- Section
- SerialNumber
- StartDate
- type: PlayerInfo
summary: Player Info
category: entity-snapshot
standard_fields_only: false
data_fields:
- LastEventTime
- LastLocation
- LastName
- LoyaltyTierStr
- Banned
- BirthDate
- CacheTime
- CardNumber
- ZipCode
- ZipExt
- HostClubNumber
- MembershipTierStr
- Theo
- Crc
- FirstName
- Gender
- HostIdPlayer
- type: SAS_EVENT_CODE_11_SLOT_DOOR_WAS_OPENED
sas_exception_code: '11'
summary: Slot door was opened
category: doors-and-security
standard_fields_only: true
- type: SAS_EVENT_CODE_12_SLOT_DOOR_WAS_CLOSED
sas_exception_code: '12'
summary: Slot door was closed
category: doors-and-security
standard_fields_only: true
- type: SAS_EVENT_CODE_13_DROP_DOOR_WAS_OPENED
sas_exception_code: '13'
summary: Drop door was opened
category: doors-and-security
standard_fields_only: true
- type: SAS_EVENT_CODE_14_DROP_DOOR_WAS_CLOSED
sas_exception_code: '14'
summary: Drop door was closed
category: doors-and-security
standard_fields_only: true
- type: SAS_EVENT_CODE_15_CARD_CAGE_WAS_OPENED
sas_exception_code: '15'
summary: Card cage was opened
category: doors-and-security
standard_fields_only: true
- type: SAS_EVENT_CODE_16_CARD_CAGE_WAS_CLOSED
sas_exception_code: '16'
summary: Card cage was closed
category: doors-and-security
standard_fields_only: true
- type: SAS_EVENT_CODE_17_AC_POWER_WAS_APPLIED_TO_GAMING_MACHINE
sas_exception_code: '17'
summary: Ac power was applied to gaming machine
category: power
standard_fields_only: true
- type: SAS_EVENT_CODE_18_AC_POWER_WAS_LOST_FROM_GAMING_MACHINE
sas_exception_code: '18'
summary: Ac power was lost from gaming machine
category: power
standard_fields_only: true
- type: SAS_EVENT_CODE_19_CASHBOX_DOOR_WAS_OPENED
sas_exception_code: '19'
summary: Cashbox door was opened
category: doors-and-security
standard_fields_only: true
- type: SAS_EVENT_CODE_1A_CASHBOX_DOOR_WAS_CLOSED
sas_exception_code: 1A
summary: Cashbox door was closed
category: doors-and-security
standard_fields_only: true
- type: SAS_EVENT_CODE_1B_CASHBOX_WAS_REMOVED
sas_exception_code: 1B
summary: Cashbox was removed
category: doors-and-security
standard_fields_only: true
- type: SAS_EVENT_CODE_1C_CASHBOX_WAS_INSTALLED
sas_exception_code: 1C
summary: Cashbox was installed
category: doors-and-security
standard_fields_only: true
- type: SAS_EVENT_CODE_1D_BELLY_DOOR_WAS_OPENED
sas_exception_code: 1D
summary: Belly door was opened
category: doors-and-security
standard_fields_only: true
- type: SAS_EVENT_CODE_1E_BELLY_DOOR_WAS_CLOSED
sas_exception_code: 1E
summary: Belly door was closed
category: doors-and-security
standard_fields_only: true
- type: SAS_EVENT_CODE_20_GENERAL_TILT
sas_exception_code: '20'
summary: General tilt
category: machine-health
standard_fields_only: true
- type: SAS_EVENT_CODE_27_CASHBOX_FULL_DETECTED
sas_exception_code: '27'
summary: Cashbox full detected
category: doors-and-security
standard_fields_only: true
- type: SAS_EVENT_CODE_28_BILL_JAM
sas_exception_code: '28'
summary: Bill jam
category: bill-acceptor
standard_fields_only: false
data_fields:
- HostIDPlayer
- type: SAS_EVENT_CODE_29_BILL_ACCEPTOR_HARDWARE_FAILURE
sas_exception_code: '29'
summary: Bill acceptor hardware failure
category: bill-acceptor
standard_fields_only: false
data_fields:
- HostIDPlayer
- type: SAS_EVENT_CODE_2B_BILL_REJECTED
sas_exception_code: 2B
summary: Bill rejected
category: bill-acceptor
standard_fields_only: false
data_fields:
- HostIDPlayer
- type: SAS_EVENT_CODE_2F_BILL_ACCEPTOR_VERSION_CHANGED
sas_exception_code: 2F
summary: Bill acceptor version changed
category: bill-acceptor
standard_fields_only: true
- type: SAS_EVENT_CODE_32_CMOS_RAM_ERROR
sas_exception_code: '32'
summary: Cmos ram error
category: machine-health
standard_fields_only: true
- type: SAS_EVENT_CODE_34_EEPROM_ERROR
sas_exception_code: '34'
summary: Eeprom error
category: machine-health
standard_fields_only: true
- type: SAS_EVENT_CODE_3C_OPERATOR_CHANGED_OPTIONS
sas_exception_code: 3C
summary: Operator changed options
category: machine-health
standard_fields_only: true
- type: SAS_EVENT_CODE_3D_A_CASH_OUT_TICKET_HAS_BEEN_PRINTED
sas_exception_code: 3D
summary: A cash out ticket has been printed
category: ticketing-and-printer
standard_fields_only: false
data_fields:
- HostIDPlayer
- type: SAS_EVENT_CODE_42_REEL_2_TILT
sas_exception_code: '42'
summary: Reel 2 tilt
category: machine-health
standard_fields_only: true
- type: SAS_EVENT_CODE_43_REEL_3_TILT
sas_exception_code: '43'
summary: Reel 3 tilt
category: machine-health
standard_fields_only: true
- type: SAS_EVENT_CODE_4F_BILL_ACCEPTED
sas_exception_code: 4F
summary: Bill accepted
category: bill-acceptor
standard_fields_only: false
data_fields:
- Bills
- CountryCode
- DenomCode
- HostIDPlayer
- type: SAS_EVENT_CODE_51_HANDPAY_IS_PENDING
sas_exception_code: '51'
summary: Handpay is pending
category: handpay-and-jackpot
standard_fields_only: true
- type: SAS_EVENT_CODE_52_HANDPAY_WAS_RESET
sas_exception_code: '52'
summary: Handpay was reset
category: handpay-and-jackpot
standard_fields_only: true
- type: SAS_EVENT_CODE_53_NO_PROGRESSIVE_INFORMATION_HAS_BEEN_RECEIVED_FOR_5_SECONDS
sas_exception_code: '53'
summary: No progressive information has been received for 5 seconds
category: handpay-and-jackpot
standard_fields_only: true
- type: SAS_EVENT_CODE_54_PROGRESSIVE_WIN
sas_exception_code: '54'
summary: Progressive win
category: handpay-and-jackpot
standard_fields_only: false
data_fields:
- HostIDPlayer
- type: SAS_EVENT_CODE_60_PRINTER_COMMUNICATION_ERROR
sas_exception_code: '60'
summary: Printer communication error
category: ticketing-and-printer
standard_fields_only: true
- type: SAS_EVENT_CODE_61_PRINTER_PAPER_OUT_ERROR
sas_exception_code: '61'
summary: Printer paper out error
category: ticketing-and-printer
standard_fields_only: false
data_fields:
- HostIDPlayer
- type: SAS_EVENT_CODE_66_CASH_OUT_BUTTON_PRESSED
sas_exception_code: '66'
summary: Cash out button pressed
category: game-play
standard_fields_only: true
- type: SAS_EVENT_CODE_70_EVENT_BUFFER_OVERFLOW
sas_exception_code: '70'
summary: Event buffer overflow
category: machine-health
standard_fields_only: true
- type: SAS_EVENT_CODE_71_CHANGE_LAMP_ON
sas_exception_code: '71'
summary: Change lamp on
category: attendant
standard_fields_only: true
- type: SAS_EVENT_CODE_72_CHANGE_LAMP_OFF
sas_exception_code: '72'
summary: Change lamp off
category: attendant
standard_fields_only: true
- type: SAS_EVENT_CODE_74_PRINTER_PAPER_LOW
sas_exception_code: '74'
summary: Printer paper low
category: ticketing-and-printer
standard_fields_only: false
data_fields:
- HostIDPlayer
- type: SAS_EVENT_CODE_78_PRINTER_CARRIAGE_JAMMED
sas_exception_code: '78'
summary: Printer carriage jammed
category: ticketing-and-printer
standard_fields_only: false
data_fields:
- HostIDPlayer
- type: SAS_EVENT_CODE_7B_BILL_VALIDATOR
sas_exception_code: 7B
summary: Bill validator
category: bill-acceptor
standard_fields_only: true
- type: SAS_EVENT_CODE_7E_GAME_HAS_STARTED
sas_exception_code: 7E
summary: Game has started
category: game-play
standard_fields_only: false
data_fields:
- ProgressiveGroup
- TotalCoinInMeter
- WagerType
- CreditsWagered
- HostIDPlayer
- type: SAS_EVENT_CODE_7F_GAME_HAS_ENDED
sas_exception_code: 7F
summary: Game has ended
category: game-play
standard_fields_only: false
data_fields:
- GameWin
- HostIDPlayer
- type: SAS_EVENT_CODE_82_DISPLAY_METERS_OR_ATTENDANT_MENU_HAS_BEEN_ENTERED
sas_exception_code: '82'
summary: Display meters or attendant menu has been entered
category: attendant
standard_fields_only: true
- type: SAS_EVENT_CODE_83_DISPLAY_METERS_OR_ATTENDANT_MENU_HAS_BEEN_EXITED
sas_exception_code: '83'
summary: Display meters or attendant menu has been exited
category: attendant
standard_fields_only: true
- type: SAS_EVENT_CODE_84_SELF_TEST_OR_OPERATOR_MENU_HAS_BEEN_ENTERED
sas_exception_code: '84'
summary: Self test or operator menu has been entered
category: attendant
standard_fields_only: true
- type: SAS_EVENT_CODE_85_SELF_TEST_OR_OPERATOR_MENU_HAS_BEEN_EXITED
sas_exception_code: '85'
summary: Self test or operator menu has been exited
category: attendant
standard_fields_only: true
- type: SAS_EVENT_CODE_86_GAMING_MACHINE_IS_OUT_OF_SERVICE
sas_exception_code: '86'
summary: Gaming machine is out of service
category: machine-health
standard_fields_only: true
- type: SAS_EVENT_CODE_88_REEL_N_HAS_STOPPED
sas_exception_code: '88'
summary: Reel n has stopped
category: game-play
standard_fields_only: false
data_fields:
- PhysicalStop
- ReelNum
- type: SAS_EVENT_CODE_89_COIN_CREDIT_WAGERED
sas_exception_code: '89'
summary: Coin credit wagered
category: game-play
standard_fields_only: true
- type: SAS_EVENT_CODE_8A_GAME_RECALL_ENTRY_HAS_BEEN_DISPLAYED
sas_exception_code: 8A
summary: Game recall entry has been displayed
category: game-play
standard_fields_only: false
data_fields:
- GameNumber
- HostIDPlayer
- RecallIndex
- type: SAS_EVENT_CODE_8C_GAME_SELECTED
sas_exception_code: 8C
summary: Game selected
category: game-play
standard_fields_only: false
data_fields:
- GameNumber
- type: SAS_EVENT_CODE_98_POWER_OFF_CARD_CAGE_ACCESS
sas_exception_code: '98'
summary: Power off card cage access
category: doors-and-security
standard_fields_only: true
- type: SAS_EVENT_CODE_99_POWER_OFF_SLOT_DOOR_ACCESS
sas_exception_code: '99'
summary: Power off slot door access
category: doors-and-security
standard_fields_only: true
- type: SAS_EVENT_CODE_9A_POWER_OFF_CASHBOX_DOOR_ACCESS
sas_exception_code: 9A
summary: Power off cashbox door access
category: doors-and-security
standard_fields_only: true
- type: SAS_EVENT_CODE_9B_POWER_OFF_DROP_DOOR_ACCESS
sas_exception_code: 9B
summary: Power off drop door access
category: doors-and-security
standard_fields_only: true
- type: SAS_POLL_1B_SEND_HANDPAY_INFORMATION
sas_poll_code: 1B
summary: Send handpay information
category: machine-and-game-configuration
standard_fields_only: false
data_fields:
- PartialPayAmount
- ProgressiveGroup
- ResetId
- Unused
- Amount
- Level
- type: SAS_POLL_1F_SEND_GAMING_MACHINE_ID_AND_INFORMATION
sas_poll_code: 1F
summary: Send gaming machine id and information
category: machine-and-game-configuration
standard_fields_only: false
data_fields:
- PaytableId
- ProgressiveGroup
- AdditionalId
- BasePercentage
- Denomination
- GameId
- GameOptions
- MaxBet
- type: SAS_POLL_3D_SEND_CASH_OUT_TICKET_INFORMATION
sas_poll_code: 3D
summary: Send cash out ticket information
category: machine-and-game-configuration
standard_fields_only: false
data_fields:
- AmountInCents
- HostIDPlayer
- TicketNumber
- type: SAS_POLL_48_SEND_LAST_ACCEPTED_BILL_INFORMATION
sas_poll_code: '48'
summary: Send last accepted bill information
category: machine-and-game-configuration
standard_fields_only: false
data_fields:
- Bills
- Country
- Denom
- type: SAS_POLL_4F_SEND_CURRENT_HOPPER_STATUS
sas_poll_code: 4F
summary: Send current hopper status
category: machine-and-game-configuration
standard_fields_only: false
data_fields:
- Length
- Level
- PercentFull
- Status
- type: SAS_POLL_51_SEND_TOTAL_NUMBER_OF_GAMES_IMPLEMENTED
sas_poll_code: '51'
summary: Send total number of games implemented
category: machine-and-game-configuration
standard_fields_only: false
data_fields:
- NumberOfGames
- type: SAS_POLL_54_SEND_SAS_VERSION_ID_AND_GAMING_MACHINE_SERIAL_NUMBER
sas_poll_code: '54'
summary: Send sas version id and gaming machine serial number
category: machine-and-game-configuration
standard_fields_only: false
data_fields:
- SasVersionNumber
- SerialNumber
- Length
- type: SAS_POLL_55_SEND_SELECTED_GAME_NUMBER
sas_poll_code: '55'
summary: Send selected game number
category: machine-and-game-configuration
standard_fields_only: false
data_fields:
- SelectedGameNumber
- type: SAS_POLL_56_SAS_SEND_ENABLED_GAME_NUMBERS
sas_poll_code: '56'
summary: Sas send enabled game numbers
category: machine-and-game-configuration
standard_fields_only: false
data_fields:
- EnabledGameNumbers
- Length
- NumberOfGames
- type: SAS_POLL_8F_SEND_PHYSICAL_REEL_STOP_INFORMATION
sas_poll_code: 8F
summary: Send physical reel stop information
category: machine-and-game-configuration
standard_fields_only: false
data_fields:
- PhysicalReelStops
- type: SAS_POLL_A0_SEND_ENABLED_FEATURES
sas_poll_code: A0
summary: Send enabled features
category: machine-and-game-configuration
standard_fields_only: false
data_fields:
- Features
- GameNumber
- Reserved
- type: SAS_POLL_A8_ENABLE_JACKPOT_HANDPAY_RESET_METHOD
sas_poll_code: A8
summary: Enable jackpot handpay reset method
category: machine-and-game-configuration
standard_fields_only: false
data_fields:
- AckCode
- type: SAS_POLL_FF_REAL_TIME_EXCEPTION
sas_poll_code: FF
summary: Real time exception
category: machine-and-game-configuration
standard_fields_only: false
data_fields:
- HostIDPlayer
- type: SendCurrentHopperStatus
summary: Send Current Hopper Status
category: machine-and-game-configuration
standard_fields_only: false
data_fields:
- Length
- Level
- PercentFull
- Status
- type: SendEnabledFeatures
summary: Send Enabled Features
category: machine-and-game-configuration
standard_fields_only: false
data_fields:
- GameNumber
- Reserved
- Features
- type: SendEnabledGameNumbers
summary: Send Enabled Game Numbers
category: machine-and-game-configuration
standard_fields_only: false
data_fields:
- EnabledGameNumbers
- Length
- NumberOfGames
- type: SendGamingMachineIDAndInformation
summary: Send Gaming Machine I D And Information
category: machine-and-game-configuration
standard_fields_only: false
data_fields:
- PaytableId
- ProgressiveGroup
- AdditionalId
- BasePercentage
- Denomination
- GameId
- GameOptions
- MaxBet
- type: SendLastAcceptedBillInformation
summary: Send Last Accepted Bill Information
category: machine-and-game-configuration
standard_fields_only: false
data_fields:
- Denom
- Bills
- Country
- type: SendPhysicalReelStopInformation
summary: Send Physical Reel Stop Information
category: machine-and-game-configuration
standard_fields_only: false
data_fields:
- PhysicalReelStops
- type: SendSASVersionIDAndGamingMachineSerialNumber
summary: Send S A S Version I D And Gaming Machine Serial Number
category: machine-and-game-configuration
standard_fields_only: false
data_fields:
- Length
- SasVersionNumber
- SerialNumber
- type: SendSelectedGameNumber
summary: Send Selected Game Number
category: machine-and-game-configuration
standard_fields_only: false
data_fields:
- SelectedGameNumber
- type: SendTotalNumberOfGamesImplemented
summary: Send Total Number Of Games Implemented
category: machine-and-game-configuration
standard_fields_only: false
data_fields:
- NumberOfGames
Work with this as data
Every AsyncAPI spec here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for asyncapi
4 MCP tools reach this
find_asyncapisBrowse and filter every AsyncAPI spec in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This AsyncAPI spec
curl "https://apis.io/api/v1/asyncapis/acres-manufacturing-foundation-events"
All asyncapi
curl "https://apis.io/api/v1/asyncapis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.