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

# SDK overview

> Use one Pxxl client to deploy projects and manage platform services.

The Pxxl SDK covers projects, deployments, environment variables, domains, billing, CDN, Storage, databases, cron jobs, analytics, teams, and MCP.

Version `0.2.1` adds bucket-scoped S3 clients, composed domain checkout helpers, and structured plan-gate errors across the supported SDKs.

<CardGroup cols={3}>
  <Card title="S3-compatible storage" href="/integrations/sdk/cdn-storage">
    Upload and download objects with a bucket access key and secret key.
  </Card>

  <Card title="Domain checkout" href="/integrations/sdk/domains-billing">
    Purchase domains and generate a hosted payment link in one workflow.
  </Card>

  <Card title="Plan gates" href="/integrations/sdk/response-patterns">
    Handle resource limits with structured SDK error fields.
  </Card>
</CardGroup>

```mermaid theme={null}
flowchart LR
  App["Your application"] --> SDK["Pxxl SDK"]
  SDK --> API["Pxxl API"]
  SDK --> MCP["Pxxl MCP"]
  API --> Services["Projects, domains, storage, databases, cron"]
```

## Install

<Tabs>
  <Tab title="Node.js">
    ```bash theme={null}
    npm install @pxxlapp/pxxl
    ```
  </Tab>

  <Tab title="Go">
    ```bash theme={null}
    go get github.com/pxxlspace/pxxlspace/sdks/go/pxxl@latest
    ```
  </Tab>

  <Tab title="Python">
    ```bash theme={null}
    pip install pxxl
    ```
  </Tab>

  <Tab title="Rust">
    ```bash theme={null}
    cargo add pxxl
    ```
  </Tab>
</Tabs>

## Create a client

<Tabs>
  <Tab title="Node.js">
    ```ts theme={null}
    import { Pxxl } from "@pxxlapp/pxxl";

    const pxxl = new Pxxl({
      apiKey: process.env.PXXL_API_KEY,
      teamId: process.env.PXXL_TEAM_ID,
    });
    ```
  </Tab>

  <Tab title="Go">
    ```go theme={null}
    client, err := pxxl.NewClient(os.Getenv("PXXL_API_KEY"))
    if err != nil { log.Fatal(err) }
    ```
  </Tab>

  <Tab title="Python">
    ```python theme={null}
    import os
    from pxxl import PxxlClient

    client = PxxlClient(
        api_key=os.environ["PXXL_API_KEY"],
        team_id=os.getenv("PXXL_TEAM_ID"),
    )
    ```
  </Tab>

  <Tab title="Rust">
    ```rust theme={null}
    let client = PxxlClient::new(std::env::var("PXXL_API_KEY")?)?
        .with_team_id(std::env::var("PXXL_TEAM_ID").unwrap_or_default());
    ```
  </Tab>
</Tabs>

<Note>
  Keep API keys on the server. Do not expose them in browser code.
</Note>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.