Skip to content

Overview

API to access information on your communities (or clubs) on the Unknown Golf platform.

Getting Started

Once you have set up your community in Unknown Golf, send an email to Support@UnknownGolf.com with a description of how you intend to utilize the Unknown Golf API.

We will review and may shedule a meeting to discuss further before providing your credentials.

Request API Enhancements

Send an email to Support@UnknownGolf.com with as much detail as you can provide, after our technical team has had an opportunity to review we will reach back out with an update.

Download OpenAPI description
Overview
Languages
Servers
Mock server

https://api-docs.unknowngolf.com/_mock/ug-api/

Production

https://api.unknowngolf.com/v1/

Testing

https://api-test.unknowngolf.com/v1/

Authentication

Operations related to access and security for the Unknown Golf API

Expiration: Security token expires after 24 hours

Operations

Community

Operations for Communities

What is a Community? A community in Unknown Golf is an entity that will group together all of your players and events.

What is a Club? A club is also a community, the main difference is that a club has sub communities and a club dashboard that provides insight into all of the Club's players and events.

Operations

Event

Operations related to the Events in your community (or Club)

Event Types: A tournament refers to a Multi-Round Event that has rounds (events) associated with it. These events have their event ids prefixed with the letter "M", a single round event or a round of a multi-round will have their event ids prefixed with the letter "S".

Creating an Event: Events can only be created on UnknownGolf.com, they currently cannot be created through the Unknwon Golf API.

Operations

Event Courses

Operations related to the Courses for your Events

Search Courses: Only courses associated with an event in Unknown Golf can be accessed via the API

Add Courses: Courses cannot be added to an Event through the API, only on UnknownGolf.com

Operations

Event Flights

Operations related to the Flights for an event.

Each leaderboard has its own set of flights which can be used for the following:

  1. Segment your leaderboards into groups by Handicap, Age, Course, etc....
  2. Determine if players or teams are participating in a Leaderboard. If a leaderboard has flights defined, a player or team is not assigned to a flight, then they are not participating in that leaderboard and will not show up in the standings or results for that leaderboard.

** Are Flights Required?** Single round events contain a setting to enable or disable flights, currently ALL multi-round events require flights, although this option is targeted to be added in the future.

Players: Players must be signed up for the event to be assigned to a flight.

Operations

Event Handicap (Player)

Operations related to Player Handicaps for an Event

Multi-Round Handicaps: For multi-round events, the player's will have handicaps set at the overall event level and then for each round which will override the event level for that round.

Course vs. Playing Handicap: The "Course Handicap" is the players calculated handicap for the assigned tee box (Slope, Rating, and Par).

The "Playing Handicap" is the player's course handicap and then applying allocations, an example allocation could be 80% of a player's handicap where their Course handicap is a 10 and their playing handicap is an 8.

Applying Allocations: Allocations are applied to the unrounded course handicap wich may result is 2 players having the same course handicap but slightly different playing handicaps.

Handicap Number of Holes: All handicaps consumed and calculated are for 18 holes, regardless of the number of holes that are being played. If you are manually setting a handicap for an event that is playing less then 18 holes, ensure you are setting an 18 hole equilivant handicap for the player.

Operations

Event Handicap (Team)

Operations related to Team Handicaps for an Event

Multi-Round Events: When setting a team handicap for a multi-round event, the handicap should be set for each round of the event, there is no option to set a team handicap for the entire event.

Course vs. Playing Handicap: The "Course Handicap" is the team's calculated handicap for their players.

The "Playing Handicap" is the team's course handicap and then applying allocations, an example allocation could be 50% of a team's total handicap, where their Course handicap is a 10 and their playing handicap is an 5.

Applying Allocations: Allocations are applied to the unrounded course handicap which may result is 2 teams having the same course handicap but slightly different playing handicaps.

Handicap Number of Holes: All handicaps consumed and calculated are for 18 holes, regardless of the number of holes that are being played. If you are manually setting a handicap for an event that is playing less than 18 holes, ensure you are setting an 18 hole equivalent handicap for the team.

Operations

Event Leaderboards

Operations related to the Leaderboards for an event.

A Leaderboard defines the format of play and payouts, and contains multiple different configurations per leaderboard type.

Multi-Round Events: For multi-round events, the set of leaderboards are created for each round of the event, in addition to the overall set of leaderboards.

Leaderboards set at the "round level" will define the format and payouts for just that round, where the leaderboards set at the "event level" will define the format and payouts for the entire event, inclusive of all rounds unless configured for a subset of rounds.

