> ## 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.

# Nodepick REST API Reference: All Endpoints Overview

> The Nodepick HTTP API lets you create, list, inspect, and delete compute nodes programmatically. Authenticate with a Bearer token on every request.

The Nodepick REST API gives you full programmatic control over your compute infrastructure. Every action available in the Nodepick dashboard — spinning up nodes, inspecting their status, and tearing them down — is available as an HTTP endpoint, so you can integrate cloud compute directly into your scripts, CI pipelines, and applications.

## Base URL

All API requests are made to the following base URL:

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

## Request Format

The API accepts JSON request bodies. Set the `Content-Type` header to `application/json` on any request that includes a body.

## Authentication

Every request must include a valid API key passed as a Bearer token in the `Authorization` header. See the [Authentication](/api-reference/authentication) page for full details on obtaining and using your key.

## Available Endpoints

| Method   | Endpoint      | Description                     |
| -------- | ------------- | ------------------------------- |
| `POST`   | `/nodes`      | Create a new compute node       |
| `GET`    | `/nodes`      | List all your nodes             |
| `GET`    | `/nodes/{id}` | Get details for a specific node |
| `DELETE` | `/nodes/{id}` | Delete a node                   |

## HTTP Status Codes

The API uses standard HTTP status codes to indicate the outcome of every request.

| Code  | Meaning                                   |
| ----- | ----------------------------------------- |
| `200` | Success                                   |
| `201` | Created                                   |
| `204` | Deleted (no content)                      |
| `400` | Bad request — check your parameters       |
| `401` | Unauthorized — invalid or missing API key |
| `403` | Forbidden — key lacks permission          |
| `404` | Not found — node does not exist           |
| `500` | Server error — try again later            |

## Rate Limiting

The API enforces rate limits to ensure fair use across all accounts. Be respectful with request frequency, and if you receive a `429 Too Many Requests` response, back off and retry using exponential backoff before resending the request.

## Error Response Format

All error responses return a consistent JSON body so you can handle failures programmatically:

```json theme={null}
{
  "error": {
    "code": "unauthorized",
    "message": "Invalid or missing API key"
  }
}
```

The `code` field contains a machine-readable error identifier, and `message` provides a human-readable description of what went wrong.

## Explore the Endpoints

<CardGroup cols={2}>
  <Card title="Create Node" icon="plus" href="/api-reference/nodes/create">
    Provision a new compute node with a single POST request.
  </Card>

  <Card title="List Nodes" icon="list" href="/api-reference/nodes/list">
    Retrieve all nodes associated with your account.
  </Card>

  <Card title="Get Node" icon="magnifying-glass" href="/api-reference/nodes/get">
    Fetch the current status and IP address of a specific node.
  </Card>

  <Card title="Delete Node" icon="trash" href="/api-reference/nodes/delete">
    Permanently terminate a node and stop billing immediately.
  </Card>
</CardGroup>
