Quickstart
The Phoenix Grove API is OpenAI-compatible. If you already have code that talks to a Chat Completions endpoint, you can point it at Phoenix Grove by changing two things: the base URL and your API key.
Base URL: https://api.pgsgrove.com/v1
Auth: Authorization: Bearer pgsk_your_key_here
There is no separate SDK to install: the official OpenAI SDKs are the SDK.
Just set base_url (Python / JS) or --url (curl) to the address above.
Get a key: create an account, open API Keys, and click Create key. Your full key is shown once; copy it then. We only ever store a hash.
1. Get your key
- Sign up (free, no subscription, no tier gate).
- Add credits on the Billing page (from $5).
- Create a key on the API Keys page and copy it.
Keys look like pgsk_ followed by a random string. Treat them like a password.
2. Your first request
The examples below use curl and the official OpenAI SDKs. There's no Phoenix Grove SDK to install — the OpenAI SDKs are the SDK. To use them, install one:
pip install openai # Python
npm install openai # JavaScript / TypeScript
curl needs nothing installed.
curl
curl https://api.pgsgrove.com/v1/chat/completions \
-H "Authorization: Bearer $PGS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "glm-5.2",
"messages": [
{ "role": "system", "content": "You are a concise assistant." },
{ "role": "user", "content": "Give me three names for a tea shop." }
]
}'
Python (OpenAI SDK)
from openai import OpenAI
client = OpenAI(
api_key="pgsk_your_key_here",
base_url="https://api.pgsgrove.com/v1",
)
resp = client.chat.completions.create(
model="glm-5.2",
messages=[
{"role": "system", "content": "You are a concise assistant."},
{"role": "user", "content": "Give me three names for a tea shop."},
],
)
print(resp.choices[0].message.content)
JavaScript / TypeScript (OpenAI SDK)
import OpenAI from "openai";
const client = new OpenAI({
apiKey: process.env.PGS_API_KEY,
baseURL: "https://api.pgsgrove.com/v1",
});
const resp = await client.chat.completions.create({
model: "glm-5.2",
messages: [
{ role: "system", content: "You are a concise assistant." },
{ role: "user", content: "Give me three names for a tea shop." },
],
});
console.log(resp.choices[0].message.content);
3. Pick a model
Browse the full catalog on the Models page. Each card has a copy-paste
model id (and, where available, a -turbo id for priority routing). A few
starting points:
glm-4.7-flash: fastest and cheapest for simple tasks.deepseek-v4-pro: frontier reasoning and coding at a 1M-token window.mimo-v2.5: multimodal flagship, reason over text and images together.kimi-k2.7: trillion-parameter agentic coding with vision input.
Pass the id straight through as the model field. You can also list every id
programmatically with GET /v1/models (no key required) — see
Models & the catalog.
4. What you're billed
You pay per token, drawn from your prepaid credit balance. Prices are
listed on every model card as $/1M input and output. Input tokens that hit
the prompt cache are billed at a reduced rate automatically.
Failed requests are never billed.
There are no monthly minimums and no subscription. When your balance runs out,
requests return 402 until you top up.
Next steps
- Use with coding tools & SDKs — opencode, OpenClaw, Hermes, and more
- Request parameters — what's honored, what the proxy sets
- Models & the catalog
- Streaming responses
- Structured output (JSON)
- Multimodal input
- Turbo (priority routing)
- Prompt caching
- Errors & retries