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
- URL-encode your client secret at urlencoder.org
- Concatenate as
<ClientID>:<URL_Encoded_ClientSecret> - Base64-encode that string at base64encode.org
- Prefix the result with
Basicin 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
- Explore the full Upload API workflow
- Browse the Synchronous API reference
- Set up real-time event streaming via the AsyncAPI
- See the C# Upload API tutorial for a complete code example