GAMZ API

DEVELOPER DOCUMENTATION

Integrate directly with Gamz to access fixtures, results, ladders, bookings and team data in real time. Designed for organisers, partners and developers building connected social sport experiences.

Overview

SERVICE SUMMARY

The Gamz API provides authenticated SOAP services for accessing unpublished competition and booking data, and performing secure actions such as team payments, along with HTTP GET endpoints for retrieving published competition and team data.

SOAP API

CalendarService

Retrieve competition matches and bookings for any given date across your organisation.

CompetitionService

Get live ladder standings and fixture data for one or more competitions.

TeamService

Record match day payments collected outside Gamz for a player within a specific team.

REST API

MobService

HTTP GET endpoints for accessing published competition and team data.

SOAP API

Authentication is required for SOAP services to access organisation competition data that is not published online, such as fixtures, bookings and ladders, and to perform secure write operations like team payments.

Getting Started

Setup & Access

Before you can make your first API call you need two things: an API key tied to your organisation, and a dedicated API user account created inside the Gamz app.

1

Request an API Key

Email support@gamzapp.com with your organisation name and a brief description of what you're building. We'll provision your account and return an ApplicationId GUID, which is included in every API request to identify your organisation.

2

Create a Dedicated API User

In the Gamz app, navigate to Settings → User Management and create a new user. Name it something clear and identifiable, such as OrganisationName_API. This user account authenticates your API requests, so treat the credentials like any service account secret.

Authentication

All services are secured with WS-Security using symmetric key binding. Requests must include valid credentials for the API user you created during setup. Your ApplicationId identifies the organisation; the user credentials authorise the request.

ServiceBindingNotes
CalendarService.svcWS-Security SymmetricSecure conversation with Basic256; body is signed and encrypted
CompetitionService.svcWS-Security SymmetricSecure conversation with Basic256; body is signed and encrypted.
TeamService.svcWS-Security SymmetricSecure conversation with Basic256; body is signed and encrypted.
SERVICE OPERATIONS

Calendar Service

Use CalendarService to retrieve everything scheduled for a selected date, including competition matches across divisions and sports, as well as casual bookings. Ideal for building game-day screens and dashboards.

SOAP 1.2 CalendarService https://api.gamzapp.com/CalendarService.svc
POSTGetCompetitionMatches

Returns competition match data for a selected date.

Request Parameters
FieldTypeRequiredDescription
ApplicationIdguidYesYour organisation's API key
DatedateTimeYesThe date to retrieve matches for (time component ignored)
Response: CompetitionMatchDto[]
FieldTypeDescription
IdintUnique match identifier
HomeTeamTeamDtoHome team (Id, Name, Balance, RoundFee)
AwayTeamTeamDtoAway team (Id, Name, Balance, RoundFee)
StartTimedateTimeScheduled start time
EndTimedateTimeScheduled finish time
RoundintRound number within the season
DivisionKeyValuePairDivision Id and Name
SeasonKeyValuePairSeason Id and Name
SportKeyValuePairSport Id and Name
ResourceCollectionKeyValuePair[]Playing Spaces Assigned
C# Example
// Add a service reference to https://api.gamzapp.com/CalendarService.svc?wsdl using System; using System.Linq; using System.ServiceModel; using System.Threading.Tasks; public class Program { public static async Task Main() { var endpoint = new EndpointAddress("https://api.gamzapp.com/CalendarService.svc"); // "CustomBinding_ICalendarService" comes from your generated config/proxy. var client = new CalendarServiceClient("CustomBinding_ICalendarService", endpoint); using var clientScope = client; try { // Authentication (service account created in Gamz app). client.ClientCredentials.UserName.UserName = "OrganisationName_API"; client.ClientCredentials.UserName.Password = "your-password"; var request = new GetCompetitionMatchesRequest { ApplicationId = new Guid("xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"), Date = DateTime.Today }; var response = await client.GetCompetitionMatchesAsync(request); if (!response.Success) { Console.WriteLine($"Error: {response.Message}"); return; } foreach (var match in response.CompetitionMatchCollection) { Console.WriteLine($"{match.HomeTeam.Name} vs {match.AwayTeam.Name} at {match.StartTime:HH:mm}"); } } catch (Exception ex) { Console.WriteLine($"Unhandled exception: {ex.Message}"); client.Abort(); } } }
POSTGetBookingData