Add / Edit Leaderboard Configurations: Add and editing of leaderboards can only be done on UnknownGolf.com

List of Leaderboard types: Reference the Utility opertation "/util/leaderboards/types" for a full list of leaderboard types, additional information on the leaderboard types can be found in Unknown Golf's help documentation (help.UnknownGolf.com).

Operations

Event Players

Operations related to Players registering to participate in an Event

Player Types: Players registered for your Event can be registed by their Profile, or by their name and Gender.

Multi-Round Event vs. Single Round: For multi-round events, players are registered for the Multi-round, they are not registered individually for each round.

Note: Players registered by name will not have any communication method associated with them, and will not be able to be included in any reports other then this event.

Operations

Event Scores (Player)

Operations related to the Players Scores for an event.

Operations

Event Scores (Team)

Operations related to the Team Scores for an event.

Note: This is for Team Scores where the format of play is to enter a single score per hole for a team, this is not for events where individual player scores are entered and then combined to create a team score.

Operations

Event Teams

Operations related to the Teams for your Events

Players: Players must be signed up for the event to be assigned to a team.

Note: If an event is a multi-round, there can be teams for the overall event and also a different set of teams for each round

Operations

Event Tee Pairings

Operations related to the Tee Pairings for an event.

Players: Players must be signed up for the event to be assigned to a tee pairing.

Course: Tee pairings are unique by golf course

Tee Group: The tee group is used to define the order of tee groups starting on the same hole at the same time. An examle is having an "A" and "B" group both starting on hole 1 at 8:00 AM. The "A" group would tee off first followed by the "B" group.

Operations

Player

Operations related to the Players in your community (or Club)

Security: You only have access to players that are in your community(s).

Player Updates: Once a player completes their profile on UnknownGolf.com, there are personal attributes that you cannot update, only the player themselves can make the updates on UnknownGolf.com

Duplicate Profiles & Merging Accounts: A unique profile is determined by a Unique Email Address or Unique World Handicap Id, if you receive an error message when adding (or updating) a player you will need to reach out to Support@UnknownGolf.com to have the profiles merged.

Operations

Request

Add the player to the community with the membership status

Security
bearerAuth
Path
playerIdinteger(int32)required
communityIdinteger(int32)required
Query
memberbooleanrequired

Community member status (true = member, false = non-member)

curl -i -X POST \
  'https://api-docs.unknowngolf.com/_mock/ug-api/v1/players/{playerId}/communities/{communityId}?member=true' \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>'

Responses

Successful response

Bodyapplication/json
playerIdinteger(int32)

Player Id

Example: 15254
memberboolean

Member of community

Example: true
firstNamestring

first name

Example: "Bill"
lastNamestring

last name

Example: "Trabosh"
suffixstring

suffix

Example: "III"
genderstring

Gender code

Example: "M / F"
handlestring

Handle or nickname

Example: "Founder"
emailstring

Email address

Example: "support@unknowngolf.com"
dobstring(date)

Date of Birth

Example: "1987-01-26"
phoneCountryCdstring

Country Code for the phone number

Example: "US"
phonestring

Phone number

Example: "5555555555"
hcActiveboolean

Flag if the player's world handicap is active

Example: true
hcProviderIdinteger(int32)

World Handicap Provider Id, reference the API for World Handicap Providers for the ids

Example: 3
hcIdstring

World Handicap Id

Example: "6585452"
hcIndexnumber(double)

World Handicap Index

Example: 15.2
hcRevisionDtstring(date)

Handicap revision date

Example: "2025-04-11"
picUrlstring

Profile Picture URL

Example: "https://static.unknwongolf.com/example.gif"
updatesAllowedboolean

Flag if updates to the player's personal information may be made through the Unknown Golf API

** Note: ** If the player has already completed their profile on UnknownGolf.com, updates to the player's personal information listed below can only be performed by the player on Unknown Golf:

  • Name (First, Last, Suffix)
  • Email Address
  • World Handicap Id
  • Date of Birth
  • Phone Number

Only updates are restricted, if the player does not currently have an attribute set then setting that attribute is allowed. Example, if the player does not have a phone number set, you can set the phone number for them.

Example: true
Response
application/json

sample

{ "playerId": 1, "member": true, "firstName": "Bill", "lastName": "Trabosh", "suffix": "III", "gender": "M", "handle": "Founder", "email": "support@unknowngolf.com", "dob": "1988-07-14", "phoneCounryCode": "US", "phoneNumber": "5555555555", "hcActive": true, "hcProviderId": 3, "hcId": "55885", "hcIndex": 12.7, "hcRevisionDt": "2025-08-04" }

