Quickstart
Create an API key, send your first request, and validate your API setup.
Use this guide when integrating with api.quiver.ai.
Before you begin
Create a QuiverAI public beta account at quiver.ai/start, then sign in to app.quiver.ai.
Create an API key
- Open API Keys in the Developer Platform.
- Click Create API key and give it a name.
- Copy the key immediately. It is shown only once and cannot be retrieved later.
In API Keys, you can also verify whether a key is active and see its latest usage timestamp.
The QuiverAI API uses bearer authentication:
Authorization: Bearer <QUIVERAI_API_KEY>Never commit API keys to source control.

Store the key in your environment
Save the key as QUIVERAI_API_KEY.
export QUIVERAI_API_KEY="<your-key>"setx QUIVERAI_API_KEY "<your-key>"Install the SDK
For Node.js, use the official Node.js SDK:
npm install @quiverai/sdkyarn add @quiverai/sdkpnpm add @quiverai/sdkSend your first request
import { QuiverAI } from "@quiverai/sdk";
const client = new QuiverAI({
bearerAuth: process.env["QUIVERAI_API_KEY"],
});
const logo = await client.createSVGs.generateSVG({
model: "arrow-1.1",
prompt: "A logo for the next AI design startup",
instructions: "Use clean geometry, balanced spacing, and production-ready SVG structure.",
});
process.stdout.write(`${JSON.stringify(logo, null, 2)}\n`);Use HTTP directly from any language.
curl --request POST \
--url https://api.quiver.ai/v1/svgs/generations \
--header 'Authorization: Bearer <QUIVERAI_API_KEY>' \
--header 'Content-Type: application/json' \
--data '
{
"model": "arrow-1.1",
"prompt": "A logo for the next AI design startup",
"instructions": "Use clean geometry, balanced spacing, and production-ready SVG structure.",
"n": 1,
"stream": false
}
'A successful non-streaming response returns request metadata, one or more SVG payloads, and the request credit debit:
{
"id": "resp_01J9AZ3XJ7D5S9ZV2Q5Z8E1A4N",
"created": 1704067200,
"data": [
{
"svg": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><path d=\"M12 2l8 20H4z\"/></svg>",
"mime_type": "image/svg+xml"
}
],
"credits": 20
}The deprecated usage token fields may still appear for compatibility, but use credits
and pricing_credits for billing behavior.
Failures return a JSON error payload:
{
"status": 429,
"code": "rate_limit_exceeded",
"message": "Rate limit exceeded",
"request_id": "550e8400-e29b-41d4-a716-446655440000"
}401 Unauthorized: API key missing or invalid, or the organization could not be resolved for billing. Machine-readable codes includeinvalid_api_keyandunauthorized.402 Payment Required: insufficient credits.403 Forbidden: frozen accounts use theaccount_frozencode.429 Too Many Requests: back off and retry. The default limit is20requests per60seconds per organization on SVG generation/vectorization endpoints. RespectRetry-AfterandX-RateLimit-*headers.
Billing model:
- Debits use pricing credits in your balance; amounts are per model (see each
model’s
pricing_creditsfromGET /v1/models). - Generations debit
n × svg_generatecredits on success (ndefaults to1). - Vectorizations debit
svg_vectorizecredits per successful request.
To choose from models available to your organization, call GET /v1/models. Arrow 1.1 is the
default recommendation for most integrations. Use Arrow 1.1 Max when higher output fidelity is
worth the additional cost and runtime, especially for dense illustrations, technical diagrams, and
other detail-sensitive SVGs.
Next steps
- Review the API reference.
- List available models with
GET /v1/models. - See pricing and plans.
- Explore models: Text to SVG and Image to SVG.