Semogram Docs
APIUsing the API

Idempotency and retries

Retain a logical request identity for supported mutations

An idempotency key identifies one logical mutation. On routes using the shared helper, send Idempotency-Key with a nonempty value of at most 200 characters. Creation and execution handlers that support it replay completed status/body for the same request. A different payload under the same key conflicts; an uncertain in-progress operation must not be treated as a fresh request.

curl --fail-with-body -X POST \
  -H "Authorization: Bearer $SEMOGRAM_API_KEY" \
  -H 'Idempotency-Key: equipment-import-2026-10-05-001' \
  "https://platform.semogram.com/api/v1/projects/$SEMOGRAM_PROJECT_ID/pipelines/$SEMOGRAM_PIPELINE_ID/execute"

Reuse this key only to retry that logical run. Generate a new key for the next intended run. Persist the key before sending work and retain the returned resource/run ID.

Route-specific support

The route catalog identifies handlers using the shared helper. Other routes can have their own operation-level deduplication; do not assume every POST honors this header. Source-write POST explicitly requires it and stores durable operation state.

Deduplicating API submission does not promise exactly-once effects in every external connector. A pipeline can fail after an external write. Recovery still needs the connector's transaction, snapshot and policy behavior. Retry GET reads with bounded backoff; for mutation timeouts, first reconcile the known resource or operation.