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

# Quickstart (API & Python SDK)

> Create your first compute node, connect via SSH, and manage it using the Python SDK or REST API.

Create your first compute node, connect via SSH, and manage it using our Python SDK or HTTP API. Nodes are provisioned in seconds.

<Note>
  Billing is calculated per-second. It starts the moment your node is created and stops the moment you delete it. Stopping a node does not stop billing charges.
</Note>

<Steps>
  <Step title="Install the Python SDK">
    Install the nodepick.ai Python SDK using pip:

    ```bash theme={null}
    pip install nodepick
    ```

    The SDK is compatible with Python 3.8 and above.
  </Step>

  <Step title="Create Your First Node">
    Initialize the client with your API key and call `create_node()`. The method returns a node object containing the node's ID and initial status.

    ```python theme={null}
    from nodepick import nodepick

    client = nodepick(api_key="YOUR_API_KEY")
    node = client.create_node(display_name="my-first-node")
    print(f"Node created: {node['id']}")
    ```

    Your node is live within seconds of this call returning.
  </Step>

  <Step title="Connect via SSH">
    Call `get_node_details()` with your node ID to retrieve SSH credentials. The response includes the hostname, port, username, and SSH connection details.

    ```python theme={null}
    details = client.get_node_details(node["id"])
    print(details)
    ```

    Use the SSH connection command from `details` to connect from your terminal:

    ```bash theme={null}
    ssh nodepick@<hostname> -p <port>
    ```

    You will land on your dedicated Linux node. Use `sudo` to gain root access.
  </Step>

  <Step title="Clean Up">
    When you finish, delete the node to stop billing immediately:

    ```python theme={null}
    client.delete_node(node["id"])
    client.close()
    ```

    The node and all stored data are removed as soon as deletion completes.
  </Step>
</Steps>

## Complete Example

The script below demonstrates the full lifecycle using a `with` block to close the client automatically:

```python theme={null}
from nodepick import nodepick

client = nodepick(api_key="YOUR_API_KEY")

with client:
    # Create a node
    node = client.create_node(display_name="my-first-node")
    node_id = node["id"]
    print(f"Node created: {node_id}")

    # Get node details (includes SSH credentials)
    details = client.get_node_details(node_id)
    print(f"SSH: {details}")

    # Delete the node when done
    client.delete_node(node_id)
```

## Next Steps

<CardGroup cols={2}>
  <Card title="Quick Start (CLI)" icon="terminal" href="/quickstart-cli">
    Prefer the command line? Follow our CLI quickstart guide.
  </Card>

  <Card title="API Reference" icon="code" href="/api-reference">
    Explore the full HTTP API endpoints and SDK methods.
  </Card>
</CardGroup>
