---
title: "Get Factory Nodes"
method: GET
path: "/api/v1/factory/nodes"
tags: ["factory"]
---

# Get Factory Nodes

`GET /api/v1/factory/nodes`

## Request

- Base URL: `https://api.primeintellect.ai`
- URL: `https://api.primeintellect.ai/api/v1/factory/nodes`
- Auth: HTTP bearer

Per-cluster GPU node tables for the caller's team (the sinfo):
node name, coarse state (ready / cordoned / offline / unknown),
GPU type and total/used counts, and which allocation the node is
assigned to ("slurm" for a claimed node, null otherwise).

Node names are the team's own hardware and are shown to the team
only; data of other teams is never returned. Unusable capacity
snapshots surface as a per-cluster capacity source with an error
status, never as a silent empty node list.

## Query parameters

- `team_id` string, required: Team whose Model Factory fleet to read

## Response `200`

Successful Response

- FactoryNodesResponse: Envelope for the nodes drill-down (public + internal routes). `sources` carries one capacity entry per cluster, in the same order as `clusters`, so a degraded snapshot stays visible (never a silent empty node list).
  - `schema_version` 1
  - `as_of` string, date-time, required
  - `clusters` FactoryClusterNodes[], required
    - `display_name` string, required
    - `status` 'online' | 'offline', required
    - `nodes` FactoryNode[], required
      - `name` string, required
      - `state` 'ready' | 'cordoned' | 'offline' | 'draining' | 'unknown', required
      - `gpu_type` string, nullable
      - `gpus_total` integer, nullable
      - `gpus_used` integer, nullable
      - `assigned_to` 'training' | 'inference' | 'slurm', nullable
      - `slurm_bucket` 'allocated' | 'idle' | 'draining', nullable
  - `sources` FactorySourceStatus[], required
    - `kind` 'capacity' | 'training' | 'inference' | 'slurm', required
    - `status` 'ok' | 'stale' | 'error', required
    - `observed_at` string, date-time, nullable

## Other responses

- `401`: Authorization failed
- `422`: Invalid request data

## Changes

> 49 revisions in range; 1 not diffed.

- **2026-10-28** `1bb47742c56d`: 1 info
  - added the optional property `clusters/items/nodes/items/slurm_bucket` to the response with the `200` status
- **2026-10-12** `8537b45307ec`: 1 warning
  - added the new `draining` enum value to the `clusters/items/nodes/items/state` response property for the response status `200`
- **2026-10-11** `9062b670646d`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/primeintellect/apis/pi-api/changes/api/v1/factory/nodes/get.md)

---

[API](https://skmtc.dev/primeintellect/apis/pi-api.md) - [All operations](https://skmtc.dev/primeintellect/apis/pi-api/llms.txt) - [OpenAPI document](https://skmtc.dev/primeintellect/apis/pi-api/revisions/7f032a9306b0?raw)
