Returns one Forge cloud server: its state, network addresses, SSH host keys, price, this month's cost (Aitronos servers) and what can be done with it now. Poll it about every two seconds while the server is in a backend-driven state (creating, booting, parking, resuming, deleting, revoking); the setup itself is described in the lifecycle.
A server is visible to the person who created it and to members with manage_forge; anyone else is told it does not exist. Requires a bearer token (or API key) whose principal holds the use_forge capability in the acting organization. It works while Forge cloud compute is switched off, so a server can always be found and stopped.
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.
The server object. Every host endpoint returns it.
Identity
idstring —fchost_followed by 32 hex characters.offering_idstring — the offering it runs on, e.g.aitronos.kindstring —managed(Aitronos servers, billed to your organization) orbyo(your organization's own provider account, billed by the provider).namestring — the name given at creation.organizationobject — the organization the server is billed to and acted on in:idstring, andnamestring ornull(nullwhen it cannot be read right now). Sendorganization.idasorganization_idorX-Organization-Idwith every request about this server.user_idstring ornull— the user who created it.project_groupobject ornull— the Forge project group the server was rented in, fixed when it was created:idstring (fpgrp_id),client_idstring ornull(Forge's own id for the group) andnamestring ornull(bothnullwhen they cannot be read right now; theidnever is). A group deleted since is still named.nullwhen the server was rented outside any group. The group never moves the server's billing: the server stays billed toorganization, the organization it was rented in, even when the group's organization changes later; the group only places the server's usage under it on the organization's usage report.location_id,location_labelstring — where it runs. For Aitronos servers the label is a country, e.g.Germany; for your own account both are the provider's location id.size_id,size_labelstring — its size, e.g.16 vCPU · 64 GB; for your own account both are the provider's size id.
State
statestring — the lifecycle state; see the lifecycle.state_labelstring — the state as a sentence to show the person.transientboolean —truewhile the server is between states. Backend-driven states (creating,booting,parking,resuming,deleting,revoking) end on their own; client-driven ones (awaiting_clienttopairing) end when the client reports its next step.stepstring ornull— the setup step reached (securing,installing,pairingorready);nulloutside setup.step_started_at,state_changed_atstring ornull— when the step started and when the server entered its current state (UTC).failureobject ornull— why the last lifecycle step failed:code(aFORGE_COMPUTE_*error code, e.g.FORGE_COMPUTE_CAPACITY_UNAVAILABLEorFORGE_COMPUTE_PROVIDER_LIMIT),message(a sentence safe to show) anddetails(e.g.alternatives). A failed create ends infailed_clean; a failed resume goes back toparked; a failed park goes back toready; a step that may have left a running server ends infailed_billing.actionsarray of strings — what the caller may request now, in display order:park,resume,delete,revoke. Already filtered by what the offering supports:parkis never listed for an offering whosecapabilities.parkisfalsein List compute offerings.
Connection
ipv4,ipv6string ornull— the server's public addresses while it exists. A resumed server usually has new ones.ssh_portinteger — the SSH port,22.ssh_userstring — the user to log in as, alwaysforge.bootstrap_host_key_pubstring ornull— the bootstrap host key (K0) to trust on the first connection.nullin the create response, set once the backend has generated it (byawaiting_clientat the latest), andnullagain once the host key was reported.host_key_pubstring ornull— the server's own host key (K1), once reported. From then on it is the only key to trust.
Money
priceobject — the price the server was created (or last resumed) at; it is billed at exactly this price.hourly,monthly_capandparked_per_gb_monthare decimal strings incurrency;sourceisaitronos(billed to your organization) or the bring-your-own offering id (billed by that provider);includes_vatisfalse;catalog_versionandquoted_atsay where and when it was quoted;price_verifiedistruewhen the price was confirmed at the source.month_to_datestring ornull— Aitronos servers: what this server has cost your organization this calendar month, in CHF.nullfor bring-your-own servers, and when the reading is unavailable right now (never"0.00"in its place).noticeobject ornull— Aitronos servers near or at a spending limit;nullwhen there is none.codestring:spend_cap_90,spend_cap_100orspend_cap_parkedfor the organization's spending limit, ormember_limit_90,member_limit_100ormember_limit_parkedfor the per-person limit of the server's owner (at 90%; at 100% while the server keeps running or until it can be parked; parked at 100%). The organization's notice wins when both apply. Showmessagefor any other code.messagestring (a sentence to show, for example "You have used 92% of your monthly limit of CHF 12.50 for Aitronos servers. At 100%, your running Aitronos servers are parked: their work is saved and compute charges stop."),percentinteger ornull(how much of the limit is used, at most 100;nullwhen not known) andset_atstring ornull(when the notice was set, UTC).idle_reminderobject ornull— set while the server isreadyand no activity was reported for the organization'sidle_reminder_hours:since(when it was last in use) andmessage.reconcile_flagsobject ornull— bring-your-own servers only: resources of this server that still exist in your provider account although they should not (for example after a delete).leftover_resourceslists each withresource_type(server,snapshot,ssh_keyorfirewall),provider_resource_id,name(ornull),first_seen_atandlast_seen_at(UTC);message(a sentence to show, ornull) andchecked_at(UTC, ornull) go with it.nullwhen nothing is left; alwaysnullfor Aitronos servers.
Times and reasons
created_at,ready_at(the last time it became ready),parked_at,deleted_at,revoked_at,last_activity_atstring ornull(UTC).parked_expires_atstring ornull— parked Aitronos servers only: when the saved server is deleted unless it is resumed first (UTC). An Aitronos server parked for 30 days is deleted; its owner is notified 3 days before, and a server is never deleted with less than 3 days' notice.nullfor bring-your-own servers (they never expire) and for any server that is not parked.revoke_reasonstring ornull— the reason given when it was revoked.provider_server_idstring — bring-your-own servers only, while a server exists: its id in your own provider account. The key is left out entirely for Aitronos servers and when no server exists.
Every timestamp in the object, the ones inside price, notice, idle_reminder and reconcile_flags included, is ISO 8601 in UTC with a Z suffix, e.g. 2026-09-28T09:03:41.502318Z.
{
"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": null
}| 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. |
| 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. |
| 422 | INVALID_ID_FORMAT | host_id is neither a UUID nor fchost_<32 hex>. |
- Bash
- Python
- Python
- JavaScript
curl "https://api.aitronos.com/v1/forge/compute/hosts/fchost_5d0c2b9e7a414f3c9e8b1a6d2f4c7e90" \
-H "Authorization: Bearer $ACCESS_TOKEN"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": null
}- 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