Backfill in-progress. Some lexicons and records may be missing or incomplete.

com.atproto.repo.createRecord

atproto-lexicons.bsky.social

Documentation

main procedure

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

Input

Encodingapplication/json
collection stringnsid Required

The NSID of the record collection.

record unknown Required

The record itself. Must contain a $type field.

repo stringat-identifier Required

The handle or DID of the repo (aka, current account).

rkey stringrecord-key Optional

The Record Key.

maxLength: 512 bytes
swapCommit stringcid Optional

Compare and swap with the previous commit by CID.

validate boolean Optional

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.

Output

Encodingapplication/json
cid stringcid Required

A content identifier (CID) referencing immutable data.

uri stringat-uri Required

An AT Protocol URI (e.g., at://did:plc:xyz/app.bsky.feed.post/abc).

validationStatus string Optional

No description provided.

Known values: valid, unknown

Errors

InvalidSwap Indicates that 'swapCommit' didn't match current repo commit.
Try It

Direct PDS XRPC methods (com.atproto.*) are disabled in Try It for security reasons.

These methods interact directly with Personal Data Servers and require careful handling. Use a dedicated client or CLI tool instead.
View raw schema
{
  "type": "procedure",
  "input": {
    "schema": {
      "type": "object",
      "required": [
        "repo",
        "collection",
        "record"
      ],
      "properties": {
        "repo": {
          "type": "string",
          "format": "at-identifier",
          "description": "The handle or DID of the repo (aka, current account)."
        },
        "rkey": {
          "type": "string",
          "format": "record-key",
          "maxLength": 512,
          "description": "The Record Key."
        },
        "record": {
          "type": "unknown",
          "description": "The record itself. Must contain a $type field."
        },
        "validate": {
          "type": "boolean",
          "description": "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": {
          "type": "string",
          "format": "nsid",
          "description": "The NSID of the record collection."
        },
        "swapCommit": {
          "type": "string",
          "format": "cid",
          "description": "Compare and swap with the previous commit by CID."
        }
      }
    },
    "encoding": "application/json"
  },
  "errors": [
    {
      "name": "InvalidSwap",
      "description": "Indicates that 'swapCommit' didn't match current repo commit."
    }
  ],
  "output": {
    "schema": {
      "type": "object",
      "required": [
        "uri",
        "cid"
      ],
      "properties": {
        "cid": {
          "type": "string",
          "format": "cid"
        },
        "uri": {
          "type": "string",
          "format": "at-uri"
        },
        "commit": {
          "ref": "com.atproto.repo.defs#commitMeta",
          "type": "ref"
        },
        "validationStatus": {
          "type": "string",
          "knownValues": [
            "valid",
            "unknown"
          ]
        }
      }
    },
    "encoding": "application/json"
  },
  "description": "Create a single new repository record. Requires auth, implemented by PDS."
}

Lexicon Garden

@