Skip to content

Getting Started

Spritz Finance is a platform that bridges crypto and traditional finance. The API enables you to:

  • Off-ramp: Convert crypto to fiat and deliver to bank accounts or bill pay destinations
  • On-ramp: Convert fiat to crypto
  • Auto-ramp: Virtual bank accounts that automatically convert fiat deposits to crypto
  • Bill pay: Pay bills directly from crypto balances
  • Cards: Issue and manage Spritz debit cards
EnvironmentURL
Productionhttps://api.spritz.finance
Sandboxhttps://api-staging.spritz.finance

All endpoints are prefixed with /v1.

  1. Obtain an API key from the Spritz dashboard
  2. Choose your authentication method (see Authentication)
  3. Make your first request:
Terminal window
curl https://api-staging.spritz.finance/v1/users/me \
-H "Authorization: Bearer YOUR_API_KEY"

Successful responses return JSON with the resource data directly. Error responses follow the RFC 9457 Problem Details standard.

Prompt for your LLM Copy this into Claude, Cursor, or your AI assistant
You are integrating with the Spritz Finance platform API.

Base URLs:

- Production: https://api.spritz.finance
- Sandbox: https://api-staging.spritz.finance
- All endpoints are prefixed with /v1

Authentication (choose one):

1. Bearer token (Cognito JWT) — Authorization: Bearer <jwt>
2. Integrator JWT (prefix spr*) — Authorization: Bearer spr*<token>
3. HMAC signature — requires X-Integrator-Key, X-Signature (sha256=<hex>), X-Timestamp headers
4. API key (prefix sk*test* or sk*live*) — Authorization: Bearer <api-key>

Error format (RFC 9457 Problem Details):
{
"type": "urn:problem-type:<category>:<specific>",
"title": "Human-readable title",
"status": 400,
"detail": "Specific error description",
"instance": "/errors/<id>"
}

Content-Type for errors: application/problem+json
Categories: auth, validation, resource, business, system

Key resources:

- GET /v1/users/me — current user profile
- GET/POST /v1/bank-accounts — manage off-ramp destinations
- POST /v1/off-ramp-quotes — create crypto-to-fiat quotes
- GET /v1/off-ramps — list off-ramp transactions
- GET/POST /v1/bills — manage bill pay accounts
- GET /v1/cards — list debit cards
- GET/POST /v1/auto-ramp-accounts — virtual bank accounts (fiat→crypto)

Quick start (TypeScript):
```typescript
const SPRITZ_API_URL = process.env.SPRITZ_API_URL ?? "https://api-staging.spritz.finance";
const SPRITZ_API_KEY = process.env.SPRITZ_API_KEY;

async function spritzFetch(path: string, init?: RequestInit) {
const res = await fetch(`${SPRITZ_API_URL}${path}`, {
...init,
headers: {
"Authorization": `Bearer ${SPRITZ_API_KEY}`,
"Content-Type": "application/json",
...init?.headers,
},
});
if (!res.ok) {
const problem = await res.json();
throw new Error(`${problem.title}: ${problem.detail}`);
}
return res.json();
}

// Example: get current user
const user = await spritzFetch("/v1/users/me");
```

For the full OpenAPI spec, see: https://docs.platform.spritz.finance/api/