---
title: "Create or get an event checkpoint"
method: PUT
path: "/event/checkpoint/{name}"
tags: ["Event Checkpoints"]
---

# Create or get an event checkpoint

`PUT /event/checkpoint/{name}`

Create a new named event checkpoint, or return the existing one if it already exists.

On creation, the cursor is initialised to initial_cursor if provided, or to the current
end of the event stream otherwise. initial_cursor is ignored if the checkpoint already exists.

## Path parameters

- `name` string, required

## Request body

- PutCheckpointBody
  - `initial_cursor` string, nullable — Cursor token (ev1.*) to initialise the checkpoint at. Only used when the checkpoint is created — ignored if it already exists. If omitted on creation, defaults to the current end of the event stream.

## Response `200`

Checkpoint state with created flag

- UpsertCheckpointResponse
  - `checkpoint` CheckpointData, required
    - `checkpointVersion` string, required — Opaque version token (ec1.*) representing the current state of this checkpoint. Pass this as expected_checkpoint_version when advancing the cursor via PATCH — if the checkpoint has changed since you read it, the request will return 409 Conflict.
    - `cursor` string, required — Opaque cursor token (ev1.*) pointing to the current stream position
    - `name` string, required — Checkpoint name
    - `uid` string, required — Unique identifier for the checkpoint
    - `updatedAt` string, required — ISO 8601 timestamp of the last update
  - `created` boolean, required — True if the checkpoint was newly created, False if it already existed

---

[API](https://skmtc.net/treasuryspring/apis/treasuryspring-public-api.md) · [All operations](https://skmtc.net/treasuryspring/apis/treasuryspring-public-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/treasuryspring/treasuryspring-public-api/versions/d587dda25444/schema)
