When CorbaTime sends the POST field action=get_clients, your server replies with a JSON object containing a clients array. Each client has a name, an internal_id and a defaultDescription, and timers in the app can then be linked to that client.
Last updated: 15 October 2026
After checking the login details (see Step 1), read the POST parameter action. To fetch the clients that your timers can connect to, the app sends action=get_clients. No other fields are sent for this action, apart from the username and password if you use that login method.
The app expects a JSON object with a clients array. For example:
{
"clients": [
{
"name": "Client 1 name",
"internal_id": 1,
"defaultDescription": "DD-MM Worked hours"
},
{
"name": "Client 2 name with hour rate",
"internal_id": 2,
"defaultDescription": "DD-MM Worked hours"
},
{
"name": "Client 17 name with hour rate",
"internal_id": 17,
"defaultDescription": "DD-MM Worked hours"
}
]
}
Each client in the array has these fields. Keep the key names exactly as shown, the app decodes these exact names:
| Key | Type | Meaning |
|---|---|---|
name | string | The client name shown in the app. |
internal_id | integer | Your own ID for this client. A pushed timer sends it back as client_id (see Step 3). |
defaultDescription | string (may be empty) | The default name/description for new timers of this client. Note the camelCase key, even if your database column is snake_case. |
The defaultDescription you provide will be added as the name/description of the timer. DD-MM or MM-DD at the start of the description will be replaced with the date the timer started. For example, starting a timer today will result in a name/description of 03-11 for DD-MM or 11-03 for MM-DD.
If something goes wrong, reply with a status outside the 2xx range and a JSON error, for example {"error":"Database unavailable"}. The app shows the text of the error key.
Other instructions:
Step 1: Login methods explanation
Step 2: Load a list of clients
Step 3: Process a pushed timer