How can we help?

Search for answers to your questions by entering keywords below, or look through our knowledge base.

API V1 Overview



Important Note: API V1 is no longer the recommended API when integrating with Club OS.  To build a new integration, please refer to our API v3 Documentation for the most up to date APIs and documentation.



The Club OS API uses HTTPS URLs to access its services.  

  1. Here is a good article on REST concepts if you are not familiar.   
  2. You should also understand the JSON data format as all request data must be sent as valid JSON


Club OS will provide you a username and password when you register for the API.  Here is a good reference for HTTP Basic Auth, which you must use for all requests.

You must also make sure to specify the Content-Type header to be "application/json" or your request will not succeed.


Club OS API v 1.0 services are divided into specific groups.  Please click the links below to access the service you are interested in.  

Service Name
User Services Verify, add and update members, trainers, and salespeople.
Prospect Services Add and update prospects.
ID Lookup Services Lookup employees, prospects, and members via email or system ID.


Legacy Endpoint Documentation

Service Name
Payment Services Verify, add and update memberships, payments, and recurring club services.
Single Sign-On How to enable Single Sign-On via the Club OS mobile app.


Additional Information

UNIX Timestamp

Unless otherwise specified, all DateTimes that are sent and received from the Club OS webservices will be in standard UNIX Timestamp format, as shown below.



The Club OS API will respond to requests with a generic JSON Response object.

status Boolean true if the request was successful, false if errors.
responses ResponseMessage[] An array of ResponseMessage objects (see below).


message String A message describing what happened to the resource.
value String The id of the resource.
Using the ResponseMessage value property

The value property will contain the Club OS unique id for the resource you are creating or updating.

Below is an example ResponseObject:

{"status": true, "responses": [{"message":"Member Found","value":"CLUBOSUSERID"}]}

After a successful request, you should save this value in your database with the associated user.  Then you can use them on subsequent requests.  The unique id's ensure that our systems stay in-sync throughout the existence of the resource you are dealing with (users, memberships, club services, and payments).  


Feel free to use any library or language you wish.  If you would like to share your code once it works, please contact our support team and they will post it here.


This example shows how to post a prospect to Club OS via PHP (Wordpress, Facebook, etc..)


    $body = array(
        'firstName' => $first_name,
        'lastName' => $last_name,
        'email' => $email,
        'mobilePhone' => $mobile_phone,
        'notes' => $notes,
        'source' => $source,
        'gender' => 'M'
    $body_json = json_encode($body);
    $args = array(
        'headers' => array(
               'Authorization' => 'Basic ' . base64_encode( '[username]' . ':' . '[password]' ),
               'Content-type' => 'application/json'
        'body' => $body_json,
        'sslverify' => false
    $resp = wp_remote_post( $post_url, $args );




This example uses the Jersey library which can be downloaded here.

public class JerseyClientTest {
        Client client = Client.create();
        client.addFilter(new HTTPBasicAuthFilter(username, password)); //Provided by Club OS
        WebResource webResource = client
        MultivaluedMap<String, String> params = new MultivaluedMapImpl();
        params.add("clubLocationId", clubLocationId); //Provided by Club OS
        ClientResponse response = webResource.queryParams(params).type("application/json")
           .post(ClientResponse.class, requestBody);
        String output = response.getEntity(String.class);


#!/usr/bin/perl -w
# Sample starter Perl code for Club OS integration.
use strict;
use JSON::XS;
use REST::Client;
use MIME::Base64;
my $locationID = 'xxx'; # provided by Club OS
my $auth = MIME::Base64::encode_base64( 'username:password' ); # provided by Club OS
my $client = REST::Client->new();
$client->addHeader( 'Content-type' => "application/json" );
$client->addHeader( 'Authorization' => "Basic $auth" );
$client->GET( $res );
my $response = JSON::XS->new->allow_nonref->decode( $client->responseContent() );
print "Status: $response->{status}\n";
foreach my $response_message ( @{ $response->{responses} } ) {
   print "Message: $response_message->{message}\n" if $response_message->{message};
   print "Value: $response_message->{value}\n" if $response_message->{value};
# sample POST
# my $json = JSON::XS->new->allow_nonref->encode( {
#       role => 'member',
#       firstName => 'Bob',
#       lastName => 'Gonzalez',
#       # etc...
#    } );
# $client->POST( $res, $json );
# my $response = JSON::XS->new->allow_nonref->decode( $client->responseContent() );



Was this article helpful?
0 out of 1 found this helpful