{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/fabricatedemail-com/json-schema/fabricatedemail-com-subscription-create-schema.json",
  "title": "SubscriptionCreate",
  "x-generated": "2026-10-30",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/fabricatedemail-com-openapi.yml#/components/schemas/SubscriptionCreate",
  "type": "object",
  "required": [
    "address"
  ],
  "properties": {
    "address": {
      "type": "string",
      "pattern": "^[a-z0-9._+-]{1,64}@fabricatedemail\\.com$",
      "description": "`local-part@fabricatedemail.com`, where the local part is 1–64\ncharacters of `[a-z0-9._+-]` and the domain is the service mail\ndomain exactly — a subdomain is rejected. Compared and stored\nlowercased, so `Foo@…` is registered and returned as `foo@…`.\n\nThe local part must not be one of the reserved parts listed in\n`x-reserved-local-parts` at the root of this document; those are\nforwarded to a real inbox and cannot be claimed.\n\nUse at least 64 bits of entropy for anything that can run twice\nconcurrently.\n"
    },
    "ttlSeconds": {
      "type": [
        "integer",
        "null"
      ],
      "minimum": 60,
      "maximum": 86400,
      "default": 3600,
      "description": "Seconds until the subscription expires: 60 to 86 400. Omitted, the\ndefault is one hour. Explicit `null` makes the subscription\npermanent — `expiresAt` is `null`, it is never garbage-collected,\nand `DELETE` is the only thing that ends it. Anything else — a\nnon-integer, a numeric string, a boolean, an out-of-range integer —\nis `400`.\n\nA permanent mailbox still counts towards the account's live address\ncap, and its messages still expire on the normal 24-hour retention.\n"
    }
  }
}