Skip to content

Getting started

This guide walks you through making your first API call in under five minutes.

Before you begin

You'll need:

  • A Platform account with API access enabled
  • Your Client ID and Client Secret, available from the Platform web app under Settings → API Credentials

Step 1: Get a bearer token

All Platform API requests require a bearer token obtained via the OAuth 2.0 Client Credentials flow.

Send a POST request to the token endpoint:

curl --location 'https://identity.example.com/connect/token' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--header 'Authorization: Basic <base64(ClientID:URLEncodedClientSecret)>' \
--data 'grant_type=client_credentials&scope=platform_upload_api'

Encoding your credentials

  1. URL-encode your client secret at urlencoder.org
  2. Concatenate as <ClientID>:<URL_Encoded_ClientSecret>
  3. Base64-encode that string at base64encode.org
  4. Prefix the result with Basic in the Authorization header

The response is a JWT bearer token. Copy it for the next step.

For a step-by-step C# implementation, see How to generate a bearer token? (C#).

Step 2: Upload data

Send a POST request to /api/UploadData with your bearer token and data payload:

curl --location 'https://api.example.com/api/UploadData' \
--header 'Authorization: Bearer <your_token>' \
--header 'Content-Type: application/json' \
--data '{
  "Name": "My first upload",
  "Data": "Reference,StartDate,StartTime,EndDate,EndTime\r\nUser1,01/07/2024,09:00,01/07/2024,17:00",
  "Key": "<Your_APIKey>",
  "Username": "<Your_ClientId>",
  "Overwrite": "false"
}'

The response is a processing token — a UUID string you'll use in the next step.

Step 3: Check processing status

Poll /api/GetResults with dataKey=status until the response is completedsuccessfully:

curl --location 'https://api.example.com/api/GetResults?token=<processing_token>&key=<Your_APIKey>&dataKey=status' \
--header 'Authorization: Bearer <your_token>'

Once complete, change dataKey to retrieve your results (e.g. feedback, tableofresultids).

Next steps