app.chronosky.schedule.listPosts

chronosky.app

{
  "id": "app.chronosky.schedule.listPosts",
  "defs": {
    "main": {
      "type": "query",
      "output": {
        "schema": {
          "type": "object",
          "required": [
            "posts",
            "pagination"
          ],
          "properties": {
            "posts": {
              "type": "array",
              "items": {
                "ref": "#scheduledPost",
                "type": "ref"
              }
            },
            "pagination": {
              "ref": "#pagination",
              "type": "ref"
            }
          }
        },
        "encoding": "application/json"
      },
      "parameters": {
        "type": "params",
        "properties": {
          "page": {
            "type": "integer",
            "default": 1,
            "minimum": 1,
            "description": "Page number (1-indexed)."
          },
          "limit": {
            "type": "integer",
            "default": 20,
            "maximum": 100,
            "minimum": 1,
            "description": "Number of parent posts per page. Thread posts always include all children regardless of limit (e.g., limit=100 returns up to 100 parent posts plus all their children)."
          },
          "status": {
            "enum": [
              "PENDING",
              "EXECUTING",
              "COMPLETED",
              "FAILED",
              "CANCELLED"
            ],
            "type": "string",
            "maxLength": 20,
            "description": "Filter by post status."
          }
        }
      },
      "description": "List scheduled posts for the authenticated user with pagination and filtering."
    },
    "pagination": {
      "type": "object",
      "required": [
        "page",
        "limit",
        "total",
        "totalPages"
      ],
      "properties": {
        "page": {
          "type": "integer",
          "minimum": 1,
          "description": "Current page number."
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "description": "Posts per page."
        },
        "total": {
          "type": "integer",
          "minimum": 0,
          "description": "Total number of posts."
        },
        "totalPages": {
          "type": "integer",
          "minimum": 0,
          "description": "Total number of pages."
        }
      },
      "description": "Pagination information."
    },
    "scheduledPost": {
      "type": "object",
      "required": [
        "id",
        "userId",
        "text",
        "scheduledAt",
        "status",
        "createdAt",
        "updatedAt",
        "retryCount",
        "langs"
      ],
      "properties": {
        "id": {
          "type": "string",
          "maxLength": 100,
          "description": "Post ID."
        },
        "text": {
          "type": "string",
          "maxLength": 3000,
          "description": "Post content text (app.bsky.feed.post#text). May be empty if embeds are present.",
          "maxGraphemes": 300
        },
        "atUri": {
          "type": "string",
          "maxLength": 500,
          "description": "AT Protocol post URI (at://did:plc:.../app.bsky.feed.post/...). Present after successful execution."
        },
        "embed": {
          "refs": [
            "app.bsky.embed.images",
            "app.bsky.embed.external",
            "app.bsky.embed.record",
            "app.bsky.embed.video",
            "app.bsky.embed.recordWithMedia"
          ],
          "type": "union",
          "description": "Embedded content such as images, external links, or quoted posts (app.bsky.embed.*)."
        },
        "langs": {
          "type": "array",
          "items": {
            "type": "string",
            "format": "language"
          },
          "maxLength": 3,
          "description": "Language codes for post content (app.bsky.feed.post#langs). ISO 639-1 or 639-3 codes."
        },
        "atRkey": {
          "type": "string",
          "maxLength": 100,
          "description": "AT Protocol record key. Present after successful execution."
        },
        "facets": {
          "type": "array",
          "items": {
            "ref": "app.bsky.richtext.facet",
            "type": "ref"
          },
          "description": "Rich text facets for mentions, links, and hashtags (app.bsky.richtext.facet)."
        },
        "labels": {
          "ref": "com.atproto.label.defs#selfLabels",
          "type": "ref",
          "description": "Self-applied content labels for content warnings (AT Protocol standard)."
        },
        "status": {
          "enum": [
            "PENDING",
            "EXECUTING",
            "COMPLETED",
            "FAILED",
            "CANCELLED"
          ],
          "type": "string",
          "maxLength": 20,
          "description": "Post status."
        },
        "userId": {
          "type": "string",
          "maxLength": 200,
          "description": "User ID who created this post."
        },
        "children": {
          "type": "array",
          "items": {
            "ref": "#scheduledPost",
            "type": "ref"
          },
          "description": "Child posts in thread. Only present for parent posts with children."
        },
        "errorMsg": {
          "type": "string",
          "maxLength": 2000,
          "description": "Error message if execution failed. Present only when status is FAILED."
        },
        "createdAt": {
          "type": "string",
          "format": "datetime",
          "maxLength": 100,
          "description": "Post creation datetime (ISO 8601)."
        },
        "updatedAt": {
          "type": "string",
          "format": "datetime",
          "maxLength": 100,
          "description": "Post last update datetime (ISO 8601)."
        },
        "executedAt": {
          "type": "string",
          "format": "datetime",
          "maxLength": 100,
          "description": "Execution completion datetime (ISO 8601). Present only when status is COMPLETED or FAILED."
        },
        "retryCount": {
          "type": "integer",
          "minimum": 0,
          "description": "Number of execution retry attempts."
        },
        "postgateCid": {
          "type": "string",
          "maxLength": 100,
          "description": "CID for postgate record. Present after successful execution with postgate settings."
        },
        "postgateUri": {
          "type": "string",
          "maxLength": 500,
          "description": "AT Protocol URI for postgate record. Present after successful execution with postgate settings."
        },
        "scheduledAt": {
          "type": "string",
          "format": "datetime",
          "maxLength": 100,
          "description": "Scheduled publication datetime (ISO 8601)."
        },
        "threadDepth": {
          "type": "integer",
          "minimum": 0,
          "description": "Thread depth level (0 for root post, 1 for direct reply, etc.)."
        },
        "parentPostId": {
          "type": "string",
          "maxLength": 100,
          "description": "Parent post ID for thread posts. Null for root posts."
        },
        "threadgateCid": {
          "type": "string",
          "maxLength": 100,
          "description": "CID for threadgate record. Present after successful execution with threadgate rules."
        },
        "threadgateUri": {
          "type": "string",
          "maxLength": 500,
          "description": "AT Protocol URI for threadgate record. Present after successful execution with threadgate rules."
        },
        "threadPosition": {
          "type": "integer",
          "minimum": 0,
          "description": "Position in thread (0-indexed). 0 for parent post, 1+ for children."
        },
        "threadgateRules": {
          "type": "array",
          "items": {
            "refs": [
              "app.bsky.feed.threadgate#mentionRule",
              "app.bsky.feed.threadgate#followerRule",
              "app.bsky.feed.threadgate#followingRule",
              "app.bsky.feed.threadgate#listRule"
            ],
            "type": "union"
          },
          "maxLength": 5,
          "description": "Reply restriction rules (app.bsky.feed.threadgate). Defines who can reply to this post."
        },
        "postgateDisableEmbedding": {
          "type": "boolean",
          "description": "Whether to disable quote posts and embeds for this post (app.bsky.feed.postgate)."
        }
      },
      "description": "Scheduled post object with AT Protocol standard fields."
    }
  },
  "$type": "com.atproto.lexicon.schema",
  "lexicon": 1
}

Validate Record

Validate a record against app.chronosky.schedule.listPosts

Validation Options
Automatically resolve and include external schemas for full validation
Treat any remaining unresolved references as valid

Metadata

DID
did:plc:bfjib7fy6dob3gyfssyfd4ry
CID
bafyreih5iusoqscseokdwozf5qmfrgwuappfl7pglua2qslqqz76g27b7q
Indexed At
2026-02-13 13:25 UTC
AT-URI
at://did:plc:bfjib7fy6dob3gyfssyfd4ry/com.atproto.lexicon.schema/app.chronosky.schedule.listPosts

Referenced Schemas (11)

Lexicon Garden

@