---
title: "Create a single new repository record. Requires auth, implemented by PDS."
method: POST
path: "/xrpc/com.atproto.repo.createRecord"
tags: ["com.atproto.repo"]
---

# Create a single new repository record. Requires auth, implemented by PDS.

`POST /xrpc/com.atproto.repo.createRecord`

## Request body

- object
  - `repo` string, at-identifier, required — The handle or DID of the repo (aka, current account).
  - `rkey` string, record-key — The Record Key.
  - `record` unknown, required
  - `validate` boolean — Can be set to 'false' to skip Lexicon schema validation of record data, 'true' to require it, or leave unset to validate only for known Lexicons.
  - `collection` string, nsid, required — The NSID of the record collection.
  - `swapCommit` string, cid — Compare and swap with the previous commit by CID.

## Response `200`

Success

- object
  - `cid` string, cid, required
  - `uri` string, uri, required
  - `commit` ComAtprotoRepoDefsCommitMeta
    - `cid` string, cid, required
    - `rev` string, tid, required
  - `validationStatus` string

## Other responses

- `400` — Bad Request

## Changes

- **2026-07-12** `0b39d9ed30de` — 1 info
  - endpoint added
- **2026-01-21** `b21cd7605630` — 1 breaking
  - api path removed without deprecation

[Change history](https://skmtc.dev/streamplace/apis/generated-lexicon-api-schema/changes/xrpc/com.atproto.repo.createRecord/post.md)

---

[API](https://skmtc.dev/streamplace/apis/generated-lexicon-api-schema.md) · [All operations](https://skmtc.dev/streamplace/apis/generated-lexicon-api-schema/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/streamplace/generated-lexicon-api-schema/revisions/8e2ce7f5d85b/schema)
