Download OpenAPI specification:Download
Returns detailed version information about the server, including build information and system details
{- "server": {
- "version": "1.0.0"
}, - "database": {
- "type": "PostgreSQL",
- "version": "15.3",
- "database_name": "synkronus_db"
}, - "system": {
- "os": "linux",
- "architecture": "amd64",
- "cpus": 4
}, - "build": {
- "commit": "a1b2c3d4e5f6",
- "build_time": "2023-01-01T12:00:00Z",
- "go_version": "go1.20.1"
}
}
Compares two versions of the app bundle and returns detailed changes
current | string The current version (defaults to latest) |
target | string The target version to compare against (defaults to previous version) |
x-api-version | string^\d+\.\d+\.\d+$ Example: 1.0.0 Optional API version header using semantic versioning (MAJOR.MINOR.PATCH) |
{- "compare_version_a": "string",
- "compare_version_b": "string",
- "form_changes": true,
- "ui_changes": true,
- "new_forms": [
- {
- "form": "string"
}
], - "removed_forms": [
- {
- "form": "string"
}
], - "modified_forms": [
- {
- "form": "string",
- "schema_changed": true,
- "ui_changed": true,
- "core_changed": true,
- "added_fields": [
- {
- "field": "string",
- "type": "string"
}
], - "removed_fields": [
- {
- "field": "string",
- "type": "string"
}
]
}
]
}
x-api-version | string^\d+\.\d+\.\d+$ Example: 1.0.0 Optional API version header using semantic versioning (MAJOR.MINOR.PATCH) |
{- "files": [
- {
- "path": "string",
- "size": 0,
- "hash": "string",
- "mimeType": "string",
- "modTime": "2019-08-24T14:15:22Z"
}
], - "version": "string",
- "generatedAt": "2019-08-24T14:15:22Z",
- "hash": "string"
}
path required | string |
preview | boolean Default: false If true, returns the file from the latest version including unreleased changes |
if-none-match | string |
x-api-version | string^\d+\.\d+\.\d+$ Example: 1.0.0 Optional API version header using semantic versioning (MAJOR.MINOR.PATCH) |
x-api-version | string^\d+\.\d+\.\d+$ Example: 1.0.0 Optional API version header using semantic versioning (MAJOR.MINOR.PATCH) |
bundle | string <binary> ZIP file containing the new app bundle |
{- "message": "string",
- "manifest": {
- "files": [
- {
- "path": "string",
- "size": 0,
- "hash": "string",
- "mimeType": "string",
- "modTime": "2019-08-24T14:15:22Z"
}
], - "version": "string",
- "generatedAt": "2019-08-24T14:15:22Z",
- "hash": "string"
}
}
version required | string Version identifier to switch to |
x-api-version | string^\d+\.\d+\.\d+$ Example: 1.0.0 Optional API version header using semantic versioning (MAJOR.MINOR.PATCH) |
{- "message": "Switched to app bundle version 20250507-123456"
}
Obtain a JWT token by providing username and password
x-api-version | string^\d+\.\d+\.\d+$ Example: 1.0.0 Optional API version header using semantic versioning (MAJOR.MINOR.PATCH) |
username required | string User's username |
password required | string <password> User's password |
{- "username": "string",
- "password": "pa$$word"
}
{- "token": "string",
- "refreshToken": "string",
- "expiresAt": 0
}
Obtain a new JWT token using a refresh token
x-api-version | string^\d+\.\d+\.\d+$ Example: 1.0.0 Optional API version header using semantic versioning (MAJOR.MINOR.PATCH) |
refreshToken required | string Refresh token obtained from login or previous refresh |
{- "refreshToken": "string"
}
{- "token": "string",
- "refreshToken": "string",
- "expiresAt": 0
}
Create a new user with specified username, password, and role
x-api-version | string^\d+\.\d+\.\d+$ Example: 1.0.0 Optional API version header using semantic versioning (MAJOR.MINOR.PATCH) |
username required | string New user's username |
password required | string <password> New user's password |
role required | string Enum: "read-only" "read-write" "admin" User's role |
{- "username": "string",
- "password": "pa$$word",
- "role": "read-only"
}
{- "username": "string",
- "role": "read-only",
- "createdAt": "2019-08-24T14:15:22Z"
}
Retrieve a list of all users in the system. Admin access required.
x-api-version | string^\d+\.\d+\.\d+$ Example: 1.0.0 Optional API version header using semantic versioning (MAJOR.MINOR.PATCH) |
[- {
- "username": "string",
- "role": "read-only",
- "createdAt": "2019-08-24T14:15:22Z"
}
]
Delete a user by username
username required | string Username of the user to delete |
x-api-version | string^\d+\.\d+\.\d+$ Example: 1.0.0 Optional API version header using semantic versioning (MAJOR.MINOR.PATCH) |
{- "message": "User deleted successfully"
}
Reset password for a specified user
x-api-version | string^\d+\.\d+\.\d+$ Example: 1.0.0 Optional API version header using semantic versioning (MAJOR.MINOR.PATCH) |
username required | string Username of the user whose password is being reset |
newPassword required | string <password> New password for the user |
{- "username": "string",
- "newPassword": "pa$$word"
}
{- "message": "Password reset successfully"
}
Change password for the currently authenticated user
x-api-version | string^\d+\.\d+\.\d+$ Example: 1.0.0 Optional API version header using semantic versioning (MAJOR.MINOR.PATCH) |
currentPassword required | string <password> Current password for verification |
newPassword required | string <password> New password to set |
{- "currentPassword": "pa$$word",
- "newPassword": "pa$$word"
}
{- "message": "Password changed successfully"
}
Retrieves records that have changed since a specified version.
Pagination Pattern:
since.version
(or omit for all records)has_more
is true, make next request using change_cutoff
as the new since.version
has_more
is falseExample pagination flow:
since: {version: 100}
→ Response: change_cutoff: 150, has_more: true
since: {version: 150}
→ Response: change_cutoff: 200, has_more: false
schemaType | string Filter by schemaType |
limit | integer [ 1 .. 500 ] Default: 50 Maximum number of records to return |
x-api-version | string^\d+\.\d+\.\d+$ Example: 1.0.0 Optional API version header using semantic versioning (MAJOR.MINOR.PATCH) |
client_id required | string |
object Optional pagination cursor indicating the last seen change | |
schema_types | Array of strings |
{- "client_id": "string",
- "since": {
- "version": 0,
- "id": "string"
}, - "schema_types": [
- "string"
]
}
{- "current_version": 0,
- "records": [
- {
- "observation_id": "string",
- "form_type": "string",
- "form_version": "string",
- "data": { },
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "synced_at": "2019-08-24T14:15:22Z",
- "deleted": true,
- "geolocation": {
- "latitude": -90,
- "longitude": -180,
- "accuracy": 0.1,
- "altitude": 0.1,
- "altitude_accuracy": 0.1
}
}
], - "change_cutoff": 0,
- "has_more": true,
- "sync_format_version": "1.0"
}
x-api-version | string^\d+\.\d+\.\d+$ Example: 1.0.0 Optional API version header using semantic versioning (MAJOR.MINOR.PATCH) |
transmission_id required | string <uuid> |
client_id required | string |
required | Array of objects (Observation) |
{- "transmission_id": "da08139c-7a56-4672-93e2-85353adf4d76",
- "client_id": "string",
- "records": [
- {
- "observation_id": "string",
- "form_type": "string",
- "form_version": "string",
- "data": { },
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "synced_at": "2019-08-24T14:15:22Z",
- "deleted": true,
- "geolocation": {
- "latitude": -90,
- "longitude": -180,
- "accuracy": 0.1,
- "altitude": 0.1,
- "altitude_accuracy": 0.1
}
}
]
}
{- "current_version": 0,
- "success_count": 0,
- "failed_records": [
- { }
], - "warnings": [
- {
- "id": "string",
- "code": "string",
- "message": "string"
}
]
}
Returns a manifest of attachment changes (new, updated, deleted) since a specified data version
x-api-version | string^\d+\.\d+\.\d+$ Example: 1.0.0 Optional API version header using semantic versioning (MAJOR.MINOR.PATCH) |
client_id required | string Unique identifier for the client requesting the manifest |
since_version required | integer >= 0 Data version number from which to get attachment changes (0 for all attachments) |
{- "client_id": "mobile-app-123",
- "since_version": 42
}
{- "current_version": 45,
- "operations": [
- {
- "operation": "download",
- "attachment_id": "abc123-def4-5678-9012-345678901234.jpg",
- "size": 524288,
- "content_type": "image/jpeg",
- "version": 43
}
], - "total_download_size": 1048576,
- "operation_count": {
- "download": 3,
- "delete": 1
}
}
attachment_id required | string Example: abc123.jpg |
file required | string <binary> The binary file to upload |
{- "status": "success"
}