curl --request GET \
--url https://api.sfcompute.com/v2/nodes \
--header 'Authorization: Bearer <token>'{
"object": "list",
"has_more": true,
"data": [
{
"id": "<string>",
"resource_path": "<string>",
"owner": "<string>",
"workspace": "<string>",
"name": "<string>",
"object": "node",
"status": "awaiting_allocation",
"capacity": "cap_k3R-nX9vLm7Qp2Yw5Jd8F",
"created_at": 1738972800,
"image": "image_k3R-nX9vLm7Qp2Yw5Jd8F",
"cloud_init_user_data_used": true,
"zone": "richmond",
"deployment": "depl_k3R-nX9vLm7Qp2Yw5Jd8F",
"cloud_init_user_data": "IyEvYmluL2Jhc2gKZWNobyBoZWxsbyB3b3JsZAo=",
"tags": {
"env": "prod",
"team": "infra"
}
}
],
"cursor": "nodec_gqXR7s0Kj5mHvE2wNpLc4Q"
}List all nodes.
curl --request GET \
--url https://api.sfcompute.com/v2/nodes \
--header 'Authorization: Bearer <token>'{
"object": "list",
"has_more": true,
"data": [
{
"id": "<string>",
"resource_path": "<string>",
"owner": "<string>",
"workspace": "<string>",
"name": "<string>",
"object": "node",
"status": "awaiting_allocation",
"capacity": "cap_k3R-nX9vLm7Qp2Yw5Jd8F",
"created_at": 1738972800,
"image": "image_k3R-nX9vLm7Qp2Yw5Jd8F",
"cloud_init_user_data_used": true,
"zone": "richmond",
"deployment": "depl_k3R-nX9vLm7Qp2Yw5Jd8F",
"cloud_init_user_data": "IyEvYmluL2Jhc2gKZWNobyBoZWxsbyB3b3JsZAo=",
"tags": {
"env": "prod",
"team": "infra"
}
}
],
"cursor": "nodec_gqXR7s0Kj5mHvE2wNpLc4Q"
}Create an API token using sf tokens create or at https://sfcompute.com/account/api-keys.
Filter by workspace. A resource path like 'sfc:workspace:acme:prod:my-workspace' or an ID. Resource paths are human-readable but not stable - they change when resources are renamed or moved. IDs are stable and permanent.
(wksp_[0-9a-zA-Z_-]{1,21})|(sfc:workspace:[a-zA-Z0-9._-]+(:[a-zA-Z0-9._-]+){1,3})"wksp_k3R-nX9vLm7Qp2Yw5Jd8F"
Filter by node ID (repeatable).
node_[0-9a-zA-Z_-]{1,21}Filter by capacity. A resource path like 'sfc:capacity:acme:prod:my-capacity' or an ID. Resource paths are human-readable but not stable - they change when resources are renamed or moved. IDs are stable and permanent.
(cap_[0-9a-zA-Z_-]{1,21})|(sfc:capacity:[a-zA-Z0-9._-]+(:[a-zA-Z0-9._-]+){1,3})"cap_k3R-nX9vLm7Qp2Yw5Jd8F"
Filter by node status (repeatable).
awaiting_allocation when waiting for compute allocation on its capacity, running once assigned and physical node is running (still takes time for image to be downloaded and booted), terminated when stopped by user or after running out of allocation, failed on hardware fault.
awaiting_allocation, running, terminated, failed 1 <= x <= 200Cursor for forward pagination (from a previous response's cursor field).
^nodec_[A-Za-z0-9_-]+$"nodec_gqXR7s0Kj5mHvE2wNpLc4Q"
Cursor for backward pagination.
^nodec_[A-Za-z0-9_-]+$"nodec_gqXR7s0Kj5mHvE2wNpLc4Q"
Additional fields to include in the response.
"cloud_init_user_data"Fields to expand with full objects instead of IDs.
capacity, image, deployment Filter by tag key-value pair (repeatable). Format: key=value (the = between key and value must be percent-encoded in the URL).
Filter by tag key existence (repeatable). Returns resources that have a tag with this key, regardless of the value.
Paginated list of nodes.