Returns all bookings for a given date, including casual hires, training sessions, and any non-competition use of your playable spaces.

Request Parameters
FieldTypeRequiredDescription
ApplicationIdguidYesYour organisation's API key
DatedateTimeYesThe date to retrieve bookings for
Response: BookingDto[]
FieldTypeDescription
IdintUnique booking identifier
CustomerKeyValuePairBooking customer (Id and Name)
StartTimedateTimeBooking start time
EndTimedateTimeBooking end time
FeedecimalTotal fee charged for the booking
PaymentdecimalAmount already paid
OverduedecimalOutstanding balance
NumberOfAttendeesintNumber of people attending
SportKeyValuePairSport Id and Name
ResourceCollectionKeyValuePair[]Playable Spaces Assigned
C# Example
// Add a service reference to https://api.gamzapp.com/CalendarService.svc?wsdl using System; using System.ServiceModel; using System.Threading.Tasks; public class Program { public static async Task Main() { var endpoint = new EndpointAddress("https://api.gamzapp.com/CalendarService.svc"); var client = new CalendarServiceClient("CustomBinding_ICalendarService", endpoint); using var clientScope = client; try { client.ClientCredentials.UserName.UserName = "OrganisationName_API"; client.ClientCredentials.UserName.Password = "your-password"; var request = new GetBookingDataRequest { ApplicationId = new Guid("xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"), Date = DateTime.Today }; var response = await client.GetBookingDataAsync(request); if (!response.Success) { Console.WriteLine($"Error: {response.Message}"); return; } foreach (var booking in response.BookingCollection) { Console.WriteLine($"{booking.Customer.Value}: {booking.StartTime:HH:mm} to {booking.EndTime:HH:mm} (${booking.Fee})"); } } catch (Exception ex) { Console.WriteLine($"Unhandled exception: {ex.Message}"); client.Abort(); } } }

Competition Service

Use CompetitionService to retrieve ladder standings and fixture data for any competition. Suitable for internal systems, or for displaying ladders and draws in your website or app when using published results.

SOAP 1.2 CompetitionService https://api.gamzapp.com/CompetitionService.svc
POSTGetLadder

Returns the current standings table for a specified competition. Includes full match statistics for every team, such as wins, losses, points, percentages, and more. Use GetPublishedDataOnly to return only administrator-approved results, or use the REST API when you only need published standings.

Request Parameters
FieldTypeRequiredDescription
ApplicationIdguidYesYour organisation's API key
DivisionIdintYesThe division to retrieve standings for
SeasonIdintYesThe season to retrieve standings for
SportIdintYesThe sport to retrieve standings for
GetAllTeamsbooleanNoWhen true, includes teams that have withdrawn from the competition.
GetPublishedDataOnlybooleanNoWhen true, returns only results marked as published by an administrator
Response: LadderItemDto[]
FieldTypeDescription
PositionintCurrent ladder position
TeamKeyValuePairTeam Id and Name
PlayedintTotal games played
WonintGames won
LostintGames lost
DrawnintGames drawn
ByeintByes received
ForfeitForintForfeits awarded in the team's favour
ForfeitAgainstintForfeits awarded against the team
ForScoredecimalTotal scored for
AgainstScoredecimalTotal scored against
ScoreDifferencestringNet points difference
PercentagedecimalWin percentage
PointsintTotal competition points
C# Example
// Add a service reference to https://api.gamzapp.com/CompetitionService.svc?wsdl using System; using System.Linq; using System.ServiceModel; using System.Threading.Tasks; public class Program { public static async Task Main() { var endpoint = new EndpointAddress("https://api.gamzapp.com/CompetitionService.svc"); var client = new CompetitionServiceClient("CustomBinding_ICompetitionService", endpoint); using var clientScope = client; try { client.ClientCredentials.UserName.UserName = "OrganisationName_API"; client.ClientCredentials.UserName.Password = "your-password"; var request = new GetLadderRequest { ApplicationId = new Guid("xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"), DivisionId = 42, SeasonId = 7, SportId = 1, GetAllTeams = false, GetPublishedDataOnly = true }; var response = await client.GetLadderAsync(request); if (!response.Success) { Console.WriteLine($"Error: {response.Message}"); return; } foreach (var item in response.Ladder.OrderBy(x => x.Position)) { Console.WriteLine($"{item.Position}. {item.Team.Value}: {item.Points} pts ({item.Won}W {item.Lost}L)"); } } catch (Exception ex) { Console.WriteLine($"Unhandled exception: {ex.Message}"); client.Abort(); } } }
POSTGetFixtures

