> ## Documentation Index
> Fetch the complete documentation index at: https://docs.nodepick.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# POST /nodes — Create a New nodepick.ai Compute Node

> POST /nodes provisions a new nodepick.ai compute node. Returns the node ID and initial status. Billing begins immediately upon creation.

Sending a `POST` request to `/nodes` provisions a fresh compute node on your account. The endpoint returns immediately with a node ID and an initial status of `provisioning` — the node is being prepared in the background and will transition to `running` once it is ready to accept connections. You can poll [GET /nodes/{id}](/api-reference/nodes/get) to track that transition.

## Endpoint

```
POST https://api.nodepick.ai/nodes
```

## Request Headers

<ParamField header="Authorization" type="string" required>
  Your nodepick.ai API key, passed as a Bearer token. Example: `Bearer YOUR_API_KEY`
</ParamField>

<ParamField header="Content-Type" type="string" required>
  Must be `application/json` for all requests to this endpoint.
</ParamField>

## Request Example

```bash theme={null}
curl -X POST https://api.nodepick.ai/nodes \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json"
```

## Response

A successful request returns HTTP `201 Created` with a JSON body describing the new node.

<ResponseField name="id" type="string">
  The unique identifier for your new node. Use this ID to inspect or delete the node in subsequent requests.
</ResponseField>

<ResponseField name="status" type="string">
  The initial lifecycle status of the node. This will be `provisioning` immediately after creation. The node moves to `running` once it is fully ready.
</ResponseField>

<ResponseField name="created_at" type="string">
  An ISO 8601 timestamp recording exactly when the node was created. Billing is calculated from this moment.
</ResponseField>

### Response Example

```json theme={null}
{
  "id": "node_abc123",
  "status": "provisioning",
  "created_at": "2024-01-15T10:30:00Z"
}
```

## Python SDK

The `create_node()` method on the nodepick.ai client wraps this endpoint:

```python theme={null}
node = client.create_node()
print(node["id"])     # node_abc123
print(node["status"]) # provisioning
```

<Note>
  Billing starts the moment this endpoint returns `201`. Per-second charges accumulate until you call [DELETE /nodes/{id}](/api-reference/nodes/delete) to terminate the node. Do not leave nodes running if you no longer need them.
</Note>

## Error Responses

| Code  | Description                                                                    |
| ----- | ------------------------------------------------------------------------------ |
| `401` | Unauthorized — your API key is missing or invalid.                             |
| `500` | Server error — the node could not be provisioned. Wait a moment and try again. |
