About Us
Solutions
Features
Contact
Products
Sportsbook
Back Office
Odds Engine
Agent Management System
Sportsbook Solutions
Odds Feed Integration
iFrame Integration
Developer Documentation
Developer Documentation
Odds Feed Integration
iFrame Integration
White Label Solution
Odds Feed Integration
Odds Feed Integration
Introduction
The odds feed service provides sportsbook data to clients via RabbitMQ or other compatible message brokers. This documentation outlines the process for clients to ingest sportsbook data from RabbitMQ.

Prerequisites
Before connecting to RabbitMQ, ensure you have the following prerequisites: Ensure that you have RabbitMQ installed and configured properly. Visit the RabbitMQ Documentation page for detailed instructions on installing RabbitMQ on your operating system. RabbitMQ Server host information or information for other compatible message brokers. RabbitMQ credentials (username, password) or credentials for other message brokers. Access to specific RabbitMQ queues or exchanges for sportsbook data ingestion, or equivalent access for other message brokers.
Connecting to RabbitMQ or Other Message Brokers
To connect to RabbitMQ or other compatible message brokers, follow these steps: Establish a connection to the message broker server using the provided host information. Authenticate with the message broker using the provided credentials (username, password). Handle connection errors and retries as needed.
Sample Code
Below is a sample code snippet in C# demonstrating how to connect to RabbitMQ:

using RabbitMQ.Client;

class RabbitMQConnector
{
public IConnection Connect(string hostName, string userName, string password)
{
var factory = new ConnectionFactory()
{
HostName = hostName,
UserName = userName,
Password = password
};

try
{
return factory.CreateConnection();
}
catch (RabbitMQ.Client.Exceptions.BrokerUnreachableException ex)
{
// Handle connection error
Console.WriteLine($"Connection error: {ex.Message}");
throw;
}
}
}
Subscribe to Sportsbook Data
To subscribe to sportsbook data from RabbitMQ, follow these steps: Create Channel and Queue -> Create a channel and queue for consuming data. Bind Queue to Exchange -> Bind the queue to the exchange for receiving data.
Sample Code
Below is a sample code snippet in C# demonstrating how to subscribe to RabbitMQ:

using RabbitMQ.Client;
using RabbitMQ.Client.Events;
using System;
using System.Text;

class SportsbookDataSubscriber
{
public void Subscribe(string exchange, string queue, string routingKey, IModel channel)
{
channel.QueueDeclare(queue, false, false, false, null);
channel.QueueBind(queue, exchange, routingKey);

var consumer = new EventingBasicConsumer(channel);
consumer.Received += (model, ea) =>
{
var body = ea.Body.ToArray();
var message = Encoding.UTF8.GetString(body);
Console.WriteLine($"Received: {message}");
};

channel.BasicConsume(queue, true, consumer);
}
}
Consume Sportsbook Data
To subscribe to sportsbook data from RabbitMQ, follow sample code below.


Sample Code
Below is a sample code snippet in C# demonstrating how to consume sportsbook data from RabbitMQ:

using RabbitMQ.Client;
using RabbitMQ.Client.Events;
using System;
using System.Text;

class SportsbookDataConsumer
{
public void Consume(IModel channel, string queueName)
{
var consumer = new EventingBasicConsumer(channel);
consumer.Received += (model, ea) =>
{
var body = ea.Body.ToArray();
var message = Encoding.UTF8.GetString(body);
Console.WriteLine($"Received: {message}");
};
channel.BasicConsume(queueName, true, consumer);
}
}
iFrame Integration
iFrame Integration
App Setup
To launch our sportsbook on your site, you would need to put the URL in an <iframe> tag.

There are 2 ways to launch our sportsbook:
1. Anonymous (3 query parameters): Song88URL?clientId=1234¤cyCode=USD&languageCode=EN
2. Anonymous (5 query parameters): Song88URL?clientId=1234¤cyCode=UDS&languageCode=EN&userId=ABC123&operatorToken=SDg0wj0309fjq09f
What ClientId to use?
- We will assign you a static ClientId upon request.

What is an OperatorToken?
- This token will be used to authenticate on your Seamless Wallet API. We will temporarily assign a default token so you can load our sportsbook.
App Integration
For iframe integration, you need to develop your own seamless wallet API see https://app.swaggerhub.com/apis-docs/song88/Operator/1.2.4 for reference. The endpoints will temporarily be hosted internally while you're currently developing your API.

Once done, please let us know so we can validate by calling your API endpoints, if all are adhering to the expected payload response and status codes, we will now repoint it to your wallet API.

The finished endpoints should look like this:
{clientBaseURL}/v1/authentication
{clientBaseURL}/v1/bet/placement
{clientBaseURL}/v1/bet/settlement
{clientBaseURL}/v1/bet/full/cashout
{clientBaseURL}/v1/bet/cancellation
White Label Solution
White Label Solution Placeholder