Getting started

Quickstart

Two steps: stand up a worker to run inference, then call the API. The Pendra API is OpenAI-compatible, so if you've used the OpenAI SDK before, the shapes will look familiar — just point at https://api.pendra.ai with a Pendra API key.

1. Set up a worker

Every Pendra request runs on a worker — either GPU capacity we provision for you, or a worker you run on your own hardware. Pick one to get started.

Your app
Pendra API
Pendra · UK
Managed GPUs

Pendra-managed

Dedicated GPU capacity provisioned on Pendra-managed infrastructure in the UK. Zero ops, same API, available on the Enterprise plan. Get in touch and we'll size capacity to your workload.

Get in touch
Your app
Pendra API
Your environment
Your GPUs

Self-hosted

Install the Pendra worker on your own GPUs — the built-in Pendra backend serves chat models out of the box, with optional Ollama, vLLM, LM Studio, or Speaches alongside. Prompts and completions never leave your hardware.

Install a worker

2. Get an API key

Don't have an account yet? Sign up at console.pendra.ai — see pricing for the available plans.

Once signed in, open API Keys and create a new key. Keys are shown once at creation — copy and store it now. The key looks like pdr_sk_….

All requests are scoped to your organisation. You can rotate or revoke keys at any time without losing usage history.

3. Install an SDK

Or skip straight to curl below if you don't need a client library.

Python

bash
 pip install pendra 

Node

bash
 npm install pendra 

Other clients: Go, Rust, .NET.

4. Make your first request

Python

quickstart.py
from pendra import Pendra

client = Pendra(api_key="pdr_sk_...")

response = client.chat.completions.create(
    model="qwen3.6:27b",
    messages=[{"role": "user", "content": "Hello!"}]
)

print(response.choices[0].message.content)

Node

quickstart.ts
import { Pendra } from "pendra";

const client = new Pendra({ apiKey: "pdr_sk_..." });

const response = await client.chat.completions.create({
    model: "qwen3.6:27b",
    messages: [{ role: "user", content: "Hello!" }],
});

console.log(response.choices[0].message.content);

curl

bash
curl https://api.pendra.ai/api/v1/chat/completions \
  -H "Authorization: Bearer pdr_sk_..." \
  -H "Content-Type: application/json" \
  -d '{"model":"qwen3.6:27b","messages":[{"role":"user","content":"Hello"}]}'

Next steps