---
title: "Complete Daily Challenge"
method: POST
path: "/api/challenges/{user_id}/daily/complete"
tags: ["Challenges"]
---

# Complete Daily Challenge

`POST /api/challenges/{user_id}/daily/complete`

## 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/{user_id}/daily/complete`
- Auth: HTTP bearer

Mark today's daily challenge as completed. Awards 5 XP + streak bonus.
Server-enforced: max 1 completion per user per calendar day.

## Path parameters

- `user_id` string, uuid, required

## Request body

- DailyCompleteRequest: Sent by the local-first app; a request with no body behaves as before.
  - `completed_at` string, date-time, nullable
  - `idempotent` boolean

## Response `200`

Successful Response

- unknown

## 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)
