Changelog
All notable changes to the Ozzie API are documented here. The Ozzie API follows Semantic Versioning. Breaking changes always result in a major version bump and are announced with a migration guide.
v1.0.0 β May 5, 2025β
Initial public release of the Ozzie API.
New endpointsβ
Usersβ
POST /v1/usersβ Create a new user under your API clientGET /v1/users/{user_id}β Retrieve a user by IDGET /v1/usersβ List users with optionalexternal_user_idlookup
Financial Intakeβ
POST /v1/users/{user_id}/financial-intakeβ Submit or update a user's monthly financial snapshot (income, expenses, debt, primary goal)GET /v1/users/{user_id}/financial-intakeβ Retrieve the user's current intake
Transactionsβ
POST /v1/users/{user_id}/transactionsβ Submit a transaction as text, image (receipt photo), PDF, or spreadsheet β Ozzie parses and categorizes all formats automaticallyGET /v1/users/{user_id}/transactionsβ List transactions with filters for date range, category, and source typeGET /v1/users/{user_id}/transactions/{transaction_id}β Retrieve a single transaction
Goalsβ
POST /v1/users/{user_id}/goalsβ Create or replace the user's active goalGET /v1/users/{user_id}/goalsβ Retrieve the user's current goal
Planβ
POST /v1/users/{user_id}/planβ Calculate or refresh the user's financial plan (requires intake)POST /v1/users/{user_id}/plan/personalizeβ Adjust the plan's tone and recommendations based on a personality profile
Money Movesβ
POST /v1/users/{user_id}/money-moves/generateβ Generate the next money move cycle (requires plan)GET /v1/users/{user_id}/money-movesβ List cycles with status filter and cursor paginationGET /v1/users/{user_id}/money-moves/{move_id}β Retrieve a single cyclePATCH /v1/users/{user_id}/money-moves/{move_id}β Mark a cycle as completed or skipped
Chatβ
POST /v1/users/{user_id}/chat/messagesβ Send a message to the AI financial coach β responses includereply,emotion,topic, andintentfields
Webhooksβ
POST /api/webhooks/evolutionβ Inbound WhatsApp webhook via Evolution API β supportsconversation(text) andimageMessage(receipt photo) message types
Featuresβ
AI transaction parsingβ
The POST /transactions endpoint accepts four input formats:
| Source type | Accepted inputs |
|---|---|
"text" | Natural language descriptions (e.g., "spent $45 on groceries") |
"image" | Receipt photos in JPEG, PNG, or WebP format |
"pdf" | Bank statement or invoice PDFs |
"spreadsheet" | CSV or XLSX files with transaction rows |
Ozzie's parser extracts merchant name, amount, date, and assigns a category automatically.
Multi-language supportβ
All AI-generated content (plan action items, money move tasks, chat replies, WhatsApp responses) is returned in the user's configured language. Supported languages at launch:
| Language | Code |
|---|---|
| English | en |
| Portuguese (Brazilian) | pt |
| Spanish | es |
Set the user's language on creation via POST /users using the language field. The AI coach will respond in that language for all subsequent interactions.
Personality-aware plansβ
POST /plan/personalize supports four personality profiles that adjust the tone and pacing of all AI-generated content for that user:
| Profile | Description |
|---|---|
optimizer | Data-focused; motivated by maximum efficiency and returns |
planner | Detail-oriented; prefers structured roadmaps and predictability |
avoider | Money-anxious; responds to reassurance and small, achievable wins |
spender | Lifestyle-driven; needs strategies that don't feel like deprivation |
Tiered accessβ
The Ozzie API is available on three tiers:
| Tier | Rate limit | Features |
|---|---|---|
| Free | 100 requests/min | Users, Intake, Transactions (text only), Chat |
| Pro | 1,000 requests/min | All Free features + image/PDF/spreadsheet parsing, Money Moves, Goals, Plan personalization |
| Enterprise | Custom | All Pro features + SLA, dedicated support, custom rate limits, SSO |
Contact commercial@ozzieapp.com to upgrade or discuss Enterprise pricing.
WhatsApp integration via Evolution APIβ
The inbound webhook at POST /api/webhooks/evolution handles the full message lifecycle:
- Verifies the
apikeyheader againstEVOLUTION_WEBHOOK_SECRET - Routes messages to the correct Ozzie user by
phone_e164 - Processes text messages through the AI chat engine
- Parses receipt images through the transaction image parser
- Sends automatic replies through your Evolution API instance in the user's language
Known limitations at launchβ
- Chat does not retain conversation history between turns. Each message is processed independently with the user's full financial context but without memory of prior chat messages.
- The WhatsApp webhook does not yet support PDF or spreadsheet file attachments sent via WhatsApp. Use
POST /transactionsdirectly for document uploads. - Plan generation is synchronous and typically takes 2β5 seconds. For high-traffic scenarios, consider calling this endpoint as part of an asynchronous job and caching the result.
POST /plan/personalizepersonality types are limited to the four profiles listed above. Custom personality types are planned for a future release.
Upcomingβ
The following features are planned for upcoming minor releases. They are not yet available and are subject to change.
- v1.1.0 β Conversation history: the chat endpoint will support an optional
thread_idparameter that enables persistent, multi-turn conversations - v1.1.0 β Webhook support for WhatsApp audio messages (voice-to-text transaction logging)
- v1.2.0 β
GET /users/{user_id}/insightsendpoint returning AI-generated monthly financial summaries - v1.2.0 β Additional personality types (
minimalist,anxious-achiever) - v1.3.0 β Streaming chat responses via Server-Sent Events for real-time typewriter-style AI replies
Subscribe to the Ozzie developer newsletter to be notified when new features ship.
The Ozzie API adheres to a no-silent-breaking-changes policy. Any change that removes a field, changes a field's type, or alters the behavior of an existing endpoint will result in a major version bump (v2.0.0) with at least 90 days of deprecation notice and a published migration guide.