Starts a parked server again from its kept disk, in the same location and at the same size, at the price the person confirmed. Get the quote from Get offering options for the server's own location_id and size_id and send it back as quote. The answer is 202 Accepted with the server in resuming; the confirmed quote becomes the server's price.
The server comes back at awaiting_client, usually with new addresses, and keeps its host key: host_key_pub is unchanged and there is no bootstrap key, so the client connects pinned to host_key_pub, skips securing, reports installing and pairing as it reaches them and marks the server ready. Becoming ready removes the park's stored copy and ends its storage charge. If the server cannot be started again, it goes back to parked with failure set and nothing is lost.
An Aitronos server is re-priced where its stored copy is kept, so FORGE_COMPUTE_PRICE_CHANGED carries the price that resuming will actually cost; confirm it and send it again. Resuming an Aitronos server also passes the organization's spending limit, like a create.
Allowed only while the server is parked; asking again while it is resuming returns it unchanged. 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. Forge cloud compute must be switched on for the organization, because resuming starts charges again.
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.
quote object required
The price the person confirmed for resuming, exactly as the options quoted it for the server's location and size.
hourlystring, required โ e.g."0.83", compared as a decimal.currencystring, required โ e.g.CHF.catalog_versionstring, required โ thecatalog_versionthe quote came with.
Unknown fields are refused.
202 Accepted with the server object in resuming.
{
"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": "resuming",
"state_label": "Resuming the server",
"transient": true,
"step": null,
"step_started_at": null,
"state_changed_at": "2026-09-29T08:10:12.334519Z",
"failure": null,
"ipv4": null,
"ipv6": null,
"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-29T08:10:12.334519Z",
"parked_per_gb_month": "0.0269",
"price_verified": true
},
"month_to_date": "8.31",
"notice": null,
"idle_reminder": null,
"reconcile_flags": null,
"actions": ["delete", "revoke"],
"created_at": "2026-09-28T09:00:00.184066Z",
"ready_at": "2026-09-28T09:03:41.502318Z",
"parked_at": "2026-09-28T18:03:40.905112Z",
"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. |
| 402 | FORGE_COMPUTE_SPEND_LIMIT_REACHED | Aitronos servers only: a spending limit cannot absorb one more hour at the quoted price. details.reason is spend_limit_reached, headroom_below_one_hour or compute_share_below_one_hour (the organization's spending limit); org_compute_limit_reached (the organization's monthly limit for Aitronos servers: "Your organization's monthly limit for Aitronos servers does not allow another server hour. Someone who manages billing can raise it on the Machines page."); or member_limit_reached (the per-person limit of the server's owner, which is checked even when someone else resumes it: "Your monthly limit for Aitronos servers (CHF 12.50) does not allow another server hour." followed by "You can raise or clear your own limit on the Machines page." when the owner's own limit applies, else "Someone who manages billing can raise it on the Machines page."). Show message as is. |
| 403 | FORGE_COMPUTE_DISABLED | Forge cloud compute is not switched on for the organization. |
| 403 | FORGE_COMPUTE_OFFERING_NOT_OFFERED | The offering is not offered to you right now: switched off, switched off for your organization, or offered to Aitronos staff only. message names the offering (for example "DigitalOcean is not offered right now.") and details.offering_id is its id. The server stays parked and can still be deleted. |
| 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 parked. details.action is resume. |
| 409 | FORGE_COMPUTE_PRICE_CHANGED | The quote no longer matches the live price. details.quote is the live quote to confirm. |
| 409 | FORGE_COMPUTE_CAPACITY_UNAVAILABLE | The server's size cannot be ordered in its location. details.reason is not_available_now (try again later) or no_longer_offered; details.alternatives is empty, because a resumed server keeps its location and size. |
| 422 | FORGE_COMPUTE_CREDENTIAL_MISSING | Bring-your-own servers: the account is no longer connected. |
| 422 | FORGE_COMPUTE_CREDENTIAL_REJECTED | Bring-your-own servers: the provider no longer accepts the connected account. |
| 422 | VALIDATION_ERROR | quote is missing or incomplete, or the body has an unknown field. |
| 422 | INVALID_ID_FORMAT | host_id is neither a UUID nor fchost_<32 hex>. |
| 502 | FORGE_COMPUTE_PROVIDER_UNREACHABLE | The provider could not be reached to confirm the price. |
| 503 | FORGE_COMPUTE_PRICE_UNAVAILABLE | No verified price, or no spending reading, could be taken right now. Retry after details.retry_after seconds. |
| 503 | FORGE_COMPUTE_PLATFORM_CAPACITY_REACHED | Aitronos servers only: Aitronos servers are at capacity for now, so nothing was resumed. Nothing your organization changes lifts it; try again later (after details.retry_after seconds). |
- Bash
- Python
- Python
- JavaScript
curl -X POST "https://api.aitronos.com/v1/forge/compute/hosts/fchost_5d0c2b9e7a414f3c9e8b1a6d2f4c7e90/resume" \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"quote": {"hourly": "0.83", "currency": "CHF", "catalog_version": "fc-3b8e1f0a9c42"}}'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": "resuming",
"state_label": "Resuming the server",
"transient": true,
"step": null,
"step_started_at": null,
"state_changed_at": "2026-09-29T08:10:12.334519Z",
"failure": null,
"ipv4": null,
"ipv6": null,
"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-29T08:10:12.334519Z",
"parked_per_gb_month": "0.0269",
"price_verified": true
},
"month_to_date": "8.31",
"notice": null,
"idle_reminder": null,
"reconcile_flags": null,
"actions": ["delete", "revoke"],
"created_at": "2026-09-28T09:00:00.184066Z",
"ready_at": "2026-09-28T09:03:41.502318Z",
"parked_at": "2026-09-28T18:03:40.905112Z",
"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