Pay-As-You-Go AI API, Credits Never Expire
No subscription and no monthly minimum. Buy credits from $5, spend them per generation, and keep whatever you do not use. Credits never expire.
API calls need credits. Packs from $5.
# No API key needed
curl "https://api.picxstudio.com/v1/models?type=image"Example response
{
"models": [
{
"id": "openai/gpt-image-2",
"name": "GPT Image 2",
"type": "image",
"credits": {
"1K": 53,
"2K": 53,
"4K": 105
}
},
{
"id": "openai/gpt-image-2.5/flare",
"name": "GPT Image 2.5 Flare",
"type": "image",
"credits": {
"1K": 53,
"2K": 53,
"4K": 105
}
}
]
}import { PicX } from "picx-ai";
// models.list() is the one call that works without a key
const picx = new PicX();
const { models } = await picx.models.list({ type: "image" });
for (const model of models) {
console.log(model.id, model.credits);
}Example response
{
"models": [
{
"id": "openai/gpt-image-2",
"name": "GPT Image 2",
"type": "image",
"credits": {
"1K": 53,
"2K": 53,
"4K": 105
}
},
{
"id": "openai/gpt-image-2.5/flare",
"name": "GPT Image 2.5 Flare",
"type": "image",
"credits": {
"1K": 53,
"2K": 53,
"4K": 105
}
}
]
}from picx import PicX
# models.list() is the one call that works without a key
with PicX() as picx:
for model in picx.models.list(type="image"):
print(model.id, model.credits)Example response
{
"models": [
{
"id": "openai/gpt-image-2",
"name": "GPT Image 2",
"type": "image",
"credits": {
"1K": 53,
"2K": 53,
"4K": 105
}
},
{
"id": "openai/gpt-image-2.5/flare",
"name": "GPT Image 2.5 Flare",
"type": "image",
"credits": {
"1K": 53,
"2K": 53,
"4K": 105
}
}
]
}- Credits never expire
- Failed generations refunded automatically
- Commercial use on every plan
- No auto-renew on crypto
An example result, and what it costs
Every response tells you the credits used, and agents can list each model’s price before spending anything.
Get API key
Ways to integrate
One key and one balance across all four.
REST API
Generate and edit images and video over HTTPS. Sync by default, webhooks when you want them.
QuickstartMCP server
Let Claude, ChatGPT, Cursor, VS Code or Codex call PicX tools directly, signed in with your account.
Connect a clientCLI
picx-cli for the terminal and for agents that shell out. Every command speaks --json.
Install the CLISDKs
Typed clients for JavaScript/TypeScript (picx-ai on npm) and Python (picx-ai on PyPI).
SDK examples
What each generation costs
No subscription needed. Prices are in credits, read live from GET /v1/models.
Images: credits per image
Video: credits for a 5-second clip with sound
Video is priced per second, so divide by 5 for the rate. A few models charge less with sound off: that price is the sound_off field in the same response.
Pick a model
Live from GET /v1/models. Credits are for one generation; video is priced per second.
Built for production
Webhooks
Register an endpoint, or bind one to a single job, and get a POST when it finishes.
Webhooks docsAsync polling and SSE
Video returns a job id at once. Poll GET /v1/generations/{id} or stream its events_url.
Video referenceidempotency_key
Retry a request safely. A replay returns the original generation and charges nothing.
QuickstartRefunds on failure
When a generation fails, its credits go back to your balance automatically.
Credit pricing
Rate limits
Limits apply per key. Read your exact values from GET /v1/account/tier, and honor Retry-After on a 429. Rate limit docs
What you can build
What the terms allow, in plain English.
| Use | Status | Details |
|---|---|---|
| Ads, listings and client work made with outputs | Allowed | On every plan |
| Selling prints or merchandise made with outputs | Allowed | Terms section 5 |
| An AI feature inside a different product, through the API | Allowed | Use your own key on your own backend |
| Reselling raw capacity | Allowed | See the partners page |
| A substantially similar generator built on PicX | Allowed | See the partners page |
| Sharing or reselling API keys, or transferring credits | Not allowed | Terms sections 3 and 4.1 |
Full wording in the Terms of Service.
Start at the price of a coffee
Credit packs from $5 with no plan needed, or plans from $11.99/month. Crypto only: no card, no KYC.
$5
500 credits
$9
1,000 credits
$29
3,200 credits
$59
6,500 credits
The API and MCP spend the same credits as the app. See all prices · How paying with crypto works
Developer FAQ
Do I need a subscription?
No. This is pay-as-you-go: buy a pack from $5, spend it per generation, and buy another when you need one. There is no monthly minimum.
What happens to credits when a generation fails?
Credits are taken when you submit, and they go back to your balance automatically if the generation fails. The failed generation's error_message tells you why.
Can I use this inside my own app?
Yes. An AI feature inside a different product, through the API, is allowed. Use your own key on your own backend. Sharing or reselling API keys, or transferring credits, is not allowed.
Which models can I call, and how do I pick?
GET /v1/models lists every model id with its credit price, and it needs no key. Pass the id as model. Pick by the price at your size and by the output you want. The playground is a quick way to compare them once you have credits.
Can my agent see prices before spending?
Yes. GET /v1/models returns each model's credit price without a key, and the MCP server has the same list as the picx_list_models tool. An agent can read the price and your balance before it spends anything.
How do I pay without a card?
Pay with crypto: it is the only checkout. 18 coins are accepted, including BTC, USDT, ETH and SOL. There is no KYC and nothing renews by itself.
Do credits expire?
No. Credits never expire, so you can buy once and use them whenever you like.
How is a generation priced?
Images have a fixed credit price per size. Video has a credit price per second that depends on the resolution. The response tells you the credits used.
When are credits charged?
When you submit. If the generation fails, the credits go back to your balance automatically.

Pay only for what you generate
No subscription. Credits never expire. Packs from $5.