com.babesky.actor.profile

babesky.com

{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "bookingsAvailability": {
      "properties": {
        "details": {
          "maxGraphemes": 500,
          "type": "string"
        },
        "enabled": {
          "type": "boolean"
        },
        "expiresAt": {
          "description": "When this availability window closes. Maximum 30 days from publish time.",
          "format": "datetime",
          "type": "string"
        },
        "location": {
          "description": "City, region, or travel note.",
          "maxGraphemes": 120,
          "type": "string"
        }
      },
      "required": [
        "enabled"
      ],
      "type": "object"
    },
    "contactMethod": {
      "properties": {
        "kind": {
          "knownValues": [
            "platform",
            "email",
            "signal",
            "whatsapp",
            "telegram",
            "germ",
            "discord",
            "phone",
            "other"
          ],
          "type": "string"
        },
        "platformSlug": {
          "description": "When kind=platform, references one of the creator's saved com.babesky.actor.links entries by slug.",
          "type": "string"
        },
        "value": {
          "description": "Contact address (email, handle, phone number, etc.). Not used when kind=platform.",
          "maxGraphemes": 200,
          "type": "string"
        }
      },
      "required": [
        "kind"
      ],
      "type": "object"
    },
    "customsAvailability": {
      "properties": {
        "contentTypes": {
          "items": {
            "knownValues": [
              "photo",
              "video",
              "audio",
              "physical",
              "other"
            ],
            "type": "string"
          },
          "type": "array"
        },
        "details": {
          "description": "Free text: pricing, turnaround, do-not-do list, etc.",
          "maxGraphemes": 500,
          "type": "string"
        },
        "enabled": {
          "type": "boolean"
        },
        "expiresAt": {
          "description": "When this availability window closes. Maximum 30 days from publish time.",
          "format": "datetime",
          "type": "string"
        }
      },
      "required": [
        "enabled"
      ],
      "type": "object"
    },
    "main": {
      "description": "Core record of the Babesky creator portfolio. Stores the creator's tagline, avatar, content niches, ratings, collab availability, and contact preferences. Consumed alongside com.babesky.actor.links, com.babesky.actor.support, and com.babesky.actor.featured to render a full portfolio in Atmosphere-compatible apps.",
      "key": "literal:self",
      "record": {
        "properties": {
          "avatar": {
            "accept": [
              "image/png",
              "image/jpeg",
              "image/webp"
            ],
            "description": "Optional avatar override. Must be a blob already present in the actor's PDS.",
            "maxSize": 1000000,
            "type": "blob"
          },
          "bookings": {
            "ref": "#bookingsAvailability",
            "type": "ref"
          },
          "collabBrand": {
            "description": "Creator is open to brand partnerships.",
            "type": "boolean"
          },
          "collabContent": {
            "description": "Creator is open to content collaborations.",
            "type": "boolean"
          },
          "contentRating": {
            "description": "Self-declared content rating. Metadata only. Does not trigger any Bluesky labels.",
            "knownValues": [
              "none",
              "nudity",
              "sexual",
              "porn",
              "graphic-media"
            ],
            "type": "string"
          },
          "createdAt": {
            "format": "datetime",
            "type": "string"
          },
          "customs": {
            "ref": "#customsAvailability",
            "type": "ref"
          },
          "niches": {
            "description": "Free-text content category tags chosen by the creator.",
            "items": {
              "maxGraphemes": 32,
              "type": "string"
            },
            "maxLength": 10,
            "type": "array"
          },
          "preferredContact": {
            "description": "How fans should reach out.",
            "ref": "#contactMethod",
            "type": "ref"
          },
          "tagline": {
            "description": "Short creator bio for Atmosphere apps.",
            "maxGraphemes": 280,
            "type": "string"
          },
          "taglineMode": {
            "description": "Whether the tagline supplements or replaces the Bluesky bio on Atmosphere apps.",
            "knownValues": [
              "addition",
              "override"
            ],
            "type": "string"
          }
        },
        "required": [
          "createdAt"
        ],
        "type": "object"
      },
      "type": "record"
    }
  },
  "id": "com.babesky.actor.profile",
  "lexicon": 1
}

Validate Record

Validate a record against com.babesky.actor.profile

Validation Options
Treat any remaining unresolved references as valid

Metadata

DID
did:plc:qtapiembzpxlzsiagnc7eyy3
CID
bafyreigf7kctzi5oq437divels5jzn37ebny6xoe7twrl2ft4n5s3cyeye
Indexed At
2026-05-01 19:57 UTC
AT-URI
at://did:plc:qtapiembzpxlzsiagnc7eyy3/com.atproto.lexicon.schema/com.babesky.actor.profile

Version History (2 versions)

Similar Lexicons

Lexicons whose schemas describe something close to this one. Check them before publishing a new one that overlaps.

Lexicon Garden

@