---
title: "Update Oneoff Event"
method: POST
path: "/api/streaks/extend"
tags: ["streaks"]
---

# Update Oneoff Event

`POST /api/streaks/extend`

Update one-off daily event completion for a user.

Authentication methods:
1. Regular user auth via Bearer token
2. Admin auth via X-API-Key and X-User-ID headers

This will update the last_oneoff_daily_event timestamp and trigger streak calculation.
Uses user's timezone from current_user if available, otherwise queries user_info table.

Query parameters:
- restore: If true, restore a broken streak by incrementing the last active streak instead of starting fresh.

Request body (optional):
- useFreeOffer: If true, increment the free_restore_count when restoring.
- txnId: Transaction ID if the user paid for the restore.

## Query parameters

- `restore` boolean — If true, restore a broken streak by incrementing the last active streak instead of starting fresh

## Headers

- `x-api-key` string, nullable
- `x-user-id` string, nullable

## Request body

- StreakRestoreRequest
  - `useFreeOffer` boolean, nullable
  - `txnId` string, nullable

## Response `200`

Successful Response

- StreakResponse
  - `streak_count` integer, required
  - `last_completed_at` string, date-time, nullable
  - `today_completed` boolean
  - `streak_year_days` integer
  - `can_restore` boolean
  - `past_week_activity` boolean[]
  - `free_restore_count` integer
  - `broken_streak_count` integer

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.net/usecreed/apis/creed-api.md) · [All operations](https://skmtc.net/usecreed/apis/creed-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/usecreed/creed-api/revisions/cb25d3fef898/schema)
