Back to free tools
app.bsky.graph.listitem validator

BlueSky list item and URI validator

Validate list AT URIs, DID subjects, and timestamps before a developer creates app.bsky.graph.listitem records for moderation, curation, reference, or discovery lists.

Validate listitem JSON

The Lexicon is strict: one listitem record points one DID subject to one app.bsky.graph.list AT URI. Handles must be resolved to DIDs before record creation.

Needs review
2
DID subjects
1
handles to resolve
1
invalid inputs
OK
URI and time

Generated validation payload

{
  "list": {
    "uri": "at://did:plc:exampleworkspace123/app.bsky.graph.list/3listdemo",
    "valid": true
  },
  "createdAt": "2026-06-21T22:26:16.909Z",
  "listitemRecords": [
    {
      "$type": "app.bsky.graph.listitem",
      "subject": "did:plc:ewvi7nxzyoun6zhxrhs64oiz",
      "list": "at://did:plc:exampleworkspace123/app.bsky.graph.list/3listdemo",
      "createdAt": "2026-06-21T22:26:16.909Z"
    },
    {
      "$type": "app.bsky.graph.listitem",
      "subject": "did:web:example.com",
      "list": "at://did:plc:exampleworkspace123/app.bsky.graph.list/3listdemo",
      "createdAt": "2026-06-21T22:26:16.909Z"
    }
  ],
  "handlesToResolveBeforeWrite": [
    {
      "handle": "atproto.com",
      "resolver": "https://public.api.bsky.app/xrpc/com.atproto.identity.resolveHandle?handle=atproto.com",
      "reason": "app.bsky.graph.listitem requires a DID subject, not a handle."
    }
  ],
  "invalidSubjects": [
    "invalid subject"
  ]
}
From free tool to scheduled queue

Stop fighting formatting limits and API bugs. Craft your blocks cleanly using our automated tools, then schedule them directly to your BlueSky feed using ONYX.

Start Planning for Free