Direct API
Deliver FleetManager data directly via HTTPS — without Brinkhaus-Tools or MQTT.
Authentication
All ingest endpoints use Bearer token authentication. Tokens are created in the FleetManager dashboard under Settings → Tokens.
Authorization: Bearer fmt_YOUR_TOKEN Path Parameters
All endpoints use three path slugs:
{customer}— Customer slug (e.g.my-customer){machine}— Machine slug (e.g.server-01){software}— Software slug (e.g.my-app)
Format: ^[a-z0-9][a-z0-9-]*$
Heartbeat
POST /api/ingest/{customer}/{machine}/{software}/heartbeat
Regular liveness signal. If the heartbeat is missing for >5 min, the traffic light turns red.
curl -X POST https://fleet.example.com/api/ingest/my-customer/server-01/my-app/heartbeat \
-H "Authorization: Bearer fmt_YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"ts": "2026-03-06T12:00:00Z",
"version": "1.0.0",
"uptime_seconds": 86400,
"pid": 12345,
"ip_addresses": ["192.168.1.10"]
}' All fields are optional. ts defaults to server time if omitted.
Diagnostics
POST /api/ingest/{customer}/{machine}/{software}/diagnostics
Send diagnostic messages with error codes and severity levels.
curl -X POST https://fleet.example.com/api/ingest/my-customer/server-01/my-app/diagnostics \
-H "Authorization: Bearer fmt_YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"items": [
{"code": 1001, "message": "MQTT connection failed", "severity": 2},
{"code": 1002, "message": "Configuration loaded", "severity": 0}
]
}' Severity 0 — Info
Normal operation
Severity 1 — Warning
Degraded operation
Severity 2 — Error
Critical failure
Status
POST /api/ingest/{customer}/{machine}/{software}/status
Send the current operational status with an optional snapshot.
curl -X POST https://fleet.example.com/api/ingest/my-customer/server-01/my-app/status \
-H "Authorization: Bearer fmt_YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"status": "running",
"message": "All systems operational",
"snapshot": {
"MQTT-Host": "broker.example.com:1883",
"Connected": true
}
}'
Valid status values: running,
degraded,
error,
stopped
Response Format
All endpoints respond with:
{"ok": true} // HTTP 200 — Success
{"detail": "..."} // HTTP 403 — Invalid token or unauthorized customer Changelog
5.10.0 2026-07-01
Added
- Typed status values: snapshot leaves can describe themselves ({value, type, unit, label, hint}) — backward compatible, leaves without type unchanged
5.8.0 2026-06-03
Changed
- Artifact list filterable per service: GET /api/machines/{id}/artifacts?software=<slug>
5.7.1 2026-06-02
Fixed
- Ingest upsert is now race-safe: concurrent first reports of the same instance triggered HTTP 500
5.7.0 2026-06-02
Added
- New optional heartbeat fields group, location, group_priority, sort_priority — the old payload format is still accepted
5.6.0 2026-06-02
Added
- Artifact upload (chunked, resumable): POST …/artifact-init, PUT …/artifact-chunk/{id}/{n}, POST …/artifact-complete/{id}
- New endpoints GET /api/machines/{id}/artifacts and GET /api/artifacts/{id}/download
5.5.0 2026-06-02
Added
- Host metrics: POST /api/ingest/{customer}/{machine}/logcollector/metrics (idempotent via client_metric_id)
- New endpoint GET /api/machines/{id}/metrics
5.3.0 2026-05-04
Added
- GET /auth/me additionally returns pending_conversions and email_sha256
- New endpoint POST /auth/conversions/ack (idempotent)
5.0.0 2026-03-17
Added
- Multi-customer: GET /api/auth/my-customers and POST /api/auth/switch-customer
- JWT includes new is_system_admin claim
4.16.0 2026-03-17
Changed
- Login via email (username is still accepted); email is mandatory and unique
4.13.0 2026-03-11
Added
- Agent command system: modules advertise commands in the snapshot, queue delivers on next agent contact
- Command ack endpoint: agents confirm execution (success/failure)
4.12.2 2026-03-11
Fixed
- Status snapshots from security agents were discarded on receipt
4.10.0 2026-03-11
Added
- New endpoint GET /api/dashboard/license-status
Changed
- GET /api/customers/{id}/license-key additionally returns device count, limit status, and grace period
4.9.0 2026-03-10
Added
- New endpoint GET /api/onboarding/status (setup progress)
4.8.0 2026-03-10
Added
- New endpoint GET /api/support-info (license-dependent support contacts)
4.7.0 2026-03-08
Added
- New ingest endpoint /help for diagnostic help texts (DE + EN); ingest responds with HTTP 202 when help texts are missing
- GET /instances/{id}/help?code=&lang= to retrieve help texts
4.6.3 2026-03-06
Added
- CI: GitLab Release job with automatic changelog extraction
4.4.0 2026-03-04
Added
- Diagnostics whitelist: pattern-based event suppression
0.9.0 2026-03-04
Added
- OpenAPI documentation with tags and response models
- Status snapshots: full StatusEngine tree
- Ingest rejection log reactivated
Start for free — 5 devices included
Fleet monitoring and security compliance in under 10 minutes. No credit card required.