From 1557a3141bdbe57a47a1e0b71011d04e22a67867 Mon Sep 17 00:00:00 2001 From: Samuel Tariku Date: Mon, 16 Jun 2025 16:24:42 +0300 Subject: [PATCH 1/4] fix: transfer not showing online bet issue --- .env | 8 +- db.sql | 17 ++ db/migrations/000001_fortune.up.sql | 26 ++- db/migrations/000006_recommendation.up.sql | 36 ++-- db/query/bet.sql | 16 +- db/query/branch.sql | 10 +- gen/db/bet.sql.go | 12 +- gen/db/branch.sql.go | 17 +- gen/db/models.go | 9 +- gen/db/transfer.sql.go | 4 +- internal/domain/bet.go | 2 +- internal/domain/branch.go | 5 + internal/domain/notification.go | 47 ++-- internal/domain/transfer.go | 20 +- internal/domain/wallet.go | 8 + internal/logger/mongoLogger/init.go | 2 +- internal/repository/bet.go | 4 + internal/repository/branch.go | 9 +- internal/repository/transfer.go | 36 ++-- internal/services/bet/service.go | 17 +- internal/services/branch/port.go | 2 +- internal/services/branch/service.go | 6 +- internal/services/chapa/service.go | 21 +- internal/services/referal/service.go | 6 +- internal/services/virtualGame/Alea/service.go | 2 +- internal/services/virtualGame/service.go | 8 +- internal/services/virtualGame/veli/service.go | 2 +- internal/services/wallet/transfer.go | 204 +++++++----------- internal/services/wallet/wallet.go | 139 +++++++++++- internal/web_server/cron.go | 44 ++-- internal/web_server/handlers/auth_handler.go | 5 +- internal/web_server/handlers/bet_handler.go | 19 +- .../web_server/handlers/branch_handler.go | 19 +- internal/web_server/handlers/manager.go | 47 ++-- internal/web_server/handlers/mongoLogger.go | 3 +- .../web_server/handlers/transfer_handler.go | 44 ++-- internal/web_server/handlers/user.go | 4 +- internal/web_server/middleware.go | 16 ++ internal/web_server/routes.go | 2 +- logs/app.log | 2 + 40 files changed, 585 insertions(+), 315 deletions(-) create mode 100644 db.sql diff --git a/.env b/.env index ea411f2..490c4a9 100644 --- a/.env +++ b/.env @@ -1,8 +1,8 @@ # REPORT_EXPORT_PATH="C:\\ProgramData\\FortuneBet\\exported_reports" #prod env REPORT_EXPORT_PATH ="./exported_reports" #dev env -RESEND_SENDER_EMAIL=email -RESEND_API_KEY=123 +RESEND_SENDER_EMAIL=customer@fortunebets.net +RESEND_API_KEY=re_GSTRa9Pp_JkRWBpST9MvaCVULJF8ybGKE ENV=development PORT=8080 @@ -11,8 +11,8 @@ REFRESH_EXPIRY=2592000 JWT_KEY=mysecretkey ACCESS_EXPIRY=600 LOG_LEVEL=debug -AFRO_SMS_API_KEY=1 -AFRO_SMS_SENDER_NAME= +AFRO_SMS_API_KEY=eyJhbGciOiJIUzI1NiJ9.eyJpZGVudGlmaWVyIjoiQlR5ZDFIYmJFYXZ6YUo3dzZGell1RUlieGozSElJeTYiLCJleHAiOjE4OTYwMTM5MTksImlhdCI6MTczODI0NzUxOSwianRpIjoiOWIyNTJkNWQtODcxOC00NGYzLWIzMDQtMGYxOTRhY2NiNTU3In0.XPw8s6mCx1Tp1CfxGmjFRROmdkVnghnqfmsniB-Ze8I +AFRO_SMS_SENDER_NAME=FortuneBets AFRO_SMS_RECEIVER_PHONE_NUMBER= BET365_TOKEN=158046-hesJDP2Cay2M5G diff --git a/db.sql b/db.sql new file mode 100644 index 0000000..c149b92 --- /dev/null +++ b/db.sql @@ -0,0 +1,17 @@ +psql (16.8) +Type "help" for help. + +gh=# +gh=# +gh=# +gh=# +gh=# +gh=# +gh=# +gh=# +gh=# +gh=# +gh=# +gh=# +gh=#  +gh=# \ No newline at end of file diff --git a/db/migrations/000001_fortune.up.sql b/db/migrations/000001_fortune.up.sql index c43a7b9..14add7f 100644 --- a/db/migrations/000001_fortune.up.sql +++ b/db/migrations/000001_fortune.up.sql @@ -125,7 +125,7 @@ CREATE TABLE IF NOT EXISTS wallet_transfer ( id BIGSERIAL PRIMARY KEY, amount BIGINT NOT NULL, type VARCHAR(255) NOT NULL, - receiver_wallet_id BIGINT NOT NULL, + receiver_wallet_id BIGINT, sender_wallet_id BIGINT, cashier_id BIGINT, verified BOOLEAN NOT NULL DEFAULT false, @@ -263,7 +263,6 @@ FROM companies JOIN wallets ON wallets.id = companies.wallet_id JOIN users ON users.id = companies.admin_id; ; - CREATE VIEW branch_details AS SELECT branches.*, CONCAT(users.first_name, ' ', users.last_name) AS manager_name, @@ -290,40 +289,39 @@ FROM tickets LEFT JOIN ticket_outcomes ON tickets.id = ticket_outcomes.ticket_id GROUP BY tickets.id; -- Foreign Keys - ALTER TABLE users - ADD CONSTRAINT unique_email UNIQUE (email), +ADD CONSTRAINT unique_email UNIQUE (email), ADD CONSTRAINT unique_phone_number UNIQUE (phone_number); ALTER TABLE refresh_tokens - ADD CONSTRAINT fk_refresh_tokens_users FOREIGN KEY (user_id) REFERENCES users(id); +ADD CONSTRAINT fk_refresh_tokens_users FOREIGN KEY (user_id) REFERENCES users(id); ALTER TABLE bets - ADD CONSTRAINT fk_bets_users FOREIGN KEY (user_id) REFERENCES users(id), +ADD CONSTRAINT fk_bets_users FOREIGN KEY (user_id) REFERENCES users(id), ADD CONSTRAINT fk_bets_branches FOREIGN KEY (branch_id) REFERENCES branches(id); ALTER TABLE wallets - ADD CONSTRAINT fk_wallets_users FOREIGN KEY (user_id) REFERENCES users(id); +ADD CONSTRAINT fk_wallets_users FOREIGN KEY (user_id) REFERENCES users(id); ALTER TABLE customer_wallets - ADD CONSTRAINT fk_customer_wallets_customers FOREIGN KEY (customer_id) REFERENCES users(id), +ADD CONSTRAINT fk_customer_wallets_customers FOREIGN KEY (customer_id) REFERENCES users(id), ADD CONSTRAINT fk_customer_wallets_regular_wallet FOREIGN KEY (regular_wallet_id) REFERENCES wallets(id), ADD CONSTRAINT fk_customer_wallets_static_wallet FOREIGN KEY (static_wallet_id) REFERENCES wallets(id); ALTER TABLE wallet_transfer - ADD CONSTRAINT fk_wallet_transfer_receiver_wallet FOREIGN KEY (receiver_wallet_id) REFERENCES wallets(id), +ADD CONSTRAINT fk_wallet_transfer_receiver_wallet FOREIGN KEY (receiver_wallet_id) REFERENCES wallets(id), ADD CONSTRAINT fk_wallet_transfer_sender_wallet FOREIGN KEY (sender_wallet_id) REFERENCES wallets(id), ADD CONSTRAINT fk_wallet_transfer_cashier FOREIGN KEY (cashier_id) REFERENCES users(id); ALTER TABLE transactions - ADD CONSTRAINT fk_transactions_branches FOREIGN KEY (branch_id) REFERENCES branches(id), +ADD CONSTRAINT fk_transactions_branches FOREIGN KEY (branch_id) REFERENCES branches(id), ADD CONSTRAINT fk_transactions_cashiers FOREIGN KEY (cashier_id) REFERENCES users(id), ADD CONSTRAINT fk_transactions_bets FOREIGN KEY (bet_id) REFERENCES bets(id); ALTER TABLE branches - ADD CONSTRAINT fk_branches_wallet FOREIGN KEY (wallet_id) REFERENCES wallets(id), +ADD CONSTRAINT fk_branches_wallet FOREIGN KEY (wallet_id) REFERENCES wallets(id), ADD CONSTRAINT fk_branches_manager FOREIGN KEY (branch_manager_id) REFERENCES users(id); ALTER TABLE branch_operations - ADD CONSTRAINT fk_branch_operations_operations FOREIGN KEY (operation_id) REFERENCES supported_operations(id) ON DELETE CASCADE, +ADD CONSTRAINT fk_branch_operations_operations FOREIGN KEY (operation_id) REFERENCES supported_operations(id) ON DELETE CASCADE, ADD CONSTRAINT fk_branch_operations_branches FOREIGN KEY (branch_id) REFERENCES branches(id) ON DELETE CASCADE; ALTER TABLE branch_cashiers - ADD CONSTRAINT fk_branch_cashiers_users FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE, +ADD CONSTRAINT fk_branch_cashiers_users FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE, ADD CONSTRAINT fk_branch_cashiers_branches FOREIGN KEY (branch_id) REFERENCES branches(id) ON DELETE CASCADE; ALTER TABLE companies - ADD CONSTRAINT fk_companies_admin FOREIGN KEY (admin_id) REFERENCES users(id), +ADD CONSTRAINT fk_companies_admin FOREIGN KEY (admin_id) REFERENCES users(id), ADD CONSTRAINT fk_companies_wallet FOREIGN KEY (wallet_id) REFERENCES wallets(id) ON DELETE CASCADE; ----------------------------------------------seed data------------------------------------------------------------- -------------------------------------- DO NOT USE IN PRODUCTION------------------------------------------------- diff --git a/db/migrations/000006_recommendation.up.sql b/db/migrations/000006_recommendation.up.sql index 6be9fc7..0e83986 100644 --- a/db/migrations/000006_recommendation.up.sql +++ b/db/migrations/000006_recommendation.up.sql @@ -1,28 +1,28 @@ -CREATE TABLE virtual_games ( - id BIGSERIAL PRIMARY KEY, - name VARCHAR(255) NOT NULL, - provider VARCHAR(100) NOT NULL, - category VARCHAR(100) NOT NULL, - min_bet DECIMAL(15,2) NOT NULL, - max_bet DECIMAL(15,2) NOT NULL, - volatility VARCHAR(50) NOT NULL, - rtp DECIMAL(5,2) NOT NULL, - is_featured BOOLEAN DEFAULT false, - popularity_score INTEGER DEFAULT 0, - thumbnail_url TEXT, - created_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP, - updated_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP -); +-- CREATE TABLE virtual_games ( +-- id BIGSERIAL PRIMARY KEY, +-- name VARCHAR(255) NOT NULL, +-- provider VARCHAR(100) NOT NULL, +-- category VARCHAR(100) NOT NULL, +-- min_bet DECIMAL(15,2) NOT NULL, +-- max_bet DECIMAL(15,2) NOT NULL, +-- volatility VARCHAR(50) NOT NULL, +-- rtp DECIMAL(5,2) NOT NULL, +-- is_featured BOOLEAN DEFAULT false, +-- popularity_score INTEGER DEFAULT 0, +-- thumbnail_url TEXT, +-- created_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP, +-- updated_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP +-- ); CREATE TABLE user_game_interactions ( id BIGSERIAL PRIMARY KEY, user_id BIGINT NOT NULL REFERENCES users(id), game_id BIGINT NOT NULL REFERENCES virtual_games(id), - interaction_type VARCHAR(50) NOT NULL, -- 'view', 'play', 'bet', 'favorite' - amount DECIMAL(15,2), + interaction_type VARCHAR(50) NOT NULL, + -- 'view', 'play', 'bet', 'favorite' + amount DECIMAL(15, 2), duration_seconds INTEGER, created_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP ); - CREATE INDEX idx_user_game_interactions_user ON user_game_interactions(user_id); CREATE INDEX idx_user_game_interactions_game ON user_game_interactions(game_id); \ No newline at end of file diff --git a/db/query/bet.sql b/db/query/bet.sql index 335cf56..8686f6b 100644 --- a/db/query/bet.sql +++ b/db/query/bet.sql @@ -48,16 +48,20 @@ VALUES ( SELECT * FROM bet_with_outcomes wHERE ( - branch_id = $1 - OR $1 IS NULL + branch_id = sqlc.narg('branch_id') + OR sqlc.narg('branch_id') IS NULL ) AND ( - company_id = $2 - OR $2 IS NULL + company_id = sqlc.narg('company_id') + OR sqlc.narg('company_id') IS NULL ) AND ( - user_id = $3 - OR $3 IS NULL + user_id = sqlc.narg('user_id') + OR sqlc.narg('user_id') IS NULL + ) + AND ( + is_shop_bet = sqlc.narg('is_shop_bet') + OR sqlc.narg('is_shop_bet') IS NULL ); -- name: GetBetByID :one SELECT * diff --git a/db/query/branch.sql b/db/query/branch.sql index bb01b26..eef1ae1 100644 --- a/db/query/branch.sql +++ b/db/query/branch.sql @@ -23,7 +23,15 @@ VALUES ($1, $2) RETURNING *; -- name: GetAllBranches :many SELECT * -FROM branch_details; +FROM branch_details +WHERE ( + company_id = sqlc.narg('company_id') + OR sqlc.narg('company_id') IS NULL + ) + AND ( + is_active = sqlc.narg('is_active') + OR sqlc.narg('is_active') IS NULL + ); -- name: GetBranchByID :one SELECT * FROM branch_details diff --git a/gen/db/bet.sql.go b/gen/db/bet.sql.go index 40182ae..1852a08 100644 --- a/gen/db/bet.sql.go +++ b/gen/db/bet.sql.go @@ -125,16 +125,26 @@ wHERE ( user_id = $3 OR $3 IS NULL ) + AND ( + is_shop_bet = $4 + OR $4 IS NULL + ) ` type GetAllBetsParams struct { BranchID pgtype.Int8 `json:"branch_id"` CompanyID pgtype.Int8 `json:"company_id"` UserID pgtype.Int8 `json:"user_id"` + IsShopBet pgtype.Bool `json:"is_shop_bet"` } func (q *Queries) GetAllBets(ctx context.Context, arg GetAllBetsParams) ([]BetWithOutcome, error) { - rows, err := q.db.Query(ctx, GetAllBets, arg.BranchID, arg.CompanyID, arg.UserID) + rows, err := q.db.Query(ctx, GetAllBets, + arg.BranchID, + arg.CompanyID, + arg.UserID, + arg.IsShopBet, + ) if err != nil { return nil, err } diff --git a/gen/db/branch.sql.go b/gen/db/branch.sql.go index d3ef2e5..d762fa8 100644 --- a/gen/db/branch.sql.go +++ b/gen/db/branch.sql.go @@ -157,10 +157,23 @@ func (q *Queries) DeleteBranchOperation(ctx context.Context, arg DeleteBranchOpe const GetAllBranches = `-- name: GetAllBranches :many SELECT id, name, location, is_active, wallet_id, branch_manager_id, company_id, is_self_owned, created_at, updated_at, manager_name, manager_phone_number, balance FROM branch_details +WHERE ( + company_id = $1 + OR $1 IS NULL + ) + AND ( + is_active = $2 + OR $2 IS NULL + ) ` -func (q *Queries) GetAllBranches(ctx context.Context) ([]BranchDetail, error) { - rows, err := q.db.Query(ctx, GetAllBranches) +type GetAllBranchesParams struct { + CompanyID pgtype.Int8 `json:"company_id"` + IsActive pgtype.Bool `json:"is_active"` +} + +func (q *Queries) GetAllBranches(ctx context.Context, arg GetAllBranchesParams) ([]BranchDetail, error) { + rows, err := q.db.Query(ctx, GetAllBranches, arg.CompanyID, arg.IsActive) if err != nil { return nil, err } diff --git a/gen/db/models.go b/gen/db/models.go index 420586e..de9c74b 100644 --- a/gen/db/models.go +++ b/gen/db/models.go @@ -421,12 +421,13 @@ type VirtualGame struct { ID int64 `json:"id"` Name string `json:"name"` Provider string `json:"provider"` - Category string `json:"category"` + Category pgtype.Text `json:"category"` MinBet pgtype.Numeric `json:"min_bet"` MaxBet pgtype.Numeric `json:"max_bet"` - Volatility string `json:"volatility"` + Volatility pgtype.Text `json:"volatility"` + IsActive bool `json:"is_active"` Rtp pgtype.Numeric `json:"rtp"` - IsFeatured pgtype.Bool `json:"is_featured"` + IsFeatured bool `json:"is_featured"` PopularityScore pgtype.Int4 `json:"popularity_score"` ThumbnailUrl pgtype.Text `json:"thumbnail_url"` CreatedAt pgtype.Timestamptz `json:"created_at"` @@ -483,7 +484,7 @@ type WalletTransfer struct { ID int64 `json:"id"` Amount int64 `json:"amount"` Type string `json:"type"` - ReceiverWalletID int64 `json:"receiver_wallet_id"` + ReceiverWalletID pgtype.Int8 `json:"receiver_wallet_id"` SenderWalletID pgtype.Int8 `json:"sender_wallet_id"` CashierID pgtype.Int8 `json:"cashier_id"` Verified bool `json:"verified"` diff --git a/gen/db/transfer.sql.go b/gen/db/transfer.sql.go index 2c8e6f6..3e5c65e 100644 --- a/gen/db/transfer.sql.go +++ b/gen/db/transfer.sql.go @@ -29,7 +29,7 @@ RETURNING id, amount, type, receiver_wallet_id, sender_wallet_id, cashier_id, ve type CreateTransferParams struct { Amount int64 `json:"amount"` Type string `json:"type"` - ReceiverWalletID int64 `json:"receiver_wallet_id"` + ReceiverWalletID pgtype.Int8 `json:"receiver_wallet_id"` SenderWalletID pgtype.Int8 `json:"sender_wallet_id"` CashierID pgtype.Int8 `json:"cashier_id"` Verified bool `json:"verified"` @@ -159,7 +159,7 @@ WHERE receiver_wallet_id = $1 OR sender_wallet_id = $1 ` -func (q *Queries) GetTransfersByWallet(ctx context.Context, receiverWalletID int64) ([]WalletTransfer, error) { +func (q *Queries) GetTransfersByWallet(ctx context.Context, receiverWalletID pgtype.Int8) ([]WalletTransfer, error) { rows, err := q.db.Query(ctx, GetTransfersByWallet, receiverWalletID) if err != nil { return nil, err diff --git a/internal/domain/bet.go b/internal/domain/bet.go index cbd904e..832686b 100644 --- a/internal/domain/bet.go +++ b/internal/domain/bet.go @@ -60,6 +60,7 @@ type BetFilter struct { BranchID ValidInt64 // Can Be Nullable CompanyID ValidInt64 // Can Be Nullable UserID ValidInt64 // Can Be Nullable + IsShopBet ValidBool } type GetBet struct { @@ -173,4 +174,3 @@ func ConvertBet(bet GetBet) BetRes { CreatedAt: bet.CreatedAt, } } - diff --git a/internal/domain/branch.go b/internal/domain/branch.go index 43d2cc0..d27eb08 100644 --- a/internal/domain/branch.go +++ b/internal/domain/branch.go @@ -11,6 +11,11 @@ type Branch struct { IsSelfOwned bool } +type BranchFilter struct { + CompanyID ValidInt64 + IsSuspended ValidBool +} + type BranchDetail struct { ID int64 Name string diff --git a/internal/domain/notification.go b/internal/domain/notification.go index bcad707..5905b31 100644 --- a/internal/domain/notification.go +++ b/internal/domain/notification.go @@ -14,18 +14,20 @@ type NotificationDeliveryStatus string type DeliveryChannel string const ( - NotificationTypeCashOutSuccess NotificationType = "cash_out_success" - NotificationTypeDepositSuccess NotificationType = "deposit_success" - NotificationTypeBetPlaced NotificationType = "bet_placed" - NotificationTypeDailyReport NotificationType = "daily_report" - NotificationTypeHighLossOnBet NotificationType = "high_loss_on_bet" - NotificationTypeBetOverload NotificationType = "bet_overload" - NotificationTypeSignUpWelcome NotificationType = "signup_welcome" - NotificationTypeOTPSent NotificationType = "otp_sent" - NOTIFICATION_TYPE_WALLET NotificationType = "wallet_threshold" - NOTIFICATION_TYPE_TRANSFER NotificationType = "transfer_failed" - NOTIFICATION_TYPE_ADMIN_ALERT NotificationType = "admin_alert" - NOTIFICATION_RECEIVER_ADMIN NotificationRecieverSide = "admin" + NotificationTypeCashOutSuccess NotificationType = "cash_out_success" + NotificationTypeDepositSuccess NotificationType = "deposit_success" + NotificationTypeWithdrawSuccess NotificationType = "withdraw_success" + NotificationTypeBetPlaced NotificationType = "bet_placed" + NotificationTypeDailyReport NotificationType = "daily_report" + NotificationTypeHighLossOnBet NotificationType = "high_loss_on_bet" + NotificationTypeBetOverload NotificationType = "bet_overload" + NotificationTypeSignUpWelcome NotificationType = "signup_welcome" + NotificationTypeOTPSent NotificationType = "otp_sent" + NOTIFICATION_TYPE_WALLET NotificationType = "wallet_threshold" + NOTIFICATION_TYPE_TRANSFER_FAIL NotificationType = "transfer_failed" + NOTIFICATION_TYPE_TRANSFER_SUCCESS NotificationType = "transfer_success" + NOTIFICATION_TYPE_ADMIN_ALERT NotificationType = "admin_alert" + NOTIFICATION_RECEIVER_ADMIN NotificationRecieverSide = "admin" NotificationRecieverSideAdmin NotificationRecieverSide = "admin" NotificationRecieverSideCustomer NotificationRecieverSide = "customer" @@ -57,9 +59,9 @@ const ( ) type NotificationPayload struct { - Headline string `json:"headline"` - Message string `json:"message"` - Tags []string `json:"tags"` + Headline string `json:"headline"` + Message string `json:"message"` + Tags []string `json:"tags"` } type Notification struct { @@ -91,3 +93,18 @@ func FromJSON(data []byte) (*Notification, error) { } return &n, nil } + +func ReceiverFromRole(role Role) NotificationRecieverSide { + + if role == RoleAdmin { + return NotificationRecieverSideAdmin + } else if role == RoleCashier { + return NotificationRecieverSideCashier + } else if role == RoleBranchManager { + return NotificationRecieverSideBranchManager + } else if role == RoleCustomer { + return NotificationRecieverSideCustomer + } else { + return "" + } +} diff --git a/internal/domain/transfer.go b/internal/domain/transfer.go index bf968d2..ed8411c 100644 --- a/internal/domain/transfer.go +++ b/internal/domain/transfer.go @@ -12,7 +12,10 @@ const ( type PaymentMethod string +// Info on why the wallet was modified +// If its internal system modification then, its always direct const ( + TRANSFER_DIRECT PaymentMethod = "direct" TRANSFER_CASH PaymentMethod = "cash" TRANSFER_BANK PaymentMethod = "bank" TRANSFER_CHAPA PaymentMethod = "chapa" @@ -22,16 +25,21 @@ const ( TRANSFER_OTHER PaymentMethod = "other" ) -// There is always a receiving wallet id -// There is a sender wallet id only if wallet transfer type +// Info for the payment providers +type PaymentDetails struct { + ReferenceNumber ValidString + BankNumber ValidString +} + +// A Transfer is logged for every modification of ALL wallets and wallet types type Transfer struct { ID int64 Amount Currency Verified bool Type TransferType PaymentMethod PaymentMethod - ReceiverWalletID int64 - SenderWalletID int64 + ReceiverWalletID ValidInt64 + SenderWalletID ValidInt64 ReferenceNumber string CashierID ValidInt64 CreatedAt time.Time @@ -42,8 +50,8 @@ type CreateTransfer struct { Amount Currency Verified bool ReferenceNumber string - ReceiverWalletID int64 - SenderWalletID int64 + ReceiverWalletID ValidInt64 + SenderWalletID ValidInt64 CashierID ValidInt64 Type TransferType PaymentMethod PaymentMethod diff --git a/internal/domain/wallet.go b/internal/domain/wallet.go index 387dbd7..5620c87 100644 --- a/internal/domain/wallet.go +++ b/internal/domain/wallet.go @@ -57,3 +57,11 @@ type CreateCustomerWallet struct { RegularWalletID int64 StaticWalletID int64 } + +type WalletType string + +const ( + CustomerWalletType WalletType = "customer_wallet" + BranchWalletType WalletType = "branch_wallet" + CompanyWalletType WalletType = "company_wallet" +) diff --git a/internal/logger/mongoLogger/init.go b/internal/logger/mongoLogger/init.go index 9d4b78b..77ef645 100644 --- a/internal/logger/mongoLogger/init.go +++ b/internal/logger/mongoLogger/init.go @@ -10,7 +10,7 @@ import ( func InitLogger() (*zap.Logger, error) { mongoCore, err := NewMongoCore( - "mongodb://root:secret@mongo:27017/?authSource=admin", + "mongodb://root:secret@localhost:27017/?authSource=admin", "logdb", "applogs", zapcore.InfoLevel, diff --git a/internal/repository/bet.go b/internal/repository/bet.go index 560eb62..14dc385 100644 --- a/internal/repository/bet.go +++ b/internal/repository/bet.go @@ -209,6 +209,10 @@ func (s *Store) GetAllBets(ctx context.Context, filter domain.BetFilter) ([]doma Int64: filter.UserID.Value, Valid: filter.UserID.Valid, }, + IsShopBet: pgtype.Bool{ + Bool: filter.IsShopBet.Value, + Valid: filter.IsShopBet.Valid, + }, }) if err != nil { domain.MongoDBLogger.Error("failed to get all bets", diff --git a/internal/repository/branch.go b/internal/repository/branch.go index 51f460f..f504a0f 100644 --- a/internal/repository/branch.go +++ b/internal/repository/branch.go @@ -128,8 +128,13 @@ func (s *Store) GetBranchByCompanyID(ctx context.Context, companyID int64) ([]do return branches, nil } -func (s *Store) GetAllBranches(ctx context.Context) ([]domain.BranchDetail, error) { - dbBranches, err := s.queries.GetAllBranches(ctx) +func (s *Store) GetAllBranches(ctx context.Context, filter domain.BranchFilter) ([]domain.BranchDetail, error) { + dbBranches, err := s.queries.GetAllBranches(ctx, dbgen.GetAllBranchesParams{ + CompanyID: pgtype.Int8{ + Int64: filter.CompanyID.Value, + Valid: filter.CompanyID.Valid, + }, + }) if err != nil { return nil, err } diff --git a/internal/repository/transfer.go b/internal/repository/transfer.go index 58d3b05..8b2d0b7 100644 --- a/internal/repository/transfer.go +++ b/internal/repository/transfer.go @@ -10,12 +10,18 @@ import ( func convertDBTransfer(transfer dbgen.WalletTransfer) domain.Transfer { return domain.Transfer{ - ID: transfer.ID, - Amount: domain.Currency(transfer.Amount), - Type: domain.TransferType(transfer.Type), - Verified: transfer.Verified, - ReceiverWalletID: transfer.ReceiverWalletID, - SenderWalletID: transfer.SenderWalletID.Int64, + ID: transfer.ID, + Amount: domain.Currency(transfer.Amount), + Type: domain.TransferType(transfer.Type), + Verified: transfer.Verified, + ReceiverWalletID: domain.ValidInt64{ + Value: transfer.ReceiverWalletID.Int64, + Valid: transfer.ReceiverWalletID.Valid, + }, + SenderWalletID: domain.ValidInt64{ + Value: transfer.SenderWalletID.Int64, + Valid: transfer.SenderWalletID.Valid, + }, CashierID: domain.ValidInt64{ Value: transfer.CashierID.Int64, Valid: transfer.CashierID.Valid, @@ -26,12 +32,15 @@ func convertDBTransfer(transfer dbgen.WalletTransfer) domain.Transfer { func convertCreateTransfer(transfer domain.CreateTransfer) dbgen.CreateTransferParams { return dbgen.CreateTransferParams{ - Amount: int64(transfer.Amount), - Type: string(transfer.Type), - ReceiverWalletID: transfer.ReceiverWalletID, + Amount: int64(transfer.Amount), + Type: string(transfer.Type), + ReceiverWalletID: pgtype.Int8{ + Int64: transfer.ReceiverWalletID.Value, + Valid: transfer.ReceiverWalletID.Valid, + }, SenderWalletID: pgtype.Int8{ - Int64: transfer.SenderWalletID, - Valid: true, + Int64: transfer.SenderWalletID.Value, + Valid: transfer.SenderWalletID.Valid, }, CashierID: pgtype.Int8{ Int64: transfer.CashierID.Value, @@ -62,7 +71,10 @@ func (s *Store) GetAllTransfers(ctx context.Context) ([]domain.Transfer, error) return result, nil } func (s *Store) GetTransfersByWallet(ctx context.Context, walletID int64) ([]domain.Transfer, error) { - transfers, err := s.queries.GetTransfersByWallet(ctx, walletID) + transfers, err := s.queries.GetTransfersByWallet(ctx, pgtype.Int8{ + Int64: walletID, + Valid: true, + }) if err != nil { return nil, err } diff --git a/internal/services/bet/service.go b/internal/services/bet/service.go index 59d0bc0..ae8de24 100644 --- a/internal/services/bet/service.go +++ b/internal/services/bet/service.go @@ -241,7 +241,11 @@ func (s *Service) PlaceBet(ctx context.Context, req domain.CreateBetReq, userID } deductedAmount := req.Amount / 10 - err = s.walletSvc.DeductFromWallet(ctx, branch.WalletID, domain.ToCurrency(deductedAmount)) + _, err = s.walletSvc.DeductFromWallet(ctx, + branch.WalletID, domain.ToCurrency(deductedAmount), domain.BranchWalletType, domain.ValidInt64{ + Value: userID, + Valid: true, + }, domain.TRANSFER_DIRECT) if err != nil { s.mongoLogger.Error("failed to deduct from wallet", zap.Int64("wallet_id", branch.WalletID), @@ -274,7 +278,10 @@ func (s *Service) PlaceBet(ctx context.Context, req domain.CreateBetReq, userID } deductedAmount := req.Amount / 10 - err = s.walletSvc.DeductFromWallet(ctx, branch.WalletID, domain.ToCurrency(deductedAmount)) + _, err = s.walletSvc.DeductFromWallet(ctx, branch.WalletID, domain.ToCurrency(deductedAmount), domain.BranchWalletType, domain.ValidInt64{ + Value: userID, + Valid: true, + }, domain.TRANSFER_DIRECT) if err != nil { s.mongoLogger.Error("wallet deduction failed", zap.Int64("wallet_id", branch.WalletID), @@ -300,7 +307,8 @@ func (s *Service) PlaceBet(ctx context.Context, req domain.CreateBetReq, userID } userWallet := wallets[0] - err = s.walletSvc.DeductFromWallet(ctx, userWallet.ID, domain.ToCurrency(req.Amount)) + _, err = s.walletSvc.DeductFromWallet(ctx, userWallet.ID, + domain.ToCurrency(req.Amount), domain.CustomerWalletType, domain.ValidInt64{}, domain.TRANSFER_DIRECT) if err != nil { s.mongoLogger.Error("wallet deduction failed for customer", zap.Int64("wallet_id", userWallet.ID), @@ -676,7 +684,8 @@ func (s *Service) UpdateStatus(ctx context.Context, id int64, status domain.Outc amount = bet.Amount } - err = s.walletSvc.AddToWallet(ctx, customerWallet.RegularID, amount) + _, err = s.walletSvc.AddToWallet(ctx, customerWallet.RegularID, amount, domain.ValidInt64{}, domain.TRANSFER_DIRECT, domain.PaymentDetails{}) + if err != nil { s.mongoLogger.Error("failed to add winnings to wallet", zap.Int64("wallet_id", customerWallet.RegularID), diff --git a/internal/services/branch/port.go b/internal/services/branch/port.go index a128d59..3f242c8 100644 --- a/internal/services/branch/port.go +++ b/internal/services/branch/port.go @@ -11,7 +11,7 @@ type BranchStore interface { GetBranchByID(ctx context.Context, id int64) (domain.BranchDetail, error) GetBranchByManagerID(ctx context.Context, branchManagerID int64) ([]domain.BranchDetail, error) GetBranchByCompanyID(ctx context.Context, companyID int64) ([]domain.BranchDetail, error) - GetAllBranches(ctx context.Context) ([]domain.BranchDetail, error) + GetAllBranches(ctx context.Context, filter domain.BranchFilter) ([]domain.BranchDetail, error) SearchBranchByName(ctx context.Context, name string) ([]domain.BranchDetail, error) UpdateBranch(ctx context.Context, branch domain.UpdateBranch) (domain.Branch, error) DeleteBranch(ctx context.Context, id int64) error diff --git a/internal/services/branch/service.go b/internal/services/branch/service.go index eb75170..eccb764 100644 --- a/internal/services/branch/service.go +++ b/internal/services/branch/service.go @@ -1,4 +1,4 @@ -package branch + package branch import ( "context" @@ -42,8 +42,8 @@ func (s *Service) GetBranchByCompanyID(ctx context.Context, companyID int64) ([] func (s *Service) GetBranchOperations(ctx context.Context, branchID int64) ([]domain.BranchOperation, error) { return s.branchStore.GetBranchOperations(ctx, branchID) } -func (s *Service) GetAllBranches(ctx context.Context) ([]domain.BranchDetail, error) { - return s.branchStore.GetAllBranches(ctx) +func (s *Service) GetAllBranches(ctx context.Context, filter domain.BranchFilter) ([]domain.BranchDetail, error) { + return s.branchStore.GetAllBranches(ctx, filter) } func (s *Service) GetBranchByCashier(ctx context.Context, userID int64) (domain.Branch, error) { diff --git a/internal/services/chapa/service.go b/internal/services/chapa/service.go index cb9281a..158b2e2 100644 --- a/internal/services/chapa/service.go +++ b/internal/services/chapa/service.go @@ -82,8 +82,11 @@ func (s *Service) InitiateDeposit(ctx context.Context, userID int64, amount doma PaymentMethod: domain.TRANSFER_CHAPA, ReferenceNumber: reference, // ReceiverWalletID: 1, - SenderWalletID: senderWallet.ID, - Verified: false, + SenderWalletID: domain.ValidInt64{ + Value: senderWallet.ID, + Valid: true, + }, + Verified: false, } if _, err := s.transferStore.CreateTransfer(ctx, transfer); err != nil { @@ -119,6 +122,11 @@ func (s *Service) VerifyDeposit(ctx context.Context, reference string) error { return ErrPaymentNotFound } + // just making sure that the sender id is valid + if !payment.SenderWalletID.Valid { + return fmt.Errorf("sender wallet is invalid %v \n", payment.SenderWalletID) + } + // Skip if already completed if payment.Verified { return nil @@ -137,7 +145,7 @@ func (s *Service) VerifyDeposit(ctx context.Context, reference string) error { // If payment is completed, credit user's wallet if verification.Status == domain.PaymentStatusCompleted { - if err := s.walletStore.UpdateBalance(ctx, payment.SenderWalletID, payment.Amount); err != nil { + if err := s.walletStore.UpdateBalance(ctx, payment.SenderWalletID.Value, payment.Amount); err != nil { return fmt.Errorf("failed to credit user wallet: %w", err) } } @@ -156,6 +164,11 @@ func (s *Service) ManualVerifyPayment(ctx context.Context, txRef string) (*domai }, nil } + // just making sure that the sender id is valid + if !transfer.SenderWalletID.Valid { + return nil, fmt.Errorf("sender wallet id is invalid: %v \n", transfer.SenderWalletID) + } + // If not verified or not found, verify with Chapa verification, err := s.chapaClient.VerifyPayment(ctx, txRef) if err != nil { @@ -170,7 +183,7 @@ func (s *Service) ManualVerifyPayment(ctx context.Context, txRef string) (*domai } // Credit user's wallet - err = s.walletStore.UpdateBalance(ctx, transfer.SenderWalletID, transfer.Amount) + err = s.walletStore.UpdateBalance(ctx, transfer.SenderWalletID.Value, transfer.Amount) if err != nil { return nil, fmt.Errorf("failed to update wallet balance: %w", err) } diff --git a/internal/services/referal/service.go b/internal/services/referal/service.go index 4c1b5b8..bbb0d43 100644 --- a/internal/services/referal/service.go +++ b/internal/services/referal/service.go @@ -124,7 +124,7 @@ func (s *Service) ProcessReferral(ctx context.Context, referredPhone, referralCo walletID := wallets[0].ID currentBonus := float64(wallets[0].Balance) - err = s.walletSvc.AddToWallet(ctx, walletID, domain.Currency(int64((currentBonus+referral.RewardAmount)*100))) + _, err = s.walletSvc.AddToWallet(ctx, walletID, domain.ToCurrency(float32(currentBonus+referral.RewardAmount)), domain.ValidInt64{}, domain.TRANSFER_DIRECT, domain.PaymentDetails{}) if err != nil { s.logger.Error("Failed to add referral reward to wallet", "walletID", walletID, "referrerID", referrerID, "error", err) return err @@ -162,7 +162,7 @@ func (s *Service) ProcessDepositBonus(ctx context.Context, userPhone string, amo walletID := wallets[0].ID bonus := amount * (settings.CashbackPercentage / 100) currentBonus := float64(wallets[0].Balance) - err = s.walletSvc.AddToWallet(ctx, walletID, domain.Currency(int64((currentBonus+bonus)*100))) + _, err = s.walletSvc.AddToWallet(ctx, walletID, domain.ToCurrency(float32(currentBonus+bonus)), domain.ValidInt64{}, domain.TRANSFER_DIRECT, domain.PaymentDetails{}) if err != nil { s.logger.Error("Failed to add deposit bonus to wallet", "walletID", walletID, "userID", userID, "bonus", bonus, "error", err) return err @@ -216,7 +216,7 @@ func (s *Service) ProcessBetReferral(ctx context.Context, userPhone string, betA walletID := wallets[0].ID currentBalance := float64(wallets[0].Balance) - err = s.walletSvc.AddToWallet(ctx, walletID, domain.Currency(int64((currentBalance+bonus)*100))) + _, err = s.walletSvc.AddToWallet(ctx, walletID, domain.ToCurrency(float32(currentBalance+bonus)), domain.ValidInt64{}, domain.TRANSFER_DIRECT, domain.PaymentDetails{}) if err != nil { s.logger.Error("Failed to add bet referral bonus to wallet", "walletID", walletID, "referrerID", referrerID, "bonus", bonus, "error", err) return err diff --git a/internal/services/virtualGame/Alea/service.go b/internal/services/virtualGame/Alea/service.go index aadd179..f3f9a9f 100644 --- a/internal/services/virtualGame/Alea/service.go +++ b/internal/services/virtualGame/Alea/service.go @@ -128,7 +128,7 @@ func (s *AleaPlayService) processTransaction(ctx context.Context, tx *domain.Vir } tx.WalletID = wallets[0].ID - if err := s.walletSvc.AddToWallet(ctx, tx.WalletID, domain.Currency(tx.Amount)); err != nil { + if _, err := s.walletSvc.AddToWallet(ctx, tx.WalletID, domain.Currency(tx.Amount), domain.ValidInt64{}, domain.TRANSFER_DIRECT, domain.PaymentDetails{}); err != nil { return fmt.Errorf("wallet update failed: %w", err) } diff --git a/internal/services/virtualGame/service.go b/internal/services/virtualGame/service.go index b1e28d0..c219b8a 100644 --- a/internal/services/virtualGame/service.go +++ b/internal/services/virtualGame/service.go @@ -117,7 +117,7 @@ func (s *service) HandleCallback(ctx context.Context, callback *domain.PopOKCall return errors.New("unknown transaction type") } - err = s.walletSvc.AddToWallet(ctx, walletID, domain.Currency(amount)) + _, err = s.walletSvc.AddToWallet(ctx, walletID, domain.Currency(amount), domain.ValidInt64{}, domain.TRANSFER_DIRECT, domain.PaymentDetails{}) if err != nil { s.logger.Error("Failed to update wallet", "walletID", walletID, "userID", session.UserID, "amount", amount, "error", err) return err @@ -184,7 +184,7 @@ func (s *service) ProcessBet(ctx context.Context, req *domain.PopOKBetRequest) ( return &domain.PopOKBetResponse{}, fmt.Errorf("Failed to read user wallets") } - if err := s.walletSvc.DeductFromWallet(ctx, claims.UserID, domain.Currency(amountCents)); err != nil { + if _, err := s.walletSvc.DeductFromWallet(ctx, claims.UserID, domain.Currency(amountCents), domain.CustomerWalletType, domain.ValidInt64{}, domain.TRANSFER_DIRECT); err != nil { return nil, fmt.Errorf("insufficient balance") } @@ -245,7 +245,7 @@ func (s *service) ProcessWin(ctx context.Context, req *domain.PopOKWinRequest) ( // 4. Credit to wallet - if err := s.walletSvc.AddToWallet(ctx, claims.UserID, domain.Currency(amountCents)); err != nil { + if _, err := s.walletSvc.AddToWallet(ctx, claims.UserID, domain.Currency(amountCents), domain.ValidInt64{}, domain.TRANSFER_DIRECT, domain.PaymentDetails{}); err != nil { s.logger.Error("Failed to credit wallet", "userID", claims.UserID, "error", err) return nil, fmt.Errorf("wallet credit failed") } @@ -316,7 +316,7 @@ func (s *service) ProcessCancel(ctx context.Context, req *domain.PopOKCancelRequ // 5. Refund the bet amount (absolute value since bet amount is negative) refundAmount := -originalBet.Amount - if err := s.walletSvc.AddToWallet(ctx, claims.UserID, domain.Currency(refundAmount)); err != nil { + if _, err := s.walletSvc.AddToWallet(ctx, claims.UserID, domain.Currency(refundAmount), domain.ValidInt64{}, domain.TRANSFER_DIRECT, domain.PaymentDetails{}); err != nil { s.logger.Error("Failed to refund bet", "userID", claims.UserID, "error", err) return nil, fmt.Errorf("refund failed") } diff --git a/internal/services/virtualGame/veli/service.go b/internal/services/virtualGame/veli/service.go index fc9097a..2474eab 100644 --- a/internal/services/virtualGame/veli/service.go +++ b/internal/services/virtualGame/veli/service.go @@ -150,7 +150,7 @@ func (s *VeliPlayService) processTransaction(ctx context.Context, tx *domain.Vir } tx.WalletID = wallets[0].ID - if err := s.walletSvc.AddToWallet(ctx, tx.WalletID, domain.Currency(tx.Amount)); err != nil { + if _, err := s.walletSvc.AddToWallet(ctx, tx.WalletID, domain.Currency(tx.Amount), domain.ValidInt64{}, domain.TRANSFER_DIRECT, domain.PaymentDetails{}); err != nil { return fmt.Errorf("wallet update failed: %w", err) } diff --git a/internal/services/wallet/transfer.go b/internal/services/wallet/transfer.go index 7f71c4a..ec29ce1 100644 --- a/internal/services/wallet/transfer.go +++ b/internal/services/wallet/transfer.go @@ -14,85 +14,7 @@ var ( ) func (s *Service) CreateTransfer(ctx context.Context, transfer domain.CreateTransfer) (domain.Transfer, error) { - senderWallet, err := s.walletStore.GetWalletByID(ctx, transfer.SenderWalletID) - receiverWallet, err := s.walletStore.GetWalletByID(ctx, transfer.ReceiverWalletID) - if err != nil { - return domain.Transfer{}, fmt.Errorf("failed to get sender wallet: %w", err) - } - - // Check if wallet has sufficient balance - if senderWallet.Balance < transfer.Amount || senderWallet.Balance == 0 { - // Send notification to customer - customerNotification := &domain.Notification{ - RecipientID: receiverWallet.UserID, - Type: domain.NOTIFICATION_TYPE_TRANSFER, - Level: domain.NotificationLevelError, - Reciever: domain.NotificationRecieverSideCustomer, - DeliveryChannel: domain.DeliveryChannelInApp, - Payload: domain.NotificationPayload{ - Headline: "Service Temporarily Unavailable", - Message: "Our payment system is currently under maintenance. Please try again later.", - }, - Priority: 2, - Metadata: []byte(fmt.Sprintf(`{ - "transfer_amount": %d, - "current_balance": %d, - "wallet_id": %d, - "notification_type": "customer_facing" - }`, transfer.Amount, senderWallet.Balance, transfer.SenderWalletID)), - } - - // Send notification to admin team - adminNotification := &domain.Notification{ - RecipientID: senderWallet.UserID, - Type: domain.NOTIFICATION_TYPE_ADMIN_ALERT, - Level: domain.NotificationLevelError, - Reciever: domain.NotificationRecieverSideAdmin, - DeliveryChannel: domain.DeliveryChannelEmail, // Or any preferred admin channel - Payload: domain.NotificationPayload{ - Headline: "CREDIT WARNING: System Running Out of Funds", - Message: fmt.Sprintf( - "Wallet ID %d has insufficient balance for transfer. Current balance: %.2f, Attempted transfer: %.2f", - transfer.SenderWalletID, - float64(senderWallet.Balance)/100, - float64(transfer.Amount)/100, - ), - }, - Priority: 1, // High priority for admin alerts - Metadata: fmt.Appendf(nil, `{ - "wallet_id": %d, - "balance": %d, - "required_amount": %d, - "notification_type": "admin_alert" - }`, transfer.SenderWalletID, senderWallet.Balance, transfer.Amount), - } - - // Send both notifications - if err := s.notificationStore.SendNotification(ctx, customerNotification); err != nil { - s.logger.Error("failed to send customer notification", - "user_id", "", - "error", err) - } - - // Get admin recipients and send to all - adminRecipients, err := s.notificationStore.ListRecipientIDs(ctx, domain.NotificationRecieverSideAdmin) - if err != nil { - s.logger.Error("failed to get admin recipients", "error", err) - } else { - for _, adminID := range adminRecipients { - adminNotification.RecipientID = adminID - if err := s.notificationStore.SendNotification(ctx, adminNotification); err != nil { - s.logger.Error("failed to send admin notification", - "admin_id", adminID, - "error", err) - } - } - } - - return domain.Transfer{}, ErrInsufficientBalance - } - - // Proceed with transfer if balance is sufficient + // This is just a transfer log when return s.transferStore.CreateTransfer(ctx, transfer) } @@ -116,43 +38,12 @@ func (s *Service) UpdateTransferVerification(ctx context.Context, id int64, veri return s.transferStore.UpdateTransferVerification(ctx, id, verified) } -func (s *Service) RefillWallet(ctx context.Context, transfer domain.CreateTransfer) (domain.Transfer, error) { - receiverWallet, err := s.GetWalletByID(ctx, transfer.ReceiverWalletID) - if err != nil { - return domain.Transfer{}, err - } - // Add to receiver - senderWallet, err := s.GetWalletByID(ctx, transfer.SenderWalletID) - if err != nil { - return domain.Transfer{}, err - } else if senderWallet.Balance < transfer.Amount { - return domain.Transfer{}, ErrInsufficientBalance - } - err = s.walletStore.UpdateBalance(ctx, receiverWallet.ID, receiverWallet.Balance+transfer.Amount) - if err != nil { - return domain.Transfer{}, err - } - - // Log the transfer so that if there is a mistake, it can be reverted - newTransfer, err := s.transferStore.CreateTransfer(ctx, domain.CreateTransfer{ - CashierID: transfer.CashierID, - ReceiverWalletID: receiverWallet.ID, - Amount: transfer.Amount, - Type: domain.DEPOSIT, - PaymentMethod: transfer.PaymentMethod, - Verified: true, - }) - if err != nil { - return domain.Transfer{}, err - } - - return newTransfer, nil - -} - -func (s *Service) TransferToWallet(ctx context.Context, senderID int64, receiverID int64, amount domain.Currency, paymentMethod domain.PaymentMethod, cashierID domain.ValidInt64) (domain.Transfer, error) { +func (s *Service) TransferToWallet(ctx context.Context, + senderID int64, receiverID int64, + amount domain.Currency, paymentMethod domain.PaymentMethod, + cashierID domain.ValidInt64) (domain.Transfer, error) { senderWallet, err := s.GetWalletByID(ctx, senderID) if err != nil { @@ -191,14 +82,20 @@ func (s *Service) TransferToWallet(ctx context.Context, senderID int64, receiver } // Log the transfer so that if there is a mistake, it can be reverted - transfer, err := s.transferStore.CreateTransfer(ctx, domain.CreateTransfer{ - SenderWalletID: senderID, - CashierID: cashierID, - ReceiverWalletID: receiverID, - Amount: amount, - Type: domain.WALLET, - PaymentMethod: paymentMethod, - Verified: true, + transfer, err := s.CreateTransfer(ctx, domain.CreateTransfer{ + SenderWalletID: domain.ValidInt64{ + Value: senderID, + Valid: true, + }, + ReceiverWalletID: domain.ValidInt64{ + Value: receiverID, + Valid: true, + }, + CashierID: cashierID, + Amount: amount, + Type: domain.WALLET, + PaymentMethod: paymentMethod, + Verified: true, }) if err != nil { return domain.Transfer{}, err @@ -206,3 +103,66 @@ func (s *Service) TransferToWallet(ctx context.Context, senderID int64, receiver return transfer, nil } + +func (s *Service) SendTransferNotification(ctx context.Context, senderWallet domain.Wallet, receiverWallet domain.Wallet, + senderRole domain.Role, receiverRole domain.Role, amount domain.Currency) error { + // Send notification to sender (this could be any role) that money was transferred + senderWalletReceiverSide := domain.ReceiverFromRole(senderRole) + + senderNotify := &domain.Notification{ + RecipientID: senderWallet.UserID, + Type: domain.NOTIFICATION_TYPE_TRANSFER_SUCCESS, + Level: domain.NotificationLevelSuccess, + Reciever: senderWalletReceiverSide, + DeliveryChannel: domain.DeliveryChannelInApp, + Payload: domain.NotificationPayload{ + Headline: "Wallet has been deducted", + Message: fmt.Sprintf(`ETB %d has been transferred from your wallet`), + }, + Priority: 2, + Metadata: []byte(fmt.Sprintf(`{ + "transfer_amount": %d, + "current_balance": %d, + "wallet_id": %d, + "notification_type": "customer_facing" + }`, amount, senderWallet.Balance, senderWallet.ID)), + } + + // Sender notifications + if err := s.notificationStore.SendNotification(ctx, senderNotify); err != nil { + s.logger.Error("failed to send sender notification", + "user_id", "", + "error", err) + return err + } + + receiverWalletReceiverSide := domain.ReceiverFromRole(receiverRole) + + receiverNotify := &domain.Notification{ + RecipientID: receiverWallet.UserID, + Type: domain.NOTIFICATION_TYPE_TRANSFER_SUCCESS, + Level: domain.NotificationLevelSuccess, + Reciever: receiverWalletReceiverSide, + DeliveryChannel: domain.DeliveryChannelInApp, + Payload: domain.NotificationPayload{ + Headline: "Wallet has been credited", + Message: fmt.Sprintf(`ETB %d has been transferred to your wallet`), + }, + Priority: 2, + Metadata: []byte(fmt.Sprintf(`{ + "transfer_amount": %d, + "current_balance": %d, + "wallet_id": %d, + "notification_type": "customer_facing" + }`, amount, receiverWallet.Balance, receiverWallet.ID)), + } + // Sender notifications + if err := s.notificationStore.SendNotification(ctx, receiverNotify); err != nil { + s.logger.Error("failed to send sender notification", + "user_id", "", + "error", err) + return err + } + + return nil +} diff --git a/internal/services/wallet/wallet.go b/internal/services/wallet/wallet.go index cf9cd4c..fb94f86 100644 --- a/internal/services/wallet/wallet.go +++ b/internal/services/wallet/wallet.go @@ -3,6 +3,7 @@ package wallet import ( "context" "errors" + "fmt" "github.com/SamuelTariku/FortuneBet-Backend/internal/domain" ) @@ -68,28 +69,152 @@ func (s *Service) UpdateBalance(ctx context.Context, id int64, balance domain.Cu return s.walletStore.UpdateBalance(ctx, id, balance) } -func (s *Service) AddToWallet(ctx context.Context, id int64, amount domain.Currency) error { +func (s *Service) AddToWallet( + ctx context.Context, id int64, amount domain.Currency, cashierID domain.ValidInt64, paymentMethod domain.PaymentMethod, paymentDetails domain.PaymentDetails) (domain.Transfer, error) { wallet, err := s.GetWalletByID(ctx, id) if err != nil { - return err + return domain.Transfer{}, err } - return s.walletStore.UpdateBalance(ctx, id, wallet.Balance+amount) + err = s.walletStore.UpdateBalance(ctx, id, wallet.Balance+amount) + if err != nil { + return domain.Transfer{}, err + } + + // Log the transfer here for reference + newTransfer, err := s.transferStore.CreateTransfer(ctx, domain.CreateTransfer{ + Amount: amount, + Verified: true, + ReceiverWalletID: domain.ValidInt64{ + Value: wallet.ID, + Valid: true, + }, + CashierID: cashierID, + PaymentMethod: paymentMethod, + Type: domain.DEPOSIT, + ReferenceNumber: paymentDetails.ReferenceNumber.Value, + }) + + return newTransfer, err } -func (s *Service) DeductFromWallet(ctx context.Context, id int64, amount domain.Currency) error { +func (s *Service) DeductFromWallet(ctx context.Context, id int64, amount domain.Currency, walletType domain.WalletType, cashierID domain.ValidInt64, paymentMethod domain.PaymentMethod) (domain.Transfer, error) { wallet, err := s.GetWalletByID(ctx, id) if err != nil { - return err + return domain.Transfer{}, err } if wallet.Balance < amount { - return ErrBalanceInsufficient + // Send Wallet low to admin + if walletType == domain.CompanyWalletType || walletType == domain.BranchWalletType { + s.SendAdminWalletLowNotification(ctx, wallet, amount) + } + return domain.Transfer{}, ErrBalanceInsufficient } - return s.walletStore.UpdateBalance(ctx, id, wallet.Balance-amount) + err = s.walletStore.UpdateBalance(ctx, id, wallet.Balance-amount) + + if err != nil { + return domain.Transfer{}, nil + } + + // Log the transfer here for reference + newTransfer, err := s.transferStore.CreateTransfer(ctx, domain.CreateTransfer{ + Amount: amount, + Verified: true, + SenderWalletID: domain.ValidInt64{ + Value: wallet.ID, + Valid: true, + }, + CashierID: cashierID, + PaymentMethod: paymentMethod, + Type: domain.WITHDRAW, + ReferenceNumber: "", + }) + + return newTransfer, err } +// Directly Refilling wallet without +// func (s *Service) RefillWallet(ctx context.Context, transfer domain.CreateTransfer) (domain.Transfer, error) { +// receiverWallet, err := s.GetWalletByID(ctx, transfer.ReceiverWalletID) +// if err != nil { +// return domain.Transfer{}, err +// } + +// // Add to receiver +// senderWallet, err := s.GetWalletByID(ctx, transfer.SenderWalletID) +// if err != nil { +// return domain.Transfer{}, err +// } else if senderWallet.Balance < transfer.Amount { +// return domain.Transfer{}, ErrInsufficientBalance +// } + +// err = s.walletStore.UpdateBalance(ctx, receiverWallet.ID, receiverWallet.Balance+transfer.Amount) +// if err != nil { +// return domain.Transfer{}, err +// } + +// // Log the transfer so that if there is a mistake, it can be reverted +// newTransfer, err := s.transferStore.CreateTransfer(ctx, domain.CreateTransfer{ +// CashierID: transfer.CashierID, +// ReceiverWalletID: transfer.ReceiverWalletID, +// Amount: transfer.Amount, +// Type: domain.DEPOSIT, +// PaymentMethod: transfer.PaymentMethod, +// Verified: true, +// }) +// if err != nil { +// return domain.Transfer{}, err +// } + +// return newTransfer, nil +// } + func (s *Service) UpdateWalletActive(ctx context.Context, id int64, isActive bool) error { return s.walletStore.UpdateWalletActive(ctx, id, isActive) } + +func (s *Service) SendAdminWalletLowNotification(ctx context.Context, adminWallet domain.Wallet, amount domain.Currency) error { + // Send notification to admin team + adminNotification := &domain.Notification{ + RecipientID: adminWallet.UserID, + Type: domain.NOTIFICATION_TYPE_ADMIN_ALERT, + Level: domain.NotificationLevelError, + Reciever: domain.NotificationRecieverSideAdmin, + DeliveryChannel: domain.DeliveryChannelEmail, // Or any preferred admin channel + Payload: domain.NotificationPayload{ + Headline: "CREDIT WARNING: System Running Out of Funds", + Message: fmt.Sprintf( + "Wallet ID %d has insufficient balance for transfer. Current balance: %.2f, Attempted transfer: %.2f", + adminWallet.ID, + adminWallet.Balance.Float32(), + amount.Float32(), + ), + }, + Priority: 1, // High priority for admin alerts + Metadata: fmt.Appendf(nil, `{ + "wallet_id": %d, + "balance": %d, + "required_amount": %d, + "notification_type": "admin_alert" + }`, adminWallet.ID, adminWallet.Balance, amount), + } + + // Get admin recipients and send to all + adminRecipients, err := s.notificationStore.ListRecipientIDs(ctx, domain.NotificationRecieverSideAdmin) + if err != nil { + s.logger.Error("failed to get admin recipients", "error", err) + return err + } else { + for _, adminID := range adminRecipients { + adminNotification.RecipientID = adminID + if err := s.notificationStore.SendNotification(ctx, adminNotification); err != nil { + s.logger.Error("failed to send admin notification", + "admin_id", adminID, + "error", err) + } + } + } + return nil +} diff --git a/internal/web_server/cron.go b/internal/web_server/cron.go index 9aef6cc..1bce7d2 100644 --- a/internal/web_server/cron.go +++ b/internal/web_server/cron.go @@ -62,30 +62,30 @@ func StartDataFetchingCrons(eventService eventsvc.Service, oddsService oddssvc.S // } // }, // }, - { - spec: "0 */5 * * * *", // Every 5 Minutes - task: func() { - log.Println("Updating expired events status...") + // { + // spec: "0 */5 * * * *", // Every 5 Minutes + // task: func() { + // log.Println("Updating expired events status...") - if _, err := resultService.CheckAndUpdateExpiredEvents(context.Background()); err != nil { - log.Printf("Failed to update events: %v", err) - } else { - log.Printf("Successfully updated expired events") - } - }, - }, - { - spec: "0 */15 * * * *", // Every 15 Minutes - task: func() { - log.Println("Fetching results for upcoming events...") + // if _, err := resultService.CheckAndUpdateExpiredEvents(context.Background()); err != nil { + // log.Printf("Failed to update events: %v", err) + // } else { + // log.Printf("Successfully updated expired events") + // } + // }, + // }, + // { + // spec: "0 */15 * * * *", // Every 15 Minutes + // task: func() { + // log.Println("Fetching results for upcoming events...") - if err := resultService.FetchAndProcessResults(context.Background()); err != nil { - log.Printf("Failed to process result: %v", err) - } else { - log.Printf("Successfully processed all outcomes") - } - }, - }, + // if err := resultService.FetchAndProcessResults(context.Background()); err != nil { + // log.Printf("Failed to process result: %v", err) + // } else { + // log.Printf("Successfully processed all outcomes") + // } + // }, + // }, } for _, job := range schedule { diff --git a/internal/web_server/handlers/auth_handler.go b/internal/web_server/handlers/auth_handler.go index 1b3cc97..8c22fdd 100644 --- a/internal/web_server/handlers/auth_handler.go +++ b/internal/web_server/handlers/auth_handler.go @@ -36,15 +36,14 @@ type loginCustomerRes struct { // @Failure 500 {object} response.APIResponse // @Router /auth/login [post] func (h *Handler) LoginCustomer(c *fiber.Ctx) error { - var req loginCustomerReq if err := c.BodyParser(&req); err != nil { h.logger.Error("Failed to parse LoginCustomer request", "error", err) return fiber.NewError(fiber.StatusBadRequest, "Invalid request body") } - if valErrs, ok := h.validator.Validate(c, req); !ok { - return response.WriteJSON(c, fiber.StatusBadRequest, "Invalid request", valErrs, nil) + if _, ok := h.validator.Validate(c, req); !ok { + return fiber.NewError(fiber.StatusBadRequest, "Invalid Request") } successRes, err := h.authSvc.Login(c.Context(), req.Email, req.PhoneNumber, req.Password) diff --git a/internal/web_server/handlers/bet_handler.go b/internal/web_server/handlers/bet_handler.go index a7a0706..7410044 100644 --- a/internal/web_server/handlers/bet_handler.go +++ b/internal/web_server/handlers/bet_handler.go @@ -1,7 +1,6 @@ package handlers import ( - "fmt" "strconv" "time" @@ -24,7 +23,6 @@ import ( // @Failure 500 {object} response.APIResponse // @Router /bet [post] func (h *Handler) CreateBet(c *fiber.Ctx) error { - fmt.Printf("Calling leagues") // Get user_id from middleware userID := c.Locals("user_id").(int64) role := c.Locals("role").(domain.Role) @@ -161,12 +159,29 @@ func (h *Handler) RandomBet(c *fiber.Ctx) error { // @Failure 500 {object} response.APIResponse // @Router /bet [get] func (h *Handler) GetAllBet(c *fiber.Ctx) error { + + // role := c.Locals("role").(domain.Role) companyID := c.Locals("company_id").(domain.ValidInt64) branchID := c.Locals("branch_id").(domain.ValidInt64) + var isShopBet domain.ValidBool + isShopBetQuery := c.Query("is_shop") + + + if isShopBetQuery != "" { + isShopBetParse, err := strconv.ParseBool(isShopBetQuery) + if err != nil { + return fiber.NewError(fiber.StatusBadRequest, "Failed to parse is_shop_bet") + } + isShopBet = domain.ValidBool{ + Value: isShopBetParse, + Valid: true, + } + } bets, err := h.betSvc.GetAllBets(c.Context(), domain.BetFilter{ BranchID: branchID, CompanyID: companyID, + IsShopBet: isShopBet, }) if err != nil { h.logger.Error("Failed to get bets", "error", err) diff --git a/internal/web_server/handlers/branch_handler.go b/internal/web_server/handlers/branch_handler.go index 6f869a1..290f040 100644 --- a/internal/web_server/handlers/branch_handler.go +++ b/internal/web_server/handlers/branch_handler.go @@ -381,8 +381,23 @@ func (h *Handler) GetBranchByCompanyID(c *fiber.Ctx) error { // @Failure 500 {object} response.APIResponse // @Router /branch [get] func (h *Handler) GetAllBranches(c *fiber.Ctx) error { - // TODO: Limit the get all branches to only the companies for branch manager and cashiers - branches, err := h.branchSvc.GetAllBranches(c.Context()) + companyID := c.Locals("company_id").(domain.ValidInt64) + isActiveParam := c.Params("is_active") + isActiveValid := isActiveParam != "" + isActive, err := strconv.ParseBool(isActiveParam) + + if isActiveValid && err != nil { + return response.WriteJSON(c, fiber.StatusBadRequest, "Invalid is_active param", err, nil) + } + + branches, err := h.branchSvc.GetAllBranches(c.Context(), + domain.BranchFilter{ + CompanyID: companyID, + IsSuspended: domain.ValidBool{ + Value: isActive, + Valid: isActiveValid, + }, + }) if err != nil { h.logger.Error("Failed to get branches", "error", err) return response.WriteJSON(c, fiber.StatusInternalServerError, "Failed to get branches", err, nil) diff --git a/internal/web_server/handlers/manager.go b/internal/web_server/handlers/manager.go index 948ca05..02c1496 100644 --- a/internal/web_server/handlers/manager.go +++ b/internal/web_server/handlers/manager.go @@ -111,7 +111,8 @@ type ManagersRes struct { func (h *Handler) GetAllManagers(c *fiber.Ctx) error { role := c.Locals("role").(domain.Role) companyId := c.Locals("company_id").(domain.ValidInt64) - + + // Checking to make sure that admin user has a company id in the token if role != domain.RoleSuperAdmin && !companyId.Valid { return fiber.NewError(fiber.StatusInternalServerError, "Cannot get company ID") } @@ -182,32 +183,38 @@ func (h *Handler) GetAllManagers(c *fiber.Ctx) error { // @Failure 500 {object} response.APIResponse // @Router /managers/{id} [get] func (h *Handler) GetManagerByID(c *fiber.Ctx) error { - // branchId := int64(12) //c.Locals("branch_id").(int64) - // filter := user.Filter{ - // Role: string(domain.RoleUser), - // BranchId: user.ValidBranchId{ - // Value: branchId, - // Valid: true, - // }, - // Page: c.QueryInt("page", 1), - // PageSize: c.QueryInt("page_size", 10), - // } - // valErrs, ok := validator.Validate(c, filter) - // if !ok { - // return response.WriteJSON(c, fiber.StatusBadRequest, "Invalid request", valErrs, nil) - // } + role := c.Locals("role").(domain.Role) + companyId := c.Locals("company_id").(domain.ValidInt64) + requestUserID := c.Locals("user_id").(int64) + + // Only Super Admin / Admin / Branch Manager can view this route + if role != domain.RoleSuperAdmin && role != domain.RoleAdmin && role != domain.RoleBranchManager { + return fiber.NewError(fiber.StatusUnauthorized, "Role Unauthorized") + } + + if role != domain.RoleSuperAdmin && !companyId.Valid { + return fiber.NewError(fiber.StatusInternalServerError, "Cannot get company ID") + } userIDstr := c.Params("id") userID, err := strconv.ParseInt(userIDstr, 10, 64) if err != nil { - h.logger.Error("failed to fetch user using UserID", "error", err) - return response.WriteJSON(c, fiber.StatusBadRequest, "Invalid managers ID", nil, nil) + return fiber.NewError(fiber.StatusBadRequest, "Invalid managers ID") } user, err := h.userSvc.GetUserByID(c.Context(), userID) if err != nil { - h.logger.Error("Get User By ID failed", "error", err) - return response.WriteJSON(c, fiber.StatusInternalServerError, "Failed to get managers", nil, nil) + return fiber.NewError(fiber.StatusInternalServerError, "Failed to get managers") + } + + // A Branch Manager can only fetch his own branch info + if role == domain.RoleBranchManager && user.ID != requestUserID { + return fiber.NewError(fiber.StatusBadRequest, "User Access Not Allowed") + } + + // Check that only admin from company can view this route + if role != domain.RoleSuperAdmin && user.CompanyID.Value != companyId.Value { + return fiber.NewError(fiber.StatusBadRequest, "Only company user can view manager info") } lastLogin, err := h.authSvc.GetLastLogin(c.Context(), user.ID) @@ -259,7 +266,9 @@ type updateManagerReq struct { // @Failure 500 {object} response.APIResponse // @Router /managers/{id} [put] func (h *Handler) UpdateManagers(c *fiber.Ctx) error { + var req updateManagerReq + if err := c.BodyParser(&req); err != nil { h.logger.Error("UpdateManagers failed", "error", err) return response.WriteJSON(c, fiber.StatusBadRequest, "Invalid request", nil, nil) diff --git a/internal/web_server/handlers/mongoLogger.go b/internal/web_server/handlers/mongoLogger.go index 384e3a2..f31d780 100644 --- a/internal/web_server/handlers/mongoLogger.go +++ b/internal/web_server/handlers/mongoLogger.go @@ -12,7 +12,7 @@ import ( func GetLogsHandler(appCtx context.Context) fiber.Handler { return func(c *fiber.Ctx) error { - client, err := mongo.Connect(appCtx, options.Client().ApplyURI("mongodb://root:secret@mongo:27017/?authSource=admin")) + client, err := mongo.Connect(appCtx, options.Client().ApplyURI("mongodb://root:secret@localhost:27017/?authSource=admin")) if err != nil { return fiber.NewError(fiber.StatusInternalServerError, "MongoDB connection failed: "+err.Error()) } @@ -32,7 +32,6 @@ func GetLogsHandler(appCtx context.Context) fiber.Handler { return fiber.NewError(fiber.StatusInternalServerError, "Cursor decoding error: "+err.Error()) } - return c.JSON(logs) } } diff --git a/internal/web_server/handlers/transfer_handler.go b/internal/web_server/handlers/transfer_handler.go index b272a39..a2a5a56 100644 --- a/internal/web_server/handlers/transfer_handler.go +++ b/internal/web_server/handlers/transfer_handler.go @@ -15,7 +15,7 @@ type TransferWalletRes struct { Verified bool `json:"verified" example:"true"` Type string `json:"type" example:"transfer"` PaymentMethod string `json:"payment_method" example:"bank"` - ReceiverWalletID int64 `json:"receiver_wallet_id" example:"1"` + ReceiverWalletID *int64 `json:"receiver_wallet_id" example:"1"` SenderWalletID *int64 `json:"sender_wallet_id" example:"1"` CashierID *int64 `json:"cashier_id" example:"789"` CreatedAt time.Time `json:"created_at" example:"2025-04-08T12:00:00Z"` @@ -27,7 +27,7 @@ type RefillRes struct { Verified bool `json:"verified" example:"true"` Type string `json:"type" example:"transfer"` PaymentMethod string `json:"payment_method" example:"bank"` - ReceiverWalletID int64 `json:"receiver_wallet_id" example:"1"` + ReceiverWalletID *int64 `json:"receiver_wallet_id" example:"1"` SenderWalletID *int64 `json:"sender_wallet_id" example:"1"` CashierID *int64 `json:"cashier_id" example:"789"` CreatedAt time.Time `json:"created_at" example:"2025-04-08T12:00:00Z"` @@ -35,13 +35,20 @@ type RefillRes struct { } func convertTransfer(transfer domain.Transfer) TransferWalletRes { - var senderWalletID *int64 - senderWalletID = &transfer.SenderWalletID var cashierID *int64 if transfer.CashierID.Valid { cashierID = &transfer.CashierID.Value } + var receiverID *int64 + if transfer.ReceiverWalletID.Valid { + receiverID = &transfer.ReceiverWalletID.Value + } + + var senderId *int64 + if transfer.SenderWalletID.Valid { + senderId = &transfer.SenderWalletID.Value + } return TransferWalletRes{ ID: transfer.ID, @@ -49,8 +56,8 @@ func convertTransfer(transfer domain.Transfer) TransferWalletRes { Verified: transfer.Verified, Type: string(transfer.Type), PaymentMethod: string(transfer.PaymentMethod), - ReceiverWalletID: transfer.ReceiverWalletID, - SenderWalletID: senderWalletID, + ReceiverWalletID: receiverID, + SenderWalletID: senderId, CashierID: cashierID, CreatedAt: transfer.CreatedAt, UpdatedAt: transfer.UpdatedAt, @@ -126,16 +133,16 @@ func (h *Handler) TransferToWallet(c *fiber.Ctx) error { } // Get sender ID from the cashier userID := c.Locals("user_id").(int64) - role := string(c.Locals("role").(domain.Role)) + role := c.Locals("role").(domain.Role) companyID := c.Locals("company_id").(int64) var senderID int64 //TODO: check to make sure that the cashiers aren't transferring TO branch wallet - if role == string(domain.RoleCustomer) { + if role == domain.RoleCustomer { h.logger.Error("Unauthorized access", "userID", userID, "role", role) return response.WriteJSON(c, fiber.StatusUnauthorized, "Unauthorized access", nil, nil) - } else if role == string(domain.RoleBranchManager) || role == string(domain.RoleAdmin) || role == string(domain.RoleSuperAdmin) { + } else if role == domain.RoleBranchManager || role == domain.RoleAdmin || role == domain.RoleSuperAdmin { company, err := h.companySvc.GetCompanyByID(c.Context(), companyID) if err != nil { return response.WriteJSON(c, fiber.StatusInternalServerError, "Error fetching company", err, nil) @@ -190,6 +197,7 @@ func (h *Handler) RefillWallet(c *fiber.Ctx) error { receiverIDString := c.Params("id") + userID := c.Locals("user_id").(int64) receiverID, err := strconv.ParseInt(receiverIDString, 10, 64) if err != nil { @@ -197,13 +205,6 @@ func (h *Handler) RefillWallet(c *fiber.Ctx) error { return response.WriteJSON(c, fiber.StatusBadRequest, "Invalid wallet ID", err, nil) } // Get sender ID from the cashier - userID := c.Locals("user_id").(int64) - role := string(c.Locals("role").(domain.Role)) - - if role != string(domain.RoleSuperAdmin) { - h.logger.Error("Unauthorized access", "userID", userID, "role", role) - return response.WriteJSON(c, fiber.StatusUnauthorized, "Unauthorized access", nil, nil) - } var req CreateRefillReq @@ -217,16 +218,11 @@ func (h *Handler) RefillWallet(c *fiber.Ctx) error { return response.WriteJSON(c, fiber.StatusBadRequest, "Invalid request", valErrs, nil) } - transfer, err := h.walletSvc.RefillWallet(c.Context(), domain.CreateTransfer{ - Amount: domain.ToCurrency(req.Amount), - PaymentMethod: domain.TRANSFER_BANK, - ReceiverWalletID: receiverID, - CashierID: domain.ValidInt64{ + transfer, err := h.walletSvc.AddToWallet( + c.Context(), receiverID, domain.ToCurrency(req.Amount), domain.ValidInt64{ Value: userID, Valid: true, - }, - Type: domain.TransferType("deposit"), - }) + }, domain.TRANSFER_BANK, domain.PaymentDetails{}) if !ok { return response.WriteJSON(c, fiber.StatusInternalServerError, "Creating Transfer Failed", err, nil) diff --git a/internal/web_server/handlers/user.go b/internal/web_server/handlers/user.go index 522551c..57fed45 100644 --- a/internal/web_server/handlers/user.go +++ b/internal/web_server/handlers/user.go @@ -192,7 +192,8 @@ func (h *Handler) RegisterUser(c *fiber.Ctx) error { } // TODO: Remove later - err = h.walletSvc.AddToWallet(c.Context(), newWallet.ID, domain.ToCurrency(100.0)) + _, err = h.walletSvc.AddToWallet( + c.Context(), newWallet.ID, domain.ToCurrency(100.0), domain.ValidInt64{}, domain.TRANSFER_DIRECT, domain.PaymentDetails{}) if err != nil { h.logger.Error("Failed to update wallet for user", "userID", newUser.ID, "error", err) @@ -413,6 +414,7 @@ func (h *Handler) SearchUserByNameOrPhone(c *fiber.Ctx) error { return nil } companyID := c.Locals("company_id").(domain.ValidInt64) + users, err := h.userSvc.SearchUserByNameOrPhone(c.Context(), req.SearchString, req.Role, companyID) if err != nil { h.logger.Error("SearchUserByNameOrPhone failed", "error", err) diff --git a/internal/web_server/middleware.go b/internal/web_server/middleware.go index 3a6303d..47dabc3 100644 --- a/internal/web_server/middleware.go +++ b/internal/web_server/middleware.go @@ -87,6 +87,22 @@ func (a *App) CompanyOnly(c *fiber.Ctx) error { return c.Next() } +func (a *App) OnlyAdminAndAbove(c *fiber.Ctx) error { + userRole := c.Locals("role").(domain.Role) + if userRole != domain.RoleSuperAdmin && userRole != domain.RoleAdmin { + return fiber.NewError(fiber.StatusUnauthorized, "Invalid access token") + } + return c.Next() +} + +func (a *App) OnlyBranchManagerAndAbove(c *fiber.Ctx) error { + userRole := c.Locals("role").(domain.Role) + if userRole != domain.RoleSuperAdmin && userRole != domain.RoleAdmin && userRole != domain.RoleBranchManager { + return fiber.NewError(fiber.StatusUnauthorized, "Invalid access token") + } + return c.Next() +} + func (a *App) WebsocketAuthMiddleware(c *fiber.Ctx) error { tokenStr := c.Query("token") if tokenStr == "" { diff --git a/internal/web_server/routes.go b/internal/web_server/routes.go index d40c932..7b17b28 100644 --- a/internal/web_server/routes.go +++ b/internal/web_server/routes.go @@ -189,7 +189,7 @@ func (a *App) initAppRoutes() { a.fiber.Get("/wallet/:id", h.GetWalletByID) a.fiber.Put("/wallet/:id", h.UpdateWalletActive) a.fiber.Get("/branchWallet", a.authMiddleware, h.GetAllBranchWallets) - a.fiber.Get("/cashierWallet", a.authMiddleware, h.GetWalletForCashier) +a.fiber.Get("/cashierWallet", a.authMiddleware, h.GetWalletForCashier) // Transfer // /transfer/wallet - transfer from one wallet to another wallet diff --git a/logs/app.log b/logs/app.log index e69de29..c5454cd 100644 --- a/logs/app.log +++ b/logs/app.log @@ -0,0 +1,2 @@ +time=2025-06-16T02:21:34.859+03:00 level=INFO msg="Authenticated WebSocket connection" service_info.env=development userID=3 +time=2025-06-16T02:23:59.721+03:00 level=INFO msg="Starting server" service_info.env=development port=8080 From 344923b177dc98ae95e187f94344fa6e2d8dc824 Mon Sep 17 00:00:00 2001 From: Samuel Tariku Date: Mon, 16 Jun 2025 23:19:29 +0300 Subject: [PATCH 2/4] fix: merge issues --- .gitignore | 6 +- db/migrations/000001_fortune.up.sql | 4 +- gen/db/auth.sql.go | 2 +- gen/db/bet.sql.go | 2 +- gen/db/branch.sql.go | 2 +- gen/db/cashier.sql.go | 2 +- gen/db/company.sql.go | 2 +- gen/db/copyfrom.go | 2 +- gen/db/db.go | 2 +- gen/db/events.sql.go | 2 +- gen/db/leagues.sql.go | 2 +- gen/db/models.go | 12 +- gen/db/monitor.sql.go | 2 +- gen/db/notification.sql.go | 2 +- gen/db/odds.sql.go | 2 +- gen/db/otp.sql.go | 2 +- gen/db/referal.sql.go | 2 +- gen/db/result.sql.go | 2 +- gen/db/ticket.sql.go | 2 +- gen/db/transactions.sql.go | 2 +- gen/db/transfer.sql.go | 2 +- gen/db/user.sql.go | 2 +- gen/db/virtual_games.sql.go | 2 +- gen/db/wallet.sql.go | 14 +- internal/repository/transfer.go | 16 +- internal/services/chapa/service.go | 26 +- internal/services/wallet/transfer.go | 5 - internal/services/wallet/wallet.go | 2 +- logs/app.log | 1 + logs/failed_markets.log | 39033 ------------------------- 30 files changed, 68 insertions(+), 39091 deletions(-) diff --git a/.gitignore b/.gitignore index e80176d..548e7cb 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,7 @@ -# bin -# coverage.out +bin +coverage.out # coverage # .env # tmp # build -# *.log \ No newline at end of file +*.log \ No newline at end of file diff --git a/db/migrations/000001_fortune.up.sql b/db/migrations/000001_fortune.up.sql index 5a48b6b..34bae36 100644 --- a/db/migrations/000001_fortune.up.sql +++ b/db/migrations/000001_fortune.up.sql @@ -139,7 +139,7 @@ CREATE TABLE IF NOT EXISTS wallet_transfer ( cashier_id BIGINT, verified BOOLEAN DEFAULT false, reference_number VARCHAR(255), - status VARCHAR(255), + status VARCHAR(255), payment_method VARCHAR(255), created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP @@ -308,7 +308,7 @@ ALTER TABLE bets ADD CONSTRAINT fk_bets_users FOREIGN KEY (user_id) REFERENCES users(id), ADD CONSTRAINT fk_bets_branches FOREIGN KEY (branch_id) REFERENCES branches(id); ALTER TABLE wallets - ADD CONSTRAINT fk_wallets_users FOREIGN KEY (user_id) REFERENCES users(id); +ADD CONSTRAINT fk_wallets_users FOREIGN KEY (user_id) REFERENCES users(id), ADD COLUMN currency VARCHAR(3) NOT NULL DEFAULT 'ETB'; ALTER TABLE customer_wallets ADD CONSTRAINT fk_customer_wallets_customers FOREIGN KEY (customer_id) REFERENCES users(id), diff --git a/gen/db/auth.sql.go b/gen/db/auth.sql.go index 9c55b29..527f25c 100644 --- a/gen/db/auth.sql.go +++ b/gen/db/auth.sql.go @@ -1,6 +1,6 @@ // Code generated by sqlc. DO NOT EDIT. // versions: -// sqlc v1.29.0 +// sqlc v1.28.0 // source: auth.sql package dbgen diff --git a/gen/db/bet.sql.go b/gen/db/bet.sql.go index 65f39aa..1852a08 100644 --- a/gen/db/bet.sql.go +++ b/gen/db/bet.sql.go @@ -1,6 +1,6 @@ // Code generated by sqlc. DO NOT EDIT. // versions: -// sqlc v1.29.0 +// sqlc v1.28.0 // source: bet.sql package dbgen diff --git a/gen/db/branch.sql.go b/gen/db/branch.sql.go index a0a065c..d762fa8 100644 --- a/gen/db/branch.sql.go +++ b/gen/db/branch.sql.go @@ -1,6 +1,6 @@ // Code generated by sqlc. DO NOT EDIT. // versions: -// sqlc v1.29.0 +// sqlc v1.28.0 // source: branch.sql package dbgen diff --git a/gen/db/cashier.sql.go b/gen/db/cashier.sql.go index 113771c..27a1ffb 100644 --- a/gen/db/cashier.sql.go +++ b/gen/db/cashier.sql.go @@ -1,6 +1,6 @@ // Code generated by sqlc. DO NOT EDIT. // versions: -// sqlc v1.29.0 +// sqlc v1.28.0 // source: cashier.sql package dbgen diff --git a/gen/db/company.sql.go b/gen/db/company.sql.go index 449c8fd..3c5a6b1 100644 --- a/gen/db/company.sql.go +++ b/gen/db/company.sql.go @@ -1,6 +1,6 @@ // Code generated by sqlc. DO NOT EDIT. // versions: -// sqlc v1.29.0 +// sqlc v1.28.0 // source: company.sql package dbgen diff --git a/gen/db/copyfrom.go b/gen/db/copyfrom.go index 1212253..900af58 100644 --- a/gen/db/copyfrom.go +++ b/gen/db/copyfrom.go @@ -1,6 +1,6 @@ // Code generated by sqlc. DO NOT EDIT. // versions: -// sqlc v1.29.0 +// sqlc v1.28.0 // source: copyfrom.go package dbgen diff --git a/gen/db/db.go b/gen/db/db.go index 84de07c..d892683 100644 --- a/gen/db/db.go +++ b/gen/db/db.go @@ -1,6 +1,6 @@ // Code generated by sqlc. DO NOT EDIT. // versions: -// sqlc v1.29.0 +// sqlc v1.28.0 package dbgen diff --git a/gen/db/events.sql.go b/gen/db/events.sql.go index bd84b8d..0ce862a 100644 --- a/gen/db/events.sql.go +++ b/gen/db/events.sql.go @@ -1,6 +1,6 @@ // Code generated by sqlc. DO NOT EDIT. // versions: -// sqlc v1.29.0 +// sqlc v1.28.0 // source: events.sql package dbgen diff --git a/gen/db/leagues.sql.go b/gen/db/leagues.sql.go index 9db2644..8762f82 100644 --- a/gen/db/leagues.sql.go +++ b/gen/db/leagues.sql.go @@ -1,6 +1,6 @@ // Code generated by sqlc. DO NOT EDIT. // versions: -// sqlc v1.29.0 +// sqlc v1.28.0 // source: leagues.sql package dbgen diff --git a/gen/db/models.go b/gen/db/models.go index 1da22f3..fce563e 100644 --- a/gen/db/models.go +++ b/gen/db/models.go @@ -1,6 +1,6 @@ // Code generated by sqlc. DO NOT EDIT. // versions: -// sqlc v1.29.0 +// sqlc v1.28.0 package dbgen @@ -204,6 +204,15 @@ type Event struct { Source pgtype.Text `json:"source"` } +type ExchangeRate struct { + ID int32 `json:"id"` + FromCurrency string `json:"from_currency"` + ToCurrency string `json:"to_currency"` + Rate pgtype.Numeric `json:"rate"` + ValidUntil pgtype.Timestamp `json:"valid_until"` + CreatedAt pgtype.Timestamp `json:"created_at"` +} + type League struct { ID int64 `json:"id"` Name string `json:"name"` @@ -470,6 +479,7 @@ type Wallet struct { IsActive bool `json:"is_active"` CreatedAt pgtype.Timestamp `json:"created_at"` UpdatedAt pgtype.Timestamp `json:"updated_at"` + Currency string `json:"currency"` BonusBalance pgtype.Numeric `json:"bonus_balance"` CashBalance pgtype.Numeric `json:"cash_balance"` } diff --git a/gen/db/monitor.sql.go b/gen/db/monitor.sql.go index a9a7ecb..db8a9ba 100644 --- a/gen/db/monitor.sql.go +++ b/gen/db/monitor.sql.go @@ -1,6 +1,6 @@ // Code generated by sqlc. DO NOT EDIT. // versions: -// sqlc v1.29.0 +// sqlc v1.28.0 // source: monitor.sql package dbgen diff --git a/gen/db/notification.sql.go b/gen/db/notification.sql.go index ba9882b..9d9b242 100644 --- a/gen/db/notification.sql.go +++ b/gen/db/notification.sql.go @@ -1,6 +1,6 @@ // Code generated by sqlc. DO NOT EDIT. // versions: -// sqlc v1.29.0 +// sqlc v1.28.0 // source: notification.sql package dbgen diff --git a/gen/db/odds.sql.go b/gen/db/odds.sql.go index cb30007..99c47b7 100644 --- a/gen/db/odds.sql.go +++ b/gen/db/odds.sql.go @@ -1,6 +1,6 @@ // Code generated by sqlc. DO NOT EDIT. // versions: -// sqlc v1.29.0 +// sqlc v1.28.0 // source: odds.sql package dbgen diff --git a/gen/db/otp.sql.go b/gen/db/otp.sql.go index 7dba175..99cdd4c 100644 --- a/gen/db/otp.sql.go +++ b/gen/db/otp.sql.go @@ -1,6 +1,6 @@ // Code generated by sqlc. DO NOT EDIT. // versions: -// sqlc v1.29.0 +// sqlc v1.28.0 // source: otp.sql package dbgen diff --git a/gen/db/referal.sql.go b/gen/db/referal.sql.go index 3a7f337..d0ab21e 100644 --- a/gen/db/referal.sql.go +++ b/gen/db/referal.sql.go @@ -1,6 +1,6 @@ // Code generated by sqlc. DO NOT EDIT. // versions: -// sqlc v1.29.0 +// sqlc v1.28.0 // source: referal.sql package dbgen diff --git a/gen/db/result.sql.go b/gen/db/result.sql.go index bff7b1e..cb3fdd8 100644 --- a/gen/db/result.sql.go +++ b/gen/db/result.sql.go @@ -1,6 +1,6 @@ // Code generated by sqlc. DO NOT EDIT. // versions: -// sqlc v1.29.0 +// sqlc v1.28.0 // source: result.sql package dbgen diff --git a/gen/db/ticket.sql.go b/gen/db/ticket.sql.go index 4140384..443b266 100644 --- a/gen/db/ticket.sql.go +++ b/gen/db/ticket.sql.go @@ -1,6 +1,6 @@ // Code generated by sqlc. DO NOT EDIT. // versions: -// sqlc v1.29.0 +// sqlc v1.28.0 // source: ticket.sql package dbgen diff --git a/gen/db/transactions.sql.go b/gen/db/transactions.sql.go index cbd5743..80e6022 100644 --- a/gen/db/transactions.sql.go +++ b/gen/db/transactions.sql.go @@ -1,6 +1,6 @@ // Code generated by sqlc. DO NOT EDIT. // versions: -// sqlc v1.29.0 +// sqlc v1.28.0 // source: transactions.sql package dbgen diff --git a/gen/db/transfer.sql.go b/gen/db/transfer.sql.go index 18b6243..e7bcba8 100644 --- a/gen/db/transfer.sql.go +++ b/gen/db/transfer.sql.go @@ -1,6 +1,6 @@ // Code generated by sqlc. DO NOT EDIT. // versions: -// sqlc v1.29.0 +// sqlc v1.28.0 // source: transfer.sql package dbgen diff --git a/gen/db/user.sql.go b/gen/db/user.sql.go index 89051b2..2b440c2 100644 --- a/gen/db/user.sql.go +++ b/gen/db/user.sql.go @@ -1,6 +1,6 @@ // Code generated by sqlc. DO NOT EDIT. // versions: -// sqlc v1.29.0 +// sqlc v1.28.0 // source: user.sql package dbgen diff --git a/gen/db/virtual_games.sql.go b/gen/db/virtual_games.sql.go index 16034ee..eb832e7 100644 --- a/gen/db/virtual_games.sql.go +++ b/gen/db/virtual_games.sql.go @@ -1,6 +1,6 @@ // Code generated by sqlc. DO NOT EDIT. // versions: -// sqlc v1.29.0 +// sqlc v1.28.0 // source: virtual_games.sql package dbgen diff --git a/gen/db/wallet.sql.go b/gen/db/wallet.sql.go index e46ea0b..1bcfa9a 100644 --- a/gen/db/wallet.sql.go +++ b/gen/db/wallet.sql.go @@ -1,6 +1,6 @@ // Code generated by sqlc. DO NOT EDIT. // versions: -// sqlc v1.29.0 +// sqlc v1.28.0 // source: wallet.sql package dbgen @@ -49,7 +49,7 @@ INSERT INTO wallets ( user_id ) VALUES ($1, $2, $3, $4) -RETURNING id, balance, is_withdraw, is_bettable, is_transferable, user_id, is_active, created_at, updated_at, bonus_balance, cash_balance +RETURNING id, balance, is_withdraw, is_bettable, is_transferable, user_id, is_active, created_at, updated_at, currency, bonus_balance, cash_balance ` type CreateWalletParams struct { @@ -77,6 +77,7 @@ func (q *Queries) CreateWallet(ctx context.Context, arg CreateWalletParams) (Wal &i.IsActive, &i.CreatedAt, &i.UpdatedAt, + &i.Currency, &i.BonusBalance, &i.CashBalance, ) @@ -143,7 +144,7 @@ func (q *Queries) GetAllBranchWallets(ctx context.Context) ([]GetAllBranchWallet } const GetAllWallets = `-- name: GetAllWallets :many -SELECT id, balance, is_withdraw, is_bettable, is_transferable, user_id, is_active, created_at, updated_at, bonus_balance, cash_balance +SELECT id, balance, is_withdraw, is_bettable, is_transferable, user_id, is_active, created_at, updated_at, currency, bonus_balance, cash_balance FROM wallets ` @@ -166,6 +167,7 @@ func (q *Queries) GetAllWallets(ctx context.Context) ([]Wallet, error) { &i.IsActive, &i.CreatedAt, &i.UpdatedAt, + &i.Currency, &i.BonusBalance, &i.CashBalance, ); err != nil { @@ -225,7 +227,7 @@ func (q *Queries) GetCustomerWallet(ctx context.Context, customerID int64) (GetC } const GetWalletByID = `-- name: GetWalletByID :one -SELECT id, balance, is_withdraw, is_bettable, is_transferable, user_id, is_active, created_at, updated_at, bonus_balance, cash_balance +SELECT id, balance, is_withdraw, is_bettable, is_transferable, user_id, is_active, created_at, updated_at, currency, bonus_balance, cash_balance FROM wallets WHERE id = $1 ` @@ -243,6 +245,7 @@ func (q *Queries) GetWalletByID(ctx context.Context, id int64) (Wallet, error) { &i.IsActive, &i.CreatedAt, &i.UpdatedAt, + &i.Currency, &i.BonusBalance, &i.CashBalance, ) @@ -250,7 +253,7 @@ func (q *Queries) GetWalletByID(ctx context.Context, id int64) (Wallet, error) { } const GetWalletByUserID = `-- name: GetWalletByUserID :many -SELECT id, balance, is_withdraw, is_bettable, is_transferable, user_id, is_active, created_at, updated_at, bonus_balance, cash_balance +SELECT id, balance, is_withdraw, is_bettable, is_transferable, user_id, is_active, created_at, updated_at, currency, bonus_balance, cash_balance FROM wallets WHERE user_id = $1 ` @@ -274,6 +277,7 @@ func (q *Queries) GetWalletByUserID(ctx context.Context, userID int64) ([]Wallet &i.IsActive, &i.CreatedAt, &i.UpdatedAt, + &i.Currency, &i.BonusBalance, &i.CashBalance, ); err != nil { diff --git a/internal/repository/transfer.go b/internal/repository/transfer.go index f6ac1bf..e5adcd4 100644 --- a/internal/repository/transfer.go +++ b/internal/repository/transfer.go @@ -11,9 +11,9 @@ import ( func convertDBTransfer(transfer dbgen.WalletTransfer) domain.Transfer { return domain.Transfer{ ID: transfer.ID, - Amount: domain.Currency(transfer.Amount), - Type: domain.TransferType(transfer.Type), - Verified: transfer.Verified, + Amount: domain.Currency(transfer.Amount.Int64), + Type: domain.TransferType(transfer.Type.String), + Verified: transfer.Verified.Bool, ReceiverWalletID: domain.ValidInt64{ Value: transfer.ReceiverWalletID.Int64, Valid: transfer.ReceiverWalletID.Valid, @@ -22,12 +22,6 @@ func convertDBTransfer(transfer dbgen.WalletTransfer) domain.Transfer { Value: transfer.SenderWalletID.Int64, Valid: transfer.SenderWalletID.Valid, }, - ID: transfer.ID, - Amount: domain.Currency(transfer.Amount.Int64), - Type: domain.TransferType(transfer.Type.String), - Verified: transfer.Verified.Bool, - ReceiverWalletID: transfer.ReceiverWalletID.Int64, - SenderWalletID: transfer.SenderWalletID.Int64, CashierID: domain.ValidInt64{ Value: transfer.CashierID.Int64, Valid: transfer.CashierID.Valid, @@ -41,8 +35,8 @@ func convertCreateTransfer(transfer domain.CreateTransfer) dbgen.CreateTransferP Amount: pgtype.Int8{Int64: int64(transfer.Amount), Valid: true}, Type: pgtype.Text{String: string(transfer.Type), Valid: true}, ReceiverWalletID: pgtype.Int8{ - Int64: transfer.ReceiverWalletID, - Valid: true, + Int64: transfer.ReceiverWalletID.Value, + Valid: transfer.ReceiverWalletID.Valid, }, SenderWalletID: pgtype.Int8{ Int64: transfer.SenderWalletID.Value, diff --git a/internal/services/chapa/service.go b/internal/services/chapa/service.go index 996dc76..72e1306 100644 --- a/internal/services/chapa/service.go +++ b/internal/services/chapa/service.go @@ -153,14 +153,16 @@ func (s *Service) InitiateWithdrawal(ctx context.Context, userID int64, req doma reference := uuid.New().String() createTransfer := domain.CreateTransfer{ - Amount: domain.Currency(amount), - Type: domain.WITHDRAW, - ReceiverWalletID: 1, - SenderWalletID: withdrawWallet.ID, - Status: string(domain.PaymentStatusPending), - Verified: false, - ReferenceNumber: reference, - PaymentMethod: domain.TRANSFER_CHAPA, + Amount: domain.Currency(amount), + Type: domain.WITHDRAW, + SenderWalletID: domain.ValidInt64{ + Value: withdrawWallet.ID, + Valid: true, + }, + Status: string(domain.PaymentStatusPending), + Verified: false, + ReferenceNumber: reference, + PaymentMethod: domain.TRANSFER_CHAPA, } transfer, err := s.transferStore.CreateTransfer(ctx, createTransfer) @@ -279,7 +281,11 @@ func (s *Service) HandleVerifyDepositWebhook(ctx context.Context, transfer domai // If payment is completed, credit user's wallet if transfer.Status == string(domain.PaymentStatusCompleted) { - if err := s.walletStore.AddToWallet(ctx, payment.SenderWalletID, payment.Amount); err != nil { + if _, err := s.walletStore.AddToWallet(ctx, payment.SenderWalletID.Value, payment.Amount, domain.ValidInt64{}, domain.TRANSFER_CHAPA, domain.PaymentDetails{ + ReferenceNumber: domain.ValidString{ + Value: transfer.Reference, + }, + }); err != nil { return fmt.Errorf("failed to credit user wallet: %w", err) } } @@ -316,7 +322,7 @@ func (s *Service) HandleVerifyWithdrawWebhook(ctx context.Context, payment domai // If payment is completed, credit user's wallet if payment.Status == string(domain.PaymentStatusFailed) { - if err := s.walletStore.AddToWallet(ctx, transfer.SenderWalletID, transfer.Amount); err != nil { + if _, err := s.walletStore.AddToWallet(ctx, transfer.SenderWalletID.Value, transfer.Amount, domain.ValidInt64{}, domain.TRANSFER_DIRECT, domain.PaymentDetails{}); err != nil { return fmt.Errorf("failed to credit user wallet: %w", err) } } diff --git a/internal/services/wallet/transfer.go b/internal/services/wallet/transfer.go index b60cb14..a88c0a5 100644 --- a/internal/services/wallet/transfer.go +++ b/internal/services/wallet/transfer.go @@ -42,11 +42,6 @@ func (s *Service) UpdateTransferStatus(ctx context.Context, id int64, status str return s.transferStore.UpdateTransferStatus(ctx, id, status) } -func (s *Service) UpdateTransferStatus(ctx context.Context, id int64, status string) error { - return s.transferStore.UpdateTransferStatus(ctx, id, status) -} - - func (s *Service) TransferToWallet(ctx context.Context, senderID int64, receiverID int64, amount domain.Currency, paymentMethod domain.PaymentMethod, diff --git a/internal/services/wallet/wallet.go b/internal/services/wallet/wallet.go index fb94f86..27de5e4 100644 --- a/internal/services/wallet/wallet.go +++ b/internal/services/wallet/wallet.go @@ -70,7 +70,7 @@ func (s *Service) UpdateBalance(ctx context.Context, id int64, balance domain.Cu } func (s *Service) AddToWallet( - ctx context.Context, id int64, amount domain.Currency, cashierID domain.ValidInt64, paymentMethod domain.PaymentMethod, paymentDetails domain.PaymentDetails) (domain.Transfer, error) { + ctx context.Context, id int64, amount domain.Currency, cashierID domain.ValidInt64, paymentMethod domain.PaymentMethod, paymentDetails domain. PaymentDetails) (domain.Transfer, error) { wallet, err := s.GetWalletByID(ctx, id) if err != nil { return domain.Transfer{}, err diff --git a/logs/app.log b/logs/app.log index c5454cd..3d7d1a1 100644 --- a/logs/app.log +++ b/logs/app.log @@ -1,2 +1,3 @@ time=2025-06-16T02:21:34.859+03:00 level=INFO msg="Authenticated WebSocket connection" service_info.env=development userID=3 time=2025-06-16T02:23:59.721+03:00 level=INFO msg="Starting server" service_info.env=development port=8080 +time=2025-06-16T22:51:15.242+03:00 level=INFO msg="Starting server" service_info.env=development port=8080 diff --git a/logs/failed_markets.log b/logs/failed_markets.log index 30e7875..e69de29 100644 --- a/logs/failed_markets.log +++ b/logs/failed_markets.log @@ -1,39033 +0,0 @@ -{ - "time": "2025-05-21T12:31:39+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977004", - "FI": "174206928", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-21T12:29:17+03:00", - "Odds": [ - { - "id": "810825615", - "odds": "10.000", - "name": "Daniel Raba", - "handicap": "" - }, - { - "id": "810824112", - "odds": "17.000", - "name": "Juan Latasa", - "handicap": "" - }, - { - "id": "713505303", - "odds": "1.300", - "name": "FT Result: Leganes", - "handicap": "" - }, - { - "id": "818170790", - "odds": "1.833", - "name": "Daniel Raba: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818170803", - "odds": "1.666", - "name": "Diego Garcia: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810815575", - "odds": "1.833", - "name": "HT: Leganes \u2013 FT: Leganes", - "handicap": "" - }, - { - "id": "810816336", - "odds": "2.000", - "name": "Leganes to Score in Both Halves", - "handicap": "" - }, - { - "id": "810822897", - "odds": "3.000", - "name": "Juan Cruz to Score", - "handicap": "" - }, - { - "id": "810816138", - "odds": "2.100", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818174813", - "odds": "2.000", - "name": "Juan Latasa: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818170892", - "odds": "1.533", - "name": "Seydouba Cisse: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713505316", - "odds": "8.500", - "name": "FT Result: Valladolid", - "handicap": "" - }, - { - "id": "810818057", - "odds": "1.666", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813198253", - "odds": "1.400", - "name": "Over 7 Corners", - "handicap": "7.0" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-21T12:31:49+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977005", - "FI": "174206938", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-21T12:28:20+03:00", - "Odds": [ - { - "id": "810793474", - "odds": "4.500", - "name": "Javi Puado", - "handicap": "" - }, - { - "id": "810793926", - "odds": "9.500", - "name": "Roberto Fernandez", - "handicap": "" - }, - { - "id": "713505983", - "odds": "1.363", - "name": "FT Result: Espanyol", - "handicap": "" - }, - { - "id": "818161086", - "odds": "1.909", - "name": "Javi Puado: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818161150", - "odds": "2.100", - "name": "Roberto Fernandez: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "713505983", - "odds": "1.363", - "name": "FT Result: Espanyol", - "handicap": "" - }, - { - "id": "818223413", - "odds": "3.000", - "name": "Antoniu Roca: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810882878", - "odds": "2.300", - "name": "Eduardo Exposito to Score or Assist", - "handicap": "" - }, - { - "id": "810785073", - "odds": "2.100", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818165373", - "odds": "2.100", - "name": "Alberto Moleiro: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818223267", - "odds": "1.200", - "name": "Javi Puado: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713505993", - "odds": "7.500", - "name": "FT Result: Las Palmas", - "handicap": "" - }, - { - "id": "813197755", - "odds": "1.300", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "810787654", - "odds": "1.800", - "name": "Over 2 Goals", - "handicap": "2" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-21T12:31:49+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977005", - "FI": "174206938", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-21T12:28:20+03:00", - "Odds": [ - { - "id": "810793474", - "odds": "4.500", - "name": "Javi Puado", - "handicap": "" - }, - { - "id": "810793926", - "odds": "9.500", - "name": "Roberto Fernandez", - "handicap": "" - }, - { - "id": "713505983", - "odds": "1.363", - "name": "FT Result: Espanyol", - "handicap": "" - }, - { - "id": "818161086", - "odds": "1.909", - "name": "Javi Puado: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818161150", - "odds": "2.100", - "name": "Roberto Fernandez: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "713505983", - "odds": "1.363", - "name": "FT Result: Espanyol", - "handicap": "" - }, - { - "id": "818223413", - "odds": "3.000", - "name": "Antoniu Roca: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810882878", - "odds": "2.300", - "name": "Eduardo Exposito to Score or Assist", - "handicap": "" - }, - { - "id": "810785073", - "odds": "2.100", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818165373", - "odds": "2.100", - "name": "Alberto Moleiro: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818223267", - "odds": "1.200", - "name": "Javi Puado: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713505993", - "odds": "7.500", - "name": "FT Result: Las Palmas", - "handicap": "" - }, - { - "id": "813197755", - "odds": "1.300", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "810787654", - "odds": "1.800", - "name": "Over 2 Goals", - "handicap": "2" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-21T12:32:16+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977003", - "FI": "174206914", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-21T12:29:22+03:00", - "Odds": [ - { - "id": "810782401", - "odds": "6.500", - "name": "Ante Budimir", - "handicap": "" - }, - { - "id": "810782255", - "odds": "17.000", - "name": "Jon Guridi", - "handicap": "" - }, - { - "id": "713504570", - "odds": "2.375", - "name": "FT Result: Osasuna", - "handicap": "" - }, - { - "id": "818200891", - "odds": "1.615", - "name": "Ante Budimir: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810881584", - "odds": "1.833", - "name": "Ante Budimir to Score or Assist", - "handicap": "" - }, - { - "id": "713504562", - "odds": "3.100", - "name": "FT Result: CD Alaves", - "handicap": "" - }, - { - "id": "818200816", - "odds": "1.615", - "name": "Carlos Vicente: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "810881581", - "odds": "3.500", - "name": "Jon Guridi to Score or Assist", - "handicap": "" - }, - { - "id": "810778158", - "odds": "4.000", - "name": "Osasuna to Score in Both Halves", - "handicap": "" - }, - { - "id": "810881558", - "odds": "2.100", - "name": "Bryan Zaragoza to Score or Assist", - "handicap": "" - }, - { - "id": "810881580", - "odds": "3.250", - "name": "Aimar Oroz to Score or Assist", - "handicap": "" - }, - { - "id": "713504562", - "odds": "3.100", - "name": "FT Result: CD Alaves", - "handicap": "" - }, - { - "id": "810777871", - "odds": "1.950", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "813199262", - "odds": "1.285", - "name": "Over 7 Corners", - "handicap": "7.0" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-21T12:32:20+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977007", - "FI": "174206951", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-21T12:22:47+03:00", - "Odds": [ - { - "id": "810801158", - "odds": "9.000", - "name": "Williot Swedberg", - "handicap": "" - }, - { - "id": "810795373", - "odds": "2.875", - "name": "1", - "handicap": "" - }, - { - "id": "713507435", - "odds": "1.850", - "name": "FT Result: Celta Vigo", - "handicap": "" - }, - { - "id": "818234792", - "odds": "1.833", - "name": "Fernando Lopez: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818235097", - "odds": "1.400", - "name": "Williot Swedberg: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "810796354", - "odds": "1.950", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818233069", - "odds": "2.375", - "name": "Moya Borja Mayoral: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818272629", - "odds": "3.500", - "name": "Pablo Duran: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "713507435", - "odds": "1.850", - "name": "FT Result: Celta Vigo", - "handicap": "" - }, - { - "id": "810884551", - "odds": "3.100", - "name": "Oscar Mingueza to Score or Assist", - "handicap": "" - }, - { - "id": "818234750", - "odds": "3.500", - "name": "Beltran Fran: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713507421", - "odds": "4.200", - "name": "FT Result: Getafe", - "handicap": "" - }, - { - "id": "810795706", - "odds": "2.100", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813201935", - "odds": "1.533", - "name": "Over 7 Corners", - "handicap": "7.0" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-21T12:32:20+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977007", - "FI": "174206951", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-21T12:22:47+03:00", - "Odds": [ - { - "id": "810801158", - "odds": "9.000", - "name": "Williot Swedberg", - "handicap": "" - }, - { - "id": "810795373", - "odds": "2.875", - "name": "1", - "handicap": "" - }, - { - "id": "713507435", - "odds": "1.850", - "name": "FT Result: Celta Vigo", - "handicap": "" - }, - { - "id": "818234792", - "odds": "1.833", - "name": "Fernando Lopez: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818235097", - "odds": "1.400", - "name": "Williot Swedberg: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "810796354", - "odds": "1.950", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818233069", - "odds": "2.375", - "name": "Moya Borja Mayoral: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818272629", - "odds": "3.500", - "name": "Pablo Duran: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "713507435", - "odds": "1.850", - "name": "FT Result: Celta Vigo", - "handicap": "" - }, - { - "id": "810884551", - "odds": "3.100", - "name": "Oscar Mingueza to Score or Assist", - "handicap": "" - }, - { - "id": "818234750", - "odds": "3.500", - "name": "Beltran Fran: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713507421", - "odds": "4.200", - "name": "FT Result: Getafe", - "handicap": "" - }, - { - "id": "810795706", - "odds": "2.100", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813201935", - "odds": "1.533", - "name": "Over 7 Corners", - "handicap": "7.0" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-21T12:32:31+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977008", - "FI": "174206957", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-21T12:30:46+03:00", - "Odds": [ - { - "id": "810830891", - "odds": "8.500", - "name": "Isi Palazon", - "handicap": "" - }, - { - "id": "810826957", - "odds": "4.000", - "name": "2", - "handicap": "" - }, - { - "id": "713507997", - "odds": "1.500", - "name": "FT Result: Rayo Vallecano", - "handicap": "" - }, - { - "id": "810911970", - "odds": "2.300", - "name": "Jorge De Frutos to Score or Assist", - "handicap": "" - }, - { - "id": "818242351", - "odds": "2.000", - "name": "Isi Palazon: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810827485", - "odds": "2.250", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818248799", - "odds": "3.250", - "name": "Sergi Darder: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818300359", - "odds": "1.222", - "name": "Isi Palazon: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "810827053", - "odds": "2.300", - "name": "HT: Rayo Vallecano \u2013 FT: Rayo Vallecano", - "handicap": "" - }, - { - "id": "810827602", - "odds": "2.750", - "name": "Rayo Vallecano to Score in Both Halves", - "handicap": "" - }, - { - "id": "810830483", - "odds": "4.333", - "name": "Adrian Embarba to Score", - "handicap": "" - }, - { - "id": "713508001", - "odds": "6.000", - "name": "FT Result: Mallorca", - "handicap": "" - }, - { - "id": "810827203", - "odds": "2.200", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813203878", - "odds": "1.400", - "name": "Over 7 Corners", - "handicap": "7.0" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-21T12:32:31+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977008", - "FI": "174206957", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-21T12:30:46+03:00", - "Odds": [ - { - "id": "810830891", - "odds": "8.500", - "name": "Isi Palazon", - "handicap": "" - }, - { - "id": "810826957", - "odds": "4.000", - "name": "2", - "handicap": "" - }, - { - "id": "713507997", - "odds": "1.500", - "name": "FT Result: Rayo Vallecano", - "handicap": "" - }, - { - "id": "810911970", - "odds": "2.300", - "name": "Jorge De Frutos to Score or Assist", - "handicap": "" - }, - { - "id": "818242351", - "odds": "2.000", - "name": "Isi Palazon: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810827485", - "odds": "2.250", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818248799", - "odds": "3.250", - "name": "Sergi Darder: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818300359", - "odds": "1.222", - "name": "Isi Palazon: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "810827053", - "odds": "2.300", - "name": "HT: Rayo Vallecano \u2013 FT: Rayo Vallecano", - "handicap": "" - }, - { - "id": "810827602", - "odds": "2.750", - "name": "Rayo Vallecano to Score in Both Halves", - "handicap": "" - }, - { - "id": "810830483", - "odds": "4.333", - "name": "Adrian Embarba to Score", - "handicap": "" - }, - { - "id": "713508001", - "odds": "6.000", - "name": "FT Result: Mallorca", - "handicap": "" - }, - { - "id": "810827203", - "odds": "2.200", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813203878", - "odds": "1.400", - "name": "Over 7 Corners", - "handicap": "7.0" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-21T12:34:04+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977006", - "FI": "174206945", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-21T12:29:39+03:00", - "Odds": [ - { - "id": "810813776", - "odds": "9.000", - "name": "Alexander Sorloth", - "handicap": "" - }, - { - "id": "810813006", - "odds": "9.000", - "name": "Cristhian Stuani", - "handicap": "" - }, - { - "id": "713506855", - "odds": "1.833", - "name": "FT Result: Atletico Madrid", - "handicap": "" - }, - { - "id": "818257809", - "odds": "2.100", - "name": "Julian Alvarez: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810899950", - "odds": "1.666", - "name": "Julian Alvarez to Score or Assist", - "handicap": "" - }, - { - "id": "713506855", - "odds": "1.833", - "name": "FT Result: Atletico Madrid", - "handicap": "" - }, - { - "id": "810900002", - "odds": "1.727", - "name": "Alexander Sorloth to Score or Assist", - "handicap": "" - }, - { - "id": "818257762", - "odds": "2.100", - "name": "Alexander Sorloth: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810806697", - "odds": "1.533", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818257811", - "odds": "2.750", - "name": "Samuel Lino: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818306182", - "odds": "3.250", - "name": "Cristhian Stuani: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "713506844", - "odds": "4.200", - "name": "FT Result: Girona", - "handicap": "" - }, - { - "id": "810809282", - "odds": "1.615", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813205972", - "odds": "1.363", - "name": "Over 7 Corners", - "handicap": "7.0" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-21T12:34:04+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977006", - "FI": "174206945", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-21T12:29:39+03:00", - "Odds": [ - { - "id": "810813776", - "odds": "9.000", - "name": "Alexander Sorloth", - "handicap": "" - }, - { - "id": "810813006", - "odds": "9.000", - "name": "Cristhian Stuani", - "handicap": "" - }, - { - "id": "713506855", - "odds": "1.833", - "name": "FT Result: Atletico Madrid", - "handicap": "" - }, - { - "id": "818257809", - "odds": "2.100", - "name": "Julian Alvarez: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810899950", - "odds": "1.666", - "name": "Julian Alvarez to Score or Assist", - "handicap": "" - }, - { - "id": "713506855", - "odds": "1.833", - "name": "FT Result: Atletico Madrid", - "handicap": "" - }, - { - "id": "810900002", - "odds": "1.727", - "name": "Alexander Sorloth to Score or Assist", - "handicap": "" - }, - { - "id": "818257762", - "odds": "2.100", - "name": "Alexander Sorloth: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810806697", - "odds": "1.533", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818257811", - "odds": "2.750", - "name": "Samuel Lino: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818306182", - "odds": "3.250", - "name": "Cristhian Stuani: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "713506844", - "odds": "4.200", - "name": "FT Result: Girona", - "handicap": "" - }, - { - "id": "810809282", - "odds": "1.615", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813205972", - "odds": "1.363", - "name": "Over 7 Corners", - "handicap": "7.0" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-21T12:34:43+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9016963", - "FI": "173826315", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-21T12:34:32+03:00", - "Odds": [ - { - "id": "807193833", - "odds": "10.000", - "name": "Virgil van Dijk", - "handicap": "" - }, - { - "id": "807193986", - "odds": "12.000", - "name": "Luis Diaz", - "handicap": "" - }, - { - "id": "661805323", - "odds": "1.380", - "name": "FT Result: Liverpool", - "handicap": "" - }, - { - "id": "807192225", - "odds": "1.666", - "name": "Mohamed Salah to Score", - "handicap": "" - }, - { - "id": "807197558", - "odds": "2.750", - "name": "Mohamed Salah to Assist", - "handicap": "" - }, - { - "id": "804656664", - "odds": "2.000", - "name": "HT: Liverpool \u2013 FT: Liverpool", - "handicap": "" - }, - { - "id": "819075054", - "odds": "1.666", - "name": "Mohamed Salah: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "819074957", - "odds": "2.200", - "name": "Cody Gakpo: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "819081389", - "odds": "1.444", - "name": "Eberechi Eze: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "819453064", - "odds": "1.250", - "name": "Luis Diaz: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "819075012", - "odds": "1.533", - "name": "Dominik Szoboszlai: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "804658978", - "odds": "2.750", - "name": "Liverpool to Win to Nil", - "handicap": "" - }, - { - "id": "818998267", - "odds": "1.222", - "name": "Most Corners: Liverpool", - "handicap": "" - }, - { - "id": "819451925", - "odds": "1.300", - "name": "Most Shots on Target: Liverpool", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-21T12:36:58+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977001", - "FI": "174206898", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-21T12:36:09+03:00", - "Odds": [ - { - "id": "810769529", - "odds": "7.000", - "name": "Robert Lewandowski", - "handicap": "" - }, - { - "id": "810770215", - "odds": "9.500", - "name": "Lamine Yamal", - "handicap": "" - }, - { - "id": "713503841", - "odds": "2.050", - "name": "FT Result: Barcelona", - "handicap": "" - }, - { - "id": "818283162", - "odds": "2.000", - "name": "Robert Lewandowski: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810767797", - "odds": "2.100", - "name": "Robert Lewandowski to Score", - "handicap": "" - }, - { - "id": "810764064", - "odds": "1.444", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818280046", - "odds": "2.250", - "name": "Gorka Guruzeta: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818338019", - "odds": "2.750", - "name": "Lamine Yamal: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "713503841", - "odds": "2.050", - "name": "FT Result: Barcelona", - "handicap": "" - }, - { - "id": "818283150", - "odds": "2.000", - "name": "Raphinha: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810774636", - "odds": "1.800", - "name": "Lamine Yamal to Score or Assist", - "handicap": "" - }, - { - "id": "713503825", - "odds": "3.300", - "name": "FT Result: Athletic Bilbao", - "handicap": "" - }, - { - "id": "810774497", - "odds": "2.200", - "name": "Oihan Sancet to Score or Assist", - "handicap": "" - }, - { - "id": "813208230", - "odds": "1.285", - "name": "Over 7 Corners", - "handicap": "7.0" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-21T12:37:21+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9929184", - "FI": "174363978", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-21T12:35:59+03:00", - "Odds": [ - { - "id": "774550908", - "odds": "21.000", - "name": "Antony", - "handicap": "" - }, - { - "id": "774550887", - "odds": "15.000", - "name": "Nicolas Jackson", - "handicap": "" - }, - { - "id": "734595170", - "odds": "1.363", - "name": "Chelsea to Lift the Trophy", - "handicap": "" - }, - { - "id": "734591996", - "odds": "1.833", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "774549605", - "odds": "2.300", - "name": "Cole Palmer to Score", - "handicap": "" - }, - { - "id": "774549558", - "odds": "2.875", - "name": "Nicolas Jackson to Score", - "handicap": "" - }, - { - "id": "734595170", - "odds": "1.363", - "name": "Chelsea to Lift the Trophy", - "handicap": "" - }, - { - "id": "734590525", - "odds": "2.000", - "name": "Over 2 Goals", - "handicap": "2" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-21T12:37:31+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9924545", - "FI": "174307725", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-21T12:37:26+03:00", - "Odds": [ - { - "id": "726811888", - "odds": "13.000", - "name": "Lautaro Martinez", - "handicap": "" - }, - { - "id": "726811982", - "odds": "11.000", - "name": "Khvicha Kvaratskhelia", - "handicap": "" - }, - { - "id": "726816128", - "odds": "1.666", - "name": "PSG to Lift the Trophy", - "handicap": "" - }, - { - "id": "726811208", - "odds": "3.250", - "name": "Bradley Barcola to Score", - "handicap": "" - }, - { - "id": "726806476", - "odds": "1.909", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "726816130", - "odds": "2.200", - "name": "Inter Milan to Lift the Trophy", - "handicap": "" - }, - { - "id": "726811216", - "odds": "3.250", - "name": "Marcus Thuram to Score", - "handicap": "" - }, - { - "id": "726807442", - "odds": "1.700", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "726816349", - "odds": "2.250", - "name": "Lautaro Martinez to Score or Assist", - "handicap": "" - }, - { - "id": "726816313", - "odds": "2.000", - "name": "Khvicha Kvaratskhelia to Score or Assist", - "handicap": "" - }, - { - "id": "726816123", - "odds": "2.250", - "name": "PSG to Win in 90 Mins", - "handicap": "" - }, - { - "id": "726807627", - "odds": "3.400", - "name": "PSG to Score in Both Halves", - "handicap": "" - }, - { - "id": "726811207", - "odds": "4.000", - "name": "Desire Doue to Score", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-21T12:46:19+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977004", - "FI": "174206928", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-21T12:43:42+03:00", - "Odds": [ - { - "id": "810825615", - "odds": "10.000", - "name": "Daniel Raba", - "handicap": "" - }, - { - "id": "810824112", - "odds": "17.000", - "name": "Juan Latasa", - "handicap": "" - }, - { - "id": "713505303", - "odds": "1.300", - "name": "FT Result: Leganes", - "handicap": "" - }, - { - "id": "818170790", - "odds": "1.833", - "name": "Daniel Raba: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818170803", - "odds": "1.666", - "name": "Diego Garcia: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810815575", - "odds": "1.833", - "name": "HT: Leganes \u2013 FT: Leganes", - "handicap": "" - }, - { - "id": "810816336", - "odds": "2.000", - "name": "Leganes to Score in Both Halves", - "handicap": "" - }, - { - "id": "810822897", - "odds": "3.000", - "name": "Juan Cruz to Score", - "handicap": "" - }, - { - "id": "810816138", - "odds": "2.100", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818174813", - "odds": "2.000", - "name": "Juan Latasa: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818170892", - "odds": "1.533", - "name": "Seydouba Cisse: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713505316", - "odds": "8.500", - "name": "FT Result: Valladolid", - "handicap": "" - }, - { - "id": "810818057", - "odds": "1.666", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813198253", - "odds": "1.400", - "name": "Over 7 Corners", - "handicap": "7.0" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-21T12:46:29+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977005", - "FI": "174206938", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-21T12:37:08+03:00", - "Odds": [ - { - "id": "810793474", - "odds": "4.500", - "name": "Javi Puado", - "handicap": "" - }, - { - "id": "810793926", - "odds": "9.500", - "name": "Roberto Fernandez", - "handicap": "" - }, - { - "id": "713505983", - "odds": "1.363", - "name": "FT Result: Espanyol", - "handicap": "" - }, - { - "id": "818161086", - "odds": "1.909", - "name": "Javi Puado: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818161150", - "odds": "2.100", - "name": "Roberto Fernandez: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "713505983", - "odds": "1.363", - "name": "FT Result: Espanyol", - "handicap": "" - }, - { - "id": "818223413", - "odds": "3.000", - "name": "Antoniu Roca: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810882878", - "odds": "2.300", - "name": "Eduardo Exposito to Score or Assist", - "handicap": "" - }, - { - "id": "810785073", - "odds": "2.100", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818165373", - "odds": "2.100", - "name": "Alberto Moleiro: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818223267", - "odds": "1.200", - "name": "Javi Puado: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713505993", - "odds": "7.500", - "name": "FT Result: Las Palmas", - "handicap": "" - }, - { - "id": "813197755", - "odds": "1.300", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "810787654", - "odds": "1.800", - "name": "Over 2 Goals", - "handicap": "2" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-21T12:46:29+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977005", - "FI": "174206938", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-21T12:37:08+03:00", - "Odds": [ - { - "id": "810793474", - "odds": "4.500", - "name": "Javi Puado", - "handicap": "" - }, - { - "id": "810793926", - "odds": "9.500", - "name": "Roberto Fernandez", - "handicap": "" - }, - { - "id": "713505983", - "odds": "1.363", - "name": "FT Result: Espanyol", - "handicap": "" - }, - { - "id": "818161086", - "odds": "1.909", - "name": "Javi Puado: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818161150", - "odds": "2.100", - "name": "Roberto Fernandez: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "713505983", - "odds": "1.363", - "name": "FT Result: Espanyol", - "handicap": "" - }, - { - "id": "818223413", - "odds": "3.000", - "name": "Antoniu Roca: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810882878", - "odds": "2.300", - "name": "Eduardo Exposito to Score or Assist", - "handicap": "" - }, - { - "id": "810785073", - "odds": "2.100", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818165373", - "odds": "2.100", - "name": "Alberto Moleiro: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818223267", - "odds": "1.200", - "name": "Javi Puado: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713505993", - "odds": "7.500", - "name": "FT Result: Las Palmas", - "handicap": "" - }, - { - "id": "813197755", - "odds": "1.300", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "810787654", - "odds": "1.800", - "name": "Over 2 Goals", - "handicap": "2" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-21T12:46:54+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977003", - "FI": "174206914", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-21T12:45:48+03:00", - "Odds": [ - { - "id": "810782401", - "odds": "6.500", - "name": "Ante Budimir", - "handicap": "" - }, - { - "id": "810782255", - "odds": "17.000", - "name": "Jon Guridi", - "handicap": "" - }, - { - "id": "713504570", - "odds": "2.375", - "name": "FT Result: Osasuna", - "handicap": "" - }, - { - "id": "818200891", - "odds": "1.615", - "name": "Ante Budimir: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810881584", - "odds": "1.833", - "name": "Ante Budimir to Score or Assist", - "handicap": "" - }, - { - "id": "713504562", - "odds": "3.100", - "name": "FT Result: CD Alaves", - "handicap": "" - }, - { - "id": "818200816", - "odds": "1.615", - "name": "Carlos Vicente: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "810881581", - "odds": "3.500", - "name": "Jon Guridi to Score or Assist", - "handicap": "" - }, - { - "id": "810778158", - "odds": "4.000", - "name": "Osasuna to Score in Both Halves", - "handicap": "" - }, - { - "id": "810881558", - "odds": "2.100", - "name": "Bryan Zaragoza to Score or Assist", - "handicap": "" - }, - { - "id": "810881580", - "odds": "3.250", - "name": "Aimar Oroz to Score or Assist", - "handicap": "" - }, - { - "id": "713504562", - "odds": "3.100", - "name": "FT Result: CD Alaves", - "handicap": "" - }, - { - "id": "810777871", - "odds": "1.950", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "813199262", - "odds": "1.285", - "name": "Over 7 Corners", - "handicap": "7.0" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-21T12:46:58+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977007", - "FI": "174206951", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-21T12:40:10+03:00", - "Odds": [ - { - "id": "810801158", - "odds": "9.000", - "name": "Williot Swedberg", - "handicap": "" - }, - { - "id": "810795373", - "odds": "2.875", - "name": "1", - "handicap": "" - }, - { - "id": "713507435", - "odds": "1.850", - "name": "FT Result: Celta Vigo", - "handicap": "" - }, - { - "id": "818234792", - "odds": "1.833", - "name": "Fernando Lopez: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818235097", - "odds": "1.400", - "name": "Williot Swedberg: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "810796354", - "odds": "1.950", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818233069", - "odds": "2.375", - "name": "Moya Borja Mayoral: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818272629", - "odds": "3.500", - "name": "Pablo Duran: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "713507435", - "odds": "1.850", - "name": "FT Result: Celta Vigo", - "handicap": "" - }, - { - "id": "810884551", - "odds": "3.100", - "name": "Oscar Mingueza to Score or Assist", - "handicap": "" - }, - { - "id": "818234750", - "odds": "3.500", - "name": "Beltran Fran: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713507421", - "odds": "4.200", - "name": "FT Result: Getafe", - "handicap": "" - }, - { - "id": "810795706", - "odds": "2.100", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813201935", - "odds": "1.533", - "name": "Over 7 Corners", - "handicap": "7.0" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-21T12:46:58+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977007", - "FI": "174206951", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-21T12:40:10+03:00", - "Odds": [ - { - "id": "810801158", - "odds": "9.000", - "name": "Williot Swedberg", - "handicap": "" - }, - { - "id": "810795373", - "odds": "2.875", - "name": "1", - "handicap": "" - }, - { - "id": "713507435", - "odds": "1.850", - "name": "FT Result: Celta Vigo", - "handicap": "" - }, - { - "id": "818234792", - "odds": "1.833", - "name": "Fernando Lopez: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818235097", - "odds": "1.400", - "name": "Williot Swedberg: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "810796354", - "odds": "1.950", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818233069", - "odds": "2.375", - "name": "Moya Borja Mayoral: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818272629", - "odds": "3.500", - "name": "Pablo Duran: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "713507435", - "odds": "1.850", - "name": "FT Result: Celta Vigo", - "handicap": "" - }, - { - "id": "810884551", - "odds": "3.100", - "name": "Oscar Mingueza to Score or Assist", - "handicap": "" - }, - { - "id": "818234750", - "odds": "3.500", - "name": "Beltran Fran: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713507421", - "odds": "4.200", - "name": "FT Result: Getafe", - "handicap": "" - }, - { - "id": "810795706", - "odds": "2.100", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813201935", - "odds": "1.533", - "name": "Over 7 Corners", - "handicap": "7.0" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-21T12:47:06+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977008", - "FI": "174206957", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-21T12:45:43+03:00", - "Odds": [ - { - "id": "810830891", - "odds": "8.500", - "name": "Isi Palazon", - "handicap": "" - }, - { - "id": "810826957", - "odds": "4.000", - "name": "2", - "handicap": "" - }, - { - "id": "713507997", - "odds": "1.500", - "name": "FT Result: Rayo Vallecano", - "handicap": "" - }, - { - "id": "810911970", - "odds": "2.300", - "name": "Jorge De Frutos to Score or Assist", - "handicap": "" - }, - { - "id": "818242351", - "odds": "2.000", - "name": "Isi Palazon: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810827485", - "odds": "2.250", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818248799", - "odds": "3.250", - "name": "Sergi Darder: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818300359", - "odds": "1.222", - "name": "Isi Palazon: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "810827053", - "odds": "2.300", - "name": "HT: Rayo Vallecano \u2013 FT: Rayo Vallecano", - "handicap": "" - }, - { - "id": "810827602", - "odds": "2.750", - "name": "Rayo Vallecano to Score in Both Halves", - "handicap": "" - }, - { - "id": "810830483", - "odds": "4.333", - "name": "Adrian Embarba to Score", - "handicap": "" - }, - { - "id": "713508001", - "odds": "6.000", - "name": "FT Result: Mallorca", - "handicap": "" - }, - { - "id": "810827203", - "odds": "2.200", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813203878", - "odds": "1.400", - "name": "Over 7 Corners", - "handicap": "7.0" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-21T12:47:06+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977008", - "FI": "174206957", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-21T12:45:43+03:00", - "Odds": [ - { - "id": "810830891", - "odds": "8.500", - "name": "Isi Palazon", - "handicap": "" - }, - { - "id": "810826957", - "odds": "4.000", - "name": "2", - "handicap": "" - }, - { - "id": "713507997", - "odds": "1.500", - "name": "FT Result: Rayo Vallecano", - "handicap": "" - }, - { - "id": "810911970", - "odds": "2.300", - "name": "Jorge De Frutos to Score or Assist", - "handicap": "" - }, - { - "id": "818242351", - "odds": "2.000", - "name": "Isi Palazon: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810827485", - "odds": "2.250", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818248799", - "odds": "3.250", - "name": "Sergi Darder: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818300359", - "odds": "1.222", - "name": "Isi Palazon: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "810827053", - "odds": "2.300", - "name": "HT: Rayo Vallecano \u2013 FT: Rayo Vallecano", - "handicap": "" - }, - { - "id": "810827602", - "odds": "2.750", - "name": "Rayo Vallecano to Score in Both Halves", - "handicap": "" - }, - { - "id": "810830483", - "odds": "4.333", - "name": "Adrian Embarba to Score", - "handicap": "" - }, - { - "id": "713508001", - "odds": "6.000", - "name": "FT Result: Mallorca", - "handicap": "" - }, - { - "id": "810827203", - "odds": "2.200", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813203878", - "odds": "1.400", - "name": "Over 7 Corners", - "handicap": "7.0" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-21T12:48:48+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977006", - "FI": "174206945", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-21T12:47:46+03:00", - "Odds": [ - { - "id": "810813776", - "odds": "9.000", - "name": "Alexander Sorloth", - "handicap": "" - }, - { - "id": "810813006", - "odds": "9.000", - "name": "Cristhian Stuani", - "handicap": "" - }, - { - "id": "713506855", - "odds": "1.833", - "name": "FT Result: Atletico Madrid", - "handicap": "" - }, - { - "id": "818257809", - "odds": "2.100", - "name": "Julian Alvarez: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810899950", - "odds": "1.666", - "name": "Julian Alvarez to Score or Assist", - "handicap": "" - }, - { - "id": "713506855", - "odds": "1.833", - "name": "FT Result: Atletico Madrid", - "handicap": "" - }, - { - "id": "810900002", - "odds": "1.727", - "name": "Alexander Sorloth to Score or Assist", - "handicap": "" - }, - { - "id": "818257762", - "odds": "2.100", - "name": "Alexander Sorloth: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810806697", - "odds": "1.533", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818257811", - "odds": "2.750", - "name": "Samuel Lino: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818306182", - "odds": "3.250", - "name": "Cristhian Stuani: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "713506844", - "odds": "4.200", - "name": "FT Result: Girona", - "handicap": "" - }, - { - "id": "810809282", - "odds": "1.615", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813205972", - "odds": "1.363", - "name": "Over 7 Corners", - "handicap": "7.0" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-21T12:48:48+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977006", - "FI": "174206945", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-21T12:47:46+03:00", - "Odds": [ - { - "id": "810813776", - "odds": "9.000", - "name": "Alexander Sorloth", - "handicap": "" - }, - { - "id": "810813006", - "odds": "9.000", - "name": "Cristhian Stuani", - "handicap": "" - }, - { - "id": "713506855", - "odds": "1.833", - "name": "FT Result: Atletico Madrid", - "handicap": "" - }, - { - "id": "818257809", - "odds": "2.100", - "name": "Julian Alvarez: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810899950", - "odds": "1.666", - "name": "Julian Alvarez to Score or Assist", - "handicap": "" - }, - { - "id": "713506855", - "odds": "1.833", - "name": "FT Result: Atletico Madrid", - "handicap": "" - }, - { - "id": "810900002", - "odds": "1.727", - "name": "Alexander Sorloth to Score or Assist", - "handicap": "" - }, - { - "id": "818257762", - "odds": "2.100", - "name": "Alexander Sorloth: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810806697", - "odds": "1.533", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818257811", - "odds": "2.750", - "name": "Samuel Lino: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818306182", - "odds": "3.250", - "name": "Cristhian Stuani: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "713506844", - "odds": "4.200", - "name": "FT Result: Girona", - "handicap": "" - }, - { - "id": "810809282", - "odds": "1.615", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813205972", - "odds": "1.363", - "name": "Over 7 Corners", - "handicap": "7.0" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-21T12:49:23+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9016963", - "FI": "173826315", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-21T12:47:52+03:00", - "Odds": [ - { - "id": "807193833", - "odds": "10.000", - "name": "Virgil van Dijk", - "handicap": "" - }, - { - "id": "807193986", - "odds": "12.000", - "name": "Luis Diaz", - "handicap": "" - }, - { - "id": "661805323", - "odds": "1.380", - "name": "FT Result: Liverpool", - "handicap": "" - }, - { - "id": "807192225", - "odds": "1.666", - "name": "Mohamed Salah to Score", - "handicap": "" - }, - { - "id": "807197558", - "odds": "2.750", - "name": "Mohamed Salah to Assist", - "handicap": "" - }, - { - "id": "804656664", - "odds": "2.000", - "name": "HT: Liverpool \u2013 FT: Liverpool", - "handicap": "" - }, - { - "id": "819075054", - "odds": "1.666", - "name": "Mohamed Salah: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "819074957", - "odds": "2.200", - "name": "Cody Gakpo: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "819081389", - "odds": "1.444", - "name": "Eberechi Eze: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "819453064", - "odds": "1.250", - "name": "Luis Diaz: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "819075012", - "odds": "1.533", - "name": "Dominik Szoboszlai: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "804658978", - "odds": "2.750", - "name": "Liverpool to Win to Nil", - "handicap": "" - }, - { - "id": "818998267", - "odds": "1.222", - "name": "Most Corners: Liverpool", - "handicap": "" - }, - { - "id": "819451925", - "odds": "1.300", - "name": "Most Shots on Target: Liverpool", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-21T12:51:25+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977001", - "FI": "174206898", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-21T12:49:31+03:00", - "Odds": [ - { - "id": "810769529", - "odds": "7.000", - "name": "Robert Lewandowski", - "handicap": "" - }, - { - "id": "810770215", - "odds": "9.500", - "name": "Lamine Yamal", - "handicap": "" - }, - { - "id": "713503841", - "odds": "2.050", - "name": "FT Result: Barcelona", - "handicap": "" - }, - { - "id": "818283162", - "odds": "2.000", - "name": "Robert Lewandowski: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810767797", - "odds": "2.100", - "name": "Robert Lewandowski to Score", - "handicap": "" - }, - { - "id": "810764064", - "odds": "1.444", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818280046", - "odds": "2.250", - "name": "Gorka Guruzeta: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818338019", - "odds": "2.750", - "name": "Lamine Yamal: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "713503841", - "odds": "2.050", - "name": "FT Result: Barcelona", - "handicap": "" - }, - { - "id": "818283150", - "odds": "2.000", - "name": "Raphinha: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810774636", - "odds": "1.800", - "name": "Lamine Yamal to Score or Assist", - "handicap": "" - }, - { - "id": "713503825", - "odds": "3.300", - "name": "FT Result: Athletic Bilbao", - "handicap": "" - }, - { - "id": "810774497", - "odds": "2.200", - "name": "Oihan Sancet to Score or Assist", - "handicap": "" - }, - { - "id": "813208230", - "odds": "1.285", - "name": "Over 7 Corners", - "handicap": "7.0" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-21T12:51:53+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9929184", - "FI": "174363978", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-21T12:51:45+03:00", - "Odds": [ - { - "id": "774550908", - "odds": "21.000", - "name": "Antony", - "handicap": "" - }, - { - "id": "774550887", - "odds": "15.000", - "name": "Nicolas Jackson", - "handicap": "" - }, - { - "id": "734595170", - "odds": "1.363", - "name": "Chelsea to Lift the Trophy", - "handicap": "" - }, - { - "id": "734591996", - "odds": "1.833", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "774549605", - "odds": "2.300", - "name": "Cole Palmer to Score", - "handicap": "" - }, - { - "id": "774549558", - "odds": "2.875", - "name": "Nicolas Jackson to Score", - "handicap": "" - }, - { - "id": "734595170", - "odds": "1.363", - "name": "Chelsea to Lift the Trophy", - "handicap": "" - }, - { - "id": "734590525", - "odds": "2.000", - "name": "Over 2 Goals", - "handicap": "2" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-21T12:51:57+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9924545", - "FI": "174307725", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-21T12:48:24+03:00", - "Odds": [ - { - "id": "726811888", - "odds": "13.000", - "name": "Lautaro Martinez", - "handicap": "" - }, - { - "id": "726811982", - "odds": "11.000", - "name": "Khvicha Kvaratskhelia", - "handicap": "" - }, - { - "id": "726816128", - "odds": "1.666", - "name": "PSG to Lift the Trophy", - "handicap": "" - }, - { - "id": "726811208", - "odds": "3.250", - "name": "Bradley Barcola to Score", - "handicap": "" - }, - { - "id": "726806476", - "odds": "1.909", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "726816130", - "odds": "2.200", - "name": "Inter Milan to Lift the Trophy", - "handicap": "" - }, - { - "id": "726811216", - "odds": "3.250", - "name": "Marcus Thuram to Score", - "handicap": "" - }, - { - "id": "726807442", - "odds": "1.700", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "726816349", - "odds": "2.250", - "name": "Lautaro Martinez to Score or Assist", - "handicap": "" - }, - { - "id": "726816313", - "odds": "2.000", - "name": "Khvicha Kvaratskhelia to Score or Assist", - "handicap": "" - }, - { - "id": "726816123", - "odds": "2.250", - "name": "PSG to Win in 90 Mins", - "handicap": "" - }, - { - "id": "726807627", - "odds": "3.400", - "name": "PSG to Score in Both Halves", - "handicap": "" - }, - { - "id": "726811207", - "odds": "4.000", - "name": "Desire Doue to Score", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-21T13:01:15+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977004", - "FI": "174206928", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-21T12:58:20+03:00", - "Odds": [ - { - "id": "810825615", - "odds": "10.000", - "name": "Daniel Raba", - "handicap": "" - }, - { - "id": "810824112", - "odds": "17.000", - "name": "Juan Latasa", - "handicap": "" - }, - { - "id": "713505303", - "odds": "1.300", - "name": "FT Result: Leganes", - "handicap": "" - }, - { - "id": "818170790", - "odds": "1.833", - "name": "Daniel Raba: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818170803", - "odds": "1.666", - "name": "Diego Garcia: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810815575", - "odds": "1.833", - "name": "HT: Leganes \u2013 FT: Leganes", - "handicap": "" - }, - { - "id": "810816336", - "odds": "2.000", - "name": "Leganes to Score in Both Halves", - "handicap": "" - }, - { - "id": "810822897", - "odds": "3.000", - "name": "Juan Cruz to Score", - "handicap": "" - }, - { - "id": "810816138", - "odds": "2.100", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818174813", - "odds": "2.000", - "name": "Juan Latasa: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818170892", - "odds": "1.533", - "name": "Seydouba Cisse: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713505316", - "odds": "8.500", - "name": "FT Result: Valladolid", - "handicap": "" - }, - { - "id": "810818057", - "odds": "1.666", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813198253", - "odds": "1.400", - "name": "Over 7 Corners", - "handicap": "7.0" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-21T13:01:39+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977005", - "FI": "174206938", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-21T12:58:04+03:00", - "Odds": [ - { - "id": "810793474", - "odds": "4.500", - "name": "Javi Puado", - "handicap": "" - }, - { - "id": "810793926", - "odds": "9.500", - "name": "Roberto Fernandez", - "handicap": "" - }, - { - "id": "713505983", - "odds": "1.363", - "name": "FT Result: Espanyol", - "handicap": "" - }, - { - "id": "818161086", - "odds": "1.909", - "name": "Javi Puado: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818161150", - "odds": "2.100", - "name": "Roberto Fernandez: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "713505983", - "odds": "1.363", - "name": "FT Result: Espanyol", - "handicap": "" - }, - { - "id": "818223413", - "odds": "3.000", - "name": "Antoniu Roca: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810882878", - "odds": "2.300", - "name": "Eduardo Exposito to Score or Assist", - "handicap": "" - }, - { - "id": "810785073", - "odds": "2.100", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818165373", - "odds": "2.100", - "name": "Alberto Moleiro: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818223267", - "odds": "1.200", - "name": "Javi Puado: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713505993", - "odds": "7.500", - "name": "FT Result: Las Palmas", - "handicap": "" - }, - { - "id": "813197755", - "odds": "1.300", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "810787654", - "odds": "1.800", - "name": "Over 2 Goals", - "handicap": "2" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-21T13:01:39+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977005", - "FI": "174206938", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-21T12:58:04+03:00", - "Odds": [ - { - "id": "810793474", - "odds": "4.500", - "name": "Javi Puado", - "handicap": "" - }, - { - "id": "810793926", - "odds": "9.500", - "name": "Roberto Fernandez", - "handicap": "" - }, - { - "id": "713505983", - "odds": "1.363", - "name": "FT Result: Espanyol", - "handicap": "" - }, - { - "id": "818161086", - "odds": "1.909", - "name": "Javi Puado: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818161150", - "odds": "2.100", - "name": "Roberto Fernandez: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "713505983", - "odds": "1.363", - "name": "FT Result: Espanyol", - "handicap": "" - }, - { - "id": "818223413", - "odds": "3.000", - "name": "Antoniu Roca: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810882878", - "odds": "2.300", - "name": "Eduardo Exposito to Score or Assist", - "handicap": "" - }, - { - "id": "810785073", - "odds": "2.100", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818165373", - "odds": "2.100", - "name": "Alberto Moleiro: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818223267", - "odds": "1.200", - "name": "Javi Puado: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713505993", - "odds": "7.500", - "name": "FT Result: Las Palmas", - "handicap": "" - }, - { - "id": "813197755", - "odds": "1.300", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "810787654", - "odds": "1.800", - "name": "Over 2 Goals", - "handicap": "2" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-21T13:02:00+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977003", - "FI": "174206914", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-21T12:58:35+03:00", - "Odds": [ - { - "id": "810782401", - "odds": "6.500", - "name": "Ante Budimir", - "handicap": "" - }, - { - "id": "810782255", - "odds": "17.000", - "name": "Jon Guridi", - "handicap": "" - }, - { - "id": "713504570", - "odds": "2.375", - "name": "FT Result: Osasuna", - "handicap": "" - }, - { - "id": "818200891", - "odds": "1.615", - "name": "Ante Budimir: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810881584", - "odds": "1.833", - "name": "Ante Budimir to Score or Assist", - "handicap": "" - }, - { - "id": "713504562", - "odds": "3.100", - "name": "FT Result: CD Alaves", - "handicap": "" - }, - { - "id": "818200816", - "odds": "1.615", - "name": "Carlos Vicente: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "810881581", - "odds": "3.500", - "name": "Jon Guridi to Score or Assist", - "handicap": "" - }, - { - "id": "810778158", - "odds": "4.333", - "name": "Osasuna to Score in Both Halves", - "handicap": "" - }, - { - "id": "810881558", - "odds": "2.200", - "name": "Bryan Zaragoza to Score or Assist", - "handicap": "" - }, - { - "id": "810881580", - "odds": "3.400", - "name": "Aimar Oroz to Score or Assist", - "handicap": "" - }, - { - "id": "713504562", - "odds": "3.100", - "name": "FT Result: CD Alaves", - "handicap": "" - }, - { - "id": "810777871", - "odds": "2.000", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "813199262", - "odds": "1.285", - "name": "Over 7 Corners", - "handicap": "7.0" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-21T13:02:06+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977007", - "FI": "174206951", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-21T12:57:13+03:00", - "Odds": [ - { - "id": "810801158", - "odds": "9.000", - "name": "Williot Swedberg", - "handicap": "" - }, - { - "id": "810795373", - "odds": "2.875", - "name": "1", - "handicap": "" - }, - { - "id": "713507435", - "odds": "1.850", - "name": "FT Result: Celta Vigo", - "handicap": "" - }, - { - "id": "818234792", - "odds": "1.833", - "name": "Fernando Lopez: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818235097", - "odds": "1.400", - "name": "Williot Swedberg: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "810796354", - "odds": "1.950", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818233069", - "odds": "2.375", - "name": "Moya Borja Mayoral: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818272629", - "odds": "3.500", - "name": "Pablo Duran: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "713507435", - "odds": "1.850", - "name": "FT Result: Celta Vigo", - "handicap": "" - }, - { - "id": "810884551", - "odds": "3.100", - "name": "Oscar Mingueza to Score or Assist", - "handicap": "" - }, - { - "id": "818234750", - "odds": "3.500", - "name": "Beltran Fran: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713507421", - "odds": "4.200", - "name": "FT Result: Getafe", - "handicap": "" - }, - { - "id": "810795706", - "odds": "2.100", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813201935", - "odds": "1.533", - "name": "Over 7 Corners", - "handicap": "7.0" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-21T13:02:06+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977007", - "FI": "174206951", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-21T12:57:13+03:00", - "Odds": [ - { - "id": "810801158", - "odds": "9.000", - "name": "Williot Swedberg", - "handicap": "" - }, - { - "id": "810795373", - "odds": "2.875", - "name": "1", - "handicap": "" - }, - { - "id": "713507435", - "odds": "1.850", - "name": "FT Result: Celta Vigo", - "handicap": "" - }, - { - "id": "818234792", - "odds": "1.833", - "name": "Fernando Lopez: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818235097", - "odds": "1.400", - "name": "Williot Swedberg: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "810796354", - "odds": "1.950", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818233069", - "odds": "2.375", - "name": "Moya Borja Mayoral: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818272629", - "odds": "3.500", - "name": "Pablo Duran: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "713507435", - "odds": "1.850", - "name": "FT Result: Celta Vigo", - "handicap": "" - }, - { - "id": "810884551", - "odds": "3.100", - "name": "Oscar Mingueza to Score or Assist", - "handicap": "" - }, - { - "id": "818234750", - "odds": "3.500", - "name": "Beltran Fran: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713507421", - "odds": "4.200", - "name": "FT Result: Getafe", - "handicap": "" - }, - { - "id": "810795706", - "odds": "2.100", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813201935", - "odds": "1.533", - "name": "Over 7 Corners", - "handicap": "7.0" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-21T13:02:16+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977008", - "FI": "174206957", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-21T12:59:49+03:00", - "Odds": [ - { - "id": "810830891", - "odds": "8.500", - "name": "Isi Palazon", - "handicap": "" - }, - { - "id": "810826957", - "odds": "4.000", - "name": "2", - "handicap": "" - }, - { - "id": "713507997", - "odds": "1.500", - "name": "FT Result: Rayo Vallecano", - "handicap": "" - }, - { - "id": "810911970", - "odds": "2.300", - "name": "Jorge De Frutos to Score or Assist", - "handicap": "" - }, - { - "id": "818242351", - "odds": "2.000", - "name": "Isi Palazon: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810827485", - "odds": "2.250", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818248799", - "odds": "3.250", - "name": "Sergi Darder: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818300359", - "odds": "1.222", - "name": "Isi Palazon: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "810827053", - "odds": "2.300", - "name": "HT: Rayo Vallecano \u2013 FT: Rayo Vallecano", - "handicap": "" - }, - { - "id": "810827602", - "odds": "2.750", - "name": "Rayo Vallecano to Score in Both Halves", - "handicap": "" - }, - { - "id": "810830483", - "odds": "4.333", - "name": "Adrian Embarba to Score", - "handicap": "" - }, - { - "id": "713508001", - "odds": "6.000", - "name": "FT Result: Mallorca", - "handicap": "" - }, - { - "id": "810827203", - "odds": "2.200", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813203878", - "odds": "1.400", - "name": "Over 7 Corners", - "handicap": "7.0" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-21T13:02:16+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977008", - "FI": "174206957", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-21T12:59:49+03:00", - "Odds": [ - { - "id": "810830891", - "odds": "8.500", - "name": "Isi Palazon", - "handicap": "" - }, - { - "id": "810826957", - "odds": "4.000", - "name": "2", - "handicap": "" - }, - { - "id": "713507997", - "odds": "1.500", - "name": "FT Result: Rayo Vallecano", - "handicap": "" - }, - { - "id": "810911970", - "odds": "2.300", - "name": "Jorge De Frutos to Score or Assist", - "handicap": "" - }, - { - "id": "818242351", - "odds": "2.000", - "name": "Isi Palazon: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810827485", - "odds": "2.250", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818248799", - "odds": "3.250", - "name": "Sergi Darder: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818300359", - "odds": "1.222", - "name": "Isi Palazon: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "810827053", - "odds": "2.300", - "name": "HT: Rayo Vallecano \u2013 FT: Rayo Vallecano", - "handicap": "" - }, - { - "id": "810827602", - "odds": "2.750", - "name": "Rayo Vallecano to Score in Both Halves", - "handicap": "" - }, - { - "id": "810830483", - "odds": "4.333", - "name": "Adrian Embarba to Score", - "handicap": "" - }, - { - "id": "713508001", - "odds": "6.000", - "name": "FT Result: Mallorca", - "handicap": "" - }, - { - "id": "810827203", - "odds": "2.200", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813203878", - "odds": "1.400", - "name": "Over 7 Corners", - "handicap": "7.0" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-21T13:03:55+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977006", - "FI": "174206945", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-21T13:00:19+03:00", - "Odds": [ - { - "id": "810813776", - "odds": "9.000", - "name": "Alexander Sorloth", - "handicap": "" - }, - { - "id": "810813006", - "odds": "9.000", - "name": "Cristhian Stuani", - "handicap": "" - }, - { - "id": "713506855", - "odds": "1.833", - "name": "FT Result: Atletico Madrid", - "handicap": "" - }, - { - "id": "818257809", - "odds": "2.100", - "name": "Julian Alvarez: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810899950", - "odds": "1.666", - "name": "Julian Alvarez to Score or Assist", - "handicap": "" - }, - { - "id": "713506855", - "odds": "1.833", - "name": "FT Result: Atletico Madrid", - "handicap": "" - }, - { - "id": "810900002", - "odds": "1.727", - "name": "Alexander Sorloth to Score or Assist", - "handicap": "" - }, - { - "id": "818257762", - "odds": "2.100", - "name": "Alexander Sorloth: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810806697", - "odds": "1.533", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818257811", - "odds": "2.750", - "name": "Samuel Lino: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818306182", - "odds": "3.250", - "name": "Cristhian Stuani: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "713506844", - "odds": "4.200", - "name": "FT Result: Girona", - "handicap": "" - }, - { - "id": "810809282", - "odds": "1.615", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813205972", - "odds": "1.363", - "name": "Over 7 Corners", - "handicap": "7.0" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-21T13:03:55+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977006", - "FI": "174206945", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-21T13:00:19+03:00", - "Odds": [ - { - "id": "810813776", - "odds": "9.000", - "name": "Alexander Sorloth", - "handicap": "" - }, - { - "id": "810813006", - "odds": "9.000", - "name": "Cristhian Stuani", - "handicap": "" - }, - { - "id": "713506855", - "odds": "1.833", - "name": "FT Result: Atletico Madrid", - "handicap": "" - }, - { - "id": "818257809", - "odds": "2.100", - "name": "Julian Alvarez: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810899950", - "odds": "1.666", - "name": "Julian Alvarez to Score or Assist", - "handicap": "" - }, - { - "id": "713506855", - "odds": "1.833", - "name": "FT Result: Atletico Madrid", - "handicap": "" - }, - { - "id": "810900002", - "odds": "1.727", - "name": "Alexander Sorloth to Score or Assist", - "handicap": "" - }, - { - "id": "818257762", - "odds": "2.100", - "name": "Alexander Sorloth: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810806697", - "odds": "1.533", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818257811", - "odds": "2.750", - "name": "Samuel Lino: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818306182", - "odds": "3.250", - "name": "Cristhian Stuani: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "713506844", - "odds": "4.200", - "name": "FT Result: Girona", - "handicap": "" - }, - { - "id": "810809282", - "odds": "1.615", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813205972", - "odds": "1.363", - "name": "Over 7 Corners", - "handicap": "7.0" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-21T13:04:33+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9016963", - "FI": "173826315", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-21T13:02:19+03:00", - "Odds": [ - { - "id": "807193833", - "odds": "10.000", - "name": "Virgil van Dijk", - "handicap": "" - }, - { - "id": "807193986", - "odds": "12.000", - "name": "Luis Diaz", - "handicap": "" - }, - { - "id": "661805323", - "odds": "1.380", - "name": "FT Result: Liverpool", - "handicap": "" - }, - { - "id": "807192225", - "odds": "1.666", - "name": "Mohamed Salah to Score", - "handicap": "" - }, - { - "id": "807197558", - "odds": "2.750", - "name": "Mohamed Salah to Assist", - "handicap": "" - }, - { - "id": "804656664", - "odds": "2.000", - "name": "HT: Liverpool \u2013 FT: Liverpool", - "handicap": "" - }, - { - "id": "819075054", - "odds": "1.666", - "name": "Mohamed Salah: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "819074957", - "odds": "2.200", - "name": "Cody Gakpo: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "819081389", - "odds": "1.444", - "name": "Eberechi Eze: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "819453064", - "odds": "1.250", - "name": "Luis Diaz: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "819075012", - "odds": "1.533", - "name": "Dominik Szoboszlai: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "804658978", - "odds": "2.750", - "name": "Liverpool to Win to Nil", - "handicap": "" - }, - { - "id": "818998267", - "odds": "1.222", - "name": "Most Corners: Liverpool", - "handicap": "" - }, - { - "id": "819451925", - "odds": "1.300", - "name": "Most Shots on Target: Liverpool", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-21T13:06:43+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977001", - "FI": "174206898", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-21T13:04:29+03:00", - "Odds": [ - { - "id": "810769529", - "odds": "7.000", - "name": "Robert Lewandowski", - "handicap": "" - }, - { - "id": "810770215", - "odds": "9.500", - "name": "Lamine Yamal", - "handicap": "" - }, - { - "id": "713503841", - "odds": "2.050", - "name": "FT Result: Barcelona", - "handicap": "" - }, - { - "id": "818283162", - "odds": "2.000", - "name": "Robert Lewandowski: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810767797", - "odds": "2.100", - "name": "Robert Lewandowski to Score", - "handicap": "" - }, - { - "id": "810764064", - "odds": "1.444", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818280046", - "odds": "2.250", - "name": "Gorka Guruzeta: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818338019", - "odds": "2.750", - "name": "Lamine Yamal: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "713503841", - "odds": "2.050", - "name": "FT Result: Barcelona", - "handicap": "" - }, - { - "id": "818283150", - "odds": "2.000", - "name": "Raphinha: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810774636", - "odds": "1.800", - "name": "Lamine Yamal to Score or Assist", - "handicap": "" - }, - { - "id": "713503825", - "odds": "3.300", - "name": "FT Result: Athletic Bilbao", - "handicap": "" - }, - { - "id": "810774497", - "odds": "2.200", - "name": "Oihan Sancet to Score or Assist", - "handicap": "" - }, - { - "id": "813208230", - "odds": "1.285", - "name": "Over 7 Corners", - "handicap": "7.0" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-21T13:07:19+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9929184", - "FI": "174363978", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-21T13:02:59+03:00", - "Odds": [ - { - "id": "774550908", - "odds": "21.000", - "name": "Antony", - "handicap": "" - }, - { - "id": "774550887", - "odds": "15.000", - "name": "Nicolas Jackson", - "handicap": "" - }, - { - "id": "734595170", - "odds": "1.363", - "name": "Chelsea to Lift the Trophy", - "handicap": "" - }, - { - "id": "734591996", - "odds": "1.833", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "774549605", - "odds": "2.300", - "name": "Cole Palmer to Score", - "handicap": "" - }, - { - "id": "774549558", - "odds": "2.875", - "name": "Nicolas Jackson to Score", - "handicap": "" - }, - { - "id": "734595170", - "odds": "1.363", - "name": "Chelsea to Lift the Trophy", - "handicap": "" - }, - { - "id": "734590525", - "odds": "2.000", - "name": "Over 2 Goals", - "handicap": "2" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-21T13:07:41+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9924545", - "FI": "174307725", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-21T13:06:39+03:00", - "Odds": [ - { - "id": "726811888", - "odds": "13.000", - "name": "Lautaro Martinez", - "handicap": "" - }, - { - "id": "726811982", - "odds": "11.000", - "name": "Khvicha Kvaratskhelia", - "handicap": "" - }, - { - "id": "726816128", - "odds": "1.666", - "name": "PSG to Lift the Trophy", - "handicap": "" - }, - { - "id": "726811208", - "odds": "3.250", - "name": "Bradley Barcola to Score", - "handicap": "" - }, - { - "id": "726806476", - "odds": "1.909", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "726816130", - "odds": "2.200", - "name": "Inter Milan to Lift the Trophy", - "handicap": "" - }, - { - "id": "726811216", - "odds": "3.250", - "name": "Marcus Thuram to Score", - "handicap": "" - }, - { - "id": "726807442", - "odds": "1.700", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "726816349", - "odds": "2.250", - "name": "Lautaro Martinez to Score or Assist", - "handicap": "" - }, - { - "id": "726816313", - "odds": "2.000", - "name": "Khvicha Kvaratskhelia to Score or Assist", - "handicap": "" - }, - { - "id": "726816123", - "odds": "2.250", - "name": "PSG to Win in 90 Mins", - "handicap": "" - }, - { - "id": "726807627", - "odds": "3.400", - "name": "PSG to Score in Both Halves", - "handicap": "" - }, - { - "id": "726811207", - "odds": "4.000", - "name": "Desire Doue to Score", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-21T13:17:13+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977004", - "FI": "174206928", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-21T13:15:26+03:00", - "Odds": [ - { - "id": "810825615", - "odds": "10.000", - "name": "Daniel Raba", - "handicap": "" - }, - { - "id": "810824112", - "odds": "17.000", - "name": "Juan Latasa", - "handicap": "" - }, - { - "id": "713505303", - "odds": "1.300", - "name": "FT Result: Leganes", - "handicap": "" - }, - { - "id": "818170790", - "odds": "1.833", - "name": "Daniel Raba: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818170803", - "odds": "1.666", - "name": "Diego Garcia: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810815575", - "odds": "1.833", - "name": "HT: Leganes \u2013 FT: Leganes", - "handicap": "" - }, - { - "id": "810816336", - "odds": "2.000", - "name": "Leganes to Score in Both Halves", - "handicap": "" - }, - { - "id": "810822897", - "odds": "3.000", - "name": "Juan Cruz to Score", - "handicap": "" - }, - { - "id": "810816138", - "odds": "2.100", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818174813", - "odds": "2.000", - "name": "Juan Latasa: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818170892", - "odds": "1.533", - "name": "Seydouba Cisse: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713505316", - "odds": "8.500", - "name": "FT Result: Valladolid", - "handicap": "" - }, - { - "id": "810818057", - "odds": "1.666", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813198253", - "odds": "1.400", - "name": "Over 7 Corners", - "handicap": "7.0" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-21T13:17:21+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977005", - "FI": "174206938", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-21T13:16:20+03:00", - "Odds": [ - { - "id": "810793474", - "odds": "4.500", - "name": "Javi Puado", - "handicap": "" - }, - { - "id": "810793926", - "odds": "9.500", - "name": "Roberto Fernandez", - "handicap": "" - }, - { - "id": "713505983", - "odds": "1.363", - "name": "FT Result: Espanyol", - "handicap": "" - }, - { - "id": "818161086", - "odds": "1.909", - "name": "Javi Puado: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818161150", - "odds": "2.100", - "name": "Roberto Fernandez: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "713505983", - "odds": "1.363", - "name": "FT Result: Espanyol", - "handicap": "" - }, - { - "id": "818223413", - "odds": "3.000", - "name": "Antoniu Roca: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810882878", - "odds": "2.300", - "name": "Eduardo Exposito to Score or Assist", - "handicap": "" - }, - { - "id": "810785073", - "odds": "2.100", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818165373", - "odds": "2.100", - "name": "Alberto Moleiro: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818223267", - "odds": "1.200", - "name": "Javi Puado: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713505993", - "odds": "7.500", - "name": "FT Result: Las Palmas", - "handicap": "" - }, - { - "id": "813197755", - "odds": "1.300", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "810787654", - "odds": "1.800", - "name": "Over 2 Goals", - "handicap": "2" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-21T13:17:21+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977005", - "FI": "174206938", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-21T13:16:20+03:00", - "Odds": [ - { - "id": "810793474", - "odds": "4.500", - "name": "Javi Puado", - "handicap": "" - }, - { - "id": "810793926", - "odds": "9.500", - "name": "Roberto Fernandez", - "handicap": "" - }, - { - "id": "713505983", - "odds": "1.363", - "name": "FT Result: Espanyol", - "handicap": "" - }, - { - "id": "818161086", - "odds": "1.909", - "name": "Javi Puado: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818161150", - "odds": "2.100", - "name": "Roberto Fernandez: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "713505983", - "odds": "1.363", - "name": "FT Result: Espanyol", - "handicap": "" - }, - { - "id": "818223413", - "odds": "3.000", - "name": "Antoniu Roca: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810882878", - "odds": "2.300", - "name": "Eduardo Exposito to Score or Assist", - "handicap": "" - }, - { - "id": "810785073", - "odds": "2.100", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818165373", - "odds": "2.100", - "name": "Alberto Moleiro: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818223267", - "odds": "1.200", - "name": "Javi Puado: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713505993", - "odds": "7.500", - "name": "FT Result: Las Palmas", - "handicap": "" - }, - { - "id": "813197755", - "odds": "1.300", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "810787654", - "odds": "1.800", - "name": "Over 2 Goals", - "handicap": "2" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-21T13:17:37+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977007", - "FI": "174206951", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-21T13:15:25+03:00", - "Odds": [ - { - "id": "810801158", - "odds": "9.000", - "name": "Williot Swedberg", - "handicap": "" - }, - { - "id": "810795373", - "odds": "2.875", - "name": "1", - "handicap": "" - }, - { - "id": "713507435", - "odds": "1.850", - "name": "FT Result: Celta Vigo", - "handicap": "" - }, - { - "id": "818234792", - "odds": "1.833", - "name": "Fernando Lopez: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818235097", - "odds": "1.400", - "name": "Williot Swedberg: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "810796354", - "odds": "1.950", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818233069", - "odds": "2.375", - "name": "Moya Borja Mayoral: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818272629", - "odds": "3.500", - "name": "Pablo Duran: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "713507435", - "odds": "1.850", - "name": "FT Result: Celta Vigo", - "handicap": "" - }, - { - "id": "810884551", - "odds": "3.100", - "name": "Oscar Mingueza to Score or Assist", - "handicap": "" - }, - { - "id": "818234750", - "odds": "3.500", - "name": "Beltran Fran: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713507421", - "odds": "4.200", - "name": "FT Result: Getafe", - "handicap": "" - }, - { - "id": "810795706", - "odds": "2.100", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813201935", - "odds": "1.533", - "name": "Over 7 Corners", - "handicap": "7.0" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-21T13:17:37+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977007", - "FI": "174206951", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-21T13:15:25+03:00", - "Odds": [ - { - "id": "810801158", - "odds": "9.000", - "name": "Williot Swedberg", - "handicap": "" - }, - { - "id": "810795373", - "odds": "2.875", - "name": "1", - "handicap": "" - }, - { - "id": "713507435", - "odds": "1.850", - "name": "FT Result: Celta Vigo", - "handicap": "" - }, - { - "id": "818234792", - "odds": "1.833", - "name": "Fernando Lopez: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818235097", - "odds": "1.400", - "name": "Williot Swedberg: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "810796354", - "odds": "1.950", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818233069", - "odds": "2.375", - "name": "Moya Borja Mayoral: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818272629", - "odds": "3.500", - "name": "Pablo Duran: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "713507435", - "odds": "1.850", - "name": "FT Result: Celta Vigo", - "handicap": "" - }, - { - "id": "810884551", - "odds": "3.100", - "name": "Oscar Mingueza to Score or Assist", - "handicap": "" - }, - { - "id": "818234750", - "odds": "3.500", - "name": "Beltran Fran: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713507421", - "odds": "4.200", - "name": "FT Result: Getafe", - "handicap": "" - }, - { - "id": "810795706", - "odds": "2.100", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813201935", - "odds": "1.533", - "name": "Over 7 Corners", - "handicap": "7.0" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-21T13:17:45+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977008", - "FI": "174206957", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-21T13:14:44+03:00", - "Odds": [ - { - "id": "810830891", - "odds": "8.500", - "name": "Isi Palazon", - "handicap": "" - }, - { - "id": "810826957", - "odds": "4.000", - "name": "2", - "handicap": "" - }, - { - "id": "713507997", - "odds": "1.500", - "name": "FT Result: Rayo Vallecano", - "handicap": "" - }, - { - "id": "810911970", - "odds": "2.300", - "name": "Jorge De Frutos to Score or Assist", - "handicap": "" - }, - { - "id": "818242351", - "odds": "2.000", - "name": "Isi Palazon: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810827485", - "odds": "2.250", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818248799", - "odds": "3.250", - "name": "Sergi Darder: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818300359", - "odds": "1.222", - "name": "Isi Palazon: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "810827053", - "odds": "2.300", - "name": "HT: Rayo Vallecano \u2013 FT: Rayo Vallecano", - "handicap": "" - }, - { - "id": "810827602", - "odds": "2.750", - "name": "Rayo Vallecano to Score in Both Halves", - "handicap": "" - }, - { - "id": "810830483", - "odds": "4.333", - "name": "Adrian Embarba to Score", - "handicap": "" - }, - { - "id": "713508001", - "odds": "6.000", - "name": "FT Result: Mallorca", - "handicap": "" - }, - { - "id": "810827203", - "odds": "2.200", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813203878", - "odds": "1.400", - "name": "Over 7 Corners", - "handicap": "7.0" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-21T13:17:45+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977008", - "FI": "174206957", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-21T13:14:44+03:00", - "Odds": [ - { - "id": "810830891", - "odds": "8.500", - "name": "Isi Palazon", - "handicap": "" - }, - { - "id": "810826957", - "odds": "4.000", - "name": "2", - "handicap": "" - }, - { - "id": "713507997", - "odds": "1.500", - "name": "FT Result: Rayo Vallecano", - "handicap": "" - }, - { - "id": "810911970", - "odds": "2.300", - "name": "Jorge De Frutos to Score or Assist", - "handicap": "" - }, - { - "id": "818242351", - "odds": "2.000", - "name": "Isi Palazon: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810827485", - "odds": "2.250", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818248799", - "odds": "3.250", - "name": "Sergi Darder: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818300359", - "odds": "1.222", - "name": "Isi Palazon: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "810827053", - "odds": "2.300", - "name": "HT: Rayo Vallecano \u2013 FT: Rayo Vallecano", - "handicap": "" - }, - { - "id": "810827602", - "odds": "2.750", - "name": "Rayo Vallecano to Score in Both Halves", - "handicap": "" - }, - { - "id": "810830483", - "odds": "4.333", - "name": "Adrian Embarba to Score", - "handicap": "" - }, - { - "id": "713508001", - "odds": "6.000", - "name": "FT Result: Mallorca", - "handicap": "" - }, - { - "id": "810827203", - "odds": "2.200", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813203878", - "odds": "1.400", - "name": "Over 7 Corners", - "handicap": "7.0" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-21T13:18:03+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977003", - "FI": "174206914", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-21T13:15:19+03:00", - "Odds": [ - { - "id": "810782401", - "odds": "6.500", - "name": "Ante Budimir", - "handicap": "" - }, - { - "id": "810782255", - "odds": "17.000", - "name": "Jon Guridi", - "handicap": "" - }, - { - "id": "713504570", - "odds": "2.375", - "name": "FT Result: Osasuna", - "handicap": "" - }, - { - "id": "818200891", - "odds": "1.615", - "name": "Ante Budimir: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810881584", - "odds": "1.833", - "name": "Ante Budimir to Score or Assist", - "handicap": "" - }, - { - "id": "713504562", - "odds": "3.100", - "name": "FT Result: CD Alaves", - "handicap": "" - }, - { - "id": "818200816", - "odds": "1.615", - "name": "Carlos Vicente: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "810881581", - "odds": "3.500", - "name": "Jon Guridi to Score or Assist", - "handicap": "" - }, - { - "id": "810778158", - "odds": "4.333", - "name": "Osasuna to Score in Both Halves", - "handicap": "" - }, - { - "id": "810881558", - "odds": "2.200", - "name": "Bryan Zaragoza to Score or Assist", - "handicap": "" - }, - { - "id": "810881580", - "odds": "3.400", - "name": "Aimar Oroz to Score or Assist", - "handicap": "" - }, - { - "id": "713504562", - "odds": "3.100", - "name": "FT Result: CD Alaves", - "handicap": "" - }, - { - "id": "810777871", - "odds": "2.000", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "813199262", - "odds": "1.285", - "name": "Over 7 Corners", - "handicap": "7.0" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-21T13:19:41+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977006", - "FI": "174206945", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-21T13:18:19+03:00", - "Odds": [ - { - "id": "810813776", - "odds": "9.000", - "name": "Alexander Sorloth", - "handicap": "" - }, - { - "id": "810813006", - "odds": "9.000", - "name": "Cristhian Stuani", - "handicap": "" - }, - { - "id": "713506855", - "odds": "1.833", - "name": "FT Result: Atletico Madrid", - "handicap": "" - }, - { - "id": "818257809", - "odds": "2.100", - "name": "Julian Alvarez: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810899950", - "odds": "1.666", - "name": "Julian Alvarez to Score or Assist", - "handicap": "" - }, - { - "id": "713506855", - "odds": "1.833", - "name": "FT Result: Atletico Madrid", - "handicap": "" - }, - { - "id": "810900002", - "odds": "1.727", - "name": "Alexander Sorloth to Score or Assist", - "handicap": "" - }, - { - "id": "818257762", - "odds": "2.100", - "name": "Alexander Sorloth: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810806697", - "odds": "1.533", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818257811", - "odds": "2.750", - "name": "Samuel Lino: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818306182", - "odds": "3.250", - "name": "Cristhian Stuani: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "713506844", - "odds": "4.200", - "name": "FT Result: Girona", - "handicap": "" - }, - { - "id": "810809282", - "odds": "1.615", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813205972", - "odds": "1.363", - "name": "Over 7 Corners", - "handicap": "7.0" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-21T13:19:41+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977006", - "FI": "174206945", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-21T13:18:19+03:00", - "Odds": [ - { - "id": "810813776", - "odds": "9.000", - "name": "Alexander Sorloth", - "handicap": "" - }, - { - "id": "810813006", - "odds": "9.000", - "name": "Cristhian Stuani", - "handicap": "" - }, - { - "id": "713506855", - "odds": "1.833", - "name": "FT Result: Atletico Madrid", - "handicap": "" - }, - { - "id": "818257809", - "odds": "2.100", - "name": "Julian Alvarez: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810899950", - "odds": "1.666", - "name": "Julian Alvarez to Score or Assist", - "handicap": "" - }, - { - "id": "713506855", - "odds": "1.833", - "name": "FT Result: Atletico Madrid", - "handicap": "" - }, - { - "id": "810900002", - "odds": "1.727", - "name": "Alexander Sorloth to Score or Assist", - "handicap": "" - }, - { - "id": "818257762", - "odds": "2.100", - "name": "Alexander Sorloth: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810806697", - "odds": "1.533", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818257811", - "odds": "2.750", - "name": "Samuel Lino: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818306182", - "odds": "3.250", - "name": "Cristhian Stuani: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "713506844", - "odds": "4.200", - "name": "FT Result: Girona", - "handicap": "" - }, - { - "id": "810809282", - "odds": "1.615", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813205972", - "odds": "1.363", - "name": "Over 7 Corners", - "handicap": "7.0" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-21T13:20:39+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9016963", - "FI": "173826315", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-21T13:19:37+03:00", - "Odds": [ - { - "id": "807193833", - "odds": "10.000", - "name": "Virgil van Dijk", - "handicap": "" - }, - { - "id": "807193986", - "odds": "11.000", - "name": "Luis Diaz", - "handicap": "" - }, - { - "id": "661805323", - "odds": "1.380", - "name": "FT Result: Liverpool", - "handicap": "" - }, - { - "id": "807192225", - "odds": "1.666", - "name": "Mohamed Salah to Score", - "handicap": "" - }, - { - "id": "807197558", - "odds": "2.750", - "name": "Mohamed Salah to Assist", - "handicap": "" - }, - { - "id": "804656664", - "odds": "2.000", - "name": "HT: Liverpool \u2013 FT: Liverpool", - "handicap": "" - }, - { - "id": "819075054", - "odds": "1.666", - "name": "Mohamed Salah: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "819074957", - "odds": "2.200", - "name": "Cody Gakpo: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "819081389", - "odds": "1.444", - "name": "Eberechi Eze: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "819453064", - "odds": "1.250", - "name": "Luis Diaz: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "819075012", - "odds": "1.533", - "name": "Dominik Szoboszlai: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "804658978", - "odds": "3.000", - "name": "Liverpool to Win to Nil", - "handicap": "" - }, - { - "id": "818998267", - "odds": "1.222", - "name": "Most Corners: Liverpool", - "handicap": "" - }, - { - "id": "819451925", - "odds": "1.300", - "name": "Most Shots on Target: Liverpool", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-21T14:09:35+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977004", - "FI": "174206928", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-21T14:03:55+03:00", - "Odds": [ - { - "id": "810825615", - "odds": "10.000", - "name": "Daniel Raba", - "handicap": "" - }, - { - "id": "810824112", - "odds": "17.000", - "name": "Juan Latasa", - "handicap": "" - }, - { - "id": "713505303", - "odds": "1.300", - "name": "FT Result: Leganes", - "handicap": "" - }, - { - "id": "818170790", - "odds": "1.833", - "name": "Daniel Raba: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818170803", - "odds": "1.666", - "name": "Diego Garcia: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810815575", - "odds": "1.833", - "name": "HT: Leganes \u2013 FT: Leganes", - "handicap": "" - }, - { - "id": "810816336", - "odds": "2.000", - "name": "Leganes to Score in Both Halves", - "handicap": "" - }, - { - "id": "810822897", - "odds": "3.000", - "name": "Juan Cruz to Score", - "handicap": "" - }, - { - "id": "810816138", - "odds": "2.100", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818174813", - "odds": "2.000", - "name": "Juan Latasa: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818170892", - "odds": "1.533", - "name": "Seydouba Cisse: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713505316", - "odds": "8.500", - "name": "FT Result: Valladolid", - "handicap": "" - }, - { - "id": "810818057", - "odds": "1.666", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813198253", - "odds": "1.400", - "name": "Over 7 Corners", - "handicap": "7.0" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-21T14:09:42+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977005", - "FI": "174206938", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-21T14:01:48+03:00", - "Odds": [ - { - "id": "810793474", - "odds": "4.500", - "name": "Javi Puado", - "handicap": "" - }, - { - "id": "810793926", - "odds": "9.500", - "name": "Roberto Fernandez", - "handicap": "" - }, - { - "id": "713505983", - "odds": "1.363", - "name": "FT Result: Espanyol", - "handicap": "" - }, - { - "id": "818161086", - "odds": "1.909", - "name": "Javi Puado: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818161150", - "odds": "2.100", - "name": "Roberto Fernandez: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "713505983", - "odds": "1.363", - "name": "FT Result: Espanyol", - "handicap": "" - }, - { - "id": "818223413", - "odds": "3.000", - "name": "Antoniu Roca: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810882878", - "odds": "2.300", - "name": "Eduardo Exposito to Score or Assist", - "handicap": "" - }, - { - "id": "810785073", - "odds": "2.100", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818165373", - "odds": "2.100", - "name": "Alberto Moleiro: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818223267", - "odds": "1.200", - "name": "Javi Puado: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713505993", - "odds": "7.500", - "name": "FT Result: Las Palmas", - "handicap": "" - }, - { - "id": "813197755", - "odds": "1.300", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "810787654", - "odds": "1.800", - "name": "Over 2 Goals", - "handicap": "2" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-21T14:09:42+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977005", - "FI": "174206938", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-21T14:01:48+03:00", - "Odds": [ - { - "id": "810793474", - "odds": "4.500", - "name": "Javi Puado", - "handicap": "" - }, - { - "id": "810793926", - "odds": "9.500", - "name": "Roberto Fernandez", - "handicap": "" - }, - { - "id": "713505983", - "odds": "1.363", - "name": "FT Result: Espanyol", - "handicap": "" - }, - { - "id": "818161086", - "odds": "1.909", - "name": "Javi Puado: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818161150", - "odds": "2.100", - "name": "Roberto Fernandez: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "713505983", - "odds": "1.363", - "name": "FT Result: Espanyol", - "handicap": "" - }, - { - "id": "818223413", - "odds": "3.000", - "name": "Antoniu Roca: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810882878", - "odds": "2.300", - "name": "Eduardo Exposito to Score or Assist", - "handicap": "" - }, - { - "id": "810785073", - "odds": "2.100", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818165373", - "odds": "2.100", - "name": "Alberto Moleiro: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818223267", - "odds": "1.200", - "name": "Javi Puado: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713505993", - "odds": "7.500", - "name": "FT Result: Las Palmas", - "handicap": "" - }, - { - "id": "813197755", - "odds": "1.300", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "810787654", - "odds": "1.800", - "name": "Over 2 Goals", - "handicap": "2" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-21T14:09:49+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977007", - "FI": "174206951", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-21T14:07:46+03:00", - "Odds": [ - { - "id": "810801158", - "odds": "9.000", - "name": "Williot Swedberg", - "handicap": "" - }, - { - "id": "810795373", - "odds": "2.875", - "name": "1", - "handicap": "" - }, - { - "id": "713507435", - "odds": "1.850", - "name": "FT Result: Celta Vigo", - "handicap": "" - }, - { - "id": "818234792", - "odds": "1.833", - "name": "Fernando Lopez: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818235097", - "odds": "1.400", - "name": "Williot Swedberg: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "810796354", - "odds": "1.950", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818233069", - "odds": "2.375", - "name": "Moya Borja Mayoral: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818272629", - "odds": "3.500", - "name": "Pablo Duran: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "713507435", - "odds": "1.850", - "name": "FT Result: Celta Vigo", - "handicap": "" - }, - { - "id": "810884551", - "odds": "3.100", - "name": "Oscar Mingueza to Score or Assist", - "handicap": "" - }, - { - "id": "818234750", - "odds": "3.500", - "name": "Beltran Fran: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713507421", - "odds": "4.200", - "name": "FT Result: Getafe", - "handicap": "" - }, - { - "id": "810795706", - "odds": "2.100", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813201935", - "odds": "1.533", - "name": "Over 7 Corners", - "handicap": "7.0" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-21T14:09:49+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977007", - "FI": "174206951", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-21T14:07:46+03:00", - "Odds": [ - { - "id": "810801158", - "odds": "9.000", - "name": "Williot Swedberg", - "handicap": "" - }, - { - "id": "810795373", - "odds": "2.875", - "name": "1", - "handicap": "" - }, - { - "id": "713507435", - "odds": "1.850", - "name": "FT Result: Celta Vigo", - "handicap": "" - }, - { - "id": "818234792", - "odds": "1.833", - "name": "Fernando Lopez: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818235097", - "odds": "1.400", - "name": "Williot Swedberg: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "810796354", - "odds": "1.950", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818233069", - "odds": "2.375", - "name": "Moya Borja Mayoral: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818272629", - "odds": "3.500", - "name": "Pablo Duran: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "713507435", - "odds": "1.850", - "name": "FT Result: Celta Vigo", - "handicap": "" - }, - { - "id": "810884551", - "odds": "3.100", - "name": "Oscar Mingueza to Score or Assist", - "handicap": "" - }, - { - "id": "818234750", - "odds": "3.500", - "name": "Beltran Fran: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713507421", - "odds": "4.200", - "name": "FT Result: Getafe", - "handicap": "" - }, - { - "id": "810795706", - "odds": "2.100", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813201935", - "odds": "1.533", - "name": "Over 7 Corners", - "handicap": "7.0" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-21T14:09:54+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977008", - "FI": "174206957", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-21T14:08:24+03:00", - "Odds": [ - { - "id": "810830891", - "odds": "8.500", - "name": "Isi Palazon", - "handicap": "" - }, - { - "id": "810826957", - "odds": "4.000", - "name": "2", - "handicap": "" - }, - { - "id": "713507997", - "odds": "1.500", - "name": "FT Result: Rayo Vallecano", - "handicap": "" - }, - { - "id": "810911970", - "odds": "2.300", - "name": "Jorge De Frutos to Score or Assist", - "handicap": "" - }, - { - "id": "818242351", - "odds": "2.000", - "name": "Isi Palazon: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810827485", - "odds": "2.250", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818248799", - "odds": "3.250", - "name": "Sergi Darder: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818300359", - "odds": "1.222", - "name": "Isi Palazon: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "810827053", - "odds": "2.300", - "name": "HT: Rayo Vallecano \u2013 FT: Rayo Vallecano", - "handicap": "" - }, - { - "id": "810827602", - "odds": "2.750", - "name": "Rayo Vallecano to Score in Both Halves", - "handicap": "" - }, - { - "id": "810830483", - "odds": "4.333", - "name": "Adrian Embarba to Score", - "handicap": "" - }, - { - "id": "713508001", - "odds": "6.000", - "name": "FT Result: Mallorca", - "handicap": "" - }, - { - "id": "810827203", - "odds": "2.200", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813203878", - "odds": "1.400", - "name": "Over 7 Corners", - "handicap": "7.0" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-21T14:09:54+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977008", - "FI": "174206957", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-21T14:08:24+03:00", - "Odds": [ - { - "id": "810830891", - "odds": "8.500", - "name": "Isi Palazon", - "handicap": "" - }, - { - "id": "810826957", - "odds": "4.000", - "name": "2", - "handicap": "" - }, - { - "id": "713507997", - "odds": "1.500", - "name": "FT Result: Rayo Vallecano", - "handicap": "" - }, - { - "id": "810911970", - "odds": "2.300", - "name": "Jorge De Frutos to Score or Assist", - "handicap": "" - }, - { - "id": "818242351", - "odds": "2.000", - "name": "Isi Palazon: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810827485", - "odds": "2.250", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818248799", - "odds": "3.250", - "name": "Sergi Darder: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818300359", - "odds": "1.222", - "name": "Isi Palazon: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "810827053", - "odds": "2.300", - "name": "HT: Rayo Vallecano \u2013 FT: Rayo Vallecano", - "handicap": "" - }, - { - "id": "810827602", - "odds": "2.750", - "name": "Rayo Vallecano to Score in Both Halves", - "handicap": "" - }, - { - "id": "810830483", - "odds": "4.333", - "name": "Adrian Embarba to Score", - "handicap": "" - }, - { - "id": "713508001", - "odds": "6.000", - "name": "FT Result: Mallorca", - "handicap": "" - }, - { - "id": "810827203", - "odds": "2.200", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813203878", - "odds": "1.400", - "name": "Over 7 Corners", - "handicap": "7.0" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-21T14:10:06+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977003", - "FI": "174206914", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-21T14:03:43+03:00", - "Odds": [ - { - "id": "810782401", - "odds": "6.500", - "name": "Ante Budimir", - "handicap": "" - }, - { - "id": "810782255", - "odds": "17.000", - "name": "Jon Guridi", - "handicap": "" - }, - { - "id": "713504570", - "odds": "2.375", - "name": "FT Result: Osasuna", - "handicap": "" - }, - { - "id": "818200891", - "odds": "1.615", - "name": "Ante Budimir: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810881584", - "odds": "1.833", - "name": "Ante Budimir to Score or Assist", - "handicap": "" - }, - { - "id": "713504562", - "odds": "3.100", - "name": "FT Result: CD Alaves", - "handicap": "" - }, - { - "id": "818200816", - "odds": "1.615", - "name": "Carlos Vicente: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "810881581", - "odds": "3.500", - "name": "Jon Guridi to Score or Assist", - "handicap": "" - }, - { - "id": "810778158", - "odds": "4.333", - "name": "Osasuna to Score in Both Halves", - "handicap": "" - }, - { - "id": "810881558", - "odds": "2.200", - "name": "Bryan Zaragoza to Score or Assist", - "handicap": "" - }, - { - "id": "810881580", - "odds": "3.400", - "name": "Aimar Oroz to Score or Assist", - "handicap": "" - }, - { - "id": "713504562", - "odds": "3.100", - "name": "FT Result: CD Alaves", - "handicap": "" - }, - { - "id": "810777871", - "odds": "2.000", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "813199262", - "odds": "1.285", - "name": "Over 7 Corners", - "handicap": "7.0" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-21T14:11:20+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977006", - "FI": "174206945", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-21T14:06:44+03:00", - "Odds": [ - { - "id": "810813776", - "odds": "9.000", - "name": "Alexander Sorloth", - "handicap": "" - }, - { - "id": "810813006", - "odds": "9.000", - "name": "Cristhian Stuani", - "handicap": "" - }, - { - "id": "713506855", - "odds": "1.833", - "name": "FT Result: Atletico Madrid", - "handicap": "" - }, - { - "id": "818257809", - "odds": "2.100", - "name": "Julian Alvarez: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810899950", - "odds": "1.666", - "name": "Julian Alvarez to Score or Assist", - "handicap": "" - }, - { - "id": "713506855", - "odds": "1.833", - "name": "FT Result: Atletico Madrid", - "handicap": "" - }, - { - "id": "810900002", - "odds": "1.727", - "name": "Alexander Sorloth to Score or Assist", - "handicap": "" - }, - { - "id": "818257762", - "odds": "2.100", - "name": "Alexander Sorloth: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810806697", - "odds": "1.533", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818257811", - "odds": "2.750", - "name": "Samuel Lino: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818306182", - "odds": "3.250", - "name": "Cristhian Stuani: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "713506844", - "odds": "4.200", - "name": "FT Result: Girona", - "handicap": "" - }, - { - "id": "810809282", - "odds": "1.615", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813205972", - "odds": "1.363", - "name": "Over 7 Corners", - "handicap": "7.0" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-21T14:11:20+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977006", - "FI": "174206945", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-21T14:06:44+03:00", - "Odds": [ - { - "id": "810813776", - "odds": "9.000", - "name": "Alexander Sorloth", - "handicap": "" - }, - { - "id": "810813006", - "odds": "9.000", - "name": "Cristhian Stuani", - "handicap": "" - }, - { - "id": "713506855", - "odds": "1.833", - "name": "FT Result: Atletico Madrid", - "handicap": "" - }, - { - "id": "818257809", - "odds": "2.100", - "name": "Julian Alvarez: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810899950", - "odds": "1.666", - "name": "Julian Alvarez to Score or Assist", - "handicap": "" - }, - { - "id": "713506855", - "odds": "1.833", - "name": "FT Result: Atletico Madrid", - "handicap": "" - }, - { - "id": "810900002", - "odds": "1.727", - "name": "Alexander Sorloth to Score or Assist", - "handicap": "" - }, - { - "id": "818257762", - "odds": "2.100", - "name": "Alexander Sorloth: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810806697", - "odds": "1.533", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818257811", - "odds": "2.750", - "name": "Samuel Lino: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818306182", - "odds": "3.250", - "name": "Cristhian Stuani: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "713506844", - "odds": "4.200", - "name": "FT Result: Girona", - "handicap": "" - }, - { - "id": "810809282", - "odds": "1.615", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813205972", - "odds": "1.363", - "name": "Over 7 Corners", - "handicap": "7.0" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-21T14:11:54+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9016963", - "FI": "173826315", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-21T14:10:26+03:00", - "Odds": [ - { - "id": "807193833", - "odds": "10.000", - "name": "Virgil van Dijk", - "handicap": "" - }, - { - "id": "807193986", - "odds": "11.000", - "name": "Luis Diaz", - "handicap": "" - }, - { - "id": "661805323", - "odds": "1.380", - "name": "FT Result: Liverpool", - "handicap": "" - }, - { - "id": "807192225", - "odds": "1.666", - "name": "Mohamed Salah to Score", - "handicap": "" - }, - { - "id": "807197558", - "odds": "2.750", - "name": "Mohamed Salah to Assist", - "handicap": "" - }, - { - "id": "804656664", - "odds": "2.000", - "name": "HT: Liverpool \u2013 FT: Liverpool", - "handicap": "" - }, - { - "id": "819075054", - "odds": "1.666", - "name": "Mohamed Salah: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "819074957", - "odds": "2.200", - "name": "Cody Gakpo: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "819081389", - "odds": "1.444", - "name": "Eberechi Eze: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "819453064", - "odds": "1.250", - "name": "Luis Diaz: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "819075012", - "odds": "1.533", - "name": "Dominik Szoboszlai: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "804658978", - "odds": "3.000", - "name": "Liverpool to Win to Nil", - "handicap": "" - }, - { - "id": "818998267", - "odds": "1.222", - "name": "Most Corners: Liverpool", - "handicap": "" - }, - { - "id": "819451925", - "odds": "1.300", - "name": "Most Shots on Target: Liverpool", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-21T14:13:08+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977001", - "FI": "174206898", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-21T14:13:02+03:00", - "Odds": [ - { - "id": "810769529", - "odds": "7.000", - "name": "Robert Lewandowski", - "handicap": "" - }, - { - "id": "810770215", - "odds": "9.500", - "name": "Lamine Yamal", - "handicap": "" - }, - { - "id": "713503841", - "odds": "2.050", - "name": "FT Result: Barcelona", - "handicap": "" - }, - { - "id": "818283162", - "odds": "2.000", - "name": "Robert Lewandowski: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810767797", - "odds": "2.100", - "name": "Robert Lewandowski to Score", - "handicap": "" - }, - { - "id": "810764064", - "odds": "1.444", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818280046", - "odds": "2.250", - "name": "Gorka Guruzeta: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818338019", - "odds": "2.750", - "name": "Lamine Yamal: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "713503841", - "odds": "2.050", - "name": "FT Result: Barcelona", - "handicap": "" - }, - { - "id": "818283150", - "odds": "2.000", - "name": "Raphinha: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810774636", - "odds": "1.800", - "name": "Lamine Yamal to Score or Assist", - "handicap": "" - }, - { - "id": "713503825", - "odds": "3.300", - "name": "FT Result: Athletic Bilbao", - "handicap": "" - }, - { - "id": "810774497", - "odds": "2.200", - "name": "Oihan Sancet to Score or Assist", - "handicap": "" - }, - { - "id": "813208230", - "odds": "1.285", - "name": "Over 7 Corners", - "handicap": "7.0" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-21T14:13:31+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9929184", - "FI": "174363978", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-21T14:12:23+03:00", - "Odds": [ - { - "id": "774550908", - "odds": "21.000", - "name": "Antony", - "handicap": "" - }, - { - "id": "774550887", - "odds": "15.000", - "name": "Nicolas Jackson", - "handicap": "" - }, - { - "id": "734595170", - "odds": "1.363", - "name": "Chelsea to Lift the Trophy", - "handicap": "" - }, - { - "id": "734591996", - "odds": "1.833", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "774549605", - "odds": "2.300", - "name": "Cole Palmer to Score", - "handicap": "" - }, - { - "id": "774549558", - "odds": "2.875", - "name": "Nicolas Jackson to Score", - "handicap": "" - }, - { - "id": "734595170", - "odds": "1.363", - "name": "Chelsea to Lift the Trophy", - "handicap": "" - }, - { - "id": "734590525", - "odds": "2.000", - "name": "Over 2 Goals", - "handicap": "2" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-21T14:13:39+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9924545", - "FI": "174307725", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-21T14:06:57+03:00", - "Odds": [ - { - "id": "726811888", - "odds": "13.000", - "name": "Lautaro Martinez", - "handicap": "" - }, - { - "id": "726811982", - "odds": "11.000", - "name": "Khvicha Kvaratskhelia", - "handicap": "" - }, - { - "id": "726816128", - "odds": "1.666", - "name": "PSG to Lift the Trophy", - "handicap": "" - }, - { - "id": "726811208", - "odds": "3.250", - "name": "Bradley Barcola to Score", - "handicap": "" - }, - { - "id": "726806476", - "odds": "1.909", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "726816130", - "odds": "2.200", - "name": "Inter Milan to Lift the Trophy", - "handicap": "" - }, - { - "id": "726811216", - "odds": "3.250", - "name": "Marcus Thuram to Score", - "handicap": "" - }, - { - "id": "726807442", - "odds": "1.700", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "726816349", - "odds": "2.250", - "name": "Lautaro Martinez to Score or Assist", - "handicap": "" - }, - { - "id": "726816313", - "odds": "2.000", - "name": "Khvicha Kvaratskhelia to Score or Assist", - "handicap": "" - }, - { - "id": "726816123", - "odds": "2.250", - "name": "PSG to Win in 90 Mins", - "handicap": "" - }, - { - "id": "726807627", - "odds": "3.400", - "name": "PSG to Score in Both Halves", - "handicap": "" - }, - { - "id": "726811207", - "odds": "4.000", - "name": "Desire Doue to Score", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-21T14:15:56+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977004", - "FI": "174206928", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-21T14:10:41+03:00", - "Odds": [ - { - "id": "810825615", - "odds": "10.000", - "name": "Daniel Raba", - "handicap": "" - }, - { - "id": "810824112", - "odds": "17.000", - "name": "Juan Latasa", - "handicap": "" - }, - { - "id": "713505303", - "odds": "1.300", - "name": "FT Result: Leganes", - "handicap": "" - }, - { - "id": "818170790", - "odds": "1.833", - "name": "Daniel Raba: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818170803", - "odds": "1.666", - "name": "Diego Garcia: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810815575", - "odds": "1.833", - "name": "HT: Leganes \u2013 FT: Leganes", - "handicap": "" - }, - { - "id": "810816336", - "odds": "2.000", - "name": "Leganes to Score in Both Halves", - "handicap": "" - }, - { - "id": "810822897", - "odds": "3.000", - "name": "Juan Cruz to Score", - "handicap": "" - }, - { - "id": "810816138", - "odds": "2.100", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818174813", - "odds": "2.000", - "name": "Juan Latasa: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818170892", - "odds": "1.533", - "name": "Seydouba Cisse: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713505316", - "odds": "8.500", - "name": "FT Result: Valladolid", - "handicap": "" - }, - { - "id": "810818057", - "odds": "1.666", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813198253", - "odds": "1.400", - "name": "Over 7 Corners", - "handicap": "7.0" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-21T14:16:05+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977005", - "FI": "174206938", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-21T14:01:48+03:00", - "Odds": [ - { - "id": "810793474", - "odds": "4.500", - "name": "Javi Puado", - "handicap": "" - }, - { - "id": "810793926", - "odds": "9.500", - "name": "Roberto Fernandez", - "handicap": "" - }, - { - "id": "713505983", - "odds": "1.363", - "name": "FT Result: Espanyol", - "handicap": "" - }, - { - "id": "818161086", - "odds": "1.909", - "name": "Javi Puado: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818161150", - "odds": "2.100", - "name": "Roberto Fernandez: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "713505983", - "odds": "1.363", - "name": "FT Result: Espanyol", - "handicap": "" - }, - { - "id": "818223413", - "odds": "3.000", - "name": "Antoniu Roca: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810882878", - "odds": "2.300", - "name": "Eduardo Exposito to Score or Assist", - "handicap": "" - }, - { - "id": "810785073", - "odds": "2.100", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818165373", - "odds": "2.100", - "name": "Alberto Moleiro: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818223267", - "odds": "1.200", - "name": "Javi Puado: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713505993", - "odds": "7.500", - "name": "FT Result: Las Palmas", - "handicap": "" - }, - { - "id": "813197755", - "odds": "1.300", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "810787654", - "odds": "1.800", - "name": "Over 2 Goals", - "handicap": "2" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-21T14:16:05+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977005", - "FI": "174206938", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-21T14:01:48+03:00", - "Odds": [ - { - "id": "810793474", - "odds": "4.500", - "name": "Javi Puado", - "handicap": "" - }, - { - "id": "810793926", - "odds": "9.500", - "name": "Roberto Fernandez", - "handicap": "" - }, - { - "id": "713505983", - "odds": "1.363", - "name": "FT Result: Espanyol", - "handicap": "" - }, - { - "id": "818161086", - "odds": "1.909", - "name": "Javi Puado: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818161150", - "odds": "2.100", - "name": "Roberto Fernandez: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "713505983", - "odds": "1.363", - "name": "FT Result: Espanyol", - "handicap": "" - }, - { - "id": "818223413", - "odds": "3.000", - "name": "Antoniu Roca: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810882878", - "odds": "2.300", - "name": "Eduardo Exposito to Score or Assist", - "handicap": "" - }, - { - "id": "810785073", - "odds": "2.100", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818165373", - "odds": "2.100", - "name": "Alberto Moleiro: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818223267", - "odds": "1.200", - "name": "Javi Puado: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713505993", - "odds": "7.500", - "name": "FT Result: Las Palmas", - "handicap": "" - }, - { - "id": "813197755", - "odds": "1.300", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "810787654", - "odds": "1.800", - "name": "Over 2 Goals", - "handicap": "2" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-21T14:16:45+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977003", - "FI": "174206914", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-21T14:10:13+03:00", - "Odds": [ - { - "id": "810782401", - "odds": "6.500", - "name": "Ante Budimir", - "handicap": "" - }, - { - "id": "810782255", - "odds": "17.000", - "name": "Jon Guridi", - "handicap": "" - }, - { - "id": "713504570", - "odds": "2.375", - "name": "FT Result: Osasuna", - "handicap": "" - }, - { - "id": "818200891", - "odds": "1.615", - "name": "Ante Budimir: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810881584", - "odds": "1.833", - "name": "Ante Budimir to Score or Assist", - "handicap": "" - }, - { - "id": "713504562", - "odds": "3.100", - "name": "FT Result: CD Alaves", - "handicap": "" - }, - { - "id": "818200816", - "odds": "1.615", - "name": "Carlos Vicente: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "810881581", - "odds": "3.500", - "name": "Jon Guridi to Score or Assist", - "handicap": "" - }, - { - "id": "810778158", - "odds": "4.333", - "name": "Osasuna to Score in Both Halves", - "handicap": "" - }, - { - "id": "810881558", - "odds": "2.200", - "name": "Bryan Zaragoza to Score or Assist", - "handicap": "" - }, - { - "id": "810881580", - "odds": "3.400", - "name": "Aimar Oroz to Score or Assist", - "handicap": "" - }, - { - "id": "713504562", - "odds": "3.100", - "name": "FT Result: CD Alaves", - "handicap": "" - }, - { - "id": "810777871", - "odds": "2.000", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "813199262", - "odds": "1.285", - "name": "Over 7 Corners", - "handicap": "7.0" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-21T14:16:50+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977007", - "FI": "174206951", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-21T14:16:34+03:00", - "Odds": [ - { - "id": "810801158", - "odds": "9.000", - "name": "Williot Swedberg", - "handicap": "" - }, - { - "id": "810795373", - "odds": "2.875", - "name": "1", - "handicap": "" - }, - { - "id": "713507435", - "odds": "1.850", - "name": "FT Result: Celta Vigo", - "handicap": "" - }, - { - "id": "818234792", - "odds": "1.833", - "name": "Fernando Lopez: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818235097", - "odds": "1.400", - "name": "Williot Swedberg: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "810796354", - "odds": "1.950", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818233069", - "odds": "2.375", - "name": "Moya Borja Mayoral: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818272629", - "odds": "3.500", - "name": "Pablo Duran: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "713507435", - "odds": "1.850", - "name": "FT Result: Celta Vigo", - "handicap": "" - }, - { - "id": "810884551", - "odds": "3.100", - "name": "Oscar Mingueza to Score or Assist", - "handicap": "" - }, - { - "id": "818234750", - "odds": "3.500", - "name": "Beltran Fran: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713507421", - "odds": "4.200", - "name": "FT Result: Getafe", - "handicap": "" - }, - { - "id": "810795706", - "odds": "2.100", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813201935", - "odds": "1.533", - "name": "Over 7 Corners", - "handicap": "7.0" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-21T14:16:50+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977007", - "FI": "174206951", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-21T14:16:34+03:00", - "Odds": [ - { - "id": "810801158", - "odds": "9.000", - "name": "Williot Swedberg", - "handicap": "" - }, - { - "id": "810795373", - "odds": "2.875", - "name": "1", - "handicap": "" - }, - { - "id": "713507435", - "odds": "1.850", - "name": "FT Result: Celta Vigo", - "handicap": "" - }, - { - "id": "818234792", - "odds": "1.833", - "name": "Fernando Lopez: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818235097", - "odds": "1.400", - "name": "Williot Swedberg: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "810796354", - "odds": "1.950", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818233069", - "odds": "2.375", - "name": "Moya Borja Mayoral: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818272629", - "odds": "3.500", - "name": "Pablo Duran: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "713507435", - "odds": "1.850", - "name": "FT Result: Celta Vigo", - "handicap": "" - }, - { - "id": "810884551", - "odds": "3.100", - "name": "Oscar Mingueza to Score or Assist", - "handicap": "" - }, - { - "id": "818234750", - "odds": "3.500", - "name": "Beltran Fran: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713507421", - "odds": "4.200", - "name": "FT Result: Getafe", - "handicap": "" - }, - { - "id": "810795706", - "odds": "2.100", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813201935", - "odds": "1.533", - "name": "Over 7 Corners", - "handicap": "7.0" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-21T14:16:57+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977008", - "FI": "174206957", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-21T14:15:15+03:00", - "Odds": [ - { - "id": "810830891", - "odds": "8.500", - "name": "Isi Palazon", - "handicap": "" - }, - { - "id": "810826957", - "odds": "4.000", - "name": "2", - "handicap": "" - }, - { - "id": "713507997", - "odds": "1.500", - "name": "FT Result: Rayo Vallecano", - "handicap": "" - }, - { - "id": "810911970", - "odds": "2.300", - "name": "Jorge De Frutos to Score or Assist", - "handicap": "" - }, - { - "id": "818242351", - "odds": "2.000", - "name": "Isi Palazon: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810827485", - "odds": "2.250", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818248799", - "odds": "3.250", - "name": "Sergi Darder: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818300359", - "odds": "1.222", - "name": "Isi Palazon: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "810827053", - "odds": "2.300", - "name": "HT: Rayo Vallecano \u2013 FT: Rayo Vallecano", - "handicap": "" - }, - { - "id": "810827602", - "odds": "2.750", - "name": "Rayo Vallecano to Score in Both Halves", - "handicap": "" - }, - { - "id": "810830483", - "odds": "4.333", - "name": "Adrian Embarba to Score", - "handicap": "" - }, - { - "id": "713508001", - "odds": "6.000", - "name": "FT Result: Mallorca", - "handicap": "" - }, - { - "id": "810827203", - "odds": "2.200", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813203878", - "odds": "1.400", - "name": "Over 7 Corners", - "handicap": "7.0" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-21T14:16:57+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977008", - "FI": "174206957", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-21T14:15:15+03:00", - "Odds": [ - { - "id": "810830891", - "odds": "8.500", - "name": "Isi Palazon", - "handicap": "" - }, - { - "id": "810826957", - "odds": "4.000", - "name": "2", - "handicap": "" - }, - { - "id": "713507997", - "odds": "1.500", - "name": "FT Result: Rayo Vallecano", - "handicap": "" - }, - { - "id": "810911970", - "odds": "2.300", - "name": "Jorge De Frutos to Score or Assist", - "handicap": "" - }, - { - "id": "818242351", - "odds": "2.000", - "name": "Isi Palazon: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810827485", - "odds": "2.250", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818248799", - "odds": "3.250", - "name": "Sergi Darder: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818300359", - "odds": "1.222", - "name": "Isi Palazon: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "810827053", - "odds": "2.300", - "name": "HT: Rayo Vallecano \u2013 FT: Rayo Vallecano", - "handicap": "" - }, - { - "id": "810827602", - "odds": "2.750", - "name": "Rayo Vallecano to Score in Both Halves", - "handicap": "" - }, - { - "id": "810830483", - "odds": "4.333", - "name": "Adrian Embarba to Score", - "handicap": "" - }, - { - "id": "713508001", - "odds": "6.000", - "name": "FT Result: Mallorca", - "handicap": "" - }, - { - "id": "810827203", - "odds": "2.200", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813203878", - "odds": "1.400", - "name": "Over 7 Corners", - "handicap": "7.0" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-21T14:19:05+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9016963", - "FI": "173826315", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-21T14:13:11+03:00", - "Odds": [ - { - "id": "807193833", - "odds": "10.000", - "name": "Virgil van Dijk", - "handicap": "" - }, - { - "id": "807193986", - "odds": "11.000", - "name": "Luis Diaz", - "handicap": "" - }, - { - "id": "661805323", - "odds": "1.380", - "name": "FT Result: Liverpool", - "handicap": "" - }, - { - "id": "807192225", - "odds": "1.666", - "name": "Mohamed Salah to Score", - "handicap": "" - }, - { - "id": "807197558", - "odds": "2.750", - "name": "Mohamed Salah to Assist", - "handicap": "" - }, - { - "id": "804656664", - "odds": "2.000", - "name": "HT: Liverpool \u2013 FT: Liverpool", - "handicap": "" - }, - { - "id": "819075054", - "odds": "1.666", - "name": "Mohamed Salah: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "819074957", - "odds": "2.200", - "name": "Cody Gakpo: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "819081389", - "odds": "1.444", - "name": "Eberechi Eze: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "819453064", - "odds": "1.250", - "name": "Luis Diaz: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "819075012", - "odds": "1.533", - "name": "Dominik Szoboszlai: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "804658978", - "odds": "3.000", - "name": "Liverpool to Win to Nil", - "handicap": "" - }, - { - "id": "818998267", - "odds": "1.222", - "name": "Most Corners: Liverpool", - "handicap": "" - }, - { - "id": "819451925", - "odds": "1.300", - "name": "Most Shots on Target: Liverpool", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-21T14:20:35+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977001", - "FI": "174206898", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-21T14:19:30+03:00", - "Odds": [ - { - "id": "810769529", - "odds": "7.000", - "name": "Robert Lewandowski", - "handicap": "" - }, - { - "id": "810770215", - "odds": "9.500", - "name": "Lamine Yamal", - "handicap": "" - }, - { - "id": "713503841", - "odds": "2.050", - "name": "FT Result: Barcelona", - "handicap": "" - }, - { - "id": "818283162", - "odds": "2.000", - "name": "Robert Lewandowski: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810767797", - "odds": "2.100", - "name": "Robert Lewandowski to Score", - "handicap": "" - }, - { - "id": "810764064", - "odds": "1.444", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818280046", - "odds": "2.250", - "name": "Gorka Guruzeta: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818338019", - "odds": "2.750", - "name": "Lamine Yamal: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "713503841", - "odds": "2.050", - "name": "FT Result: Barcelona", - "handicap": "" - }, - { - "id": "818283150", - "odds": "2.000", - "name": "Raphinha: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810774636", - "odds": "1.800", - "name": "Lamine Yamal to Score or Assist", - "handicap": "" - }, - { - "id": "713503825", - "odds": "3.300", - "name": "FT Result: Athletic Bilbao", - "handicap": "" - }, - { - "id": "810774497", - "odds": "2.200", - "name": "Oihan Sancet to Score or Assist", - "handicap": "" - }, - { - "id": "813208230", - "odds": "1.285", - "name": "Over 7 Corners", - "handicap": "7.0" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-21T14:20:53+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9929184", - "FI": "174363978", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-21T14:14:17+03:00", - "Odds": [ - { - "id": "774550908", - "odds": "21.000", - "name": "Antony", - "handicap": "" - }, - { - "id": "774550887", - "odds": "15.000", - "name": "Nicolas Jackson", - "handicap": "" - }, - { - "id": "734595170", - "odds": "1.363", - "name": "Chelsea to Lift the Trophy", - "handicap": "" - }, - { - "id": "734591996", - "odds": "1.833", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "774549605", - "odds": "2.300", - "name": "Cole Palmer to Score", - "handicap": "" - }, - { - "id": "774549558", - "odds": "2.875", - "name": "Nicolas Jackson to Score", - "handicap": "" - }, - { - "id": "734595170", - "odds": "1.363", - "name": "Chelsea to Lift the Trophy", - "handicap": "" - }, - { - "id": "734590525", - "odds": "2.000", - "name": "Over 2 Goals", - "handicap": "2" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-21T14:20:57+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9924545", - "FI": "174307725", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-21T14:20:44+03:00", - "Odds": [ - { - "id": "726811888", - "odds": "13.000", - "name": "Lautaro Martinez", - "handicap": "" - }, - { - "id": "726811982", - "odds": "11.000", - "name": "Khvicha Kvaratskhelia", - "handicap": "" - }, - { - "id": "726816128", - "odds": "1.666", - "name": "PSG to Lift the Trophy", - "handicap": "" - }, - { - "id": "726811208", - "odds": "3.250", - "name": "Bradley Barcola to Score", - "handicap": "" - }, - { - "id": "726806476", - "odds": "1.909", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "726816130", - "odds": "2.200", - "name": "Inter Milan to Lift the Trophy", - "handicap": "" - }, - { - "id": "726811216", - "odds": "3.250", - "name": "Marcus Thuram to Score", - "handicap": "" - }, - { - "id": "726807442", - "odds": "1.700", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "726816349", - "odds": "2.250", - "name": "Lautaro Martinez to Score or Assist", - "handicap": "" - }, - { - "id": "726816313", - "odds": "2.000", - "name": "Khvicha Kvaratskhelia to Score or Assist", - "handicap": "" - }, - { - "id": "726816123", - "odds": "2.250", - "name": "PSG to Win in 90 Mins", - "handicap": "" - }, - { - "id": "726807627", - "odds": "3.400", - "name": "PSG to Score in Both Halves", - "handicap": "" - }, - { - "id": "726811207", - "odds": "4.000", - "name": "Desire Doue to Score", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-21T14:31:06+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977004", - "FI": "174206928", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-21T14:26:43+03:00", - "Odds": [ - { - "id": "810825615", - "odds": "10.000", - "name": "Daniel Raba", - "handicap": "" - }, - { - "id": "810824112", - "odds": "17.000", - "name": "Juan Latasa", - "handicap": "" - }, - { - "id": "713505303", - "odds": "1.300", - "name": "FT Result: Leganes", - "handicap": "" - }, - { - "id": "818170790", - "odds": "1.833", - "name": "Daniel Raba: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818170803", - "odds": "1.666", - "name": "Diego Garcia: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810815575", - "odds": "1.833", - "name": "HT: Leganes \u2013 FT: Leganes", - "handicap": "" - }, - { - "id": "810816336", - "odds": "2.000", - "name": "Leganes to Score in Both Halves", - "handicap": "" - }, - { - "id": "810822897", - "odds": "3.000", - "name": "Juan Cruz to Score", - "handicap": "" - }, - { - "id": "810816138", - "odds": "2.100", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818174813", - "odds": "2.000", - "name": "Juan Latasa: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818170892", - "odds": "1.533", - "name": "Seydouba Cisse: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713505316", - "odds": "8.500", - "name": "FT Result: Valladolid", - "handicap": "" - }, - { - "id": "810818057", - "odds": "1.666", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813198253", - "odds": "1.400", - "name": "Over 7 Corners", - "handicap": "7.0" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-21T14:31:08+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977005", - "FI": "174206938", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-21T14:30:20+03:00", - "Odds": [ - { - "id": "810793474", - "odds": "4.500", - "name": "Javi Puado", - "handicap": "" - }, - { - "id": "810793926", - "odds": "9.500", - "name": "Roberto Fernandez", - "handicap": "" - }, - { - "id": "713505983", - "odds": "1.363", - "name": "FT Result: Espanyol", - "handicap": "" - }, - { - "id": "818161086", - "odds": "1.909", - "name": "Javi Puado: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818161150", - "odds": "2.100", - "name": "Roberto Fernandez: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "713505983", - "odds": "1.363", - "name": "FT Result: Espanyol", - "handicap": "" - }, - { - "id": "818223413", - "odds": "2.750", - "name": "Antoniu Roca: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810882878", - "odds": "2.300", - "name": "Eduardo Exposito to Score or Assist", - "handicap": "" - }, - { - "id": "810785073", - "odds": "2.100", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818165373", - "odds": "2.100", - "name": "Alberto Moleiro: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818223267", - "odds": "1.200", - "name": "Javi Puado: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713505993", - "odds": "7.500", - "name": "FT Result: Las Palmas", - "handicap": "" - }, - { - "id": "813197755", - "odds": "1.300", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "810787654", - "odds": "1.800", - "name": "Over 2 Goals", - "handicap": "2" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-21T14:31:08+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977005", - "FI": "174206938", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-21T14:30:20+03:00", - "Odds": [ - { - "id": "810793474", - "odds": "4.500", - "name": "Javi Puado", - "handicap": "" - }, - { - "id": "810793926", - "odds": "9.500", - "name": "Roberto Fernandez", - "handicap": "" - }, - { - "id": "713505983", - "odds": "1.363", - "name": "FT Result: Espanyol", - "handicap": "" - }, - { - "id": "818161086", - "odds": "1.909", - "name": "Javi Puado: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818161150", - "odds": "2.100", - "name": "Roberto Fernandez: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "713505983", - "odds": "1.363", - "name": "FT Result: Espanyol", - "handicap": "" - }, - { - "id": "818223413", - "odds": "2.750", - "name": "Antoniu Roca: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810882878", - "odds": "2.300", - "name": "Eduardo Exposito to Score or Assist", - "handicap": "" - }, - { - "id": "810785073", - "odds": "2.100", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818165373", - "odds": "2.100", - "name": "Alberto Moleiro: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818223267", - "odds": "1.200", - "name": "Javi Puado: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713505993", - "odds": "7.500", - "name": "FT Result: Las Palmas", - "handicap": "" - }, - { - "id": "813197755", - "odds": "1.300", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "810787654", - "odds": "1.800", - "name": "Over 2 Goals", - "handicap": "2" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-21T14:31:27+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977003", - "FI": "174206914", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-21T14:30:39+03:00", - "Odds": [ - { - "id": "810782401", - "odds": "6.500", - "name": "Ante Budimir", - "handicap": "" - }, - { - "id": "810782255", - "odds": "17.000", - "name": "Jon Guridi", - "handicap": "" - }, - { - "id": "713504570", - "odds": "2.375", - "name": "FT Result: Osasuna", - "handicap": "" - }, - { - "id": "818200891", - "odds": "1.666", - "name": "Ante Budimir: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810881584", - "odds": "1.833", - "name": "Ante Budimir to Score or Assist", - "handicap": "" - }, - { - "id": "713504562", - "odds": "3.100", - "name": "FT Result: CD Alaves", - "handicap": "" - }, - { - "id": "818200816", - "odds": "1.615", - "name": "Carlos Vicente: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "810881581", - "odds": "3.500", - "name": "Jon Guridi to Score or Assist", - "handicap": "" - }, - { - "id": "810778158", - "odds": "4.333", - "name": "Osasuna to Score in Both Halves", - "handicap": "" - }, - { - "id": "810881558", - "odds": "2.200", - "name": "Bryan Zaragoza to Score or Assist", - "handicap": "" - }, - { - "id": "810881580", - "odds": "3.400", - "name": "Aimar Oroz to Score or Assist", - "handicap": "" - }, - { - "id": "713504562", - "odds": "3.100", - "name": "FT Result: CD Alaves", - "handicap": "" - }, - { - "id": "810777871", - "odds": "2.000", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "813199262", - "odds": "1.285", - "name": "Over 7 Corners", - "handicap": "7.0" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-21T14:31:30+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977007", - "FI": "174206951", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-21T14:30:19+03:00", - "Odds": [ - { - "id": "810801158", - "odds": "9.000", - "name": "Williot Swedberg", - "handicap": "" - }, - { - "id": "810795373", - "odds": "2.875", - "name": "1", - "handicap": "" - }, - { - "id": "713507435", - "odds": "1.850", - "name": "FT Result: Celta Vigo", - "handicap": "" - }, - { - "id": "818234792", - "odds": "1.833", - "name": "Fernando Lopez: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818235097", - "odds": "1.400", - "name": "Williot Swedberg: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "810796354", - "odds": "1.950", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818233069", - "odds": "2.375", - "name": "Moya Borja Mayoral: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818272629", - "odds": "3.500", - "name": "Pablo Duran: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "713507435", - "odds": "1.850", - "name": "FT Result: Celta Vigo", - "handicap": "" - }, - { - "id": "810884551", - "odds": "3.100", - "name": "Oscar Mingueza to Score or Assist", - "handicap": "" - }, - { - "id": "818234750", - "odds": "3.500", - "name": "Beltran Fran: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713507421", - "odds": "4.200", - "name": "FT Result: Getafe", - "handicap": "" - }, - { - "id": "810795706", - "odds": "2.100", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813201935", - "odds": "1.533", - "name": "Over 7 Corners", - "handicap": "7.0" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-21T14:31:30+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977007", - "FI": "174206951", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-21T14:30:19+03:00", - "Odds": [ - { - "id": "810801158", - "odds": "9.000", - "name": "Williot Swedberg", - "handicap": "" - }, - { - "id": "810795373", - "odds": "2.875", - "name": "1", - "handicap": "" - }, - { - "id": "713507435", - "odds": "1.850", - "name": "FT Result: Celta Vigo", - "handicap": "" - }, - { - "id": "818234792", - "odds": "1.833", - "name": "Fernando Lopez: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818235097", - "odds": "1.400", - "name": "Williot Swedberg: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "810796354", - "odds": "1.950", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818233069", - "odds": "2.375", - "name": "Moya Borja Mayoral: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818272629", - "odds": "3.500", - "name": "Pablo Duran: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "713507435", - "odds": "1.850", - "name": "FT Result: Celta Vigo", - "handicap": "" - }, - { - "id": "810884551", - "odds": "3.100", - "name": "Oscar Mingueza to Score or Assist", - "handicap": "" - }, - { - "id": "818234750", - "odds": "3.500", - "name": "Beltran Fran: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713507421", - "odds": "4.200", - "name": "FT Result: Getafe", - "handicap": "" - }, - { - "id": "810795706", - "odds": "2.100", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813201935", - "odds": "1.533", - "name": "Over 7 Corners", - "handicap": "7.0" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-21T14:31:33+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977008", - "FI": "174206957", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-21T14:30:15+03:00", - "Odds": [ - { - "id": "810830891", - "odds": "8.500", - "name": "Isi Palazon", - "handicap": "" - }, - { - "id": "810826957", - "odds": "4.000", - "name": "2", - "handicap": "" - }, - { - "id": "713507997", - "odds": "1.500", - "name": "FT Result: Rayo Vallecano", - "handicap": "" - }, - { - "id": "810911970", - "odds": "2.300", - "name": "Jorge De Frutos to Score or Assist", - "handicap": "" - }, - { - "id": "818242351", - "odds": "2.000", - "name": "Isi Palazon: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810827485", - "odds": "2.250", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818248799", - "odds": "3.250", - "name": "Sergi Darder: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818300359", - "odds": "1.222", - "name": "Isi Palazon: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "810827053", - "odds": "2.300", - "name": "HT: Rayo Vallecano \u2013 FT: Rayo Vallecano", - "handicap": "" - }, - { - "id": "810827602", - "odds": "2.750", - "name": "Rayo Vallecano to Score in Both Halves", - "handicap": "" - }, - { - "id": "810830483", - "odds": "4.333", - "name": "Adrian Embarba to Score", - "handicap": "" - }, - { - "id": "713508001", - "odds": "6.000", - "name": "FT Result: Mallorca", - "handicap": "" - }, - { - "id": "810827203", - "odds": "2.200", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813203878", - "odds": "1.400", - "name": "Over 7 Corners", - "handicap": "7.0" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-21T14:31:33+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977008", - "FI": "174206957", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-21T14:30:15+03:00", - "Odds": [ - { - "id": "810830891", - "odds": "8.500", - "name": "Isi Palazon", - "handicap": "" - }, - { - "id": "810826957", - "odds": "4.000", - "name": "2", - "handicap": "" - }, - { - "id": "713507997", - "odds": "1.500", - "name": "FT Result: Rayo Vallecano", - "handicap": "" - }, - { - "id": "810911970", - "odds": "2.300", - "name": "Jorge De Frutos to Score or Assist", - "handicap": "" - }, - { - "id": "818242351", - "odds": "2.000", - "name": "Isi Palazon: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810827485", - "odds": "2.250", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818248799", - "odds": "3.250", - "name": "Sergi Darder: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818300359", - "odds": "1.222", - "name": "Isi Palazon: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "810827053", - "odds": "2.300", - "name": "HT: Rayo Vallecano \u2013 FT: Rayo Vallecano", - "handicap": "" - }, - { - "id": "810827602", - "odds": "2.750", - "name": "Rayo Vallecano to Score in Both Halves", - "handicap": "" - }, - { - "id": "810830483", - "odds": "4.333", - "name": "Adrian Embarba to Score", - "handicap": "" - }, - { - "id": "713508001", - "odds": "6.000", - "name": "FT Result: Mallorca", - "handicap": "" - }, - { - "id": "810827203", - "odds": "2.200", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813203878", - "odds": "1.400", - "name": "Over 7 Corners", - "handicap": "7.0" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-21T14:32:37+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977006", - "FI": "174206945", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-21T14:30:50+03:00", - "Odds": [ - { - "id": "810813776", - "odds": "9.000", - "name": "Alexander Sorloth", - "handicap": "" - }, - { - "id": "810813006", - "odds": "9.000", - "name": "Cristhian Stuani", - "handicap": "" - }, - { - "id": "713506855", - "odds": "1.833", - "name": "FT Result: Atletico Madrid", - "handicap": "" - }, - { - "id": "818257809", - "odds": "2.100", - "name": "Julian Alvarez: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810899950", - "odds": "1.666", - "name": "Julian Alvarez to Score or Assist", - "handicap": "" - }, - { - "id": "713506855", - "odds": "1.833", - "name": "FT Result: Atletico Madrid", - "handicap": "" - }, - { - "id": "810900002", - "odds": "1.727", - "name": "Alexander Sorloth to Score or Assist", - "handicap": "" - }, - { - "id": "818257762", - "odds": "2.100", - "name": "Alexander Sorloth: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810806697", - "odds": "1.533", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818257811", - "odds": "2.750", - "name": "Samuel Lino: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818306182", - "odds": "3.250", - "name": "Cristhian Stuani: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "713506844", - "odds": "4.200", - "name": "FT Result: Girona", - "handicap": "" - }, - { - "id": "810809282", - "odds": "1.615", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813205972", - "odds": "1.363", - "name": "Over 7 Corners", - "handicap": "7.0" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-21T14:32:37+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977006", - "FI": "174206945", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-21T14:30:50+03:00", - "Odds": [ - { - "id": "810813776", - "odds": "9.000", - "name": "Alexander Sorloth", - "handicap": "" - }, - { - "id": "810813006", - "odds": "9.000", - "name": "Cristhian Stuani", - "handicap": "" - }, - { - "id": "713506855", - "odds": "1.833", - "name": "FT Result: Atletico Madrid", - "handicap": "" - }, - { - "id": "818257809", - "odds": "2.100", - "name": "Julian Alvarez: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810899950", - "odds": "1.666", - "name": "Julian Alvarez to Score or Assist", - "handicap": "" - }, - { - "id": "713506855", - "odds": "1.833", - "name": "FT Result: Atletico Madrid", - "handicap": "" - }, - { - "id": "810900002", - "odds": "1.727", - "name": "Alexander Sorloth to Score or Assist", - "handicap": "" - }, - { - "id": "818257762", - "odds": "2.100", - "name": "Alexander Sorloth: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810806697", - "odds": "1.533", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818257811", - "odds": "2.750", - "name": "Samuel Lino: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818306182", - "odds": "3.250", - "name": "Cristhian Stuani: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "713506844", - "odds": "4.200", - "name": "FT Result: Girona", - "handicap": "" - }, - { - "id": "810809282", - "odds": "1.615", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813205972", - "odds": "1.363", - "name": "Over 7 Corners", - "handicap": "7.0" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-21T14:33:18+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9016963", - "FI": "173826315", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-21T14:31:01+03:00", - "Odds": [ - { - "id": "807193833", - "odds": "10.000", - "name": "Virgil van Dijk", - "handicap": "" - }, - { - "id": "807193986", - "odds": "11.000", - "name": "Luis Diaz", - "handicap": "" - }, - { - "id": "661805323", - "odds": "1.380", - "name": "FT Result: Liverpool", - "handicap": "" - }, - { - "id": "807192225", - "odds": "1.666", - "name": "Mohamed Salah to Score", - "handicap": "" - }, - { - "id": "807197558", - "odds": "2.750", - "name": "Mohamed Salah to Assist", - "handicap": "" - }, - { - "id": "804656664", - "odds": "2.000", - "name": "HT: Liverpool \u2013 FT: Liverpool", - "handicap": "" - }, - { - "id": "819075054", - "odds": "1.666", - "name": "Mohamed Salah: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "819074957", - "odds": "2.200", - "name": "Cody Gakpo: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "819081389", - "odds": "1.444", - "name": "Eberechi Eze: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "819453064", - "odds": "1.250", - "name": "Luis Diaz: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "819075012", - "odds": "1.533", - "name": "Dominik Szoboszlai: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "804658978", - "odds": "3.000", - "name": "Liverpool to Win to Nil", - "handicap": "" - }, - { - "id": "818998267", - "odds": "1.222", - "name": "Most Corners: Liverpool", - "handicap": "" - }, - { - "id": "819451925", - "odds": "1.300", - "name": "Most Shots on Target: Liverpool", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-21T14:34:56+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977001", - "FI": "174206898", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-21T14:29:41+03:00", - "Odds": [ - { - "id": "810769529", - "odds": "7.000", - "name": "Robert Lewandowski", - "handicap": "" - }, - { - "id": "810770215", - "odds": "9.500", - "name": "Lamine Yamal", - "handicap": "" - }, - { - "id": "713503841", - "odds": "2.050", - "name": "FT Result: Barcelona", - "handicap": "" - }, - { - "id": "818283162", - "odds": "2.000", - "name": "Robert Lewandowski: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810767797", - "odds": "2.100", - "name": "Robert Lewandowski to Score", - "handicap": "" - }, - { - "id": "810764064", - "odds": "1.444", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818280046", - "odds": "2.250", - "name": "Gorka Guruzeta: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818338019", - "odds": "2.750", - "name": "Lamine Yamal: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "713503841", - "odds": "2.050", - "name": "FT Result: Barcelona", - "handicap": "" - }, - { - "id": "818283150", - "odds": "2.000", - "name": "Raphinha: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810774636", - "odds": "1.800", - "name": "Lamine Yamal to Score or Assist", - "handicap": "" - }, - { - "id": "713503825", - "odds": "3.300", - "name": "FT Result: Athletic Bilbao", - "handicap": "" - }, - { - "id": "810774497", - "odds": "2.200", - "name": "Oihan Sancet to Score or Assist", - "handicap": "" - }, - { - "id": "813208230", - "odds": "1.285", - "name": "Over 7 Corners", - "handicap": "7.0" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-21T14:35:30+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9929184", - "FI": "174363978", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-21T14:34:51+03:00", - "Odds": [ - { - "id": "774550908", - "odds": "21.000", - "name": "Antony", - "handicap": "" - }, - { - "id": "774550887", - "odds": "15.000", - "name": "Nicolas Jackson", - "handicap": "" - }, - { - "id": "734595170", - "odds": "1.363", - "name": "Chelsea to Lift the Trophy", - "handicap": "" - }, - { - "id": "734591996", - "odds": "1.833", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "774549605", - "odds": "2.300", - "name": "Cole Palmer to Score", - "handicap": "" - }, - { - "id": "774549558", - "odds": "2.875", - "name": "Nicolas Jackson to Score", - "handicap": "" - }, - { - "id": "734595170", - "odds": "1.363", - "name": "Chelsea to Lift the Trophy", - "handicap": "" - }, - { - "id": "734590525", - "odds": "2.000", - "name": "Over 2 Goals", - "handicap": "2" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-21T14:35:36+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9924545", - "FI": "174307725", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-21T14:30:21+03:00", - "Odds": [ - { - "id": "726811888", - "odds": "13.000", - "name": "Lautaro Martinez", - "handicap": "" - }, - { - "id": "726811982", - "odds": "11.000", - "name": "Khvicha Kvaratskhelia", - "handicap": "" - }, - { - "id": "726816128", - "odds": "1.666", - "name": "PSG to Lift the Trophy", - "handicap": "" - }, - { - "id": "726811208", - "odds": "3.250", - "name": "Bradley Barcola to Score", - "handicap": "" - }, - { - "id": "726806476", - "odds": "1.909", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "726816130", - "odds": "2.200", - "name": "Inter Milan to Lift the Trophy", - "handicap": "" - }, - { - "id": "726811216", - "odds": "3.250", - "name": "Marcus Thuram to Score", - "handicap": "" - }, - { - "id": "726807442", - "odds": "1.700", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "726816349", - "odds": "2.250", - "name": "Lautaro Martinez to Score or Assist", - "handicap": "" - }, - { - "id": "726816313", - "odds": "2.000", - "name": "Khvicha Kvaratskhelia to Score or Assist", - "handicap": "" - }, - { - "id": "726816123", - "odds": "2.250", - "name": "PSG to Win in 90 Mins", - "handicap": "" - }, - { - "id": "726807627", - "odds": "3.400", - "name": "PSG to Score in Both Halves", - "handicap": "" - }, - { - "id": "726811207", - "odds": "4.000", - "name": "Desire Doue to Score", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-21T14:46:17+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977004", - "FI": "174206928", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-21T14:44:55+03:00", - "Odds": [ - { - "id": "810825615", - "odds": "10.000", - "name": "Daniel Raba", - "handicap": "" - }, - { - "id": "810824112", - "odds": "17.000", - "name": "Juan Latasa", - "handicap": "" - }, - { - "id": "713505303", - "odds": "1.300", - "name": "FT Result: Leganes", - "handicap": "" - }, - { - "id": "818170790", - "odds": "1.833", - "name": "Daniel Raba: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818170803", - "odds": "1.666", - "name": "Diego Garcia: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810815575", - "odds": "1.833", - "name": "HT: Leganes \u2013 FT: Leganes", - "handicap": "" - }, - { - "id": "810816336", - "odds": "2.000", - "name": "Leganes to Score in Both Halves", - "handicap": "" - }, - { - "id": "810822897", - "odds": "3.000", - "name": "Juan Cruz to Score", - "handicap": "" - }, - { - "id": "810816138", - "odds": "2.100", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818174813", - "odds": "2.000", - "name": "Juan Latasa: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818170892", - "odds": "1.533", - "name": "Seydouba Cisse: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713505316", - "odds": "8.500", - "name": "FT Result: Valladolid", - "handicap": "" - }, - { - "id": "810818057", - "odds": "1.666", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813198253", - "odds": "1.400", - "name": "Over 7 Corners", - "handicap": "7.0" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-21T14:46:28+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977005", - "FI": "174206938", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-21T14:42:31+03:00", - "Odds": [ - { - "id": "810793474", - "odds": "4.500", - "name": "Javi Puado", - "handicap": "" - }, - { - "id": "810793926", - "odds": "9.000", - "name": "Roberto Fernandez", - "handicap": "" - }, - { - "id": "713505983", - "odds": "1.363", - "name": "FT Result: Espanyol", - "handicap": "" - }, - { - "id": "818161086", - "odds": "1.909", - "name": "Javi Puado: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818161150", - "odds": "2.100", - "name": "Roberto Fernandez: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "713505983", - "odds": "1.363", - "name": "FT Result: Espanyol", - "handicap": "" - }, - { - "id": "818223413", - "odds": "2.750", - "name": "Antoniu Roca: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810882878", - "odds": "2.300", - "name": "Eduardo Exposito to Score or Assist", - "handicap": "" - }, - { - "id": "810785073", - "odds": "2.100", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818165373", - "odds": "2.100", - "name": "Alberto Moleiro: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818223267", - "odds": "1.200", - "name": "Javi Puado: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713505993", - "odds": "7.500", - "name": "FT Result: Las Palmas", - "handicap": "" - }, - { - "id": "813197755", - "odds": "1.300", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "810787654", - "odds": "1.800", - "name": "Over 2 Goals", - "handicap": "2" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-21T14:46:28+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977005", - "FI": "174206938", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-21T14:42:31+03:00", - "Odds": [ - { - "id": "810793474", - "odds": "4.500", - "name": "Javi Puado", - "handicap": "" - }, - { - "id": "810793926", - "odds": "9.000", - "name": "Roberto Fernandez", - "handicap": "" - }, - { - "id": "713505983", - "odds": "1.363", - "name": "FT Result: Espanyol", - "handicap": "" - }, - { - "id": "818161086", - "odds": "1.909", - "name": "Javi Puado: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818161150", - "odds": "2.100", - "name": "Roberto Fernandez: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "713505983", - "odds": "1.363", - "name": "FT Result: Espanyol", - "handicap": "" - }, - { - "id": "818223413", - "odds": "2.750", - "name": "Antoniu Roca: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810882878", - "odds": "2.300", - "name": "Eduardo Exposito to Score or Assist", - "handicap": "" - }, - { - "id": "810785073", - "odds": "2.100", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818165373", - "odds": "2.100", - "name": "Alberto Moleiro: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818223267", - "odds": "1.200", - "name": "Javi Puado: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713505993", - "odds": "7.500", - "name": "FT Result: Las Palmas", - "handicap": "" - }, - { - "id": "813197755", - "odds": "1.300", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "810787654", - "odds": "1.800", - "name": "Over 2 Goals", - "handicap": "2" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-21T14:46:47+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977003", - "FI": "174206914", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-21T14:45:23+03:00", - "Odds": [ - { - "id": "810782401", - "odds": "6.500", - "name": "Ante Budimir", - "handicap": "" - }, - { - "id": "810782255", - "odds": "17.000", - "name": "Jon Guridi", - "handicap": "" - }, - { - "id": "713504570", - "odds": "2.375", - "name": "FT Result: Osasuna", - "handicap": "" - }, - { - "id": "818200891", - "odds": "1.666", - "name": "Ante Budimir: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810881584", - "odds": "1.833", - "name": "Ante Budimir to Score or Assist", - "handicap": "" - }, - { - "id": "713504562", - "odds": "3.100", - "name": "FT Result: CD Alaves", - "handicap": "" - }, - { - "id": "818200816", - "odds": "1.615", - "name": "Carlos Vicente: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "810881581", - "odds": "3.500", - "name": "Jon Guridi to Score or Assist", - "handicap": "" - }, - { - "id": "810778158", - "odds": "4.333", - "name": "Osasuna to Score in Both Halves", - "handicap": "" - }, - { - "id": "810881558", - "odds": "2.200", - "name": "Bryan Zaragoza to Score or Assist", - "handicap": "" - }, - { - "id": "810881580", - "odds": "3.400", - "name": "Aimar Oroz to Score or Assist", - "handicap": "" - }, - { - "id": "713504562", - "odds": "3.100", - "name": "FT Result: CD Alaves", - "handicap": "" - }, - { - "id": "810777871", - "odds": "2.000", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "813199262", - "odds": "1.285", - "name": "Over 7 Corners", - "handicap": "7.0" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-21T14:46:56+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977007", - "FI": "174206951", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-21T14:45:45+03:00", - "Odds": [ - { - "id": "810801158", - "odds": "9.000", - "name": "Williot Swedberg", - "handicap": "" - }, - { - "id": "810795373", - "odds": "2.875", - "name": "1", - "handicap": "" - }, - { - "id": "713507435", - "odds": "1.850", - "name": "FT Result: Celta Vigo", - "handicap": "" - }, - { - "id": "818234792", - "odds": "1.833", - "name": "Fernando Lopez: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818235097", - "odds": "1.400", - "name": "Williot Swedberg: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "810796354", - "odds": "1.950", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818233069", - "odds": "2.375", - "name": "Moya Borja Mayoral: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818272629", - "odds": "3.500", - "name": "Pablo Duran: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "713507435", - "odds": "1.850", - "name": "FT Result: Celta Vigo", - "handicap": "" - }, - { - "id": "810884551", - "odds": "3.100", - "name": "Oscar Mingueza to Score or Assist", - "handicap": "" - }, - { - "id": "818234750", - "odds": "3.500", - "name": "Beltran Fran: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713507421", - "odds": "4.200", - "name": "FT Result: Getafe", - "handicap": "" - }, - { - "id": "810795706", - "odds": "2.100", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813201935", - "odds": "1.533", - "name": "Over 7 Corners", - "handicap": "7.0" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-21T14:46:56+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977007", - "FI": "174206951", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-21T14:45:45+03:00", - "Odds": [ - { - "id": "810801158", - "odds": "9.000", - "name": "Williot Swedberg", - "handicap": "" - }, - { - "id": "810795373", - "odds": "2.875", - "name": "1", - "handicap": "" - }, - { - "id": "713507435", - "odds": "1.850", - "name": "FT Result: Celta Vigo", - "handicap": "" - }, - { - "id": "818234792", - "odds": "1.833", - "name": "Fernando Lopez: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818235097", - "odds": "1.400", - "name": "Williot Swedberg: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "810796354", - "odds": "1.950", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818233069", - "odds": "2.375", - "name": "Moya Borja Mayoral: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818272629", - "odds": "3.500", - "name": "Pablo Duran: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "713507435", - "odds": "1.850", - "name": "FT Result: Celta Vigo", - "handicap": "" - }, - { - "id": "810884551", - "odds": "3.100", - "name": "Oscar Mingueza to Score or Assist", - "handicap": "" - }, - { - "id": "818234750", - "odds": "3.500", - "name": "Beltran Fran: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713507421", - "odds": "4.200", - "name": "FT Result: Getafe", - "handicap": "" - }, - { - "id": "810795706", - "odds": "2.100", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813201935", - "odds": "1.533", - "name": "Over 7 Corners", - "handicap": "7.0" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-21T14:46:57+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977008", - "FI": "174206957", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-21T14:45:56+03:00", - "Odds": [ - { - "id": "810830891", - "odds": "8.500", - "name": "Isi Palazon", - "handicap": "" - }, - { - "id": "810826957", - "odds": "4.000", - "name": "2", - "handicap": "" - }, - { - "id": "713507997", - "odds": "1.500", - "name": "FT Result: Rayo Vallecano", - "handicap": "" - }, - { - "id": "810911970", - "odds": "2.300", - "name": "Jorge De Frutos to Score or Assist", - "handicap": "" - }, - { - "id": "818242351", - "odds": "2.000", - "name": "Isi Palazon: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810827485", - "odds": "2.250", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818248799", - "odds": "3.250", - "name": "Sergi Darder: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818300359", - "odds": "1.222", - "name": "Isi Palazon: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "810827053", - "odds": "2.300", - "name": "HT: Rayo Vallecano \u2013 FT: Rayo Vallecano", - "handicap": "" - }, - { - "id": "810827602", - "odds": "2.750", - "name": "Rayo Vallecano to Score in Both Halves", - "handicap": "" - }, - { - "id": "810830483", - "odds": "4.333", - "name": "Adrian Embarba to Score", - "handicap": "" - }, - { - "id": "713508001", - "odds": "6.000", - "name": "FT Result: Mallorca", - "handicap": "" - }, - { - "id": "810827203", - "odds": "2.200", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813203878", - "odds": "1.400", - "name": "Over 7 Corners", - "handicap": "7.0" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-21T14:46:57+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977008", - "FI": "174206957", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-21T14:45:56+03:00", - "Odds": [ - { - "id": "810830891", - "odds": "8.500", - "name": "Isi Palazon", - "handicap": "" - }, - { - "id": "810826957", - "odds": "4.000", - "name": "2", - "handicap": "" - }, - { - "id": "713507997", - "odds": "1.500", - "name": "FT Result: Rayo Vallecano", - "handicap": "" - }, - { - "id": "810911970", - "odds": "2.300", - "name": "Jorge De Frutos to Score or Assist", - "handicap": "" - }, - { - "id": "818242351", - "odds": "2.000", - "name": "Isi Palazon: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810827485", - "odds": "2.250", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818248799", - "odds": "3.250", - "name": "Sergi Darder: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818300359", - "odds": "1.222", - "name": "Isi Palazon: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "810827053", - "odds": "2.300", - "name": "HT: Rayo Vallecano \u2013 FT: Rayo Vallecano", - "handicap": "" - }, - { - "id": "810827602", - "odds": "2.750", - "name": "Rayo Vallecano to Score in Both Halves", - "handicap": "" - }, - { - "id": "810830483", - "odds": "4.333", - "name": "Adrian Embarba to Score", - "handicap": "" - }, - { - "id": "713508001", - "odds": "6.000", - "name": "FT Result: Mallorca", - "handicap": "" - }, - { - "id": "810827203", - "odds": "2.200", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813203878", - "odds": "1.400", - "name": "Over 7 Corners", - "handicap": "7.0" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-21T14:48:08+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977006", - "FI": "174206945", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-21T14:43:38+03:00", - "Odds": [ - { - "id": "810813776", - "odds": "9.000", - "name": "Alexander Sorloth", - "handicap": "" - }, - { - "id": "810813006", - "odds": "9.000", - "name": "Cristhian Stuani", - "handicap": "" - }, - { - "id": "713506855", - "odds": "1.833", - "name": "FT Result: Atletico Madrid", - "handicap": "" - }, - { - "id": "818257809", - "odds": "2.250", - "name": "Julian Alvarez: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810899950", - "odds": "1.666", - "name": "Julian Alvarez to Score or Assist", - "handicap": "" - }, - { - "id": "713506855", - "odds": "1.833", - "name": "FT Result: Atletico Madrid", - "handicap": "" - }, - { - "id": "810900002", - "odds": "1.727", - "name": "Alexander Sorloth to Score or Assist", - "handicap": "" - }, - { - "id": "818257762", - "odds": "2.100", - "name": "Alexander Sorloth: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810806697", - "odds": "1.533", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818257811", - "odds": "1.400", - "name": "Samuel Lino: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818306182", - "odds": "3.000", - "name": "Cristhian Stuani: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "713506844", - "odds": "4.200", - "name": "FT Result: Girona", - "handicap": "" - }, - { - "id": "810809282", - "odds": "1.615", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813205972", - "odds": "1.363", - "name": "Over 7 Corners", - "handicap": "7.0" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-21T14:48:08+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977006", - "FI": "174206945", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-21T14:43:38+03:00", - "Odds": [ - { - "id": "810813776", - "odds": "9.000", - "name": "Alexander Sorloth", - "handicap": "" - }, - { - "id": "810813006", - "odds": "9.000", - "name": "Cristhian Stuani", - "handicap": "" - }, - { - "id": "713506855", - "odds": "1.833", - "name": "FT Result: Atletico Madrid", - "handicap": "" - }, - { - "id": "818257809", - "odds": "2.250", - "name": "Julian Alvarez: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810899950", - "odds": "1.666", - "name": "Julian Alvarez to Score or Assist", - "handicap": "" - }, - { - "id": "713506855", - "odds": "1.833", - "name": "FT Result: Atletico Madrid", - "handicap": "" - }, - { - "id": "810900002", - "odds": "1.727", - "name": "Alexander Sorloth to Score or Assist", - "handicap": "" - }, - { - "id": "818257762", - "odds": "2.100", - "name": "Alexander Sorloth: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810806697", - "odds": "1.533", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818257811", - "odds": "1.400", - "name": "Samuel Lino: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818306182", - "odds": "3.000", - "name": "Cristhian Stuani: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "713506844", - "odds": "4.200", - "name": "FT Result: Girona", - "handicap": "" - }, - { - "id": "810809282", - "odds": "1.615", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813205972", - "odds": "1.363", - "name": "Over 7 Corners", - "handicap": "7.0" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-21T14:48:33+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9016963", - "FI": "173826315", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-21T14:48:27+03:00", - "Odds": [ - { - "id": "807193833", - "odds": "10.000", - "name": "Virgil van Dijk", - "handicap": "" - }, - { - "id": "807193986", - "odds": "11.000", - "name": "Luis Diaz", - "handicap": "" - }, - { - "id": "661805323", - "odds": "1.380", - "name": "FT Result: Liverpool", - "handicap": "" - }, - { - "id": "807192225", - "odds": "1.666", - "name": "Mohamed Salah to Score", - "handicap": "" - }, - { - "id": "807197558", - "odds": "2.750", - "name": "Mohamed Salah to Assist", - "handicap": "" - }, - { - "id": "804656664", - "odds": "2.000", - "name": "HT: Liverpool \u2013 FT: Liverpool", - "handicap": "" - }, - { - "id": "819075054", - "odds": "1.666", - "name": "Mohamed Salah: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "819074957", - "odds": "2.200", - "name": "Cody Gakpo: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "819081389", - "odds": "1.444", - "name": "Eberechi Eze: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "819453064", - "odds": "1.250", - "name": "Luis Diaz: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "819075012", - "odds": "1.533", - "name": "Dominik Szoboszlai: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "804658978", - "odds": "3.000", - "name": "Liverpool to Win to Nil", - "handicap": "" - }, - { - "id": "818998267", - "odds": "1.222", - "name": "Most Corners: Liverpool", - "handicap": "" - }, - { - "id": "819451925", - "odds": "1.300", - "name": "Most Shots on Target: Liverpool", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-21T14:49:50+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977001", - "FI": "174206898", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-21T14:42:48+03:00", - "Odds": [ - { - "id": "810769529", - "odds": "7.000", - "name": "Robert Lewandowski", - "handicap": "" - }, - { - "id": "810770215", - "odds": "9.500", - "name": "Lamine Yamal", - "handicap": "" - }, - { - "id": "713503841", - "odds": "2.050", - "name": "FT Result: Barcelona", - "handicap": "" - }, - { - "id": "818283162", - "odds": "2.000", - "name": "Robert Lewandowski: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810767797", - "odds": "2.100", - "name": "Robert Lewandowski to Score", - "handicap": "" - }, - { - "id": "810764064", - "odds": "1.444", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818280046", - "odds": "2.250", - "name": "Gorka Guruzeta: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818338019", - "odds": "2.750", - "name": "Lamine Yamal: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "713503841", - "odds": "2.050", - "name": "FT Result: Barcelona", - "handicap": "" - }, - { - "id": "818283150", - "odds": "2.000", - "name": "Raphinha: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810774636", - "odds": "1.800", - "name": "Lamine Yamal to Score or Assist", - "handicap": "" - }, - { - "id": "713503825", - "odds": "3.300", - "name": "FT Result: Athletic Bilbao", - "handicap": "" - }, - { - "id": "810774497", - "odds": "2.200", - "name": "Oihan Sancet to Score or Assist", - "handicap": "" - }, - { - "id": "813208230", - "odds": "1.285", - "name": "Over 7 Corners", - "handicap": "7.0" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-21T14:50:07+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9929184", - "FI": "174363978", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-21T14:46:04+03:00", - "Odds": [ - { - "id": "774550908", - "odds": "21.000", - "name": "Antony", - "handicap": "" - }, - { - "id": "774550887", - "odds": "15.000", - "name": "Nicolas Jackson", - "handicap": "" - }, - { - "id": "734595170", - "odds": "1.363", - "name": "Chelsea to Lift the Trophy", - "handicap": "" - }, - { - "id": "734591996", - "odds": "1.833", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "774549605", - "odds": "2.300", - "name": "Cole Palmer to Score", - "handicap": "" - }, - { - "id": "774549558", - "odds": "2.875", - "name": "Nicolas Jackson to Score", - "handicap": "" - }, - { - "id": "734595170", - "odds": "1.363", - "name": "Chelsea to Lift the Trophy", - "handicap": "" - }, - { - "id": "734590525", - "odds": "2.000", - "name": "Over 2 Goals", - "handicap": "2" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-21T14:50:14+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9924545", - "FI": "174307725", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-21T14:49:04+03:00", - "Odds": [ - { - "id": "726811888", - "odds": "13.000", - "name": "Lautaro Martinez", - "handicap": "" - }, - { - "id": "726811982", - "odds": "11.000", - "name": "Khvicha Kvaratskhelia", - "handicap": "" - }, - { - "id": "726816128", - "odds": "1.666", - "name": "PSG to Lift the Trophy", - "handicap": "" - }, - { - "id": "726811208", - "odds": "3.250", - "name": "Bradley Barcola to Score", - "handicap": "" - }, - { - "id": "726806476", - "odds": "1.909", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "726816130", - "odds": "2.200", - "name": "Inter Milan to Lift the Trophy", - "handicap": "" - }, - { - "id": "726811216", - "odds": "3.250", - "name": "Marcus Thuram to Score", - "handicap": "" - }, - { - "id": "726807442", - "odds": "1.700", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "726816349", - "odds": "2.250", - "name": "Lautaro Martinez to Score or Assist", - "handicap": "" - }, - { - "id": "726816313", - "odds": "2.000", - "name": "Khvicha Kvaratskhelia to Score or Assist", - "handicap": "" - }, - { - "id": "726816123", - "odds": "2.250", - "name": "PSG to Win in 90 Mins", - "handicap": "" - }, - { - "id": "726807627", - "odds": "3.400", - "name": "PSG to Score in Both Halves", - "handicap": "" - }, - { - "id": "726811207", - "odds": "4.000", - "name": "Desire Doue to Score", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-22T14:00:22+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9929089", - "FI": "174362707", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-21T21:58:38+03:00", - "Odds": [ - { - "id": "774543385", - "odds": "15.000", - "name": "Dominic Solanke", - "handicap": "" - }, - { - "id": "774543427", - "odds": "13.000", - "name": "Bruno Fernandes", - "handicap": "" - }, - { - "id": "822010633", - "odds": "1.300", - "name": "Bruno Fernandes to Commit 1+ Fouls", - "handicap": "0.5" - }, - { - "id": "806206511", - "odds": "3.500", - "name": "Bruno Fernandes: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "805978001", - "odds": "2.000", - "name": "Bruno Fernandes: 3+ Tackles", - "handicap": "2.5" - }, - { - "id": "806168003", - "odds": "4.333", - "name": "Pape Sarr - Over 0.5 Shots on Target Outside the Box", - "handicap": "0.5" - }, - { - "id": "806169155", - "odds": "7.000", - "name": "Casemiro - Over 0.5 Shots on Target Outside the Box", - "handicap": "0.5" - }, - { - "id": "806206590", - "odds": "5.000", - "name": "Rasmus Hojlund: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "806206604", - "odds": "3.500", - "name": "Richarlison: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "806167980", - "odds": "4.500", - "name": "Brennan Johnson - Over 0.5 Shots on Target Outside the Box", - "handicap": "0.5" - }, - { - "id": "806169253", - "odds": "2.100", - "name": "Bruno Fernandes - Over 0.5 Shots on Target Outside the Box", - "handicap": "0.5" - }, - { - "id": "734413335", - "odds": "2.000", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "806167980", - "odds": "4.500", - "name": "Brennan Johnson - Over 0.5 Shots on Target Outside the Box", - "handicap": "0.5" - }, - { - "id": "806169220", - "odds": "4.500", - "name": "Mason Mount - Over 0.5 Shots on Target Outside the Box", - "handicap": "0.5" - }, - { - "id": "734414114", - "odds": "1.800", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "734417986", - "odds": "1.615", - "name": "Man Utd to Lift the Trophy", - "handicap": "" - }, - { - "id": "798594399", - "odds": "1.952", - "name": "Most Corners: Man Utd", - "handicap": "" - }, - { - "id": "806194735", - "odds": "1.727", - "name": "Most Shots on Target: Man Utd", - "handicap": "" - }, - { - "id": "734414114", - "odds": "1.800", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "798598236", - "odds": "1.500", - "name": "Both Teams to Receive 2+ Cards", - "handicap": "" - }, - { - "id": "798601377", - "odds": "1.285", - "name": "Over 3 Corners for Tottenham", - "handicap": "3" - }, - { - "id": "798601999", - "odds": "1.250", - "name": "Over 3 Corners for Man Utd", - "handicap": "3" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-22T14:01:13+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977004", - "FI": "174206928", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-22T13:57:41+03:00", - "Odds": [ - { - "id": "810825615", - "odds": "10.000", - "name": "Daniel Raba", - "handicap": "" - }, - { - "id": "810824112", - "odds": "15.000", - "name": "Juan Latasa", - "handicap": "" - }, - { - "id": "713505303", - "odds": "1.300", - "name": "FT Result: Leganes", - "handicap": "" - }, - { - "id": "818170790", - "odds": "1.833", - "name": "Daniel Raba: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818170803", - "odds": "1.666", - "name": "Diego Garcia: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810815575", - "odds": "1.833", - "name": "HT: Leganes \u2013 FT: Leganes", - "handicap": "" - }, - { - "id": "810816336", - "odds": "2.000", - "name": "Leganes to Score in Both Halves", - "handicap": "" - }, - { - "id": "810822897", - "odds": "2.875", - "name": "Juan Cruz to Score", - "handicap": "" - }, - { - "id": "810816138", - "odds": "2.100", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818174813", - "odds": "1.727", - "name": "Juan Latasa: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818170892", - "odds": "1.533", - "name": "Seydouba Cisse: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713505316", - "odds": "9.500", - "name": "FT Result: Valladolid", - "handicap": "" - }, - { - "id": "810818057", - "odds": "1.666", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813198253", - "odds": "1.333", - "name": "Over 7 Corners", - "handicap": "7.0" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-22T14:01:16+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977005", - "FI": "174206938", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-22T13:57:28+03:00", - "Odds": [ - { - "id": "810793474", - "odds": "4.500", - "name": "Javi Puado", - "handicap": "" - }, - { - "id": "810793926", - "odds": "9.000", - "name": "Roberto Fernandez", - "handicap": "" - }, - { - "id": "713505983", - "odds": "1.363", - "name": "FT Result: Espanyol", - "handicap": "" - }, - { - "id": "818161086", - "odds": "1.909", - "name": "Javi Puado: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818161150", - "odds": "2.100", - "name": "Roberto Fernandez: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "713505983", - "odds": "1.363", - "name": "FT Result: Espanyol", - "handicap": "" - }, - { - "id": "818223413", - "odds": "2.750", - "name": "Antoniu Roca: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810882878", - "odds": "2.300", - "name": "Eduardo Exposito to Score or Assist", - "handicap": "" - }, - { - "id": "810785073", - "odds": "2.100", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818165373", - "odds": "2.100", - "name": "Alberto Moleiro: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818223267", - "odds": "1.200", - "name": "Javi Puado: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713505993", - "odds": "8.000", - "name": "FT Result: Las Palmas", - "handicap": "" - }, - { - "id": "813197755", - "odds": "1.300", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "810787654", - "odds": "1.800", - "name": "Over 2 Goals", - "handicap": "2" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-22T14:01:16+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977005", - "FI": "174206938", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-22T13:57:28+03:00", - "Odds": [ - { - "id": "810793474", - "odds": "4.500", - "name": "Javi Puado", - "handicap": "" - }, - { - "id": "810793926", - "odds": "9.000", - "name": "Roberto Fernandez", - "handicap": "" - }, - { - "id": "713505983", - "odds": "1.363", - "name": "FT Result: Espanyol", - "handicap": "" - }, - { - "id": "818161086", - "odds": "1.909", - "name": "Javi Puado: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818161150", - "odds": "2.100", - "name": "Roberto Fernandez: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "713505983", - "odds": "1.363", - "name": "FT Result: Espanyol", - "handicap": "" - }, - { - "id": "818223413", - "odds": "2.750", - "name": "Antoniu Roca: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810882878", - "odds": "2.300", - "name": "Eduardo Exposito to Score or Assist", - "handicap": "" - }, - { - "id": "810785073", - "odds": "2.100", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818165373", - "odds": "2.100", - "name": "Alberto Moleiro: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818223267", - "odds": "1.200", - "name": "Javi Puado: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713505993", - "odds": "8.000", - "name": "FT Result: Las Palmas", - "handicap": "" - }, - { - "id": "813197755", - "odds": "1.300", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "810787654", - "odds": "1.800", - "name": "Over 2 Goals", - "handicap": "2" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-22T14:01:25+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977007", - "FI": "174206951", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-22T13:58:49+03:00", - "Odds": [ - { - "id": "810801158", - "odds": "9.000", - "name": "Williot Swedberg", - "handicap": "" - }, - { - "id": "810795373", - "odds": "2.875", - "name": "1", - "handicap": "" - }, - { - "id": "713507435", - "odds": "1.850", - "name": "FT Result: Celta Vigo", - "handicap": "" - }, - { - "id": "818234792", - "odds": "2.000", - "name": "Fernando Lopez: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818235097", - "odds": "1.400", - "name": "Williot Swedberg: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "810796354", - "odds": "1.950", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818233069", - "odds": "2.375", - "name": "Moya Borja Mayoral: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818272629", - "odds": "3.500", - "name": "Pablo Duran: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "713507435", - "odds": "1.850", - "name": "FT Result: Celta Vigo", - "handicap": "" - }, - { - "id": "810884551", - "odds": "3.100", - "name": "Oscar Mingueza to Score or Assist", - "handicap": "" - }, - { - "id": "818234750", - "odds": "3.500", - "name": "Beltran Fran: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713507421", - "odds": "4.100", - "name": "FT Result: Getafe", - "handicap": "" - }, - { - "id": "810795706", - "odds": "2.100", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813201935", - "odds": "1.500", - "name": "Over 7 Corners", - "handicap": "7.0" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-22T14:01:25+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977007", - "FI": "174206951", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-22T13:58:49+03:00", - "Odds": [ - { - "id": "810801158", - "odds": "9.000", - "name": "Williot Swedberg", - "handicap": "" - }, - { - "id": "810795373", - "odds": "2.875", - "name": "1", - "handicap": "" - }, - { - "id": "713507435", - "odds": "1.850", - "name": "FT Result: Celta Vigo", - "handicap": "" - }, - { - "id": "818234792", - "odds": "2.000", - "name": "Fernando Lopez: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818235097", - "odds": "1.400", - "name": "Williot Swedberg: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "810796354", - "odds": "1.950", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818233069", - "odds": "2.375", - "name": "Moya Borja Mayoral: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818272629", - "odds": "3.500", - "name": "Pablo Duran: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "713507435", - "odds": "1.850", - "name": "FT Result: Celta Vigo", - "handicap": "" - }, - { - "id": "810884551", - "odds": "3.100", - "name": "Oscar Mingueza to Score or Assist", - "handicap": "" - }, - { - "id": "818234750", - "odds": "3.500", - "name": "Beltran Fran: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713507421", - "odds": "4.100", - "name": "FT Result: Getafe", - "handicap": "" - }, - { - "id": "810795706", - "odds": "2.100", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813201935", - "odds": "1.500", - "name": "Over 7 Corners", - "handicap": "7.0" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-22T14:01:31+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977008", - "FI": "174206957", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-22T13:58:22+03:00", - "Odds": [ - { - "id": "810830891", - "odds": "8.500", - "name": "Isi Palazon", - "handicap": "" - }, - { - "id": "810826957", - "odds": "4.000", - "name": "2", - "handicap": "" - }, - { - "id": "713507997", - "odds": "1.533", - "name": "FT Result: Rayo Vallecano", - "handicap": "" - }, - { - "id": "810911970", - "odds": "2.250", - "name": "Jorge De Frutos to Score or Assist", - "handicap": "" - }, - { - "id": "818242351", - "odds": "2.000", - "name": "Isi Palazon: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810827485", - "odds": "2.200", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818248799", - "odds": "3.250", - "name": "Sergi Darder: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818300359", - "odds": "1.222", - "name": "Isi Palazon: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "810827053", - "odds": "2.300", - "name": "HT: Rayo Vallecano \u2013 FT: Rayo Vallecano", - "handicap": "" - }, - { - "id": "810827602", - "odds": "2.625", - "name": "Rayo Vallecano to Score in Both Halves", - "handicap": "" - }, - { - "id": "810830483", - "odds": "4.000", - "name": "Adrian Embarba to Score", - "handicap": "" - }, - { - "id": "713508001", - "odds": "6.250", - "name": "FT Result: Mallorca", - "handicap": "" - }, - { - "id": "810827203", - "odds": "2.100", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813203878", - "odds": "1.300", - "name": "Over 7 Corners", - "handicap": "7.0" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-22T14:01:31+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977008", - "FI": "174206957", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-22T13:58:22+03:00", - "Odds": [ - { - "id": "810830891", - "odds": "8.500", - "name": "Isi Palazon", - "handicap": "" - }, - { - "id": "810826957", - "odds": "4.000", - "name": "2", - "handicap": "" - }, - { - "id": "713507997", - "odds": "1.533", - "name": "FT Result: Rayo Vallecano", - "handicap": "" - }, - { - "id": "810911970", - "odds": "2.250", - "name": "Jorge De Frutos to Score or Assist", - "handicap": "" - }, - { - "id": "818242351", - "odds": "2.000", - "name": "Isi Palazon: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810827485", - "odds": "2.200", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818248799", - "odds": "3.250", - "name": "Sergi Darder: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818300359", - "odds": "1.222", - "name": "Isi Palazon: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "810827053", - "odds": "2.300", - "name": "HT: Rayo Vallecano \u2013 FT: Rayo Vallecano", - "handicap": "" - }, - { - "id": "810827602", - "odds": "2.625", - "name": "Rayo Vallecano to Score in Both Halves", - "handicap": "" - }, - { - "id": "810830483", - "odds": "4.000", - "name": "Adrian Embarba to Score", - "handicap": "" - }, - { - "id": "713508001", - "odds": "6.250", - "name": "FT Result: Mallorca", - "handicap": "" - }, - { - "id": "810827203", - "odds": "2.100", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813203878", - "odds": "1.300", - "name": "Over 7 Corners", - "handicap": "7.0" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-22T14:01:45+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977003", - "FI": "174206914", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-22T14:00:59+03:00", - "Odds": [ - { - "id": "810782401", - "odds": "6.500", - "name": "Ante Budimir", - "handicap": "" - }, - { - "id": "810782255", - "odds": "17.000", - "name": "Jon Guridi", - "handicap": "" - }, - { - "id": "713504570", - "odds": "2.350", - "name": "FT Result: Osasuna", - "handicap": "" - }, - { - "id": "818200891", - "odds": "1.615", - "name": "Ante Budimir: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810881584", - "odds": "1.833", - "name": "Ante Budimir to Score or Assist", - "handicap": "" - }, - { - "id": "713504562", - "odds": "3.200", - "name": "FT Result: CD Alaves", - "handicap": "" - }, - { - "id": "818200816", - "odds": "1.615", - "name": "Carlos Vicente: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "810881581", - "odds": "3.500", - "name": "Jon Guridi to Score or Assist", - "handicap": "" - }, - { - "id": "810778158", - "odds": "4.000", - "name": "Osasuna to Score in Both Halves", - "handicap": "" - }, - { - "id": "810881558", - "odds": "2.100", - "name": "Bryan Zaragoza to Score or Assist", - "handicap": "" - }, - { - "id": "810881580", - "odds": "3.100", - "name": "Aimar Oroz to Score or Assist", - "handicap": "" - }, - { - "id": "713504562", - "odds": "3.200", - "name": "FT Result: CD Alaves", - "handicap": "" - }, - { - "id": "810777871", - "odds": "2.000", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "813199262", - "odds": "1.285", - "name": "Over 7 Corners", - "handicap": "7.0" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-22T14:02:24+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9289266", - "FI": "174218989", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-22T13:56:37+03:00", - "Odds": [ - { - "id": "806593420", - "odds": "21.000", - "name": "Jacob Murrell", - "handicap": "" - }, - { - "id": "806592362", - "odds": "9.500", - "name": "Emil Forsberg", - "handicap": "" - }, - { - "id": "714859495", - "odds": "2.550", - "name": "FT Result: DC United", - "handicap": "" - }, - { - "id": "812266209", - "odds": "1.666", - "name": "Jared Stroud: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "812266213", - "odds": "2.500", - "name": "Joao Peglow: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "714859497", - "odds": "2.700", - "name": "FT Result: New York Red Bulls", - "handicap": "" - }, - { - "id": "812268463", - "odds": "1.444", - "name": "Eric Maxim Choupo-Moting: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "812268537", - "odds": "1.800", - "name": "Wikelman Carmona: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "714859495", - "odds": "2.550", - "name": "FT Result: DC United", - "handicap": "" - }, - { - "id": "806585492", - "odds": "1.900", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "827339685", - "odds": "1.833", - "name": "Most Corners: DC United", - "handicap": "" - }, - { - "id": "714859497", - "odds": "2.700", - "name": "FT Result: New York Red Bulls", - "handicap": "" - }, - { - "id": "827346880", - "odds": "1.500", - "name": "Over 3 Corners for New York Red Bulls", - "handicap": "3" - }, - { - "id": "806585492", - "odds": "1.900", - "name": "Over 2 Goals", - "handicap": "2" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-22T14:02:24+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9289266", - "FI": "174218989", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-22T13:56:37+03:00", - "Odds": [ - { - "id": "806593420", - "odds": "21.000", - "name": "Jacob Murrell", - "handicap": "" - }, - { - "id": "806592362", - "odds": "9.500", - "name": "Emil Forsberg", - "handicap": "" - }, - { - "id": "714859495", - "odds": "2.550", - "name": "FT Result: DC United", - "handicap": "" - }, - { - "id": "812266209", - "odds": "1.666", - "name": "Jared Stroud: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "812266213", - "odds": "2.500", - "name": "Joao Peglow: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "714859497", - "odds": "2.700", - "name": "FT Result: New York Red Bulls", - "handicap": "" - }, - { - "id": "812268463", - "odds": "1.444", - "name": "Eric Maxim Choupo-Moting: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "812268537", - "odds": "1.800", - "name": "Wikelman Carmona: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "714859495", - "odds": "2.550", - "name": "FT Result: DC United", - "handicap": "" - }, - { - "id": "806585492", - "odds": "1.900", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "827339685", - "odds": "1.833", - "name": "Most Corners: DC United", - "handicap": "" - }, - { - "id": "714859497", - "odds": "2.700", - "name": "FT Result: New York Red Bulls", - "handicap": "" - }, - { - "id": "827346880", - "odds": "1.500", - "name": "Over 3 Corners for New York Red Bulls", - "handicap": "3" - }, - { - "id": "806585492", - "odds": "1.900", - "name": "Over 2 Goals", - "handicap": "2" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-22T14:02:32+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9289267", - "FI": "174218987", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-22T14:01:17+03:00", - "Odds": [ - { - "id": "806548682", - "odds": "13.000", - "name": "Wilfried Zaha", - "handicap": "" - }, - { - "id": "806547960", - "odds": "19.000", - "name": "Jacen Russell-Rowe", - "handicap": "" - }, - { - "id": "714859478", - "odds": "2.700", - "name": "FT Result: Charlotte FC", - "handicap": "" - }, - { - "id": "812225920", - "odds": "1.400", - "name": "Liel Abada: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "812481096", - "odds": "1.363", - "name": "Patrick Agyemang: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "714859480", - "odds": "2.500", - "name": "FT Result: Columbus Crew", - "handicap": "" - }, - { - "id": "812228823", - "odds": "1.500", - "name": "Daniel Gazdag: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "812228831", - "odds": "2.625", - "name": "Diego Rossi: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "827337512", - "odds": "2.100", - "name": "Over 4 Corners for Charlotte FC", - "handicap": "4" - }, - { - "id": "827337557", - "odds": "1.833", - "name": "Over 4 Corners for Columbus Crew", - "handicap": "4" - }, - { - "id": "806542309", - "odds": "1.571", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "812481093", - "odds": "3.000", - "name": "Liel Abada: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "816983630", - "odds": "1.333", - "name": "Diego Rossi: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "806544053", - "odds": "1.666", - "name": "Over 2 Goals", - "handicap": "2" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-22T14:02:50+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9289262", - "FI": "174219002", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-22T14:00:44+03:00", - "Odds": [ - { - "id": "806670446", - "odds": "13.000", - "name": "Tani Oluwaseyi", - "handicap": "" - }, - { - "id": "806655131", - "odds": "9.500", - "name": "Minnesota United 2-1", - "handicap": "" - }, - { - "id": "714859773", - "odds": "1.727", - "name": "FT Result: Minnesota United", - "handicap": "" - }, - { - "id": "812331324", - "odds": "1.800", - "name": "Kelvin Yeboah: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "812331345", - "odds": "2.375", - "name": "Tani Oluwaseyi: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "806655293", - "odds": "2.050", - "name": "Draw or Austin FC", - "handicap": "" - }, - { - "id": "812335148", - "odds": "1.571", - "name": "Myrto Uzuni: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "812334820", - "odds": "1.615", - "name": "Brandon Vazquez: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "827362447", - "odds": "1.533", - "name": "Over 4 Corners for Minnesota United", - "handicap": "4" - }, - { - "id": "827362563", - "odds": "2.200", - "name": "Over 4 Corners for Austin FC", - "handicap": "4" - }, - { - "id": "806655241", - "odds": "3.250", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "806655104", - "odds": "2.625", - "name": "HT: Minnesota United \u2013 FT: Minnesota United", - "handicap": "" - }, - { - "id": "827360459", - "odds": "1.615", - "name": "Most Corners: Minnesota United", - "handicap": "" - }, - { - "id": "806963379", - "odds": "1.800", - "name": "Kelvin Yeboah to Score or Assist", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-22T14:03:02+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9289261", - "FI": "174219004", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-22T13:59:21+03:00", - "Odds": [ - { - "id": "806742909", - "odds": "12.000", - "name": "Joao Klauss", - "handicap": "" - }, - { - "id": "806741536", - "odds": "8.500", - "name": "Darren Yapi", - "handicap": "" - }, - { - "id": "714859800", - "odds": "1.850", - "name": "FT Result: Colorado Rapids", - "handicap": "" - }, - { - "id": "812359565", - "odds": "2.100", - "name": "Djordje Mihailovic: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "812508432", - "odds": "3.000", - "name": "Kevin Cabral: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "806733943", - "odds": "1.909", - "name": "Draw or St. Louis City SC", - "handicap": "" - }, - { - "id": "812362704", - "odds": "1.444", - "name": "Cedric Teuchert: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "812362834", - "odds": "1.500", - "name": "Marcel Hartel: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "812508349", - "odds": "3.250", - "name": "Cedric Teuchert: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "812359565", - "odds": "2.100", - "name": "Djordje Mihailovic: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "806737965", - "odds": "1.571", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "714859800", - "odds": "1.850", - "name": "FT Result: Colorado Rapids", - "handicap": "" - }, - { - "id": "827381382", - "odds": "1.250", - "name": "Over 3 Corners for Colorado Rapids", - "handicap": "3" - }, - { - "id": "807040642", - "odds": "2.100", - "name": "Darren Yapi to Score or Assist", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-22T14:03:09+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9289260", - "FI": "174219006", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-22T14:01:33+03:00", - "Odds": [ - { - "id": "806753712", - "odds": "8.500", - "name": "Brian White", - "handicap": "" - }, - { - "id": "806753521", - "odds": "7.000", - "name": "William Agada", - "handicap": "" - }, - { - "id": "714859829", - "odds": "2.500", - "name": "FT Result: Real Salt Lake", - "handicap": "" - }, - { - "id": "812514424", - "odds": "1.333", - "name": "William Agada: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "812377943", - "odds": "1.400", - "name": "Diogo Goncalves: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "714859831", - "odds": "2.600", - "name": "FT Result: Vancouver Whitecaps", - "handicap": "" - }, - { - "id": "812380351", - "odds": "2.100", - "name": "Pedro Vite: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "812380265", - "odds": "2.750", - "name": "Brian White: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "827384577", - "odds": "1.666", - "name": "Over 4 Corners for Real Salt Lake", - "handicap": "4" - }, - { - "id": "827384725", - "odds": "1.909", - "name": "Over 4 Corners for Vancouver Whitecaps", - "handicap": "4" - }, - { - "id": "806747601", - "odds": "1.666", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "812377945", - "odds": "1.833", - "name": "Dominik Marczuk: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "812380239", - "odds": "2.250", - "name": "Ali Ahmed: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "806749654", - "odds": "1.750", - "name": "Over 2 Goals", - "handicap": "2" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-22T14:03:18+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977006", - "FI": "174206945", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-22T13:54:38+03:00", - "Odds": [ - { - "id": "810813776", - "odds": "9.000", - "name": "Alexander Sorloth", - "handicap": "" - }, - { - "id": "810813006", - "odds": "8.500", - "name": "Cristhian Stuani", - "handicap": "" - }, - { - "id": "713506855", - "odds": "1.909", - "name": "FT Result: Atletico Madrid", - "handicap": "" - }, - { - "id": "818257809", - "odds": "2.250", - "name": "Julian Alvarez: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810899950", - "odds": "1.800", - "name": "Julian Alvarez to Score or Assist", - "handicap": "" - }, - { - "id": "713506855", - "odds": "1.909", - "name": "FT Result: Atletico Madrid", - "handicap": "" - }, - { - "id": "810900002", - "odds": "1.727", - "name": "Alexander Sorloth to Score or Assist", - "handicap": "" - }, - { - "id": "818257762", - "odds": "2.100", - "name": "Alexander Sorloth: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810806697", - "odds": "1.533", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818257811", - "odds": "1.400", - "name": "Samuel Lino: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818306182", - "odds": "3.000", - "name": "Cristhian Stuani: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "713506844", - "odds": "3.800", - "name": "FT Result: Girona", - "handicap": "" - }, - { - "id": "810809282", - "odds": "1.615", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813205972", - "odds": "1.363", - "name": "Over 7 Corners", - "handicap": "7.0" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-22T14:03:18+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977006", - "FI": "174206945", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-22T13:54:38+03:00", - "Odds": [ - { - "id": "810813776", - "odds": "9.000", - "name": "Alexander Sorloth", - "handicap": "" - }, - { - "id": "810813006", - "odds": "8.500", - "name": "Cristhian Stuani", - "handicap": "" - }, - { - "id": "713506855", - "odds": "1.909", - "name": "FT Result: Atletico Madrid", - "handicap": "" - }, - { - "id": "818257809", - "odds": "2.250", - "name": "Julian Alvarez: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810899950", - "odds": "1.800", - "name": "Julian Alvarez to Score or Assist", - "handicap": "" - }, - { - "id": "713506855", - "odds": "1.909", - "name": "FT Result: Atletico Madrid", - "handicap": "" - }, - { - "id": "810900002", - "odds": "1.727", - "name": "Alexander Sorloth to Score or Assist", - "handicap": "" - }, - { - "id": "818257762", - "odds": "2.100", - "name": "Alexander Sorloth: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810806697", - "odds": "1.533", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818257811", - "odds": "1.400", - "name": "Samuel Lino: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818306182", - "odds": "3.000", - "name": "Cristhian Stuani: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "713506844", - "odds": "3.800", - "name": "FT Result: Girona", - "handicap": "" - }, - { - "id": "810809282", - "odds": "1.615", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813205972", - "odds": "1.363", - "name": "Over 7 Corners", - "handicap": "7.0" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-22T17:16:12+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977005", - "FI": "174206938", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-22T17:14:26+03:00", - "Odds": [ - { - "id": "810793474", - "odds": "4.500", - "name": "Javi Puado", - "handicap": "" - }, - { - "id": "810793926", - "odds": "9.000", - "name": "Roberto Fernandez", - "handicap": "" - }, - { - "id": "713505983", - "odds": "1.363", - "name": "FT Result: Espanyol", - "handicap": "" - }, - { - "id": "818161086", - "odds": "1.909", - "name": "Javi Puado: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818161150", - "odds": "2.100", - "name": "Roberto Fernandez: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810785073", - "odds": "2.100", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818165373", - "odds": "2.100", - "name": "Alberto Moleiro: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818223267", - "odds": "1.200", - "name": "Javi Puado: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713505993", - "odds": "8.500", - "name": "FT Result: Las Palmas", - "handicap": "" - }, - { - "id": "813197755", - "odds": "1.300", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "810787654", - "odds": "1.800", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "818165415", - "odds": "2.000", - "name": "Oliver McBurnie: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818165371", - "odds": "3.000", - "name": "Adnan Januzaj: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818223546", - "odds": "1.250", - "name": "Roberto Fernandez: 1+ Shots on Target", - "handicap": "0.5" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-22T17:16:33+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977003", - "FI": "174206914", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-22T17:07:07+03:00", - "Odds": [ - { - "id": "810782401", - "odds": "6.500", - "name": "Ante Budimir", - "handicap": "" - }, - { - "id": "810782255", - "odds": "17.000", - "name": "Jon Guridi", - "handicap": "" - }, - { - "id": "713504570", - "odds": "2.350", - "name": "FT Result: Osasuna", - "handicap": "" - }, - { - "id": "818200891", - "odds": "1.615", - "name": "Ante Budimir: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810881584", - "odds": "1.833", - "name": "Ante Budimir to Score or Assist", - "handicap": "" - }, - { - "id": "713504562", - "odds": "3.200", - "name": "FT Result: CD Alaves", - "handicap": "" - }, - { - "id": "818200816", - "odds": "1.615", - "name": "Carlos Vicente: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "810881581", - "odds": "3.500", - "name": "Jon Guridi to Score or Assist", - "handicap": "" - }, - { - "id": "810778158", - "odds": "4.000", - "name": "Osasuna to Score in Both Halves", - "handicap": "" - }, - { - "id": "810881558", - "odds": "2.100", - "name": "Bryan Zaragoza to Score or Assist", - "handicap": "" - }, - { - "id": "810881580", - "odds": "3.100", - "name": "Aimar Oroz to Score or Assist", - "handicap": "" - }, - { - "id": "713504562", - "odds": "3.200", - "name": "FT Result: CD Alaves", - "handicap": "" - }, - { - "id": "810777871", - "odds": "1.950", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "813199262", - "odds": "1.285", - "name": "Over 7 Corners", - "handicap": "7.0" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-22T17:16:40+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977007", - "FI": "174206951", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-22T17:12:23+03:00", - "Odds": [ - { - "id": "810795373", - "odds": "2.875", - "name": "1", - "handicap": "" - }, - { - "id": "810801154", - "odds": "5.500", - "name": "Borja Iglesias", - "handicap": "" - }, - { - "id": "713507435", - "odds": "1.850", - "name": "FT Result: Celta Vigo", - "handicap": "" - }, - { - "id": "810884551", - "odds": "3.100", - "name": "Oscar Mingueza to Score or Assist", - "handicap": "" - }, - { - "id": "818234750", - "odds": "3.500", - "name": "Beltran Fran: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713507421", - "odds": "4.100", - "name": "FT Result: Getafe", - "handicap": "" - }, - { - "id": "810795706", - "odds": "2.100", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813201935", - "odds": "1.500", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "713507435", - "odds": "1.850", - "name": "FT Result: Celta Vigo", - "handicap": "" - }, - { - "id": "818234755", - "odds": "1.909", - "name": "Borja Iglesias: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818234745", - "odds": "1.800", - "name": "Alfonso Gonzalez: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818272688", - "odds": "1.285", - "name": "Moya Borja Mayoral: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818232899", - "odds": "1.533", - "name": "Chrisantus Uche: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818235077", - "odds": "2.625", - "name": "Oscar Mingueza: 1+ Shots on Target", - "handicap": "0.5" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-22T17:17:09+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977008", - "FI": "174206957", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-22T17:16:02+03:00", - "Odds": [ - { - "id": "810830891", - "odds": "8.500", - "name": "Isi Palazon", - "handicap": "" - }, - { - "id": "810826957", - "odds": "3.750", - "name": "2", - "handicap": "" - }, - { - "id": "713507997", - "odds": "1.533", - "name": "FT Result: Rayo Vallecano", - "handicap": "" - }, - { - "id": "810911970", - "odds": "2.250", - "name": "Jorge De Frutos to Score or Assist", - "handicap": "" - }, - { - "id": "818242351", - "odds": "2.000", - "name": "Isi Palazon: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810827485", - "odds": "2.200", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818248799", - "odds": "3.250", - "name": "Sergi Darder: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818300359", - "odds": "1.222", - "name": "Isi Palazon: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "810827053", - "odds": "2.375", - "name": "HT: Rayo Vallecano \u2013 FT: Rayo Vallecano", - "handicap": "" - }, - { - "id": "810827602", - "odds": "2.625", - "name": "Rayo Vallecano to Score in Both Halves", - "handicap": "" - }, - { - "id": "810830483", - "odds": "4.000", - "name": "Adrian Embarba to Score", - "handicap": "" - }, - { - "id": "713508001", - "odds": "6.250", - "name": "FT Result: Mallorca", - "handicap": "" - }, - { - "id": "810827203", - "odds": "2.100", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813203878", - "odds": "1.300", - "name": "Over 7 Corners", - "handicap": "7.0" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-22T17:17:27+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9289267", - "FI": "174218987", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-22T17:11:45+03:00", - "Odds": [ - { - "id": "806548682", - "odds": "13.000", - "name": "Wilfried Zaha", - "handicap": "" - }, - { - "id": "806547960", - "odds": "19.000", - "name": "Jacen Russell-Rowe", - "handicap": "" - }, - { - "id": "714859478", - "odds": "2.700", - "name": "FT Result: Charlotte FC", - "handicap": "" - }, - { - "id": "812225920", - "odds": "1.400", - "name": "Liel Abada: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "812481096", - "odds": "1.363", - "name": "Patrick Agyemang: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "714859480", - "odds": "2.500", - "name": "FT Result: Columbus Crew", - "handicap": "" - }, - { - "id": "812228823", - "odds": "1.500", - "name": "Daniel Gazdag: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "812228831", - "odds": "2.625", - "name": "Diego Rossi: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "827337512", - "odds": "2.100", - "name": "Over 4 Corners for Charlotte FC", - "handicap": "4" - }, - { - "id": "827337557", - "odds": "1.833", - "name": "Over 4 Corners for Columbus Crew", - "handicap": "4" - }, - { - "id": "806542309", - "odds": "1.571", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "812481093", - "odds": "3.000", - "name": "Liel Abada: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "816983630", - "odds": "1.333", - "name": "Diego Rossi: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "806544053", - "odds": "1.666", - "name": "Over 2 Goals", - "handicap": "2" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-22T17:17:35+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9289266", - "FI": "174218989", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-22T17:10:19+03:00", - "Odds": [ - { - "id": "806593420", - "odds": "21.000", - "name": "Jacob Murrell", - "handicap": "" - }, - { - "id": "806592362", - "odds": "9.500", - "name": "Emil Forsberg", - "handicap": "" - }, - { - "id": "714859495", - "odds": "2.550", - "name": "FT Result: DC United", - "handicap": "" - }, - { - "id": "812266209", - "odds": "1.666", - "name": "Jared Stroud: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "812266213", - "odds": "2.500", - "name": "Joao Peglow: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "714859497", - "odds": "2.700", - "name": "FT Result: New York Red Bulls", - "handicap": "" - }, - { - "id": "812268463", - "odds": "1.444", - "name": "Eric Maxim Choupo-Moting: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "812268537", - "odds": "1.800", - "name": "Wikelman Carmona: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "714859495", - "odds": "2.550", - "name": "FT Result: DC United", - "handicap": "" - }, - { - "id": "806585492", - "odds": "1.900", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "827339685", - "odds": "1.833", - "name": "Most Corners: DC United", - "handicap": "" - }, - { - "id": "714859497", - "odds": "2.700", - "name": "FT Result: New York Red Bulls", - "handicap": "" - }, - { - "id": "827346880", - "odds": "1.500", - "name": "Over 3 Corners for New York Red Bulls", - "handicap": "3" - }, - { - "id": "806585492", - "odds": "1.900", - "name": "Over 2 Goals", - "handicap": "2" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-22T17:17:35+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9289266", - "FI": "174218989", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-22T17:10:19+03:00", - "Odds": [ - { - "id": "806593420", - "odds": "21.000", - "name": "Jacob Murrell", - "handicap": "" - }, - { - "id": "806592362", - "odds": "9.500", - "name": "Emil Forsberg", - "handicap": "" - }, - { - "id": "714859495", - "odds": "2.550", - "name": "FT Result: DC United", - "handicap": "" - }, - { - "id": "812266209", - "odds": "1.666", - "name": "Jared Stroud: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "812266213", - "odds": "2.500", - "name": "Joao Peglow: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "714859497", - "odds": "2.700", - "name": "FT Result: New York Red Bulls", - "handicap": "" - }, - { - "id": "812268463", - "odds": "1.444", - "name": "Eric Maxim Choupo-Moting: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "812268537", - "odds": "1.800", - "name": "Wikelman Carmona: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "714859495", - "odds": "2.550", - "name": "FT Result: DC United", - "handicap": "" - }, - { - "id": "806585492", - "odds": "1.900", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "827339685", - "odds": "1.833", - "name": "Most Corners: DC United", - "handicap": "" - }, - { - "id": "714859497", - "odds": "2.700", - "name": "FT Result: New York Red Bulls", - "handicap": "" - }, - { - "id": "827346880", - "odds": "1.500", - "name": "Over 3 Corners for New York Red Bulls", - "handicap": "3" - }, - { - "id": "806585492", - "odds": "1.900", - "name": "Over 2 Goals", - "handicap": "2" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-22T17:18:21+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9289262", - "FI": "174219002", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-22T17:17:13+03:00", - "Odds": [ - { - "id": "806670446", - "odds": "13.000", - "name": "Tani Oluwaseyi", - "handicap": "" - }, - { - "id": "806655131", - "odds": "9.500", - "name": "Minnesota United 2-1", - "handicap": "" - }, - { - "id": "714859773", - "odds": "1.727", - "name": "FT Result: Minnesota United", - "handicap": "" - }, - { - "id": "812331324", - "odds": "1.800", - "name": "Kelvin Yeboah: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "812331345", - "odds": "2.375", - "name": "Tani Oluwaseyi: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "806655293", - "odds": "2.050", - "name": "Draw or Austin FC", - "handicap": "" - }, - { - "id": "812335148", - "odds": "1.571", - "name": "Myrto Uzuni: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "812334820", - "odds": "1.571", - "name": "Brandon Vazquez: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "827362447", - "odds": "1.533", - "name": "Over 4 Corners for Minnesota United", - "handicap": "4" - }, - { - "id": "827362563", - "odds": "2.200", - "name": "Over 4 Corners for Austin FC", - "handicap": "4" - }, - { - "id": "806655241", - "odds": "3.250", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "806655104", - "odds": "2.625", - "name": "HT: Minnesota United \u2013 FT: Minnesota United", - "handicap": "" - }, - { - "id": "827360459", - "odds": "1.615", - "name": "Most Corners: Minnesota United", - "handicap": "" - }, - { - "id": "806963379", - "odds": "1.800", - "name": "Kelvin Yeboah to Score or Assist", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-22T17:18:35+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9289261", - "FI": "174219004", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-22T17:16:48+03:00", - "Odds": [ - { - "id": "806742909", - "odds": "12.000", - "name": "Joao Klauss", - "handicap": "" - }, - { - "id": "806741536", - "odds": "8.500", - "name": "Darren Yapi", - "handicap": "" - }, - { - "id": "714859800", - "odds": "1.850", - "name": "FT Result: Colorado Rapids", - "handicap": "" - }, - { - "id": "812359565", - "odds": "2.100", - "name": "Djordje Mihailovic: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "812508432", - "odds": "3.000", - "name": "Kevin Cabral: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "806733943", - "odds": "1.909", - "name": "Draw or St. Louis City SC", - "handicap": "" - }, - { - "id": "812362704", - "odds": "1.444", - "name": "Cedric Teuchert: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "812362834", - "odds": "1.500", - "name": "Marcel Hartel: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "812508349", - "odds": "3.250", - "name": "Cedric Teuchert: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "812359565", - "odds": "2.100", - "name": "Djordje Mihailovic: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "806737965", - "odds": "1.571", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "714859800", - "odds": "1.850", - "name": "FT Result: Colorado Rapids", - "handicap": "" - }, - { - "id": "827381382", - "odds": "1.250", - "name": "Over 3 Corners for Colorado Rapids", - "handicap": "3" - }, - { - "id": "807040642", - "odds": "2.100", - "name": "Darren Yapi to Score or Assist", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-22T17:18:35+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9289260", - "FI": "174219006", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-22T17:12:01+03:00", - "Odds": [ - { - "id": "806753712", - "odds": "8.500", - "name": "Brian White", - "handicap": "" - }, - { - "id": "806753521", - "odds": "7.000", - "name": "William Agada", - "handicap": "" - }, - { - "id": "714859829", - "odds": "2.500", - "name": "FT Result: Real Salt Lake", - "handicap": "" - }, - { - "id": "812514424", - "odds": "1.333", - "name": "William Agada: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "812377943", - "odds": "1.400", - "name": "Diogo Goncalves: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "714859831", - "odds": "2.600", - "name": "FT Result: Vancouver Whitecaps", - "handicap": "" - }, - { - "id": "812380351", - "odds": "2.100", - "name": "Pedro Vite: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "812380265", - "odds": "2.750", - "name": "Brian White: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "827384577", - "odds": "1.666", - "name": "Over 4 Corners for Real Salt Lake", - "handicap": "4" - }, - { - "id": "827384725", - "odds": "1.909", - "name": "Over 4 Corners for Vancouver Whitecaps", - "handicap": "4" - }, - { - "id": "806747601", - "odds": "1.666", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "812377945", - "odds": "1.833", - "name": "Dominik Marczuk: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "812380239", - "odds": "2.250", - "name": "Ali Ahmed: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "806749654", - "odds": "1.750", - "name": "Over 2 Goals", - "handicap": "2" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-22T17:18:48+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977006", - "FI": "174206945", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-22T17:08:15+03:00", - "Odds": [ - { - "id": "810813006", - "odds": "7.000", - "name": "Cristhian Stuani", - "handicap": "" - }, - { - "id": "810805461", - "odds": "13.000", - "name": "Atletico Madrid 2-0", - "handicap": "" - }, - { - "id": "713506844", - "odds": "3.500", - "name": "FT Result: Girona", - "handicap": "" - }, - { - "id": "810809282", - "odds": "1.615", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813205972", - "odds": "1.363", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "713506855", - "odds": "2.000", - "name": "FT Result: Atletico Madrid", - "handicap": "" - }, - { - "id": "818257779", - "odds": "2.750", - "name": "Antoine Griezmann: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818257773", - "odds": "2.750", - "name": "Angel Correa: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "713506844", - "odds": "3.500", - "name": "FT Result: Girona", - "handicap": "" - }, - { - "id": "832763395", - "odds": "1.363", - "name": "Cristhian Stuani: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818254988", - "odds": "1.444", - "name": "Viktor Tsygankov: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818257791", - "odds": "1.833", - "name": "Conor Gallagher: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818257811", - "odds": "1.400", - "name": "Samuel Lino: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818306498", - "odds": "1.400", - "name": "Antoine Griezmann: 1+ Shots on Target", - "handicap": "0.5" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-22T17:18:48+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977006", - "FI": "174206945", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-22T17:08:15+03:00", - "Odds": [ - { - "id": "810813006", - "odds": "7.000", - "name": "Cristhian Stuani", - "handicap": "" - }, - { - "id": "810805461", - "odds": "13.000", - "name": "Atletico Madrid 2-0", - "handicap": "" - }, - { - "id": "713506844", - "odds": "3.500", - "name": "FT Result: Girona", - "handicap": "" - }, - { - "id": "810809282", - "odds": "1.615", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813205972", - "odds": "1.363", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "713506855", - "odds": "2.000", - "name": "FT Result: Atletico Madrid", - "handicap": "" - }, - { - "id": "818257779", - "odds": "2.750", - "name": "Antoine Griezmann: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818257773", - "odds": "2.750", - "name": "Angel Correa: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "713506844", - "odds": "3.500", - "name": "FT Result: Girona", - "handicap": "" - }, - { - "id": "832763395", - "odds": "1.363", - "name": "Cristhian Stuani: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818254988", - "odds": "1.444", - "name": "Viktor Tsygankov: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818257791", - "odds": "1.833", - "name": "Conor Gallagher: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818257811", - "odds": "1.400", - "name": "Samuel Lino: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818306498", - "odds": "1.400", - "name": "Antoine Griezmann: 1+ Shots on Target", - "handicap": "0.5" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-22T17:45:01+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9975311", - "FI": "174947318", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-22T17:44:16+03:00", - "Odds": [ - { - "id": "817009524", - "odds": "5.500", - "name": "Mexx Meerdink", - "handicap": "" - }, - { - "id": "817005544", - "odds": "12.000", - "name": "AZ 3-1", - "handicap": "" - }, - { - "id": "813187547", - "odds": "1.363", - "name": "FT Result: AZ", - "handicap": "" - }, - { - "id": "817005611", - "odds": "2.200", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "817008924", - "odds": "2.600", - "name": "Ernest Poku to Score", - "handicap": "" - }, - { - "id": "817005622", - "odds": "3.000", - "name": "Draw or Heerenveen", - "handicap": "" - }, - { - "id": "817831149", - "odds": "1.833", - "name": "Milos Lukovic: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "817831114", - "odds": "2.000", - "name": "Jacob Trenskow: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "817005829", - "odds": "1.800", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "817831128", - "odds": "2.625", - "name": "Levi Smans: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "817840797", - "odds": "1.333", - "name": "Ruben van Bommel: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "817828962", - "odds": "2.375", - "name": "Sven Mijnans: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "817026245", - "odds": "3.750", - "name": "Sven Mijnans to Assist", - "handicap": "" - }, - { - "id": "817008919", - "odds": "2.750", - "name": "Sven Mijnans to Score", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-22T17:45:09+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9975310", - "FI": "174947324", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-22T17:45:03+03:00", - "Odds": [ - { - "id": "817020783", - "odds": "7.000", - "name": "Ricky van Wolfswinkel", - "handicap": "" - }, - { - "id": "817020896", - "odds": "8.500", - "name": "Sem Steijn", - "handicap": "" - }, - { - "id": "813187813", - "odds": "1.700", - "name": "FT Result: FC Twente", - "handicap": "" - }, - { - "id": "817030231", - "odds": "3.400", - "name": "Sem Steijn to Assist", - "handicap": "" - }, - { - "id": "817020347", - "odds": "2.100", - "name": "Sem Steijn to Score", - "handicap": "" - }, - { - "id": "817013372", - "odds": "2.100", - "name": "Draw or NEC", - "handicap": "" - }, - { - "id": "817837995", - "odds": "1.666", - "name": "Bryan Linssen: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "817030440", - "odds": "3.200", - "name": "Bryan Linssen to Score or Assist", - "handicap": "" - }, - { - "id": "813187813", - "odds": "1.700", - "name": "FT Result: FC Twente", - "handicap": "" - }, - { - "id": "817014682", - "odds": "2.500", - "name": "FC Twente to Score in Both Halves", - "handicap": "" - }, - { - "id": "817020297", - "odds": "3.250", - "name": "Michel Vlap to Score", - "handicap": "" - }, - { - "id": "817013307", - "odds": "2.750", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "817030420", - "odds": "1.833", - "name": "Ricky van Wolfswinkel to Score or Assist", - "handicap": "" - }, - { - "id": "817030396", - "odds": "3.400", - "name": "Sami Ouaissa to Score or Assist", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-22T17:45:26+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977002", - "FI": "174206901", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-22T17:36:07+03:00", - "Odds": [ - { - "id": "810834176", - "odds": "13.000", - "name": "Valencia 2-1", - "handicap": "" - }, - { - "id": "810843474", - "odds": "7.000", - "name": "Hugo Duro", - "handicap": "" - }, - { - "id": "713504058", - "odds": "3.500", - "name": "FT Result: Valencia", - "handicap": "" - }, - { - "id": "818205392", - "odds": "1.333", - "name": "Hugo Duro: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818145409", - "odds": "1.615", - "name": "Luis Rioja: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713504056", - "odds": "2.000", - "name": "FT Result: Real Betis", - "handicap": "" - }, - { - "id": "818142082", - "odds": "2.375", - "name": "Juan Hernandez: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818142073", - "odds": "1.444", - "name": "Jesus Rodriguez: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713504058", - "odds": "3.500", - "name": "FT Result: Valencia", - "handicap": "" - }, - { - "id": "810835604", - "odds": "1.571", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "813193941", - "odds": "1.333", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "818142127", - "odds": "2.100", - "name": "Silva William Carvalho: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818205392", - "odds": "1.333", - "name": "Hugo Duro: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "810835604", - "odds": "1.571", - "name": "Both Teams to Score", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-22T17:45:49+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977004", - "FI": "174206928", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-22T17:34:20+03:00", - "Odds": [ - { - "id": "810825615", - "odds": "10.000", - "name": "Daniel Raba", - "handicap": "" - }, - { - "id": "810824112", - "odds": "15.000", - "name": "Juan Latasa", - "handicap": "" - }, - { - "id": "713505303", - "odds": "1.300", - "name": "FT Result: Leganes", - "handicap": "" - }, - { - "id": "818170790", - "odds": "1.833", - "name": "Daniel Raba: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818170803", - "odds": "1.666", - "name": "Diego Garcia: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810816138", - "odds": "2.050", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818174813", - "odds": "1.727", - "name": "Juan Latasa: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818170892", - "odds": "1.533", - "name": "Seydouba Cisse: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713505316", - "odds": "9.500", - "name": "FT Result: Valladolid", - "handicap": "" - }, - { - "id": "810818057", - "odds": "1.666", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813198253", - "odds": "1.333", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "818234653", - "odds": "1.285", - "name": "Yan Diomande: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818174813", - "odds": "1.727", - "name": "Juan Latasa: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "813198253", - "odds": "1.333", - "name": "Over 7 Corners", - "handicap": "7.0" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-22T18:00:21+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9975311", - "FI": "174947318", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-22T17:49:38+03:00", - "Odds": [ - { - "id": "817009524", - "odds": "5.500", - "name": "Mexx Meerdink", - "handicap": "" - }, - { - "id": "817005544", - "odds": "12.000", - "name": "AZ 3-1", - "handicap": "" - }, - { - "id": "813187547", - "odds": "1.363", - "name": "FT Result: AZ", - "handicap": "" - }, - { - "id": "817005611", - "odds": "2.200", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "817008924", - "odds": "2.600", - "name": "Ernest Poku to Score", - "handicap": "" - }, - { - "id": "817005622", - "odds": "3.000", - "name": "Draw or Heerenveen", - "handicap": "" - }, - { - "id": "817831149", - "odds": "1.833", - "name": "Milos Lukovic: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "817831114", - "odds": "2.000", - "name": "Jacob Trenskow: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "817005829", - "odds": "1.800", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "817831128", - "odds": "2.625", - "name": "Levi Smans: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "817840797", - "odds": "1.333", - "name": "Ruben van Bommel: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "817828962", - "odds": "2.375", - "name": "Sven Mijnans: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "817026245", - "odds": "3.750", - "name": "Sven Mijnans to Assist", - "handicap": "" - }, - { - "id": "817008919", - "odds": "2.750", - "name": "Sven Mijnans to Score", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-22T18:00:27+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9975310", - "FI": "174947324", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-22T17:49:18+03:00", - "Odds": [ - { - "id": "817020783", - "odds": "7.000", - "name": "Ricky van Wolfswinkel", - "handicap": "" - }, - { - "id": "817020896", - "odds": "8.500", - "name": "Sem Steijn", - "handicap": "" - }, - { - "id": "813187813", - "odds": "1.700", - "name": "FT Result: FC Twente", - "handicap": "" - }, - { - "id": "817030231", - "odds": "3.400", - "name": "Sem Steijn to Assist", - "handicap": "" - }, - { - "id": "817020347", - "odds": "2.100", - "name": "Sem Steijn to Score", - "handicap": "" - }, - { - "id": "817013372", - "odds": "2.100", - "name": "Draw or NEC", - "handicap": "" - }, - { - "id": "817837995", - "odds": "1.666", - "name": "Bryan Linssen: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "817030440", - "odds": "3.200", - "name": "Bryan Linssen to Score or Assist", - "handicap": "" - }, - { - "id": "813187813", - "odds": "1.700", - "name": "FT Result: FC Twente", - "handicap": "" - }, - { - "id": "817014682", - "odds": "2.500", - "name": "FC Twente to Score in Both Halves", - "handicap": "" - }, - { - "id": "817020297", - "odds": "3.250", - "name": "Michel Vlap to Score", - "handicap": "" - }, - { - "id": "817013307", - "odds": "2.750", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "817030420", - "odds": "1.833", - "name": "Ricky van Wolfswinkel to Score or Assist", - "handicap": "" - }, - { - "id": "817030396", - "odds": "3.400", - "name": "Sami Ouaissa to Score or Assist", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-22T18:00:37+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977002", - "FI": "174206901", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-22T17:57:58+03:00", - "Odds": [ - { - "id": "810834176", - "odds": "13.000", - "name": "Valencia 2-1", - "handicap": "" - }, - { - "id": "810843474", - "odds": "7.000", - "name": "Hugo Duro", - "handicap": "" - }, - { - "id": "713504058", - "odds": "3.500", - "name": "FT Result: Valencia", - "handicap": "" - }, - { - "id": "818205392", - "odds": "1.333", - "name": "Hugo Duro: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818145409", - "odds": "1.615", - "name": "Luis Rioja: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713504056", - "odds": "2.000", - "name": "FT Result: Real Betis", - "handicap": "" - }, - { - "id": "818142082", - "odds": "2.375", - "name": "Juan Hernandez: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818142073", - "odds": "1.500", - "name": "Jesus Rodriguez: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713504058", - "odds": "3.500", - "name": "FT Result: Valencia", - "handicap": "" - }, - { - "id": "810835604", - "odds": "1.571", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "813193941", - "odds": "1.333", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "818142127", - "odds": "2.100", - "name": "Silva William Carvalho: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818205392", - "odds": "1.333", - "name": "Hugo Duro: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "810835604", - "odds": "1.571", - "name": "Both Teams to Score", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-22T18:01:14+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977004", - "FI": "174206928", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-22T17:55:04+03:00", - "Odds": [ - { - "id": "810825615", - "odds": "10.000", - "name": "Daniel Raba", - "handicap": "" - }, - { - "id": "810824112", - "odds": "15.000", - "name": "Juan Latasa", - "handicap": "" - }, - { - "id": "713505303", - "odds": "1.300", - "name": "FT Result: Leganes", - "handicap": "" - }, - { - "id": "818170790", - "odds": "1.833", - "name": "Daniel Raba: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818170803", - "odds": "1.666", - "name": "Diego Garcia: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810816138", - "odds": "2.050", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818174813", - "odds": "1.727", - "name": "Juan Latasa: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818170892", - "odds": "1.533", - "name": "Seydouba Cisse: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713505316", - "odds": "9.500", - "name": "FT Result: Valladolid", - "handicap": "" - }, - { - "id": "810818057", - "odds": "1.666", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813198253", - "odds": "1.333", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "818234653", - "odds": "1.285", - "name": "Yan Diomande: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818174813", - "odds": "1.727", - "name": "Juan Latasa: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "813198253", - "odds": "1.333", - "name": "Over 7 Corners", - "handicap": "7.0" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-22T18:01:16+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977005", - "FI": "174206938", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-22T17:58:53+03:00", - "Odds": [ - { - "id": "810793474", - "odds": "4.500", - "name": "Javi Puado", - "handicap": "" - }, - { - "id": "810793926", - "odds": "9.000", - "name": "Roberto Fernandez", - "handicap": "" - }, - { - "id": "713505983", - "odds": "1.363", - "name": "FT Result: Espanyol", - "handicap": "" - }, - { - "id": "818161086", - "odds": "1.909", - "name": "Javi Puado: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818161150", - "odds": "2.100", - "name": "Roberto Fernandez: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810785073", - "odds": "2.100", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818165373", - "odds": "2.100", - "name": "Alberto Moleiro: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818223267", - "odds": "1.200", - "name": "Javi Puado: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713505993", - "odds": "8.500", - "name": "FT Result: Las Palmas", - "handicap": "" - }, - { - "id": "813197755", - "odds": "1.300", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "810787654", - "odds": "1.800", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "818165415", - "odds": "2.000", - "name": "Oliver McBurnie: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818165371", - "odds": "3.000", - "name": "Adnan Januzaj: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818223546", - "odds": "1.250", - "name": "Roberto Fernandez: 1+ Shots on Target", - "handicap": "0.5" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-22T18:01:16+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977005", - "FI": "174206938", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-22T17:58:53+03:00", - "Odds": [ - { - "id": "810793474", - "odds": "4.500", - "name": "Javi Puado", - "handicap": "" - }, - { - "id": "810793926", - "odds": "9.000", - "name": "Roberto Fernandez", - "handicap": "" - }, - { - "id": "713505983", - "odds": "1.363", - "name": "FT Result: Espanyol", - "handicap": "" - }, - { - "id": "818161086", - "odds": "1.909", - "name": "Javi Puado: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818161150", - "odds": "2.100", - "name": "Roberto Fernandez: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810785073", - "odds": "2.100", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818165373", - "odds": "2.100", - "name": "Alberto Moleiro: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818223267", - "odds": "1.200", - "name": "Javi Puado: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713505993", - "odds": "8.500", - "name": "FT Result: Las Palmas", - "handicap": "" - }, - { - "id": "813197755", - "odds": "1.300", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "810787654", - "odds": "1.800", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "818165415", - "odds": "2.000", - "name": "Oliver McBurnie: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818165371", - "odds": "3.000", - "name": "Adnan Januzaj: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818223546", - "odds": "1.250", - "name": "Roberto Fernandez: 1+ Shots on Target", - "handicap": "0.5" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-22T18:01:27+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9757324", - "FI": "172433912", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-22T17:59:26+03:00", - "Odds": [ - { - "id": "817868646", - "odds": "4.250", - "name": "Ousmane Dembele", - "handicap": "" - }, - { - "id": "467772639", - "odds": "8.000", - "name": "PSG 3-0", - "handicap": "" - }, - { - "id": "467774766", - "odds": "2.100", - "name": "PSG to win by 3+ Goals", - "handicap": "" - }, - { - "id": "818472444", - "odds": "1.800", - "name": "Bradley Barcola: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818472520", - "odds": "1.615", - "name": "Khvicha Kvaratskhelia: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "467775416", - "odds": "2.000", - "name": "PSG to Win Both Halves", - "handicap": "" - }, - { - "id": "818525029", - "odds": "1.333", - "name": "Ousmane Dembele: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818524895", - "odds": "3.400", - "name": "Fabian Ruiz: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "467772622", - "odds": "1.500", - "name": "HT: PSG \u2013 FT: PSG", - "handicap": "" - }, - { - "id": "818979031", - "odds": "1.055", - "name": "Most Shots on Target: PSG", - "handicap": "" - }, - { - "id": "818977802", - "odds": "1.533", - "name": "Most Cards: Reims", - "handicap": "" - }, - { - "id": "467772737", - "odds": "1.909", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "467773042", - "odds": "2.200", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818525029", - "odds": "1.333", - "name": "Ousmane Dembele: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818525451", - "odds": "9.000", - "name": "Theoson Siebatcheu: 2+ Shots on Target", - "handicap": "1.5" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-22T18:30:25+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9975311", - "FI": "174947318", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-22T18:24:35+03:00", - "Odds": [ - { - "id": "817009524", - "odds": "5.500", - "name": "Mexx Meerdink", - "handicap": "" - }, - { - "id": "817005544", - "odds": "12.000", - "name": "AZ 3-1", - "handicap": "" - }, - { - "id": "813187547", - "odds": "1.363", - "name": "FT Result: AZ", - "handicap": "" - }, - { - "id": "817005611", - "odds": "2.200", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "817008924", - "odds": "2.600", - "name": "Ernest Poku to Score", - "handicap": "" - }, - { - "id": "817005622", - "odds": "3.000", - "name": "Draw or Heerenveen", - "handicap": "" - }, - { - "id": "817831149", - "odds": "1.833", - "name": "Milos Lukovic: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "817831114", - "odds": "2.000", - "name": "Jacob Trenskow: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "817005829", - "odds": "1.800", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "817831128", - "odds": "2.625", - "name": "Levi Smans: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "817840797", - "odds": "1.333", - "name": "Ruben van Bommel: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "817828962", - "odds": "2.375", - "name": "Sven Mijnans: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "817026245", - "odds": "3.750", - "name": "Sven Mijnans to Assist", - "handicap": "" - }, - { - "id": "817008919", - "odds": "2.750", - "name": "Sven Mijnans to Score", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-22T18:30:33+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9975310", - "FI": "174947324", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-22T18:18:11+03:00", - "Odds": [ - { - "id": "817020783", - "odds": "7.000", - "name": "Ricky van Wolfswinkel", - "handicap": "" - }, - { - "id": "817020896", - "odds": "8.500", - "name": "Sem Steijn", - "handicap": "" - }, - { - "id": "813187813", - "odds": "1.700", - "name": "FT Result: FC Twente", - "handicap": "" - }, - { - "id": "817030231", - "odds": "3.400", - "name": "Sem Steijn to Assist", - "handicap": "" - }, - { - "id": "817020347", - "odds": "2.100", - "name": "Sem Steijn to Score", - "handicap": "" - }, - { - "id": "817013372", - "odds": "2.100", - "name": "Draw or NEC", - "handicap": "" - }, - { - "id": "817837995", - "odds": "1.666", - "name": "Bryan Linssen: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "817030440", - "odds": "3.200", - "name": "Bryan Linssen to Score or Assist", - "handicap": "" - }, - { - "id": "813187813", - "odds": "1.700", - "name": "FT Result: FC Twente", - "handicap": "" - }, - { - "id": "817014682", - "odds": "2.500", - "name": "FC Twente to Score in Both Halves", - "handicap": "" - }, - { - "id": "817020297", - "odds": "3.250", - "name": "Michel Vlap to Score", - "handicap": "" - }, - { - "id": "817013307", - "odds": "2.750", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "817030420", - "odds": "1.833", - "name": "Ricky van Wolfswinkel to Score or Assist", - "handicap": "" - }, - { - "id": "817030396", - "odds": "3.400", - "name": "Sami Ouaissa to Score or Assist", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-22T18:30:54+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977002", - "FI": "174206901", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-22T18:29:17+03:00", - "Odds": [ - { - "id": "810834176", - "odds": "13.000", - "name": "Valencia 2-1", - "handicap": "" - }, - { - "id": "810843474", - "odds": "7.000", - "name": "Hugo Duro", - "handicap": "" - }, - { - "id": "713504058", - "odds": "3.500", - "name": "FT Result: Valencia", - "handicap": "" - }, - { - "id": "818205392", - "odds": "1.333", - "name": "Hugo Duro: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818145409", - "odds": "1.615", - "name": "Luis Rioja: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713504056", - "odds": "2.000", - "name": "FT Result: Real Betis", - "handicap": "" - }, - { - "id": "818142082", - "odds": "2.375", - "name": "Juan Hernandez: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818142073", - "odds": "1.500", - "name": "Jesus Rodriguez: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713504058", - "odds": "3.500", - "name": "FT Result: Valencia", - "handicap": "" - }, - { - "id": "810835604", - "odds": "1.571", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "813193941", - "odds": "1.333", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "818142127", - "odds": "2.100", - "name": "Silva William Carvalho: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818205392", - "odds": "1.333", - "name": "Hugo Duro: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "810835604", - "odds": "1.571", - "name": "Both Teams to Score", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-22T18:31:31+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977005", - "FI": "174206938", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-22T18:27:18+03:00", - "Odds": [ - { - "id": "810793474", - "odds": "4.500", - "name": "Javi Puado", - "handicap": "" - }, - { - "id": "810793926", - "odds": "9.000", - "name": "Roberto Fernandez", - "handicap": "" - }, - { - "id": "713505983", - "odds": "1.363", - "name": "FT Result: Espanyol", - "handicap": "" - }, - { - "id": "818161086", - "odds": "1.909", - "name": "Javi Puado: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818161150", - "odds": "2.100", - "name": "Roberto Fernandez: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810785073", - "odds": "2.100", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818165373", - "odds": "2.100", - "name": "Alberto Moleiro: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818223267", - "odds": "1.200", - "name": "Javi Puado: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713505993", - "odds": "8.500", - "name": "FT Result: Las Palmas", - "handicap": "" - }, - { - "id": "813197755", - "odds": "1.300", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "810787654", - "odds": "1.800", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "818165415", - "odds": "2.000", - "name": "Oliver McBurnie: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818165371", - "odds": "3.000", - "name": "Adnan Januzaj: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818223546", - "odds": "1.250", - "name": "Roberto Fernandez: 1+ Shots on Target", - "handicap": "0.5" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-22T18:31:31+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977005", - "FI": "174206938", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-22T18:27:18+03:00", - "Odds": [ - { - "id": "810793474", - "odds": "4.500", - "name": "Javi Puado", - "handicap": "" - }, - { - "id": "810793926", - "odds": "9.000", - "name": "Roberto Fernandez", - "handicap": "" - }, - { - "id": "713505983", - "odds": "1.363", - "name": "FT Result: Espanyol", - "handicap": "" - }, - { - "id": "818161086", - "odds": "1.909", - "name": "Javi Puado: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818161150", - "odds": "2.100", - "name": "Roberto Fernandez: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810785073", - "odds": "2.100", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818165373", - "odds": "2.100", - "name": "Alberto Moleiro: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818223267", - "odds": "1.200", - "name": "Javi Puado: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713505993", - "odds": "8.500", - "name": "FT Result: Las Palmas", - "handicap": "" - }, - { - "id": "813197755", - "odds": "1.300", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "810787654", - "odds": "1.800", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "818165415", - "odds": "2.000", - "name": "Oliver McBurnie: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818165371", - "odds": "3.000", - "name": "Adnan Januzaj: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818223546", - "odds": "1.250", - "name": "Roberto Fernandez: 1+ Shots on Target", - "handicap": "0.5" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-22T18:31:39+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977004", - "FI": "174206928", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-22T18:30:57+03:00", - "Odds": [ - { - "id": "810825615", - "odds": "10.000", - "name": "Daniel Raba", - "handicap": "" - }, - { - "id": "810824112", - "odds": "15.000", - "name": "Juan Latasa", - "handicap": "" - }, - { - "id": "713505303", - "odds": "1.300", - "name": "FT Result: Leganes", - "handicap": "" - }, - { - "id": "818170790", - "odds": "1.833", - "name": "Daniel Raba: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818170803", - "odds": "1.666", - "name": "Diego Garcia: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810816138", - "odds": "2.050", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818174813", - "odds": "1.727", - "name": "Juan Latasa: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818170892", - "odds": "1.533", - "name": "Seydouba Cisse: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713505316", - "odds": "9.500", - "name": "FT Result: Valladolid", - "handicap": "" - }, - { - "id": "810818057", - "odds": "1.666", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813198253", - "odds": "1.333", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "818234653", - "odds": "1.285", - "name": "Yan Diomande: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818174813", - "odds": "1.727", - "name": "Juan Latasa: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "813198253", - "odds": "1.333", - "name": "Over 7 Corners", - "handicap": "7.0" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-22T18:31:52+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977007", - "FI": "174206951", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-22T18:28:46+03:00", - "Odds": [ - { - "id": "810795373", - "odds": "2.875", - "name": "1", - "handicap": "" - }, - { - "id": "810801154", - "odds": "5.500", - "name": "Borja Iglesias", - "handicap": "" - }, - { - "id": "713507435", - "odds": "1.850", - "name": "FT Result: Celta Vigo", - "handicap": "" - }, - { - "id": "810884551", - "odds": "3.100", - "name": "Oscar Mingueza to Score or Assist", - "handicap": "" - }, - { - "id": "818234750", - "odds": "3.500", - "name": "Beltran Fran: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713507421", - "odds": "4.100", - "name": "FT Result: Getafe", - "handicap": "" - }, - { - "id": "810795706", - "odds": "2.100", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813201935", - "odds": "1.500", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "713507435", - "odds": "1.850", - "name": "FT Result: Celta Vigo", - "handicap": "" - }, - { - "id": "818234755", - "odds": "1.909", - "name": "Borja Iglesias: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818234745", - "odds": "1.800", - "name": "Alfonso Gonzalez: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818272688", - "odds": "1.285", - "name": "Moya Borja Mayoral: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818232899", - "odds": "1.533", - "name": "Chrisantus Uche: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818235077", - "odds": "2.625", - "name": "Oscar Mingueza: 1+ Shots on Target", - "handicap": "0.5" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-22T18:31:52+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977007", - "FI": "174206951", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-22T18:28:46+03:00", - "Odds": [ - { - "id": "810795373", - "odds": "2.875", - "name": "1", - "handicap": "" - }, - { - "id": "810801154", - "odds": "5.500", - "name": "Borja Iglesias", - "handicap": "" - }, - { - "id": "713507435", - "odds": "1.850", - "name": "FT Result: Celta Vigo", - "handicap": "" - }, - { - "id": "810884551", - "odds": "3.100", - "name": "Oscar Mingueza to Score or Assist", - "handicap": "" - }, - { - "id": "818234750", - "odds": "3.500", - "name": "Beltran Fran: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713507421", - "odds": "4.100", - "name": "FT Result: Getafe", - "handicap": "" - }, - { - "id": "810795706", - "odds": "2.100", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813201935", - "odds": "1.500", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "713507435", - "odds": "1.850", - "name": "FT Result: Celta Vigo", - "handicap": "" - }, - { - "id": "818234755", - "odds": "1.909", - "name": "Borja Iglesias: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818234745", - "odds": "1.800", - "name": "Alfonso Gonzalez: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818272688", - "odds": "1.285", - "name": "Moya Borja Mayoral: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818232899", - "odds": "1.533", - "name": "Chrisantus Uche: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818235077", - "odds": "2.625", - "name": "Oscar Mingueza: 1+ Shots on Target", - "handicap": "0.5" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-22T18:31:58+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977008", - "FI": "174206957", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-22T18:28:03+03:00", - "Odds": [ - { - "id": "810830891", - "odds": "8.500", - "name": "Isi Palazon", - "handicap": "" - }, - { - "id": "810826957", - "odds": "3.750", - "name": "2", - "handicap": "" - }, - { - "id": "713507997", - "odds": "1.533", - "name": "FT Result: Rayo Vallecano", - "handicap": "" - }, - { - "id": "810911970", - "odds": "2.250", - "name": "Jorge De Frutos to Score or Assist", - "handicap": "" - }, - { - "id": "818242351", - "odds": "2.000", - "name": "Isi Palazon: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810827485", - "odds": "2.200", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818248799", - "odds": "3.250", - "name": "Sergi Darder: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818300359", - "odds": "1.222", - "name": "Isi Palazon: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "810827053", - "odds": "2.375", - "name": "HT: Rayo Vallecano \u2013 FT: Rayo Vallecano", - "handicap": "" - }, - { - "id": "810827602", - "odds": "2.625", - "name": "Rayo Vallecano to Score in Both Halves", - "handicap": "" - }, - { - "id": "810830483", - "odds": "4.000", - "name": "Adrian Embarba to Score", - "handicap": "" - }, - { - "id": "713508001", - "odds": "6.250", - "name": "FT Result: Mallorca", - "handicap": "" - }, - { - "id": "810827203", - "odds": "2.100", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813203878", - "odds": "1.300", - "name": "Over 7 Corners", - "handicap": "7.0" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-22T18:32:09+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977003", - "FI": "174206914", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-22T18:18:52+03:00", - "Odds": [ - { - "id": "810782401", - "odds": "6.500", - "name": "Ante Budimir", - "handicap": "" - }, - { - "id": "810782255", - "odds": "17.000", - "name": "Jon Guridi", - "handicap": "" - }, - { - "id": "713504570", - "odds": "2.350", - "name": "FT Result: Osasuna", - "handicap": "" - }, - { - "id": "818200891", - "odds": "1.615", - "name": "Ante Budimir: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810881584", - "odds": "1.833", - "name": "Ante Budimir to Score or Assist", - "handicap": "" - }, - { - "id": "713504562", - "odds": "3.200", - "name": "FT Result: CD Alaves", - "handicap": "" - }, - { - "id": "818200816", - "odds": "1.615", - "name": "Carlos Vicente: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "810881581", - "odds": "3.500", - "name": "Jon Guridi to Score or Assist", - "handicap": "" - }, - { - "id": "810778158", - "odds": "4.000", - "name": "Osasuna to Score in Both Halves", - "handicap": "" - }, - { - "id": "810881558", - "odds": "2.100", - "name": "Bryan Zaragoza to Score or Assist", - "handicap": "" - }, - { - "id": "810881580", - "odds": "3.100", - "name": "Aimar Oroz to Score or Assist", - "handicap": "" - }, - { - "id": "713504562", - "odds": "3.200", - "name": "FT Result: CD Alaves", - "handicap": "" - }, - { - "id": "810777871", - "odds": "1.950", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "813199262", - "odds": "1.333", - "name": "Over 7 Corners", - "handicap": "7.0" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-22T18:32:17+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9757324", - "FI": "172433912", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-22T18:30:11+03:00", - "Odds": [ - { - "id": "817868646", - "odds": "4.250", - "name": "Ousmane Dembele", - "handicap": "" - }, - { - "id": "467772639", - "odds": "8.000", - "name": "PSG 3-0", - "handicap": "" - }, - { - "id": "467774766", - "odds": "2.100", - "name": "PSG to win by 3+ Goals", - "handicap": "" - }, - { - "id": "818472444", - "odds": "1.800", - "name": "Bradley Barcola: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818472520", - "odds": "1.615", - "name": "Khvicha Kvaratskhelia: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "467775416", - "odds": "2.000", - "name": "PSG to Win Both Halves", - "handicap": "" - }, - { - "id": "818525029", - "odds": "1.333", - "name": "Ousmane Dembele: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818524895", - "odds": "3.400", - "name": "Fabian Ruiz: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "467772622", - "odds": "1.500", - "name": "HT: PSG \u2013 FT: PSG", - "handicap": "" - }, - { - "id": "818979031", - "odds": "1.055", - "name": "Most Shots on Target: PSG", - "handicap": "" - }, - { - "id": "818977802", - "odds": "1.533", - "name": "Most Cards: Reims", - "handicap": "" - }, - { - "id": "467772737", - "odds": "1.909", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "467773042", - "odds": "2.200", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818525029", - "odds": "1.333", - "name": "Ousmane Dembele: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818525451", - "odds": "9.000", - "name": "Theoson Siebatcheu: 2+ Shots on Target", - "handicap": "1.5" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-22T18:33:02+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9289267", - "FI": "174218987", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-22T18:28:07+03:00", - "Odds": [ - { - "id": "806548682", - "odds": "13.000", - "name": "Wilfried Zaha", - "handicap": "" - }, - { - "id": "806547960", - "odds": "19.000", - "name": "Jacen Russell-Rowe", - "handicap": "" - }, - { - "id": "714859478", - "odds": "2.700", - "name": "FT Result: Charlotte FC", - "handicap": "" - }, - { - "id": "812225920", - "odds": "1.400", - "name": "Liel Abada: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "812481096", - "odds": "1.363", - "name": "Patrick Agyemang: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "714859480", - "odds": "2.500", - "name": "FT Result: Columbus Crew", - "handicap": "" - }, - { - "id": "812228823", - "odds": "1.500", - "name": "Daniel Gazdag: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "812228831", - "odds": "2.625", - "name": "Diego Rossi: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "827337512", - "odds": "2.100", - "name": "Over 4 Corners for Charlotte FC", - "handicap": "4" - }, - { - "id": "827337557", - "odds": "1.833", - "name": "Over 4 Corners for Columbus Crew", - "handicap": "4" - }, - { - "id": "806542309", - "odds": "1.571", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "812481093", - "odds": "3.000", - "name": "Liel Abada: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "816983630", - "odds": "1.333", - "name": "Diego Rossi: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "806544053", - "odds": "1.666", - "name": "Over 2 Goals", - "handicap": "2" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T15:00:09+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9975311", - "FI": "174947318", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-22T19:43:57+03:00", - "Odds": [ - { - "id": "817009524", - "odds": "5.500", - "name": "Mexx Meerdink", - "handicap": "" - }, - { - "id": "817005544", - "odds": "12.000", - "name": "AZ 3-1", - "handicap": "" - }, - { - "id": "813187547", - "odds": "1.300", - "name": "FT Result: AZ", - "handicap": "" - }, - { - "id": "817005611", - "odds": "2.250", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "817008924", - "odds": "2.400", - "name": "Ernest Poku to Score", - "handicap": "" - }, - { - "id": "817005622", - "odds": "3.400", - "name": "Draw or Heerenveen", - "handicap": "" - }, - { - "id": "817831149", - "odds": "2.100", - "name": "Milos Lukovic: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "817831114", - "odds": "2.375", - "name": "Jacob Trenskow: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "817005829", - "odds": "1.950", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "817831128", - "odds": "3.000", - "name": "Levi Smans: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "817840797", - "odds": "1.250", - "name": "Ruben van Bommel: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "817828962", - "odds": "2.375", - "name": "Sven Mijnans: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "817026245", - "odds": "3.750", - "name": "Sven Mijnans to Assist", - "handicap": "" - }, - { - "id": "817008919", - "odds": "2.750", - "name": "Sven Mijnans to Score", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T15:00:13+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9975310", - "FI": "174947324", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-22T21:58:44+03:00", - "Odds": [ - { - "id": "817020783", - "odds": "7.000", - "name": "Ricky van Wolfswinkel", - "handicap": "" - }, - { - "id": "817020896", - "odds": "8.500", - "name": "Sem Steijn", - "handicap": "" - }, - { - "id": "813187813", - "odds": "1.727", - "name": "FT Result: FC Twente", - "handicap": "" - }, - { - "id": "817030231", - "odds": "3.400", - "name": "Sem Steijn to Assist", - "handicap": "" - }, - { - "id": "817020347", - "odds": "2.100", - "name": "Sem Steijn to Score", - "handicap": "" - }, - { - "id": "817013372", - "odds": "2.050", - "name": "Draw or NEC", - "handicap": "" - }, - { - "id": "817837995", - "odds": "1.615", - "name": "Bryan Linssen: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "817030440", - "odds": "2.875", - "name": "Bryan Linssen to Score or Assist", - "handicap": "" - }, - { - "id": "813187813", - "odds": "1.727", - "name": "FT Result: FC Twente", - "handicap": "" - }, - { - "id": "817014682", - "odds": "2.500", - "name": "FC Twente to Score in Both Halves", - "handicap": "" - }, - { - "id": "817020297", - "odds": "3.200", - "name": "Michel Vlap to Score", - "handicap": "" - }, - { - "id": "817013307", - "odds": "2.625", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "817030420", - "odds": "1.800", - "name": "Ricky van Wolfswinkel to Score or Assist", - "handicap": "" - }, - { - "id": "817030396", - "odds": "3.250", - "name": "Sami Ouaissa to Score or Assist", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T15:00:49+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977002", - "FI": "174206901", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T14:50:44+03:00", - "Odds": [ - { - "id": "810834176", - "odds": "13.000", - "name": "Valencia 2-1", - "handicap": "" - }, - { - "id": "810843474", - "odds": "8.000", - "name": "Hugo Duro", - "handicap": "" - }, - { - "id": "713504056", - "odds": "1.950", - "name": "FT Result: Real Betis", - "handicap": "" - }, - { - "id": "818142082", - "odds": "2.375", - "name": "Juan Hernandez: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818142073", - "odds": "1.444", - "name": "Jesus Rodriguez: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713504058", - "odds": "3.600", - "name": "FT Result: Valencia", - "handicap": "" - }, - { - "id": "818205392", - "odds": "1.333", - "name": "Hugo Duro: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818145409", - "odds": "1.533", - "name": "Luis Rioja: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713504058", - "odds": "3.600", - "name": "FT Result: Valencia", - "handicap": "" - }, - { - "id": "810835604", - "odds": "1.571", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "813193941", - "odds": "1.333", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "818142127", - "odds": "2.100", - "name": "Silva William Carvalho: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818205392", - "odds": "1.333", - "name": "Hugo Duro: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "810835604", - "odds": "1.571", - "name": "Both Teams to Score", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T15:15:15+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977002", - "FI": "174206901", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T15:12:14+03:00", - "Odds": [ - { - "id": "810834176", - "odds": "13.000", - "name": "Valencia 2-1", - "handicap": "" - }, - { - "id": "810843474", - "odds": "8.000", - "name": "Hugo Duro", - "handicap": "" - }, - { - "id": "713504056", - "odds": "1.950", - "name": "FT Result: Real Betis", - "handicap": "" - }, - { - "id": "818142082", - "odds": "2.375", - "name": "Juan Hernandez: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818142073", - "odds": "1.444", - "name": "Jesus Rodriguez: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713504058", - "odds": "3.600", - "name": "FT Result: Valencia", - "handicap": "" - }, - { - "id": "818205392", - "odds": "1.333", - "name": "Hugo Duro: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818145409", - "odds": "1.533", - "name": "Luis Rioja: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713504058", - "odds": "3.600", - "name": "FT Result: Valencia", - "handicap": "" - }, - { - "id": "810835604", - "odds": "1.571", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "813193941", - "odds": "1.333", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "818142127", - "odds": "2.100", - "name": "Silva William Carvalho: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818205392", - "odds": "1.333", - "name": "Hugo Duro: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "810835604", - "odds": "1.571", - "name": "Both Teams to Score", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T15:15:49+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "8826418", - "FI": "174588296", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T15:10:44+03:00", - "Odds": [ - { - "id": "819956646", - "odds": "1.500", - "name": "Alexandru Maxim: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "765037294", - "odds": "2.600", - "name": "FT Result: Gaziantep FK", - "handicap": "" - }, - { - "id": "819311085", - "odds": "2.100", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "819959543", - "odds": "2.375", - "name": "Joia Nuno Da Costa: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "765037306", - "odds": "2.375", - "name": "FT Result: Kasimpasa", - "handicap": "" - }, - { - "id": "819312321", - "odds": "1.444", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "820280304", - "odds": "1.363", - "name": "Aytac Kara: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "819312321", - "odds": "1.444", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "819315041", - "odds": "3.750", - "name": "Over 4 Goals", - "handicap": "4" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T15:16:02+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977004", - "FI": "174206928", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T15:10:36+03:00", - "Odds": [ - { - "id": "810825615", - "odds": "10.000", - "name": "Daniel Raba", - "handicap": "" - }, - { - "id": "810824112", - "odds": "15.000", - "name": "Juan Latasa", - "handicap": "" - }, - { - "id": "818234653", - "odds": "1.285", - "name": "Yan Diomande: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818174813", - "odds": "1.727", - "name": "Juan Latasa: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "813198253", - "odds": "1.333", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "713505303", - "odds": "1.300", - "name": "FT Result: Leganes", - "handicap": "" - }, - { - "id": "818170790", - "odds": "1.833", - "name": "Daniel Raba: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818170803", - "odds": "1.666", - "name": "Diego Garcia: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810816138", - "odds": "2.050", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818174813", - "odds": "1.727", - "name": "Juan Latasa: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818170892", - "odds": "1.533", - "name": "Seydouba Cisse: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713505316", - "odds": "9.500", - "name": "FT Result: Valladolid", - "handicap": "" - }, - { - "id": "810818057", - "odds": "1.666", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813198253", - "odds": "1.333", - "name": "Over 7 Corners", - "handicap": "7.0" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T15:16:14+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977005", - "FI": "174206938", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T15:14:39+03:00", - "Odds": [ - { - "id": "810793474", - "odds": "4.500", - "name": "Javi Puado", - "handicap": "" - }, - { - "id": "810793926", - "odds": "9.500", - "name": "Roberto Fernandez", - "handicap": "" - }, - { - "id": "818165415", - "odds": "2.000", - "name": "Oliver McBurnie: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818165371", - "odds": "2.750", - "name": "Adnan Januzaj: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818223546", - "odds": "1.250", - "name": "Roberto Fernandez: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713505983", - "odds": "1.380", - "name": "FT Result: Espanyol", - "handicap": "" - }, - { - "id": "818161086", - "odds": "1.909", - "name": "Javi Puado: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818161150", - "odds": "2.100", - "name": "Roberto Fernandez: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810785073", - "odds": "2.100", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818165373", - "odds": "2.100", - "name": "Alberto Moleiro: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818223267", - "odds": "1.200", - "name": "Javi Puado: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713505993", - "odds": "8.000", - "name": "FT Result: Las Palmas", - "handicap": "" - }, - { - "id": "813197755", - "odds": "1.300", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "810787654", - "odds": "1.800", - "name": "Over 2 Goals", - "handicap": "2" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T15:16:14+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977005", - "FI": "174206938", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T15:14:39+03:00", - "Odds": [ - { - "id": "810793474", - "odds": "4.500", - "name": "Javi Puado", - "handicap": "" - }, - { - "id": "810793926", - "odds": "9.500", - "name": "Roberto Fernandez", - "handicap": "" - }, - { - "id": "818165415", - "odds": "2.000", - "name": "Oliver McBurnie: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818165371", - "odds": "2.750", - "name": "Adnan Januzaj: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818223546", - "odds": "1.250", - "name": "Roberto Fernandez: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713505983", - "odds": "1.380", - "name": "FT Result: Espanyol", - "handicap": "" - }, - { - "id": "818161086", - "odds": "1.909", - "name": "Javi Puado: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818161150", - "odds": "2.100", - "name": "Roberto Fernandez: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810785073", - "odds": "2.100", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818165373", - "odds": "2.100", - "name": "Alberto Moleiro: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818223267", - "odds": "1.200", - "name": "Javi Puado: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713505993", - "odds": "8.000", - "name": "FT Result: Las Palmas", - "handicap": "" - }, - { - "id": "813197755", - "odds": "1.300", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "810787654", - "odds": "1.800", - "name": "Over 2 Goals", - "handicap": "2" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T15:16:24+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9757324", - "FI": "172433912", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T15:16:07+03:00", - "Odds": [ - { - "id": "817868646", - "odds": "4.250", - "name": "Ousmane Dembele", - "handicap": "" - }, - { - "id": "467772639", - "odds": "8.000", - "name": "PSG 3-0", - "handicap": "" - }, - { - "id": "467774766", - "odds": "2.050", - "name": "PSG to win by 3+ Goals", - "handicap": "" - }, - { - "id": "818472444", - "odds": "1.800", - "name": "Bradley Barcola: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818472520", - "odds": "1.571", - "name": "Khvicha Kvaratskhelia: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "467775416", - "odds": "2.000", - "name": "PSG to Win Both Halves", - "handicap": "" - }, - { - "id": "818525029", - "odds": "1.333", - "name": "Ousmane Dembele: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818524895", - "odds": "3.250", - "name": "Fabian Ruiz: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "467772622", - "odds": "1.500", - "name": "HT: PSG \u2013 FT: PSG", - "handicap": "" - }, - { - "id": "818979031", - "odds": "1.055", - "name": "Most Shots on Target: PSG", - "handicap": "" - }, - { - "id": "818977802", - "odds": "1.533", - "name": "Most Cards: Reims", - "handicap": "" - }, - { - "id": "467772737", - "odds": "1.833", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "467773042", - "odds": "2.200", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818525029", - "odds": "1.333", - "name": "Ousmane Dembele: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818525451", - "odds": "10.000", - "name": "Theoson Siebatcheu: 2+ Shots on Target", - "handicap": "1.5" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T15:16:38+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977003", - "FI": "174206914", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T15:10:37+03:00", - "Odds": [ - { - "id": "810782401", - "odds": "6.500", - "name": "Ante Budimir", - "handicap": "" - }, - { - "id": "810782255", - "odds": "17.000", - "name": "Jon Guridi", - "handicap": "" - }, - { - "id": "713504570", - "odds": "2.350", - "name": "FT Result: Osasuna", - "handicap": "" - }, - { - "id": "818200891", - "odds": "1.615", - "name": "Ante Budimir: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810881584", - "odds": "1.833", - "name": "Ante Budimir to Score or Assist", - "handicap": "" - }, - { - "id": "713504562", - "odds": "3.200", - "name": "FT Result: CD Alaves", - "handicap": "" - }, - { - "id": "810777871", - "odds": "1.950", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "813199262", - "odds": "1.333", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "713504562", - "odds": "3.200", - "name": "FT Result: CD Alaves", - "handicap": "" - }, - { - "id": "818200816", - "odds": "1.615", - "name": "Carlos Vicente: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "810881581", - "odds": "3.500", - "name": "Jon Guridi to Score or Assist", - "handicap": "" - }, - { - "id": "810778158", - "odds": "4.000", - "name": "Osasuna to Score in Both Halves", - "handicap": "" - }, - { - "id": "810881558", - "odds": "2.100", - "name": "Bryan Zaragoza to Score or Assist", - "handicap": "" - }, - { - "id": "810881580", - "odds": "3.100", - "name": "Aimar Oroz to Score or Assist", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T15:16:46+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977007", - "FI": "174206951", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T15:14:36+03:00", - "Odds": [ - { - "id": "810795373", - "odds": "2.875", - "name": "1", - "handicap": "" - }, - { - "id": "810801154", - "odds": "5.500", - "name": "Borja Iglesias", - "handicap": "" - }, - { - "id": "713507435", - "odds": "1.850", - "name": "FT Result: Celta Vigo", - "handicap": "" - }, - { - "id": "818234755", - "odds": "1.909", - "name": "Borja Iglesias: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818234745", - "odds": "1.800", - "name": "Alfonso Gonzalez: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713507421", - "odds": "4.100", - "name": "FT Result: Getafe", - "handicap": "" - }, - { - "id": "810795706", - "odds": "2.100", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813201935", - "odds": "1.533", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "713507435", - "odds": "1.850", - "name": "FT Result: Celta Vigo", - "handicap": "" - }, - { - "id": "810884551", - "odds": "3.100", - "name": "Oscar Mingueza to Score or Assist", - "handicap": "" - }, - { - "id": "818234750", - "odds": "3.500", - "name": "Beltran Fran: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818272688", - "odds": "1.285", - "name": "Moya Borja Mayoral: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818232899", - "odds": "1.533", - "name": "Chrisantus Uche: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818235077", - "odds": "2.625", - "name": "Oscar Mingueza: 1+ Shots on Target", - "handicap": "0.5" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T15:16:46+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977007", - "FI": "174206951", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T15:14:36+03:00", - "Odds": [ - { - "id": "810795373", - "odds": "2.875", - "name": "1", - "handicap": "" - }, - { - "id": "810801154", - "odds": "5.500", - "name": "Borja Iglesias", - "handicap": "" - }, - { - "id": "713507435", - "odds": "1.850", - "name": "FT Result: Celta Vigo", - "handicap": "" - }, - { - "id": "818234755", - "odds": "1.909", - "name": "Borja Iglesias: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818234745", - "odds": "1.800", - "name": "Alfonso Gonzalez: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713507421", - "odds": "4.100", - "name": "FT Result: Getafe", - "handicap": "" - }, - { - "id": "810795706", - "odds": "2.100", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813201935", - "odds": "1.533", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "713507435", - "odds": "1.850", - "name": "FT Result: Celta Vigo", - "handicap": "" - }, - { - "id": "810884551", - "odds": "3.100", - "name": "Oscar Mingueza to Score or Assist", - "handicap": "" - }, - { - "id": "818234750", - "odds": "3.500", - "name": "Beltran Fran: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818272688", - "odds": "1.285", - "name": "Moya Borja Mayoral: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818232899", - "odds": "1.533", - "name": "Chrisantus Uche: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818235077", - "odds": "2.625", - "name": "Oscar Mingueza: 1+ Shots on Target", - "handicap": "0.5" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T15:16:52+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977008", - "FI": "174206957", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T15:14:19+03:00", - "Odds": [ - { - "id": "810830891", - "odds": "8.500", - "name": "Isi Palazon", - "handicap": "" - }, - { - "id": "810826957", - "odds": "3.750", - "name": "2", - "handicap": "" - }, - { - "id": "713508001", - "odds": "6.250", - "name": "FT Result: Mallorca", - "handicap": "" - }, - { - "id": "810827203", - "odds": "2.100", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813203878", - "odds": "1.300", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "713507997", - "odds": "1.533", - "name": "FT Result: Rayo Vallecano", - "handicap": "" - }, - { - "id": "810911970", - "odds": "2.250", - "name": "Jorge De Frutos to Score or Assist", - "handicap": "" - }, - { - "id": "818242351", - "odds": "2.000", - "name": "Isi Palazon: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810827485", - "odds": "2.200", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818248799", - "odds": "3.250", - "name": "Sergi Darder: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818300359", - "odds": "1.222", - "name": "Isi Palazon: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "810827053", - "odds": "2.375", - "name": "HT: Rayo Vallecano \u2013 FT: Rayo Vallecano", - "handicap": "" - }, - { - "id": "810827602", - "odds": "2.625", - "name": "Rayo Vallecano to Score in Both Halves", - "handicap": "" - }, - { - "id": "810830483", - "odds": "4.000", - "name": "Adrian Embarba to Score", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T15:18:34+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9289262", - "FI": "174219002", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T15:16:18+03:00", - "Odds": [ - { - "id": "806670446", - "odds": "13.000", - "name": "Tani Oluwaseyi", - "handicap": "" - }, - { - "id": "806655131", - "odds": "9.500", - "name": "Minnesota United 2-1", - "handicap": "" - }, - { - "id": "714859773", - "odds": "1.727", - "name": "FT Result: Minnesota United", - "handicap": "" - }, - { - "id": "812331324", - "odds": "1.800", - "name": "Kelvin Yeboah: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "812331345", - "odds": "2.375", - "name": "Tani Oluwaseyi: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "806655293", - "odds": "2.050", - "name": "Draw or Austin FC", - "handicap": "" - }, - { - "id": "812335148", - "odds": "1.571", - "name": "Myrto Uzuni: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "812334820", - "odds": "1.571", - "name": "Brandon Vazquez: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "827362447", - "odds": "1.533", - "name": "Over 4 Corners for Minnesota United", - "handicap": "4" - }, - { - "id": "827362563", - "odds": "2.200", - "name": "Over 4 Corners for Austin FC", - "handicap": "4" - }, - { - "id": "806655241", - "odds": "1.950", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "806655104", - "odds": "2.625", - "name": "HT: Minnesota United \u2013 FT: Minnesota United", - "handicap": "" - }, - { - "id": "827360459", - "odds": "1.615", - "name": "Most Corners: Minnesota United", - "handicap": "" - }, - { - "id": "806963379", - "odds": "1.800", - "name": "Kelvin Yeboah to Score or Assist", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T15:18:41+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9289261", - "FI": "174219004", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T15:14:57+03:00", - "Odds": [ - { - "id": "806742909", - "odds": "12.000", - "name": "Joao Klauss", - "handicap": "" - }, - { - "id": "806741536", - "odds": "8.500", - "name": "Darren Yapi", - "handicap": "" - }, - { - "id": "714859800", - "odds": "1.850", - "name": "FT Result: Colorado Rapids", - "handicap": "" - }, - { - "id": "812359565", - "odds": "2.100", - "name": "Djordje Mihailovic: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "812508432", - "odds": "3.000", - "name": "Kevin Cabral: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "806733943", - "odds": "1.909", - "name": "Draw or St. Louis City SC", - "handicap": "" - }, - { - "id": "812362704", - "odds": "1.444", - "name": "Cedric Teuchert: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "812362834", - "odds": "1.500", - "name": "Marcel Hartel: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "812508349", - "odds": "3.250", - "name": "Cedric Teuchert: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "812359565", - "odds": "2.100", - "name": "Djordje Mihailovic: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "806737965", - "odds": "1.600", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "714859800", - "odds": "1.850", - "name": "FT Result: Colorado Rapids", - "handicap": "" - }, - { - "id": "827381382", - "odds": "1.250", - "name": "Over 3 Corners for Colorado Rapids", - "handicap": "3" - }, - { - "id": "807040642", - "odds": "2.100", - "name": "Darren Yapi to Score or Assist", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T15:18:49+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9289260", - "FI": "174219006", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T15:18:22+03:00", - "Odds": [ - { - "id": "806753712", - "odds": "8.500", - "name": "Brian White", - "handicap": "" - }, - { - "id": "806753521", - "odds": "7.000", - "name": "William Agada", - "handicap": "" - }, - { - "id": "714859829", - "odds": "2.500", - "name": "FT Result: Real Salt Lake", - "handicap": "" - }, - { - "id": "812514424", - "odds": "1.333", - "name": "William Agada: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "812377943", - "odds": "1.400", - "name": "Diogo Goncalves: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "714859831", - "odds": "2.600", - "name": "FT Result: Vancouver Whitecaps", - "handicap": "" - }, - { - "id": "812380351", - "odds": "2.100", - "name": "Pedro Vite: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "812380265", - "odds": "2.750", - "name": "Brian White: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "827384577", - "odds": "1.666", - "name": "Over 4 Corners for Real Salt Lake", - "handicap": "4" - }, - { - "id": "827384725", - "odds": "1.909", - "name": "Over 4 Corners for Vancouver Whitecaps", - "handicap": "4" - }, - { - "id": "806747601", - "odds": "1.666", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "812377945", - "odds": "1.833", - "name": "Dominik Marczuk: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "812380239", - "odds": "2.250", - "name": "Ali Ahmed: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "806749654", - "odds": "1.800", - "name": "Over 2 Goals", - "handicap": "2" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T15:19:02+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977006", - "FI": "174206945", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T14:59:15+03:00", - "Odds": [ - { - "id": "810813006", - "odds": "8.000", - "name": "Cristhian Stuani", - "handicap": "" - }, - { - "id": "810805461", - "odds": "12.000", - "name": "Atletico Madrid 2-0", - "handicap": "" - }, - { - "id": "713506844", - "odds": "3.800", - "name": "FT Result: Girona", - "handicap": "" - }, - { - "id": "810809282", - "odds": "1.615", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813205972", - "odds": "1.363", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "713506855", - "odds": "1.909", - "name": "FT Result: Atletico Madrid", - "handicap": "" - }, - { - "id": "818257779", - "odds": "2.625", - "name": "Antoine Griezmann: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818257773", - "odds": "2.625", - "name": "Angel Correa: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "713506844", - "odds": "3.800", - "name": "FT Result: Girona", - "handicap": "" - }, - { - "id": "832763395", - "odds": "1.400", - "name": "Cristhian Stuani: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818254988", - "odds": "1.444", - "name": "Viktor Tsygankov: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818257791", - "odds": "1.833", - "name": "Conor Gallagher: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818257811", - "odds": "1.400", - "name": "Samuel Lino: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818306498", - "odds": "1.363", - "name": "Antoine Griezmann: 1+ Shots on Target", - "handicap": "0.5" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T15:19:02+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977006", - "FI": "174206945", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T14:59:15+03:00", - "Odds": [ - { - "id": "810813006", - "odds": "8.000", - "name": "Cristhian Stuani", - "handicap": "" - }, - { - "id": "810805461", - "odds": "12.000", - "name": "Atletico Madrid 2-0", - "handicap": "" - }, - { - "id": "713506844", - "odds": "3.800", - "name": "FT Result: Girona", - "handicap": "" - }, - { - "id": "810809282", - "odds": "1.615", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813205972", - "odds": "1.363", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "713506855", - "odds": "1.909", - "name": "FT Result: Atletico Madrid", - "handicap": "" - }, - { - "id": "818257779", - "odds": "2.625", - "name": "Antoine Griezmann: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818257773", - "odds": "2.625", - "name": "Angel Correa: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "713506844", - "odds": "3.800", - "name": "FT Result: Girona", - "handicap": "" - }, - { - "id": "832763395", - "odds": "1.400", - "name": "Cristhian Stuani: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818254988", - "odds": "1.444", - "name": "Viktor Tsygankov: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818257791", - "odds": "1.833", - "name": "Conor Gallagher: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818257811", - "odds": "1.400", - "name": "Samuel Lino: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818306498", - "odds": "1.363", - "name": "Antoine Griezmann: 1+ Shots on Target", - "handicap": "0.5" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T15:20:40+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "8822035", - "FI": "174588284", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T14:51:43+03:00", - "Odds": [ - { - "id": "820312223", - "odds": "3.400", - "name": "Duckens Nazon: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "819383249", - "odds": "1.800", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "827542181", - "odds": "3.400", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "819997827", - "odds": "1.500", - "name": "Gokdeniz Bayrakdar: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "819383249", - "odds": "1.800", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "827542181", - "odds": "3.400", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "819997755", - "odds": "1.666", - "name": "Alredo Fredy: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "765036662", - "odds": "1.950", - "name": "FT Result: Bodrum FK", - "handicap": "" - }, - { - "id": "819383249", - "odds": "1.800", - "name": "Both Teams to Score", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T15:20:40+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "8822035", - "FI": "174588284", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T14:51:43+03:00", - "Odds": [ - { - "id": "820312223", - "odds": "3.400", - "name": "Duckens Nazon: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "819383249", - "odds": "1.800", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "827542181", - "odds": "3.400", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "819997827", - "odds": "1.500", - "name": "Gokdeniz Bayrakdar: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "819383249", - "odds": "1.800", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "827542181", - "odds": "3.400", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "819997755", - "odds": "1.666", - "name": "Alredo Fredy: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "765036662", - "odds": "1.950", - "name": "FT Result: Bodrum FK", - "handicap": "" - }, - { - "id": "819383249", - "odds": "1.800", - "name": "Both Teams to Score", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T15:20:47+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "8822034", - "FI": "174588286", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T15:18:19+03:00", - "Odds": [ - { - "id": "820006660", - "odds": "1.571", - "name": "Mehmet Nayir: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "765036764", - "odds": "2.800", - "name": "FT Result: Konyaspor", - "handicap": "" - }, - { - "id": "819391476", - "odds": "3.250", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "820321024", - "odds": "3.000", - "name": "Andraz Sporar: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "765036767", - "odds": "2.250", - "name": "FT Result: Alanyaspor", - "handicap": "" - }, - { - "id": "819400742", - "odds": "1.727", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "820009298", - "odds": "1.666", - "name": "Eui-Jo Hwang: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "819400742", - "odds": "1.727", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "819391476", - "odds": "3.250", - "name": "Over 3 Goals", - "handicap": "3" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T15:20:47+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "8822034", - "FI": "174588286", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T15:18:19+03:00", - "Odds": [ - { - "id": "820006660", - "odds": "1.571", - "name": "Mehmet Nayir: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "765036764", - "odds": "2.800", - "name": "FT Result: Konyaspor", - "handicap": "" - }, - { - "id": "819391476", - "odds": "3.250", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "820321024", - "odds": "3.000", - "name": "Andraz Sporar: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "765036767", - "odds": "2.250", - "name": "FT Result: Alanyaspor", - "handicap": "" - }, - { - "id": "819400742", - "odds": "1.727", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "820009298", - "odds": "1.666", - "name": "Eui-Jo Hwang: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "819400742", - "odds": "1.727", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "819391476", - "odds": "3.250", - "name": "Over 3 Goals", - "handicap": "3" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T15:20:57+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "8840198", - "FI": "174588288", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T15:04:33+03:00", - "Odds": [ - { - "id": "820021777", - "odds": "1.500", - "name": "Oleksandr Zubkov: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "765036883", - "odds": "2.250", - "name": "FT Result: Trabzonspor", - "handicap": "" - }, - { - "id": "819420355", - "odds": "2.625", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "820021638", - "odds": "1.727", - "name": "Anthony Nwakaeme: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "819420878", - "odds": "1.571", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "819420355", - "odds": "2.625", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "820336294", - "odds": "3.400", - "name": "Landry Dimata: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "765036888", - "odds": "2.800", - "name": "FT Result: Samsunspor", - "handicap": "" - }, - { - "id": "819420878", - "odds": "1.571", - "name": "Both Teams to Score", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T15:20:57+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "8840198", - "FI": "174588288", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T15:04:33+03:00", - "Odds": [ - { - "id": "820021777", - "odds": "1.500", - "name": "Oleksandr Zubkov: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "765036883", - "odds": "2.250", - "name": "FT Result: Trabzonspor", - "handicap": "" - }, - { - "id": "819420355", - "odds": "2.625", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "820021638", - "odds": "1.727", - "name": "Anthony Nwakaeme: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "819420878", - "odds": "1.571", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "819420355", - "odds": "2.625", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "820336294", - "odds": "3.400", - "name": "Landry Dimata: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "765036888", - "odds": "2.800", - "name": "FT Result: Samsunspor", - "handicap": "" - }, - { - "id": "819420878", - "odds": "1.571", - "name": "Both Teams to Score", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T15:21:02+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9982903", - "FI": "174588280", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T15:19:08+03:00", - "Odds": [ - { - "id": "820343994", - "odds": "1.300", - "name": "Ciro Immobile: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "819945189", - "odds": "2.200", - "name": "Rafa Silva: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "765036441", - "odds": "1.420", - "name": "FT Result: Besiktas", - "handicap": "" - }, - { - "id": "819945232", - "odds": "2.625", - "name": "Joao Mario: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "819344587", - "odds": "1.727", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "819343676", - "odds": "2.250", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "819348703", - "odds": "1.666", - "name": "Ciro Immobile to Score", - "handicap": "" - }, - { - "id": "765036441", - "odds": "1.420", - "name": "FT Result: Besiktas", - "handicap": "" - }, - { - "id": "819343676", - "odds": "2.250", - "name": "Over 3 Goals", - "handicap": "3" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T15:21:02+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9982903", - "FI": "174588280", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T15:19:08+03:00", - "Odds": [ - { - "id": "820343994", - "odds": "1.300", - "name": "Ciro Immobile: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "819945189", - "odds": "2.200", - "name": "Rafa Silva: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "765036441", - "odds": "1.420", - "name": "FT Result: Besiktas", - "handicap": "" - }, - { - "id": "819945232", - "odds": "2.625", - "name": "Joao Mario: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "819344587", - "odds": "1.727", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "819343676", - "odds": "2.250", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "819348703", - "odds": "1.666", - "name": "Ciro Immobile to Score", - "handicap": "" - }, - { - "id": "765036441", - "odds": "1.420", - "name": "FT Result: Besiktas", - "handicap": "" - }, - { - "id": "819343676", - "odds": "2.250", - "name": "Over 3 Goals", - "handicap": "3" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T15:22:51+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977001", - "FI": "174206898", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T15:21:26+03:00", - "Odds": [ - { - "id": "810769529", - "odds": "6.500", - "name": "Robert Lewandowski", - "handicap": "" - }, - { - "id": "810770215", - "odds": "6.500", - "name": "Lamine Yamal", - "handicap": "" - }, - { - "id": "713503841", - "odds": "2.100", - "name": "FT Result: Barcelona", - "handicap": "" - }, - { - "id": "818283162", - "odds": "1.833", - "name": "Robert Lewandowski: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810767797", - "odds": "1.909", - "name": "Robert Lewandowski to Score", - "handicap": "" - }, - { - "id": "713503841", - "odds": "2.100", - "name": "FT Result: Barcelona", - "handicap": "" - }, - { - "id": "818283150", - "odds": "2.000", - "name": "Raphinha: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810774636", - "odds": "1.571", - "name": "Lamine Yamal to Score or Assist", - "handicap": "" - }, - { - "id": "713503825", - "odds": "3.200", - "name": "FT Result: Athletic Bilbao", - "handicap": "" - }, - { - "id": "810774497", - "odds": "2.200", - "name": "Oihan Sancet to Score or Assist", - "handicap": "" - }, - { - "id": "813208230", - "odds": "1.285", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "827038436", - "odds": "1.400", - "name": "Over 3 Corners for Athletic Bilbao", - "handicap": "3" - }, - { - "id": "827038961", - "odds": "1.444", - "name": "Over 3 Corners for Barcelona", - "handicap": "3" - }, - { - "id": "810764064", - "odds": "1.444", - "name": "Both Teams to Score", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T15:23:00+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9288599", - "FI": "174219011", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T15:22:34+03:00", - "Odds": [ - { - "id": "806795106", - "odds": "13.000", - "name": "Alonso Martinez", - "handicap": "" - }, - { - "id": "806793895", - "odds": "15.000", - "name": "Hugo Cuypers", - "handicap": "" - }, - { - "id": "714860035", - "odds": "1.950", - "name": "FT Result: New York City FC", - "handicap": "" - }, - { - "id": "812414097", - "odds": "1.500", - "name": "Julian Fernandez: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "812414089", - "odds": "1.727", - "name": "Hannes Wolf: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "714860037", - "odds": "3.600", - "name": "FT Result: Chicago Fire", - "handicap": "" - }, - { - "id": "812415639", - "odds": "1.615", - "name": "Brian Gutierrez: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "812415683", - "odds": "1.571", - "name": "Jonathan Bamba: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "812875983", - "odds": "1.500", - "name": "Over 8 Corners", - "handicap": "8.0" - }, - { - "id": "806787411", - "odds": "1.533", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "806786217", - "odds": "2.375", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "714860035", - "odds": "1.950", - "name": "FT Result: New York City FC", - "handicap": "" - }, - { - "id": "806792787", - "odds": "3.100", - "name": "Julian Fernandez to Score", - "handicap": "" - }, - { - "id": "827388794", - "odds": "1.615", - "name": "Most Corners: New York City FC", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T15:23:07+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9289259", - "FI": "174219015", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T15:22:34+03:00", - "Odds": [ - { - "id": "806822225", - "odds": "15.000", - "name": "Emmanuel Latte Lath", - "handicap": "" - }, - { - "id": "806820954", - "odds": "9.000", - "name": "Ferreira Evander", - "handicap": "" - }, - { - "id": "714860470", - "odds": "2.400", - "name": "FT Result: Atlanta United", - "handicap": "" - }, - { - "id": "812421030", - "odds": "1.571", - "name": "Miguel Almiron: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "812420959", - "odds": "1.444", - "name": "Aleksey Miranchuk: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "714860473", - "odds": "2.700", - "name": "FT Result: FC Cincinnati", - "handicap": "" - }, - { - "id": "812886421", - "odds": "1.363", - "name": "Luca Orellano: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "812886731", - "odds": "1.285", - "name": "Ahoueke Denkey: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "812885974", - "odds": "1.500", - "name": "Over 8 Corners", - "handicap": "8.0" - }, - { - "id": "806814209", - "odds": "1.533", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "806812506", - "odds": "2.500", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "812424314", - "odds": "2.625", - "name": "Luca Orellano: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "812887182", - "odds": "3.000", - "name": "Saba Lobzhanidze: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "806814209", - "odds": "1.533", - "name": "Both Teams to Score", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T15:23:12+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "8826752", - "FI": "174588282", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T15:13:50+03:00", - "Odds": [ - { - "id": "820350480", - "odds": "1.300", - "name": "Youssef En Nesyri: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "820042485", - "odds": "1.571", - "name": "Conceicao Talisca: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "765036542", - "odds": "1.222", - "name": "FT Result: Fenerbahce", - "handicap": "" - }, - { - "id": "819432775", - "odds": "1.500", - "name": "Youssef En Nesyri to Score", - "handicap": "" - }, - { - "id": "819430970", - "odds": "2.100", - "name": "Fenerbahce \u0026 Yes", - "handicap": "" - }, - { - "id": "819428625", - "odds": "2.250", - "name": "Over 4 Goals", - "handicap": "4" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T15:23:19+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9929184", - "FI": "174363978", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T15:23:10+03:00", - "Odds": [ - { - "id": "774550908", - "odds": "21.000", - "name": "Antony", - "handicap": "" - }, - { - "id": "774550887", - "odds": "15.000", - "name": "Nicolas Jackson", - "handicap": "" - }, - { - "id": "734595170", - "odds": "1.363", - "name": "Chelsea to Lift the Trophy", - "handicap": "" - }, - { - "id": "734591996", - "odds": "1.833", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "774549605", - "odds": "2.300", - "name": "Cole Palmer to Score", - "handicap": "" - }, - { - "id": "774549558", - "odds": "2.875", - "name": "Nicolas Jackson to Score", - "handicap": "" - }, - { - "id": "734595170", - "odds": "1.363", - "name": "Chelsea to Lift the Trophy", - "handicap": "" - }, - { - "id": "734590525", - "odds": "2.000", - "name": "Over 2 Goals", - "handicap": "2" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T15:23:30+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9924545", - "FI": "174307725", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T15:18:54+03:00", - "Odds": [ - { - "id": "726811888", - "odds": "13.000", - "name": "Lautaro Martinez", - "handicap": "" - }, - { - "id": "726811982", - "odds": "11.000", - "name": "Khvicha Kvaratskhelia", - "handicap": "" - }, - { - "id": "726816128", - "odds": "1.615", - "name": "PSG to Lift the Trophy", - "handicap": "" - }, - { - "id": "726811208", - "odds": "3.250", - "name": "Bradley Barcola to Score", - "handicap": "" - }, - { - "id": "726806476", - "odds": "1.909", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "726816130", - "odds": "2.300", - "name": "Inter Milan to Lift the Trophy", - "handicap": "" - }, - { - "id": "726811216", - "odds": "3.250", - "name": "Marcus Thuram to Score", - "handicap": "" - }, - { - "id": "726807442", - "odds": "1.750", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "726816349", - "odds": "2.300", - "name": "Lautaro Martinez to Score or Assist", - "handicap": "" - }, - { - "id": "726816313", - "odds": "2.000", - "name": "Khvicha Kvaratskhelia to Score or Assist", - "handicap": "" - }, - { - "id": "726816123", - "odds": "2.250", - "name": "PSG to Win in 90 Mins", - "handicap": "" - }, - { - "id": "726807627", - "odds": "3.400", - "name": "PSG to Score in Both Halves", - "handicap": "" - }, - { - "id": "726811207", - "odds": "4.000", - "name": "Desire Doue to Score", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T15:30:40+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977002", - "FI": "174206901", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T15:28:36+03:00", - "Odds": [ - { - "id": "810834176", - "odds": "13.000", - "name": "Valencia 2-1", - "handicap": "" - }, - { - "id": "810843474", - "odds": "8.000", - "name": "Hugo Duro", - "handicap": "" - }, - { - "id": "713504056", - "odds": "1.950", - "name": "FT Result: Real Betis", - "handicap": "" - }, - { - "id": "818142082", - "odds": "2.375", - "name": "Juan Hernandez: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818142073", - "odds": "1.444", - "name": "Jesus Rodriguez: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713504058", - "odds": "3.600", - "name": "FT Result: Valencia", - "handicap": "" - }, - { - "id": "818205392", - "odds": "1.333", - "name": "Hugo Duro: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818145409", - "odds": "1.533", - "name": "Luis Rioja: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713504058", - "odds": "3.600", - "name": "FT Result: Valencia", - "handicap": "" - }, - { - "id": "810835604", - "odds": "1.571", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "813193941", - "odds": "1.300", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "818142127", - "odds": "2.100", - "name": "Silva William Carvalho: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818205392", - "odds": "1.333", - "name": "Hugo Duro: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "810835604", - "odds": "1.571", - "name": "Both Teams to Score", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T15:30:53+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9982904", - "FI": "174588290", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T15:28:09+03:00", - "Odds": [ - { - "id": "820264609", - "odds": "1.400", - "name": "Umut Bozok: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "765037000", - "odds": "1.900", - "name": "FT Result: Eyupspor", - "handicap": "" - }, - { - "id": "819298752", - "odds": "1.666", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "820243702", - "odds": "1.444", - "name": "Emre Mor: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "819298752", - "odds": "1.666", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "819301876", - "odds": "5.500", - "name": "Over 4 Goals", - "handicap": "4" - }, - { - "id": "820264669", - "odds": "3.400", - "name": "Adolfo Gaich: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "765037006", - "odds": "3.700", - "name": "FT Result: Antalyaspor", - "handicap": "" - }, - { - "id": "819298752", - "odds": "1.666", - "name": "Both Teams to Score", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T15:31:16+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "8826418", - "FI": "174588296", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T15:24:59+03:00", - "Odds": [ - { - "id": "819956646", - "odds": "1.500", - "name": "Alexandru Maxim: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "765037294", - "odds": "2.600", - "name": "FT Result: Gaziantep FK", - "handicap": "" - }, - { - "id": "819311085", - "odds": "2.100", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "819959543", - "odds": "2.375", - "name": "Joia Nuno Da Costa: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "765037306", - "odds": "2.375", - "name": "FT Result: Kasimpasa", - "handicap": "" - }, - { - "id": "819312321", - "odds": "1.444", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "820280304", - "odds": "1.363", - "name": "Aytac Kara: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "819312321", - "odds": "1.444", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "819315041", - "odds": "3.750", - "name": "Over 4 Goals", - "handicap": "4" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T15:31:29+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977004", - "FI": "174206928", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T15:25:18+03:00", - "Odds": [ - { - "id": "810825615", - "odds": "10.000", - "name": "Daniel Raba", - "handicap": "" - }, - { - "id": "810824112", - "odds": "15.000", - "name": "Juan Latasa", - "handicap": "" - }, - { - "id": "818234653", - "odds": "1.285", - "name": "Yan Diomande: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818174813", - "odds": "1.727", - "name": "Juan Latasa: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "813198253", - "odds": "1.333", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "713505303", - "odds": "1.300", - "name": "FT Result: Leganes", - "handicap": "" - }, - { - "id": "818170790", - "odds": "1.833", - "name": "Daniel Raba: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818170803", - "odds": "1.666", - "name": "Diego Garcia: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810816138", - "odds": "2.050", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818174813", - "odds": "1.727", - "name": "Juan Latasa: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818170892", - "odds": "1.533", - "name": "Seydouba Cisse: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713505316", - "odds": "9.500", - "name": "FT Result: Valladolid", - "handicap": "" - }, - { - "id": "810818057", - "odds": "1.666", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813198253", - "odds": "1.333", - "name": "Over 7 Corners", - "handicap": "7.0" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T15:31:37+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977005", - "FI": "174206938", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T15:30:44+03:00", - "Odds": [ - { - "id": "810793474", - "odds": "4.500", - "name": "Javi Puado", - "handicap": "" - }, - { - "id": "810793926", - "odds": "9.500", - "name": "Roberto Fernandez", - "handicap": "" - }, - { - "id": "818165415", - "odds": "2.000", - "name": "Oliver McBurnie: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818165371", - "odds": "2.750", - "name": "Adnan Januzaj: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818223546", - "odds": "1.250", - "name": "Roberto Fernandez: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713505983", - "odds": "1.380", - "name": "FT Result: Espanyol", - "handicap": "" - }, - { - "id": "818161086", - "odds": "1.909", - "name": "Javi Puado: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818161150", - "odds": "2.100", - "name": "Roberto Fernandez: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810785073", - "odds": "2.100", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818165373", - "odds": "2.100", - "name": "Alberto Moleiro: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818223267", - "odds": "1.200", - "name": "Javi Puado: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713505993", - "odds": "8.000", - "name": "FT Result: Las Palmas", - "handicap": "" - }, - { - "id": "813197755", - "odds": "1.300", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "810787654", - "odds": "1.800", - "name": "Over 2 Goals", - "handicap": "2" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T15:31:37+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977005", - "FI": "174206938", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T15:30:44+03:00", - "Odds": [ - { - "id": "810793474", - "odds": "4.500", - "name": "Javi Puado", - "handicap": "" - }, - { - "id": "810793926", - "odds": "9.500", - "name": "Roberto Fernandez", - "handicap": "" - }, - { - "id": "818165415", - "odds": "2.000", - "name": "Oliver McBurnie: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818165371", - "odds": "2.750", - "name": "Adnan Januzaj: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818223546", - "odds": "1.250", - "name": "Roberto Fernandez: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713505983", - "odds": "1.380", - "name": "FT Result: Espanyol", - "handicap": "" - }, - { - "id": "818161086", - "odds": "1.909", - "name": "Javi Puado: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818161150", - "odds": "2.100", - "name": "Roberto Fernandez: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810785073", - "odds": "2.100", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818165373", - "odds": "2.100", - "name": "Alberto Moleiro: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818223267", - "odds": "1.200", - "name": "Javi Puado: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713505993", - "odds": "8.000", - "name": "FT Result: Las Palmas", - "handicap": "" - }, - { - "id": "813197755", - "odds": "1.300", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "810787654", - "odds": "1.800", - "name": "Over 2 Goals", - "handicap": "2" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T15:31:57+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9757324", - "FI": "172433912", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T15:29:40+03:00", - "Odds": [ - { - "id": "817868646", - "odds": "4.250", - "name": "Ousmane Dembele", - "handicap": "" - }, - { - "id": "467772639", - "odds": "8.000", - "name": "PSG 3-0", - "handicap": "" - }, - { - "id": "467774766", - "odds": "2.050", - "name": "PSG to win by 3+ Goals", - "handicap": "" - }, - { - "id": "818472444", - "odds": "1.800", - "name": "Bradley Barcola: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818472520", - "odds": "1.571", - "name": "Khvicha Kvaratskhelia: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "467775416", - "odds": "2.000", - "name": "PSG to Win Both Halves", - "handicap": "" - }, - { - "id": "818525029", - "odds": "1.333", - "name": "Ousmane Dembele: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818524895", - "odds": "3.250", - "name": "Fabian Ruiz: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "467772622", - "odds": "1.500", - "name": "HT: PSG \u2013 FT: PSG", - "handicap": "" - }, - { - "id": "818979031", - "odds": "1.055", - "name": "Most Shots on Target: PSG", - "handicap": "" - }, - { - "id": "818977802", - "odds": "1.533", - "name": "Most Cards: Reims", - "handicap": "" - }, - { - "id": "467772737", - "odds": "1.833", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "467773042", - "odds": "2.200", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818525029", - "odds": "1.333", - "name": "Ousmane Dembele: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818525451", - "odds": "10.000", - "name": "Theoson Siebatcheu: 2+ Shots on Target", - "handicap": "1.5" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T15:32:03+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977003", - "FI": "174206914", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T15:17:12+03:00", - "Odds": [ - { - "id": "810782401", - "odds": "6.500", - "name": "Ante Budimir", - "handicap": "" - }, - { - "id": "810782255", - "odds": "17.000", - "name": "Jon Guridi", - "handicap": "" - }, - { - "id": "713504570", - "odds": "2.350", - "name": "FT Result: Osasuna", - "handicap": "" - }, - { - "id": "818200891", - "odds": "1.615", - "name": "Ante Budimir: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810881584", - "odds": "1.833", - "name": "Ante Budimir to Score or Assist", - "handicap": "" - }, - { - "id": "713504562", - "odds": "3.200", - "name": "FT Result: CD Alaves", - "handicap": "" - }, - { - "id": "810777871", - "odds": "1.950", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "813199262", - "odds": "1.333", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "713504562", - "odds": "3.200", - "name": "FT Result: CD Alaves", - "handicap": "" - }, - { - "id": "818200816", - "odds": "1.615", - "name": "Carlos Vicente: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "810881581", - "odds": "3.500", - "name": "Jon Guridi to Score or Assist", - "handicap": "" - }, - { - "id": "810778158", - "odds": "4.000", - "name": "Osasuna to Score in Both Halves", - "handicap": "" - }, - { - "id": "810881558", - "odds": "2.100", - "name": "Bryan Zaragoza to Score or Assist", - "handicap": "" - }, - { - "id": "810881580", - "odds": "3.100", - "name": "Aimar Oroz to Score or Assist", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T15:32:12+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977007", - "FI": "174206951", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T15:31:01+03:00", - "Odds": [ - { - "id": "810795373", - "odds": "2.875", - "name": "1", - "handicap": "" - }, - { - "id": "810801154", - "odds": "5.500", - "name": "Borja Iglesias", - "handicap": "" - }, - { - "id": "713507435", - "odds": "1.850", - "name": "FT Result: Celta Vigo", - "handicap": "" - }, - { - "id": "818234755", - "odds": "1.909", - "name": "Borja Iglesias: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818234745", - "odds": "1.800", - "name": "Alfonso Gonzalez: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713507421", - "odds": "4.100", - "name": "FT Result: Getafe", - "handicap": "" - }, - { - "id": "810795706", - "odds": "2.100", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813201935", - "odds": "1.533", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "713507435", - "odds": "1.850", - "name": "FT Result: Celta Vigo", - "handicap": "" - }, - { - "id": "810884551", - "odds": "3.100", - "name": "Oscar Mingueza to Score or Assist", - "handicap": "" - }, - { - "id": "818234750", - "odds": "3.500", - "name": "Beltran Fran: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818272688", - "odds": "1.285", - "name": "Moya Borja Mayoral: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818232899", - "odds": "1.533", - "name": "Chrisantus Uche: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818235077", - "odds": "2.625", - "name": "Oscar Mingueza: 1+ Shots on Target", - "handicap": "0.5" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T15:32:12+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977007", - "FI": "174206951", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T15:31:01+03:00", - "Odds": [ - { - "id": "810795373", - "odds": "2.875", - "name": "1", - "handicap": "" - }, - { - "id": "810801154", - "odds": "5.500", - "name": "Borja Iglesias", - "handicap": "" - }, - { - "id": "713507435", - "odds": "1.850", - "name": "FT Result: Celta Vigo", - "handicap": "" - }, - { - "id": "818234755", - "odds": "1.909", - "name": "Borja Iglesias: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818234745", - "odds": "1.800", - "name": "Alfonso Gonzalez: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713507421", - "odds": "4.100", - "name": "FT Result: Getafe", - "handicap": "" - }, - { - "id": "810795706", - "odds": "2.100", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813201935", - "odds": "1.533", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "713507435", - "odds": "1.850", - "name": "FT Result: Celta Vigo", - "handicap": "" - }, - { - "id": "810884551", - "odds": "3.100", - "name": "Oscar Mingueza to Score or Assist", - "handicap": "" - }, - { - "id": "818234750", - "odds": "3.500", - "name": "Beltran Fran: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818272688", - "odds": "1.285", - "name": "Moya Borja Mayoral: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818232899", - "odds": "1.533", - "name": "Chrisantus Uche: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818235077", - "odds": "2.625", - "name": "Oscar Mingueza: 1+ Shots on Target", - "handicap": "0.5" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T15:32:19+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977008", - "FI": "174206957", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T15:32:04+03:00", - "Odds": [ - { - "id": "810830891", - "odds": "8.500", - "name": "Isi Palazon", - "handicap": "" - }, - { - "id": "810826957", - "odds": "3.750", - "name": "2", - "handicap": "" - }, - { - "id": "713508001", - "odds": "6.250", - "name": "FT Result: Mallorca", - "handicap": "" - }, - { - "id": "810827203", - "odds": "2.100", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813203878", - "odds": "1.300", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "713507997", - "odds": "1.533", - "name": "FT Result: Rayo Vallecano", - "handicap": "" - }, - { - "id": "810911970", - "odds": "2.250", - "name": "Jorge De Frutos to Score or Assist", - "handicap": "" - }, - { - "id": "818242351", - "odds": "2.000", - "name": "Isi Palazon: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810827485", - "odds": "2.200", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818248799", - "odds": "3.250", - "name": "Sergi Darder: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818300359", - "odds": "1.222", - "name": "Isi Palazon: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "810827053", - "odds": "2.375", - "name": "HT: Rayo Vallecano \u2013 FT: Rayo Vallecano", - "handicap": "" - }, - { - "id": "810827602", - "odds": "2.625", - "name": "Rayo Vallecano to Score in Both Halves", - "handicap": "" - }, - { - "id": "810830483", - "odds": "4.000", - "name": "Adrian Embarba to Score", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T15:32:19+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977008", - "FI": "174206957", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T15:32:04+03:00", - "Odds": [ - { - "id": "810830891", - "odds": "8.500", - "name": "Isi Palazon", - "handicap": "" - }, - { - "id": "810826957", - "odds": "3.750", - "name": "2", - "handicap": "" - }, - { - "id": "713508001", - "odds": "6.250", - "name": "FT Result: Mallorca", - "handicap": "" - }, - { - "id": "810827203", - "odds": "2.100", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813203878", - "odds": "1.300", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "713507997", - "odds": "1.533", - "name": "FT Result: Rayo Vallecano", - "handicap": "" - }, - { - "id": "810911970", - "odds": "2.250", - "name": "Jorge De Frutos to Score or Assist", - "handicap": "" - }, - { - "id": "818242351", - "odds": "2.000", - "name": "Isi Palazon: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810827485", - "odds": "2.200", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818248799", - "odds": "3.250", - "name": "Sergi Darder: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818300359", - "odds": "1.222", - "name": "Isi Palazon: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "810827053", - "odds": "2.375", - "name": "HT: Rayo Vallecano \u2013 FT: Rayo Vallecano", - "handicap": "" - }, - { - "id": "810827602", - "odds": "2.625", - "name": "Rayo Vallecano to Score in Both Halves", - "handicap": "" - }, - { - "id": "810830483", - "odds": "4.000", - "name": "Adrian Embarba to Score", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T15:33:37+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9289262", - "FI": "174219002", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T15:30:59+03:00", - "Odds": [ - { - "id": "806670446", - "odds": "13.000", - "name": "Tani Oluwaseyi", - "handicap": "" - }, - { - "id": "806655131", - "odds": "9.500", - "name": "Minnesota United 2-1", - "handicap": "" - }, - { - "id": "714859773", - "odds": "1.727", - "name": "FT Result: Minnesota United", - "handicap": "" - }, - { - "id": "812331324", - "odds": "1.800", - "name": "Kelvin Yeboah: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "812331345", - "odds": "2.375", - "name": "Tani Oluwaseyi: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "806655293", - "odds": "2.050", - "name": "Draw or Austin FC", - "handicap": "" - }, - { - "id": "812335148", - "odds": "1.571", - "name": "Myrto Uzuni: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "812334820", - "odds": "1.571", - "name": "Brandon Vazquez: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "827362447", - "odds": "1.533", - "name": "Over 4 Corners for Minnesota United", - "handicap": "4" - }, - { - "id": "827362563", - "odds": "2.200", - "name": "Over 4 Corners for Austin FC", - "handicap": "4" - }, - { - "id": "806655241", - "odds": "1.950", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "806655104", - "odds": "2.625", - "name": "HT: Minnesota United \u2013 FT: Minnesota United", - "handicap": "" - }, - { - "id": "827360459", - "odds": "1.615", - "name": "Most Corners: Minnesota United", - "handicap": "" - }, - { - "id": "806963379", - "odds": "1.800", - "name": "Kelvin Yeboah to Score or Assist", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T15:33:48+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9289261", - "FI": "174219004", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T15:29:56+03:00", - "Odds": [ - { - "id": "806742909", - "odds": "12.000", - "name": "Joao Klauss", - "handicap": "" - }, - { - "id": "806741536", - "odds": "8.500", - "name": "Darren Yapi", - "handicap": "" - }, - { - "id": "714859800", - "odds": "1.850", - "name": "FT Result: Colorado Rapids", - "handicap": "" - }, - { - "id": "812359565", - "odds": "2.100", - "name": "Djordje Mihailovic: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "812508432", - "odds": "3.000", - "name": "Kevin Cabral: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "806733943", - "odds": "1.909", - "name": "Draw or St. Louis City SC", - "handicap": "" - }, - { - "id": "812362704", - "odds": "1.444", - "name": "Cedric Teuchert: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "812362834", - "odds": "1.500", - "name": "Marcel Hartel: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "812508349", - "odds": "3.250", - "name": "Cedric Teuchert: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "812359565", - "odds": "2.100", - "name": "Djordje Mihailovic: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "806737965", - "odds": "1.600", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "714859800", - "odds": "1.850", - "name": "FT Result: Colorado Rapids", - "handicap": "" - }, - { - "id": "827381382", - "odds": "1.250", - "name": "Over 3 Corners for Colorado Rapids", - "handicap": "3" - }, - { - "id": "807040642", - "odds": "2.100", - "name": "Darren Yapi to Score or Assist", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T15:33:55+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9289260", - "FI": "174219006", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T15:22:51+03:00", - "Odds": [ - { - "id": "806753712", - "odds": "8.500", - "name": "Brian White", - "handicap": "" - }, - { - "id": "806753521", - "odds": "7.000", - "name": "William Agada", - "handicap": "" - }, - { - "id": "714859829", - "odds": "2.500", - "name": "FT Result: Real Salt Lake", - "handicap": "" - }, - { - "id": "812514424", - "odds": "1.333", - "name": "William Agada: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "812377943", - "odds": "1.400", - "name": "Diogo Goncalves: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "714859831", - "odds": "2.600", - "name": "FT Result: Vancouver Whitecaps", - "handicap": "" - }, - { - "id": "812380351", - "odds": "2.100", - "name": "Pedro Vite: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "812380265", - "odds": "2.750", - "name": "Brian White: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "827384577", - "odds": "1.666", - "name": "Over 4 Corners for Real Salt Lake", - "handicap": "4" - }, - { - "id": "827384725", - "odds": "1.909", - "name": "Over 4 Corners for Vancouver Whitecaps", - "handicap": "4" - }, - { - "id": "806747601", - "odds": "1.666", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "812377945", - "odds": "1.833", - "name": "Dominik Marczuk: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "812380239", - "odds": "2.250", - "name": "Ali Ahmed: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "806749654", - "odds": "1.800", - "name": "Over 2 Goals", - "handicap": "2" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T15:34:11+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977006", - "FI": "174206945", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T15:28:25+03:00", - "Odds": [ - { - "id": "810813006", - "odds": "8.000", - "name": "Cristhian Stuani", - "handicap": "" - }, - { - "id": "810805461", - "odds": "12.000", - "name": "Atletico Madrid 2-0", - "handicap": "" - }, - { - "id": "713506855", - "odds": "1.950", - "name": "FT Result: Atletico Madrid", - "handicap": "" - }, - { - "id": "818257779", - "odds": "2.750", - "name": "Antoine Griezmann: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818257773", - "odds": "2.750", - "name": "Angel Correa: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "713506844", - "odds": "3.700", - "name": "FT Result: Girona", - "handicap": "" - }, - { - "id": "810809282", - "odds": "1.615", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813205972", - "odds": "1.363", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "713506844", - "odds": "3.700", - "name": "FT Result: Girona", - "handicap": "" - }, - { - "id": "832763395", - "odds": "1.400", - "name": "Cristhian Stuani: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818254988", - "odds": "1.444", - "name": "Viktor Tsygankov: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818257791", - "odds": "1.833", - "name": "Conor Gallagher: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818257811", - "odds": "1.400", - "name": "Samuel Lino: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818306498", - "odds": "1.400", - "name": "Antoine Griezmann: 1+ Shots on Target", - "handicap": "0.5" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T15:34:11+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977006", - "FI": "174206945", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T15:28:25+03:00", - "Odds": [ - { - "id": "810813006", - "odds": "8.000", - "name": "Cristhian Stuani", - "handicap": "" - }, - { - "id": "810805461", - "odds": "12.000", - "name": "Atletico Madrid 2-0", - "handicap": "" - }, - { - "id": "713506855", - "odds": "1.950", - "name": "FT Result: Atletico Madrid", - "handicap": "" - }, - { - "id": "818257779", - "odds": "2.750", - "name": "Antoine Griezmann: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818257773", - "odds": "2.750", - "name": "Angel Correa: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "713506844", - "odds": "3.700", - "name": "FT Result: Girona", - "handicap": "" - }, - { - "id": "810809282", - "odds": "1.615", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813205972", - "odds": "1.363", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "713506844", - "odds": "3.700", - "name": "FT Result: Girona", - "handicap": "" - }, - { - "id": "832763395", - "odds": "1.400", - "name": "Cristhian Stuani: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818254988", - "odds": "1.444", - "name": "Viktor Tsygankov: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818257791", - "odds": "1.833", - "name": "Conor Gallagher: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818257811", - "odds": "1.400", - "name": "Samuel Lino: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818306498", - "odds": "1.400", - "name": "Antoine Griezmann: 1+ Shots on Target", - "handicap": "0.5" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T15:36:16+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "8822035", - "FI": "174588284", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T15:25:07+03:00", - "Odds": [ - { - "id": "820312223", - "odds": "3.400", - "name": "Duckens Nazon: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "819383249", - "odds": "1.800", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "827542181", - "odds": "3.400", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "819997827", - "odds": "1.500", - "name": "Gokdeniz Bayrakdar: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "819383249", - "odds": "1.800", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "827542181", - "odds": "3.400", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "819997755", - "odds": "1.666", - "name": "Alredo Fredy: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "765036662", - "odds": "1.950", - "name": "FT Result: Bodrum FK", - "handicap": "" - }, - { - "id": "819383249", - "odds": "1.800", - "name": "Both Teams to Score", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T15:36:16+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "8822035", - "FI": "174588284", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T15:25:07+03:00", - "Odds": [ - { - "id": "820312223", - "odds": "3.400", - "name": "Duckens Nazon: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "819383249", - "odds": "1.800", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "827542181", - "odds": "3.400", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "819997827", - "odds": "1.500", - "name": "Gokdeniz Bayrakdar: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "819383249", - "odds": "1.800", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "827542181", - "odds": "3.400", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "819997755", - "odds": "1.666", - "name": "Alredo Fredy: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "765036662", - "odds": "1.950", - "name": "FT Result: Bodrum FK", - "handicap": "" - }, - { - "id": "819383249", - "odds": "1.800", - "name": "Both Teams to Score", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T15:36:24+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "8822034", - "FI": "174588286", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T15:34:09+03:00", - "Odds": [ - { - "id": "820006660", - "odds": "1.571", - "name": "Mehmet Nayir: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "765036764", - "odds": "2.800", - "name": "FT Result: Konyaspor", - "handicap": "" - }, - { - "id": "819391476", - "odds": "3.250", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "820321024", - "odds": "3.000", - "name": "Andraz Sporar: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "765036767", - "odds": "2.250", - "name": "FT Result: Alanyaspor", - "handicap": "" - }, - { - "id": "819400742", - "odds": "1.727", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "820009298", - "odds": "1.666", - "name": "Eui-Jo Hwang: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "819400742", - "odds": "1.727", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "819391476", - "odds": "3.250", - "name": "Over 3 Goals", - "handicap": "3" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T15:36:24+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "8822034", - "FI": "174588286", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T15:34:09+03:00", - "Odds": [ - { - "id": "820006660", - "odds": "1.571", - "name": "Mehmet Nayir: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "765036764", - "odds": "2.800", - "name": "FT Result: Konyaspor", - "handicap": "" - }, - { - "id": "819391476", - "odds": "3.250", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "820321024", - "odds": "3.000", - "name": "Andraz Sporar: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "765036767", - "odds": "2.250", - "name": "FT Result: Alanyaspor", - "handicap": "" - }, - { - "id": "819400742", - "odds": "1.727", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "820009298", - "odds": "1.666", - "name": "Eui-Jo Hwang: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "819400742", - "odds": "1.727", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "819391476", - "odds": "3.250", - "name": "Over 3 Goals", - "handicap": "3" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T15:36:28+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "8840198", - "FI": "174588288", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T15:21:57+03:00", - "Odds": [ - { - "id": "820021777", - "odds": "1.500", - "name": "Oleksandr Zubkov: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "765036883", - "odds": "2.250", - "name": "FT Result: Trabzonspor", - "handicap": "" - }, - { - "id": "819420355", - "odds": "2.625", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "820021638", - "odds": "1.727", - "name": "Anthony Nwakaeme: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "819420878", - "odds": "1.571", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "819420355", - "odds": "2.625", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "820336294", - "odds": "3.400", - "name": "Landry Dimata: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "765036888", - "odds": "2.800", - "name": "FT Result: Samsunspor", - "handicap": "" - }, - { - "id": "819420878", - "odds": "1.571", - "name": "Both Teams to Score", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T15:36:28+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "8840198", - "FI": "174588288", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T15:21:57+03:00", - "Odds": [ - { - "id": "820021777", - "odds": "1.500", - "name": "Oleksandr Zubkov: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "765036883", - "odds": "2.250", - "name": "FT Result: Trabzonspor", - "handicap": "" - }, - { - "id": "819420355", - "odds": "2.625", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "820021638", - "odds": "1.727", - "name": "Anthony Nwakaeme: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "819420878", - "odds": "1.571", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "819420355", - "odds": "2.625", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "820336294", - "odds": "3.400", - "name": "Landry Dimata: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "765036888", - "odds": "2.800", - "name": "FT Result: Samsunspor", - "handicap": "" - }, - { - "id": "819420878", - "odds": "1.571", - "name": "Both Teams to Score", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T15:36:39+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9982903", - "FI": "174588280", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T15:24:07+03:00", - "Odds": [ - { - "id": "820343994", - "odds": "1.300", - "name": "Ciro Immobile: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "819945189", - "odds": "2.200", - "name": "Rafa Silva: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "765036441", - "odds": "1.420", - "name": "FT Result: Besiktas", - "handicap": "" - }, - { - "id": "819945232", - "odds": "2.625", - "name": "Joao Mario: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "819344587", - "odds": "1.727", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "819343676", - "odds": "2.250", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "819348703", - "odds": "1.666", - "name": "Ciro Immobile to Score", - "handicap": "" - }, - { - "id": "765036441", - "odds": "1.420", - "name": "FT Result: Besiktas", - "handicap": "" - }, - { - "id": "819343676", - "odds": "2.250", - "name": "Over 3 Goals", - "handicap": "3" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T15:36:39+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9982903", - "FI": "174588280", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T15:24:07+03:00", - "Odds": [ - { - "id": "820343994", - "odds": "1.300", - "name": "Ciro Immobile: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "819945189", - "odds": "2.200", - "name": "Rafa Silva: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "765036441", - "odds": "1.420", - "name": "FT Result: Besiktas", - "handicap": "" - }, - { - "id": "819945232", - "odds": "2.625", - "name": "Joao Mario: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "819344587", - "odds": "1.727", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "819343676", - "odds": "2.250", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "819348703", - "odds": "1.666", - "name": "Ciro Immobile to Score", - "handicap": "" - }, - { - "id": "765036441", - "odds": "1.420", - "name": "FT Result: Besiktas", - "handicap": "" - }, - { - "id": "819343676", - "odds": "2.250", - "name": "Over 3 Goals", - "handicap": "3" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T15:37:30+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977001", - "FI": "174206898", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T15:35:05+03:00", - "Odds": [ - { - "id": "810769529", - "odds": "6.500", - "name": "Robert Lewandowski", - "handicap": "" - }, - { - "id": "810770215", - "odds": "6.500", - "name": "Lamine Yamal", - "handicap": "" - }, - { - "id": "713503841", - "odds": "2.100", - "name": "FT Result: Barcelona", - "handicap": "" - }, - { - "id": "818283162", - "odds": "1.833", - "name": "Robert Lewandowski: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810767797", - "odds": "1.909", - "name": "Robert Lewandowski to Score", - "handicap": "" - }, - { - "id": "713503841", - "odds": "2.100", - "name": "FT Result: Barcelona", - "handicap": "" - }, - { - "id": "818283150", - "odds": "2.000", - "name": "Raphinha: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810774636", - "odds": "1.571", - "name": "Lamine Yamal to Score or Assist", - "handicap": "" - }, - { - "id": "713503825", - "odds": "3.200", - "name": "FT Result: Athletic Bilbao", - "handicap": "" - }, - { - "id": "810774497", - "odds": "2.200", - "name": "Oihan Sancet to Score or Assist", - "handicap": "" - }, - { - "id": "813208230", - "odds": "1.285", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "827038436", - "odds": "1.400", - "name": "Over 3 Corners for Athletic Bilbao", - "handicap": "3" - }, - { - "id": "827038961", - "odds": "1.444", - "name": "Over 3 Corners for Barcelona", - "handicap": "3" - }, - { - "id": "810764064", - "odds": "1.444", - "name": "Both Teams to Score", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T15:37:38+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9288599", - "FI": "174219011", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T15:31:03+03:00", - "Odds": [ - { - "id": "806795106", - "odds": "13.000", - "name": "Alonso Martinez", - "handicap": "" - }, - { - "id": "806793895", - "odds": "15.000", - "name": "Hugo Cuypers", - "handicap": "" - }, - { - "id": "714860035", - "odds": "1.950", - "name": "FT Result: New York City FC", - "handicap": "" - }, - { - "id": "812414097", - "odds": "1.500", - "name": "Julian Fernandez: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "812414089", - "odds": "1.727", - "name": "Hannes Wolf: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "714860037", - "odds": "3.600", - "name": "FT Result: Chicago Fire", - "handicap": "" - }, - { - "id": "812415639", - "odds": "1.615", - "name": "Brian Gutierrez: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "812415683", - "odds": "1.571", - "name": "Jonathan Bamba: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "812875983", - "odds": "1.500", - "name": "Over 8 Corners", - "handicap": "8.0" - }, - { - "id": "806787411", - "odds": "1.533", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "806786217", - "odds": "2.375", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "714860035", - "odds": "1.950", - "name": "FT Result: New York City FC", - "handicap": "" - }, - { - "id": "806792787", - "odds": "3.100", - "name": "Julian Fernandez to Score", - "handicap": "" - }, - { - "id": "827388794", - "odds": "1.615", - "name": "Most Corners: New York City FC", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T15:37:53+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9289259", - "FI": "174219015", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T15:28:43+03:00", - "Odds": [ - { - "id": "806822225", - "odds": "15.000", - "name": "Emmanuel Latte Lath", - "handicap": "" - }, - { - "id": "806820954", - "odds": "9.000", - "name": "Ferreira Evander", - "handicap": "" - }, - { - "id": "714860470", - "odds": "2.400", - "name": "FT Result: Atlanta United", - "handicap": "" - }, - { - "id": "812421030", - "odds": "1.571", - "name": "Miguel Almiron: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "812420959", - "odds": "1.444", - "name": "Aleksey Miranchuk: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "714860473", - "odds": "2.700", - "name": "FT Result: FC Cincinnati", - "handicap": "" - }, - { - "id": "812886421", - "odds": "1.363", - "name": "Luca Orellano: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "812886731", - "odds": "1.285", - "name": "Ahoueke Denkey: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "812885974", - "odds": "1.500", - "name": "Over 8 Corners", - "handicap": "8.0" - }, - { - "id": "806814209", - "odds": "1.533", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "806812506", - "odds": "2.500", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "812424314", - "odds": "2.625", - "name": "Luca Orellano: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "812887182", - "odds": "3.000", - "name": "Saba Lobzhanidze: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "806814209", - "odds": "1.533", - "name": "Both Teams to Score", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T15:38:01+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "8826752", - "FI": "174588282", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T15:34:59+03:00", - "Odds": [ - { - "id": "820350480", - "odds": "1.300", - "name": "Youssef En Nesyri: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "820042485", - "odds": "1.571", - "name": "Conceicao Talisca: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "765036542", - "odds": "1.222", - "name": "FT Result: Fenerbahce", - "handicap": "" - }, - { - "id": "819432775", - "odds": "1.500", - "name": "Youssef En Nesyri to Score", - "handicap": "" - }, - { - "id": "819430970", - "odds": "2.100", - "name": "Fenerbahce \u0026 Yes", - "handicap": "" - }, - { - "id": "819428625", - "odds": "2.250", - "name": "Over 4 Goals", - "handicap": "4" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T15:38:08+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9929184", - "FI": "174363978", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T15:32:56+03:00", - "Odds": [ - { - "id": "774550908", - "odds": "21.000", - "name": "Antony", - "handicap": "" - }, - { - "id": "774550887", - "odds": "15.000", - "name": "Nicolas Jackson", - "handicap": "" - }, - { - "id": "734595170", - "odds": "1.363", - "name": "Chelsea to Lift the Trophy", - "handicap": "" - }, - { - "id": "734591996", - "odds": "1.833", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "774549605", - "odds": "2.300", - "name": "Cole Palmer to Score", - "handicap": "" - }, - { - "id": "774549558", - "odds": "2.875", - "name": "Nicolas Jackson to Score", - "handicap": "" - }, - { - "id": "734595170", - "odds": "1.363", - "name": "Chelsea to Lift the Trophy", - "handicap": "" - }, - { - "id": "734590525", - "odds": "2.000", - "name": "Over 2 Goals", - "handicap": "2" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T15:38:20+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9924545", - "FI": "174307725", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T15:18:54+03:00", - "Odds": [ - { - "id": "726811888", - "odds": "13.000", - "name": "Lautaro Martinez", - "handicap": "" - }, - { - "id": "726811982", - "odds": "11.000", - "name": "Khvicha Kvaratskhelia", - "handicap": "" - }, - { - "id": "726816128", - "odds": "1.615", - "name": "PSG to Lift the Trophy", - "handicap": "" - }, - { - "id": "726811208", - "odds": "3.250", - "name": "Bradley Barcola to Score", - "handicap": "" - }, - { - "id": "726806476", - "odds": "1.909", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "726816130", - "odds": "2.300", - "name": "Inter Milan to Lift the Trophy", - "handicap": "" - }, - { - "id": "726811216", - "odds": "3.250", - "name": "Marcus Thuram to Score", - "handicap": "" - }, - { - "id": "726807442", - "odds": "1.750", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "726816349", - "odds": "2.300", - "name": "Lautaro Martinez to Score or Assist", - "handicap": "" - }, - { - "id": "726816313", - "odds": "2.000", - "name": "Khvicha Kvaratskhelia to Score or Assist", - "handicap": "" - }, - { - "id": "726816123", - "odds": "2.250", - "name": "PSG to Win in 90 Mins", - "handicap": "" - }, - { - "id": "726807627", - "odds": "3.400", - "name": "PSG to Score in Both Halves", - "handicap": "" - }, - { - "id": "726811207", - "odds": "4.000", - "name": "Desire Doue to Score", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T15:45:17+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977002", - "FI": "174206901", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T15:40:09+03:00", - "Odds": [ - { - "id": "810834176", - "odds": "13.000", - "name": "Valencia 2-1", - "handicap": "" - }, - { - "id": "810843474", - "odds": "8.000", - "name": "Hugo Duro", - "handicap": "" - }, - { - "id": "713504056", - "odds": "1.950", - "name": "FT Result: Real Betis", - "handicap": "" - }, - { - "id": "818142082", - "odds": "2.375", - "name": "Juan Hernandez: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818142073", - "odds": "1.444", - "name": "Jesus Rodriguez: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713504058", - "odds": "3.600", - "name": "FT Result: Valencia", - "handicap": "" - }, - { - "id": "818205392", - "odds": "1.333", - "name": "Hugo Duro: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818145409", - "odds": "1.533", - "name": "Luis Rioja: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713504058", - "odds": "3.600", - "name": "FT Result: Valencia", - "handicap": "" - }, - { - "id": "810835604", - "odds": "1.571", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "813193941", - "odds": "1.300", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "818142127", - "odds": "2.100", - "name": "Silva William Carvalho: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818205392", - "odds": "1.333", - "name": "Hugo Duro: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "810835604", - "odds": "1.571", - "name": "Both Teams to Score", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T15:45:24+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9982904", - "FI": "174588290", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T15:42:26+03:00", - "Odds": [ - { - "id": "820264609", - "odds": "1.400", - "name": "Umut Bozok: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "765037000", - "odds": "1.900", - "name": "FT Result: Eyupspor", - "handicap": "" - }, - { - "id": "819298752", - "odds": "1.666", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "820243702", - "odds": "1.444", - "name": "Emre Mor: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "819298752", - "odds": "1.666", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "819301876", - "odds": "5.500", - "name": "Over 4 Goals", - "handicap": "4" - }, - { - "id": "820264669", - "odds": "3.400", - "name": "Adolfo Gaich: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "765037006", - "odds": "3.700", - "name": "FT Result: Antalyaspor", - "handicap": "" - }, - { - "id": "819298752", - "odds": "1.666", - "name": "Both Teams to Score", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T15:46:01+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "8826418", - "FI": "174588296", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T15:45:39+03:00", - "Odds": [ - { - "id": "819956646", - "odds": "1.500", - "name": "Alexandru Maxim: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "765037294", - "odds": "2.600", - "name": "FT Result: Gaziantep FK", - "handicap": "" - }, - { - "id": "819311085", - "odds": "2.100", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "819959543", - "odds": "2.375", - "name": "Joia Nuno Da Costa: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "765037306", - "odds": "2.375", - "name": "FT Result: Kasimpasa", - "handicap": "" - }, - { - "id": "819312321", - "odds": "1.444", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "820280304", - "odds": "1.363", - "name": "Aytac Kara: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "819312321", - "odds": "1.444", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "819315041", - "odds": "3.750", - "name": "Over 4 Goals", - "handicap": "4" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T15:46:09+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977004", - "FI": "174206928", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T15:44:17+03:00", - "Odds": [ - { - "id": "810825615", - "odds": "10.000", - "name": "Daniel Raba", - "handicap": "" - }, - { - "id": "810824112", - "odds": "15.000", - "name": "Juan Latasa", - "handicap": "" - }, - { - "id": "818234653", - "odds": "1.285", - "name": "Yan Diomande: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818174813", - "odds": "1.727", - "name": "Juan Latasa: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "813198253", - "odds": "1.333", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "713505303", - "odds": "1.300", - "name": "FT Result: Leganes", - "handicap": "" - }, - { - "id": "818170790", - "odds": "1.833", - "name": "Daniel Raba: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818170803", - "odds": "1.666", - "name": "Diego Garcia: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810816138", - "odds": "2.050", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818174813", - "odds": "1.727", - "name": "Juan Latasa: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818170892", - "odds": "1.533", - "name": "Seydouba Cisse: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713505316", - "odds": "9.500", - "name": "FT Result: Valladolid", - "handicap": "" - }, - { - "id": "810818057", - "odds": "1.666", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813198253", - "odds": "1.333", - "name": "Over 7 Corners", - "handicap": "7.0" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T15:46:22+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977005", - "FI": "174206938", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T15:43:17+03:00", - "Odds": [ - { - "id": "810793474", - "odds": "4.500", - "name": "Javi Puado", - "handicap": "" - }, - { - "id": "810793926", - "odds": "9.500", - "name": "Roberto Fernandez", - "handicap": "" - }, - { - "id": "818165415", - "odds": "2.000", - "name": "Oliver McBurnie: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818165371", - "odds": "2.750", - "name": "Adnan Januzaj: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818223546", - "odds": "1.250", - "name": "Roberto Fernandez: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713505983", - "odds": "1.380", - "name": "FT Result: Espanyol", - "handicap": "" - }, - { - "id": "818161086", - "odds": "1.909", - "name": "Javi Puado: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818161150", - "odds": "2.100", - "name": "Roberto Fernandez: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810785073", - "odds": "2.100", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818165373", - "odds": "2.100", - "name": "Alberto Moleiro: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818223267", - "odds": "1.200", - "name": "Javi Puado: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713505993", - "odds": "8.000", - "name": "FT Result: Las Palmas", - "handicap": "" - }, - { - "id": "813197755", - "odds": "1.300", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "810787654", - "odds": "1.800", - "name": "Over 2 Goals", - "handicap": "2" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T15:46:22+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977005", - "FI": "174206938", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T15:43:17+03:00", - "Odds": [ - { - "id": "810793474", - "odds": "4.500", - "name": "Javi Puado", - "handicap": "" - }, - { - "id": "810793926", - "odds": "9.500", - "name": "Roberto Fernandez", - "handicap": "" - }, - { - "id": "818165415", - "odds": "2.000", - "name": "Oliver McBurnie: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818165371", - "odds": "2.750", - "name": "Adnan Januzaj: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818223546", - "odds": "1.250", - "name": "Roberto Fernandez: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713505983", - "odds": "1.380", - "name": "FT Result: Espanyol", - "handicap": "" - }, - { - "id": "818161086", - "odds": "1.909", - "name": "Javi Puado: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818161150", - "odds": "2.100", - "name": "Roberto Fernandez: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810785073", - "odds": "2.100", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818165373", - "odds": "2.100", - "name": "Alberto Moleiro: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818223267", - "odds": "1.200", - "name": "Javi Puado: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713505993", - "odds": "8.000", - "name": "FT Result: Las Palmas", - "handicap": "" - }, - { - "id": "813197755", - "odds": "1.300", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "810787654", - "odds": "1.800", - "name": "Over 2 Goals", - "handicap": "2" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T15:46:38+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9757324", - "FI": "172433912", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T15:46:21+03:00", - "Odds": [ - { - "id": "817868646", - "odds": "4.250", - "name": "Ousmane Dembele", - "handicap": "" - }, - { - "id": "467772639", - "odds": "8.000", - "name": "PSG 3-0", - "handicap": "" - }, - { - "id": "467774766", - "odds": "2.050", - "name": "PSG to win by 3+ Goals", - "handicap": "" - }, - { - "id": "818472444", - "odds": "1.800", - "name": "Bradley Barcola: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818472520", - "odds": "1.571", - "name": "Khvicha Kvaratskhelia: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "467775416", - "odds": "2.000", - "name": "PSG to Win Both Halves", - "handicap": "" - }, - { - "id": "818525029", - "odds": "1.333", - "name": "Ousmane Dembele: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818524895", - "odds": "3.250", - "name": "Fabian Ruiz: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "467772622", - "odds": "1.500", - "name": "HT: PSG \u2013 FT: PSG", - "handicap": "" - }, - { - "id": "818979031", - "odds": "1.055", - "name": "Most Shots on Target: PSG", - "handicap": "" - }, - { - "id": "818977802", - "odds": "1.533", - "name": "Most Cards: Reims", - "handicap": "" - }, - { - "id": "467772737", - "odds": "1.833", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "467773042", - "odds": "2.200", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818525029", - "odds": "1.333", - "name": "Ousmane Dembele: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818525451", - "odds": "10.000", - "name": "Theoson Siebatcheu: 2+ Shots on Target", - "handicap": "1.5" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T15:46:41+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977003", - "FI": "174206914", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T15:44:06+03:00", - "Odds": [ - { - "id": "810782401", - "odds": "6.500", - "name": "Ante Budimir", - "handicap": "" - }, - { - "id": "810782255", - "odds": "17.000", - "name": "Jon Guridi", - "handicap": "" - }, - { - "id": "713504570", - "odds": "2.350", - "name": "FT Result: Osasuna", - "handicap": "" - }, - { - "id": "818200891", - "odds": "1.615", - "name": "Ante Budimir: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810881584", - "odds": "1.833", - "name": "Ante Budimir to Score or Assist", - "handicap": "" - }, - { - "id": "713504562", - "odds": "3.200", - "name": "FT Result: CD Alaves", - "handicap": "" - }, - { - "id": "810777871", - "odds": "1.950", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "813199262", - "odds": "1.333", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "713504562", - "odds": "3.200", - "name": "FT Result: CD Alaves", - "handicap": "" - }, - { - "id": "818200816", - "odds": "1.615", - "name": "Carlos Vicente: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "810881581", - "odds": "3.500", - "name": "Jon Guridi to Score or Assist", - "handicap": "" - }, - { - "id": "810778158", - "odds": "4.000", - "name": "Osasuna to Score in Both Halves", - "handicap": "" - }, - { - "id": "810881558", - "odds": "2.100", - "name": "Bryan Zaragoza to Score or Assist", - "handicap": "" - }, - { - "id": "810881580", - "odds": "3.100", - "name": "Aimar Oroz to Score or Assist", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T15:46:47+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977007", - "FI": "174206951", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T15:46:32+03:00", - "Odds": [ - { - "id": "810795373", - "odds": "2.875", - "name": "1", - "handicap": "" - }, - { - "id": "810801154", - "odds": "5.500", - "name": "Borja Iglesias", - "handicap": "" - }, - { - "id": "713507435", - "odds": "1.850", - "name": "FT Result: Celta Vigo", - "handicap": "" - }, - { - "id": "818234755", - "odds": "1.909", - "name": "Borja Iglesias: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818234745", - "odds": "1.800", - "name": "Alfonso Gonzalez: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713507421", - "odds": "4.100", - "name": "FT Result: Getafe", - "handicap": "" - }, - { - "id": "810795706", - "odds": "2.100", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813201935", - "odds": "1.533", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "713507435", - "odds": "1.850", - "name": "FT Result: Celta Vigo", - "handicap": "" - }, - { - "id": "810884551", - "odds": "3.100", - "name": "Oscar Mingueza to Score or Assist", - "handicap": "" - }, - { - "id": "818234750", - "odds": "3.500", - "name": "Beltran Fran: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818272688", - "odds": "1.285", - "name": "Moya Borja Mayoral: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818232899", - "odds": "1.533", - "name": "Chrisantus Uche: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818235077", - "odds": "2.625", - "name": "Oscar Mingueza: 1+ Shots on Target", - "handicap": "0.5" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T15:46:47+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977007", - "FI": "174206951", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T15:46:32+03:00", - "Odds": [ - { - "id": "810795373", - "odds": "2.875", - "name": "1", - "handicap": "" - }, - { - "id": "810801154", - "odds": "5.500", - "name": "Borja Iglesias", - "handicap": "" - }, - { - "id": "713507435", - "odds": "1.850", - "name": "FT Result: Celta Vigo", - "handicap": "" - }, - { - "id": "818234755", - "odds": "1.909", - "name": "Borja Iglesias: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818234745", - "odds": "1.800", - "name": "Alfonso Gonzalez: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713507421", - "odds": "4.100", - "name": "FT Result: Getafe", - "handicap": "" - }, - { - "id": "810795706", - "odds": "2.100", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813201935", - "odds": "1.533", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "713507435", - "odds": "1.850", - "name": "FT Result: Celta Vigo", - "handicap": "" - }, - { - "id": "810884551", - "odds": "3.100", - "name": "Oscar Mingueza to Score or Assist", - "handicap": "" - }, - { - "id": "818234750", - "odds": "3.500", - "name": "Beltran Fran: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818272688", - "odds": "1.285", - "name": "Moya Borja Mayoral: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818232899", - "odds": "1.533", - "name": "Chrisantus Uche: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818235077", - "odds": "2.625", - "name": "Oscar Mingueza: 1+ Shots on Target", - "handicap": "0.5" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T15:46:54+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977008", - "FI": "174206957", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T15:46:19+03:00", - "Odds": [ - { - "id": "810830891", - "odds": "8.500", - "name": "Isi Palazon", - "handicap": "" - }, - { - "id": "810826957", - "odds": "3.750", - "name": "2", - "handicap": "" - }, - { - "id": "713508001", - "odds": "6.250", - "name": "FT Result: Mallorca", - "handicap": "" - }, - { - "id": "810827203", - "odds": "2.100", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813203878", - "odds": "1.300", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "713507997", - "odds": "1.533", - "name": "FT Result: Rayo Vallecano", - "handicap": "" - }, - { - "id": "810911970", - "odds": "2.250", - "name": "Jorge De Frutos to Score or Assist", - "handicap": "" - }, - { - "id": "818242351", - "odds": "2.000", - "name": "Isi Palazon: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810827485", - "odds": "2.200", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818248799", - "odds": "3.250", - "name": "Sergi Darder: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818300359", - "odds": "1.222", - "name": "Isi Palazon: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "810827053", - "odds": "2.375", - "name": "HT: Rayo Vallecano \u2013 FT: Rayo Vallecano", - "handicap": "" - }, - { - "id": "810827602", - "odds": "2.625", - "name": "Rayo Vallecano to Score in Both Halves", - "handicap": "" - }, - { - "id": "810830483", - "odds": "4.000", - "name": "Adrian Embarba to Score", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T15:46:54+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977008", - "FI": "174206957", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T15:46:19+03:00", - "Odds": [ - { - "id": "810830891", - "odds": "8.500", - "name": "Isi Palazon", - "handicap": "" - }, - { - "id": "810826957", - "odds": "3.750", - "name": "2", - "handicap": "" - }, - { - "id": "713508001", - "odds": "6.250", - "name": "FT Result: Mallorca", - "handicap": "" - }, - { - "id": "810827203", - "odds": "2.100", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813203878", - "odds": "1.300", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "713507997", - "odds": "1.533", - "name": "FT Result: Rayo Vallecano", - "handicap": "" - }, - { - "id": "810911970", - "odds": "2.250", - "name": "Jorge De Frutos to Score or Assist", - "handicap": "" - }, - { - "id": "818242351", - "odds": "2.000", - "name": "Isi Palazon: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810827485", - "odds": "2.200", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818248799", - "odds": "3.250", - "name": "Sergi Darder: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818300359", - "odds": "1.222", - "name": "Isi Palazon: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "810827053", - "odds": "2.375", - "name": "HT: Rayo Vallecano \u2013 FT: Rayo Vallecano", - "handicap": "" - }, - { - "id": "810827602", - "odds": "2.625", - "name": "Rayo Vallecano to Score in Both Halves", - "handicap": "" - }, - { - "id": "810830483", - "odds": "4.000", - "name": "Adrian Embarba to Score", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T15:48:58+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9289262", - "FI": "174219002", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T15:45:03+03:00", - "Odds": [ - { - "id": "806670446", - "odds": "13.000", - "name": "Tani Oluwaseyi", - "handicap": "" - }, - { - "id": "806655131", - "odds": "9.500", - "name": "Minnesota United 2-1", - "handicap": "" - }, - { - "id": "714859773", - "odds": "1.727", - "name": "FT Result: Minnesota United", - "handicap": "" - }, - { - "id": "812331324", - "odds": "1.800", - "name": "Kelvin Yeboah: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "812331345", - "odds": "2.375", - "name": "Tani Oluwaseyi: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "806655293", - "odds": "2.050", - "name": "Draw or Austin FC", - "handicap": "" - }, - { - "id": "812335148", - "odds": "1.571", - "name": "Myrto Uzuni: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "812334820", - "odds": "1.571", - "name": "Brandon Vazquez: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "827362447", - "odds": "1.533", - "name": "Over 4 Corners for Minnesota United", - "handicap": "4" - }, - { - "id": "827362563", - "odds": "2.200", - "name": "Over 4 Corners for Austin FC", - "handicap": "4" - }, - { - "id": "806655241", - "odds": "1.950", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "806655104", - "odds": "2.625", - "name": "HT: Minnesota United \u2013 FT: Minnesota United", - "handicap": "" - }, - { - "id": "827360459", - "odds": "1.615", - "name": "Most Corners: Minnesota United", - "handicap": "" - }, - { - "id": "806963379", - "odds": "1.800", - "name": "Kelvin Yeboah to Score or Assist", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T15:49:04+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9289261", - "FI": "174219004", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T15:44:43+03:00", - "Odds": [ - { - "id": "806742909", - "odds": "12.000", - "name": "Joao Klauss", - "handicap": "" - }, - { - "id": "806741536", - "odds": "8.500", - "name": "Darren Yapi", - "handicap": "" - }, - { - "id": "714859800", - "odds": "1.850", - "name": "FT Result: Colorado Rapids", - "handicap": "" - }, - { - "id": "812359565", - "odds": "2.100", - "name": "Djordje Mihailovic: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "812508432", - "odds": "3.000", - "name": "Kevin Cabral: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "806733943", - "odds": "1.909", - "name": "Draw or St. Louis City SC", - "handicap": "" - }, - { - "id": "812362704", - "odds": "1.444", - "name": "Cedric Teuchert: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "812362834", - "odds": "1.500", - "name": "Marcel Hartel: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "812508349", - "odds": "3.250", - "name": "Cedric Teuchert: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "812359565", - "odds": "2.100", - "name": "Djordje Mihailovic: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "806737965", - "odds": "1.600", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "714859800", - "odds": "1.850", - "name": "FT Result: Colorado Rapids", - "handicap": "" - }, - { - "id": "827381382", - "odds": "1.250", - "name": "Over 3 Corners for Colorado Rapids", - "handicap": "3" - }, - { - "id": "807040642", - "odds": "2.100", - "name": "Darren Yapi to Score or Assist", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T15:49:11+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9289260", - "FI": "174219006", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T15:44:54+03:00", - "Odds": [ - { - "id": "806753712", - "odds": "8.500", - "name": "Brian White", - "handicap": "" - }, - { - "id": "806753521", - "odds": "7.000", - "name": "William Agada", - "handicap": "" - }, - { - "id": "714859829", - "odds": "2.500", - "name": "FT Result: Real Salt Lake", - "handicap": "" - }, - { - "id": "812514424", - "odds": "1.333", - "name": "William Agada: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "812377943", - "odds": "1.400", - "name": "Diogo Goncalves: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "714859831", - "odds": "2.600", - "name": "FT Result: Vancouver Whitecaps", - "handicap": "" - }, - { - "id": "812380351", - "odds": "2.100", - "name": "Pedro Vite: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "812380265", - "odds": "2.750", - "name": "Brian White: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "827384577", - "odds": "1.666", - "name": "Over 4 Corners for Real Salt Lake", - "handicap": "4" - }, - { - "id": "827384725", - "odds": "1.909", - "name": "Over 4 Corners for Vancouver Whitecaps", - "handicap": "4" - }, - { - "id": "806747601", - "odds": "1.666", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "812377945", - "odds": "1.833", - "name": "Dominik Marczuk: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "812380239", - "odds": "2.250", - "name": "Ali Ahmed: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "806749654", - "odds": "1.800", - "name": "Over 2 Goals", - "handicap": "2" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T15:49:23+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977006", - "FI": "174206945", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T15:45:38+03:00", - "Odds": [ - { - "id": "810813006", - "odds": "8.000", - "name": "Cristhian Stuani", - "handicap": "" - }, - { - "id": "810805461", - "odds": "12.000", - "name": "Atletico Madrid 2-0", - "handicap": "" - }, - { - "id": "713506855", - "odds": "1.950", - "name": "FT Result: Atletico Madrid", - "handicap": "" - }, - { - "id": "818257779", - "odds": "2.750", - "name": "Antoine Griezmann: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818257773", - "odds": "2.750", - "name": "Angel Correa: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818257791", - "odds": "1.833", - "name": "Conor Gallagher: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818257811", - "odds": "1.400", - "name": "Samuel Lino: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818306498", - "odds": "1.400", - "name": "Antoine Griezmann: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713506844", - "odds": "3.700", - "name": "FT Result: Girona", - "handicap": "" - }, - { - "id": "810809282", - "odds": "1.615", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813205972", - "odds": "1.363", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "713506844", - "odds": "3.700", - "name": "FT Result: Girona", - "handicap": "" - }, - { - "id": "832763395", - "odds": "1.400", - "name": "Cristhian Stuani: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818254988", - "odds": "1.444", - "name": "Viktor Tsygankov: 1+ Shots on Target", - "handicap": "0.5" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T15:49:23+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977006", - "FI": "174206945", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T15:45:38+03:00", - "Odds": [ - { - "id": "810813006", - "odds": "8.000", - "name": "Cristhian Stuani", - "handicap": "" - }, - { - "id": "810805461", - "odds": "12.000", - "name": "Atletico Madrid 2-0", - "handicap": "" - }, - { - "id": "713506855", - "odds": "1.950", - "name": "FT Result: Atletico Madrid", - "handicap": "" - }, - { - "id": "818257779", - "odds": "2.750", - "name": "Antoine Griezmann: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818257773", - "odds": "2.750", - "name": "Angel Correa: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818257791", - "odds": "1.833", - "name": "Conor Gallagher: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818257811", - "odds": "1.400", - "name": "Samuel Lino: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818306498", - "odds": "1.400", - "name": "Antoine Griezmann: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713506844", - "odds": "3.700", - "name": "FT Result: Girona", - "handicap": "" - }, - { - "id": "810809282", - "odds": "1.615", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813205972", - "odds": "1.363", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "713506844", - "odds": "3.700", - "name": "FT Result: Girona", - "handicap": "" - }, - { - "id": "832763395", - "odds": "1.400", - "name": "Cristhian Stuani: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818254988", - "odds": "1.444", - "name": "Viktor Tsygankov: 1+ Shots on Target", - "handicap": "0.5" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T15:52:02+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "8822035", - "FI": "174588284", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T15:47:42+03:00", - "Odds": [ - { - "id": "820312223", - "odds": "3.400", - "name": "Duckens Nazon: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "819383249", - "odds": "1.800", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "827542181", - "odds": "3.400", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "819997827", - "odds": "1.500", - "name": "Gokdeniz Bayrakdar: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "819383249", - "odds": "1.800", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "827542181", - "odds": "3.400", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "819997755", - "odds": "1.666", - "name": "Alredo Fredy: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "765036662", - "odds": "1.950", - "name": "FT Result: Bodrum FK", - "handicap": "" - }, - { - "id": "819383249", - "odds": "1.800", - "name": "Both Teams to Score", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T15:52:02+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "8822035", - "FI": "174588284", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T15:47:42+03:00", - "Odds": [ - { - "id": "820312223", - "odds": "3.400", - "name": "Duckens Nazon: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "819383249", - "odds": "1.800", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "827542181", - "odds": "3.400", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "819997827", - "odds": "1.500", - "name": "Gokdeniz Bayrakdar: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "819383249", - "odds": "1.800", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "827542181", - "odds": "3.400", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "819997755", - "odds": "1.666", - "name": "Alredo Fredy: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "765036662", - "odds": "1.950", - "name": "FT Result: Bodrum FK", - "handicap": "" - }, - { - "id": "819383249", - "odds": "1.800", - "name": "Both Teams to Score", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T15:52:13+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "8822034", - "FI": "174588286", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T15:50:07+03:00", - "Odds": [ - { - "id": "820006660", - "odds": "1.571", - "name": "Mehmet Nayir: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "765036764", - "odds": "2.800", - "name": "FT Result: Konyaspor", - "handicap": "" - }, - { - "id": "819391476", - "odds": "3.250", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "820321024", - "odds": "3.000", - "name": "Andraz Sporar: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "765036767", - "odds": "2.250", - "name": "FT Result: Alanyaspor", - "handicap": "" - }, - { - "id": "819400742", - "odds": "1.727", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "820009298", - "odds": "1.666", - "name": "Eui-Jo Hwang: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "819400742", - "odds": "1.727", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "819391476", - "odds": "3.250", - "name": "Over 3 Goals", - "handicap": "3" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T15:52:13+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "8822034", - "FI": "174588286", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T15:50:07+03:00", - "Odds": [ - { - "id": "820006660", - "odds": "1.571", - "name": "Mehmet Nayir: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "765036764", - "odds": "2.800", - "name": "FT Result: Konyaspor", - "handicap": "" - }, - { - "id": "819391476", - "odds": "3.250", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "820321024", - "odds": "3.000", - "name": "Andraz Sporar: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "765036767", - "odds": "2.250", - "name": "FT Result: Alanyaspor", - "handicap": "" - }, - { - "id": "819400742", - "odds": "1.727", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "820009298", - "odds": "1.666", - "name": "Eui-Jo Hwang: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "819400742", - "odds": "1.727", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "819391476", - "odds": "3.250", - "name": "Over 3 Goals", - "handicap": "3" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T15:52:21+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "8840198", - "FI": "174588288", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T15:48:34+03:00", - "Odds": [ - { - "id": "820021777", - "odds": "1.500", - "name": "Oleksandr Zubkov: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "765036883", - "odds": "2.250", - "name": "FT Result: Trabzonspor", - "handicap": "" - }, - { - "id": "819420355", - "odds": "2.625", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "820021638", - "odds": "1.727", - "name": "Anthony Nwakaeme: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "819420878", - "odds": "1.571", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "819420355", - "odds": "2.625", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "820336294", - "odds": "3.400", - "name": "Landry Dimata: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "765036888", - "odds": "2.800", - "name": "FT Result: Samsunspor", - "handicap": "" - }, - { - "id": "819420878", - "odds": "1.571", - "name": "Both Teams to Score", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T15:52:21+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "8840198", - "FI": "174588288", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T15:48:34+03:00", - "Odds": [ - { - "id": "820021777", - "odds": "1.500", - "name": "Oleksandr Zubkov: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "765036883", - "odds": "2.250", - "name": "FT Result: Trabzonspor", - "handicap": "" - }, - { - "id": "819420355", - "odds": "2.625", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "820021638", - "odds": "1.727", - "name": "Anthony Nwakaeme: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "819420878", - "odds": "1.571", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "819420355", - "odds": "2.625", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "820336294", - "odds": "3.400", - "name": "Landry Dimata: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "765036888", - "odds": "2.800", - "name": "FT Result: Samsunspor", - "handicap": "" - }, - { - "id": "819420878", - "odds": "1.571", - "name": "Both Teams to Score", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T15:52:30+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9982903", - "FI": "174588280", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T15:50:33+03:00", - "Odds": [ - { - "id": "820343994", - "odds": "1.300", - "name": "Ciro Immobile: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "819945189", - "odds": "2.200", - "name": "Rafa Silva: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "765036441", - "odds": "1.420", - "name": "FT Result: Besiktas", - "handicap": "" - }, - { - "id": "819945232", - "odds": "2.625", - "name": "Joao Mario: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "819344587", - "odds": "1.727", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "819343676", - "odds": "2.200", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "819348703", - "odds": "1.666", - "name": "Ciro Immobile to Score", - "handicap": "" - }, - { - "id": "765036441", - "odds": "1.420", - "name": "FT Result: Besiktas", - "handicap": "" - }, - { - "id": "819343676", - "odds": "2.200", - "name": "Over 3 Goals", - "handicap": "3" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T15:52:30+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9982903", - "FI": "174588280", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T15:50:33+03:00", - "Odds": [ - { - "id": "820343994", - "odds": "1.300", - "name": "Ciro Immobile: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "819945189", - "odds": "2.200", - "name": "Rafa Silva: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "765036441", - "odds": "1.420", - "name": "FT Result: Besiktas", - "handicap": "" - }, - { - "id": "819945232", - "odds": "2.625", - "name": "Joao Mario: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "819344587", - "odds": "1.727", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "819343676", - "odds": "2.200", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "819348703", - "odds": "1.666", - "name": "Ciro Immobile to Score", - "handicap": "" - }, - { - "id": "765036441", - "odds": "1.420", - "name": "FT Result: Besiktas", - "handicap": "" - }, - { - "id": "819343676", - "odds": "2.200", - "name": "Over 3 Goals", - "handicap": "3" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T16:15:22+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977002", - "FI": "174206901", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T16:12:25+03:00", - "Odds": [ - { - "id": "810834176", - "odds": "13.000", - "name": "Valencia 2-1", - "handicap": "" - }, - { - "id": "810843474", - "odds": "7.000", - "name": "Hugo Duro", - "handicap": "" - }, - { - "id": "713504056", - "odds": "2.000", - "name": "FT Result: Real Betis", - "handicap": "" - }, - { - "id": "818142082", - "odds": "2.375", - "name": "Juan Hernandez: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818142073", - "odds": "1.444", - "name": "Jesus Rodriguez: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713504058", - "odds": "3.500", - "name": "FT Result: Valencia", - "handicap": "" - }, - { - "id": "818205392", - "odds": "1.300", - "name": "Hugo Duro: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818145409", - "odds": "1.533", - "name": "Luis Rioja: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713504058", - "odds": "3.500", - "name": "FT Result: Valencia", - "handicap": "" - }, - { - "id": "810835604", - "odds": "1.533", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "813193941", - "odds": "1.300", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "818142127", - "odds": "2.100", - "name": "Silva William Carvalho: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818205392", - "odds": "1.300", - "name": "Hugo Duro: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "810835604", - "odds": "1.533", - "name": "Both Teams to Score", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T16:15:32+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9982904", - "FI": "174588290", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T16:11:22+03:00", - "Odds": [ - { - "id": "820264609", - "odds": "1.400", - "name": "Umut Bozok: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "765037000", - "odds": "1.900", - "name": "FT Result: Eyupspor", - "handicap": "" - }, - { - "id": "819298752", - "odds": "1.666", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "820243702", - "odds": "1.444", - "name": "Emre Mor: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "819298752", - "odds": "1.666", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "819301876", - "odds": "5.500", - "name": "Over 4 Goals", - "handicap": "4" - }, - { - "id": "820264669", - "odds": "3.400", - "name": "Adolfo Gaich: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "765037006", - "odds": "3.700", - "name": "FT Result: Antalyaspor", - "handicap": "" - }, - { - "id": "819298752", - "odds": "1.666", - "name": "Both Teams to Score", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T16:16:01+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "8826418", - "FI": "174588296", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T15:51:38+03:00", - "Odds": [ - { - "id": "819956646", - "odds": "1.500", - "name": "Alexandru Maxim: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "765037294", - "odds": "2.600", - "name": "FT Result: Gaziantep FK", - "handicap": "" - }, - { - "id": "819311085", - "odds": "2.100", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "819959543", - "odds": "2.375", - "name": "Joia Nuno Da Costa: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "765037306", - "odds": "2.375", - "name": "FT Result: Kasimpasa", - "handicap": "" - }, - { - "id": "819312321", - "odds": "1.444", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "820280304", - "odds": "1.363", - "name": "Aytac Kara: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "819312321", - "odds": "1.444", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "819315041", - "odds": "3.750", - "name": "Over 4 Goals", - "handicap": "4" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T16:30:23+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977002", - "FI": "174206901", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T16:12:25+03:00", - "Odds": [ - { - "id": "810834176", - "odds": "13.000", - "name": "Valencia 2-1", - "handicap": "" - }, - { - "id": "810843474", - "odds": "7.000", - "name": "Hugo Duro", - "handicap": "" - }, - { - "id": "713504056", - "odds": "2.000", - "name": "FT Result: Real Betis", - "handicap": "" - }, - { - "id": "818142082", - "odds": "2.375", - "name": "Juan Hernandez: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818142073", - "odds": "1.444", - "name": "Jesus Rodriguez: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713504058", - "odds": "3.500", - "name": "FT Result: Valencia", - "handicap": "" - }, - { - "id": "818205392", - "odds": "1.300", - "name": "Hugo Duro: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818145409", - "odds": "1.533", - "name": "Luis Rioja: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713504058", - "odds": "3.500", - "name": "FT Result: Valencia", - "handicap": "" - }, - { - "id": "810835604", - "odds": "1.533", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "813193941", - "odds": "1.300", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "818142127", - "odds": "2.100", - "name": "Silva William Carvalho: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818205392", - "odds": "1.300", - "name": "Hugo Duro: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "810835604", - "odds": "1.533", - "name": "Both Teams to Score", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T16:30:28+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9982904", - "FI": "174588290", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T16:29:56+03:00", - "Odds": [ - { - "id": "820264609", - "odds": "1.400", - "name": "Umut Bozok: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "765037000", - "odds": "1.900", - "name": "FT Result: Eyupspor", - "handicap": "" - }, - { - "id": "819298752", - "odds": "1.666", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "820243702", - "odds": "1.444", - "name": "Emre Mor: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "819298752", - "odds": "1.666", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "819301876", - "odds": "5.500", - "name": "Over 4 Goals", - "handicap": "4" - }, - { - "id": "820264669", - "odds": "3.400", - "name": "Adolfo Gaich: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "765037006", - "odds": "3.700", - "name": "FT Result: Antalyaspor", - "handicap": "" - }, - { - "id": "819298752", - "odds": "1.666", - "name": "Both Teams to Score", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T16:30:52+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "8826418", - "FI": "174588296", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T16:30:30+03:00", - "Odds": [ - { - "id": "819956646", - "odds": "1.500", - "name": "Alexandru Maxim: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "765037294", - "odds": "2.600", - "name": "FT Result: Gaziantep FK", - "handicap": "" - }, - { - "id": "819311085", - "odds": "2.100", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "819959543", - "odds": "2.375", - "name": "Joia Nuno Da Costa: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "765037306", - "odds": "2.375", - "name": "FT Result: Kasimpasa", - "handicap": "" - }, - { - "id": "819312321", - "odds": "1.444", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "820280304", - "odds": "1.363", - "name": "Aytac Kara: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "819312321", - "odds": "1.444", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "819315041", - "odds": "3.750", - "name": "Over 4 Goals", - "handicap": "4" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T16:31:09+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977004", - "FI": "174206928", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T16:29:40+03:00", - "Odds": [ - { - "id": "810825615", - "odds": "10.000", - "name": "Daniel Raba", - "handicap": "" - }, - { - "id": "810824112", - "odds": "15.000", - "name": "Juan Latasa", - "handicap": "" - }, - { - "id": "818234653", - "odds": "1.285", - "name": "Yan Diomande: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818174813", - "odds": "1.727", - "name": "Juan Latasa: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "813198253", - "odds": "1.333", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "713505303", - "odds": "1.300", - "name": "FT Result: Leganes", - "handicap": "" - }, - { - "id": "818170790", - "odds": "1.833", - "name": "Daniel Raba: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818170803", - "odds": "1.666", - "name": "Diego Garcia: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810816138", - "odds": "2.050", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818174813", - "odds": "1.727", - "name": "Juan Latasa: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818170892", - "odds": "1.533", - "name": "Seydouba Cisse: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713505316", - "odds": "9.500", - "name": "FT Result: Valladolid", - "handicap": "" - }, - { - "id": "810818057", - "odds": "1.666", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813198253", - "odds": "1.333", - "name": "Over 7 Corners", - "handicap": "7.0" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T16:31:17+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977005", - "FI": "174206938", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T16:28:47+03:00", - "Odds": [ - { - "id": "810793474", - "odds": "4.500", - "name": "Javi Puado", - "handicap": "" - }, - { - "id": "810793926", - "odds": "9.000", - "name": "Roberto Fernandez", - "handicap": "" - }, - { - "id": "818165415", - "odds": "2.000", - "name": "Oliver McBurnie: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818165371", - "odds": "3.000", - "name": "Adnan Januzaj: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818223546", - "odds": "1.250", - "name": "Roberto Fernandez: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713505983", - "odds": "1.363", - "name": "FT Result: Espanyol", - "handicap": "" - }, - { - "id": "818161086", - "odds": "1.909", - "name": "Javi Puado: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818161150", - "odds": "2.100", - "name": "Roberto Fernandez: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810785073", - "odds": "2.100", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818165373", - "odds": "2.100", - "name": "Alberto Moleiro: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818223267", - "odds": "1.200", - "name": "Javi Puado: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713505993", - "odds": "8.500", - "name": "FT Result: Las Palmas", - "handicap": "" - }, - { - "id": "813197755", - "odds": "1.300", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "810787654", - "odds": "1.800", - "name": "Over 2 Goals", - "handicap": "2" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T16:31:17+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977005", - "FI": "174206938", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T16:28:47+03:00", - "Odds": [ - { - "id": "810793474", - "odds": "4.500", - "name": "Javi Puado", - "handicap": "" - }, - { - "id": "810793926", - "odds": "9.000", - "name": "Roberto Fernandez", - "handicap": "" - }, - { - "id": "818165415", - "odds": "2.000", - "name": "Oliver McBurnie: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818165371", - "odds": "3.000", - "name": "Adnan Januzaj: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818223546", - "odds": "1.250", - "name": "Roberto Fernandez: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713505983", - "odds": "1.363", - "name": "FT Result: Espanyol", - "handicap": "" - }, - { - "id": "818161086", - "odds": "1.909", - "name": "Javi Puado: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818161150", - "odds": "2.100", - "name": "Roberto Fernandez: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810785073", - "odds": "2.100", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818165373", - "odds": "2.100", - "name": "Alberto Moleiro: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818223267", - "odds": "1.200", - "name": "Javi Puado: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713505993", - "odds": "8.500", - "name": "FT Result: Las Palmas", - "handicap": "" - }, - { - "id": "813197755", - "odds": "1.300", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "810787654", - "odds": "1.800", - "name": "Over 2 Goals", - "handicap": "2" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T16:31:30+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9757324", - "FI": "172433912", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T16:29:08+03:00", - "Odds": [ - { - "id": "817868646", - "odds": "4.250", - "name": "Ousmane Dembele", - "handicap": "" - }, - { - "id": "467772639", - "odds": "8.000", - "name": "PSG 3-0", - "handicap": "" - }, - { - "id": "467774766", - "odds": "2.050", - "name": "PSG to win by 3+ Goals", - "handicap": "" - }, - { - "id": "818472444", - "odds": "1.800", - "name": "Bradley Barcola: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818472520", - "odds": "1.571", - "name": "Khvicha Kvaratskhelia: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "467775416", - "odds": "2.000", - "name": "PSG to Win Both Halves", - "handicap": "" - }, - { - "id": "818525029", - "odds": "1.333", - "name": "Ousmane Dembele: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818524895", - "odds": "3.250", - "name": "Fabian Ruiz: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "467772622", - "odds": "1.500", - "name": "HT: PSG \u2013 FT: PSG", - "handicap": "" - }, - { - "id": "818979031", - "odds": "1.055", - "name": "Most Shots on Target: PSG", - "handicap": "" - }, - { - "id": "818977802", - "odds": "1.533", - "name": "Most Cards: Reims", - "handicap": "" - }, - { - "id": "467772737", - "odds": "1.833", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "467773042", - "odds": "2.200", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818525029", - "odds": "1.333", - "name": "Ousmane Dembele: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818525451", - "odds": "10.000", - "name": "Theoson Siebatcheu: 2+ Shots on Target", - "handicap": "1.5" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T16:31:31+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977003", - "FI": "174206914", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T16:20:41+03:00", - "Odds": [ - { - "id": "810782401", - "odds": "6.500", - "name": "Ante Budimir", - "handicap": "" - }, - { - "id": "810782255", - "odds": "17.000", - "name": "Jon Guridi", - "handicap": "" - }, - { - "id": "713504570", - "odds": "2.350", - "name": "FT Result: Osasuna", - "handicap": "" - }, - { - "id": "818200891", - "odds": "1.615", - "name": "Ante Budimir: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810881584", - "odds": "1.833", - "name": "Ante Budimir to Score or Assist", - "handicap": "" - }, - { - "id": "713504562", - "odds": "3.200", - "name": "FT Result: CD Alaves", - "handicap": "" - }, - { - "id": "810777871", - "odds": "1.950", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "813199262", - "odds": "1.333", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "713504562", - "odds": "3.200", - "name": "FT Result: CD Alaves", - "handicap": "" - }, - { - "id": "818200816", - "odds": "1.615", - "name": "Carlos Vicente: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "810881581", - "odds": "3.500", - "name": "Jon Guridi to Score or Assist", - "handicap": "" - }, - { - "id": "810778158", - "odds": "4.000", - "name": "Osasuna to Score in Both Halves", - "handicap": "" - }, - { - "id": "810881558", - "odds": "2.100", - "name": "Bryan Zaragoza to Score or Assist", - "handicap": "" - }, - { - "id": "810881580", - "odds": "3.100", - "name": "Aimar Oroz to Score or Assist", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T16:31:42+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977007", - "FI": "174206951", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T16:27:17+03:00", - "Odds": [ - { - "id": "810795373", - "odds": "2.875", - "name": "1", - "handicap": "" - }, - { - "id": "810801154", - "odds": "5.500", - "name": "Borja Iglesias", - "handicap": "" - }, - { - "id": "713507435", - "odds": "1.850", - "name": "FT Result: Celta Vigo", - "handicap": "" - }, - { - "id": "818234755", - "odds": "1.909", - "name": "Borja Iglesias: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818234745", - "odds": "1.800", - "name": "Alfonso Gonzalez: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713507421", - "odds": "4.100", - "name": "FT Result: Getafe", - "handicap": "" - }, - { - "id": "810795706", - "odds": "2.100", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813201935", - "odds": "1.533", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "713507435", - "odds": "1.850", - "name": "FT Result: Celta Vigo", - "handicap": "" - }, - { - "id": "810884551", - "odds": "3.100", - "name": "Oscar Mingueza to Score or Assist", - "handicap": "" - }, - { - "id": "818234750", - "odds": "3.500", - "name": "Beltran Fran: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818272688", - "odds": "1.285", - "name": "Moya Borja Mayoral: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818232899", - "odds": "1.533", - "name": "Chrisantus Uche: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818235077", - "odds": "2.625", - "name": "Oscar Mingueza: 1+ Shots on Target", - "handicap": "0.5" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T16:31:42+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977007", - "FI": "174206951", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T16:27:17+03:00", - "Odds": [ - { - "id": "810795373", - "odds": "2.875", - "name": "1", - "handicap": "" - }, - { - "id": "810801154", - "odds": "5.500", - "name": "Borja Iglesias", - "handicap": "" - }, - { - "id": "713507435", - "odds": "1.850", - "name": "FT Result: Celta Vigo", - "handicap": "" - }, - { - "id": "818234755", - "odds": "1.909", - "name": "Borja Iglesias: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818234745", - "odds": "1.800", - "name": "Alfonso Gonzalez: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713507421", - "odds": "4.100", - "name": "FT Result: Getafe", - "handicap": "" - }, - { - "id": "810795706", - "odds": "2.100", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813201935", - "odds": "1.533", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "713507435", - "odds": "1.850", - "name": "FT Result: Celta Vigo", - "handicap": "" - }, - { - "id": "810884551", - "odds": "3.100", - "name": "Oscar Mingueza to Score or Assist", - "handicap": "" - }, - { - "id": "818234750", - "odds": "3.500", - "name": "Beltran Fran: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818272688", - "odds": "1.285", - "name": "Moya Borja Mayoral: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818232899", - "odds": "1.533", - "name": "Chrisantus Uche: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818235077", - "odds": "2.625", - "name": "Oscar Mingueza: 1+ Shots on Target", - "handicap": "0.5" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T16:32:08+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977008", - "FI": "174206957", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T16:13:49+03:00", - "Odds": [ - { - "id": "810830891", - "odds": "8.500", - "name": "Isi Palazon", - "handicap": "" - }, - { - "id": "810826957", - "odds": "3.750", - "name": "2", - "handicap": "" - }, - { - "id": "713508001", - "odds": "6.250", - "name": "FT Result: Mallorca", - "handicap": "" - }, - { - "id": "810827203", - "odds": "2.100", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813203878", - "odds": "1.300", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "713507997", - "odds": "1.533", - "name": "FT Result: Rayo Vallecano", - "handicap": "" - }, - { - "id": "810911970", - "odds": "2.250", - "name": "Jorge De Frutos to Score or Assist", - "handicap": "" - }, - { - "id": "818242351", - "odds": "2.000", - "name": "Isi Palazon: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810827485", - "odds": "2.200", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818248799", - "odds": "3.250", - "name": "Sergi Darder: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818300359", - "odds": "1.222", - "name": "Isi Palazon: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "810827053", - "odds": "2.375", - "name": "HT: Rayo Vallecano \u2013 FT: Rayo Vallecano", - "handicap": "" - }, - { - "id": "810827602", - "odds": "2.625", - "name": "Rayo Vallecano to Score in Both Halves", - "handicap": "" - }, - { - "id": "810830483", - "odds": "4.000", - "name": "Adrian Embarba to Score", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T16:32:08+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977008", - "FI": "174206957", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T16:13:49+03:00", - "Odds": [ - { - "id": "810830891", - "odds": "8.500", - "name": "Isi Palazon", - "handicap": "" - }, - { - "id": "810826957", - "odds": "3.750", - "name": "2", - "handicap": "" - }, - { - "id": "713508001", - "odds": "6.250", - "name": "FT Result: Mallorca", - "handicap": "" - }, - { - "id": "810827203", - "odds": "2.100", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813203878", - "odds": "1.300", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "713507997", - "odds": "1.533", - "name": "FT Result: Rayo Vallecano", - "handicap": "" - }, - { - "id": "810911970", - "odds": "2.250", - "name": "Jorge De Frutos to Score or Assist", - "handicap": "" - }, - { - "id": "818242351", - "odds": "2.000", - "name": "Isi Palazon: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810827485", - "odds": "2.200", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818248799", - "odds": "3.250", - "name": "Sergi Darder: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818300359", - "odds": "1.222", - "name": "Isi Palazon: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "810827053", - "odds": "2.375", - "name": "HT: Rayo Vallecano \u2013 FT: Rayo Vallecano", - "handicap": "" - }, - { - "id": "810827602", - "odds": "2.625", - "name": "Rayo Vallecano to Score in Both Halves", - "handicap": "" - }, - { - "id": "810830483", - "odds": "4.000", - "name": "Adrian Embarba to Score", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T16:34:08+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9289262", - "FI": "174219002", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T16:26:45+03:00", - "Odds": [ - { - "id": "806670446", - "odds": "13.000", - "name": "Tani Oluwaseyi", - "handicap": "" - }, - { - "id": "806655131", - "odds": "9.500", - "name": "Minnesota United 2-1", - "handicap": "" - }, - { - "id": "714859773", - "odds": "1.727", - "name": "FT Result: Minnesota United", - "handicap": "" - }, - { - "id": "812331324", - "odds": "1.800", - "name": "Kelvin Yeboah: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "812331345", - "odds": "2.375", - "name": "Tani Oluwaseyi: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "806655293", - "odds": "2.050", - "name": "Draw or Austin FC", - "handicap": "" - }, - { - "id": "812335148", - "odds": "1.571", - "name": "Myrto Uzuni: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "812334820", - "odds": "1.571", - "name": "Brandon Vazquez: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "827362447", - "odds": "1.533", - "name": "Over 4 Corners for Minnesota United", - "handicap": "4" - }, - { - "id": "827362563", - "odds": "2.200", - "name": "Over 4 Corners for Austin FC", - "handicap": "4" - }, - { - "id": "806655241", - "odds": "1.950", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "806655104", - "odds": "2.625", - "name": "HT: Minnesota United \u2013 FT: Minnesota United", - "handicap": "" - }, - { - "id": "827360459", - "odds": "1.615", - "name": "Most Corners: Minnesota United", - "handicap": "" - }, - { - "id": "806963379", - "odds": "1.800", - "name": "Kelvin Yeboah to Score or Assist", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T16:34:16+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9289261", - "FI": "174219004", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T16:25:37+03:00", - "Odds": [ - { - "id": "806742909", - "odds": "12.000", - "name": "Joao Klauss", - "handicap": "" - }, - { - "id": "806741536", - "odds": "8.500", - "name": "Darren Yapi", - "handicap": "" - }, - { - "id": "714859800", - "odds": "1.850", - "name": "FT Result: Colorado Rapids", - "handicap": "" - }, - { - "id": "812359565", - "odds": "2.100", - "name": "Djordje Mihailovic: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "812508432", - "odds": "3.000", - "name": "Kevin Cabral: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "806733943", - "odds": "1.909", - "name": "Draw or St. Louis City SC", - "handicap": "" - }, - { - "id": "812362704", - "odds": "1.444", - "name": "Cedric Teuchert: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "812362834", - "odds": "1.500", - "name": "Marcel Hartel: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "812508349", - "odds": "3.250", - "name": "Cedric Teuchert: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "812359565", - "odds": "2.100", - "name": "Djordje Mihailovic: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "806737965", - "odds": "1.600", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "714859800", - "odds": "1.850", - "name": "FT Result: Colorado Rapids", - "handicap": "" - }, - { - "id": "827381382", - "odds": "1.250", - "name": "Over 3 Corners for Colorado Rapids", - "handicap": "3" - }, - { - "id": "807040642", - "odds": "2.100", - "name": "Darren Yapi to Score or Assist", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T16:34:19+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9289260", - "FI": "174219006", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T16:24:46+03:00", - "Odds": [ - { - "id": "806753712", - "odds": "8.500", - "name": "Brian White", - "handicap": "" - }, - { - "id": "806753521", - "odds": "7.000", - "name": "William Agada", - "handicap": "" - }, - { - "id": "714859829", - "odds": "2.500", - "name": "FT Result: Real Salt Lake", - "handicap": "" - }, - { - "id": "812514424", - "odds": "1.333", - "name": "William Agada: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "812377943", - "odds": "1.400", - "name": "Diogo Goncalves: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "714859831", - "odds": "2.600", - "name": "FT Result: Vancouver Whitecaps", - "handicap": "" - }, - { - "id": "812380351", - "odds": "2.100", - "name": "Pedro Vite: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "812380265", - "odds": "2.750", - "name": "Brian White: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "827384577", - "odds": "1.666", - "name": "Over 4 Corners for Real Salt Lake", - "handicap": "4" - }, - { - "id": "827384725", - "odds": "1.909", - "name": "Over 4 Corners for Vancouver Whitecaps", - "handicap": "4" - }, - { - "id": "806747601", - "odds": "1.666", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "812377945", - "odds": "1.833", - "name": "Dominik Marczuk: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "812380239", - "odds": "2.250", - "name": "Ali Ahmed: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "806749654", - "odds": "1.800", - "name": "Over 2 Goals", - "handicap": "2" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T16:34:45+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977006", - "FI": "174206945", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T16:34:13+03:00", - "Odds": [ - { - "id": "810813006", - "odds": "8.000", - "name": "Cristhian Stuani", - "handicap": "" - }, - { - "id": "810805461", - "odds": "12.000", - "name": "Atletico Madrid 2-0", - "handicap": "" - }, - { - "id": "713506855", - "odds": "1.950", - "name": "FT Result: Atletico Madrid", - "handicap": "" - }, - { - "id": "818257779", - "odds": "2.750", - "name": "Antoine Griezmann: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818257773", - "odds": "2.750", - "name": "Angel Correa: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818257791", - "odds": "1.833", - "name": "Conor Gallagher: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818257811", - "odds": "1.400", - "name": "Samuel Lino: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818306498", - "odds": "1.400", - "name": "Antoine Griezmann: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713506844", - "odds": "3.700", - "name": "FT Result: Girona", - "handicap": "" - }, - { - "id": "810809282", - "odds": "1.615", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813205972", - "odds": "1.363", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "713506844", - "odds": "3.700", - "name": "FT Result: Girona", - "handicap": "" - }, - { - "id": "832763395", - "odds": "1.400", - "name": "Cristhian Stuani: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818254988", - "odds": "1.444", - "name": "Viktor Tsygankov: 1+ Shots on Target", - "handicap": "0.5" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T16:34:45+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977006", - "FI": "174206945", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T16:34:13+03:00", - "Odds": [ - { - "id": "810813006", - "odds": "8.000", - "name": "Cristhian Stuani", - "handicap": "" - }, - { - "id": "810805461", - "odds": "12.000", - "name": "Atletico Madrid 2-0", - "handicap": "" - }, - { - "id": "713506855", - "odds": "1.950", - "name": "FT Result: Atletico Madrid", - "handicap": "" - }, - { - "id": "818257779", - "odds": "2.750", - "name": "Antoine Griezmann: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818257773", - "odds": "2.750", - "name": "Angel Correa: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818257791", - "odds": "1.833", - "name": "Conor Gallagher: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818257811", - "odds": "1.400", - "name": "Samuel Lino: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818306498", - "odds": "1.400", - "name": "Antoine Griezmann: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713506844", - "odds": "3.700", - "name": "FT Result: Girona", - "handicap": "" - }, - { - "id": "810809282", - "odds": "1.615", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813205972", - "odds": "1.363", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "713506844", - "odds": "3.700", - "name": "FT Result: Girona", - "handicap": "" - }, - { - "id": "832763395", - "odds": "1.400", - "name": "Cristhian Stuani: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818254988", - "odds": "1.444", - "name": "Viktor Tsygankov: 1+ Shots on Target", - "handicap": "0.5" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T16:36:39+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "8822035", - "FI": "174588284", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T16:36:29+03:00", - "Odds": [ - { - "id": "820312223", - "odds": "3.400", - "name": "Duckens Nazon: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "819383249", - "odds": "1.800", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "827542181", - "odds": "3.400", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "819997827", - "odds": "1.500", - "name": "Gokdeniz Bayrakdar: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "819383249", - "odds": "1.800", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "827542181", - "odds": "3.400", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "819997755", - "odds": "1.666", - "name": "Alredo Fredy: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "765036662", - "odds": "1.950", - "name": "FT Result: Bodrum FK", - "handicap": "" - }, - { - "id": "819383249", - "odds": "1.800", - "name": "Both Teams to Score", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T16:36:39+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "8822035", - "FI": "174588284", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T16:36:29+03:00", - "Odds": [ - { - "id": "820312223", - "odds": "3.400", - "name": "Duckens Nazon: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "819383249", - "odds": "1.800", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "827542181", - "odds": "3.400", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "819997827", - "odds": "1.500", - "name": "Gokdeniz Bayrakdar: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "819383249", - "odds": "1.800", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "827542181", - "odds": "3.400", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "819997755", - "odds": "1.666", - "name": "Alredo Fredy: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "765036662", - "odds": "1.950", - "name": "FT Result: Bodrum FK", - "handicap": "" - }, - { - "id": "819383249", - "odds": "1.800", - "name": "Both Teams to Score", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T16:36:46+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "8822034", - "FI": "174588286", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T16:22:39+03:00", - "Odds": [ - { - "id": "820006660", - "odds": "1.571", - "name": "Mehmet Nayir: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "765036764", - "odds": "2.800", - "name": "FT Result: Konyaspor", - "handicap": "" - }, - { - "id": "819391476", - "odds": "3.250", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "820321024", - "odds": "3.000", - "name": "Andraz Sporar: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "765036767", - "odds": "2.250", - "name": "FT Result: Alanyaspor", - "handicap": "" - }, - { - "id": "819400742", - "odds": "1.727", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "820009298", - "odds": "1.666", - "name": "Eui-Jo Hwang: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "819400742", - "odds": "1.727", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "819391476", - "odds": "3.250", - "name": "Over 3 Goals", - "handicap": "3" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T16:36:46+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "8822034", - "FI": "174588286", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T16:22:39+03:00", - "Odds": [ - { - "id": "820006660", - "odds": "1.571", - "name": "Mehmet Nayir: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "765036764", - "odds": "2.800", - "name": "FT Result: Konyaspor", - "handicap": "" - }, - { - "id": "819391476", - "odds": "3.250", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "820321024", - "odds": "3.000", - "name": "Andraz Sporar: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "765036767", - "odds": "2.250", - "name": "FT Result: Alanyaspor", - "handicap": "" - }, - { - "id": "819400742", - "odds": "1.727", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "820009298", - "odds": "1.666", - "name": "Eui-Jo Hwang: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "819400742", - "odds": "1.727", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "819391476", - "odds": "3.250", - "name": "Over 3 Goals", - "handicap": "3" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T16:36:56+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "8840198", - "FI": "174588288", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T16:30:30+03:00", - "Odds": [ - { - "id": "820021777", - "odds": "1.500", - "name": "Oleksandr Zubkov: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "765036883", - "odds": "2.250", - "name": "FT Result: Trabzonspor", - "handicap": "" - }, - { - "id": "819420355", - "odds": "2.625", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "820021638", - "odds": "1.727", - "name": "Anthony Nwakaeme: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "819420878", - "odds": "1.571", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "819420355", - "odds": "2.625", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "820336294", - "odds": "3.400", - "name": "Landry Dimata: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "765036888", - "odds": "2.800", - "name": "FT Result: Samsunspor", - "handicap": "" - }, - { - "id": "819420878", - "odds": "1.571", - "name": "Both Teams to Score", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T16:36:56+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "8840198", - "FI": "174588288", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T16:30:30+03:00", - "Odds": [ - { - "id": "820021777", - "odds": "1.500", - "name": "Oleksandr Zubkov: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "765036883", - "odds": "2.250", - "name": "FT Result: Trabzonspor", - "handicap": "" - }, - { - "id": "819420355", - "odds": "2.625", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "820021638", - "odds": "1.727", - "name": "Anthony Nwakaeme: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "819420878", - "odds": "1.571", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "819420355", - "odds": "2.625", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "820336294", - "odds": "3.400", - "name": "Landry Dimata: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "765036888", - "odds": "2.800", - "name": "FT Result: Samsunspor", - "handicap": "" - }, - { - "id": "819420878", - "odds": "1.571", - "name": "Both Teams to Score", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T16:36:57+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9982903", - "FI": "174588280", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T16:34:14+03:00", - "Odds": [ - { - "id": "820343994", - "odds": "1.300", - "name": "Ciro Immobile: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "819945189", - "odds": "2.200", - "name": "Rafa Silva: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "765036441", - "odds": "1.420", - "name": "FT Result: Besiktas", - "handicap": "" - }, - { - "id": "819945232", - "odds": "2.625", - "name": "Joao Mario: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "819344587", - "odds": "1.727", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "819343676", - "odds": "2.200", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "819348703", - "odds": "1.666", - "name": "Ciro Immobile to Score", - "handicap": "" - }, - { - "id": "765036441", - "odds": "1.420", - "name": "FT Result: Besiktas", - "handicap": "" - }, - { - "id": "819343676", - "odds": "2.200", - "name": "Over 3 Goals", - "handicap": "3" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T16:36:57+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9982903", - "FI": "174588280", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T16:34:14+03:00", - "Odds": [ - { - "id": "820343994", - "odds": "1.300", - "name": "Ciro Immobile: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "819945189", - "odds": "2.200", - "name": "Rafa Silva: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "765036441", - "odds": "1.420", - "name": "FT Result: Besiktas", - "handicap": "" - }, - { - "id": "819945232", - "odds": "2.625", - "name": "Joao Mario: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "819344587", - "odds": "1.727", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "819343676", - "odds": "2.200", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "819348703", - "odds": "1.666", - "name": "Ciro Immobile to Score", - "handicap": "" - }, - { - "id": "765036441", - "odds": "1.420", - "name": "FT Result: Besiktas", - "handicap": "" - }, - { - "id": "819343676", - "odds": "2.200", - "name": "Over 3 Goals", - "handicap": "3" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T16:37:48+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977001", - "FI": "174206898", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T16:28:41+03:00", - "Odds": [ - { - "id": "810769529", - "odds": "6.500", - "name": "Robert Lewandowski", - "handicap": "" - }, - { - "id": "810770215", - "odds": "6.500", - "name": "Lamine Yamal", - "handicap": "" - }, - { - "id": "713503841", - "odds": "2.100", - "name": "FT Result: Barcelona", - "handicap": "" - }, - { - "id": "818283162", - "odds": "1.833", - "name": "Robert Lewandowski: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810767797", - "odds": "1.909", - "name": "Robert Lewandowski to Score", - "handicap": "" - }, - { - "id": "713503841", - "odds": "2.100", - "name": "FT Result: Barcelona", - "handicap": "" - }, - { - "id": "818283150", - "odds": "2.000", - "name": "Raphinha: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810774636", - "odds": "1.571", - "name": "Lamine Yamal to Score or Assist", - "handicap": "" - }, - { - "id": "713503825", - "odds": "3.200", - "name": "FT Result: Athletic Bilbao", - "handicap": "" - }, - { - "id": "810774497", - "odds": "2.200", - "name": "Oihan Sancet to Score or Assist", - "handicap": "" - }, - { - "id": "813208230", - "odds": "1.285", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "827038436", - "odds": "1.400", - "name": "Over 3 Corners for Athletic Bilbao", - "handicap": "3" - }, - { - "id": "827038961", - "odds": "1.444", - "name": "Over 3 Corners for Barcelona", - "handicap": "3" - }, - { - "id": "810764064", - "odds": "1.444", - "name": "Both Teams to Score", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T16:37:54+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9288599", - "FI": "174219011", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T16:33:02+03:00", - "Odds": [ - { - "id": "806795106", - "odds": "13.000", - "name": "Alonso Martinez", - "handicap": "" - }, - { - "id": "806793895", - "odds": "15.000", - "name": "Hugo Cuypers", - "handicap": "" - }, - { - "id": "714860035", - "odds": "1.950", - "name": "FT Result: New York City FC", - "handicap": "" - }, - { - "id": "812414097", - "odds": "1.500", - "name": "Julian Fernandez: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "812414089", - "odds": "1.727", - "name": "Hannes Wolf: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "714860037", - "odds": "3.600", - "name": "FT Result: Chicago Fire", - "handicap": "" - }, - { - "id": "812415639", - "odds": "1.615", - "name": "Brian Gutierrez: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "812415683", - "odds": "1.571", - "name": "Jonathan Bamba: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "812875983", - "odds": "1.500", - "name": "Over 8 Corners", - "handicap": "8.0" - }, - { - "id": "806787411", - "odds": "1.533", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "806786217", - "odds": "2.375", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "714860035", - "odds": "1.950", - "name": "FT Result: New York City FC", - "handicap": "" - }, - { - "id": "806792787", - "odds": "3.100", - "name": "Julian Fernandez to Score", - "handicap": "" - }, - { - "id": "827388794", - "odds": "1.615", - "name": "Most Corners: New York City FC", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T16:37:56+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9289259", - "FI": "174219015", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T16:19:23+03:00", - "Odds": [ - { - "id": "806822225", - "odds": "15.000", - "name": "Emmanuel Latte Lath", - "handicap": "" - }, - { - "id": "806820954", - "odds": "9.000", - "name": "Ferreira Evander", - "handicap": "" - }, - { - "id": "714860470", - "odds": "2.400", - "name": "FT Result: Atlanta United", - "handicap": "" - }, - { - "id": "812421030", - "odds": "1.571", - "name": "Miguel Almiron: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "812420959", - "odds": "1.444", - "name": "Aleksey Miranchuk: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "714860473", - "odds": "2.700", - "name": "FT Result: FC Cincinnati", - "handicap": "" - }, - { - "id": "812886421", - "odds": "1.363", - "name": "Luca Orellano: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "812886731", - "odds": "1.285", - "name": "Ahoueke Denkey: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "812885974", - "odds": "1.500", - "name": "Over 8 Corners", - "handicap": "8.0" - }, - { - "id": "806814209", - "odds": "1.533", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "806812506", - "odds": "2.500", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "812424314", - "odds": "2.625", - "name": "Luca Orellano: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "812887182", - "odds": "3.000", - "name": "Saba Lobzhanidze: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "806814209", - "odds": "1.533", - "name": "Both Teams to Score", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T16:38:03+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "8826752", - "FI": "174588282", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T16:35:05+03:00", - "Odds": [ - { - "id": "820350480", - "odds": "1.300", - "name": "Youssef En Nesyri: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "820042485", - "odds": "1.571", - "name": "Conceicao Talisca: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "765036542", - "odds": "1.222", - "name": "FT Result: Fenerbahce", - "handicap": "" - }, - { - "id": "819432775", - "odds": "1.500", - "name": "Youssef En Nesyri to Score", - "handicap": "" - }, - { - "id": "819430970", - "odds": "2.100", - "name": "Fenerbahce \u0026 Yes", - "handicap": "" - }, - { - "id": "819428625", - "odds": "2.250", - "name": "Over 4 Goals", - "handicap": "4" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T16:38:08+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9929184", - "FI": "174363978", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T16:36:40+03:00", - "Odds": [ - { - "id": "774550908", - "odds": "21.000", - "name": "Antony", - "handicap": "" - }, - { - "id": "774550887", - "odds": "15.000", - "name": "Nicolas Jackson", - "handicap": "" - }, - { - "id": "734595170", - "odds": "1.363", - "name": "Chelsea to Lift the Trophy", - "handicap": "" - }, - { - "id": "734591996", - "odds": "1.833", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "774549605", - "odds": "2.300", - "name": "Cole Palmer to Score", - "handicap": "" - }, - { - "id": "774549558", - "odds": "2.875", - "name": "Nicolas Jackson to Score", - "handicap": "" - }, - { - "id": "734595170", - "odds": "1.363", - "name": "Chelsea to Lift the Trophy", - "handicap": "" - }, - { - "id": "734590525", - "odds": "2.000", - "name": "Over 2 Goals", - "handicap": "2" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T16:38:32+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9924545", - "FI": "174307725", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T16:33:20+03:00", - "Odds": [ - { - "id": "726811888", - "odds": "13.000", - "name": "Lautaro Martinez", - "handicap": "" - }, - { - "id": "726811982", - "odds": "11.000", - "name": "Khvicha Kvaratskhelia", - "handicap": "" - }, - { - "id": "726816128", - "odds": "1.615", - "name": "PSG to Lift the Trophy", - "handicap": "" - }, - { - "id": "726811208", - "odds": "3.250", - "name": "Bradley Barcola to Score", - "handicap": "" - }, - { - "id": "726806476", - "odds": "1.909", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "726816130", - "odds": "2.300", - "name": "Inter Milan to Lift the Trophy", - "handicap": "" - }, - { - "id": "726811216", - "odds": "3.250", - "name": "Marcus Thuram to Score", - "handicap": "" - }, - { - "id": "726807442", - "odds": "1.750", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "726816349", - "odds": "2.300", - "name": "Lautaro Martinez to Score or Assist", - "handicap": "" - }, - { - "id": "726816313", - "odds": "2.000", - "name": "Khvicha Kvaratskhelia to Score or Assist", - "handicap": "" - }, - { - "id": "726816123", - "odds": "2.250", - "name": "PSG to Win in 90 Mins", - "handicap": "" - }, - { - "id": "726807627", - "odds": "3.400", - "name": "PSG to Score in Both Halves", - "handicap": "" - }, - { - "id": "726811207", - "odds": "4.000", - "name": "Desire Doue to Score", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T16:45:23+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977002", - "FI": "174206901", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T16:42:21+03:00", - "Odds": [ - { - "id": "810834176", - "odds": "13.000", - "name": "Valencia 2-1", - "handicap": "" - }, - { - "id": "810843474", - "odds": "7.000", - "name": "Hugo Duro", - "handicap": "" - }, - { - "id": "713504056", - "odds": "2.000", - "name": "FT Result: Real Betis", - "handicap": "" - }, - { - "id": "818142082", - "odds": "2.375", - "name": "Juan Hernandez: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818142073", - "odds": "1.444", - "name": "Jesus Rodriguez: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713504058", - "odds": "3.500", - "name": "FT Result: Valencia", - "handicap": "" - }, - { - "id": "818205392", - "odds": "1.300", - "name": "Hugo Duro: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818145409", - "odds": "1.533", - "name": "Luis Rioja: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713504058", - "odds": "3.500", - "name": "FT Result: Valencia", - "handicap": "" - }, - { - "id": "810835604", - "odds": "1.533", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "813193941", - "odds": "1.300", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "818142127", - "odds": "2.100", - "name": "Silva William Carvalho: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818205392", - "odds": "1.300", - "name": "Hugo Duro: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "810835604", - "odds": "1.533", - "name": "Both Teams to Score", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T16:45:26+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9982904", - "FI": "174588290", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T16:36:30+03:00", - "Odds": [ - { - "id": "820264609", - "odds": "1.400", - "name": "Umut Bozok: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "765037000", - "odds": "1.900", - "name": "FT Result: Eyupspor", - "handicap": "" - }, - { - "id": "819298752", - "odds": "1.666", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "820243702", - "odds": "1.444", - "name": "Emre Mor: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "819298752", - "odds": "1.666", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "819301876", - "odds": "5.500", - "name": "Over 4 Goals", - "handicap": "4" - }, - { - "id": "820264669", - "odds": "3.400", - "name": "Adolfo Gaich: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "765037006", - "odds": "3.700", - "name": "FT Result: Antalyaspor", - "handicap": "" - }, - { - "id": "819298752", - "odds": "1.666", - "name": "Both Teams to Score", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T16:46:07+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "8826418", - "FI": "174588296", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T16:44:59+03:00", - "Odds": [ - { - "id": "819956646", - "odds": "1.500", - "name": "Alexandru Maxim: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "765037294", - "odds": "2.600", - "name": "FT Result: Gaziantep FK", - "handicap": "" - }, - { - "id": "819311085", - "odds": "2.200", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "819959543", - "odds": "2.375", - "name": "Joia Nuno Da Costa: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "765037306", - "odds": "2.375", - "name": "FT Result: Kasimpasa", - "handicap": "" - }, - { - "id": "819312321", - "odds": "1.444", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "820280304", - "odds": "1.363", - "name": "Aytac Kara: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "819312321", - "odds": "1.444", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "819315041", - "odds": "3.750", - "name": "Over 4 Goals", - "handicap": "4" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T16:46:24+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977004", - "FI": "174206928", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T16:45:50+03:00", - "Odds": [ - { - "id": "810825615", - "odds": "10.000", - "name": "Daniel Raba", - "handicap": "" - }, - { - "id": "810824112", - "odds": "15.000", - "name": "Juan Latasa", - "handicap": "" - }, - { - "id": "818234653", - "odds": "1.285", - "name": "Yan Diomande: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818174813", - "odds": "1.727", - "name": "Juan Latasa: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "813198253", - "odds": "1.333", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "713505303", - "odds": "1.300", - "name": "FT Result: Leganes", - "handicap": "" - }, - { - "id": "818170790", - "odds": "1.833", - "name": "Daniel Raba: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818170803", - "odds": "1.666", - "name": "Diego Garcia: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810816138", - "odds": "2.050", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818174813", - "odds": "1.727", - "name": "Juan Latasa: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818170892", - "odds": "1.533", - "name": "Seydouba Cisse: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713505316", - "odds": "9.500", - "name": "FT Result: Valladolid", - "handicap": "" - }, - { - "id": "810818057", - "odds": "1.666", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813198253", - "odds": "1.333", - "name": "Over 7 Corners", - "handicap": "7.0" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T16:46:28+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977005", - "FI": "174206938", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T16:41:18+03:00", - "Odds": [ - { - "id": "810793474", - "odds": "4.500", - "name": "Javi Puado", - "handicap": "" - }, - { - "id": "810793926", - "odds": "9.000", - "name": "Roberto Fernandez", - "handicap": "" - }, - { - "id": "818165415", - "odds": "2.000", - "name": "Oliver McBurnie: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818165371", - "odds": "3.000", - "name": "Adnan Januzaj: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818223546", - "odds": "1.250", - "name": "Roberto Fernandez: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713505983", - "odds": "1.363", - "name": "FT Result: Espanyol", - "handicap": "" - }, - { - "id": "818161086", - "odds": "1.909", - "name": "Javi Puado: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818161150", - "odds": "2.100", - "name": "Roberto Fernandez: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810785073", - "odds": "2.100", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818165373", - "odds": "2.100", - "name": "Alberto Moleiro: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818223267", - "odds": "1.200", - "name": "Javi Puado: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713505993", - "odds": "8.500", - "name": "FT Result: Las Palmas", - "handicap": "" - }, - { - "id": "813197755", - "odds": "1.300", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "810787654", - "odds": "1.800", - "name": "Over 2 Goals", - "handicap": "2" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T16:46:28+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977005", - "FI": "174206938", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T16:41:18+03:00", - "Odds": [ - { - "id": "810793474", - "odds": "4.500", - "name": "Javi Puado", - "handicap": "" - }, - { - "id": "810793926", - "odds": "9.000", - "name": "Roberto Fernandez", - "handicap": "" - }, - { - "id": "818165415", - "odds": "2.000", - "name": "Oliver McBurnie: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818165371", - "odds": "3.000", - "name": "Adnan Januzaj: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818223546", - "odds": "1.250", - "name": "Roberto Fernandez: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713505983", - "odds": "1.363", - "name": "FT Result: Espanyol", - "handicap": "" - }, - { - "id": "818161086", - "odds": "1.909", - "name": "Javi Puado: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818161150", - "odds": "2.100", - "name": "Roberto Fernandez: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810785073", - "odds": "2.100", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818165373", - "odds": "2.100", - "name": "Alberto Moleiro: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818223267", - "odds": "1.200", - "name": "Javi Puado: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713505993", - "odds": "8.500", - "name": "FT Result: Las Palmas", - "handicap": "" - }, - { - "id": "813197755", - "odds": "1.300", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "810787654", - "odds": "1.800", - "name": "Over 2 Goals", - "handicap": "2" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T16:46:47+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9757324", - "FI": "172433912", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T16:42:57+03:00", - "Odds": [ - { - "id": "817868646", - "odds": "4.250", - "name": "Ousmane Dembele", - "handicap": "" - }, - { - "id": "467772639", - "odds": "8.000", - "name": "PSG 3-0", - "handicap": "" - }, - { - "id": "467774766", - "odds": "2.050", - "name": "PSG to win by 3+ Goals", - "handicap": "" - }, - { - "id": "818472444", - "odds": "1.800", - "name": "Bradley Barcola: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818472520", - "odds": "1.571", - "name": "Khvicha Kvaratskhelia: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "467775416", - "odds": "2.000", - "name": "PSG to Win Both Halves", - "handicap": "" - }, - { - "id": "818525029", - "odds": "1.333", - "name": "Ousmane Dembele: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818524895", - "odds": "3.250", - "name": "Fabian Ruiz: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "467772622", - "odds": "1.500", - "name": "HT: PSG \u2013 FT: PSG", - "handicap": "" - }, - { - "id": "818979031", - "odds": "1.055", - "name": "Most Shots on Target: PSG", - "handicap": "" - }, - { - "id": "818977802", - "odds": "1.533", - "name": "Most Cards: Reims", - "handicap": "" - }, - { - "id": "467772737", - "odds": "1.833", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "467773042", - "odds": "2.200", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818525029", - "odds": "1.333", - "name": "Ousmane Dembele: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818525451", - "odds": "10.000", - "name": "Theoson Siebatcheu: 2+ Shots on Target", - "handicap": "1.5" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:00:34+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9982904", - "FI": "174588290", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T16:36:30+03:00", - "Odds": [ - { - "id": "820264609", - "odds": "1.400", - "name": "Umut Bozok: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "765037000", - "odds": "1.900", - "name": "FT Result: Eyupspor", - "handicap": "" - }, - { - "id": "819298752", - "odds": "1.666", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "820243702", - "odds": "1.444", - "name": "Emre Mor: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "819298752", - "odds": "1.666", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "819301876", - "odds": "5.500", - "name": "Over 4 Goals", - "handicap": "4" - }, - { - "id": "820264669", - "odds": "3.400", - "name": "Adolfo Gaich: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "765037006", - "odds": "3.700", - "name": "FT Result: Antalyaspor", - "handicap": "" - }, - { - "id": "819298752", - "odds": "1.666", - "name": "Both Teams to Score", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:01:03+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "8826418", - "FI": "174588296", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T16:58:52+03:00", - "Odds": [ - { - "id": "819956646", - "odds": "1.500", - "name": "Alexandru Maxim: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "765037294", - "odds": "2.600", - "name": "FT Result: Gaziantep FK", - "handicap": "" - }, - { - "id": "819311085", - "odds": "2.200", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "819959543", - "odds": "2.375", - "name": "Joia Nuno Da Costa: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "765037306", - "odds": "2.375", - "name": "FT Result: Kasimpasa", - "handicap": "" - }, - { - "id": "819312321", - "odds": "1.444", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "820280304", - "odds": "1.363", - "name": "Aytac Kara: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "819312321", - "odds": "1.444", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "819315041", - "odds": "3.750", - "name": "Over 4 Goals", - "handicap": "4" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:01:20+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977004", - "FI": "174206928", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T16:57:58+03:00", - "Odds": [ - { - "id": "810825615", - "odds": "10.000", - "name": "Daniel Raba", - "handicap": "" - }, - { - "id": "810824112", - "odds": "15.000", - "name": "Juan Latasa", - "handicap": "" - }, - { - "id": "818234653", - "odds": "1.285", - "name": "Yan Diomande: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818174813", - "odds": "1.727", - "name": "Juan Latasa: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "813198253", - "odds": "1.333", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "713505303", - "odds": "1.300", - "name": "FT Result: Leganes", - "handicap": "" - }, - { - "id": "818170790", - "odds": "1.833", - "name": "Daniel Raba: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818170803", - "odds": "1.666", - "name": "Diego Garcia: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810816138", - "odds": "2.050", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818174813", - "odds": "1.727", - "name": "Juan Latasa: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818170892", - "odds": "1.533", - "name": "Seydouba Cisse: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713505316", - "odds": "9.500", - "name": "FT Result: Valladolid", - "handicap": "" - }, - { - "id": "810818057", - "odds": "1.666", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813198253", - "odds": "1.333", - "name": "Over 7 Corners", - "handicap": "7.0" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:01:29+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977005", - "FI": "174206938", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T16:57:20+03:00", - "Odds": [ - { - "id": "810793474", - "odds": "4.500", - "name": "Javi Puado", - "handicap": "" - }, - { - "id": "810793926", - "odds": "9.000", - "name": "Roberto Fernandez", - "handicap": "" - }, - { - "id": "818165415", - "odds": "2.000", - "name": "Oliver McBurnie: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818165371", - "odds": "3.000", - "name": "Adnan Januzaj: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818223546", - "odds": "1.250", - "name": "Roberto Fernandez: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713505983", - "odds": "1.363", - "name": "FT Result: Espanyol", - "handicap": "" - }, - { - "id": "818161086", - "odds": "1.909", - "name": "Javi Puado: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818161150", - "odds": "2.100", - "name": "Roberto Fernandez: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810785073", - "odds": "2.100", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818165373", - "odds": "2.100", - "name": "Alberto Moleiro: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818223267", - "odds": "1.200", - "name": "Javi Puado: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713505993", - "odds": "8.500", - "name": "FT Result: Las Palmas", - "handicap": "" - }, - { - "id": "813197755", - "odds": "1.300", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "810787654", - "odds": "1.800", - "name": "Over 2 Goals", - "handicap": "2" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:01:29+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977005", - "FI": "174206938", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T16:57:20+03:00", - "Odds": [ - { - "id": "810793474", - "odds": "4.500", - "name": "Javi Puado", - "handicap": "" - }, - { - "id": "810793926", - "odds": "9.000", - "name": "Roberto Fernandez", - "handicap": "" - }, - { - "id": "818165415", - "odds": "2.000", - "name": "Oliver McBurnie: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818165371", - "odds": "3.000", - "name": "Adnan Januzaj: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818223546", - "odds": "1.250", - "name": "Roberto Fernandez: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713505983", - "odds": "1.363", - "name": "FT Result: Espanyol", - "handicap": "" - }, - { - "id": "818161086", - "odds": "1.909", - "name": "Javi Puado: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818161150", - "odds": "2.100", - "name": "Roberto Fernandez: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810785073", - "odds": "2.100", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818165373", - "odds": "2.100", - "name": "Alberto Moleiro: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818223267", - "odds": "1.200", - "name": "Javi Puado: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713505993", - "odds": "8.500", - "name": "FT Result: Las Palmas", - "handicap": "" - }, - { - "id": "813197755", - "odds": "1.300", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "810787654", - "odds": "1.800", - "name": "Over 2 Goals", - "handicap": "2" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:01:41+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9757324", - "FI": "172433912", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T16:57:16+03:00", - "Odds": [ - { - "id": "817868646", - "odds": "4.250", - "name": "Ousmane Dembele", - "handicap": "" - }, - { - "id": "467772639", - "odds": "8.000", - "name": "PSG 3-0", - "handicap": "" - }, - { - "id": "467774766", - "odds": "2.050", - "name": "PSG to win by 3+ Goals", - "handicap": "" - }, - { - "id": "818472444", - "odds": "1.800", - "name": "Bradley Barcola: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818472520", - "odds": "1.571", - "name": "Khvicha Kvaratskhelia: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "467775416", - "odds": "2.000", - "name": "PSG to Win Both Halves", - "handicap": "" - }, - { - "id": "818525029", - "odds": "1.333", - "name": "Ousmane Dembele: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818524895", - "odds": "3.250", - "name": "Fabian Ruiz: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "467772622", - "odds": "1.500", - "name": "HT: PSG \u2013 FT: PSG", - "handicap": "" - }, - { - "id": "818979031", - "odds": "1.055", - "name": "Most Shots on Target: PSG", - "handicap": "" - }, - { - "id": "818977802", - "odds": "1.533", - "name": "Most Cards: Reims", - "handicap": "" - }, - { - "id": "467772737", - "odds": "1.833", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "467773042", - "odds": "2.200", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818525029", - "odds": "1.333", - "name": "Ousmane Dembele: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818525451", - "odds": "10.000", - "name": "Theoson Siebatcheu: 2+ Shots on Target", - "handicap": "1.5" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:01:54+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977003", - "FI": "174206914", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T17:01:41+03:00", - "Odds": [ - { - "id": "810782401", - "odds": "6.500", - "name": "Ante Budimir", - "handicap": "" - }, - { - "id": "810782255", - "odds": "17.000", - "name": "Jon Guridi", - "handicap": "" - }, - { - "id": "713504570", - "odds": "2.350", - "name": "FT Result: Osasuna", - "handicap": "" - }, - { - "id": "818200891", - "odds": "1.615", - "name": "Ante Budimir: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810881584", - "odds": "1.833", - "name": "Ante Budimir to Score or Assist", - "handicap": "" - }, - { - "id": "713504562", - "odds": "3.200", - "name": "FT Result: CD Alaves", - "handicap": "" - }, - { - "id": "810777871", - "odds": "1.950", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "813199262", - "odds": "1.333", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "713504562", - "odds": "3.200", - "name": "FT Result: CD Alaves", - "handicap": "" - }, - { - "id": "818200816", - "odds": "1.615", - "name": "Carlos Vicente: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "810881581", - "odds": "3.500", - "name": "Jon Guridi to Score or Assist", - "handicap": "" - }, - { - "id": "810778158", - "odds": "4.000", - "name": "Osasuna to Score in Both Halves", - "handicap": "" - }, - { - "id": "810881558", - "odds": "2.100", - "name": "Bryan Zaragoza to Score or Assist", - "handicap": "" - }, - { - "id": "810881580", - "odds": "3.100", - "name": "Aimar Oroz to Score or Assist", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:02:04+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977007", - "FI": "174206951", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T16:49:19+03:00", - "Odds": [ - { - "id": "810795373", - "odds": "2.875", - "name": "1", - "handicap": "" - }, - { - "id": "810801154", - "odds": "5.500", - "name": "Borja Iglesias", - "handicap": "" - }, - { - "id": "713507435", - "odds": "1.850", - "name": "FT Result: Celta Vigo", - "handicap": "" - }, - { - "id": "818234755", - "odds": "1.909", - "name": "Borja Iglesias: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818234745", - "odds": "1.800", - "name": "Alfonso Gonzalez: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713507421", - "odds": "4.100", - "name": "FT Result: Getafe", - "handicap": "" - }, - { - "id": "810795706", - "odds": "2.100", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813201935", - "odds": "1.533", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "713507435", - "odds": "1.850", - "name": "FT Result: Celta Vigo", - "handicap": "" - }, - { - "id": "810884551", - "odds": "3.100", - "name": "Oscar Mingueza to Score or Assist", - "handicap": "" - }, - { - "id": "818234750", - "odds": "3.500", - "name": "Beltran Fran: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818272688", - "odds": "1.285", - "name": "Moya Borja Mayoral: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818232899", - "odds": "1.533", - "name": "Chrisantus Uche: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818235077", - "odds": "2.625", - "name": "Oscar Mingueza: 1+ Shots on Target", - "handicap": "0.5" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:02:04+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977007", - "FI": "174206951", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T16:49:19+03:00", - "Odds": [ - { - "id": "810795373", - "odds": "2.875", - "name": "1", - "handicap": "" - }, - { - "id": "810801154", - "odds": "5.500", - "name": "Borja Iglesias", - "handicap": "" - }, - { - "id": "713507435", - "odds": "1.850", - "name": "FT Result: Celta Vigo", - "handicap": "" - }, - { - "id": "818234755", - "odds": "1.909", - "name": "Borja Iglesias: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818234745", - "odds": "1.800", - "name": "Alfonso Gonzalez: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713507421", - "odds": "4.100", - "name": "FT Result: Getafe", - "handicap": "" - }, - { - "id": "810795706", - "odds": "2.100", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813201935", - "odds": "1.533", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "713507435", - "odds": "1.850", - "name": "FT Result: Celta Vigo", - "handicap": "" - }, - { - "id": "810884551", - "odds": "3.100", - "name": "Oscar Mingueza to Score or Assist", - "handicap": "" - }, - { - "id": "818234750", - "odds": "3.500", - "name": "Beltran Fran: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818272688", - "odds": "1.285", - "name": "Moya Borja Mayoral: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818232899", - "odds": "1.533", - "name": "Chrisantus Uche: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818235077", - "odds": "2.625", - "name": "Oscar Mingueza: 1+ Shots on Target", - "handicap": "0.5" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:02:13+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977008", - "FI": "174206957", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T16:50:23+03:00", - "Odds": [ - { - "id": "810830891", - "odds": "8.500", - "name": "Isi Palazon", - "handicap": "" - }, - { - "id": "810826957", - "odds": "3.750", - "name": "2", - "handicap": "" - }, - { - "id": "713508001", - "odds": "6.250", - "name": "FT Result: Mallorca", - "handicap": "" - }, - { - "id": "810827203", - "odds": "2.100", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813203878", - "odds": "1.300", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "713507997", - "odds": "1.533", - "name": "FT Result: Rayo Vallecano", - "handicap": "" - }, - { - "id": "810911970", - "odds": "2.200", - "name": "Jorge De Frutos to Score or Assist", - "handicap": "" - }, - { - "id": "818242351", - "odds": "1.909", - "name": "Isi Palazon: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810827485", - "odds": "2.100", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818248799", - "odds": "3.000", - "name": "Sergi Darder: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818300359", - "odds": "1.200", - "name": "Isi Palazon: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "810827053", - "odds": "2.300", - "name": "HT: Rayo Vallecano \u2013 FT: Rayo Vallecano", - "handicap": "" - }, - { - "id": "810827602", - "odds": "2.625", - "name": "Rayo Vallecano to Score in Both Halves", - "handicap": "" - }, - { - "id": "810830483", - "odds": "4.000", - "name": "Adrian Embarba to Score", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:02:13+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977008", - "FI": "174206957", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T16:50:23+03:00", - "Odds": [ - { - "id": "810830891", - "odds": "8.500", - "name": "Isi Palazon", - "handicap": "" - }, - { - "id": "810826957", - "odds": "3.750", - "name": "2", - "handicap": "" - }, - { - "id": "713508001", - "odds": "6.250", - "name": "FT Result: Mallorca", - "handicap": "" - }, - { - "id": "810827203", - "odds": "2.100", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813203878", - "odds": "1.300", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "713507997", - "odds": "1.533", - "name": "FT Result: Rayo Vallecano", - "handicap": "" - }, - { - "id": "810911970", - "odds": "2.200", - "name": "Jorge De Frutos to Score or Assist", - "handicap": "" - }, - { - "id": "818242351", - "odds": "1.909", - "name": "Isi Palazon: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810827485", - "odds": "2.100", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818248799", - "odds": "3.000", - "name": "Sergi Darder: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818300359", - "odds": "1.200", - "name": "Isi Palazon: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "810827053", - "odds": "2.300", - "name": "HT: Rayo Vallecano \u2013 FT: Rayo Vallecano", - "handicap": "" - }, - { - "id": "810827602", - "odds": "2.625", - "name": "Rayo Vallecano to Score in Both Halves", - "handicap": "" - }, - { - "id": "810830483", - "odds": "4.000", - "name": "Adrian Embarba to Score", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:03:30+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9289262", - "FI": "174219002", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T16:56:42+03:00", - "Odds": [ - { - "id": "806670446", - "odds": "13.000", - "name": "Tani Oluwaseyi", - "handicap": "" - }, - { - "id": "806655131", - "odds": "9.500", - "name": "Minnesota United 2-1", - "handicap": "" - }, - { - "id": "714859773", - "odds": "1.727", - "name": "FT Result: Minnesota United", - "handicap": "" - }, - { - "id": "812331324", - "odds": "1.800", - "name": "Kelvin Yeboah: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "812331345", - "odds": "2.375", - "name": "Tani Oluwaseyi: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "806655293", - "odds": "2.050", - "name": "Draw or Austin FC", - "handicap": "" - }, - { - "id": "812335148", - "odds": "1.571", - "name": "Myrto Uzuni: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "812334820", - "odds": "1.571", - "name": "Brandon Vazquez: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "827362447", - "odds": "1.533", - "name": "Over 4 Corners for Minnesota United", - "handicap": "4" - }, - { - "id": "827362563", - "odds": "2.200", - "name": "Over 4 Corners for Austin FC", - "handicap": "4" - }, - { - "id": "806655241", - "odds": "1.950", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "806655104", - "odds": "2.625", - "name": "HT: Minnesota United \u2013 FT: Minnesota United", - "handicap": "" - }, - { - "id": "827360459", - "odds": "1.615", - "name": "Most Corners: Minnesota United", - "handicap": "" - }, - { - "id": "806963379", - "odds": "1.800", - "name": "Kelvin Yeboah to Score or Assist", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:04:04+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9289261", - "FI": "174219004", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T17:03:34+03:00", - "Odds": [ - { - "id": "806742909", - "odds": "12.000", - "name": "Joao Klauss", - "handicap": "" - }, - { - "id": "806741536", - "odds": "8.500", - "name": "Darren Yapi", - "handicap": "" - }, - { - "id": "714859800", - "odds": "1.850", - "name": "FT Result: Colorado Rapids", - "handicap": "" - }, - { - "id": "812359565", - "odds": "2.100", - "name": "Djordje Mihailovic: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "812508432", - "odds": "3.000", - "name": "Kevin Cabral: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "806733943", - "odds": "1.909", - "name": "Draw or St. Louis City SC", - "handicap": "" - }, - { - "id": "812362704", - "odds": "1.444", - "name": "Cedric Teuchert: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "812362834", - "odds": "1.500", - "name": "Marcel Hartel: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "812508349", - "odds": "3.250", - "name": "Cedric Teuchert: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "812359565", - "odds": "2.100", - "name": "Djordje Mihailovic: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "806737965", - "odds": "1.600", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "714859800", - "odds": "1.850", - "name": "FT Result: Colorado Rapids", - "handicap": "" - }, - { - "id": "827381382", - "odds": "1.250", - "name": "Over 3 Corners for Colorado Rapids", - "handicap": "3" - }, - { - "id": "807040642", - "odds": "2.100", - "name": "Darren Yapi to Score or Assist", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:04:17+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9289260", - "FI": "174219006", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T17:00:00+03:00", - "Odds": [ - { - "id": "806753712", - "odds": "8.500", - "name": "Brian White", - "handicap": "" - }, - { - "id": "806753521", - "odds": "7.000", - "name": "William Agada", - "handicap": "" - }, - { - "id": "714859829", - "odds": "2.500", - "name": "FT Result: Real Salt Lake", - "handicap": "" - }, - { - "id": "812514424", - "odds": "1.333", - "name": "William Agada: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "812377943", - "odds": "1.400", - "name": "Diogo Goncalves: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "714859831", - "odds": "2.600", - "name": "FT Result: Vancouver Whitecaps", - "handicap": "" - }, - { - "id": "812380351", - "odds": "2.100", - "name": "Pedro Vite: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "812380265", - "odds": "2.750", - "name": "Brian White: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "827384577", - "odds": "1.666", - "name": "Over 4 Corners for Real Salt Lake", - "handicap": "4" - }, - { - "id": "827384725", - "odds": "1.909", - "name": "Over 4 Corners for Vancouver Whitecaps", - "handicap": "4" - }, - { - "id": "806747601", - "odds": "1.666", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "812377945", - "odds": "1.833", - "name": "Dominik Marczuk: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "812380239", - "odds": "2.250", - "name": "Ali Ahmed: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "806749654", - "odds": "1.800", - "name": "Over 2 Goals", - "handicap": "2" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:04:37+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977006", - "FI": "174206945", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T17:02:01+03:00", - "Odds": [ - { - "id": "810813006", - "odds": "8.000", - "name": "Cristhian Stuani", - "handicap": "" - }, - { - "id": "810805461", - "odds": "12.000", - "name": "Atletico Madrid 2-0", - "handicap": "" - }, - { - "id": "713506855", - "odds": "1.950", - "name": "FT Result: Atletico Madrid", - "handicap": "" - }, - { - "id": "818257779", - "odds": "2.750", - "name": "Antoine Griezmann: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818257773", - "odds": "2.750", - "name": "Angel Correa: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818257791", - "odds": "1.833", - "name": "Conor Gallagher: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818257811", - "odds": "1.400", - "name": "Samuel Lino: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818306498", - "odds": "1.400", - "name": "Antoine Griezmann: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713506844", - "odds": "3.700", - "name": "FT Result: Girona", - "handicap": "" - }, - { - "id": "810809282", - "odds": "1.615", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813205972", - "odds": "1.363", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "713506844", - "odds": "3.700", - "name": "FT Result: Girona", - "handicap": "" - }, - { - "id": "832763395", - "odds": "1.400", - "name": "Cristhian Stuani: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818254988", - "odds": "1.444", - "name": "Viktor Tsygankov: 1+ Shots on Target", - "handicap": "0.5" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:04:37+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977006", - "FI": "174206945", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T17:02:01+03:00", - "Odds": [ - { - "id": "810813006", - "odds": "8.000", - "name": "Cristhian Stuani", - "handicap": "" - }, - { - "id": "810805461", - "odds": "12.000", - "name": "Atletico Madrid 2-0", - "handicap": "" - }, - { - "id": "713506855", - "odds": "1.950", - "name": "FT Result: Atletico Madrid", - "handicap": "" - }, - { - "id": "818257779", - "odds": "2.750", - "name": "Antoine Griezmann: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818257773", - "odds": "2.750", - "name": "Angel Correa: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818257791", - "odds": "1.833", - "name": "Conor Gallagher: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818257811", - "odds": "1.400", - "name": "Samuel Lino: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818306498", - "odds": "1.400", - "name": "Antoine Griezmann: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713506844", - "odds": "3.700", - "name": "FT Result: Girona", - "handicap": "" - }, - { - "id": "810809282", - "odds": "1.615", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813205972", - "odds": "1.363", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "713506844", - "odds": "3.700", - "name": "FT Result: Girona", - "handicap": "" - }, - { - "id": "832763395", - "odds": "1.400", - "name": "Cristhian Stuani: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818254988", - "odds": "1.444", - "name": "Viktor Tsygankov: 1+ Shots on Target", - "handicap": "0.5" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:06:24+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "8822035", - "FI": "174588284", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T17:02:15+03:00", - "Odds": [ - { - "id": "820312223", - "odds": "3.400", - "name": "Duckens Nazon: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "819383249", - "odds": "1.800", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "827542181", - "odds": "3.400", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "819997827", - "odds": "1.500", - "name": "Gokdeniz Bayrakdar: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "819383249", - "odds": "1.800", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "827542181", - "odds": "3.400", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "819997755", - "odds": "1.666", - "name": "Alredo Fredy: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "765036662", - "odds": "1.950", - "name": "FT Result: Bodrum FK", - "handicap": "" - }, - { - "id": "819383249", - "odds": "1.800", - "name": "Both Teams to Score", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:06:24+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "8822035", - "FI": "174588284", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T17:02:15+03:00", - "Odds": [ - { - "id": "820312223", - "odds": "3.400", - "name": "Duckens Nazon: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "819383249", - "odds": "1.800", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "827542181", - "odds": "3.400", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "819997827", - "odds": "1.500", - "name": "Gokdeniz Bayrakdar: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "819383249", - "odds": "1.800", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "827542181", - "odds": "3.400", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "819997755", - "odds": "1.666", - "name": "Alredo Fredy: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "765036662", - "odds": "1.950", - "name": "FT Result: Bodrum FK", - "handicap": "" - }, - { - "id": "819383249", - "odds": "1.800", - "name": "Both Teams to Score", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:06:31+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "8822034", - "FI": "174588286", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T17:05:59+03:00", - "Odds": [ - { - "id": "820006660", - "odds": "1.571", - "name": "Mehmet Nayir: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "765036764", - "odds": "2.800", - "name": "FT Result: Konyaspor", - "handicap": "" - }, - { - "id": "819391476", - "odds": "3.250", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "820321024", - "odds": "3.000", - "name": "Andraz Sporar: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "765036767", - "odds": "2.250", - "name": "FT Result: Alanyaspor", - "handicap": "" - }, - { - "id": "819400742", - "odds": "1.727", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "820009298", - "odds": "1.666", - "name": "Eui-Jo Hwang: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "819400742", - "odds": "1.727", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "819391476", - "odds": "3.250", - "name": "Over 3 Goals", - "handicap": "3" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:06:31+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "8822034", - "FI": "174588286", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T17:05:59+03:00", - "Odds": [ - { - "id": "820006660", - "odds": "1.571", - "name": "Mehmet Nayir: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "765036764", - "odds": "2.800", - "name": "FT Result: Konyaspor", - "handicap": "" - }, - { - "id": "819391476", - "odds": "3.250", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "820321024", - "odds": "3.000", - "name": "Andraz Sporar: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "765036767", - "odds": "2.250", - "name": "FT Result: Alanyaspor", - "handicap": "" - }, - { - "id": "819400742", - "odds": "1.727", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "820009298", - "odds": "1.666", - "name": "Eui-Jo Hwang: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "819400742", - "odds": "1.727", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "819391476", - "odds": "3.250", - "name": "Over 3 Goals", - "handicap": "3" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:06:49+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "8840198", - "FI": "174588288", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T16:56:58+03:00", - "Odds": [ - { - "id": "820021777", - "odds": "1.500", - "name": "Oleksandr Zubkov: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "765036883", - "odds": "2.250", - "name": "FT Result: Trabzonspor", - "handicap": "" - }, - { - "id": "819420355", - "odds": "2.625", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "820021638", - "odds": "1.727", - "name": "Anthony Nwakaeme: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "819420878", - "odds": "1.571", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "819420355", - "odds": "2.625", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "820336294", - "odds": "3.400", - "name": "Landry Dimata: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "765036888", - "odds": "2.800", - "name": "FT Result: Samsunspor", - "handicap": "" - }, - { - "id": "819420878", - "odds": "1.571", - "name": "Both Teams to Score", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:06:49+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "8840198", - "FI": "174588288", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T16:56:58+03:00", - "Odds": [ - { - "id": "820021777", - "odds": "1.500", - "name": "Oleksandr Zubkov: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "765036883", - "odds": "2.250", - "name": "FT Result: Trabzonspor", - "handicap": "" - }, - { - "id": "819420355", - "odds": "2.625", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "820021638", - "odds": "1.727", - "name": "Anthony Nwakaeme: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "819420878", - "odds": "1.571", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "819420355", - "odds": "2.625", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "820336294", - "odds": "3.400", - "name": "Landry Dimata: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "765036888", - "odds": "2.800", - "name": "FT Result: Samsunspor", - "handicap": "" - }, - { - "id": "819420878", - "odds": "1.571", - "name": "Both Teams to Score", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:07:09+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9982903", - "FI": "174588280", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T17:02:44+03:00", - "Odds": [ - { - "id": "820343994", - "odds": "1.300", - "name": "Ciro Immobile: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "819945189", - "odds": "2.200", - "name": "Rafa Silva: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "765036441", - "odds": "1.420", - "name": "FT Result: Besiktas", - "handicap": "" - }, - { - "id": "819945232", - "odds": "2.625", - "name": "Joao Mario: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "819344587", - "odds": "1.727", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "819343676", - "odds": "2.200", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "819348703", - "odds": "1.666", - "name": "Ciro Immobile to Score", - "handicap": "" - }, - { - "id": "765036441", - "odds": "1.420", - "name": "FT Result: Besiktas", - "handicap": "" - }, - { - "id": "819343676", - "odds": "2.200", - "name": "Over 3 Goals", - "handicap": "3" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:07:09+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9982903", - "FI": "174588280", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T17:02:44+03:00", - "Odds": [ - { - "id": "820343994", - "odds": "1.300", - "name": "Ciro Immobile: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "819945189", - "odds": "2.200", - "name": "Rafa Silva: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "765036441", - "odds": "1.420", - "name": "FT Result: Besiktas", - "handicap": "" - }, - { - "id": "819945232", - "odds": "2.625", - "name": "Joao Mario: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "819344587", - "odds": "1.727", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "819343676", - "odds": "2.200", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "819348703", - "odds": "1.666", - "name": "Ciro Immobile to Score", - "handicap": "" - }, - { - "id": "765036441", - "odds": "1.420", - "name": "FT Result: Besiktas", - "handicap": "" - }, - { - "id": "819343676", - "odds": "2.200", - "name": "Over 3 Goals", - "handicap": "3" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:08:06+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977001", - "FI": "174206898", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T17:05:47+03:00", - "Odds": [ - { - "id": "810769529", - "odds": "6.500", - "name": "Robert Lewandowski", - "handicap": "" - }, - { - "id": "810770215", - "odds": "6.500", - "name": "Lamine Yamal", - "handicap": "" - }, - { - "id": "713503841", - "odds": "2.100", - "name": "FT Result: Barcelona", - "handicap": "" - }, - { - "id": "818283162", - "odds": "1.833", - "name": "Robert Lewandowski: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810767797", - "odds": "1.909", - "name": "Robert Lewandowski to Score", - "handicap": "" - }, - { - "id": "713503841", - "odds": "2.100", - "name": "FT Result: Barcelona", - "handicap": "" - }, - { - "id": "818283150", - "odds": "2.000", - "name": "Raphinha: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810774636", - "odds": "1.571", - "name": "Lamine Yamal to Score or Assist", - "handicap": "" - }, - { - "id": "713503825", - "odds": "3.200", - "name": "FT Result: Athletic Bilbao", - "handicap": "" - }, - { - "id": "810774497", - "odds": "2.200", - "name": "Oihan Sancet to Score or Assist", - "handicap": "" - }, - { - "id": "813208230", - "odds": "1.285", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "827038436", - "odds": "1.400", - "name": "Over 3 Corners for Athletic Bilbao", - "handicap": "3" - }, - { - "id": "827038961", - "odds": "1.444", - "name": "Over 3 Corners for Barcelona", - "handicap": "3" - }, - { - "id": "810764064", - "odds": "1.444", - "name": "Both Teams to Score", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:08:24+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9288599", - "FI": "174219011", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T17:06:10+03:00", - "Odds": [ - { - "id": "806795106", - "odds": "13.000", - "name": "Alonso Martinez", - "handicap": "" - }, - { - "id": "806793895", - "odds": "15.000", - "name": "Hugo Cuypers", - "handicap": "" - }, - { - "id": "714860035", - "odds": "1.950", - "name": "FT Result: New York City FC", - "handicap": "" - }, - { - "id": "812414097", - "odds": "1.500", - "name": "Julian Fernandez: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "812414089", - "odds": "1.727", - "name": "Hannes Wolf: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "714860037", - "odds": "3.600", - "name": "FT Result: Chicago Fire", - "handicap": "" - }, - { - "id": "812415639", - "odds": "1.615", - "name": "Brian Gutierrez: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "812415683", - "odds": "1.571", - "name": "Jonathan Bamba: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "812875983", - "odds": "1.500", - "name": "Over 8 Corners", - "handicap": "8.0" - }, - { - "id": "806787411", - "odds": "1.533", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "806786217", - "odds": "2.375", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "714860035", - "odds": "1.950", - "name": "FT Result: New York City FC", - "handicap": "" - }, - { - "id": "806792787", - "odds": "3.100", - "name": "Julian Fernandez to Score", - "handicap": "" - }, - { - "id": "827388794", - "odds": "1.615", - "name": "Most Corners: New York City FC", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:08:30+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9289259", - "FI": "174219015", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T17:08:07+03:00", - "Odds": [ - { - "id": "806822225", - "odds": "15.000", - "name": "Emmanuel Latte Lath", - "handicap": "" - }, - { - "id": "806820954", - "odds": "9.000", - "name": "Ferreira Evander", - "handicap": "" - }, - { - "id": "714860470", - "odds": "2.400", - "name": "FT Result: Atlanta United", - "handicap": "" - }, - { - "id": "812421030", - "odds": "1.571", - "name": "Miguel Almiron: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "812420959", - "odds": "1.444", - "name": "Aleksey Miranchuk: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "714860473", - "odds": "2.700", - "name": "FT Result: FC Cincinnati", - "handicap": "" - }, - { - "id": "812886421", - "odds": "1.363", - "name": "Luca Orellano: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "812886731", - "odds": "1.285", - "name": "Ahoueke Denkey: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "812885974", - "odds": "1.500", - "name": "Over 8 Corners", - "handicap": "8.0" - }, - { - "id": "806814209", - "odds": "1.533", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "806812506", - "odds": "2.500", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "812424314", - "odds": "2.625", - "name": "Luca Orellano: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "812887182", - "odds": "3.000", - "name": "Saba Lobzhanidze: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "806814209", - "odds": "1.533", - "name": "Both Teams to Score", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:08:48+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "8826752", - "FI": "174588282", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T17:06:09+03:00", - "Odds": [ - { - "id": "820350480", - "odds": "1.300", - "name": "Youssef En Nesyri: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "820042485", - "odds": "1.571", - "name": "Conceicao Talisca: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "765036542", - "odds": "1.222", - "name": "FT Result: Fenerbahce", - "handicap": "" - }, - { - "id": "819432775", - "odds": "1.500", - "name": "Youssef En Nesyri to Score", - "handicap": "" - }, - { - "id": "819430970", - "odds": "2.100", - "name": "Fenerbahce \u0026 Yes", - "handicap": "" - }, - { - "id": "819428625", - "odds": "2.250", - "name": "Over 4 Goals", - "handicap": "4" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:08:51+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9929184", - "FI": "174363978", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T17:08:38+03:00", - "Odds": [ - { - "id": "774550908", - "odds": "21.000", - "name": "Antony", - "handicap": "" - }, - { - "id": "774550887", - "odds": "15.000", - "name": "Nicolas Jackson", - "handicap": "" - }, - { - "id": "734595170", - "odds": "1.363", - "name": "Chelsea to Lift the Trophy", - "handicap": "" - }, - { - "id": "734591996", - "odds": "1.833", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "774549605", - "odds": "2.300", - "name": "Cole Palmer to Score", - "handicap": "" - }, - { - "id": "774549558", - "odds": "2.875", - "name": "Nicolas Jackson to Score", - "handicap": "" - }, - { - "id": "734595170", - "odds": "1.363", - "name": "Chelsea to Lift the Trophy", - "handicap": "" - }, - { - "id": "734590525", - "odds": "2.000", - "name": "Over 2 Goals", - "handicap": "2" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:09:16+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9924545", - "FI": "174307725", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T17:03:03+03:00", - "Odds": [ - { - "id": "726811888", - "odds": "13.000", - "name": "Lautaro Martinez", - "handicap": "" - }, - { - "id": "726811982", - "odds": "11.000", - "name": "Khvicha Kvaratskhelia", - "handicap": "" - }, - { - "id": "726816128", - "odds": "1.615", - "name": "PSG to Lift the Trophy", - "handicap": "" - }, - { - "id": "726811208", - "odds": "3.250", - "name": "Bradley Barcola to Score", - "handicap": "" - }, - { - "id": "726806476", - "odds": "1.909", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "726816130", - "odds": "2.300", - "name": "Inter Milan to Lift the Trophy", - "handicap": "" - }, - { - "id": "726811216", - "odds": "3.250", - "name": "Marcus Thuram to Score", - "handicap": "" - }, - { - "id": "726807442", - "odds": "1.750", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "726816349", - "odds": "2.300", - "name": "Lautaro Martinez to Score or Assist", - "handicap": "" - }, - { - "id": "726816313", - "odds": "2.000", - "name": "Khvicha Kvaratskhelia to Score or Assist", - "handicap": "" - }, - { - "id": "726816123", - "odds": "2.250", - "name": "PSG to Win in 90 Mins", - "handicap": "" - }, - { - "id": "726807627", - "odds": "3.400", - "name": "PSG to Score in Both Halves", - "handicap": "" - }, - { - "id": "726811207", - "odds": "4.000", - "name": "Desire Doue to Score", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:15:26+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977002", - "FI": "174206901", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T17:09:58+03:00", - "Odds": [ - { - "id": "810834176", - "odds": "13.000", - "name": "Valencia 2-1", - "handicap": "" - }, - { - "id": "810843474", - "odds": "7.000", - "name": "Hugo Duro", - "handicap": "" - }, - { - "id": "713504056", - "odds": "2.000", - "name": "FT Result: Real Betis", - "handicap": "" - }, - { - "id": "818142082", - "odds": "2.375", - "name": "Juan Hernandez: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818142073", - "odds": "1.444", - "name": "Jesus Rodriguez: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713504058", - "odds": "3.500", - "name": "FT Result: Valencia", - "handicap": "" - }, - { - "id": "818205392", - "odds": "1.300", - "name": "Hugo Duro: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818145409", - "odds": "1.533", - "name": "Luis Rioja: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713504058", - "odds": "3.500", - "name": "FT Result: Valencia", - "handicap": "" - }, - { - "id": "810835604", - "odds": "1.533", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "813193941", - "odds": "1.300", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "818142127", - "odds": "2.100", - "name": "Silva William Carvalho: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818205392", - "odds": "1.300", - "name": "Hugo Duro: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "810835604", - "odds": "1.533", - "name": "Both Teams to Score", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:15:31+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9982904", - "FI": "174588290", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T17:15:28+03:00", - "Odds": [ - { - "id": "820264609", - "odds": "1.400", - "name": "Umut Bozok: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "765037000", - "odds": "1.900", - "name": "FT Result: Eyupspor", - "handicap": "" - }, - { - "id": "819298752", - "odds": "1.666", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "820243702", - "odds": "1.444", - "name": "Emre Mor: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "819298752", - "odds": "1.666", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "819301876", - "odds": "5.500", - "name": "Over 4 Goals", - "handicap": "4" - }, - { - "id": "820264669", - "odds": "3.400", - "name": "Adolfo Gaich: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "765037006", - "odds": "3.700", - "name": "FT Result: Antalyaspor", - "handicap": "" - }, - { - "id": "819298752", - "odds": "1.666", - "name": "Both Teams to Score", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:16:07+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "8826418", - "FI": "174588296", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T17:14:29+03:00", - "Odds": [ - { - "id": "819956646", - "odds": "1.500", - "name": "Alexandru Maxim: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "765037294", - "odds": "2.600", - "name": "FT Result: Gaziantep FK", - "handicap": "" - }, - { - "id": "819311085", - "odds": "2.200", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "819959543", - "odds": "2.375", - "name": "Joia Nuno Da Costa: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "765037306", - "odds": "2.375", - "name": "FT Result: Kasimpasa", - "handicap": "" - }, - { - "id": "819312321", - "odds": "1.444", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "820280304", - "odds": "1.363", - "name": "Aytac Kara: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "819312321", - "odds": "1.444", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "819315041", - "odds": "3.750", - "name": "Over 4 Goals", - "handicap": "4" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:16:17+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977005", - "FI": "174206938", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T17:06:33+03:00", - "Odds": [ - { - "id": "810793474", - "odds": "4.500", - "name": "Javi Puado", - "handicap": "" - }, - { - "id": "810793926", - "odds": "9.000", - "name": "Roberto Fernandez", - "handicap": "" - }, - { - "id": "818165415", - "odds": "2.000", - "name": "Oliver McBurnie: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818165371", - "odds": "3.000", - "name": "Adnan Januzaj: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818223546", - "odds": "1.250", - "name": "Roberto Fernandez: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713505983", - "odds": "1.363", - "name": "FT Result: Espanyol", - "handicap": "" - }, - { - "id": "818161086", - "odds": "1.909", - "name": "Javi Puado: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818161150", - "odds": "2.100", - "name": "Roberto Fernandez: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810785073", - "odds": "2.100", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818165373", - "odds": "2.100", - "name": "Alberto Moleiro: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818223267", - "odds": "1.200", - "name": "Javi Puado: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713505993", - "odds": "8.500", - "name": "FT Result: Las Palmas", - "handicap": "" - }, - { - "id": "813197755", - "odds": "1.300", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "810787654", - "odds": "1.800", - "name": "Over 2 Goals", - "handicap": "2" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:16:17+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977005", - "FI": "174206938", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T17:06:33+03:00", - "Odds": [ - { - "id": "810793474", - "odds": "4.500", - "name": "Javi Puado", - "handicap": "" - }, - { - "id": "810793926", - "odds": "9.000", - "name": "Roberto Fernandez", - "handicap": "" - }, - { - "id": "818165415", - "odds": "2.000", - "name": "Oliver McBurnie: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818165371", - "odds": "3.000", - "name": "Adnan Januzaj: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818223546", - "odds": "1.250", - "name": "Roberto Fernandez: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713505983", - "odds": "1.363", - "name": "FT Result: Espanyol", - "handicap": "" - }, - { - "id": "818161086", - "odds": "1.909", - "name": "Javi Puado: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818161150", - "odds": "2.100", - "name": "Roberto Fernandez: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810785073", - "odds": "2.100", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818165373", - "odds": "2.100", - "name": "Alberto Moleiro: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818223267", - "odds": "1.200", - "name": "Javi Puado: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713505993", - "odds": "8.500", - "name": "FT Result: Las Palmas", - "handicap": "" - }, - { - "id": "813197755", - "odds": "1.300", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "810787654", - "odds": "1.800", - "name": "Over 2 Goals", - "handicap": "2" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:16:46+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977004", - "FI": "174206928", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T17:11:32+03:00", - "Odds": [ - { - "id": "810825615", - "odds": "10.000", - "name": "Daniel Raba", - "handicap": "" - }, - { - "id": "810824112", - "odds": "15.000", - "name": "Juan Latasa", - "handicap": "" - }, - { - "id": "818234653", - "odds": "1.285", - "name": "Yan Diomande: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818174813", - "odds": "1.727", - "name": "Juan Latasa: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "813198253", - "odds": "1.333", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "713505303", - "odds": "1.300", - "name": "FT Result: Leganes", - "handicap": "" - }, - { - "id": "818170790", - "odds": "1.833", - "name": "Daniel Raba: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818170803", - "odds": "1.666", - "name": "Diego Garcia: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810816138", - "odds": "2.050", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818174813", - "odds": "1.727", - "name": "Juan Latasa: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818170892", - "odds": "1.533", - "name": "Seydouba Cisse: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713505316", - "odds": "9.500", - "name": "FT Result: Valladolid", - "handicap": "" - }, - { - "id": "810818057", - "odds": "1.666", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813198253", - "odds": "1.333", - "name": "Over 7 Corners", - "handicap": "7.0" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:17:03+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9757324", - "FI": "172433912", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T17:15:58+03:00", - "Odds": [ - { - "id": "817868646", - "odds": "4.250", - "name": "Ousmane Dembele", - "handicap": "" - }, - { - "id": "467772639", - "odds": "8.000", - "name": "PSG 3-0", - "handicap": "" - }, - { - "id": "467774766", - "odds": "2.050", - "name": "PSG to win by 3+ Goals", - "handicap": "" - }, - { - "id": "818472444", - "odds": "1.800", - "name": "Bradley Barcola: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818472520", - "odds": "1.571", - "name": "Khvicha Kvaratskhelia: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "467775416", - "odds": "2.000", - "name": "PSG to Win Both Halves", - "handicap": "" - }, - { - "id": "818525029", - "odds": "1.333", - "name": "Ousmane Dembele: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818524895", - "odds": "3.250", - "name": "Fabian Ruiz: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "467772622", - "odds": "1.500", - "name": "HT: PSG \u2013 FT: PSG", - "handicap": "" - }, - { - "id": "818979031", - "odds": "1.055", - "name": "Most Shots on Target: PSG", - "handicap": "" - }, - { - "id": "818977802", - "odds": "1.533", - "name": "Most Cards: Reims", - "handicap": "" - }, - { - "id": "467772737", - "odds": "1.833", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "467773042", - "odds": "2.200", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818525029", - "odds": "1.333", - "name": "Ousmane Dembele: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818525451", - "odds": "10.000", - "name": "Theoson Siebatcheu: 2+ Shots on Target", - "handicap": "1.5" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:17:05+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977003", - "FI": "174206914", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T17:15:43+03:00", - "Odds": [ - { - "id": "810782401", - "odds": "6.500", - "name": "Ante Budimir", - "handicap": "" - }, - { - "id": "810782255", - "odds": "17.000", - "name": "Jon Guridi", - "handicap": "" - }, - { - "id": "713504570", - "odds": "2.350", - "name": "FT Result: Osasuna", - "handicap": "" - }, - { - "id": "818200891", - "odds": "1.615", - "name": "Ante Budimir: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810881584", - "odds": "1.833", - "name": "Ante Budimir to Score or Assist", - "handicap": "" - }, - { - "id": "713504562", - "odds": "3.200", - "name": "FT Result: CD Alaves", - "handicap": "" - }, - { - "id": "810777871", - "odds": "1.950", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "813199262", - "odds": "1.333", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "713504562", - "odds": "3.200", - "name": "FT Result: CD Alaves", - "handicap": "" - }, - { - "id": "818200816", - "odds": "1.615", - "name": "Carlos Vicente: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "810881581", - "odds": "3.500", - "name": "Jon Guridi to Score or Assist", - "handicap": "" - }, - { - "id": "810778158", - "odds": "4.000", - "name": "Osasuna to Score in Both Halves", - "handicap": "" - }, - { - "id": "810881558", - "odds": "2.100", - "name": "Bryan Zaragoza to Score or Assist", - "handicap": "" - }, - { - "id": "810881580", - "odds": "3.100", - "name": "Aimar Oroz to Score or Assist", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:17:16+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977007", - "FI": "174206951", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T17:08:11+03:00", - "Odds": [ - { - "id": "810795373", - "odds": "2.875", - "name": "1", - "handicap": "" - }, - { - "id": "810801154", - "odds": "5.500", - "name": "Borja Iglesias", - "handicap": "" - }, - { - "id": "713507435", - "odds": "1.850", - "name": "FT Result: Celta Vigo", - "handicap": "" - }, - { - "id": "818234755", - "odds": "1.909", - "name": "Borja Iglesias: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818234745", - "odds": "1.800", - "name": "Alfonso Gonzalez: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713507421", - "odds": "4.100", - "name": "FT Result: Getafe", - "handicap": "" - }, - { - "id": "810795706", - "odds": "2.100", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813201935", - "odds": "1.533", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "713507435", - "odds": "1.850", - "name": "FT Result: Celta Vigo", - "handicap": "" - }, - { - "id": "810884551", - "odds": "3.100", - "name": "Oscar Mingueza to Score or Assist", - "handicap": "" - }, - { - "id": "818234750", - "odds": "3.500", - "name": "Beltran Fran: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818272688", - "odds": "1.285", - "name": "Moya Borja Mayoral: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818232899", - "odds": "1.533", - "name": "Chrisantus Uche: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818235077", - "odds": "2.625", - "name": "Oscar Mingueza: 1+ Shots on Target", - "handicap": "0.5" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:17:16+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977007", - "FI": "174206951", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T17:08:11+03:00", - "Odds": [ - { - "id": "810795373", - "odds": "2.875", - "name": "1", - "handicap": "" - }, - { - "id": "810801154", - "odds": "5.500", - "name": "Borja Iglesias", - "handicap": "" - }, - { - "id": "713507435", - "odds": "1.850", - "name": "FT Result: Celta Vigo", - "handicap": "" - }, - { - "id": "818234755", - "odds": "1.909", - "name": "Borja Iglesias: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818234745", - "odds": "1.800", - "name": "Alfonso Gonzalez: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713507421", - "odds": "4.100", - "name": "FT Result: Getafe", - "handicap": "" - }, - { - "id": "810795706", - "odds": "2.100", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813201935", - "odds": "1.533", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "713507435", - "odds": "1.850", - "name": "FT Result: Celta Vigo", - "handicap": "" - }, - { - "id": "810884551", - "odds": "3.100", - "name": "Oscar Mingueza to Score or Assist", - "handicap": "" - }, - { - "id": "818234750", - "odds": "3.500", - "name": "Beltran Fran: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818272688", - "odds": "1.285", - "name": "Moya Borja Mayoral: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818232899", - "odds": "1.533", - "name": "Chrisantus Uche: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818235077", - "odds": "2.625", - "name": "Oscar Mingueza: 1+ Shots on Target", - "handicap": "0.5" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:17:17+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977008", - "FI": "174206957", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T17:11:32+03:00", - "Odds": [ - { - "id": "810830891", - "odds": "8.500", - "name": "Isi Palazon", - "handicap": "" - }, - { - "id": "810826957", - "odds": "3.750", - "name": "2", - "handicap": "" - }, - { - "id": "713508001", - "odds": "6.250", - "name": "FT Result: Mallorca", - "handicap": "" - }, - { - "id": "810827203", - "odds": "2.100", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813203878", - "odds": "1.300", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "713507997", - "odds": "1.533", - "name": "FT Result: Rayo Vallecano", - "handicap": "" - }, - { - "id": "810911970", - "odds": "2.200", - "name": "Jorge De Frutos to Score or Assist", - "handicap": "" - }, - { - "id": "818242351", - "odds": "1.909", - "name": "Isi Palazon: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810827485", - "odds": "2.100", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818248799", - "odds": "3.000", - "name": "Sergi Darder: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818300359", - "odds": "1.200", - "name": "Isi Palazon: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "810827053", - "odds": "2.300", - "name": "HT: Rayo Vallecano \u2013 FT: Rayo Vallecano", - "handicap": "" - }, - { - "id": "810827602", - "odds": "2.625", - "name": "Rayo Vallecano to Score in Both Halves", - "handicap": "" - }, - { - "id": "810830483", - "odds": "4.000", - "name": "Adrian Embarba to Score", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:17:17+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977008", - "FI": "174206957", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T17:11:32+03:00", - "Odds": [ - { - "id": "810830891", - "odds": "8.500", - "name": "Isi Palazon", - "handicap": "" - }, - { - "id": "810826957", - "odds": "3.750", - "name": "2", - "handicap": "" - }, - { - "id": "713508001", - "odds": "6.250", - "name": "FT Result: Mallorca", - "handicap": "" - }, - { - "id": "810827203", - "odds": "2.100", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813203878", - "odds": "1.300", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "713507997", - "odds": "1.533", - "name": "FT Result: Rayo Vallecano", - "handicap": "" - }, - { - "id": "810911970", - "odds": "2.200", - "name": "Jorge De Frutos to Score or Assist", - "handicap": "" - }, - { - "id": "818242351", - "odds": "1.909", - "name": "Isi Palazon: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810827485", - "odds": "2.100", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818248799", - "odds": "3.000", - "name": "Sergi Darder: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818300359", - "odds": "1.200", - "name": "Isi Palazon: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "810827053", - "odds": "2.300", - "name": "HT: Rayo Vallecano \u2013 FT: Rayo Vallecano", - "handicap": "" - }, - { - "id": "810827602", - "odds": "2.625", - "name": "Rayo Vallecano to Score in Both Halves", - "handicap": "" - }, - { - "id": "810830483", - "odds": "4.000", - "name": "Adrian Embarba to Score", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:19:44+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9289262", - "FI": "174219002", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T17:15:06+03:00", - "Odds": [ - { - "id": "806670446", - "odds": "13.000", - "name": "Tani Oluwaseyi", - "handicap": "" - }, - { - "id": "806655131", - "odds": "9.500", - "name": "Minnesota United 2-1", - "handicap": "" - }, - { - "id": "714859773", - "odds": "1.727", - "name": "FT Result: Minnesota United", - "handicap": "" - }, - { - "id": "812331324", - "odds": "1.800", - "name": "Kelvin Yeboah: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "812331345", - "odds": "2.375", - "name": "Tani Oluwaseyi: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "806655293", - "odds": "2.050", - "name": "Draw or Austin FC", - "handicap": "" - }, - { - "id": "812335148", - "odds": "1.571", - "name": "Myrto Uzuni: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "812334820", - "odds": "1.571", - "name": "Brandon Vazquez: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "827362447", - "odds": "1.533", - "name": "Over 4 Corners for Minnesota United", - "handicap": "4" - }, - { - "id": "827362563", - "odds": "2.200", - "name": "Over 4 Corners for Austin FC", - "handicap": "4" - }, - { - "id": "806655241", - "odds": "1.950", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "806655104", - "odds": "2.625", - "name": "HT: Minnesota United \u2013 FT: Minnesota United", - "handicap": "" - }, - { - "id": "827360459", - "odds": "1.615", - "name": "Most Corners: Minnesota United", - "handicap": "" - }, - { - "id": "806963379", - "odds": "1.800", - "name": "Kelvin Yeboah to Score or Assist", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:19:52+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9289261", - "FI": "174219004", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T17:19:45+03:00", - "Odds": [ - { - "id": "806742909", - "odds": "12.000", - "name": "Joao Klauss", - "handicap": "" - }, - { - "id": "806741536", - "odds": "8.500", - "name": "Darren Yapi", - "handicap": "" - }, - { - "id": "714859800", - "odds": "1.850", - "name": "FT Result: Colorado Rapids", - "handicap": "" - }, - { - "id": "812359565", - "odds": "2.100", - "name": "Djordje Mihailovic: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "812508432", - "odds": "3.000", - "name": "Kevin Cabral: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "806733943", - "odds": "1.909", - "name": "Draw or St. Louis City SC", - "handicap": "" - }, - { - "id": "812362704", - "odds": "1.444", - "name": "Cedric Teuchert: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "812362834", - "odds": "1.500", - "name": "Marcel Hartel: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "812508349", - "odds": "3.250", - "name": "Cedric Teuchert: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "812359565", - "odds": "2.100", - "name": "Djordje Mihailovic: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "806737965", - "odds": "1.600", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "714859800", - "odds": "1.850", - "name": "FT Result: Colorado Rapids", - "handicap": "" - }, - { - "id": "827381382", - "odds": "1.250", - "name": "Over 3 Corners for Colorado Rapids", - "handicap": "3" - }, - { - "id": "807040642", - "odds": "2.100", - "name": "Darren Yapi to Score or Assist", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:19:59+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9289260", - "FI": "174219006", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T17:18:36+03:00", - "Odds": [ - { - "id": "806753712", - "odds": "8.500", - "name": "Brian White", - "handicap": "" - }, - { - "id": "806753521", - "odds": "7.000", - "name": "William Agada", - "handicap": "" - }, - { - "id": "714859829", - "odds": "2.500", - "name": "FT Result: Real Salt Lake", - "handicap": "" - }, - { - "id": "812514424", - "odds": "1.333", - "name": "William Agada: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "812377943", - "odds": "1.400", - "name": "Diogo Goncalves: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "714859831", - "odds": "2.600", - "name": "FT Result: Vancouver Whitecaps", - "handicap": "" - }, - { - "id": "812380351", - "odds": "2.100", - "name": "Pedro Vite: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "812380265", - "odds": "2.750", - "name": "Brian White: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "827384577", - "odds": "1.666", - "name": "Over 4 Corners for Real Salt Lake", - "handicap": "4" - }, - { - "id": "827384725", - "odds": "1.909", - "name": "Over 4 Corners for Vancouver Whitecaps", - "handicap": "4" - }, - { - "id": "806747601", - "odds": "1.666", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "812377945", - "odds": "1.833", - "name": "Dominik Marczuk: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "812380239", - "odds": "2.250", - "name": "Ali Ahmed: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "806749654", - "odds": "1.800", - "name": "Over 2 Goals", - "handicap": "2" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:20:13+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977006", - "FI": "174206945", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T17:13:41+03:00", - "Odds": [ - { - "id": "810813006", - "odds": "8.000", - "name": "Cristhian Stuani", - "handicap": "" - }, - { - "id": "810805461", - "odds": "12.000", - "name": "Atletico Madrid 2-0", - "handicap": "" - }, - { - "id": "713506855", - "odds": "1.950", - "name": "FT Result: Atletico Madrid", - "handicap": "" - }, - { - "id": "818257779", - "odds": "2.750", - "name": "Antoine Griezmann: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818257773", - "odds": "2.750", - "name": "Angel Correa: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818257791", - "odds": "1.833", - "name": "Conor Gallagher: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818257811", - "odds": "1.400", - "name": "Samuel Lino: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818306498", - "odds": "1.400", - "name": "Antoine Griezmann: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713506844", - "odds": "3.700", - "name": "FT Result: Girona", - "handicap": "" - }, - { - "id": "810809282", - "odds": "1.615", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813205972", - "odds": "1.363", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "713506844", - "odds": "3.700", - "name": "FT Result: Girona", - "handicap": "" - }, - { - "id": "832763395", - "odds": "1.400", - "name": "Cristhian Stuani: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818254988", - "odds": "1.444", - "name": "Viktor Tsygankov: 1+ Shots on Target", - "handicap": "0.5" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:20:13+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977006", - "FI": "174206945", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T17:13:41+03:00", - "Odds": [ - { - "id": "810813006", - "odds": "8.000", - "name": "Cristhian Stuani", - "handicap": "" - }, - { - "id": "810805461", - "odds": "12.000", - "name": "Atletico Madrid 2-0", - "handicap": "" - }, - { - "id": "713506855", - "odds": "1.950", - "name": "FT Result: Atletico Madrid", - "handicap": "" - }, - { - "id": "818257779", - "odds": "2.750", - "name": "Antoine Griezmann: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818257773", - "odds": "2.750", - "name": "Angel Correa: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818257791", - "odds": "1.833", - "name": "Conor Gallagher: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818257811", - "odds": "1.400", - "name": "Samuel Lino: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818306498", - "odds": "1.400", - "name": "Antoine Griezmann: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713506844", - "odds": "3.700", - "name": "FT Result: Girona", - "handicap": "" - }, - { - "id": "810809282", - "odds": "1.615", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813205972", - "odds": "1.363", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "713506844", - "odds": "3.700", - "name": "FT Result: Girona", - "handicap": "" - }, - { - "id": "832763395", - "odds": "1.400", - "name": "Cristhian Stuani: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818254988", - "odds": "1.444", - "name": "Viktor Tsygankov: 1+ Shots on Target", - "handicap": "0.5" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:22:20+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "8822034", - "FI": "174588286", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T17:16:49+03:00", - "Odds": [ - { - "id": "820006660", - "odds": "1.571", - "name": "Mehmet Nayir: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "765036764", - "odds": "2.800", - "name": "FT Result: Konyaspor", - "handicap": "" - }, - { - "id": "819391476", - "odds": "3.250", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "820321024", - "odds": "3.000", - "name": "Andraz Sporar: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "765036767", - "odds": "2.250", - "name": "FT Result: Alanyaspor", - "handicap": "" - }, - { - "id": "819400742", - "odds": "1.727", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "820009298", - "odds": "1.666", - "name": "Eui-Jo Hwang: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "819400742", - "odds": "1.727", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "819391476", - "odds": "3.250", - "name": "Over 3 Goals", - "handicap": "3" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:22:20+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "8822034", - "FI": "174588286", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T17:16:49+03:00", - "Odds": [ - { - "id": "820006660", - "odds": "1.571", - "name": "Mehmet Nayir: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "765036764", - "odds": "2.800", - "name": "FT Result: Konyaspor", - "handicap": "" - }, - { - "id": "819391476", - "odds": "3.250", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "820321024", - "odds": "3.000", - "name": "Andraz Sporar: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "765036767", - "odds": "2.250", - "name": "FT Result: Alanyaspor", - "handicap": "" - }, - { - "id": "819400742", - "odds": "1.727", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "820009298", - "odds": "1.666", - "name": "Eui-Jo Hwang: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "819400742", - "odds": "1.727", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "819391476", - "odds": "3.250", - "name": "Over 3 Goals", - "handicap": "3" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:22:27+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "8822035", - "FI": "174588284", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T17:15:01+03:00", - "Odds": [ - { - "id": "820312223", - "odds": "3.400", - "name": "Duckens Nazon: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "819383249", - "odds": "1.800", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "827542181", - "odds": "3.400", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "819997827", - "odds": "1.500", - "name": "Gokdeniz Bayrakdar: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "819383249", - "odds": "1.800", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "827542181", - "odds": "3.400", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "819997755", - "odds": "1.666", - "name": "Alredo Fredy: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "765036662", - "odds": "1.950", - "name": "FT Result: Bodrum FK", - "handicap": "" - }, - { - "id": "819383249", - "odds": "1.800", - "name": "Both Teams to Score", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:22:27+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "8822035", - "FI": "174588284", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T17:15:01+03:00", - "Odds": [ - { - "id": "820312223", - "odds": "3.400", - "name": "Duckens Nazon: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "819383249", - "odds": "1.800", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "827542181", - "odds": "3.400", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "819997827", - "odds": "1.500", - "name": "Gokdeniz Bayrakdar: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "819383249", - "odds": "1.800", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "827542181", - "odds": "3.400", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "819997755", - "odds": "1.666", - "name": "Alredo Fredy: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "765036662", - "odds": "1.950", - "name": "FT Result: Bodrum FK", - "handicap": "" - }, - { - "id": "819383249", - "odds": "1.800", - "name": "Both Teams to Score", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:22:35+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "8840198", - "FI": "174588288", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T17:18:09+03:00", - "Odds": [ - { - "id": "820021777", - "odds": "1.500", - "name": "Oleksandr Zubkov: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "765036883", - "odds": "2.250", - "name": "FT Result: Trabzonspor", - "handicap": "" - }, - { - "id": "819420355", - "odds": "2.625", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "820021638", - "odds": "1.727", - "name": "Anthony Nwakaeme: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "819420878", - "odds": "1.571", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "819420355", - "odds": "2.625", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "820336294", - "odds": "3.400", - "name": "Landry Dimata: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "765036888", - "odds": "2.800", - "name": "FT Result: Samsunspor", - "handicap": "" - }, - { - "id": "819420878", - "odds": "1.571", - "name": "Both Teams to Score", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:22:35+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "8840198", - "FI": "174588288", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T17:18:09+03:00", - "Odds": [ - { - "id": "820021777", - "odds": "1.500", - "name": "Oleksandr Zubkov: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "765036883", - "odds": "2.250", - "name": "FT Result: Trabzonspor", - "handicap": "" - }, - { - "id": "819420355", - "odds": "2.625", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "820021638", - "odds": "1.727", - "name": "Anthony Nwakaeme: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "819420878", - "odds": "1.571", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "819420355", - "odds": "2.625", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "820336294", - "odds": "3.400", - "name": "Landry Dimata: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "765036888", - "odds": "2.800", - "name": "FT Result: Samsunspor", - "handicap": "" - }, - { - "id": "819420878", - "odds": "1.571", - "name": "Both Teams to Score", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:22:39+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9982903", - "FI": "174588280", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T17:17:35+03:00", - "Odds": [ - { - "id": "820343994", - "odds": "1.300", - "name": "Ciro Immobile: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "819945189", - "odds": "2.200", - "name": "Rafa Silva: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "765036441", - "odds": "1.420", - "name": "FT Result: Besiktas", - "handicap": "" - }, - { - "id": "819945232", - "odds": "2.625", - "name": "Joao Mario: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "819344587", - "odds": "1.727", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "819343676", - "odds": "2.200", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "819348703", - "odds": "1.666", - "name": "Ciro Immobile to Score", - "handicap": "" - }, - { - "id": "765036441", - "odds": "1.420", - "name": "FT Result: Besiktas", - "handicap": "" - }, - { - "id": "819343676", - "odds": "2.200", - "name": "Over 3 Goals", - "handicap": "3" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:22:39+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9982903", - "FI": "174588280", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T17:17:35+03:00", - "Odds": [ - { - "id": "820343994", - "odds": "1.300", - "name": "Ciro Immobile: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "819945189", - "odds": "2.200", - "name": "Rafa Silva: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "765036441", - "odds": "1.420", - "name": "FT Result: Besiktas", - "handicap": "" - }, - { - "id": "819945232", - "odds": "2.625", - "name": "Joao Mario: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "819344587", - "odds": "1.727", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "819343676", - "odds": "2.200", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "819348703", - "odds": "1.666", - "name": "Ciro Immobile to Score", - "handicap": "" - }, - { - "id": "765036441", - "odds": "1.420", - "name": "FT Result: Besiktas", - "handicap": "" - }, - { - "id": "819343676", - "odds": "2.200", - "name": "Over 3 Goals", - "handicap": "3" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:23:37+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977001", - "FI": "174206898", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T17:22:05+03:00", - "Odds": [ - { - "id": "810769529", - "odds": "6.500", - "name": "Robert Lewandowski", - "handicap": "" - }, - { - "id": "810770215", - "odds": "6.500", - "name": "Lamine Yamal", - "handicap": "" - }, - { - "id": "713503841", - "odds": "2.100", - "name": "FT Result: Barcelona", - "handicap": "" - }, - { - "id": "818283162", - "odds": "1.833", - "name": "Robert Lewandowski: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810767797", - "odds": "1.909", - "name": "Robert Lewandowski to Score", - "handicap": "" - }, - { - "id": "713503841", - "odds": "2.100", - "name": "FT Result: Barcelona", - "handicap": "" - }, - { - "id": "818283150", - "odds": "2.000", - "name": "Raphinha: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810774636", - "odds": "1.571", - "name": "Lamine Yamal to Score or Assist", - "handicap": "" - }, - { - "id": "713503825", - "odds": "3.200", - "name": "FT Result: Athletic Bilbao", - "handicap": "" - }, - { - "id": "810774497", - "odds": "2.200", - "name": "Oihan Sancet to Score or Assist", - "handicap": "" - }, - { - "id": "813208230", - "odds": "1.285", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "827038436", - "odds": "1.400", - "name": "Over 3 Corners for Athletic Bilbao", - "handicap": "3" - }, - { - "id": "827038961", - "odds": "1.444", - "name": "Over 3 Corners for Barcelona", - "handicap": "3" - }, - { - "id": "810764064", - "odds": "1.444", - "name": "Both Teams to Score", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:23:39+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9288599", - "FI": "174219011", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T17:18:17+03:00", - "Odds": [ - { - "id": "806795106", - "odds": "13.000", - "name": "Alonso Martinez", - "handicap": "" - }, - { - "id": "806793895", - "odds": "15.000", - "name": "Hugo Cuypers", - "handicap": "" - }, - { - "id": "714860035", - "odds": "1.950", - "name": "FT Result: New York City FC", - "handicap": "" - }, - { - "id": "812414097", - "odds": "1.500", - "name": "Julian Fernandez: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "812414089", - "odds": "1.727", - "name": "Hannes Wolf: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "714860037", - "odds": "3.600", - "name": "FT Result: Chicago Fire", - "handicap": "" - }, - { - "id": "812415639", - "odds": "1.615", - "name": "Brian Gutierrez: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "812415683", - "odds": "1.571", - "name": "Jonathan Bamba: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "812875983", - "odds": "1.500", - "name": "Over 8 Corners", - "handicap": "8.0" - }, - { - "id": "806787411", - "odds": "1.533", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "806786217", - "odds": "2.375", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "714860035", - "odds": "1.950", - "name": "FT Result: New York City FC", - "handicap": "" - }, - { - "id": "806792787", - "odds": "3.100", - "name": "Julian Fernandez to Score", - "handicap": "" - }, - { - "id": "827388794", - "odds": "1.615", - "name": "Most Corners: New York City FC", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:24:02+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9289259", - "FI": "174219015", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T17:18:06+03:00", - "Odds": [ - { - "id": "806822225", - "odds": "15.000", - "name": "Emmanuel Latte Lath", - "handicap": "" - }, - { - "id": "806820954", - "odds": "9.000", - "name": "Ferreira Evander", - "handicap": "" - }, - { - "id": "714860470", - "odds": "2.400", - "name": "FT Result: Atlanta United", - "handicap": "" - }, - { - "id": "812421030", - "odds": "1.571", - "name": "Miguel Almiron: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "812420959", - "odds": "1.444", - "name": "Aleksey Miranchuk: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "714860473", - "odds": "2.700", - "name": "FT Result: FC Cincinnati", - "handicap": "" - }, - { - "id": "812886421", - "odds": "1.363", - "name": "Luca Orellano: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "812886731", - "odds": "1.285", - "name": "Ahoueke Denkey: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "812885974", - "odds": "1.500", - "name": "Over 8 Corners", - "handicap": "8.0" - }, - { - "id": "806814209", - "odds": "1.533", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "806812506", - "odds": "2.500", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "812424314", - "odds": "2.625", - "name": "Luca Orellano: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "812887182", - "odds": "3.000", - "name": "Saba Lobzhanidze: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "806814209", - "odds": "1.533", - "name": "Both Teams to Score", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:24:13+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "8826752", - "FI": "174588282", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T17:17:19+03:00", - "Odds": [ - { - "id": "820350480", - "odds": "1.300", - "name": "Youssef En Nesyri: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "820042485", - "odds": "1.571", - "name": "Conceicao Talisca: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "765036542", - "odds": "1.222", - "name": "FT Result: Fenerbahce", - "handicap": "" - }, - { - "id": "819432775", - "odds": "1.500", - "name": "Youssef En Nesyri to Score", - "handicap": "" - }, - { - "id": "819430970", - "odds": "2.100", - "name": "Fenerbahce \u0026 Yes", - "handicap": "" - }, - { - "id": "819428625", - "odds": "2.250", - "name": "Over 4 Goals", - "handicap": "4" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:24:28+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9929184", - "FI": "174363978", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T17:16:01+03:00", - "Odds": [ - { - "id": "774550908", - "odds": "21.000", - "name": "Antony", - "handicap": "" - }, - { - "id": "774550887", - "odds": "15.000", - "name": "Nicolas Jackson", - "handicap": "" - }, - { - "id": "734595170", - "odds": "1.363", - "name": "Chelsea to Lift the Trophy", - "handicap": "" - }, - { - "id": "734591996", - "odds": "1.833", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "774549605", - "odds": "2.300", - "name": "Cole Palmer to Score", - "handicap": "" - }, - { - "id": "774549558", - "odds": "2.875", - "name": "Nicolas Jackson to Score", - "handicap": "" - }, - { - "id": "734595170", - "odds": "1.363", - "name": "Chelsea to Lift the Trophy", - "handicap": "" - }, - { - "id": "734590525", - "odds": "2.000", - "name": "Over 2 Goals", - "handicap": "2" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:24:53+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9924545", - "FI": "174307725", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T17:20:34+03:00", - "Odds": [ - { - "id": "726811888", - "odds": "13.000", - "name": "Lautaro Martinez", - "handicap": "" - }, - { - "id": "726811982", - "odds": "11.000", - "name": "Khvicha Kvaratskhelia", - "handicap": "" - }, - { - "id": "726816128", - "odds": "1.615", - "name": "PSG to Lift the Trophy", - "handicap": "" - }, - { - "id": "726811208", - "odds": "3.250", - "name": "Bradley Barcola to Score", - "handicap": "" - }, - { - "id": "726806476", - "odds": "1.909", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "726816130", - "odds": "2.300", - "name": "Inter Milan to Lift the Trophy", - "handicap": "" - }, - { - "id": "726811216", - "odds": "3.250", - "name": "Marcus Thuram to Score", - "handicap": "" - }, - { - "id": "726807442", - "odds": "1.750", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "726816349", - "odds": "2.300", - "name": "Lautaro Martinez to Score or Assist", - "handicap": "" - }, - { - "id": "726816313", - "odds": "2.000", - "name": "Khvicha Kvaratskhelia to Score or Assist", - "handicap": "" - }, - { - "id": "726816123", - "odds": "2.250", - "name": "PSG to Win in 90 Mins", - "handicap": "" - }, - { - "id": "726807627", - "odds": "3.400", - "name": "PSG to Score in Both Halves", - "handicap": "" - }, - { - "id": "726811207", - "odds": "4.000", - "name": "Desire Doue to Score", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:30:23+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977002", - "FI": "174206901", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T17:24:08+03:00", - "Odds": [ - { - "id": "810834176", - "odds": "13.000", - "name": "Valencia 2-1", - "handicap": "" - }, - { - "id": "810843474", - "odds": "7.000", - "name": "Hugo Duro", - "handicap": "" - }, - { - "id": "713504056", - "odds": "2.000", - "name": "FT Result: Real Betis", - "handicap": "" - }, - { - "id": "818142082", - "odds": "2.375", - "name": "Juan Hernandez: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818142073", - "odds": "1.444", - "name": "Jesus Rodriguez: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713504058", - "odds": "3.500", - "name": "FT Result: Valencia", - "handicap": "" - }, - { - "id": "818205392", - "odds": "1.300", - "name": "Hugo Duro: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818145409", - "odds": "1.533", - "name": "Luis Rioja: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713504058", - "odds": "3.500", - "name": "FT Result: Valencia", - "handicap": "" - }, - { - "id": "810835604", - "odds": "1.533", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "813193941", - "odds": "1.300", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "818142127", - "odds": "2.100", - "name": "Silva William Carvalho: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818205392", - "odds": "1.300", - "name": "Hugo Duro: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "810835604", - "odds": "1.533", - "name": "Both Teams to Score", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:30:30+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9982904", - "FI": "174588290", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T17:22:16+03:00", - "Odds": [ - { - "id": "820264609", - "odds": "1.400", - "name": "Umut Bozok: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "765037000", - "odds": "1.900", - "name": "FT Result: Eyupspor", - "handicap": "" - }, - { - "id": "819298752", - "odds": "1.666", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "820243702", - "odds": "1.444", - "name": "Emre Mor: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "819298752", - "odds": "1.666", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "819301876", - "odds": "5.500", - "name": "Over 4 Goals", - "handicap": "4" - }, - { - "id": "820264669", - "odds": "3.400", - "name": "Adolfo Gaich: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "765037006", - "odds": "3.700", - "name": "FT Result: Antalyaspor", - "handicap": "" - }, - { - "id": "819298752", - "odds": "1.666", - "name": "Both Teams to Score", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:31:07+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "8826418", - "FI": "174588296", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T17:29:44+03:00", - "Odds": [ - { - "id": "819956646", - "odds": "1.500", - "name": "Alexandru Maxim: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "765037294", - "odds": "2.600", - "name": "FT Result: Gaziantep FK", - "handicap": "" - }, - { - "id": "819311085", - "odds": "2.200", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "819959543", - "odds": "2.375", - "name": "Joia Nuno Da Costa: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "765037306", - "odds": "2.375", - "name": "FT Result: Kasimpasa", - "handicap": "" - }, - { - "id": "819312321", - "odds": "1.444", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "820280304", - "odds": "1.363", - "name": "Aytac Kara: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "819312321", - "odds": "1.444", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "819315041", - "odds": "3.750", - "name": "Over 4 Goals", - "handicap": "4" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:31:11+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977005", - "FI": "174206938", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T17:26:21+03:00", - "Odds": [ - { - "id": "810793474", - "odds": "4.500", - "name": "Javi Puado", - "handicap": "" - }, - { - "id": "810793926", - "odds": "9.000", - "name": "Roberto Fernandez", - "handicap": "" - }, - { - "id": "818165415", - "odds": "2.000", - "name": "Oliver McBurnie: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818165371", - "odds": "3.000", - "name": "Adnan Januzaj: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818223546", - "odds": "1.250", - "name": "Roberto Fernandez: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713505983", - "odds": "1.363", - "name": "FT Result: Espanyol", - "handicap": "" - }, - { - "id": "818161086", - "odds": "1.909", - "name": "Javi Puado: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818161150", - "odds": "2.100", - "name": "Roberto Fernandez: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810785073", - "odds": "2.100", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818165373", - "odds": "2.100", - "name": "Alberto Moleiro: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818223267", - "odds": "1.200", - "name": "Javi Puado: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713505993", - "odds": "8.000", - "name": "FT Result: Las Palmas", - "handicap": "" - }, - { - "id": "813197755", - "odds": "1.300", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "810787654", - "odds": "1.800", - "name": "Over 2 Goals", - "handicap": "2" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:31:11+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977005", - "FI": "174206938", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T17:26:21+03:00", - "Odds": [ - { - "id": "810793474", - "odds": "4.500", - "name": "Javi Puado", - "handicap": "" - }, - { - "id": "810793926", - "odds": "9.000", - "name": "Roberto Fernandez", - "handicap": "" - }, - { - "id": "818165415", - "odds": "2.000", - "name": "Oliver McBurnie: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818165371", - "odds": "3.000", - "name": "Adnan Januzaj: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818223546", - "odds": "1.250", - "name": "Roberto Fernandez: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713505983", - "odds": "1.363", - "name": "FT Result: Espanyol", - "handicap": "" - }, - { - "id": "818161086", - "odds": "1.909", - "name": "Javi Puado: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818161150", - "odds": "2.100", - "name": "Roberto Fernandez: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810785073", - "odds": "2.100", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818165373", - "odds": "2.100", - "name": "Alberto Moleiro: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818223267", - "odds": "1.200", - "name": "Javi Puado: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713505993", - "odds": "8.000", - "name": "FT Result: Las Palmas", - "handicap": "" - }, - { - "id": "813197755", - "odds": "1.300", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "810787654", - "odds": "1.800", - "name": "Over 2 Goals", - "handicap": "2" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:31:20+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977004", - "FI": "174206928", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T17:30:58+03:00", - "Odds": [ - { - "id": "810825615", - "odds": "10.000", - "name": "Daniel Raba", - "handicap": "" - }, - { - "id": "810824112", - "odds": "15.000", - "name": "Juan Latasa", - "handicap": "" - }, - { - "id": "818234653", - "odds": "1.285", - "name": "Yan Diomande: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818174813", - "odds": "1.727", - "name": "Juan Latasa: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "813198253", - "odds": "1.333", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "713505303", - "odds": "1.300", - "name": "FT Result: Leganes", - "handicap": "" - }, - { - "id": "818170790", - "odds": "1.833", - "name": "Daniel Raba: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818170803", - "odds": "1.666", - "name": "Diego Garcia: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810816138", - "odds": "2.050", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818174813", - "odds": "1.727", - "name": "Juan Latasa: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818170892", - "odds": "1.533", - "name": "Seydouba Cisse: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713505316", - "odds": "9.500", - "name": "FT Result: Valladolid", - "handicap": "" - }, - { - "id": "810818057", - "odds": "1.666", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813198253", - "odds": "1.333", - "name": "Over 7 Corners", - "handicap": "7.0" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:31:38+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9757324", - "FI": "172433912", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T17:26:36+03:00", - "Odds": [ - { - "id": "817868646", - "odds": "4.250", - "name": "Ousmane Dembele", - "handicap": "" - }, - { - "id": "467772639", - "odds": "8.000", - "name": "PSG 3-0", - "handicap": "" - }, - { - "id": "467774766", - "odds": "2.050", - "name": "PSG to win by 3+ Goals", - "handicap": "" - }, - { - "id": "818472444", - "odds": "1.800", - "name": "Bradley Barcola: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818472520", - "odds": "1.571", - "name": "Khvicha Kvaratskhelia: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "467775416", - "odds": "2.000", - "name": "PSG to Win Both Halves", - "handicap": "" - }, - { - "id": "818525029", - "odds": "1.333", - "name": "Ousmane Dembele: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818524895", - "odds": "3.250", - "name": "Fabian Ruiz: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "467772622", - "odds": "1.500", - "name": "HT: PSG \u2013 FT: PSG", - "handicap": "" - }, - { - "id": "818979031", - "odds": "1.055", - "name": "Most Shots on Target: PSG", - "handicap": "" - }, - { - "id": "818977802", - "odds": "1.533", - "name": "Most Cards: Reims", - "handicap": "" - }, - { - "id": "467772737", - "odds": "1.833", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "467773042", - "odds": "2.200", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818525029", - "odds": "1.333", - "name": "Ousmane Dembele: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818525451", - "odds": "10.000", - "name": "Theoson Siebatcheu: 2+ Shots on Target", - "handicap": "1.5" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:31:48+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977003", - "FI": "174206914", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T17:31:04+03:00", - "Odds": [ - { - "id": "810782401", - "odds": "6.500", - "name": "Ante Budimir", - "handicap": "" - }, - { - "id": "810782255", - "odds": "17.000", - "name": "Jon Guridi", - "handicap": "" - }, - { - "id": "713504570", - "odds": "2.350", - "name": "FT Result: Osasuna", - "handicap": "" - }, - { - "id": "818200891", - "odds": "1.615", - "name": "Ante Budimir: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810881584", - "odds": "1.833", - "name": "Ante Budimir to Score or Assist", - "handicap": "" - }, - { - "id": "713504562", - "odds": "3.200", - "name": "FT Result: CD Alaves", - "handicap": "" - }, - { - "id": "810777871", - "odds": "1.950", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "813199262", - "odds": "1.333", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "713504562", - "odds": "3.200", - "name": "FT Result: CD Alaves", - "handicap": "" - }, - { - "id": "818200816", - "odds": "1.615", - "name": "Carlos Vicente: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "810881581", - "odds": "3.500", - "name": "Jon Guridi to Score or Assist", - "handicap": "" - }, - { - "id": "810778158", - "odds": "4.000", - "name": "Osasuna to Score in Both Halves", - "handicap": "" - }, - { - "id": "810881558", - "odds": "2.100", - "name": "Bryan Zaragoza to Score or Assist", - "handicap": "" - }, - { - "id": "810881580", - "odds": "3.100", - "name": "Aimar Oroz to Score or Assist", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:32:06+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977007", - "FI": "174206951", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T17:26:23+03:00", - "Odds": [ - { - "id": "810795373", - "odds": "2.875", - "name": "1", - "handicap": "" - }, - { - "id": "810801154", - "odds": "5.500", - "name": "Borja Iglesias", - "handicap": "" - }, - { - "id": "713507435", - "odds": "1.850", - "name": "FT Result: Celta Vigo", - "handicap": "" - }, - { - "id": "818234755", - "odds": "1.909", - "name": "Borja Iglesias: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818234745", - "odds": "1.800", - "name": "Alfonso Gonzalez: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713507421", - "odds": "4.100", - "name": "FT Result: Getafe", - "handicap": "" - }, - { - "id": "810795706", - "odds": "2.100", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813201935", - "odds": "1.533", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "713507435", - "odds": "1.850", - "name": "FT Result: Celta Vigo", - "handicap": "" - }, - { - "id": "810884551", - "odds": "3.100", - "name": "Oscar Mingueza to Score or Assist", - "handicap": "" - }, - { - "id": "818234750", - "odds": "3.500", - "name": "Beltran Fran: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818272688", - "odds": "1.285", - "name": "Moya Borja Mayoral: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818232899", - "odds": "1.533", - "name": "Chrisantus Uche: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818235077", - "odds": "2.625", - "name": "Oscar Mingueza: 1+ Shots on Target", - "handicap": "0.5" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:32:06+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977007", - "FI": "174206951", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T17:26:23+03:00", - "Odds": [ - { - "id": "810795373", - "odds": "2.875", - "name": "1", - "handicap": "" - }, - { - "id": "810801154", - "odds": "5.500", - "name": "Borja Iglesias", - "handicap": "" - }, - { - "id": "713507435", - "odds": "1.850", - "name": "FT Result: Celta Vigo", - "handicap": "" - }, - { - "id": "818234755", - "odds": "1.909", - "name": "Borja Iglesias: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818234745", - "odds": "1.800", - "name": "Alfonso Gonzalez: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713507421", - "odds": "4.100", - "name": "FT Result: Getafe", - "handicap": "" - }, - { - "id": "810795706", - "odds": "2.100", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813201935", - "odds": "1.533", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "713507435", - "odds": "1.850", - "name": "FT Result: Celta Vigo", - "handicap": "" - }, - { - "id": "810884551", - "odds": "3.100", - "name": "Oscar Mingueza to Score or Assist", - "handicap": "" - }, - { - "id": "818234750", - "odds": "3.500", - "name": "Beltran Fran: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818272688", - "odds": "1.285", - "name": "Moya Borja Mayoral: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818232899", - "odds": "1.533", - "name": "Chrisantus Uche: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818235077", - "odds": "2.625", - "name": "Oscar Mingueza: 1+ Shots on Target", - "handicap": "0.5" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:32:41+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977008", - "FI": "174206957", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T17:20:33+03:00", - "Odds": [ - { - "id": "810830891", - "odds": "8.500", - "name": "Isi Palazon", - "handicap": "" - }, - { - "id": "810826957", - "odds": "3.750", - "name": "2", - "handicap": "" - }, - { - "id": "713508001", - "odds": "6.250", - "name": "FT Result: Mallorca", - "handicap": "" - }, - { - "id": "810827203", - "odds": "2.100", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813203878", - "odds": "1.300", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "713507997", - "odds": "1.533", - "name": "FT Result: Rayo Vallecano", - "handicap": "" - }, - { - "id": "810911970", - "odds": "2.200", - "name": "Jorge De Frutos to Score or Assist", - "handicap": "" - }, - { - "id": "818242351", - "odds": "1.909", - "name": "Isi Palazon: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810827485", - "odds": "2.100", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818248799", - "odds": "3.000", - "name": "Sergi Darder: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818300359", - "odds": "1.200", - "name": "Isi Palazon: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "810827053", - "odds": "2.300", - "name": "HT: Rayo Vallecano \u2013 FT: Rayo Vallecano", - "handicap": "" - }, - { - "id": "810827602", - "odds": "2.625", - "name": "Rayo Vallecano to Score in Both Halves", - "handicap": "" - }, - { - "id": "810830483", - "odds": "4.000", - "name": "Adrian Embarba to Score", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:32:41+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977008", - "FI": "174206957", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T17:20:33+03:00", - "Odds": [ - { - "id": "810830891", - "odds": "8.500", - "name": "Isi Palazon", - "handicap": "" - }, - { - "id": "810826957", - "odds": "3.750", - "name": "2", - "handicap": "" - }, - { - "id": "713508001", - "odds": "6.250", - "name": "FT Result: Mallorca", - "handicap": "" - }, - { - "id": "810827203", - "odds": "2.100", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813203878", - "odds": "1.300", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "713507997", - "odds": "1.533", - "name": "FT Result: Rayo Vallecano", - "handicap": "" - }, - { - "id": "810911970", - "odds": "2.200", - "name": "Jorge De Frutos to Score or Assist", - "handicap": "" - }, - { - "id": "818242351", - "odds": "1.909", - "name": "Isi Palazon: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810827485", - "odds": "2.100", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818248799", - "odds": "3.000", - "name": "Sergi Darder: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818300359", - "odds": "1.200", - "name": "Isi Palazon: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "810827053", - "odds": "2.300", - "name": "HT: Rayo Vallecano \u2013 FT: Rayo Vallecano", - "handicap": "" - }, - { - "id": "810827602", - "odds": "2.625", - "name": "Rayo Vallecano to Score in Both Halves", - "handicap": "" - }, - { - "id": "810830483", - "odds": "4.000", - "name": "Adrian Embarba to Score", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:34:13+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9289262", - "FI": "174219002", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T17:34:00+03:00", - "Odds": [ - { - "id": "806670446", - "odds": "13.000", - "name": "Tani Oluwaseyi", - "handicap": "" - }, - { - "id": "806655131", - "odds": "9.500", - "name": "Minnesota United 2-1", - "handicap": "" - }, - { - "id": "714859773", - "odds": "1.727", - "name": "FT Result: Minnesota United", - "handicap": "" - }, - { - "id": "812331324", - "odds": "1.800", - "name": "Kelvin Yeboah: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "812331345", - "odds": "2.375", - "name": "Tani Oluwaseyi: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "806655293", - "odds": "2.050", - "name": "Draw or Austin FC", - "handicap": "" - }, - { - "id": "812335148", - "odds": "1.571", - "name": "Myrto Uzuni: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "812334820", - "odds": "1.571", - "name": "Brandon Vazquez: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "827362447", - "odds": "1.533", - "name": "Over 4 Corners for Minnesota United", - "handicap": "4" - }, - { - "id": "827362563", - "odds": "2.200", - "name": "Over 4 Corners for Austin FC", - "handicap": "4" - }, - { - "id": "806655241", - "odds": "1.950", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "806655104", - "odds": "2.625", - "name": "HT: Minnesota United \u2013 FT: Minnesota United", - "handicap": "" - }, - { - "id": "827360459", - "odds": "1.615", - "name": "Most Corners: Minnesota United", - "handicap": "" - }, - { - "id": "806963379", - "odds": "1.800", - "name": "Kelvin Yeboah to Score or Assist", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:34:17+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9289261", - "FI": "174219004", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T17:27:48+03:00", - "Odds": [ - { - "id": "806742909", - "odds": "12.000", - "name": "Joao Klauss", - "handicap": "" - }, - { - "id": "806741536", - "odds": "8.500", - "name": "Darren Yapi", - "handicap": "" - }, - { - "id": "714859800", - "odds": "1.850", - "name": "FT Result: Colorado Rapids", - "handicap": "" - }, - { - "id": "812359565", - "odds": "2.100", - "name": "Djordje Mihailovic: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "812508432", - "odds": "3.000", - "name": "Kevin Cabral: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "806733943", - "odds": "1.909", - "name": "Draw or St. Louis City SC", - "handicap": "" - }, - { - "id": "812362704", - "odds": "1.444", - "name": "Cedric Teuchert: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "812362834", - "odds": "1.500", - "name": "Marcel Hartel: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "812508349", - "odds": "3.250", - "name": "Cedric Teuchert: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "812359565", - "odds": "2.100", - "name": "Djordje Mihailovic: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "806737965", - "odds": "1.600", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "714859800", - "odds": "1.850", - "name": "FT Result: Colorado Rapids", - "handicap": "" - }, - { - "id": "827381382", - "odds": "1.250", - "name": "Over 3 Corners for Colorado Rapids", - "handicap": "3" - }, - { - "id": "807040642", - "odds": "2.100", - "name": "Darren Yapi to Score or Assist", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:34:26+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9289260", - "FI": "174219006", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T17:30:03+03:00", - "Odds": [ - { - "id": "806753712", - "odds": "8.500", - "name": "Brian White", - "handicap": "" - }, - { - "id": "806753521", - "odds": "7.000", - "name": "William Agada", - "handicap": "" - }, - { - "id": "714859829", - "odds": "2.500", - "name": "FT Result: Real Salt Lake", - "handicap": "" - }, - { - "id": "812514424", - "odds": "1.333", - "name": "William Agada: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "812377943", - "odds": "1.400", - "name": "Diogo Goncalves: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "714859831", - "odds": "2.600", - "name": "FT Result: Vancouver Whitecaps", - "handicap": "" - }, - { - "id": "812380351", - "odds": "2.100", - "name": "Pedro Vite: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "812380265", - "odds": "2.750", - "name": "Brian White: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "827384577", - "odds": "1.666", - "name": "Over 4 Corners for Real Salt Lake", - "handicap": "4" - }, - { - "id": "827384725", - "odds": "1.909", - "name": "Over 4 Corners for Vancouver Whitecaps", - "handicap": "4" - }, - { - "id": "806747601", - "odds": "1.666", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "812377945", - "odds": "1.833", - "name": "Dominik Marczuk: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "812380239", - "odds": "2.250", - "name": "Ali Ahmed: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "806749654", - "odds": "1.800", - "name": "Over 2 Goals", - "handicap": "2" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:34:43+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977006", - "FI": "174206945", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T17:30:10+03:00", - "Odds": [ - { - "id": "810813006", - "odds": "8.000", - "name": "Cristhian Stuani", - "handicap": "" - }, - { - "id": "810805461", - "odds": "12.000", - "name": "Atletico Madrid 2-0", - "handicap": "" - }, - { - "id": "713506855", - "odds": "1.950", - "name": "FT Result: Atletico Madrid", - "handicap": "" - }, - { - "id": "818257779", - "odds": "2.750", - "name": "Antoine Griezmann: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818257773", - "odds": "2.750", - "name": "Angel Correa: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818257791", - "odds": "1.833", - "name": "Conor Gallagher: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818257811", - "odds": "1.400", - "name": "Samuel Lino: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818306498", - "odds": "1.400", - "name": "Antoine Griezmann: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713506844", - "odds": "3.700", - "name": "FT Result: Girona", - "handicap": "" - }, - { - "id": "810809282", - "odds": "1.615", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813205972", - "odds": "1.363", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "713506844", - "odds": "3.700", - "name": "FT Result: Girona", - "handicap": "" - }, - { - "id": "832763395", - "odds": "1.400", - "name": "Cristhian Stuani: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818254988", - "odds": "1.444", - "name": "Viktor Tsygankov: 1+ Shots on Target", - "handicap": "0.5" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:34:43+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977006", - "FI": "174206945", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T17:30:10+03:00", - "Odds": [ - { - "id": "810813006", - "odds": "8.000", - "name": "Cristhian Stuani", - "handicap": "" - }, - { - "id": "810805461", - "odds": "12.000", - "name": "Atletico Madrid 2-0", - "handicap": "" - }, - { - "id": "713506855", - "odds": "1.950", - "name": "FT Result: Atletico Madrid", - "handicap": "" - }, - { - "id": "818257779", - "odds": "2.750", - "name": "Antoine Griezmann: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818257773", - "odds": "2.750", - "name": "Angel Correa: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818257791", - "odds": "1.833", - "name": "Conor Gallagher: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818257811", - "odds": "1.400", - "name": "Samuel Lino: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818306498", - "odds": "1.400", - "name": "Antoine Griezmann: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713506844", - "odds": "3.700", - "name": "FT Result: Girona", - "handicap": "" - }, - { - "id": "810809282", - "odds": "1.615", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813205972", - "odds": "1.363", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "713506844", - "odds": "3.700", - "name": "FT Result: Girona", - "handicap": "" - }, - { - "id": "832763395", - "odds": "1.400", - "name": "Cristhian Stuani: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818254988", - "odds": "1.444", - "name": "Viktor Tsygankov: 1+ Shots on Target", - "handicap": "0.5" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:36:27+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "8822034", - "FI": "174588286", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T17:36:05+03:00", - "Odds": [ - { - "id": "820006660", - "odds": "1.571", - "name": "Mehmet Nayir: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "765036764", - "odds": "2.800", - "name": "FT Result: Konyaspor", - "handicap": "" - }, - { - "id": "819391476", - "odds": "3.250", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "820321024", - "odds": "3.000", - "name": "Andraz Sporar: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "765036767", - "odds": "2.250", - "name": "FT Result: Alanyaspor", - "handicap": "" - }, - { - "id": "819400742", - "odds": "1.727", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "820009298", - "odds": "1.666", - "name": "Eui-Jo Hwang: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "819400742", - "odds": "1.727", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "819391476", - "odds": "3.250", - "name": "Over 3 Goals", - "handicap": "3" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:36:27+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "8822034", - "FI": "174588286", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T17:36:05+03:00", - "Odds": [ - { - "id": "820006660", - "odds": "1.571", - "name": "Mehmet Nayir: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "765036764", - "odds": "2.800", - "name": "FT Result: Konyaspor", - "handicap": "" - }, - { - "id": "819391476", - "odds": "3.250", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "820321024", - "odds": "3.000", - "name": "Andraz Sporar: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "765036767", - "odds": "2.250", - "name": "FT Result: Alanyaspor", - "handicap": "" - }, - { - "id": "819400742", - "odds": "1.727", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "820009298", - "odds": "1.666", - "name": "Eui-Jo Hwang: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "819400742", - "odds": "1.727", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "819391476", - "odds": "3.250", - "name": "Over 3 Goals", - "handicap": "3" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:36:32+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "8822035", - "FI": "174588284", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T17:25:54+03:00", - "Odds": [ - { - "id": "820312223", - "odds": "3.400", - "name": "Duckens Nazon: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "819383249", - "odds": "1.800", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "827542181", - "odds": "3.400", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "819997827", - "odds": "1.500", - "name": "Gokdeniz Bayrakdar: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "819383249", - "odds": "1.800", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "827542181", - "odds": "3.400", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "819997755", - "odds": "1.666", - "name": "Alredo Fredy: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "765036662", - "odds": "1.950", - "name": "FT Result: Bodrum FK", - "handicap": "" - }, - { - "id": "819383249", - "odds": "1.800", - "name": "Both Teams to Score", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:36:32+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "8822035", - "FI": "174588284", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T17:25:54+03:00", - "Odds": [ - { - "id": "820312223", - "odds": "3.400", - "name": "Duckens Nazon: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "819383249", - "odds": "1.800", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "827542181", - "odds": "3.400", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "819997827", - "odds": "1.500", - "name": "Gokdeniz Bayrakdar: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "819383249", - "odds": "1.800", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "827542181", - "odds": "3.400", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "819997755", - "odds": "1.666", - "name": "Alredo Fredy: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "765036662", - "odds": "1.950", - "name": "FT Result: Bodrum FK", - "handicap": "" - }, - { - "id": "819383249", - "odds": "1.800", - "name": "Both Teams to Score", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:36:39+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "8840198", - "FI": "174588288", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T17:36:01+03:00", - "Odds": [ - { - "id": "820021777", - "odds": "1.500", - "name": "Oleksandr Zubkov: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "765036883", - "odds": "2.250", - "name": "FT Result: Trabzonspor", - "handicap": "" - }, - { - "id": "819420355", - "odds": "2.625", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "820021638", - "odds": "1.727", - "name": "Anthony Nwakaeme: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "819420878", - "odds": "1.571", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "819420355", - "odds": "2.625", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "820336294", - "odds": "3.400", - "name": "Landry Dimata: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "765036888", - "odds": "2.800", - "name": "FT Result: Samsunspor", - "handicap": "" - }, - { - "id": "819420878", - "odds": "1.571", - "name": "Both Teams to Score", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:36:39+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "8840198", - "FI": "174588288", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T17:36:01+03:00", - "Odds": [ - { - "id": "820021777", - "odds": "1.500", - "name": "Oleksandr Zubkov: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "765036883", - "odds": "2.250", - "name": "FT Result: Trabzonspor", - "handicap": "" - }, - { - "id": "819420355", - "odds": "2.625", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "820021638", - "odds": "1.727", - "name": "Anthony Nwakaeme: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "819420878", - "odds": "1.571", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "819420355", - "odds": "2.625", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "820336294", - "odds": "3.400", - "name": "Landry Dimata: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "765036888", - "odds": "2.800", - "name": "FT Result: Samsunspor", - "handicap": "" - }, - { - "id": "819420878", - "odds": "1.571", - "name": "Both Teams to Score", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:36:47+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9982903", - "FI": "174588280", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T17:35:22+03:00", - "Odds": [ - { - "id": "820343994", - "odds": "1.300", - "name": "Ciro Immobile: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "819945189", - "odds": "2.200", - "name": "Rafa Silva: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "765036441", - "odds": "1.420", - "name": "FT Result: Besiktas", - "handicap": "" - }, - { - "id": "819945232", - "odds": "2.625", - "name": "Joao Mario: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "819344587", - "odds": "1.727", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "819343676", - "odds": "2.200", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "819348703", - "odds": "1.666", - "name": "Ciro Immobile to Score", - "handicap": "" - }, - { - "id": "765036441", - "odds": "1.420", - "name": "FT Result: Besiktas", - "handicap": "" - }, - { - "id": "819343676", - "odds": "2.200", - "name": "Over 3 Goals", - "handicap": "3" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:36:47+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9982903", - "FI": "174588280", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T17:35:22+03:00", - "Odds": [ - { - "id": "820343994", - "odds": "1.300", - "name": "Ciro Immobile: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "819945189", - "odds": "2.200", - "name": "Rafa Silva: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "765036441", - "odds": "1.420", - "name": "FT Result: Besiktas", - "handicap": "" - }, - { - "id": "819945232", - "odds": "2.625", - "name": "Joao Mario: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "819344587", - "odds": "1.727", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "819343676", - "odds": "2.200", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "819348703", - "odds": "1.666", - "name": "Ciro Immobile to Score", - "handicap": "" - }, - { - "id": "765036441", - "odds": "1.420", - "name": "FT Result: Besiktas", - "handicap": "" - }, - { - "id": "819343676", - "odds": "2.200", - "name": "Over 3 Goals", - "handicap": "3" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:37:38+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977001", - "FI": "174206898", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T17:33:56+03:00", - "Odds": [ - { - "id": "810769529", - "odds": "6.500", - "name": "Robert Lewandowski", - "handicap": "" - }, - { - "id": "810770215", - "odds": "6.500", - "name": "Lamine Yamal", - "handicap": "" - }, - { - "id": "713503841", - "odds": "2.100", - "name": "FT Result: Barcelona", - "handicap": "" - }, - { - "id": "818283162", - "odds": "1.833", - "name": "Robert Lewandowski: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810767797", - "odds": "1.909", - "name": "Robert Lewandowski to Score", - "handicap": "" - }, - { - "id": "713503841", - "odds": "2.100", - "name": "FT Result: Barcelona", - "handicap": "" - }, - { - "id": "818283150", - "odds": "2.000", - "name": "Raphinha: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810774636", - "odds": "1.571", - "name": "Lamine Yamal to Score or Assist", - "handicap": "" - }, - { - "id": "713503825", - "odds": "3.200", - "name": "FT Result: Athletic Bilbao", - "handicap": "" - }, - { - "id": "810774497", - "odds": "2.200", - "name": "Oihan Sancet to Score or Assist", - "handicap": "" - }, - { - "id": "813208230", - "odds": "1.285", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "827038436", - "odds": "1.400", - "name": "Over 3 Corners for Athletic Bilbao", - "handicap": "3" - }, - { - "id": "827038961", - "odds": "1.444", - "name": "Over 3 Corners for Barcelona", - "handicap": "3" - }, - { - "id": "810764064", - "odds": "1.444", - "name": "Both Teams to Score", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:37:46+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9288599", - "FI": "174219011", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T17:31:44+03:00", - "Odds": [ - { - "id": "806795106", - "odds": "13.000", - "name": "Alonso Martinez", - "handicap": "" - }, - { - "id": "806793895", - "odds": "15.000", - "name": "Hugo Cuypers", - "handicap": "" - }, - { - "id": "714860035", - "odds": "1.950", - "name": "FT Result: New York City FC", - "handicap": "" - }, - { - "id": "812414097", - "odds": "1.500", - "name": "Julian Fernandez: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "812414089", - "odds": "1.727", - "name": "Hannes Wolf: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "714860037", - "odds": "3.600", - "name": "FT Result: Chicago Fire", - "handicap": "" - }, - { - "id": "812415639", - "odds": "1.615", - "name": "Brian Gutierrez: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "812415683", - "odds": "1.571", - "name": "Jonathan Bamba: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "812875983", - "odds": "1.500", - "name": "Over 8 Corners", - "handicap": "8.0" - }, - { - "id": "806787411", - "odds": "1.533", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "806786217", - "odds": "2.375", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "714860035", - "odds": "1.950", - "name": "FT Result: New York City FC", - "handicap": "" - }, - { - "id": "806792787", - "odds": "3.100", - "name": "Julian Fernandez to Score", - "handicap": "" - }, - { - "id": "827388794", - "odds": "1.615", - "name": "Most Corners: New York City FC", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:37:54+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9289259", - "FI": "174219015", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T17:35:59+03:00", - "Odds": [ - { - "id": "806822225", - "odds": "15.000", - "name": "Emmanuel Latte Lath", - "handicap": "" - }, - { - "id": "806820954", - "odds": "9.000", - "name": "Ferreira Evander", - "handicap": "" - }, - { - "id": "714860470", - "odds": "2.400", - "name": "FT Result: Atlanta United", - "handicap": "" - }, - { - "id": "812421030", - "odds": "1.571", - "name": "Miguel Almiron: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "812420959", - "odds": "1.444", - "name": "Aleksey Miranchuk: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "714860473", - "odds": "2.700", - "name": "FT Result: FC Cincinnati", - "handicap": "" - }, - { - "id": "812886421", - "odds": "1.363", - "name": "Luca Orellano: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "812886731", - "odds": "1.285", - "name": "Ahoueke Denkey: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "812885974", - "odds": "1.500", - "name": "Over 8 Corners", - "handicap": "8.0" - }, - { - "id": "806814209", - "odds": "1.533", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "806812506", - "odds": "2.500", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "812424314", - "odds": "2.625", - "name": "Luca Orellano: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "812887182", - "odds": "3.000", - "name": "Saba Lobzhanidze: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "806814209", - "odds": "1.533", - "name": "Both Teams to Score", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:38:02+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "8826752", - "FI": "174588282", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T17:28:08+03:00", - "Odds": [ - { - "id": "820350480", - "odds": "1.300", - "name": "Youssef En Nesyri: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "820042485", - "odds": "1.571", - "name": "Conceicao Talisca: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "765036542", - "odds": "1.222", - "name": "FT Result: Fenerbahce", - "handicap": "" - }, - { - "id": "819432775", - "odds": "1.500", - "name": "Youssef En Nesyri to Score", - "handicap": "" - }, - { - "id": "819430970", - "odds": "2.100", - "name": "Fenerbahce \u0026 Yes", - "handicap": "" - }, - { - "id": "819428625", - "odds": "2.250", - "name": "Over 4 Goals", - "handicap": "4" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:38:11+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9929184", - "FI": "174363978", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T17:16:01+03:00", - "Odds": [ - { - "id": "774550908", - "odds": "21.000", - "name": "Antony", - "handicap": "" - }, - { - "id": "774550887", - "odds": "15.000", - "name": "Nicolas Jackson", - "handicap": "" - }, - { - "id": "734595170", - "odds": "1.363", - "name": "Chelsea to Lift the Trophy", - "handicap": "" - }, - { - "id": "734591996", - "odds": "1.833", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "774549605", - "odds": "2.300", - "name": "Cole Palmer to Score", - "handicap": "" - }, - { - "id": "774549558", - "odds": "2.875", - "name": "Nicolas Jackson to Score", - "handicap": "" - }, - { - "id": "734595170", - "odds": "1.363", - "name": "Chelsea to Lift the Trophy", - "handicap": "" - }, - { - "id": "734590525", - "odds": "2.000", - "name": "Over 2 Goals", - "handicap": "2" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:38:15+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9924545", - "FI": "174307725", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T17:33:38+03:00", - "Odds": [ - { - "id": "726811888", - "odds": "13.000", - "name": "Lautaro Martinez", - "handicap": "" - }, - { - "id": "726811982", - "odds": "11.000", - "name": "Khvicha Kvaratskhelia", - "handicap": "" - }, - { - "id": "726816128", - "odds": "1.615", - "name": "PSG to Lift the Trophy", - "handicap": "" - }, - { - "id": "726811208", - "odds": "3.250", - "name": "Bradley Barcola to Score", - "handicap": "" - }, - { - "id": "726806476", - "odds": "1.909", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "726816130", - "odds": "2.300", - "name": "Inter Milan to Lift the Trophy", - "handicap": "" - }, - { - "id": "726811216", - "odds": "3.250", - "name": "Marcus Thuram to Score", - "handicap": "" - }, - { - "id": "726807442", - "odds": "1.750", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "726816349", - "odds": "2.300", - "name": "Lautaro Martinez to Score or Assist", - "handicap": "" - }, - { - "id": "726816313", - "odds": "2.000", - "name": "Khvicha Kvaratskhelia to Score or Assist", - "handicap": "" - }, - { - "id": "726816123", - "odds": "2.250", - "name": "PSG to Win in 90 Mins", - "handicap": "" - }, - { - "id": "726807627", - "odds": "3.400", - "name": "PSG to Score in Both Halves", - "handicap": "" - }, - { - "id": "726811207", - "odds": "4.000", - "name": "Desire Doue to Score", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:45:23+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977002", - "FI": "174206901", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T17:31:58+03:00", - "Odds": [ - { - "id": "810834176", - "odds": "13.000", - "name": "Valencia 2-1", - "handicap": "" - }, - { - "id": "810843474", - "odds": "7.000", - "name": "Hugo Duro", - "handicap": "" - }, - { - "id": "713504056", - "odds": "2.000", - "name": "FT Result: Real Betis", - "handicap": "" - }, - { - "id": "818142082", - "odds": "2.375", - "name": "Juan Hernandez: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818142073", - "odds": "1.444", - "name": "Jesus Rodriguez: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713504058", - "odds": "3.500", - "name": "FT Result: Valencia", - "handicap": "" - }, - { - "id": "818205392", - "odds": "1.300", - "name": "Hugo Duro: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818145409", - "odds": "1.533", - "name": "Luis Rioja: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713504058", - "odds": "3.500", - "name": "FT Result: Valencia", - "handicap": "" - }, - { - "id": "810835604", - "odds": "1.533", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "813193941", - "odds": "1.300", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "818142127", - "odds": "2.100", - "name": "Silva William Carvalho: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818205392", - "odds": "1.300", - "name": "Hugo Duro: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "810835604", - "odds": "1.533", - "name": "Both Teams to Score", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:45:30+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9982904", - "FI": "174588290", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T17:43:57+03:00", - "Odds": [ - { - "id": "820264609", - "odds": "1.400", - "name": "Umut Bozok: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "765037000", - "odds": "1.900", - "name": "FT Result: Eyupspor", - "handicap": "" - }, - { - "id": "819298752", - "odds": "1.666", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "820243702", - "odds": "1.444", - "name": "Emre Mor: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "819298752", - "odds": "1.666", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "819301876", - "odds": "5.500", - "name": "Over 4 Goals", - "handicap": "4" - }, - { - "id": "820264669", - "odds": "3.400", - "name": "Adolfo Gaich: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "765037006", - "odds": "3.700", - "name": "FT Result: Antalyaspor", - "handicap": "" - }, - { - "id": "819298752", - "odds": "1.666", - "name": "Both Teams to Score", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:45:52+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "8826418", - "FI": "174588296", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T17:43:28+03:00", - "Odds": [ - { - "id": "819956646", - "odds": "1.500", - "name": "Alexandru Maxim: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "765037294", - "odds": "2.600", - "name": "FT Result: Gaziantep FK", - "handicap": "" - }, - { - "id": "819311085", - "odds": "2.200", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "819959543", - "odds": "2.375", - "name": "Joia Nuno Da Costa: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "765037306", - "odds": "2.375", - "name": "FT Result: Kasimpasa", - "handicap": "" - }, - { - "id": "819312321", - "odds": "1.444", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "820280304", - "odds": "1.363", - "name": "Aytac Kara: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "819312321", - "odds": "1.444", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "819315041", - "odds": "3.750", - "name": "Over 4 Goals", - "handicap": "4" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:46:00+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977005", - "FI": "174206938", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T17:37:24+03:00", - "Odds": [ - { - "id": "810793474", - "odds": "4.250", - "name": "Javi Puado", - "handicap": "" - }, - { - "id": "810793926", - "odds": "9.000", - "name": "Roberto Fernandez", - "handicap": "" - }, - { - "id": "818165415", - "odds": "2.200", - "name": "Oliver McBurnie: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818165371", - "odds": "3.000", - "name": "Adnan Januzaj: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818223546", - "odds": "1.222", - "name": "Roberto Fernandez: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713505983", - "odds": "1.300", - "name": "FT Result: Espanyol", - "handicap": "" - }, - { - "id": "818161086", - "odds": "1.833", - "name": "Javi Puado: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818161150", - "odds": "2.000", - "name": "Roberto Fernandez: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810785073", - "odds": "2.100", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818165373", - "odds": "2.250", - "name": "Alberto Moleiro: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818223267", - "odds": "1.166", - "name": "Javi Puado: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713505993", - "odds": "9.000", - "name": "FT Result: Las Palmas", - "handicap": "" - }, - { - "id": "813197755", - "odds": "1.300", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "810787654", - "odds": "1.727", - "name": "Over 2 Goals", - "handicap": "2" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:46:00+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977005", - "FI": "174206938", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T17:37:24+03:00", - "Odds": [ - { - "id": "810793474", - "odds": "4.250", - "name": "Javi Puado", - "handicap": "" - }, - { - "id": "810793926", - "odds": "9.000", - "name": "Roberto Fernandez", - "handicap": "" - }, - { - "id": "818165415", - "odds": "2.200", - "name": "Oliver McBurnie: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818165371", - "odds": "3.000", - "name": "Adnan Januzaj: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818223546", - "odds": "1.222", - "name": "Roberto Fernandez: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713505983", - "odds": "1.300", - "name": "FT Result: Espanyol", - "handicap": "" - }, - { - "id": "818161086", - "odds": "1.833", - "name": "Javi Puado: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818161150", - "odds": "2.000", - "name": "Roberto Fernandez: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810785073", - "odds": "2.100", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818165373", - "odds": "2.250", - "name": "Alberto Moleiro: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818223267", - "odds": "1.166", - "name": "Javi Puado: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713505993", - "odds": "9.000", - "name": "FT Result: Las Palmas", - "handicap": "" - }, - { - "id": "813197755", - "odds": "1.300", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "810787654", - "odds": "1.727", - "name": "Over 2 Goals", - "handicap": "2" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:46:09+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977004", - "FI": "174206928", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T17:45:21+03:00", - "Odds": [ - { - "id": "810825615", - "odds": "10.000", - "name": "Daniel Raba", - "handicap": "" - }, - { - "id": "810824112", - "odds": "15.000", - "name": "Juan Latasa", - "handicap": "" - }, - { - "id": "818234653", - "odds": "1.285", - "name": "Yan Diomande: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818174813", - "odds": "1.727", - "name": "Juan Latasa: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "813198253", - "odds": "1.333", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "713505303", - "odds": "1.300", - "name": "FT Result: Leganes", - "handicap": "" - }, - { - "id": "818170790", - "odds": "1.833", - "name": "Daniel Raba: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818170803", - "odds": "1.666", - "name": "Diego Garcia: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810816138", - "odds": "2.050", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818174813", - "odds": "1.727", - "name": "Juan Latasa: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818170892", - "odds": "1.533", - "name": "Seydouba Cisse: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713505316", - "odds": "9.500", - "name": "FT Result: Valladolid", - "handicap": "" - }, - { - "id": "810818057", - "odds": "1.666", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813198253", - "odds": "1.333", - "name": "Over 7 Corners", - "handicap": "7.0" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:46:32+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9757324", - "FI": "172433912", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T17:38:35+03:00", - "Odds": [ - { - "id": "817868646", - "odds": "4.250", - "name": "Ousmane Dembele", - "handicap": "" - }, - { - "id": "467772639", - "odds": "8.000", - "name": "PSG 3-0", - "handicap": "" - }, - { - "id": "467774766", - "odds": "2.050", - "name": "PSG to win by 3+ Goals", - "handicap": "" - }, - { - "id": "818472444", - "odds": "1.800", - "name": "Bradley Barcola: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818472520", - "odds": "1.571", - "name": "Khvicha Kvaratskhelia: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "467775416", - "odds": "2.000", - "name": "PSG to Win Both Halves", - "handicap": "" - }, - { - "id": "818525029", - "odds": "1.333", - "name": "Ousmane Dembele: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818524895", - "odds": "3.250", - "name": "Fabian Ruiz: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "467772622", - "odds": "1.500", - "name": "HT: PSG \u2013 FT: PSG", - "handicap": "" - }, - { - "id": "818979031", - "odds": "1.055", - "name": "Most Shots on Target: PSG", - "handicap": "" - }, - { - "id": "818977802", - "odds": "1.533", - "name": "Most Cards: Reims", - "handicap": "" - }, - { - "id": "467772737", - "odds": "1.833", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "467773042", - "odds": "2.200", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818525029", - "odds": "1.333", - "name": "Ousmane Dembele: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818525451", - "odds": "10.000", - "name": "Theoson Siebatcheu: 2+ Shots on Target", - "handicap": "1.5" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:46:59+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977003", - "FI": "174206914", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T17:43:56+03:00", - "Odds": [ - { - "id": "810782401", - "odds": "6.500", - "name": "Ante Budimir", - "handicap": "" - }, - { - "id": "810782255", - "odds": "17.000", - "name": "Jon Guridi", - "handicap": "" - }, - { - "id": "713504570", - "odds": "2.350", - "name": "FT Result: Osasuna", - "handicap": "" - }, - { - "id": "818200891", - "odds": "1.615", - "name": "Ante Budimir: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810881584", - "odds": "1.833", - "name": "Ante Budimir to Score or Assist", - "handicap": "" - }, - { - "id": "713504562", - "odds": "3.200", - "name": "FT Result: CD Alaves", - "handicap": "" - }, - { - "id": "810777871", - "odds": "1.950", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "813199262", - "odds": "1.333", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "713504562", - "odds": "3.200", - "name": "FT Result: CD Alaves", - "handicap": "" - }, - { - "id": "818200816", - "odds": "1.615", - "name": "Carlos Vicente: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "810881581", - "odds": "3.500", - "name": "Jon Guridi to Score or Assist", - "handicap": "" - }, - { - "id": "810778158", - "odds": "4.000", - "name": "Osasuna to Score in Both Halves", - "handicap": "" - }, - { - "id": "810881558", - "odds": "2.100", - "name": "Bryan Zaragoza to Score or Assist", - "handicap": "" - }, - { - "id": "810881580", - "odds": "3.100", - "name": "Aimar Oroz to Score or Assist", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:47:01+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977007", - "FI": "174206951", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T17:46:06+03:00", - "Odds": [ - { - "id": "810795373", - "odds": "2.875", - "name": "1", - "handicap": "" - }, - { - "id": "810801154", - "odds": "5.500", - "name": "Borja Iglesias", - "handicap": "" - }, - { - "id": "713507435", - "odds": "1.850", - "name": "FT Result: Celta Vigo", - "handicap": "" - }, - { - "id": "818234755", - "odds": "1.909", - "name": "Borja Iglesias: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818234745", - "odds": "1.800", - "name": "Alfonso Gonzalez: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713507421", - "odds": "4.100", - "name": "FT Result: Getafe", - "handicap": "" - }, - { - "id": "810795706", - "odds": "2.100", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813201935", - "odds": "1.533", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "713507435", - "odds": "1.850", - "name": "FT Result: Celta Vigo", - "handicap": "" - }, - { - "id": "810884551", - "odds": "3.100", - "name": "Oscar Mingueza to Score or Assist", - "handicap": "" - }, - { - "id": "818234750", - "odds": "3.500", - "name": "Beltran Fran: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818272688", - "odds": "1.285", - "name": "Moya Borja Mayoral: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818232899", - "odds": "1.533", - "name": "Chrisantus Uche: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818235077", - "odds": "2.625", - "name": "Oscar Mingueza: 1+ Shots on Target", - "handicap": "0.5" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:47:01+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977007", - "FI": "174206951", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T17:46:06+03:00", - "Odds": [ - { - "id": "810795373", - "odds": "2.875", - "name": "1", - "handicap": "" - }, - { - "id": "810801154", - "odds": "5.500", - "name": "Borja Iglesias", - "handicap": "" - }, - { - "id": "713507435", - "odds": "1.850", - "name": "FT Result: Celta Vigo", - "handicap": "" - }, - { - "id": "818234755", - "odds": "1.909", - "name": "Borja Iglesias: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818234745", - "odds": "1.800", - "name": "Alfonso Gonzalez: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713507421", - "odds": "4.100", - "name": "FT Result: Getafe", - "handicap": "" - }, - { - "id": "810795706", - "odds": "2.100", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813201935", - "odds": "1.533", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "713507435", - "odds": "1.850", - "name": "FT Result: Celta Vigo", - "handicap": "" - }, - { - "id": "810884551", - "odds": "3.100", - "name": "Oscar Mingueza to Score or Assist", - "handicap": "" - }, - { - "id": "818234750", - "odds": "3.500", - "name": "Beltran Fran: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818272688", - "odds": "1.285", - "name": "Moya Borja Mayoral: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818232899", - "odds": "1.533", - "name": "Chrisantus Uche: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818235077", - "odds": "2.625", - "name": "Oscar Mingueza: 1+ Shots on Target", - "handicap": "0.5" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:47:12+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977008", - "FI": "174206957", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T17:39:24+03:00", - "Odds": [ - { - "id": "810830891", - "odds": "8.500", - "name": "Isi Palazon", - "handicap": "" - }, - { - "id": "810826957", - "odds": "3.750", - "name": "2", - "handicap": "" - }, - { - "id": "713508001", - "odds": "6.250", - "name": "FT Result: Mallorca", - "handicap": "" - }, - { - "id": "810827203", - "odds": "2.100", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813203878", - "odds": "1.300", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "713507997", - "odds": "1.533", - "name": "FT Result: Rayo Vallecano", - "handicap": "" - }, - { - "id": "810911970", - "odds": "2.200", - "name": "Jorge De Frutos to Score or Assist", - "handicap": "" - }, - { - "id": "818242351", - "odds": "1.909", - "name": "Isi Palazon: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810827485", - "odds": "2.100", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818248799", - "odds": "3.000", - "name": "Sergi Darder: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818300359", - "odds": "1.200", - "name": "Isi Palazon: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "810827053", - "odds": "2.300", - "name": "HT: Rayo Vallecano \u2013 FT: Rayo Vallecano", - "handicap": "" - }, - { - "id": "810827602", - "odds": "2.625", - "name": "Rayo Vallecano to Score in Both Halves", - "handicap": "" - }, - { - "id": "810830483", - "odds": "4.000", - "name": "Adrian Embarba to Score", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:47:12+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977008", - "FI": "174206957", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T17:39:24+03:00", - "Odds": [ - { - "id": "810830891", - "odds": "8.500", - "name": "Isi Palazon", - "handicap": "" - }, - { - "id": "810826957", - "odds": "3.750", - "name": "2", - "handicap": "" - }, - { - "id": "713508001", - "odds": "6.250", - "name": "FT Result: Mallorca", - "handicap": "" - }, - { - "id": "810827203", - "odds": "2.100", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813203878", - "odds": "1.300", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "713507997", - "odds": "1.533", - "name": "FT Result: Rayo Vallecano", - "handicap": "" - }, - { - "id": "810911970", - "odds": "2.200", - "name": "Jorge De Frutos to Score or Assist", - "handicap": "" - }, - { - "id": "818242351", - "odds": "1.909", - "name": "Isi Palazon: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810827485", - "odds": "2.100", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "818248799", - "odds": "3.000", - "name": "Sergi Darder: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818300359", - "odds": "1.200", - "name": "Isi Palazon: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "810827053", - "odds": "2.300", - "name": "HT: Rayo Vallecano \u2013 FT: Rayo Vallecano", - "handicap": "" - }, - { - "id": "810827602", - "odds": "2.625", - "name": "Rayo Vallecano to Score in Both Halves", - "handicap": "" - }, - { - "id": "810830483", - "odds": "4.000", - "name": "Adrian Embarba to Score", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:48:48+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9289262", - "FI": "174219002", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T17:43:31+03:00", - "Odds": [ - { - "id": "806670446", - "odds": "13.000", - "name": "Tani Oluwaseyi", - "handicap": "" - }, - { - "id": "806655131", - "odds": "9.500", - "name": "Minnesota United 2-1", - "handicap": "" - }, - { - "id": "714859773", - "odds": "1.727", - "name": "FT Result: Minnesota United", - "handicap": "" - }, - { - "id": "812331324", - "odds": "1.800", - "name": "Kelvin Yeboah: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "812331345", - "odds": "2.375", - "name": "Tani Oluwaseyi: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "806655293", - "odds": "2.050", - "name": "Draw or Austin FC", - "handicap": "" - }, - { - "id": "812335148", - "odds": "1.571", - "name": "Myrto Uzuni: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "812334820", - "odds": "1.571", - "name": "Brandon Vazquez: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "827362447", - "odds": "1.533", - "name": "Over 4 Corners for Minnesota United", - "handicap": "4" - }, - { - "id": "827362563", - "odds": "2.200", - "name": "Over 4 Corners for Austin FC", - "handicap": "4" - }, - { - "id": "806655241", - "odds": "1.950", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "806655104", - "odds": "2.625", - "name": "HT: Minnesota United \u2013 FT: Minnesota United", - "handicap": "" - }, - { - "id": "827360459", - "odds": "1.615", - "name": "Most Corners: Minnesota United", - "handicap": "" - }, - { - "id": "806963379", - "odds": "1.800", - "name": "Kelvin Yeboah to Score or Assist", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:48:56+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9289261", - "FI": "174219004", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T17:48:47+03:00", - "Odds": [ - { - "id": "806742909", - "odds": "12.000", - "name": "Joao Klauss", - "handicap": "" - }, - { - "id": "806741536", - "odds": "8.500", - "name": "Darren Yapi", - "handicap": "" - }, - { - "id": "714859800", - "odds": "1.850", - "name": "FT Result: Colorado Rapids", - "handicap": "" - }, - { - "id": "812359565", - "odds": "2.100", - "name": "Djordje Mihailovic: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "812508432", - "odds": "3.000", - "name": "Kevin Cabral: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "806733943", - "odds": "1.909", - "name": "Draw or St. Louis City SC", - "handicap": "" - }, - { - "id": "812362704", - "odds": "1.444", - "name": "Cedric Teuchert: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "812362834", - "odds": "1.500", - "name": "Marcel Hartel: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "812508349", - "odds": "3.250", - "name": "Cedric Teuchert: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "812359565", - "odds": "2.100", - "name": "Djordje Mihailovic: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "806737965", - "odds": "1.600", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "714859800", - "odds": "1.850", - "name": "FT Result: Colorado Rapids", - "handicap": "" - }, - { - "id": "827381382", - "odds": "1.250", - "name": "Over 3 Corners for Colorado Rapids", - "handicap": "3" - }, - { - "id": "807040642", - "odds": "2.100", - "name": "Darren Yapi to Score or Assist", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:49:07+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9289260", - "FI": "174219006", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T17:45:40+03:00", - "Odds": [ - { - "id": "806753712", - "odds": "8.500", - "name": "Brian White", - "handicap": "" - }, - { - "id": "806753521", - "odds": "7.000", - "name": "William Agada", - "handicap": "" - }, - { - "id": "714859829", - "odds": "2.500", - "name": "FT Result: Real Salt Lake", - "handicap": "" - }, - { - "id": "812514424", - "odds": "1.333", - "name": "William Agada: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "812377943", - "odds": "1.400", - "name": "Diogo Goncalves: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "714859831", - "odds": "2.600", - "name": "FT Result: Vancouver Whitecaps", - "handicap": "" - }, - { - "id": "812380351", - "odds": "2.100", - "name": "Pedro Vite: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "812380265", - "odds": "2.750", - "name": "Brian White: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "827384577", - "odds": "1.666", - "name": "Over 4 Corners for Real Salt Lake", - "handicap": "4" - }, - { - "id": "827384725", - "odds": "1.909", - "name": "Over 4 Corners for Vancouver Whitecaps", - "handicap": "4" - }, - { - "id": "806747601", - "odds": "1.666", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "812377945", - "odds": "1.833", - "name": "Dominik Marczuk: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "812380239", - "odds": "2.250", - "name": "Ali Ahmed: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "806749654", - "odds": "1.800", - "name": "Over 2 Goals", - "handicap": "2" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:49:17+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977006", - "FI": "174206945", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T17:49:02+03:00", - "Odds": [ - { - "id": "810813006", - "odds": "8.000", - "name": "Cristhian Stuani", - "handicap": "" - }, - { - "id": "810805461", - "odds": "12.000", - "name": "Atletico Madrid 2-0", - "handicap": "" - }, - { - "id": "713506855", - "odds": "1.950", - "name": "FT Result: Atletico Madrid", - "handicap": "" - }, - { - "id": "818257779", - "odds": "2.750", - "name": "Antoine Griezmann: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818257773", - "odds": "2.750", - "name": "Angel Correa: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818257791", - "odds": "1.833", - "name": "Conor Gallagher: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818257811", - "odds": "1.400", - "name": "Samuel Lino: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818306498", - "odds": "1.400", - "name": "Antoine Griezmann: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713506844", - "odds": "3.700", - "name": "FT Result: Girona", - "handicap": "" - }, - { - "id": "810809282", - "odds": "1.615", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813205972", - "odds": "1.363", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "713506844", - "odds": "3.700", - "name": "FT Result: Girona", - "handicap": "" - }, - { - "id": "832763395", - "odds": "1.400", - "name": "Cristhian Stuani: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818254988", - "odds": "1.444", - "name": "Viktor Tsygankov: 1+ Shots on Target", - "handicap": "0.5" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:49:17+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977006", - "FI": "174206945", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T17:49:02+03:00", - "Odds": [ - { - "id": "810813006", - "odds": "8.000", - "name": "Cristhian Stuani", - "handicap": "" - }, - { - "id": "810805461", - "odds": "12.000", - "name": "Atletico Madrid 2-0", - "handicap": "" - }, - { - "id": "713506855", - "odds": "1.950", - "name": "FT Result: Atletico Madrid", - "handicap": "" - }, - { - "id": "818257779", - "odds": "2.750", - "name": "Antoine Griezmann: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818257773", - "odds": "2.750", - "name": "Angel Correa: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "818257791", - "odds": "1.833", - "name": "Conor Gallagher: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818257811", - "odds": "1.400", - "name": "Samuel Lino: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818306498", - "odds": "1.400", - "name": "Antoine Griezmann: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "713506844", - "odds": "3.700", - "name": "FT Result: Girona", - "handicap": "" - }, - { - "id": "810809282", - "odds": "1.615", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "813205972", - "odds": "1.363", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "713506844", - "odds": "3.700", - "name": "FT Result: Girona", - "handicap": "" - }, - { - "id": "832763395", - "odds": "1.400", - "name": "Cristhian Stuani: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "818254988", - "odds": "1.444", - "name": "Viktor Tsygankov: 1+ Shots on Target", - "handicap": "0.5" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:51:04+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "8822034", - "FI": "174588286", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T17:38:28+03:00", - "Odds": [ - { - "id": "820006660", - "odds": "1.571", - "name": "Mehmet Nayir: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "765036764", - "odds": "2.800", - "name": "FT Result: Konyaspor", - "handicap": "" - }, - { - "id": "819391476", - "odds": "3.250", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "820321024", - "odds": "3.000", - "name": "Andraz Sporar: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "765036767", - "odds": "2.250", - "name": "FT Result: Alanyaspor", - "handicap": "" - }, - { - "id": "819400742", - "odds": "1.727", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "820009298", - "odds": "1.666", - "name": "Eui-Jo Hwang: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "819400742", - "odds": "1.727", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "819391476", - "odds": "3.250", - "name": "Over 3 Goals", - "handicap": "3" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:51:04+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "8822034", - "FI": "174588286", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T17:38:28+03:00", - "Odds": [ - { - "id": "820006660", - "odds": "1.571", - "name": "Mehmet Nayir: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "765036764", - "odds": "2.800", - "name": "FT Result: Konyaspor", - "handicap": "" - }, - { - "id": "819391476", - "odds": "3.250", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "820321024", - "odds": "3.000", - "name": "Andraz Sporar: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "765036767", - "odds": "2.250", - "name": "FT Result: Alanyaspor", - "handicap": "" - }, - { - "id": "819400742", - "odds": "1.727", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "820009298", - "odds": "1.666", - "name": "Eui-Jo Hwang: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "819400742", - "odds": "1.727", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "819391476", - "odds": "3.250", - "name": "Over 3 Goals", - "handicap": "3" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:51:11+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "8822035", - "FI": "174588284", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T17:41:06+03:00", - "Odds": [ - { - "id": "820312223", - "odds": "3.400", - "name": "Duckens Nazon: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "819383249", - "odds": "1.800", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "827542181", - "odds": "3.400", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "819997827", - "odds": "1.500", - "name": "Gokdeniz Bayrakdar: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "819383249", - "odds": "1.800", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "827542181", - "odds": "3.400", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "819997755", - "odds": "1.666", - "name": "Alredo Fredy: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "765036662", - "odds": "1.950", - "name": "FT Result: Bodrum FK", - "handicap": "" - }, - { - "id": "819383249", - "odds": "1.800", - "name": "Both Teams to Score", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:51:11+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "8822035", - "FI": "174588284", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T17:41:06+03:00", - "Odds": [ - { - "id": "820312223", - "odds": "3.400", - "name": "Duckens Nazon: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "819383249", - "odds": "1.800", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "827542181", - "odds": "3.400", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "819997827", - "odds": "1.500", - "name": "Gokdeniz Bayrakdar: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "819383249", - "odds": "1.800", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "827542181", - "odds": "3.400", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "819997755", - "odds": "1.666", - "name": "Alredo Fredy: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "765036662", - "odds": "1.950", - "name": "FT Result: Bodrum FK", - "handicap": "" - }, - { - "id": "819383249", - "odds": "1.800", - "name": "Both Teams to Score", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:51:21+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "8840198", - "FI": "174588288", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T17:43:03+03:00", - "Odds": [ - { - "id": "820021777", - "odds": "1.500", - "name": "Oleksandr Zubkov: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "765036883", - "odds": "2.250", - "name": "FT Result: Trabzonspor", - "handicap": "" - }, - { - "id": "819420355", - "odds": "2.625", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "820021638", - "odds": "1.727", - "name": "Anthony Nwakaeme: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "819420878", - "odds": "1.571", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "819420355", - "odds": "2.625", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "820336294", - "odds": "3.400", - "name": "Landry Dimata: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "765036888", - "odds": "2.800", - "name": "FT Result: Samsunspor", - "handicap": "" - }, - { - "id": "819420878", - "odds": "1.571", - "name": "Both Teams to Score", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:51:21+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "8840198", - "FI": "174588288", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T17:43:03+03:00", - "Odds": [ - { - "id": "820021777", - "odds": "1.500", - "name": "Oleksandr Zubkov: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "765036883", - "odds": "2.250", - "name": "FT Result: Trabzonspor", - "handicap": "" - }, - { - "id": "819420355", - "odds": "2.625", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "820021638", - "odds": "1.727", - "name": "Anthony Nwakaeme: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "819420878", - "odds": "1.571", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "819420355", - "odds": "2.625", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "820336294", - "odds": "3.400", - "name": "Landry Dimata: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "765036888", - "odds": "2.800", - "name": "FT Result: Samsunspor", - "handicap": "" - }, - { - "id": "819420878", - "odds": "1.571", - "name": "Both Teams to Score", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:51:26+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9982903", - "FI": "174588280", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T17:50:29+03:00", - "Odds": [ - { - "id": "820343994", - "odds": "1.300", - "name": "Ciro Immobile: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "819945189", - "odds": "2.200", - "name": "Rafa Silva: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "765036441", - "odds": "1.420", - "name": "FT Result: Besiktas", - "handicap": "" - }, - { - "id": "819945232", - "odds": "2.625", - "name": "Joao Mario: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "819344587", - "odds": "1.727", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "819343676", - "odds": "2.200", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "819348703", - "odds": "1.666", - "name": "Ciro Immobile to Score", - "handicap": "" - }, - { - "id": "765036441", - "odds": "1.420", - "name": "FT Result: Besiktas", - "handicap": "" - }, - { - "id": "819343676", - "odds": "2.200", - "name": "Over 3 Goals", - "handicap": "3" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:51:26+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9982903", - "FI": "174588280", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T17:50:29+03:00", - "Odds": [ - { - "id": "820343994", - "odds": "1.300", - "name": "Ciro Immobile: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "819945189", - "odds": "2.200", - "name": "Rafa Silva: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "765036441", - "odds": "1.420", - "name": "FT Result: Besiktas", - "handicap": "" - }, - { - "id": "819945232", - "odds": "2.625", - "name": "Joao Mario: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "819344587", - "odds": "1.727", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "819343676", - "odds": "2.200", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "819348703", - "odds": "1.666", - "name": "Ciro Immobile to Score", - "handicap": "" - }, - { - "id": "765036441", - "odds": "1.420", - "name": "FT Result: Besiktas", - "handicap": "" - }, - { - "id": "819343676", - "odds": "2.200", - "name": "Over 3 Goals", - "handicap": "3" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:52:49+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9977001", - "FI": "174206898", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T17:45:57+03:00", - "Odds": [ - { - "id": "810769529", - "odds": "6.500", - "name": "Robert Lewandowski", - "handicap": "" - }, - { - "id": "810770215", - "odds": "6.500", - "name": "Lamine Yamal", - "handicap": "" - }, - { - "id": "713503841", - "odds": "2.100", - "name": "FT Result: Barcelona", - "handicap": "" - }, - { - "id": "818283162", - "odds": "1.833", - "name": "Robert Lewandowski: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810767797", - "odds": "1.909", - "name": "Robert Lewandowski to Score", - "handicap": "" - }, - { - "id": "713503841", - "odds": "2.100", - "name": "FT Result: Barcelona", - "handicap": "" - }, - { - "id": "818283150", - "odds": "2.000", - "name": "Raphinha: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "810774636", - "odds": "1.571", - "name": "Lamine Yamal to Score or Assist", - "handicap": "" - }, - { - "id": "713503825", - "odds": "3.200", - "name": "FT Result: Athletic Bilbao", - "handicap": "" - }, - { - "id": "810774497", - "odds": "2.200", - "name": "Oihan Sancet to Score or Assist", - "handicap": "" - }, - { - "id": "813208230", - "odds": "1.285", - "name": "Over 7 Corners", - "handicap": "7.0" - }, - { - "id": "827038436", - "odds": "1.400", - "name": "Over 3 Corners for Athletic Bilbao", - "handicap": "3" - }, - { - "id": "827038961", - "odds": "1.444", - "name": "Over 3 Corners for Barcelona", - "handicap": "3" - }, - { - "id": "810764064", - "odds": "1.444", - "name": "Both Teams to Score", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:52:54+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9288599", - "FI": "174219011", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T17:49:29+03:00", - "Odds": [ - { - "id": "806795106", - "odds": "13.000", - "name": "Alonso Martinez", - "handicap": "" - }, - { - "id": "806793895", - "odds": "15.000", - "name": "Hugo Cuypers", - "handicap": "" - }, - { - "id": "714860035", - "odds": "1.950", - "name": "FT Result: New York City FC", - "handicap": "" - }, - { - "id": "812414097", - "odds": "1.500", - "name": "Julian Fernandez: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "812414089", - "odds": "1.727", - "name": "Hannes Wolf: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "714860037", - "odds": "3.600", - "name": "FT Result: Chicago Fire", - "handicap": "" - }, - { - "id": "812415639", - "odds": "1.615", - "name": "Brian Gutierrez: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "812415683", - "odds": "1.571", - "name": "Jonathan Bamba: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "812875983", - "odds": "1.500", - "name": "Over 8 Corners", - "handicap": "8.0" - }, - { - "id": "806787411", - "odds": "1.533", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "806786217", - "odds": "2.375", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "714860035", - "odds": "1.950", - "name": "FT Result: New York City FC", - "handicap": "" - }, - { - "id": "806792787", - "odds": "3.100", - "name": "Julian Fernandez to Score", - "handicap": "" - }, - { - "id": "827388794", - "odds": "1.615", - "name": "Most Corners: New York City FC", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:53:03+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9289259", - "FI": "174219015", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T17:48:15+03:00", - "Odds": [ - { - "id": "806822225", - "odds": "15.000", - "name": "Emmanuel Latte Lath", - "handicap": "" - }, - { - "id": "806820954", - "odds": "9.000", - "name": "Ferreira Evander", - "handicap": "" - }, - { - "id": "714860470", - "odds": "2.400", - "name": "FT Result: Atlanta United", - "handicap": "" - }, - { - "id": "812421030", - "odds": "1.571", - "name": "Miguel Almiron: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "812420959", - "odds": "1.444", - "name": "Aleksey Miranchuk: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "714860473", - "odds": "2.700", - "name": "FT Result: FC Cincinnati", - "handicap": "" - }, - { - "id": "812886421", - "odds": "1.363", - "name": "Luca Orellano: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "812886731", - "odds": "1.285", - "name": "Ahoueke Denkey: 1+ Shots on Target", - "handicap": "0.5" - }, - { - "id": "812885974", - "odds": "1.500", - "name": "Over 8 Corners", - "handicap": "8.0" - }, - { - "id": "806814209", - "odds": "1.533", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "806812506", - "odds": "2.500", - "name": "Over 3 Goals", - "handicap": "3" - }, - { - "id": "812424314", - "odds": "2.625", - "name": "Luca Orellano: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "812887182", - "odds": "3.000", - "name": "Saba Lobzhanidze: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "806814209", - "odds": "1.533", - "name": "Both Teams to Score", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:53:09+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "8826752", - "FI": "174588282", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T17:51:00+03:00", - "Odds": [ - { - "id": "820350480", - "odds": "1.300", - "name": "Youssef En Nesyri: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "820042485", - "odds": "1.571", - "name": "Conceicao Talisca: 2+ Shots on Target", - "handicap": "1.5" - }, - { - "id": "765036542", - "odds": "1.222", - "name": "FT Result: Fenerbahce", - "handicap": "" - }, - { - "id": "819432775", - "odds": "1.500", - "name": "Youssef En Nesyri to Score", - "handicap": "" - }, - { - "id": "819430970", - "odds": "2.100", - "name": "Fenerbahce \u0026 Yes", - "handicap": "" - }, - { - "id": "819428625", - "odds": "2.250", - "name": "Over 4 Goals", - "handicap": "4" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:53:15+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9929184", - "FI": "174363978", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T17:51:58+03:00", - "Odds": [ - { - "id": "774550908", - "odds": "21.000", - "name": "Antony", - "handicap": "" - }, - { - "id": "774550887", - "odds": "15.000", - "name": "Nicolas Jackson", - "handicap": "" - }, - { - "id": "734595170", - "odds": "1.363", - "name": "Chelsea to Lift the Trophy", - "handicap": "" - }, - { - "id": "734591996", - "odds": "1.833", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "774549605", - "odds": "2.300", - "name": "Cole Palmer to Score", - "handicap": "" - }, - { - "id": "774549558", - "odds": "2.875", - "name": "Nicolas Jackson to Score", - "handicap": "" - }, - { - "id": "734595170", - "odds": "1.363", - "name": "Chelsea to Lift the Trophy", - "handicap": "" - }, - { - "id": "734590525", - "odds": "2.000", - "name": "Over 2 Goals", - "handicap": "2" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - -{ - "time": "2025-05-23T17:53:28+03:00", - "error": "ERROR: duplicate key value violates unique constraint \"odds_market_id_name_handicap_key\" (SQLSTATE 23505)", - "record": { - "EventID": "9924545", - "FI": "174307725", - "MarketCategory": "main", - "MarketType": "betboost", - "MarketName": "BetBoost", - "MarketID": "0", - "UpdatedAt": "2025-05-23T17:49:43+03:00", - "Odds": [ - { - "id": "726811888", - "odds": "13.000", - "name": "Lautaro Martinez", - "handicap": "" - }, - { - "id": "726811982", - "odds": "11.000", - "name": "Khvicha Kvaratskhelia", - "handicap": "" - }, - { - "id": "726816128", - "odds": "1.615", - "name": "PSG to Lift the Trophy", - "handicap": "" - }, - { - "id": "726811208", - "odds": "3.250", - "name": "Bradley Barcola to Score", - "handicap": "" - }, - { - "id": "726806476", - "odds": "1.909", - "name": "Over 2 Goals", - "handicap": "2" - }, - { - "id": "726816130", - "odds": "2.300", - "name": "Inter Milan to Lift the Trophy", - "handicap": "" - }, - { - "id": "726811216", - "odds": "3.250", - "name": "Marcus Thuram to Score", - "handicap": "" - }, - { - "id": "726807442", - "odds": "1.750", - "name": "Both Teams to Score", - "handicap": "" - }, - { - "id": "726816349", - "odds": "2.300", - "name": "Lautaro Martinez to Score or Assist", - "handicap": "" - }, - { - "id": "726816313", - "odds": "2.000", - "name": "Khvicha Kvaratskhelia to Score or Assist", - "handicap": "" - }, - { - "id": "726816123", - "odds": "2.250", - "name": "PSG to Win in 90 Mins", - "handicap": "" - }, - { - "id": "726807627", - "odds": "3.400", - "name": "PSG to Score in Both Halves", - "handicap": "" - }, - { - "id": "726811207", - "odds": "4.000", - "name": "Desire Doue to Score", - "handicap": "" - } - ], - "Name": "", - "Handicap": "", - "OddsVal": 0 - } -} - From 1c7ae8232c461d99a3303debb99aa7bba1f0ab0f Mon Sep 17 00:00:00 2001 From: Samuel Tariku Date: Thu, 19 Jun 2025 00:27:39 +0300 Subject: [PATCH 3/4] fix: outcome and league optimization --- .env | 62 ---- cmd/main.go | 2 +- db/migrations/000001_fortune.up.sql | 6 +- db/query/bet.sql | 5 + db/query/leagues.sql | 23 +- gen/db/bet.sql.go | 48 +++ gen/db/leagues.sql.go | 79 ++++- gen/db/models.go | 2 + internal/domain/league.go | 65 ++++ internal/domain/notification.go | 29 +- internal/repository/bet.go | 22 ++ internal/repository/league.go | 32 ++ internal/services/bet/port.go | 1 + internal/services/bet/service.go | 13 + internal/services/event/service.go | 17 +- internal/services/league/port.go | 1 + internal/services/league/service.go | 4 + internal/services/result/service.go | 384 ++++++++++++++++------- internal/web_server/cron.go | 70 ++--- internal/web_server/handlers/leagues.go | 29 ++ internal/web_server/handlers/prematch.go | 60 +++- internal/web_server/routes.go | 3 +- 22 files changed, 707 insertions(+), 250 deletions(-) delete mode 100644 .env diff --git a/.env b/.env deleted file mode 100644 index c0cf9c2..0000000 --- a/.env +++ /dev/null @@ -1,62 +0,0 @@ -# REPORT_EXPORT_PATH="C:\\ProgramData\\FortuneBet\\exported_reports" #prod env -REPORT_EXPORT_PATH ="./exported_reports" #dev env - -RESEND_SENDER_EMAIL=customer@fortunebets.net -RESEND_API_KEY=re_GSTRa9Pp_JkRWBpST9MvaCVULJF8ybGKE - -ENV=development -PORT=8080 -DB_URL=postgresql://root:secret@localhost:5422/gh?sslmode=disable -REFRESH_EXPIRY=2592000 -JWT_KEY=mysecretkey -ACCESS_EXPIRY=600 -LOG_LEVEL=debug -AFRO_SMS_API_KEY=eyJhbGciOiJIUzI1NiJ9.eyJpZGVudGlmaWVyIjoiQlR5ZDFIYmJFYXZ6YUo3dzZGell1RUlieGozSElJeTYiLCJleHAiOjE4OTYwMTM5MTksImlhdCI6MTczODI0NzUxOSwianRpIjoiOWIyNTJkNWQtODcxOC00NGYzLWIzMDQtMGYxOTRhY2NiNTU3In0.XPw8s6mCx1Tp1CfxGmjFRROmdkVnghnqfmsniB-Ze8I -AFRO_SMS_SENDER_NAME=FortuneBets - -AFRO_SMS_RECEIVER_PHONE_NUMBER= -BET365_TOKEN=158046-hesJDP2Cay2M5G -POPOK_CLIENT_ID=1 -POPOK_PLATFORM=111 -POPOK_SECRET_KEY=XwFQ76Y59zBxGryh -# POPOK_BASE_URL=https://api.pokgaming.com/game/launch #Production -# POPOK_BASE_URL=https://games.pokgaming.com/launch #Production -# POPOK_BASE_URL=https://sandbox.pokgaming.com/game/launch #Staging -# POPOK_BASE_URL=https://test-api.pokgaming.com/launch #Staging -POPOK_BASE_URL=https://st.pokgaming.com/ #Staging - -POPOK_CALLBACK_URL=1 - -#Muli-currency Support -FIXER_API_KEY=3b0f1eb30d-63c875026d-sxy9pl -BASE_CURRENCY=ETB -FIXER_BASE_URL=https://api.apilayer.com/fixer - -# Chapa API Configuration -CHAPA_TRANSFER_TYPE="Payout" -CHAPA_PAYMENT_TYPE="API" -CHAPA_BASE_URL="https://api.chapa.co/v1" -CHAPA_ENCRYPTION_KEY=zLdYrjnBCknMvFikmP5jBfen -CHAPA_PUBLIC_KEY=CHAPUBK_TEST-HJR0qhQRPLTkauNy9Q8UrmskPTOR31aC -CHAPA_SECRET_KEY=CHASECK_TEST-q3jypwmFK6XJGYOK3aX4z9Kogd9KaHhF -CHAPA_CALLBACK_URL="https://fortunebet.com/api/v1/payments/callback" # Optional -CHAPA_RETURN_URL="https://fortunebet.com/api/v1/payment-success" # Optional - -#Alea Play -ALEA_ENABLED=true -ALEA_BASE_URL=https://api.aleaplay.com -ALEA_OPERATOR_ID=operator_id -ALEA_SECRET_KEY=hmac_secret -ALEA_GAME_LIST_URL=https://api.aleaplay.com/games/list # Optional -ALEA_DEFAULT_CURRENCY=USD # Optional (default: USD) -ALEA_SESSION_TIMEOUT=24 # Optional (hours, default: 24) -ALEA_GAME_ID_AVIATOR=aviator_prod - - -# Veli Games -VELI_ENABLED=true -VELI_API_URL=https://api.velitech.games -VELI_OPERATOR_KEY=Veli123 -VELI_SECRET_KEY=hmac_secret -VELI_GAME_ID_AVIATOR=veli_aviator_v1 -VELI_DEFAULT_CURRENCY=USD diff --git a/cmd/main.go b/cmd/main.go index 67eef77..4d536fc 100644 --- a/cmd/main.go +++ b/cmd/main.go @@ -122,7 +122,7 @@ func main() { companySvc := company.NewService(store) leagueSvc := league.New(store) betSvc := bet.NewService(store, eventSvc, *oddsSvc, *walletSvc, *branchSvc, logger, domain.MongoDBLogger) - resultSvc := result.NewService(store, cfg, logger, *betSvc, *oddsSvc, eventSvc, leagueSvc) + resultSvc := result.NewService(store, cfg, logger, *betSvc, *oddsSvc, eventSvc, leagueSvc, notificationSvc) referalRepo := repository.NewReferralRepository(store) vitualGameRepo := repository.NewVirtualGameRepository(store) recommendationRepo := repository.NewRecommendationRepository(store) diff --git a/db/migrations/000001_fortune.up.sql b/db/migrations/000001_fortune.up.sql index 6f44178..24ee6ae 100644 --- a/db/migrations/000001_fortune.up.sql +++ b/db/migrations/000001_fortune.up.sql @@ -250,10 +250,12 @@ CREATE TABLE companies ( CREATE TABLE leagues ( id BIGINT PRIMARY KEY, name TEXT NOT NULL, + img TEXT, country_code TEXT, bet365_id INT, sport_id INT NOT NULL, - is_active BOOLEAN DEFAULT true + is_active BOOLEAN DEFAULT true, + is_featured BOOLEAN DEFAULT false ); CREATE TABLE teams ( id TEXT PRIMARY KEY, @@ -309,7 +311,7 @@ ALTER TABLE bets ADD CONSTRAINT fk_bets_users FOREIGN KEY (user_id) REFERENCES users(id), ADD CONSTRAINT fk_bets_branches FOREIGN KEY (branch_id) REFERENCES branches(id); ALTER TABLE wallets - ADD CONSTRAINT fk_wallets_users FOREIGN KEY (user_id) REFERENCES users(id), +ADD CONSTRAINT fk_wallets_users FOREIGN KEY (user_id) REFERENCES users(id), ADD COLUMN currency VARCHAR(3) NOT NULL DEFAULT 'ETB'; ALTER TABLE customer_wallets ADD CONSTRAINT fk_customer_wallets_customers FOREIGN KEY (customer_id) REFERENCES users(id), diff --git a/db/query/bet.sql b/db/query/bet.sql index 8e9fda8..00004db 100644 --- a/db/query/bet.sql +++ b/db/query/bet.sql @@ -103,6 +103,11 @@ UPDATE bet_outcomes SET status = $1 WHERE id = $2 RETURNING *; +-- name: UpdateBetOutcomeStatusForEvent :many +UPDATE bet_outcomes +SEt status = $1 +WHERE event_id = $2 +RETURNING *; -- name: UpdateStatus :exec UPDATE bets SET status = $1, diff --git a/db/query/leagues.sql b/db/query/leagues.sql index e8ee241..7aa7623 100644 --- a/db/query/leagues.sql +++ b/db/query/leagues.sql @@ -5,14 +5,16 @@ INSERT INTO leagues ( country_code, bet365_id, sport_id, - is_active + is_active, + is_featured ) -VALUES ($1, $2, $3, $4, $5, $6) ON CONFLICT (id) DO +VALUES ($1, $2, $3, $4, $5, $6, $7) ON CONFLICT (id) DO UPDATE SET name = EXCLUDED.name, country_code = EXCLUDED.country_code, bet365_id = EXCLUDED.bet365_id, is_active = EXCLUDED.is_active, + is_featured = EXCLUDED.is_featured, sport_id = EXCLUDED.sport_id; -- name: GetAllLeagues :many SELECT id, @@ -20,6 +22,7 @@ SELECT id, country_code, bet365_id, is_active, + is_featured, sport_id FROM leagues WHERE ( @@ -34,7 +37,21 @@ WHERE ( is_active = sqlc.narg('is_active') OR sqlc.narg('is_active') IS NULL ) + AND ( + is_featured = sqlc.narg('is_featured') + OR sqlc.narg('is_featured') IS NULL + ) LIMIT sqlc.narg('limit') OFFSET sqlc.narg('offset'); +-- name: GetFeaturedLeagues :many +SELECT id, + name, + country_code, + bet365_id, + is_active, + is_featured, + sport_id +FROM leagues +WHERE is_featured = true; -- name: CheckLeagueSupport :one SELECT EXISTS( SELECT 1 @@ -48,6 +65,7 @@ SET name = COALESCE(sqlc.narg('name'), name), country_code = COALESCE(sqlc.narg('country_code'), country_code), bet365_id = COALESCE(sqlc.narg('bet365_id'), bet365_id), is_active = COALESCE(sqlc.narg('is_active'), is_active), + is_featured = COALESCE(sqlc.narg('is_featured'), is_featured), sport_id = COALESCE(sqlc.narg('sport_id'), sport_id) WHERE id = $1; -- name: UpdateLeagueByBet365ID :exec @@ -56,6 +74,7 @@ SET name = COALESCE(sqlc.narg('name'), name), id = COALESCE(sqlc.narg('id'), id), country_code = COALESCE(sqlc.narg('country_code'), country_code), is_active = COALESCE(sqlc.narg('is_active'), is_active), + is_featured = COALESCE(sqlc.narg('is_featured'), is_featured), sport_id = COALESCE(sqlc.narg('sport_id'), sport_id) WHERE bet365_id = $1; -- name: SetLeagueActive :exec diff --git a/gen/db/bet.sql.go b/gen/db/bet.sql.go index bf6c3de..848a779 100644 --- a/gen/db/bet.sql.go +++ b/gen/db/bet.sql.go @@ -468,6 +468,54 @@ func (q *Queries) UpdateBetOutcomeStatus(ctx context.Context, arg UpdateBetOutco return i, err } +const UpdateBetOutcomeStatusForEvent = `-- name: UpdateBetOutcomeStatusForEvent :many +UPDATE bet_outcomes +SEt status = $1 +WHERE event_id = $2 +RETURNING id, bet_id, sport_id, event_id, odd_id, home_team_name, away_team_name, market_id, market_name, odd, odd_name, odd_header, odd_handicap, status, expires +` + +type UpdateBetOutcomeStatusForEventParams struct { + Status int32 `json:"status"` + EventID int64 `json:"event_id"` +} + +func (q *Queries) UpdateBetOutcomeStatusForEvent(ctx context.Context, arg UpdateBetOutcomeStatusForEventParams) ([]BetOutcome, error) { + rows, err := q.db.Query(ctx, UpdateBetOutcomeStatusForEvent, arg.Status, arg.EventID) + if err != nil { + return nil, err + } + defer rows.Close() + var items []BetOutcome + for rows.Next() { + var i BetOutcome + if err := rows.Scan( + &i.ID, + &i.BetID, + &i.SportID, + &i.EventID, + &i.OddID, + &i.HomeTeamName, + &i.AwayTeamName, + &i.MarketID, + &i.MarketName, + &i.Odd, + &i.OddName, + &i.OddHeader, + &i.OddHandicap, + &i.Status, + &i.Expires, + ); err != nil { + return nil, err + } + items = append(items, i) + } + if err := rows.Err(); err != nil { + return nil, err + } + return items, nil +} + const UpdateCashOut = `-- name: UpdateCashOut :exec UPDATE bets SET cashed_out = $2, diff --git a/gen/db/leagues.sql.go b/gen/db/leagues.sql.go index 8762f82..4bae480 100644 --- a/gen/db/leagues.sql.go +++ b/gen/db/leagues.sql.go @@ -33,6 +33,7 @@ SELECT id, country_code, bet365_id, is_active, + is_featured, sport_id FROM leagues WHERE ( @@ -47,13 +48,18 @@ WHERE ( is_active = $3 OR $3 IS NULL ) -LIMIT $5 OFFSET $4 + AND ( + is_featured = $4 + OR $4 IS NULL + ) +LIMIT $6 OFFSET $5 ` type GetAllLeaguesParams struct { CountryCode pgtype.Text `json:"country_code"` SportID pgtype.Int4 `json:"sport_id"` IsActive pgtype.Bool `json:"is_active"` + IsFeatured pgtype.Bool `json:"is_featured"` Offset pgtype.Int4 `json:"offset"` Limit pgtype.Int4 `json:"limit"` } @@ -64,6 +70,7 @@ type GetAllLeaguesRow struct { CountryCode pgtype.Text `json:"country_code"` Bet365ID pgtype.Int4 `json:"bet365_id"` IsActive pgtype.Bool `json:"is_active"` + IsFeatured pgtype.Bool `json:"is_featured"` SportID int32 `json:"sport_id"` } @@ -72,6 +79,7 @@ func (q *Queries) GetAllLeagues(ctx context.Context, arg GetAllLeaguesParams) ([ arg.CountryCode, arg.SportID, arg.IsActive, + arg.IsFeatured, arg.Offset, arg.Limit, ) @@ -88,6 +96,57 @@ func (q *Queries) GetAllLeagues(ctx context.Context, arg GetAllLeaguesParams) ([ &i.CountryCode, &i.Bet365ID, &i.IsActive, + &i.IsFeatured, + &i.SportID, + ); err != nil { + return nil, err + } + items = append(items, i) + } + if err := rows.Err(); err != nil { + return nil, err + } + return items, nil +} + +const GetFeaturedLeagues = `-- name: GetFeaturedLeagues :many +SELECT id, + name, + country_code, + bet365_id, + is_active, + is_featured, + sport_id +FROM leagues +WHERE is_featured = true +` + +type GetFeaturedLeaguesRow struct { + ID int64 `json:"id"` + Name string `json:"name"` + CountryCode pgtype.Text `json:"country_code"` + Bet365ID pgtype.Int4 `json:"bet365_id"` + IsActive pgtype.Bool `json:"is_active"` + IsFeatured pgtype.Bool `json:"is_featured"` + SportID int32 `json:"sport_id"` +} + +func (q *Queries) GetFeaturedLeagues(ctx context.Context) ([]GetFeaturedLeaguesRow, error) { + rows, err := q.db.Query(ctx, GetFeaturedLeagues) + if err != nil { + return nil, err + } + defer rows.Close() + var items []GetFeaturedLeaguesRow + for rows.Next() { + var i GetFeaturedLeaguesRow + if err := rows.Scan( + &i.ID, + &i.Name, + &i.CountryCode, + &i.Bet365ID, + &i.IsActive, + &i.IsFeatured, &i.SportID, ); err != nil { return nil, err @@ -107,14 +166,16 @@ INSERT INTO leagues ( country_code, bet365_id, sport_id, - is_active + is_active, + is_featured ) -VALUES ($1, $2, $3, $4, $5, $6) ON CONFLICT (id) DO +VALUES ($1, $2, $3, $4, $5, $6, $7) ON CONFLICT (id) DO UPDATE SET name = EXCLUDED.name, country_code = EXCLUDED.country_code, bet365_id = EXCLUDED.bet365_id, is_active = EXCLUDED.is_active, + is_featured = EXCLUDED.is_featured, sport_id = EXCLUDED.sport_id ` @@ -125,6 +186,7 @@ type InsertLeagueParams struct { Bet365ID pgtype.Int4 `json:"bet365_id"` SportID int32 `json:"sport_id"` IsActive pgtype.Bool `json:"is_active"` + IsFeatured pgtype.Bool `json:"is_featured"` } func (q *Queries) InsertLeague(ctx context.Context, arg InsertLeagueParams) error { @@ -135,6 +197,7 @@ func (q *Queries) InsertLeague(ctx context.Context, arg InsertLeagueParams) erro arg.Bet365ID, arg.SportID, arg.IsActive, + arg.IsFeatured, ) return err } @@ -161,7 +224,8 @@ SET name = COALESCE($2, name), country_code = COALESCE($3, country_code), bet365_id = COALESCE($4, bet365_id), is_active = COALESCE($5, is_active), - sport_id = COALESCE($6, sport_id) + is_featured = COALESCE($6, is_featured), + sport_id = COALESCE($7, sport_id) WHERE id = $1 ` @@ -171,6 +235,7 @@ type UpdateLeagueParams struct { CountryCode pgtype.Text `json:"country_code"` Bet365ID pgtype.Int4 `json:"bet365_id"` IsActive pgtype.Bool `json:"is_active"` + IsFeatured pgtype.Bool `json:"is_featured"` SportID pgtype.Int4 `json:"sport_id"` } @@ -181,6 +246,7 @@ func (q *Queries) UpdateLeague(ctx context.Context, arg UpdateLeagueParams) erro arg.CountryCode, arg.Bet365ID, arg.IsActive, + arg.IsFeatured, arg.SportID, ) return err @@ -192,7 +258,8 @@ SET name = COALESCE($2, name), id = COALESCE($3, id), country_code = COALESCE($4, country_code), is_active = COALESCE($5, is_active), - sport_id = COALESCE($6, sport_id) + is_featured = COALESCE($6, is_featured), + sport_id = COALESCE($7, sport_id) WHERE bet365_id = $1 ` @@ -202,6 +269,7 @@ type UpdateLeagueByBet365IDParams struct { ID pgtype.Int8 `json:"id"` CountryCode pgtype.Text `json:"country_code"` IsActive pgtype.Bool `json:"is_active"` + IsFeatured pgtype.Bool `json:"is_featured"` SportID pgtype.Int4 `json:"sport_id"` } @@ -212,6 +280,7 @@ func (q *Queries) UpdateLeagueByBet365ID(ctx context.Context, arg UpdateLeagueBy arg.ID, arg.CountryCode, arg.IsActive, + arg.IsFeatured, arg.SportID, ) return err diff --git a/gen/db/models.go b/gen/db/models.go index f86a6e4..d5db539 100644 --- a/gen/db/models.go +++ b/gen/db/models.go @@ -218,10 +218,12 @@ type ExchangeRate struct { type League struct { ID int64 `json:"id"` Name string `json:"name"` + Img pgtype.Text `json:"img"` CountryCode pgtype.Text `json:"country_code"` Bet365ID pgtype.Int4 `json:"bet365_id"` SportID int32 `json:"sport_id"` IsActive pgtype.Bool `json:"is_active"` + IsFeatured pgtype.Bool `json:"is_featured"` } type Notification struct { diff --git a/internal/domain/league.go b/internal/domain/league.go index 67787a5..ffaceb4 100644 --- a/internal/domain/league.go +++ b/internal/domain/league.go @@ -7,6 +7,7 @@ type League struct { Bet365ID int32 `json:"bet365_id" example:"1121"` IsActive bool `json:"is_active" example:"false"` SportID int32 `json:"sport_id" example:"1"` + IsFeatured bool `json:"is_featured" example:"false"` } type UpdateLeague struct { @@ -15,6 +16,7 @@ type UpdateLeague struct { CountryCode ValidString `json:"cc" example:"uk"` Bet365ID ValidInt32 `json:"bet365_id" example:"1121"` IsActive ValidBool `json:"is_active" example:"false"` + IsFeatured ValidBool `json:"is_featured" example:"false"` SportID ValidInt32 `json:"sport_id" example:"1"` } @@ -22,6 +24,69 @@ type LeagueFilter struct { CountryCode ValidString SportID ValidInt32 IsActive ValidBool + IsFeatured ValidBool Limit ValidInt64 Offset ValidInt64 } + + +// These leagues are automatically featured when the league is created +var FeaturedLeagues = []int64{ + // Football + 10044469, // Ethiopian Premier League + 10041282, //Premier League + 10083364, //La Liga + 10041095, //German Bundesliga + 10041100, //Ligue 1 + 10041809, //UEFA Champions League + 10041957, //UEFA Europa League + 10079560, //UEFA Conference League + 10050282, //UEFA Nations League + 10044685, //FIFA Club World Cup + 10050346, //UEFA Super Cup + 10081269, //CONCACAF Champions Cup + 10070189, //CONCACAF Gold Cup + + 10067913, //Europe - World Cup Qualifying + 10040162, //Asia - World Cup Qualifying + 10067624, //South America - World Cup Qualifying + 10073057, //North & Central America - World Cup Qualifying + + 10037075, //International Match + 10077480, //Women’s International + 10037109, //Europe Friendlies + 10068837, //Euro U21 + + 10041315, //Italian Serie A + 10036538, //Spain Segunda + 10047168, // US MLS + + 10043156, //England FA Cup + 10042103, //France Cup + 10041088, //Premier League 2 + 10084250, //Turkiye Super League + 10041187, //Kenya Super League + 10041391, //Netherlands Eredivisie + + // Basketball + 10041830, //NBA + 10049984, //WNBA + 10037165, //German Bundesliga + 10036608, //Italian Lega 1 + 10040795, //EuroLeague + 10041534, //Basketball Africa League + + // Ice Hockey + 10037477, //NHL + 10037447, //AHL + 10069385, //IIHF World Championship + + // AMERICAN FOOTBALL + 10037219, //NFL + + // BASEBALL + 10037485, // MLB + + // VOLLEYBALL + 10069666, //FIVB Nations League +} diff --git a/internal/domain/notification.go b/internal/domain/notification.go index 5905b31..9351d68 100644 --- a/internal/domain/notification.go +++ b/internal/domain/notification.go @@ -14,21 +14,22 @@ type NotificationDeliveryStatus string type DeliveryChannel string const ( - NotificationTypeCashOutSuccess NotificationType = "cash_out_success" - NotificationTypeDepositSuccess NotificationType = "deposit_success" - NotificationTypeWithdrawSuccess NotificationType = "withdraw_success" - NotificationTypeBetPlaced NotificationType = "bet_placed" - NotificationTypeDailyReport NotificationType = "daily_report" - NotificationTypeHighLossOnBet NotificationType = "high_loss_on_bet" - NotificationTypeBetOverload NotificationType = "bet_overload" - NotificationTypeSignUpWelcome NotificationType = "signup_welcome" - NotificationTypeOTPSent NotificationType = "otp_sent" - NOTIFICATION_TYPE_WALLET NotificationType = "wallet_threshold" - NOTIFICATION_TYPE_TRANSFER_FAIL NotificationType = "transfer_failed" - NOTIFICATION_TYPE_TRANSFER_SUCCESS NotificationType = "transfer_success" - NOTIFICATION_TYPE_ADMIN_ALERT NotificationType = "admin_alert" - NOTIFICATION_RECEIVER_ADMIN NotificationRecieverSide = "admin" + NotificationTypeCashOutSuccess NotificationType = "cash_out_success" + NotificationTypeDepositSuccess NotificationType = "deposit_success" + NotificationTypeWithdrawSuccess NotificationType = "withdraw_success" + NotificationTypeBetPlaced NotificationType = "bet_placed" + NotificationTypeDailyReport NotificationType = "daily_report" + NotificationTypeHighLossOnBet NotificationType = "high_loss_on_bet" + NotificationTypeBetOverload NotificationType = "bet_overload" + NotificationTypeSignUpWelcome NotificationType = "signup_welcome" + NotificationTypeOTPSent NotificationType = "otp_sent" + NOTIFICATION_TYPE_WALLET NotificationType = "wallet_threshold" + NOTIFICATION_TYPE_TRANSFER_FAIL NotificationType = "transfer_failed" + NOTIFICATION_TYPE_TRANSFER_SUCCESS NotificationType = "transfer_success" + NOTIFICATION_TYPE_ADMIN_ALERT NotificationType = "admin_alert" + NOTIFICATION_TYPE_BET_RESULT NotificationType = "bet_result" + NOTIFICATION_RECEIVER_ADMIN NotificationRecieverSide = "admin" NotificationRecieverSideAdmin NotificationRecieverSide = "admin" NotificationRecieverSideCustomer NotificationRecieverSide = "customer" NotificationRecieverSideCashier NotificationRecieverSide = "cashier" diff --git a/internal/repository/bet.go b/internal/repository/bet.go index 847b212..362246c 100644 --- a/internal/repository/bet.go +++ b/internal/repository/bet.go @@ -364,6 +364,28 @@ func (s *Store) UpdateBetOutcomeStatus(ctx context.Context, id int64, status dom return res, nil } +func (s *Store) UpdateBetOutcomeStatusForEvent(ctx context.Context, eventID int64, status domain.OutcomeStatus) ([]domain.BetOutcome, error) { + outcomes, err := s.queries.UpdateBetOutcomeStatusForEvent(ctx, dbgen.UpdateBetOutcomeStatusForEventParams{ + EventID: eventID, + Status: int32(status), + }) + + if err != nil { + domain.MongoDBLogger.Error("failed to update bet outcome status for event", + zap.Int64("eventID", eventID), + zap.Int32("status", int32(status)), + zap.Error(err), + ) + return nil, err + } + + var result []domain.BetOutcome = make([]domain.BetOutcome, 0, len(outcomes)) + for _, outcome := range outcomes { + result = append(result, convertDBBetOutcomes(outcome)) + } + return result, nil +} + func (s *Store) DeleteBet(ctx context.Context, id int64) error { return s.queries.DeleteBet(ctx, id) } diff --git a/internal/repository/league.go b/internal/repository/league.go index 67a1ba0..4cb9bb6 100644 --- a/internal/repository/league.go +++ b/internal/repository/league.go @@ -15,6 +15,7 @@ func (s *Store) SaveLeague(ctx context.Context, l domain.League) error { CountryCode: pgtype.Text{String: l.CountryCode, Valid: true}, Bet365ID: pgtype.Int4{Int32: l.Bet365ID, Valid: true}, IsActive: pgtype.Bool{Bool: l.IsActive, Valid: true}, + IsFeatured: pgtype.Bool{Bool: l.IsFeatured, Valid: true}, SportID: l.SportID, }) } @@ -33,6 +34,10 @@ func (s *Store) GetAllLeagues(ctx context.Context, filter domain.LeagueFilter) ( Bool: filter.IsActive.Value, Valid: filter.IsActive.Valid, }, + IsFeatured: pgtype.Bool{ + Bool: filter.IsFeatured.Value, + Valid: filter.IsFeatured.Valid, + }, Limit: pgtype.Int4{ Int32: int32(filter.Limit.Value), Valid: filter.Limit.Valid, @@ -54,12 +59,35 @@ func (s *Store) GetAllLeagues(ctx context.Context, filter domain.LeagueFilter) ( CountryCode: league.CountryCode.String, Bet365ID: league.Bet365ID.Int32, IsActive: league.IsActive.Bool, + IsFeatured: league.IsFeatured.Bool, SportID: league.SportID, } } return leagues, nil } +func (s *Store) GetFeaturedLeagues(ctx context.Context) ([]domain.League, error) { + l, err := s.queries.GetFeaturedLeagues(ctx) + + if err != nil { + return nil, err + } + + leagues := make([]domain.League, len(l)) + for i, league := range l { + leagues[i] = domain.League{ + ID: league.ID, + Name: league.Name, + CountryCode: league.CountryCode.String, + Bet365ID: league.Bet365ID.Int32, + IsActive: league.IsActive.Bool, + + SportID: league.SportID, + } + } + return leagues, nil +} + func (s *Store) CheckLeagueSupport(ctx context.Context, leagueID int64) (bool, error) { return s.queries.CheckLeagueSupport(ctx, leagueID) } @@ -93,6 +121,10 @@ func (s *Store) UpdateLeague(ctx context.Context, league domain.UpdateLeague) er Bool: league.IsActive.Value, Valid: league.IsActive.Valid, }, + IsFeatured: pgtype.Bool{ + Bool: league.IsFeatured.Value, + Valid: league.IsActive.Valid, + }, SportID: pgtype.Int4{ Int32: league.SportID.Value, Valid: league.SportID.Valid, diff --git a/internal/services/bet/port.go b/internal/services/bet/port.go index 753ec3c..805b20b 100644 --- a/internal/services/bet/port.go +++ b/internal/services/bet/port.go @@ -21,6 +21,7 @@ type BetStore interface { UpdateCashOut(ctx context.Context, id int64, cashedOut bool) error UpdateStatus(ctx context.Context, id int64, status domain.OutcomeStatus) error UpdateBetOutcomeStatus(ctx context.Context, id int64, status domain.OutcomeStatus) (domain.BetOutcome, error) + UpdateBetOutcomeStatusForEvent(ctx context.Context, eventID int64, status domain.OutcomeStatus) ([]domain.BetOutcome, error) DeleteBet(ctx context.Context, id int64) error GetBetSummary(ctx context.Context, filter domain.ReportFilter) ( diff --git a/internal/services/bet/service.go b/internal/services/bet/service.go index 0d311eb..17816db 100644 --- a/internal/services/bet/service.go +++ b/internal/services/bet/service.go @@ -819,6 +819,19 @@ func (s *Service) UpdateBetOutcomeStatus(ctx context.Context, id int64, status d } +func (s *Service) UpdateBetOutcomeStatusForEvent(ctx context.Context, eventID int64, status domain.OutcomeStatus) ([]domain.BetOutcome, error) { + outcomes, err := s.betStore.UpdateBetOutcomeStatusForEvent(ctx, eventID, status) + if err != nil { + s.mongoLogger.Error("failed to update bet outcome status", + zap.Int64("eventID", eventID), + zap.Error(err), + ) + return nil, err + } + + return outcomes, nil +} + func (s *Service) DeleteBet(ctx context.Context, id int64) error { return s.betStore.DeleteBet(ctx, id) } diff --git a/internal/services/event/service.go b/internal/services/event/service.go index 0ad44a5..7833df7 100644 --- a/internal/services/event/service.go +++ b/internal/services/event/service.go @@ -7,6 +7,7 @@ import ( "io" "log" "net/http" + "slices" "strconv" "sync" "time" @@ -202,8 +203,10 @@ func (s *service) FetchUpcomingEvents(ctx context.Context) error { } func (s *service) fetchUpcomingEventsFromProvider(ctx context.Context, url, source string) { - sportIDs := []int{1, 18, 17, 3, 83, 15, 12, 19, 8, 16, 91} + // sportIDs := []int{1, 18, 17, 3, 83, 15, 12, 19, 8, 16, 91} + sportIDs := []int{1} // TODO: Add the league skipping again when we have dynamic leagues + // b, err := os.OpenFile("logs/skipped_leagues.log", os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644) // if err != nil { // log.Printf("❌ Failed to open leagues file %v", err) @@ -212,7 +215,7 @@ func (s *service) fetchUpcomingEventsFromProvider(ctx context.Context, url, sour for sportIndex, sportID := range sportIDs { var totalPages int = 1 var page int = 0 - var limit int = 200 + var limit int = 1 var count int = 0 log.Printf("Sport ID %d", sportID) for page <= totalPages { @@ -252,11 +255,13 @@ func (s *service) fetchUpcomingEventsFromProvider(ctx context.Context, url, sour // doesn't make sense to save and check back to back, but for now it can be here // no this its fine to keep it here // but change the league id to bet365 id later + //Automatically feature the league if its in the list err = s.store.SaveLeague(ctx, domain.League{ - ID: leagueID, - Name: ev.League.Name, - IsActive: true, - SportID: convertInt32(ev.SportID), + ID: leagueID, + Name: ev.League.Name, + IsActive: true, + IsFeatured: slices.Contains(domain.FeaturedLeagues, leagueID), + SportID: convertInt32(ev.SportID), }) if err != nil { diff --git a/internal/services/league/port.go b/internal/services/league/port.go index cfcf8b5..1f49632 100644 --- a/internal/services/league/port.go +++ b/internal/services/league/port.go @@ -9,6 +9,7 @@ import ( type Service interface { SaveLeague(ctx context.Context, l domain.League) error GetAllLeagues(ctx context.Context, filter domain.LeagueFilter) ([]domain.League, error) + GetFeaturedLeagues(ctx context.Context) ([]domain.League, error) SetLeagueActive(ctx context.Context, leagueId int64, isActive bool) error UpdateLeague(ctx context.Context, league domain.UpdateLeague) error } diff --git a/internal/services/league/service.go b/internal/services/league/service.go index e23bf22..275dfb5 100644 --- a/internal/services/league/service.go +++ b/internal/services/league/service.go @@ -25,6 +25,10 @@ func (s *service) GetAllLeagues(ctx context.Context, filter domain.LeagueFilter) return s.store.GetAllLeagues(ctx, filter) } +func (s *service) GetFeaturedLeagues(ctx context.Context) ([]domain.League, error) { + return s.store.GetFeaturedLeagues(ctx) +} + func (s *service) SetLeagueActive(ctx context.Context, leagueId int64, isActive bool) error { return s.store.SetLeagueActive(ctx, leagueId, isActive) } diff --git a/internal/services/result/service.go b/internal/services/result/service.go index 189a0e3..59bd2a2 100644 --- a/internal/services/result/service.go +++ b/internal/services/result/service.go @@ -4,7 +4,6 @@ import ( "context" "encoding/json" "fmt" - "log" "log/slog" "net/http" "strconv" @@ -17,30 +16,33 @@ import ( "github.com/SamuelTariku/FortuneBet-Backend/internal/services/bet" "github.com/SamuelTariku/FortuneBet-Backend/internal/services/event" "github.com/SamuelTariku/FortuneBet-Backend/internal/services/league" + notificationservice "github.com/SamuelTariku/FortuneBet-Backend/internal/services/notfication" "github.com/SamuelTariku/FortuneBet-Backend/internal/services/odds" ) type Service struct { - repo *repository.Store - config *config.Config - logger *slog.Logger - client *http.Client - betSvc bet.Service - oddSvc odds.ServiceImpl - eventSvc event.Service - leagueSvc league.Service + repo *repository.Store + config *config.Config + logger *slog.Logger + client *http.Client + betSvc bet.Service + oddSvc odds.ServiceImpl + eventSvc event.Service + leagueSvc league.Service + notificationSvc *notificationservice.Service } -func NewService(repo *repository.Store, cfg *config.Config, logger *slog.Logger, betSvc bet.Service, oddSvc odds.ServiceImpl, eventSvc event.Service, leagueSvc league.Service) *Service { +func NewService(repo *repository.Store, cfg *config.Config, logger *slog.Logger, betSvc bet.Service, oddSvc odds.ServiceImpl, eventSvc event.Service, leagueSvc league.Service, notificationSvc *notificationservice.Service) *Service { return &Service{ - repo: repo, - config: cfg, - logger: logger, - client: &http.Client{Timeout: 10 * time.Second}, - betSvc: betSvc, - oddSvc: oddSvc, - eventSvc: eventSvc, - leagueSvc: leagueSvc, + repo: repo, + config: cfg, + logger: logger, + client: &http.Client{Timeout: 10 * time.Second}, + betSvc: betSvc, + oddSvc: oddSvc, + eventSvc: eventSvc, + leagueSvc: leagueSvc, + notificationSvc: notificationSvc, } } @@ -48,6 +50,127 @@ var ( ErrEventIsNotActive = fmt.Errorf("event has been cancelled or postponed") ) +func (s *Service) UpdateResultForOutcomes(ctx context.Context, eventID int64, resultRes json.RawMessage, sportID int64) error { + // TODO: Optimize this since there could be many outcomes with the same event_id and market_id that could be updated the same time + outcomes, err := s.repo.GetBetOutcomeByEventID(ctx, eventID) + if err != nil { + s.logger.Error("Failed to get pending bet outcomes", "error", err) + return fmt.Errorf("failed to get pending bet outcomes for event %d: %w", eventID, err) + } + + if len(outcomes) == 0 { + s.logger.Info("No bets have been placed on event", "event", eventID) + } + // if len(outcomes) == 0 { + // fmt.Printf("πŸ•› No bets have been placed on event %v (%d/%d) \n", eventID, i+1, len(events)) + // } else { + // fmt.Printf("βœ… %d bets have been placed on event %v (%d/%d) \n", len(outcomes), event.ID, i+1, len(events)) + // } + + for _, outcome := range outcomes { + if outcome.Expires.After(time.Now()) { + s.logger.Warn("Outcome is not expired yet", "event_id", "outcome_id", outcome.ID) + return fmt.Errorf("Outcome has not expired yet") + } + + parseResult, err := s.parseResult(ctx, resultRes, outcome, sportID) + + if err != nil { + s.logger.Error("Failed to parse result", "event_id", outcome.EventID, "outcome_id", outcome.ID, "error", err) + return err + } + outcome, err = s.betSvc.UpdateBetOutcomeStatus(ctx, outcome.ID, parseResult.Status) + if err != nil { + s.logger.Error("Failed to update bet outcome status", "bet_outcome_id", outcome.ID, "error", err) + return err + } + if outcome.Status == domain.OUTCOME_STATUS_ERROR || outcome.Status == domain.OUTCOME_STATUS_PENDING { + s.logger.Error("Outcome is pending or error", "event_id", outcome.EventID, "outcome_id", outcome.ID) + return fmt.Errorf("Error while updating outcome") + } + + status, err := s.betSvc.CheckBetOutcomeForBet(ctx, outcome.BetID) + if err != nil { + if err != bet.ErrOutcomesNotCompleted { + s.logger.Error("Failed to check bet outcome for bet", "event_id", outcome.EventID, "error", err) + } + return err + } + s.logger.Info("Updating bet status", outcome.BetID, "status:", status.String()) + err = s.betSvc.UpdateStatus(ctx, outcome.BetID, status) + if err != nil { + s.logger.Error("Failed to update bet status", "event id", outcome.EventID, "error", err) + return err + } + } + return nil + +} + +func (s *Service) RefundAllOutcomes(ctx context.Context, eventID int64) error { + outcomes, err := s.repo.GetBetOutcomeByEventID(ctx, eventID) + + if err != nil { + s.logger.Error("Failed to get pending bet outcomes", "error", err) + return fmt.Errorf("failed to get pending bet outcomes for event %d: %w", eventID, err) + } + + if len(outcomes) == 0 { + s.logger.Info("No bets have been placed on event", "event", eventID) + } + + outcomes, err = s.betSvc.UpdateBetOutcomeStatusForEvent(ctx, eventID, domain.OUTCOME_STATUS_VOID) + + if err != nil { + s.logger.Error("Failed to update all outcomes for event") + } + + // Get all the unique bet_ids and how many outcomes have this bet_id + betIDSet := make(map[int64]int64) + for _, outcome := range outcomes { + betIDSet[outcome.BetID] += 1 + } + + for betID := range betIDSet { + status, err := s.betSvc.CheckBetOutcomeForBet(ctx, betID) + if err != nil { + if err != bet.ErrOutcomesNotCompleted { + s.logger.Error("Failed to check bet outcome for bet", "event_id", eventID, "error", err) + } + return err + } + err = s.betSvc.UpdateStatus(ctx, betID, status) + if err != nil { + s.logger.Error("Failed to update bet status", "event id", eventID, "error", err) + continue + } + } + return nil + // for _, outcome := range outcomes { + // outcome, err = s.betSvc.UpdateBetOutcomeStatus(ctx, outcome.ID, domain.OUTCOME_STATUS_VOID) + // if err != nil { + // s.logger.Error("Failed to refund all outcome status", "bet_outcome_id", outcome.ID, "error", err) + // return err + // } + + // // Check if all the bet outcomes have been set to refund for + // status, err := s.betSvc.CheckBetOutcomeForBet(ctx, outcome.BetID) + // if err != nil { + // if err != bet.ErrOutcomesNotCompleted { + // s.logger.Error("Failed to check bet outcome for bet", "event_id", outcome.EventID, "error", err) + // } + // return err + // } + // err = s.betSvc.UpdateStatus(ctx, outcome.BetID, domain.OUTCOME_STATUS_VOID) + + // if err != nil { + // s.logger.Error("Failed to update bet status", "event id", outcome.EventID, "error", err) + // return err + // } + // } + +} + func (s *Service) FetchAndProcessResults(ctx context.Context) error { // TODO: Optimize this because there could be many bet outcomes for the same odd // Take market id and match result as param and update all the bet outcomes at the same time @@ -58,29 +181,15 @@ func (s *Service) FetchAndProcessResults(ctx context.Context) error { } fmt.Printf("⚠️ Expired Events: %d \n", len(events)) removed := 0 - errs := make([]error, 0, len(events)) - for i, event := range events { + + for _, event := range events { eventID, err := strconv.ParseInt(event.ID, 10, 64) if err != nil { - s.logger.Error("Failed to parse event id") - errs = append(errs, fmt.Errorf("failed to parse event id %s: %w", event.ID, err)) - continue - } - outcomes, err := s.repo.GetBetOutcomeByEventID(ctx, eventID) - if err != nil { - s.logger.Error("Failed to get pending bet outcomes", "error", err) - errs = append(errs, fmt.Errorf("failed to get pending bet outcomes for event %d: %w", eventID, err)) + s.logger.Error("Failed to parse", "eventID", event.ID, "err", err) continue } - if len(outcomes) == 0 { - fmt.Printf("πŸ•› No bets have been placed on event %v (%d/%d) \n", event.ID, i+1, len(events)) - } else { - fmt.Printf("βœ… %d bets have been placed on event %v (%d/%d) \n", len(outcomes), event.ID, i+1, len(events)) - } - - isDeleted := true result, err := s.fetchResult(ctx, eventID) if err != nil { if err == ErrEventIsNotActive { @@ -108,78 +217,41 @@ func (s *Service) FetchAndProcessResults(ctx context.Context) error { } // TODO: Figure out what to do with the events that have been cancelled or postponed, etc... - if timeStatusParsed != int64(domain.TIME_STATUS_ENDED) { - s.logger.Warn("Event is not ended yet", "event_id", eventID, "time_status", commonResp.TimeStatus) - fmt.Printf("⚠️ Event %v is not ended yet (%d/%d) \n", event.ID, i+1, len(events)) - isDeleted = false + // if timeStatusParsed != int64(domain.TIME_STATUS_ENDED) { + // s.logger.Warn("Event is not ended yet", "event_id", eventID, "time_status", commonResp.TimeStatus) + // fmt.Printf("⚠️ Event %v is not ended yet (%d/%d) \n", event.ID, i+1, len(events)) + // isDeleted = false + // continue + // } + + // notification := &domain.Notification{ + // RecipientID: recipientID, + // Type: domain.NOTIFICATION_TYPE_WALLET, + // Level: domain.NotificationLevelWarning, + // Reciever: domain.NotificationRecieverSideAdmin, + // DeliveryChannel: domain.DeliveryChannelInApp, + // Payload: domain.NotificationPayload{ + // Headline: "Wallet Threshold Alert", + // Message: message, + // }, + // Priority: 2, // Medium priority + // } + + switch timeStatusParsed { + case int64(domain.TIME_STATUS_NOT_STARTED), int64(domain.TIME_STATUS_IN_PLAY): continue - } - for j, outcome := range outcomes { - fmt.Printf("βš™οΈ Processing 🎲 outcomes '%v' for event %v(%v) (%d/%d) \n", - outcome.MarketName, - event.HomeTeam+" "+event.AwayTeam, event.ID, - j+1, len(outcomes)) + case int64(domain.TIME_STATUS_TO_BE_FIXED): + s.logger.Warn("Event needs to be rescheduled or corrected", "event_id", eventID) + // Admin users will be able to review the events - if outcome.Expires.After(time.Now()) { - isDeleted = false - s.logger.Warn("Outcome is not expired yet", "event_id", event.ID, "outcome_id", outcome.ID) - continue - } - - parseResult, err := s.parseResult(ctx, result.Results[0], outcome, sportID) + case int64(domain.TIME_STATUS_ENDED), int64(domain.TIME_STATUS_WALKOVER), int64(domain.TIME_STATUS_DECIDED_BY_FA): + err = s.UpdateResultForOutcomes(ctx, eventID, result.Results[0], sportID) if err != nil { - isDeleted = false - s.logger.Error("Failed to parse result", "event_id", outcome.EventID, "outcome_id", outcome.ID, "error", err) - errs = append(errs, fmt.Errorf("failed to parse result for event %d: %w", outcome.EventID, err)) - continue - } - outcome, err = s.betSvc.UpdateBetOutcomeStatus(ctx, outcome.ID, parseResult.Status) - if err != nil { - isDeleted = false - s.logger.Error("Failed to update bet outcome status", "bet_outcome_id", outcome.ID, "error", err) - continue - } - if outcome.Status == domain.OUTCOME_STATUS_ERROR || outcome.Status == domain.OUTCOME_STATUS_PENDING { - fmt.Printf("❌ Error while updating 🎲 outcomes '%v' for event %v(%v) (%d/%d) \n", - outcome.MarketName, - event.HomeTeam+" "+event.AwayTeam, event.ID, - j+1, len(outcomes)) - - s.logger.Error("Outcome is pending or error", "event_id", outcome.EventID, "outcome_id", outcome.ID) - isDeleted = false - continue + s.logger.Error("Error while updating result for event", "event_id", eventID) } - fmt.Printf("βœ… Successfully updated 🎲 outcomes '%v' for event %v(%v) (%d/%d) \n", - outcome.MarketName, - event.HomeTeam+" "+event.AwayTeam, event.ID, - j+1, len(outcomes)) - - status, err := s.betSvc.CheckBetOutcomeForBet(ctx, outcome.BetID) - if err != nil { - if err != bet.ErrOutcomesNotCompleted { - s.logger.Error("Failed to check bet outcome for bet", "event_id", outcome.EventID, "error", err) - } - isDeleted = false - continue - } - fmt.Printf("🧾 Updating bet %v - event %v (%d/%d) to %v\n", outcome.BetID, event.ID, j+1, len(outcomes), status.String()) - err = s.betSvc.UpdateStatus(ctx, outcome.BetID, status) - if err != nil { - s.logger.Error("Failed to update bet status", "event id", outcome.EventID, "error", err) - isDeleted = false - continue - } - fmt.Printf("βœ… Successfully updated 🎫 Bet %v - event %v(%v) (%d/%d) \n", - outcome.BetID, - event.HomeTeam+" "+event.AwayTeam, event.ID, - j+1, len(outcomes)) - - } - if isDeleted { - removed += 1 - fmt.Printf("⚠️ Removing Event %v \n", event.ID) + s.logger.Info("Removing Event", "eventID", event.ID) err = s.repo.DeleteEvent(ctx, event.ID) if err != nil { s.logger.Error("Failed to remove event", "event_id", event.ID, "error", err) @@ -190,17 +262,91 @@ func (s *Service) FetchAndProcessResults(ctx context.Context) error { s.logger.Error("Failed to remove odds for event", "event_id", event.ID, "error", err) return err } + removed += 1 + case int64(domain.TIME_STATUS_ABANDONED), int64(domain.TIME_STATUS_CANCELLED), int64(domain.TIME_STATUS_REMOVED): + s.logger.Info("Event abandoned/cancelled/removed", "event_id", eventID, "status", timeStatusParsed) + err = s.RefundAllOutcomes(ctx, eventID) + + s.logger.Info("Removing Event", "eventID", event.ID) + err = s.repo.DeleteEvent(ctx, event.ID) + if err != nil { + s.logger.Error("Failed to remove event", "event_id", event.ID, "error", err) + return err + } + err = s.repo.DeleteOddsForEvent(ctx, event.ID) + if err != nil { + s.logger.Error("Failed to remove odds for event", "event_id", event.ID, "error", err) + return err + } + removed += 1 } + // for j, outcome := range outcomes { + + // fmt.Printf("βš™οΈ Processing 🎲 outcomes '%v' for event %v(%v) (%d/%d) \n", + // outcome.MarketName, + // event.HomeTeam+" "+event.AwayTeam, event.ID, + // j+1, len(outcomes)) + + // if outcome.Expires.After(time.Now()) { + // isDeleted = false + // s.logger.Warn("Outcome is not expired yet", "event_id", event.ID, "outcome_id", outcome.ID) + // continue + // } + + // parseResult, err := s.parseResult(ctx, result.Results[0], outcome, sportID) + // if err != nil { + // isDeleted = false + // s.logger.Error("Failed to parse result", "event_id", outcome.EventID, "outcome_id", outcome.ID, "error", err) + // errs = append(errs, fmt.Errorf("failed to parse result for event %d: %w", outcome.EventID, err)) + // continue + // } + + // outcome, err = s.betSvc.UpdateBetOutcomeStatus(ctx, outcome.ID, parseResult.Status) + // if err != nil { + // isDeleted = false + // s.logger.Error("Failed to update bet outcome status", "bet_outcome_id", outcome.ID, "error", err) + // continue + // } + // if outcome.Status == domain.OUTCOME_STATUS_ERROR || outcome.Status == domain.OUTCOME_STATUS_PENDING { + // fmt.Printf("❌ Error while updating 🎲 outcomes '%v' for event %v(%v) (%d/%d) \n", + // outcome.MarketName, + // event.HomeTeam+" "+event.AwayTeam, event.ID, + // j+1, len(outcomes)) + + // s.logger.Error("Outcome is pending or error", "event_id", outcome.EventID, "outcome_id", outcome.ID) + // isDeleted = false + // continue + // } + + // fmt.Printf("βœ… Successfully updated 🎲 outcomes '%v' for event %v(%v) (%d/%d) \n", + // outcome.MarketName, + // event.HomeTeam+" "+event.AwayTeam, event.ID, + // j+1, len(outcomes)) + + // status, err := s.betSvc.CheckBetOutcomeForBet(ctx, outcome.BetID) + // if err != nil { + // if err != bet.ErrOutcomesNotCompleted { + // s.logger.Error("Failed to check bet outcome for bet", "event_id", outcome.EventID, "error", err) + // } + // isDeleted = false + // continue + // } + + // fmt.Printf("🧾 Updating bet %v - event %v (%d/%d) to %v\n", outcome.BetID, event.ID, j+1, len(outcomes), status.String()) + // err = s.betSvc.UpdateStatus(ctx, outcome.BetID, status) + // if err != nil { + // s.logger.Error("Failed to update bet status", "event id", outcome.EventID, "error", err) + // isDeleted = false + // continue + // } + // fmt.Printf("βœ… Successfully updated 🎫 Bet %v - event %v(%v) (%d/%d) \n", + // outcome.BetID, + // event.HomeTeam+" "+event.AwayTeam, event.ID, + // j+1, len(outcomes)) + // } } - fmt.Printf("πŸ—‘οΈ Removed Events: %d \n", removed) - if len(errs) > 0 { - s.logger.Error("Errors occurred while processing results", "errors", errs) - for _, err := range errs { - fmt.Println("Error:", err) - } - return fmt.Errorf("errors occurred while processing results: %v", errs) - } + s.logger.Info("Total Number of Removed Events", "count", removed) s.logger.Info("Successfully processed results", "removed_events", removed, "total_events", len(events)) return nil } @@ -211,10 +357,9 @@ func (s *Service) CheckAndUpdateExpiredEvents(ctx context.Context) (int64, error s.logger.Error("Failed to fetch events") return 0, err } - fmt.Printf("⚠️ Expired Events: %d \n", len(events)) updated := 0 - for i, event := range events { - fmt.Printf("βš™οΈ Processing event %v (%d/%d) \n", event.ID, i+1, len(events)) + for _, event := range events { + // fmt.Printf("βš™οΈ Processing event %v (%d/%d) \n", event.ID, i+1, len(events)) eventID, err := strconv.ParseInt(event.ID, 10, 64) if err != nil { s.logger.Error("Failed to parse event id") @@ -232,7 +377,6 @@ func (s *Service) CheckAndUpdateExpiredEvents(ctx context.Context) (int64, error } if result.Success != 1 || len(result.Results) == 0 { s.logger.Error("Invalid API response", "event_id", eventID) - fmt.Printf("⚠️ Invalid API response for event %v \n", result) continue } @@ -282,12 +426,13 @@ func (s *Service) CheckAndUpdateExpiredEvents(ctx context.Context) (int64, error continue } updated++ - fmt.Printf("βœ… Successfully updated event %v to %v (%d/%d) \n", event.ID, eventStatus, i+1, len(events)) - + // fmt.Printf("βœ… Successfully updated event %v to %v (%d/%d) \n", event.ID, eventStatus, i+1, len(events)) + s.logger.Info("Updated Event Status", "event ID", event.ID, "status", eventStatus) // Update the league because the league country code is only found on the result response leagueID, err := strconv.ParseInt(commonResp.League.ID, 10, 64) if err != nil { - log.Printf("❌ Invalid league id, leagueID %v", commonResp.League.ID) + // log.Printf("❌ Invalid league id, leagueID %v", commonResp.League.ID) + s.logger.Error("Invalid League ID", "leagueID", commonResp.League.ID) continue } @@ -304,12 +449,11 @@ func (s *Service) CheckAndUpdateExpiredEvents(ctx context.Context) (int64, error }) if err != nil { - log.Printf("❌ Error Updating League %v", commonResp.League.Name) - log.Printf("err:%v", err) + s.logger.Error("Error Updating League", "League Name", commonResp.League.Name, "err", err) continue } - fmt.Printf("βœ… Updated League %v with country code %v \n", leagueID, commonResp.League.CC) - + // fmt.Printf("βœ… Updated League %v with country code %v \n", leagueID, commonResp.League.CC) + s.logger.Info("Updated League with country code", "leagueID", leagueID, "code", commonResp.League.CC) } if updated == 0 { diff --git a/internal/web_server/cron.go b/internal/web_server/cron.go index 749f1e0..e69af5e 100644 --- a/internal/web_server/cron.go +++ b/internal/web_server/cron.go @@ -46,50 +46,50 @@ func StartDataFetchingCrons(eventService eventsvc.Service, oddsService oddssvc.S spec string task func() }{ - { - spec: "0 0 * * * *", // Every 1 hour - task: func() { - if err := eventService.FetchUpcomingEvents(context.Background()); err != nil { - log.Printf("FetchUpcomingEvents error: %v", err) - } - }, - }, - { - spec: "0 0 * * * *", // Every 15 minutes - task: func() { - if err := oddsService.FetchNonLiveOdds(context.Background()); err != nil { - log.Printf("FetchNonLiveOdds error: %v", err) - } - }, - }, + // { + // spec: "0 0 * * * *", // Every 1 hour + // task: func() { + // if err := eventService.FetchUpcomingEvents(context.Background()); err != nil { + // log.Printf("FetchUpcomingEvents error: %v", err) + // } + // }, + // }, + // { + // spec: "0 0 * * * *", // Every 1 hour (since its takes that long to fetch all the events) + // task: func() { + // if err := oddsService.FetchNonLiveOdds(context.Background()); err != nil { + // log.Printf("FetchNonLiveOdds error: %v", err) + // } + // }, + // }, { spec: "0 */5 * * * *", // Every 5 Minutes task: func() { log.Println("Updating expired events status...") - // if _, err := resultService.CheckAndUpdateExpiredEvents(context.Background()); err != nil { - // log.Printf("Failed to update events: %v", err) - // } else { - // log.Printf("Successfully updated expired events") - // } - // }, - // }, - // { - // spec: "0 */15 * * * *", // Every 15 Minutes - // task: func() { - // log.Println("Fetching results for upcoming events...") + if _, err := resultService.CheckAndUpdateExpiredEvents(context.Background()); err != nil { + log.Printf("Failed to update events: %v", err) + } else { + log.Printf("Successfully updated expired events") + } + }, + }, + { + spec: "0 */15 * * * *", // Every 15 Minutes + task: func() { + log.Println("Fetching results for upcoming events...") - // if err := resultService.FetchAndProcessResults(context.Background()); err != nil { - // log.Printf("Failed to process result: %v", err) - // } else { - // log.Printf("Successfully processed all outcomes") - // } - // }, - // }, + if err := resultService.FetchAndProcessResults(context.Background()); err != nil { + log.Printf("Failed to process result: %v", err) + } else { + log.Printf("Successfully processed all outcomes") + } + }, + }, } for _, job := range schedule { - // job.task() + job.task() if _, err := c.AddFunc(job.spec, job.task); err != nil { log.Fatalf("Failed to schedule cron job: %v", err) } diff --git a/internal/web_server/handlers/leagues.go b/internal/web_server/handlers/leagues.go index 9bd3299..000c557 100644 --- a/internal/web_server/handlers/leagues.go +++ b/internal/web_server/handlers/leagues.go @@ -106,3 +106,32 @@ func (h *Handler) SetLeagueActive(c *fiber.Ctx) error { return response.WriteJSON(c, fiber.StatusOK, "League updated successfully", nil, nil) } + +func (h *Handler) SetLeagueAsFeatured(c *fiber.Ctx) error { + fmt.Printf("Set Active Leagues") + leagueIdStr := c.Params("id") + if leagueIdStr == "" { + response.WriteJSON(c, fiber.StatusBadRequest, "Missing league id", nil, nil) + } + leagueId, err := strconv.Atoi(leagueIdStr) + if err != nil { + response.WriteJSON(c, fiber.StatusBadRequest, "invalid league id", nil, nil) + } + + var req SetLeagueActiveReq + if err := c.BodyParser(&req); err != nil { + h.logger.Error("SetLeagueReq failed", "error", err) + return response.WriteJSON(c, fiber.StatusBadRequest, "Failed to parse request", err, nil) + } + + valErrs, ok := h.validator.Validate(c, req) + if !ok { + return response.WriteJSON(c, fiber.StatusBadRequest, "Invalid request", valErrs, nil) + } + + if err := h.leagueSvc.SetLeagueActive(c.Context(), int64(leagueId), req.IsActive); err != nil { + response.WriteJSON(c, fiber.StatusInternalServerError, "Failed to update league", err, nil) + } + + return response.WriteJSON(c, fiber.StatusOK, "League updated successfully", nil, nil) +} diff --git a/internal/web_server/handlers/prematch.go b/internal/web_server/handlers/prematch.go index 7117d1d..314bf0f 100644 --- a/internal/web_server/handlers/prematch.go +++ b/internal/web_server/handlers/prematch.go @@ -56,8 +56,8 @@ func (h *Handler) GetRawOddsByMarketID(c *fiber.Ctx) error { rawOdds, err := h.prematchSvc.GetRawOddsByMarketID(c.Context(), marketID, upcomingID) if err != nil { - fmt.Printf("Failed to fetch raw odds: %v market_id:%v upcomingID:%v\n", err, marketID, upcomingID) - h.logger.Error("failed to fetch raw odds", "error", err) + // fmt.Printf("Failed to fetch raw odds: %v market_id:%v upcomingID:%v\n", err, marketID, upcomingID) + h.logger.Error("Failed to get raw odds by market ID", "marketID", marketID, "upcomingID", upcomingID, "error", err) return response.WriteJSON(c, fiber.StatusInternalServerError, "Failed to retrieve raw odds", err, nil) } @@ -172,6 +172,62 @@ func (h *Handler) GetAllUpcomingEvents(c *fiber.Ctx) error { } +type TopLeaguesRes struct { + Leagues []TopLeague `json:"leagues"` +} + +type TopLeague struct { + LeagueID int64 `json:"league_id"` + LeagueName string `json:"league_name"` + Events []domain.UpcomingEvent `json:"events"` + // Total int64 `json:"total"` +} + +// @Summary Retrieve all top leagues +// @Description Retrieve all top leagues +// @Tags prematch +// @Accept json +// @Produce json +// @Success 200 {array} domain.UpcomingEvent +// @Failure 500 {object} response.APIResponse +// @Router /top-leagues [get] +func (h *Handler) GetTopLeagues(c *fiber.Ctx) error { + + leagues, err := h.leagueSvc.GetFeaturedLeagues(c.Context()) + + if err != nil { + h.logger.Error("Error while fetching top leagues", "err", err) + return response.WriteJSON(c, fiber.StatusInternalServerError, "Failed to get featured leagues", nil, nil) + } + + var topLeague []TopLeague = make([]TopLeague, 0, len(leagues)) + for _, league := range leagues { + events, _, err := h.eventSvc.GetPaginatedUpcomingEvents( + c.Context(), domain.EventFilter{ + LeagueID: domain.ValidInt32{ + Value: int32(league.ID), + Valid: true, + }, + }) + if err != nil { + fmt.Printf("Error while fetching events for top league %v \n", league.ID) + h.logger.Error("Error while fetching events for top league", "League ID", league.ID) + } + + topLeague = append(topLeague, TopLeague{ + LeagueID: league.ID, + LeagueName: league.Name, + Events: events, + }) + } + + res := TopLeaguesRes{ + Leagues: topLeague, + } + return response.WriteJSON(c, fiber.StatusOK, "All top leagues events retrieved successfully", res, nil) + +} + // @Summary Retrieve an upcoming by ID // @Description Retrieve an upcoming event by ID // @Tags prematch diff --git a/internal/web_server/routes.go b/internal/web_server/routes.go index e68d31b..1cbec08 100644 --- a/internal/web_server/routes.go +++ b/internal/web_server/routes.go @@ -130,6 +130,7 @@ func (a *App) initAppRoutes() { a.fiber.Get("/events", h.GetAllUpcomingEvents) a.fiber.Get("/events/:id", h.GetUpcomingEventByID) a.fiber.Delete("/events/:id", a.authMiddleware, a.SuperAdminOnly, h.SetEventStatusToRemoved) + a.fiber.Get("/top-leagues", h.GetTopLeagues) // Leagues a.fiber.Get("/leagues", h.GetAllLeagues) @@ -192,7 +193,7 @@ func (a *App) initAppRoutes() { a.fiber.Get("/wallet/:id", h.GetWalletByID) a.fiber.Put("/wallet/:id", h.UpdateWalletActive) a.fiber.Get("/branchWallet", a.authMiddleware, h.GetAllBranchWallets) -a.fiber.Get("/cashierWallet", a.authMiddleware, h.GetWalletForCashier) + a.fiber.Get("/cashierWallet", a.authMiddleware, h.GetWalletForCashier) // Transfer // /transfer/wallet - transfer from one wallet to another wallet From 93d64d06d758cafcfdd60c809aff2b39c1efde03 Mon Sep 17 00:00:00 2001 From: Samuel Tariku Date: Thu, 19 Jun 2025 12:57:07 +0300 Subject: [PATCH 4/4] fix: minor fix --- internal/services/result/service.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/internal/services/result/service.go b/internal/services/result/service.go index 59bd2a2..234e548 100644 --- a/internal/services/result/service.go +++ b/internal/services/result/service.go @@ -69,7 +69,7 @@ func (s *Service) UpdateResultForOutcomes(ctx context.Context, eventID int64, re for _, outcome := range outcomes { if outcome.Expires.After(time.Now()) { - s.logger.Warn("Outcome is not expired yet", "event_id", "outcome_id", outcome.ID) + s.logger.Warn("Outcome is not expired yet", "event_id", outcome.EventID, "outcome_id", outcome.ID) return fmt.Errorf("Outcome has not expired yet") } @@ -96,7 +96,7 @@ func (s *Service) UpdateResultForOutcomes(ctx context.Context, eventID int64, re } return err } - s.logger.Info("Updating bet status", outcome.BetID, "status:", status.String()) + s.logger.Info("Updating bet status", "bet_id", outcome.BetID, "status", status.String()) err = s.betSvc.UpdateStatus(ctx, outcome.BetID, status) if err != nil { s.logger.Error("Failed to update bet status", "event id", outcome.EventID, "error", err)