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.versionhas_more is falseExample pagination flow:
since: {version: 100} → Response: change_cutoff: 150, has_more: truesince: {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"
}