{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "#/components/schemas/UserlandUserInvite",
  "title": "UserlandUserInvite",
  "type": "object",
  "properties": {
    "object": {
      "type": "string",
      "description": "Distinguishes the invitation object.",
      "const": "invitation"
    },
    "id": {
      "type": "string",
      "description": "The unique ID of the invitation.",
      "example": "invitation_01E4ZCR3C56J083X43JQXF3JK5"
    },
    "email": {
      "type": "string",
      "description": "The email address of the recipient.",
      "example": "marcelina.davis@example.com"
    },
    "state": {
      "type": "string",
      "enum": [
        "pending",
        "accepted",
        "expired",
        "revoked"
      ],
      "description": "The state of the invitation.",
      "example": "pending"
    },
    "accepted_at": {
      "format": "date-time",
      "type": [
        "string",
        "null"
      ],
      "description": "The timestamp when the invitation was accepted, or null if not yet accepted.",
      "example": null
    },
    "revoked_at": {
      "format": "date-time",
      "type": [
        "string",
        "null"
      ],
      "description": "The timestamp when the invitation was revoked, or null if not revoked.",
      "example": null
    },
    "expires_at": {
      "format": "date-time",
      "type": "string",
      "description": "The timestamp when the invitation expires.",
      "example": "2026-01-15T12:00:00.000Z"
    },
    "organization_id": {
      "type": [
        "string",
        "null"
      ],
      "description": "The ID of the [organization](/reference/organization) that the recipient will join.",
      "example": "org_01E4ZCR3C56J083X43JQXF3JK5"
    },
    "inviter_user_id": {
      "type": [
        "string",
        "null"
      ],
      "description": "The ID of the user who invited the recipient, if provided.",
      "example": "user_01HYGBX8ZGD19949T3BM4FW1C3"
    },
    "accepted_user_id": {
      "type": [
        "string",
        "null"
      ],
      "description": "The ID of the user who accepted the invitation, once accepted.",
      "example": null
    },
    "role_slug": {
      "type": [
        "string",
        "null"
      ],
      "description": "Slug of the role the invitee will be assigned on acceptance. Reflects the current role on the invitee's organization membership. null when the invitation has no associated organization.",
      "example": "admin"
    },
    "created_at": {
      "format": "date-time",
      "type": "string",
      "description": "An ISO 8601 timestamp.",
      "example": "2026-01-15T12:00:00.000Z"
    },
    "updated_at": {
      "format": "date-time",
      "type": "string",
      "description": "An ISO 8601 timestamp.",
      "example": "2026-01-15T12:00:00.000Z"
    },
    "token": {
      "type": "string",
      "description": "The token used to accept the invitation.",
      "example": "Z1uX3RbwcIl5fIGJJJCXXisdI"
    },
    "accept_invitation_url": {
      "type": "string",
      "description": "The URL where the recipient can accept the invitation.",
      "example": "https://your-app.com/invite?invitation_token=Z1uX3RbwcIl5fIGJJJCXXisdI"
    }
  },
  "required": [
    "object",
    "id",
    "email",
    "state",
    "accepted_at",
    "revoked_at",
    "expires_at",
    "organization_id",
    "inviter_user_id",
    "accepted_user_id",
    "role_slug",
    "created_at",
    "updated_at",
    "token",
    "accept_invitation_url"
  ]
}