Returns all published upcoming matches across all competitions. Set MatchDay to null to retrieve all future matches, or provide a date to return matches for a single day.

Request Parameters
FieldTypeRequiredDescription
ApplicationIdguidYesYour organisation's API key
MatchDaydateTime?NoA specific match day to filter by. Pass null to return all upcoming fixtures.
Response: FixtureDto[]
FieldTypeDescription
DivisionKeyValuePairDivision Id and Name
SeasonKeyValuePairSeason Id and Name
SportKeyValuePairSport Id and Name
MatchCollectionMatchDto[]All matches within this competition
MatchDto Fields
FieldTypeDescription
MatchIdintUnique match identifier
HomeTeamTeamDtoId, Name, Fee, AmountPaid
AwayTeamTeamDtoId, Name, Fee, AmountPaid
StartTimedateTimeScheduled Start Time
RoundintRound Number
ResourceKeyValuePairPlayable Space Assigned
IsFinalsbooleanTrue if this is a finals match
C# Example
// Add a service reference to https://api.gamzapp.com/CompetitionService.svc?wsdl using System; using System.ServiceModel; using System.Threading.Tasks; public class Program { public static async Task Main() { var endpoint = new EndpointAddress("https://api.gamzapp.com/CompetitionService.svc"); var client = new CompetitionServiceClient("CustomBinding_ICompetitionService", endpoint); using var clientScope = client; try { client.ClientCredentials.UserName.UserName = "OrganisationName_API"; client.ClientCredentials.UserName.Password = "your-password"; var request = new GetFixturesRequest { ApplicationId = new Guid("xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"), MatchDay = DateTime.Today // or null for all upcoming fixtures }; var response = await client.GetFixturesAsync(request); if (!response.Success) { Console.WriteLine($"Error: {response.Message}"); return; } foreach (var fixture in response.FixtureCollection) { Console.WriteLine($"--- {fixture.Division.Value} ({fixture.Sport.Value}) ---"); foreach (var match in fixture.MatchCollection) { var tag = match.IsFinals ? " [FINALS]" : ""; Console.WriteLine($" R{match.Round}: {match.HomeTeam.Name} vs {match.AwayTeam.Name} at {match.StartTime:HH:mm}{tag}"); } } } catch (Exception ex) { Console.WriteLine($"Unhandled exception: {ex.Message}"); client.Abort(); } } }

Team Service

Use TeamService to record payments collected outside Gamz and apply them to a specific team, player and round.

SOAP 1.2 TeamService https://api.gamzapp.com/TeamService.svc
POSTAddPayment

Records a payment collected outside Gamz for a player within a specific team and competition context.

