---
title: "Idempotency: 1Post docs"
url: "https://get1post.com/docs/api-idempotency.md"
canonical_url: "https://get1post.com/docs/api-idempotency"
last_updated: "2026-10-26"
type: "reference"
summary: "Send an Idempotency-Key on a write and a retry returns the first answer for 24 hours instead of creating a second post."
related: ["https://get1post.com/docs/api-posts.md", "https://get1post.com/docs/quickstart.md", "https://get1post.com/docs.md"]
---

# Idempotency: 1Post docs

Send an Idempotency-Key on a write and a retry returns the first answer for 24 hours instead of creating a second post.

Send an Idempotency-Key header on any write. The same key with the same request returns the first answer for 24 hours, so a retry after a timeout cannot create a second post. The same key with a different request is a 409 conflict. Keys use letters, digits and . _ : - up to 100 characters.

1. Make a key per intended action, such as a campaign id plus the network.
2. Send it with the first request and with every retry of that request.
3. Treat a 409 as a bug in your code: the key was reused for something else.

Idempotency is separate from the rule that an unknown outcome is never retried by 1Post itself; see [failures and unknown outcomes](https://get1post.com/docs/reconnect-and-failures.md).

## Questions

**Does a retry after a 500 error need a key?**

Yes, send the same key. If the first request did create the post, you get that answer back instead of a duplicate.

## Related

- [Creating and changing posts with the API: 1Post docs](https://get1post.com/docs/api-posts.md)
- [Quickstart: 1Post docs](https://get1post.com/docs/quickstart.md)
- [1Post docs: composer, scheduling, API, webhooks, MCP](https://get1post.com/docs.md)
