---
title: "Get Annual Review"
method: GET
path: "/api/review/annual/{user_id}"
tags: ["Review"]
---

# Get Annual Review

`GET /api/review/annual/{user_id}`

## Request

- Base URL: `https://api.earmarkiq.app` (the document declares no server; this is the origin it was published from)
- URL: `https://api.earmarkiq.app/api/review/annual/{user_id}`
- Auth: HTTP bearer

Generate a Spotify Wrapped-style annual financial review
from the user's full year of transaction data.

## Path parameters

- `user_id` string, uuid, required

## Response `200`

Successful Response

- AnnualReview
  - `year` integer, required
  - `total_earned` number, required
  - `total_spent` number, required
  - `total_saved` number, required
  - `savings_rate` number, required
  - `top_categories` CategoryStat[], required
    - `name` string, required
    - `amount` number, required
    - `percentage` number, required
    - `transactions` integer, required
  - `top_merchants` MerchantStat[], required
    - `name` string, required
    - `visits` integer, required
    - `total_spent` number, required
  - `biggest_spend_day` BiggestSpendDay, required
    - `date` string, required
    - `amount` number, required
    - `description` string, required
  - `cheapest_month` MonthStat, required
    - `month` string, required
    - `amount` number, required
  - `most_expensive_month` MonthStat, required
    - `month` string, required
    - `amount` number, required
  - `spending_personality` string, required
  - `personality_description` string, required
  - `personality_emoji` string, required
  - `monthly_trend` AppApiReviewMonthlyTrend[], required
    - `month` string, required
    - `spent` number, required
  - `fun_facts` string[], required
  - `year_in_numbers` YearInNumbers, required
    - `total_transactions` integer, required
    - `unique_merchants` integer, required
    - `most_active_day` string, required
    - `average_daily_spend` number, required
    - `subscriptions_total` number, required
    - `days_with_zero_spend` integer, required
  - `goals_progress` GoalProgress[], required
    - `name` string, required
    - `target` number, required
    - `current` number, required
    - `percentage` number, required
  - `next_year_potential` NextYearPotential, required
    - `if_save_10_percent` number, required
    - `if_cut_eating_out_half` number, required
    - `if_cancel_unused_subs` number, required
    - `total_potential` number, required

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/earmarkiq/apis/earmark-api.md) · [All operations](https://skmtc.dev/earmarkiq/apis/earmark-api/llms.txt) · [OpenAPI document](https://skmtc.dev/earmarkiq/apis/earmark-api/revisions/4a2c41907105?raw)