Request Parameters
FieldTypeRequiredDescription
ApplicationIdguidYesYour organisation's API key
AmountdecimalYesPayment amount to apply
DivisionIdintYesDivision identifier
SeasonIdintYesSeason identifier
SportIdintYesSport identifier
TeamIdintYesTeam identifier
PlayerIdintYesPlayer identifier
RoundintYesRound number
IsFinalsbooleanNoTrue when this payment relates to finals
ExternalTransactionIdstringNoExternal payment reference
Response: ResponseBase
FieldTypeDescription
SuccessbooleanTrue if request completed successfully
MessagestringStatus or error message
C# Example
// Add a service reference to https://api.gamzapp.com/TeamService.svc?wsdl using System; using System.ServiceModel; using System.Threading.Tasks; public class Program { public static async Task Main() { var endpoint = new EndpointAddress("https://api.gamzapp.com/TeamService.svc"); var client = new TeamServiceClient("wsHttpEndpoint", endpoint); using var clientScope = client; try { client.ClientCredentials.UserName.UserName = "OrganisationName_API"; client.ClientCredentials.UserName.Password = "your-password"; var request = new AddPaymentRequest { ApplicationId = new Guid("xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"), Amount = 25.00m, DivisionId = 42, SeasonId = 7, SportId = 1, TeamId = 1001, PlayerId = 5001, Round = 3, IsFinals = false, ExternalTransactionId = "txn_123456789" }; var response = await client.AddPaymentAsync(request); if (!response.Success) { Console.WriteLine($"Error: {response.Message}"); return; } Console.WriteLine("Payment added successfully."); } catch (Exception ex) { Console.WriteLine($"Unhandled exception: {ex.Message}"); client.Abort(); } } }
DATA MODELS

Common Types

These data structures are used across multiple services. Familiarise yourself with KeyValuePairOfintstring in particular, because it is used throughout the API to represent named entities like divisions, seasons, sports, and resources.

TypeFieldsNotes
ResponseBaseMessage string, Success booleanAll responses extend this. Always check Success before consuming data. If false, Message contains the error detail.
KeyValuePairOfintstringKey int, Value stringGeneral-purpose name/Id pair used for divisions, seasons, sports, resources, and customers.
TeamDto (CalendarService)Id, Name, Balance, RoundFeeTeam as returned by CalendarService operations.
TeamDto (CompetitionService)Id, Name, Fee, AmountPaidTeam as returned by CompetitionService operations.
guidstringStandard UUID format: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

RESPONSE BEHAVIOUR

Every operation returns a response that extends ResponseBase. Always check the Success flag first. A value of false means the request was received but could not be completed, and the Message field explains why.

FieldTypeDescription
Successbooleantrue if the operation completed successfully
MessagestringHuman-readable error or status message. Populate your logs with this when Success is false.
Result payloadvariesThe operation-specific result, for example CompetitionMatchCollection, Ladder, FixtureCollection, or BookingCollection

REST API

HTTP GET endpoints for retrieving published competition and team data for web and mobile applications.

Endpoints

MobService

MobService provides HTTP GET endpoints for retrieving published competition and team data. These endpoints are URL-based and do not use SOAP envelopes.

HTTP GET MobService https://api.gamzapp.com/MobService.svc
MethodEndpoint PatternPurpose
GetMobVenuesByKeyword/GetMobVenuesByKeyword?k={keyword}Venue keyword search summary results
GetMobById/GetMobById?id={centreId}Get a full venue/centre record by id
GetMobComp/GetMobComp?centreId={id}&sportId={id}&divisionId={id}&seasonId={id}&teamid={id}Competition view including fixture/ladder context
GetMobCompPerformanceStatistics/GetMobCompPerformanceStatistics?centreId={id}&sportId={id}&divisionId={id}&seasonId={id}Competition-level performance statistics
GetMobTeamDetails/GetMobTeamDetails?centreId={id}&teamId={id}Team profile and historical stats block
GetMobTeamPlayerList/GetMobTeamPlayerList?centreId={id}&teamId={id}Team player roster for a centre/team
GetMobCompPlayerStatistics/GetMobCompPlayerStatistics?centreId={id}&sportId={id}&divisionId={id}&seasonId={id}Player stats tables (scorers, cards, votes, matches)
GetMobCompTeamList/GetMobCompTeamList?centreId={id}&sportId={id}&divisionId={id}&seasonId={id}Team list for a competition context
GetMobTeamSearch/GetMobTeamSearch?keyword={text}&centreId={id}Team search within a centre
GetMobMatchDetails/GetMobMatchDetails?centreId={id}&matchId={id}Detailed match view (preview & completed)
Example URL
https://api.gamzapp.com/MobService.svc/GetMobVenuesByKeyword?k=social

Response objects follow a ResponseBase pattern with Success and Message, plus method-specific payload fields such as VenueCollection, Centre, Ladder, MobCompPerformanceStatistics, and MatchDetailView.