API Open Endpoints

API Open Endpoints

Open Endpoints are API calls designed for simplified use of the REST API functionality. The primary use case for the Open Endpoints is in client-server interactions, such as through a mobile app. These actions typically involve looking up information about an advocate or whom they’ve referred.

Some examples include:

Authentication options

  • Authentication via JSON Web Token (JWT) - JWTs can be used for requests that require authentication. The process for building JWTs is outlined in our JSON Web Tokens documentation. Use for client-server communication.
  • Authentication via API Key - Your API key can also be used for requests that require authentication. Use for server-server communication.
  • Unauthenticated - Some Open Endpoints do not require any form of authentication.

Authentication Requirements by Method

The following table summarizes the Open Endpoint methods that are available for use, and their required level of authentication:

Open Endpoint method Authentication required
Create a user Write Token or API key
Upsert a user Write Token or API key
Lookup a user Read Token or API key
Lookup a user by referral code No authentication required.
Lookup a referral code No authentication required.
Apply a referral code Write Token or API key.
List referrals Read Token or API key.

Authentication with JWT

Authentication with JWTs should be used in client-server, not server-server communication.

The Advocate API accepts two types of JWTs: read tokens and write tokens. Read tokens are intended to validate a request to lookup information about an existing user/account while write tokens are intended to be used when adding or updating information about a user/account.

The format of the JWT payloads required for read and write tokens are outlined below:

Read Token Payload

The payload of a read token is based on the user id and account id:

{  
  "user": {  
      "id": "adfgafdg",  
      "accountId": "adfklajdnrerereACdsedf"  
    },  
    "exp": 1462327764 //optional date in seconds since the epoch  
}

Write Token Payload

The payload of a write token can contain the complete user object:
{
  "user": {
      "id": "adfgafdg",
      "accountId": "adfklajdnrerereACdsedf",
      "email": "[email protected]",
      "firstName": "Bob",
      "lastName": "Testerson", //optional
      "locale": "en_US", //optional
      "referralCode": "BOBTESTERSON", //optional
      "imageUrl": "" //optional
    },
    "exp": 1462327764 //optional date in seconds since the epoch
}

Building the JWT

📘

Tip:

The process for building the JWT is outlined on our JSON Web Tokens page.

Make sure that you are trying to sign the correct format of the payload (Read Token vs. Write Token) for your specific Open Endpoint API call.

Authentication with API Key

Authentication with your API key should be done when conducting server-server communication.

📘

Tip

Authenticating Open Endpoint calls with an API key is done in the same way as with our standard API calls, details for which can be found in API Authentication.