Request

Remove the player from the community, if the player has participated in an event or registered for an upcoming event they cannot be removed from the community

Security
bearerAuth
Path
playerIdinteger(int32)required
communityIdinteger(int32)required
curl -i -X DELETE \
  'https://api-docs.unknowngolf.com/_mock/ug-api/v1/players/{playerId}/communities/{communityId}' \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>'

Responses

Successful response

Bodyapplication/json
Response
application/json
null

Request

Search the players in a community

Security
bearerAuth
Bodyapplication/jsonrequired

Player search criteria

communityIdinteger(int32)required

Community Id

Example: 19564
playerIdsArray of integers(int32)

List of Player Ids

Example: [4,2445,2434]
emailstring

Email Address

Example: "support@unknowngolf.com"
lastNamestring

Last name can be partial but must start with

Example: "Trab"
memberboolean

Player member status, True for Members, and false for Non-Members

Example: true
hcProviderIdinteger(int32)

World Handicap Provider Id, reference the API for World Handicap Providers for the ids

Example: 3
hcIdstring

Handicap Id

Example: "15.2"
curl -i -X GET \
  https://api-docs.unknowngolf.com/_mock/ug-api/v1/players \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "communityId": 19564,
    "playerIds": [
      4,
      2445,
      2434
    ],
    "email": "support@unknowngolf.com",
    "lastName": "Trab",
    "member": true,
    "hcProviderId": 3,
    "hcId": "15.2"
  }'

Responses

Successful response

Bodyapplication/jsonArray [
playerIdinteger(int32)

Player Id

Example: 15254
memberboolean

Member of community

Example: true
firstNamestring

first name

Example: "Bill"
lastNamestring

last name

Example: "Trabosh"
suffixstring

suffix

Example: "III"
genderstring

Gender code

Example: "M / F"
handlestring

Handle or nickname

Example: "Founder"
emailstring

Email address

Example: "support@unknowngolf.com"
dobstring(date)

Date of Birth

Example: "1987-01-26"
phoneCountryCdstring

Country Code for the phone number

Example: "US"
phonestring

Phone number

Example: "5555555555"
hcActiveboolean

Flag if the player's world handicap is active

Example: true
hcProviderIdinteger(int32)

World Handicap Provider Id, reference the API for World Handicap Providers for the ids

Example: 3
hcIdstring

World Handicap Id

Example: "6585452"
hcIndexnumber(double)

World Handicap Index

Example: 15.2
hcRevisionDtstring(date)

Handicap revision date

Example: "2025-04-11"
picUrlstring

Profile Picture URL

Example: "https://static.unknwongolf.com/example.gif"
updatesAllowedboolean

Flag if updates to the player's personal information may be made through the Unknown Golf API

** Note: ** If the player has already completed their profile on UnknownGolf.com, updates to the player's personal information listed below can only be performed by the player on Unknown Golf:

  • Name (First, Last, Suffix)
  • Email Address
  • World Handicap Id
  • Date of Birth
  • Phone Number

Only updates are restricted, if the player does not currently have an attribute set then setting that attribute is allowed. Example, if the player does not have a phone number set, you can set the phone number for them.

Example: true
]
Response
application/json

sample

[ { "playerId": 1, "member": true, "firstName": "Bill", "lastName": "Trabosh", "suffix": "III", "gender": "M", "handle": "Founder", "email": "support@unknowngolf.com", "dob": "1988-07-14", "phoneCounryCode": "US", "phoneNumber": "5555555555", "hcActive": true, "hcProviderId": 3, "hcId": "55885", "hcIndex": 12.7, "hcRevisionDt": "2025-08-04" } ]

Request

Create a player and add them to a community, if the player already exists in Unknown Golf then they will just be added to the community

Note: Players must be added to a community, you cannot create a player without adding them to at least one of your communities.

After the player is created, if you need to add them to additional communities you can via the "Player add to community" operation.

Security
bearerAuth
Bodyapplication/jsonrequired

Player to create

communityIdinteger(int32)required

Community Id

Example: 15254
memberboolean

Member of community

Example: true
firstNamestringrequired

Player first name

Example: "Bill"
lastNamestringrequired

Player last name

Example: "Trabosh"
suffixstring

Player suffix

Example: "III"
genderstringrequired

Gender code

Example: "M / F"
handlestring

Handle or nickname

Example: "Founder"
emailstringrequired

Email address

Example: "support@unknowngolf.com"
dobstring(date)

Date of Birth

