app.chronosky.plan.getUsage

chronosky.app

{
  "id": "app.chronosky.plan.getUsage",
  "defs": {
    "main": {
      "type": "query",
      "output": {
        "schema": {
          "type": "object",
          "required": [
            "currentPlan",
            "limits",
            "usage"
          ],
          "properties": {
            "usage": {
              "ref": "#usageStats",
              "type": "ref"
            },
            "limits": {
              "ref": "#planLimits",
              "type": "ref"
            },
            "currentPlan": {
              "ref": "#currentPlan",
              "type": "ref"
            }
          }
        },
        "encoding": "application/json"
      },
      "description": "Get the authenticated user's plan information and usage statistics"
    },
    "planLimits": {
      "type": "object",
      "required": [
        "monthlyPostsLimit",
        "pendingPostsLimit",
        "maxScheduleDays",
        "scheduleIntervalMinutes",
        "maxImagesPerPost",
        "threadPostsLimit"
      ],
      "properties": {
        "threadPosts": {
          "type": "boolean",
          "description": "Whether thread posts are enabled"
        },
        "videoUpload": {
          "type": "boolean",
          "description": "Whether video uploads are enabled"
        },
        "maxImageSizeMb": {
          "type": "integer",
          "description": "Maximum image size (MB)"
        },
        "maxVideoSizeMb": {
          "type": "integer",
          "description": "Maximum video size (MB)"
        },
        "markdownSupport": {
          "type": "boolean",
          "description": "Whether markdown formatting is supported"
        },
        "maxScheduleDays": {
          "type": "integer",
          "description": "Maximum days in advance to schedule"
        },
        "maxImagesPerPost": {
          "type": "integer",
          "description": "Maximum images per post"
        },
        "threadPostsLimit": {
          "type": "integer",
          "description": "Maximum posts per thread"
        },
        "monthlyPostsLimit": {
          "type": "integer",
          "description": "Maximum posts per month"
        },
        "pendingPostsLimit": {
          "type": "integer",
          "description": "Maximum concurrent pending posts"
        },
        "scheduleIntervalMinutes": {
          "type": "integer",
          "description": "Minimum interval between scheduled posts (minutes)"
        },
        "videoProcessingMinutesMonthly": {
          "type": "integer",
          "description": "Monthly video processing minutes"
        }
      },
      "description": "Plan limits."
    },
    "usageStats": {
      "type": "object",
      "required": [
        "pendingPostsCount",
        "monthlyPostsCount",
        "monthlyPeriodStart",
        "monthlyPeriodEnd",
        "lastUpdated"
      ],
      "properties": {
        "lastUpdated": {
          "type": "string",
          "format": "datetime",
          "maxLength": 100,
          "description": "Last time usage was updated (ISO 8601)"
        },
        "storageUsedMb": {
          "type": "integer",
          "description": "Storage used (MB)"
        },
        "monthlyPeriodEnd": {
          "type": "string",
          "format": "datetime",
          "maxLength": 100,
          "description": "End of current monthly period (ISO 8601)"
        },
        "monthlyPostsCount": {
          "type": "integer",
          "description": "Number of posts this month"
        },
        "pendingPostsCount": {
          "type": "integer",
          "description": "Current number of pending posts"
        },
        "monthlyPeriodStart": {
          "type": "string",
          "format": "datetime",
          "maxLength": 100,
          "description": "Start of current monthly period (ISO 8601)"
        },
        "apiRequestsThisHour": {
          "type": "integer",
          "description": "API requests in current hour"
        }
      },
      "description": "Usage statistics."
    },
    "currentPlan": {
      "type": "object",
      "required": [
        "id",
        "tier",
        "name",
        "displayName",
        "isActive"
      ],
      "properties": {
        "id": {
          "type": "string",
          "maxLength": 100,
          "description": "Plan ID"
        },
        "name": {
          "type": "string",
          "maxLength": 200,
          "description": "Internal plan name"
        },
        "tier": {
          "type": "string",
          "maxLength": 50,
          "description": "Plan tier (FREE, BASIC, STANDARD, PREMIUM)"
        },
        "isActive": {
          "type": "boolean",
          "description": "Whether the plan is currently active"
        },
        "validUntil": {
          "type": "string",
          "format": "datetime",
          "maxLength": 100,
          "description": "Plan expiration date (ISO 8601)"
        },
        "displayName": {
          "type": "unknown",
          "description": "Localized plan display names"
        }
      },
      "description": "Current plan information."
    }
  },
  "$type": "com.atproto.lexicon.schema",
  "lexicon": 1
}

Validate Record

Validate a record against app.chronosky.plan.getUsage

Validation Options
Treat any remaining unresolved references as valid

Metadata

DID
did:plc:bfjib7fy6dob3gyfssyfd4ry
CID
bafyreihnv6jotaitwh6l2uvoulxvx3rbrl5ckvrjm6ghkcjwub7qydgnty
Indexed At
2026-02-18 18:03 UTC
AT-URI
at://did:plc:bfjib7fy6dob3gyfssyfd4ry/com.atproto.lexicon.schema/app.chronosky.plan.getUsage

Lexicon Garden

@