SDKs
Idiomatic, type-safe access to Puchify from TypeScript, Python, and Go.
The Puchify SDKs wrap the REST API with language-native conventions — typed errors, async pagination, retry with backoff, and ergonomic helpers — so you never need to think about HTTP.
TypeScript
Primary SDK. Full type safety from the same Zod schemas that power the API.
Python
Async-first Python SDK for data science and automation.
Go
Zero-dependency Go SDK for infrastructure tooling.
Design principles
All three SDKs share the same patterns:
One client per app — instantiate once with your API key.
Resource sub-clients — puchify.servers, puchify.data, etc. mirror the API structure.
No bare HTTP — the SDK handles auth headers, retries, rate limits, and pagination.
Typed errors — NotFoundError, RateLimitError, AuthError, ValidationError.
Pagination as iteration — for await (const item of listAll()) — never manual cursor management.
Polling helpers — waitFor(id, status) blocks until a resource reaches the desired state.
Retry with backoff — exponential backoff on 429s and 5xxs, configurable attempt limit.
Installing
# TypeScript
npm install @puchify/sdk
# Python
pip install puchify-sdk
# Go
go get github.com/puchify/puchify-goQuick comparison
// TypeScript
import { Puchify } from "@puchify/sdk"
const puchify = new Puchify({ apiKey: process.env.PUCHIFY_API_KEY })
const servers = await puchify.servers.list({ status: "running" })# Python
from puchify import Puchify
puchify = Puchify(api_key="pk_xxxx")
servers = puchify.servers.list(status="running")// Go
import "github.com/puchify/puchify-go"
client := puchify.NewClient(puchify.WithAPIKey("pk_xxxx"))
servers, err := client.Servers.List(ctx, &puchify.ServerListParams{
Status: puchify.String("running"),
})