Example: "1987-01-26"
phoneCountryCdstring

Country Code for the phone number

Example: "US"
phonestring

Phone number

Example: "5555555555"
hcProviderIdinteger(int32)

World Handicap Provider Id, reference the API for World Handicap Providers for the ids

Example: 3
hcIdstring

World Handicap Id

Example: "6585452"
curl -i -X POST \
  https://api-docs.unknowngolf.com/_mock/ug-api/v1/players \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "communityId": 15254,
    "member": true,
    "firstName": "Bill",
    "lastName": "Trabosh",
    "suffix": "III",
    "gender": "M / F",
    "handle": "Founder",
    "email": "support@unknowngolf.com",
    "dob": "1987-01-26",
    "phoneCountryCd": "US",
    "phone": "5555555555",
    "hcProviderId": 3,
    "hcId": "6585452"
  }'

Responses

Successful response

Bodyapplication/json
playerIdinteger(int32)

Player Id

Example: 15254
memberboolean

Member of community

Example: true
firstNamestring

first name

Example: "Bill"
lastNamestring

last name

Example: "Trabosh"
suffixstring

suffix

Example: "III"
genderstring

Gender code

Example: "M / F"
handlestring

Handle or nickname

Example: "Founder"
emailstring

Email address

Example: "support@unknowngolf.com"
dobstring(date)

Date of Birth

Example: "1987-01-26"
phoneCountryCdstring

Country Code for the phone number

Example: "US"
phonestring

Phone number

Example: "5555555555"
hcActiveboolean

Flag if the player's world handicap is active

Example: true
hcProviderIdinteger(int32)

World Handicap Provider Id, reference the API for World Handicap Providers for the ids

Example: 3
hcIdstring

World Handicap Id

Example: "6585452"
hcIndexnumber(double)

World Handicap Index

Example: 15.2
hcRevisionDtstring(date)

Handicap revision date

Example: "2025-04-11"
picUrlstring

Profile Picture URL

Example: "https://static.unknwongolf.com/example.gif"
updatesAllowedboolean

Flag if updates to the player's personal information may be made through the Unknown Golf API

** Note: ** If the player has already completed their profile on UnknownGolf.com, updates to the player's personal information listed below can only be performed by the player on Unknown Golf:

  • Name (First, Last, Suffix)
  • Email Address
  • World Handicap Id
  • Date of Birth
  • Phone Number

Only updates are restricted, if the player does not currently have an attribute set then setting that attribute is allowed. Example, if the player does not have a phone number set, you can set the phone number for them.

Example: true
Response
application/json

sample

{ "playerId": 1, "member": true, "firstName": "Bill", "lastName": "Trabosh", "suffix": "III", "gender": "M", "handle": "Founder", "email": "support@unknowngolf.com", "dob": "1988-07-14", "phoneCounryCode": "US", "phoneNumber": "5555555555", "hcActive": true, "hcProviderId": 3, "hcId": "55885", "hcIndex": 12.7, "hcRevisionDt": "2025-08-04" }

Request

Get the list of communities for a player. The player can be a member or non-member in that community

Security
bearerAuth
Path
playerIdinteger(int32)required
curl -i -X GET \
  'https://api-docs.unknowngolf.com/_mock/ug-api/v1/players/{playerId}/communities' \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>'

Responses

Successful response

Bodyapplication/jsonArray [
playerIdinteger(int32)

Player Id

Example: 15254
memberboolean

Member of community

Example: true
firstNamestring

first name

Example: "Bill"
lastNamestring

last name

Example: "Trabosh"
suffixstring

suffix

Example: "III"
genderstring

Gender code

Example: "M / F"
handlestring

Handle or nickname

Example: "Founder"
emailstring

Email address

Example: "support@unknowngolf.com"
dobstring(date)

Date of Birth

Example: "1987-01-26"
phoneCountryCdstring

Country Code for the phone number

Example: "US"
phonestring

Phone number

Example: "5555555555"
hcActiveboolean

Flag if the player's world handicap is active

Example: true
hcProviderIdinteger(int32)

World Handicap Provider Id, reference the API for World Handicap Providers for the ids

Example: 3
hcIdstring

World Handicap Id

Example: "6585452"
hcIndexnumber(double)

World Handicap Index

Example: 15.2
hcRevisionDtstring(date)

Handicap revision date

Example: "2025-04-11"
picUrlstring

Profile Picture URL

Example: "https://static.unknwongolf.com/example.gif"
updatesAllowedboolean

Flag if updates to the player's personal information may be made through the Unknown Golf API

** Note: ** If the player has already completed their profile on UnknownGolf.com, updates to the player's personal information listed below can only be performed by the player on Unknown Golf:

  • Name (First, Last, Suffix)
  • Email Address
  • World Handicap Id
  • Date of Birth
  • Phone Number

Only updates are restricted, if the player does not currently have an attribute set then setting that attribute is allowed. Example, if the player does not have a phone number set, you can set the phone number for them.

Example: true
]
Response
application/json

