5-minute quickstart
This guide walks you through the full Ozzie onboarding sequence using ozzie-openapi directly: create a user, submit financial intake, score a personality quiz, generate a plan, and call the AI coach β all with real request and response examples.
All calls go to https://api.ozzieapp.com/v1.
Before you startβ
You need a valid client_id and client_secret. Contact commercial@ozzieapp.com or log in to the Ozzie dashboard at Settings β API Keys.
Encode your credentials:
TOKEN=$(echo -n "your_client_id:your_client_secret" | base64)
Replace YOUR_BEARER_TOKEN in the examples below with your encoded token.
Step 1 β Create a userβ
- curl
- Node.js
curl -X POST https://api.ozzieapp.com/v1/users \
-H "Authorization: Bearer YOUR_BEARER_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"external_user_id": "user_123",
"name": "Alex Johnson",
"language": "en"
}'
const response = await fetch('https://api.ozzieapp.com/v1/users', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_BEARER_TOKEN',
'Content-Type': 'application/json',
},
body: JSON.stringify({
external_user_id: 'user_123',
name: 'Alex Johnson',
language: 'en',
}),
});
const { data: user } = await response.json();
const userId = user.id;
Response:
{
"object": "user",
"data": {
"id": "ozz_usr_9f3a1b2c4d5e6f7a",
"external_user_id": "user_123",
"name": "Alex Johnson",
"language": "en",
"created_at": "2026-05-15T10:00:00Z"
}
}
Save id β you'll use it in every subsequent call.
Step 2 β Submit financial intakeβ
- curl
curl -X POST https://api.ozzieapp.com/v1/users/ozz_usr_9f3a1b2c4d5e6f7a/financial-intake \
-H "Authorization: Bearer YOUR_BEARER_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"monthly_income": 5000,
"monthly_expenses": 3200,
"financial_goal": "savings"
}'
Response:
{
"object": "financial_intake",
"data": {
"id": "ozz_intake_c8d4e2f1",
"user_id": "ozz_usr_9f3a1b2c4d5e6f7a",
"monthly_income": 5000,
"monthly_expenses": 3200,
"monthly_surplus": 1800,
"financial_goal": "savings",
"created_at": "2026-05-15T10:01:00Z"
}
}
Step 3 β Score the personality quizβ
Get questionsβ
curl https://api.ozzieapp.com/v1/personality/questions \
-H "Authorization: Bearer YOUR_BEARER_TOKEN"
Response (abbreviated):
{
"object": "list",
"data": {
"questions": [
{
"id": "q_001",
"text": "When you get extra money, what do you do first?",
"options": [
{ "id": "q_001_a", "text": "Invest it right away" },
{ "id": "q_001_b", "text": "Move it to savings" },
{ "id": "q_001_c", "text": "Treat someone I love" },
{ "id": "q_001_d", "text": "Decide for myself" }
]
}
],
"total": 10
}
}
Score answersβ
curl -X POST https://api.ozzieapp.com/v1/personality/score \
-H "Authorization: Bearer YOUR_BEARER_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"answers": [
{ "question_id": "q_001", "option_id": "q_001_a" }
]
}'
Response:
{
"object": "personality_score",
"data": {
"personality_type": "HOTSHOT",
"score_breakdown": {
"HOTSHOT": 7,
"STOCKPILER": 1,
"GIVER": 1,
"INDEPENDENT": 1
}
}
}
Alex is a HOTSHOT β risk-tolerant and growth-oriented. Store personality_type in your database β you'll pass it on every subsequent intelligence call.
Step 4 β Generate the financial planβ
curl -X POST https://api.ozzieapp.com/v1/users/ozz_usr_9f3a1b2c4d5e6f7a/plan/generate \
-H "Authorization: Bearer YOUR_BEARER_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "personality_type": "HOTSHOT" }'
Response:
{
"object": "plan",
"data": {
"id": "ozz_plan_b1c2d3e4",
"user_id": "ozz_usr_9f3a1b2c4d5e6f7a",
"personality_type": "HOTSHOT",
"plan_tier": "20/80",
"envelopes": {
"bills": { "allocated_pct": 40.0, "allocated_amount": 2000.00 },
"future": { "allocated_pct": 20.0, "allocated_amount": 1000.00 },
"daily_living": { "allocated_pct": 12.0, "allocated_amount": 600.00 },
"health_wellness": { "allocated_pct": 6.0, "allocated_amount": 300.00 },
"lifestyle": { "allocated_pct": 14.0, "allocated_amount": 700.00 },
"people": { "allocated_pct": 8.0, "allocated_amount": 400.00 }
},
"action_items": [
"Your $1,000 monthly savings target puts you on track to invest within 6 months.",
"Your HOTSHOT profile means lifestyle spending is a valid priority β just keep it within the $700 envelope."
],
"created_at": "2026-05-15T10:03:00Z"
}
}
Store plan_tier β you'll use it when generating money moves.
Step 5 β Call the AI coachβ
curl -X POST https://api.ozzieapp.com/v1/users/ozz_usr_9f3a1b2c4d5e6f7a/chat/completion \
-H "Authorization: Bearer YOUR_BEARER_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"message": "How am I doing with my savings goal?",
"personality_type": "HOTSHOT"
}'
Response:
{
"object": "chat_completion",
"data": {
"role": "assistant",
"content": "Alex, your $5,000 income and $3,200 expenses leave you with $1,800 of disposable income. Your HOTSHOT plan targets $1,000/month to savings β which puts you on a 3-month path to having enough set aside before exploring investments. Keep that savings transfer automated on payday.",
"created_at": "2026-05-15T10:04:00Z"
}
}
What you just builtβ
In five steps you:
- Created a user (Alex Johnson)
- Submitted financial intake ($5,000 income, $3,200 expenses, savings goal)
- Scored a personality quiz β HOTSHOT
- Generated a personality-weighted plan with six envelope allocations
- Called the AI coach and received a data-grounded, personality-aware answer
Next stepsβ
- Integration Guide β complete user journey with all active-use endpoints
- Personality Types β how the four types shape plans and coaching
- Envelope System β the six budget buckets and personality weight tables
- ozzie-openapi Reference β full endpoint documentation