---
title: "Generate Ai Personalised Challenges"
method: POST
path: "/api/challenges/ai-generate/{user_id}"
tags: ["Challenges"]
---

# Generate Ai Personalised Challenges

`POST /api/challenges/ai-generate/{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/challenges/ai-generate/{user_id}`
- Auth: HTTP bearer

Generate AI-personalised challenges based on real spending weaknesses.
Uses Haiku to create challenges referencing specific amounts.
Pass ?force=true to regenerate even if active challenges exist.

## Path parameters

- `user_id` string, uuid, required

## Query parameters

- `force` boolean

## Response `200`

Successful Response

- ChallengesListResponse
  - `user_id` string, required
  - `challenges` ChallengeResponse[], required
    - `id` string, required
    - `challenge_type` string, required
    - `title` string, required
    - `description` string, required
    - `briefing_reason` string, nullable
    - `emoji` string, required
    - `target_amount` number, required
    - `current_amount` number, required
    - `progress_pct` number, required
    - `difficulty` string, required
    - `status` string, required
    - `streak_count` integer, required
    - `started_at` string, required
    - `expires_at` string, required
    - `completed_at` string, nullable
  - `total_active` integer, required
  - `total_completed` integer, required
  - `current_streak` integer, 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)