sample

[ { "id": 2, "name": "Unknown Golf Club", "club": true } ]

Request

Update the Player's email address, if the player has already completed their profile on Unknown Golf update the player's email can only be performed by the player on Unknown Golf.

Security
bearerAuth
Path
playerIdinteger(int32)required
Query
emailstringrequired

Player email address

curl -i -X PATCH \
  'https://api-docs.unknowngolf.com/_mock/ug-api/v1/players/{playerId}/email?email=string' \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>'

Responses

Successful response

Bodyapplication/json
Response
application/json
null

Request

Update the Player's member status for the community

Security
bearerAuth
Path
playerIdinteger(int32)required
communityIdinteger(int32)required
Query
memberbooleanrequired

Community member status (true = member, false = non-member)

curl -i -X PATCH \
  'https://api-docs.unknowngolf.com/_mock/ug-api/v1/players/{playerId}/communities/{communityId}/member?member=true' \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>'

Responses

Successful response

Bodyapplication/json
Response
application/json
null

Request

Update the Player's date of birth in the format YYYY-MM-dd, if the player has already completed their profile on Unknown Golf update the player's Date of Birth can only be performed by the player on Unknown Golf.

Security
bearerAuth
Path
playerIdinteger(int32)required
Query
dobstringrequired

Player Date of Birth

curl -i -X PATCH \
  'https://api-docs.unknowngolf.com/_mock/ug-api/v1/players/{playerId}/dob?dob=string' \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>'

Responses

Successful response

Bodyapplication/json
Response
application/json
null

Request

Update the Player's world handicap, if the player has already completed their profile on Unknown Golf update the player's world handicap can only be performed by the player on Unknown Golf.

Security
bearerAuth
Path
playerIdinteger(int32)required
Query
hcProviderIdinteger(int32)required

World Handicap Provider Id

hcIdstringrequired

World Handicap Id

curl -i -X PATCH \
  'https://api-docs.unknowngolf.com/_mock/ug-api/v1/players/{playerId}/handicap?hcProviderId=0&hcId=string' \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>'

Responses

Successful response

Bodyapplication/json
Response
application/json
null

Request

Update the Player's handle (nickname) for a community

Security
bearerAuth
Path
playerIdinteger(int32)required
communityIdinteger(int32)required
Query
emailstringrequired

Player handle

curl -i -X PATCH \
  'https://api-docs.unknowngolf.com/_mock/ug-api/v1/players/{playerId}/communities/{communityId}/handle?email=string' \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>'

Responses

Successful response

Bodyapplication/json
Response
application/json
null

Request

Update the Player's name, if the player has already completed their profile on Unknown Golf update the player's name can only be performed by the player on Unknown Golf.

Security
bearerAuth
Path
playerIdinteger(int32)required
Query
firstNamestringrequired

First name

lasttNamestringrequired

Last name

suffixstring

Last name

curl -i -X PATCH \
  'https://api-docs.unknowngolf.com/_mock/ug-api/v1/players/{playerId}/name?firstName=string&lasttName=string&suffix=string' \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>'

Responses

Successful response

Bodyapplication/json
Response
application/json
null

Request

Update the Player's mobile phone, if the player has already completed their profile on Unknown Golf update the player's phone can only be performed by the player on Unknown Golf.

Security
bearerAuth
Path
playerIdinteger(int32)required
Query
phoneCountryCdstringrequired

Phone country code, example (US)

phonestringrequired

Phone number

curl -i -X PATCH \
  'https://api-docs.unknowngolf.com/_mock/ug-api/v1/players/{playerId}/phone?phoneCountryCd=string&phone=string' \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>'

Responses

Successful response

Bodyapplication/json
Response
application/json
null
Operations

Request

Path
pathstringrequired
curl -i -X GET \
  'https://api-docs.unknowngolf.com/_mock/ug-api/v1/application.wadl/{path}'

Responses

default response

Bodyapplication/xml
Response
application/xml
null

Request

curl -i -X GET \
  https://api-docs.unknowngolf.com/_mock/ug-api/v1/application.wadl

Responses

default response

Body
Response
null