Introduction

This document serve as a reference for partners of Kodgem Straight+ to access to information of common users.

Authentication

The Straight+ Partner API uses API keys for authentication. API keys will be provided to you by Kodgem upon assessment of your API request form.

End Points Overview

API Base URL: https://api.kodgemstraight.com/coreapi/partner/

All request to Straight+ API requires the api-key header.

Available Endpoints

Check access

Checks the validity of given api-key and returns the name of its owner.

Get my users

Returns a list of users this partner has access to.

Daily activities

Returns a list of activity records of given users within the day starting with given epoch

Weekly Activities

Returns a list of activity records of given users within the week starting with given epoch

Check access

Checks the validity of given api-key and returns the name of its owner.

URL: GET /whoami

Headers:

  • api-key

Response:

{
  "name": "Example Partner",
  "keyValidFrom": "2024-12-25T09:00:00.000Z",
  "keyExpireAt": "2025-12-25T09:00:00.000Z"
}

Get my users

Returns a list of users this partner has access to.

URL: GET /users

Headers:

  • api-key

Response:

[
  {
    "id": 5593,
    "firstName": "John",
    "lastName": "Doe",
    "email": "john_doe@kodgem.com",
    "gender": "Male",
    "age": 39,
    "weight": 62,
    "height": 177,
    "osType": "Android",
  }
]

Daily activities

Returns a list of activity records of given users within the day starting with given epoch

URL: GET /activity/daily

Headers:

  • api-key

Body:

{
  "start": 1703710800,
  "users": [
    44, ...
  ]
}

Errors:

  • 400: Missing or invalid request body
  • 401: Missing or invalid API key
  • 500: Unexpected errors

Response:

[
  {
    "id": 44,
    "activities": [
      {
        "unit": 1,
        "casualStraight": 50,
        "casualSlouch": 5,
        "trainingStraight": 3,
        "trainingSlouch": 2
      },
      {
        "unit": 3,
        "casualStraight": 5,
        "casualSlouch": 15,
        "trainingStraight": 7,
        "trainingSlouch": 10
      },
      {
        "unit": 6,
        "casualStraight": 10,
        "casualSlouch": 10,
        "trainingStraight": 10,
        "trainingSlouch": 10
      },
      {
        "unit": 8,
        "casualStraight": 0,
        "casualSlouch": 0,
        "trainingStraight": 30,
        "trainingSlouch": 30
      },
      {
        "unit": 12,
        "casualStraight": 0,
        "casualSlouch": 60,
        "trainingStraight": 0,
        "trainingSlouch": 0
      },
      {
        "unit": 15,
        "casualStraight": 10,
        "casualSlouch": 12,
        "trainingStraight": 8,
        "trainingSlouch": 20
      },
      {
        "unit": 19,
        "casualStraight": 15,
        "casualSlouch": 15,
        "trainingStraight": 15,
        "trainingSlouch": 15
      },
      {
        "unit": 21,
        "casualStraight": 20,
        "casualSlouch": 5,
        "trainingStraight": 10,
        "trainingSlouch": 15
      }
    ],
    "summary": {
        "totalUsageMinutes": 417,
        "stoodStraightPercentage": 46,
        "casualModeStraight": 110,
        "casualModeSlouch": 122,
        "straightModeStraight": 83,
        "straightModeSlouch": 102
    }
  },
  ...
]

Weekly Activities

Returns a list of activity records of given users within the week starting with given epoch

URL: GET /activity/daily

Headers:

  • api-key

Body:

{
  "start": 1703710800,
  "users": [
    44, ...
  ]
}

Errors:

  • 400: Missing or invalid request body
  • 401: Missing or invalid API key
  • 500: Unexpected errors

Response:

[
  {
    "id": 44,
    "activities": [
      {
        "unit": 0,
        "casualStraight": 50,
        "casualSlouch": 75,
        "trainingStraight": 60,
        "trainingSlouch": 115
      },
      {
        "unit": 1,
        "casualStraight": 80,
        "casualSlouch": 100,
        "trainingStraight": 70,
        "trainingSlouch": 150
      },
      {
        "unit": 2,
        "casualStraight": 65,
        "casualSlouch": 90,
        "trainingStraight": 85,
        "trainingSlouch": 130
      },
      {
        "unit": 3,
        "casualStraight": 95,
        "casualSlouch": 110,
        "trainingStraight": 75,
        "trainingSlouch": 160
      },
      {
        "unit": 6,
        "casualStraight": 55,
        "casualSlouch": 80,
        "trainingStraight": 95,
        "trainingSlouch": 120
      }
    ],
    "summary": {
        "totalUsageMinutes": ,
        "stoodStraightPercentage": 345,
        "casualModeStraight": 455,
        "casualModeSlouch": 122,
        "straightModeStraight": 385,
        "straightModeSlouch": 675
    }
  },
  ...
]