Records when a server was last in use. Send it at most once every five minutes while the server is used. It drives the idle reminder (idle_reminder on the server object, after the organization's idle_reminder_hours) and, when the organization turned it on, automatic parking after auto_park_idle_hours — see compute settings. The idle clock counts from the later of last_activity_at and ready_at, so a freshly resumed server is never parked for inactivity it had before.
A time in the future is read as now, and a time no later than the one already recorded changes nothing. A time without a zone is read as UTC. Allowed while the server is awaiting_client, securing, installing, pairing or ready.
Requires a bearer token (or API key) whose principal holds the use_forge capability in the acting organization and created the server or holds manage_forge, and Forge cloud compute switched on for the organization.
host_id string required
The server's id: the fchost_ id returned in id, or the UUID sent when the server was created (any letter case, with or without hyphens).
organization_id string optional
The organization the server belongs to: send its organization.id (from List your servers in every organization). Defaults to your current organization, where a server of another organization is not found. You must be an active member of it, or the request is refused with 403 ORGANIZATION_ACCESS_DENIED.
X-Organization-Id string optional
The same as organization_id, as a header. When both are sent, the query parameter wins.
at string required
When the server was last used, as an ISO 8601 date and time, e.g. 2026-09-28T09:25:00Z.
Unknown fields are refused.
200 OK with the server object, last_activity_at updated.
{
"id": "fchost_5d0c2b9e7a414f3c9e8b1a6d2f4c7e90",
"offering_id": "aitronos",
"kind": "managed",
"name": "build-box",
"organization": {"id": "org_3c1e9a7b5d2f4e8a9b0c6d1e2f3a4b5c", "name": "Acme Engineering"},
"user_id": "usr_7f3a9c2e1b8d4e6fa0c5b3d9e2f1a4c7",
"project_group": {"id": "fpgrp_4b9e2c7a1d3f4e8a9c0b6d2e1f3a5b7c", "client_id": "grp-clients", "name": "Clients"},
"location_id": "eu-central",
"location_label": "Germany",
"size_id": "std-16",
"size_label": "16 vCPU · 64 GB",
"state": "ready",
"state_label": "Ready",
"transient": false,
"step": "ready",
"step_started_at": "2026-09-28T09:03:41.502318Z",
"state_changed_at": "2026-09-28T09:03:41.502318Z",
"failure": null,
"ipv4": "203.0.113.24",
"ipv6": "2001:db8:4f2a::1",
"ssh_port": 22,
"ssh_user": "forge",
"bootstrap_host_key_pub": null,
"host_key_pub": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIExampleServerHostKeyForDocumentationOnly0000",
"price": {
"hourly": "0.83",
"monthly_cap": "520.30",
"currency": "CHF",
"source": "aitronos",
"includes_vat": false,
"catalog_version": "fc-3b8e1f0a9c42",
"quoted_at": "2026-09-28T09:00:00.184066Z",
"parked_per_gb_month": "0.0269",
"price_verified": true
},
"month_to_date": "0.83",
"notice": null,
"idle_reminder": null,
"reconcile_flags": null,
"actions": ["park", "delete", "revoke"],
"created_at": "2026-09-28T09:00:00.184066Z",
"ready_at": "2026-09-28T09:03:41.502318Z",
"parked_at": null,
"parked_expires_at": null,
"deleted_at": null,
"revoked_at": null,
"revoke_reason": null,
"last_activity_at": "2026-09-28T09:25:00Z"
}| Status | Code | When |
|---|---|---|
| 401 | AUTHENTICATION_REQUIRED | No valid credential. |
| 403 | ORGANIZATION_ACCESS_DENIED | organization_id or X-Organization-Id names an organization you are not an active member of. |
| 403 | INSUFFICIENT_PERMISSIONS | The caller does not hold use_forge in the acting organization. |
| 403 | FORGE_COMPUTE_DISABLED | Forge cloud compute is not switched on for the organization. |
| 404 | FORGE_COMPUTE_HOST_NOT_FOUND | No server with this id in the acting organization, or it was created by someone else and the caller does not hold manage_forge. |
| 409 | FORGE_COMPUTE_INVALID_STATE | The server is not running (for example parked or deleting). details.action is activity. |
| 422 | VALIDATION_ERROR | at is missing or not a date and time, or the body has an unknown field. |
| 422 | INVALID_FIELD_VALUE | at is before the earliest representable time. details.field is at. |
| 422 | INVALID_ID_FORMAT | host_id is neither a UUID nor fchost_<32 hex>. |
- Bash
- Python
- Python
- JavaScript
curl -X POST "https://api.aitronos.com/v1/forge/compute/hosts/fchost_5d0c2b9e7a414f3c9e8b1a6d2f4c7e90/activity" \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"at": "2026-09-28T09:25:00Z"
}'Response:
{
"id": "fchost_5d0c2b9e7a414f3c9e8b1a6d2f4c7e90",
"offering_id": "aitronos",
"kind": "managed",
"name": "build-box",
"organization": {"id": "org_3c1e9a7b5d2f4e8a9b0c6d1e2f3a4b5c", "name": "Acme Engineering"},
"user_id": "usr_7f3a9c2e1b8d4e6fa0c5b3d9e2f1a4c7",
"project_group": {"id": "fpgrp_4b9e2c7a1d3f4e8a9c0b6d2e1f3a5b7c", "client_id": "grp-clients", "name": "Clients"},
"location_id": "eu-central",
"location_label": "Germany",
"size_id": "std-16",
"size_label": "16 vCPU · 64 GB",
"state": "ready",
"state_label": "Ready",
"transient": false,
"step": "ready",
"step_started_at": "2026-09-28T09:03:41.502318Z",
"state_changed_at": "2026-09-28T09:03:41.502318Z",
"failure": null,
"ipv4": "203.0.113.24",
"ipv6": "2001:db8:4f2a::1",
"ssh_port": 22,
"ssh_user": "forge",
"bootstrap_host_key_pub": null,
"host_key_pub": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIExampleServerHostKeyForDocumentationOnly0000",
"price": {
"hourly": "0.83",
"monthly_cap": "520.30",
"currency": "CHF",
"source": "aitronos",
"includes_vat": false,
"catalog_version": "fc-3b8e1f0a9c42",
"quoted_at": "2026-09-28T09:00:00.184066Z",
"parked_per_gb_month": "0.0269",
"price_verified": true
},
"month_to_date": "0.83",
"notice": null,
"idle_reminder": null,
"reconcile_flags": null,
"actions": ["park", "delete", "revoke"],
"created_at": "2026-09-28T09:00:00.184066Z",
"ready_at": "2026-09-28T09:03:41.502318Z",
"parked_at": null,
"parked_expires_at": null,
"deleted_at": null,
"revoked_at": null,
"revoke_reason": null,
"last_activity_at": "2026-09-28T09:25:00Z"
}- Forge cloud compute overview
- List billing organizations
- Choose the default billing organization
- List project groups
- Register or update a project group
- Delete a project group
- List compute offerings
- Get offering options
- Resolve a free size
- List connected accounts
- Connect a cloud account
- Disconnect a cloud account
- Create a server
- List servers
- List your servers in every organization
- Get a server
- Get a server's daily cost and uptime
- List a server's running intervals
- List a server's event history
- Report a setup step
- Report the server's host key
- Mark a server ready
- Report activity
- Park a server
- Resume a server
- Delete a server
- Revoke a server
- Get compute settings
- Update compute settings
- Get spend limits
- Change the organization's limits
- Set your own limit
- List member limits
- Set a member's limit
- Delete a leftover resource