---
title: "Idempotency Start"
method: POST
path: "/api/v1.idempotency.start"
tags: ["Idempotency"]
---

# Idempotency Start

`POST /api/v1.idempotency.start`

Start an idempotent request

## Request body

- IdempotencyStartIn
  - `namespace` string, nullable
  - `key` string, required
  - `ttl_ms` integer, required — TTL in milliseconds for the lock/response

## Response `200`

- union
  - object — Lock acquired, request should proceed
    - `status` 'started', required
  - object — Request is already in progress (locked)
    - `status` 'locked', required
  - object — Request was already completed, cached response returned
    - `status` 'completed', required
    - `data` IdempotencyCompleted, required
      - `response` integer[], required

## Other responses

- `400`
- `401`
- `403`
- `422`

## Changes

- **2026-03-31** `f62be26d2a53` — 7 breaking, 6 warning, 3 info
  - added the new required request property `ttl_ms`
  - the `detail` response's property type changed from `string` to `array` for status `422`
  - removed the required property `code` from the response with the `422` status
  - removed the required property `type` from the response with the `400` status
  - …12 more

[Change history](https://skmtc.dev/svix/apis/diom-api/changes/api/v1.idempotency.start/post.md)

---

[API](https://skmtc.dev/svix/apis/diom-api.md) · [All operations](https://skmtc.dev/svix/apis/diom-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/svix/diom-api/revisions/9be964e9f7db/schema)
