Ando Public API v1

REST API for searching and reading Ando workspace context (messages, conversations, members, calls, tasks) and writing messages/replies, plus webhook endpoint and delivery management and realtime connection bootstrap. Workspace API-key auth; every write requires an Idempotency-Key header.

OpenAPI Specification

ando-public-api-v1-openapi.json Raw ↑
{
  "components": {
    "responses": {
      "BadRequest": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/LegacyErrorResponse"
            }
          }
        },
        "description": "Bad request."
      },
      "Conflict": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/LegacyErrorResponse"
            }
          }
        },
        "description": "Conflict."
      },
      "Forbidden": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/LegacyErrorResponse"
            }
          }
        },
        "description": "Forbidden."
      },
      "InternalError": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/LegacyErrorResponse"
            }
          }
        },
        "description": "Internal server error."
      },
      "NotFound": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/LegacyErrorResponse"
            }
          }
        },
        "description": "Not found."
      },
      "RateLimited": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/PublicApiErrorResponse"
            }
          }
        },
        "description": "Rate limit or quota exceeded."
      },
      "Unauthorized": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/LegacyErrorResponse"
            }
          }
        },
        "description": "Missing or invalid API key."
      }
    },
    "schemas": {
      "CallParticipant": {
        "additionalProperties": false,
        "description": "A participant in a call.",
        "properties": {
          "id": {
            "description": "Participant workspace member identifier.",
            "type": "string",
            "example": "01jzn7e61x3a7v9h2r7t2m3q4p"
          },
          "name": {
            "description": "Display name.",
            "type": "string",
            "nullable": true
          }
        },
        "required": [
          "id",
          "name"
        ],
        "type": "object"
      },
      "CallResponse": {
        "additionalProperties": false,
        "description": "Call detail response.",
        "properties": {
          "chapters": {
            "description": "Call summary chapters.",
            "items": {
              "$ref": "#/components/schemas/CallTranscriptChapter"
            },
            "type": "array"
          },
          "conversation_id": {
            "description": "Conversation identifier.",
            "type": "string",
            "example": "01jzn7e61x3a7v9h2r7t2m3q4p"
          },
          "conversation_name": {
            "description": "Conversation name.",
            "type": "string",
            "nullable": true
          },
          "duration_seconds": {
            "description": "Call duration in seconds.",
            "type": "number",
            "nullable": true
          },
          "ended_at": {
            "description": "Call end timestamp.",
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "id": {
            "description": "Call identifier.",
            "type": "string",
            "example": "01jzn7e61x3a7v9h2r7t2m3q4p"
          },
          "participants": {
            "description": "Call participants.",
            "items": {
              "$ref": "#/components/schemas/CallParticipant"
            },
            "type": "array"
          },
          "started_at": {
            "description": "Call start timestamp.",
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "status": {
            "description": "Call status.",
            "type": "string"
          },
          "summary": {
            "description": "Call summary markdown.",
            "type": "string",
            "nullable": true
          }
        },
        "required": [
          "id",
          "conversation_id",
          "conversation_name",
          "status",
          "duration_seconds",
          "participants",
          "summary",
          "chapters",
          "started_at",
          "ended_at"
        ],
        "type": "object"
      },
      "CallResult": {
        "additionalProperties": false,
        "description": "Search result for a call.",
        "properties": {
          "conversation_id": {
            "description": "Conversation identifier.",
            "type": "string",
            "example": "01jzn7e61x3a7v9h2r7t2m3q4p"
          },
          "conversation_name": {
            "description": "Conversation name.",
            "type": "string",
            "nullable": true
          },
          "duration_seconds": {
            "description": "Call duration in seconds.",
            "type": "number",
            "nullable": true
          },
          "ended_at": {
            "description": "Call end timestamp.",
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "id": {
            "description": "Call identifier.",
            "type": "string",
            "example": "01jzn7e61x3a7v9h2r7t2m3q4p"
          },
          "participant_count": {
            "description": "Number of call participants.",
            "type": "integer"
          },
          "participant_names": {
            "description": "Participant display names.",
            "items": {
              "description": "Name.",
              "type": "string"
            },
            "type": "array"
          },
          "started_at": {
            "description": "Call start timestamp.",
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "status": {
            "description": "Call status.",
            "type": "string"
          },
          "summary": {
            "description": "Call summary markdown.",
            "type": "string",
            "nullable": true
          }
        },
        "required": [
          "id",
          "conversation_id",
          "conversation_name",
          "status",
          "duration_seconds",
          "participant_names",
          "participant_count",
          "summary",
          "started_at",
          "ended_at"
        ],
        "type": "object"
      },
      "CallTranscriptChapter": {
        "additionalProperties": false,
        "description": "A summary chapter for a call transcript.",
        "properties": {
          "content": {
            "description": "Chapter content.",
            "type": "string"
          },
          "end_ms": {
            "description": "Chapter end offset in milliseconds.",
            "type": "integer"
          },
          "start_ms": {
            "description": "Chapter start offset in milliseconds.",
            "type": "integer"
          },
          "title": {
            "description": "Chapter title.",
            "type": "string"
          }
        },
        "required": [
          "title",
          "content",
          "start_ms",
          "end_ms"
        ],
        "type": "object"
      },
      "CallTranscriptResponse": {
        "additionalProperties": false,
        "description": "Current call transcript compatibility response.",
        "properties": {
          "call_id": {
            "description": "Call identifier.",
            "type": "string",
            "example": "01jzn7e61x3a7v9h2r7t2m3q4p"
          },
          "conversation_name": {
            "description": "Conversation name.",
            "type": "string",
            "nullable": true
          },
          "duration_seconds": {
            "description": "Call duration in seconds.",
            "type": "number",
            "nullable": true
          },
          "pageInfo": {
            "$ref": "#/components/schemas/LegacyPageInfo"
          },
          "segments": {
            "description": "Transcript segments.",
            "items": {
              "$ref": "#/components/schemas/CallTranscriptSegment"
            },
            "type": "array"
          }
        },
        "required": [
          "call_id",
          "conversation_name",
          "duration_seconds",
          "segments",
          "pageInfo"
        ],
        "type": "object"
      },
      "CallTranscriptSegment": {
        "additionalProperties": false,
        "description": "A transcript segment.",
        "properties": {
          "content": {
            "description": "Transcript text.",
            "type": "string"
          },
          "end_ms": {
            "description": "Segment end offset in milliseconds.",
            "type": "integer"
          },
          "speaker_name": {
            "description": "Speaker display name.",
            "type": "string",
            "nullable": true
          },
          "start_ms": {
            "description": "Segment start offset in milliseconds.",
            "type": "integer"
          }
        },
        "required": [
          "speaker_name",
          "content",
          "start_ms",
          "end_ms"
        ],
        "type": "object"
      },
      "ClipboardItem": {
        "additionalProperties": false,
        "description": "An item inside a clipboard.",
        "properties": {
          "author_name": {
            "description": "Message author name.",
            "type": "string",
            "nullable": true
          },
          "content": {
            "description": "Message or file text content.",
            "type": "string",
            "nullable": true
          },
          "created_at": {
            "description": "Creation timestamp.",
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "display_name": {
            "description": "Workspace member display name.",
            "type": "string",
            "nullable": true
          },
          "id": {
            "description": "Item identifier.",
            "type": "string",
            "example": "01jzn7e61x3a7v9h2r7t2m3q4p"
          },
          "mime_type": {
            "description": "File MIME type.",
            "type": "string",
            "nullable": true
          },
          "name": {
            "description": "Conversation or file name.",
            "type": "string",
            "nullable": true
          },
          "title": {
            "description": "Clipboard item title.",
            "type": "string",
            "nullable": true
          },
          "type": {
            "description": "Clipboard item type. The member value is a v1 compatibility spelling for a workspace member item.",
            "enum": [
              "message",
              "member",
              "conversation",
              "file"
            ],
            "type": "string"
          },
          "url": {
            "description": "File URL.",
            "type": "string",
            "nullable": true
          }
        },
        "required": [
          "type",
          "id"
        ],
        "type": "object"
      },
      "ClipboardResponse": {
        "additionalProperties": false,
        "description": "Clipboard detail response.",
        "properties": {
          "created_at": {
            "description": "Clipboard creation timestamp.",
            "type": "string",
            "example": "2026-05-14T08:00:00.000Z",
            "format": "date-time"
          },
          "description": {
            "description": "Clipboard description.",
            "type": "string",
            "nullable": true
          },
          "id": {
            "description": "Clipboard identifier.",
            "type": "string",
            "example": "01jzn7e61x3a7v9h2r7t2m3q4p"
          },
          "items": {
            "description": "Clipboard items.",
            "items": {
              "$ref": "#/components/schemas/ClipboardItem"
            },
            "type": "array"
          },
          "title": {
            "description": "Clipboard title.",
            "type": "string",
            "nullable": true
          }
        },
        "required": [
          "id",
          "title",
          "description",
          "created_at",
          "items"
        ],
        "type": "object"
      },
      "ClipboardResult": {
        "additionalProperties": false,
        "description": "Search result for a clipboard.",
        "properties": {
          "created_at": {
            "description": "Clipboard creation timestamp.",
            "type": "string",
            "example": "2026-05-14T08:00:00.000Z",
            "format": "date-time"
          },
          "description": {
            "description": "Clipboard description.",
            "type": "string",
            "nullable": true
          },
          "id": {
            "description": "Clipboard identifier.",
            "type": "string",
            "example": "01jzn7e61x3a7v9h2r7t2m3q4p"
          },
          "item_count": {
            "description": "Number of items in the clipboard.",
            "type": "integer"
          },
          "title": {
            "description": "Clipboard title.",
            "type": "string",
            "nullable": true
          }
        },
        "required": [
          "id",
          "title",
          "description",
          "item_count",
          "created_at"
        ],
        "type": "object"
      },
      "OpenRealtimeConnectionRequest": {
        "additionalProperties": false,
        "description": "Public realtime connection-opening request.",
        "properties": {
          "resume_from": {
            "$ref": "#/components/schemas/RealtimeResumeRequest"
          },
          "subscriptions": {
            "description": "Realtime subscriptions to authorize for this connection.",
            "items": {
              "$ref": "#/components/schemas/RealtimeConnectionSubscriptionRequest"
            },
            "type": "array",
            "minItems": 1
          }
        },
        "required": [
          "subscriptions"
        ],
        "type": "object"
      },
      "OpenRealtimeConnectionResponse": {
        "additionalProperties": false,
        "description": "Temporary public realtime websocket connection details.",
        "properties": {
          "approximate_connection_time_seconds": {
            "description": "Approximate expected connection lifetime in seconds when the server advertises one.",
            "type": "number",
            "nullable": true
          },
          "connection_id": {
            "description": "Realtime connection identifier.",
            "type": "string",
            "example": "01jzn7e61x3a7v9h2r7t2m3q4p"
          },
          "expires_at": {
            "description": "Timestamp when the returned connection URL expires if it has not been used.",
            "type": "string",
            "example": "2026-05-14T08:00:00.000Z",
            "format": "date-time"
          },
          "expires_in_seconds": {
            "description": "Seconds until the returned connection URL expires if it has not been used.",
            "type": "integer",
            "minimum": 1
          },
          "heartbeat_interval_seconds": {
            "description": "Recommended heartbeat interval for the socket.",
            "type": "integer",
            "minimum": 1
          },
          "protocol": {
            "description": "Required websocket subprotocol.",
            "enum": [
              "ando.realtime.v1"
            ],
            "type": "string"
          },
          "resume_supported": {
            "description": "Whether bounded resume is supported for this connection.",
            "type": "boolean"
          },
          "subscriptions": {
            "description": "Canonical subscriptions authorized for the socket.",
            "items": {
              "$ref": "#/components/schemas/RealtimeConnectionSubscription"
            },
            "type": "array"
          },
          "url": {
            "description": "Temporary pre-authorized websocket URL. Treat the ticket query parameter as secret.",
            "type": "string"
          },
          "warnings": {
            "description": "Non-fatal connection-opening warnings.",
            "items": {
              "$ref": "#/components/schemas/RealtimeConnectionWarning"
            },
            "type": "array"
          }
        },
        "required": [
          "url",
          "expires_at",
          "expires_in_seconds",
          "connection_id",
          "protocol",
          "heartbeat_interval_seconds",
          "approximate_connection_time_seconds",
          "resume_supported",
          "subscriptions"
        ],
        "type": "object"
      },
      "RealtimeAckError": {
        "additionalProperties": false,
        "description": "Client-side processing error attached to an acknowledgement.",
        "properties": {
          "code": {
            "description": "Machine-readable acknowledgement error code.",
            "type": "string"
          },
          "message": {
            "description": "Human-readable acknowledgement error message.",
            "type": "string"
          }
        },
        "required": [
          "code"
        ],
        "type": "object"
      },
      "RealtimeAckFrame": {
        "additionalProperties": false,
        "description": "Client acknowledgement frame for one realtime event envelope.",
        "properties": {
          "envelope_id": {
            "description": "Realtime delivery envelope identifier.",
            "type": "string",
            "example": "01jzn7e61x3a7v9h2r7t2m3q4p"
          },
          "error": {
            "$ref": "#/components/schemas/RealtimeAckError"
          }
        },
        "required": [
          "envelope_id"
        ],
        "type": "object"
      },
      "RealtimeConnectionSubscription": {
        "additionalProperties": false,
        "description": "Canonical realtime subscription authorized by the API.",
        "properties": {
          "delivery": {
            "$ref": "#/components/schemas/RealtimeDelivery"
          },
          "events": {
            "description": "ProductEvent types delivered on this subscription.",
            "items": {
              "$ref": "#/components/schemas/RealtimeEventType"
            },
            "type": "array",
            "minItems": 1
          },
          "id": {
            "description": "Realtime subscription identifier.",
            "type": "string",
            "example": "01jzn7e61x3a7v9h2r7t2m3q4p"
          },
          "target": {
            "$ref": "#/components/schemas/RealtimeObjectTarget"
          }
        },
        "required": [
          "id",
          "target",
          "delivery",
          "events"
        ],
        "type": "object"
      },
      "RealtimeConnectionSubscriptionRequest": {
        "additionalProperties": false,
        "description": "Realtime subscription requested while opening a connection.",
        "properties": {
          "delivery": {
            "$ref": "#/components/schemas/RealtimeDelivery"
          },
          "events": {
            "description": "ProductEvent types requested for this subscription.",
            "items": {
              "$ref": "#/components/schemas/RealtimeEventType"
            },
            "type": "array",
            "minItems": 1
          },
          "target": {
            "$ref": "#/components/schemas/RealtimeTarget"
          }
        },
        "required": [
          "target",
          "delivery",
          "events"
        ],
        "type": "object"
      },
      "RealtimeConnectionWarning": {
        "additionalProperties": false,
        "description": "Non-fatal realtime connection-opening warning.",
        "properties": {
          "code": {
            "description": "Realtime connection warning code.",
            "enum": [
              "resume_failed",
              "resume_unavailable"
            ],
            "type": "string"
          },
          "message": {
            "description": "Human-readable warning message.",
            "type": "string"
          }
        },
        "required": [
          "code",
          "message"
        ],
        "type": "object"
      },
      "RealtimeDelivery": {
        "description": "Realtime delivery filter. Use \"messages\" for readable message.created delivery; use \"mentions\" for explicit mention-only delivery capped at 100 explicit targets per message.",
        "enum": [
          "messages",
          "mentions"
        ],
        "type": "string"
      },
      "RealtimeEventDeliveryContext": {
        "additionalProperties": false,
        "description": "Subscriber-specific delivery metadata for this realtime event frame.",
        "properties": {
          "delivery": {
            "$ref": "#/components/schemas/RealtimeDelivery"
          },
          "delivery_reason": {
            "description": "Why this subscription received the event.",
            "enum": [
              "message",
              "mention"
            ],
            "type": "string"
          },
          "mention_targets": {
            "description": "Subscriber-owned mention targets matched by this delivery.",
            "items": {
              "$ref": "#/components/schemas/RealtimeEventMentionTarget"
            },
            "type": "array"
          },
          "was_mentioned": {
            "description": "Whether this subscriber was explicitly mentioned by the delivered event.",
            "type": "boolean"
          }
        },
        "required": [
          "delivery",
          "delivery_reason",
          "mention_targets",
          "was_mentioned"
        ],
        "type": "object"
      },
      "RealtimeDisconnectFrame": {
        "additionalProperties": false,
        "description": "Server frame sent before a planned realtime socket close when possible.",
        "properties": {
          "reason": {
            "description": "Realtime disconnect reason.",
            "enum": [
              "server_restart",
              "deploy_draining",
              "connection_max_age",
              "backpressure",
              "temporary_unavailable",
              "refresh_requested",
              "invalid_ticket",
              "expired_ticket",
              "revoked_api_key",
              "missing_scope",
              "unsupported_subscription",
              "policy_violation"
            ],
            "type": "string"
          },
          "retry_after_seconds": {
            "description": "Recommended delay before reconnecting.",
            "type": "integer",
            "minimum": 0
          },
          "type": {
            "description": "Frame type.",
            "enum": [
              "disconnect"
            ],
            "type": "string"
          }
        },
        "required": [
          "type",
          "reason"
        ],
        "type": "object"
      },
      "RealtimeEventFrame": {
        "additionalProperties": false,
        "description": "Server delivery frame containing one public ProductEvent envelope.",
        "properties": {
          "accepts_response_payload": {
            "description": "Whether the server accepts a response payload. The initial protocol only supports acknowledgement.",
            "enum": [
              false
            ],
            "type": "boolean"
          },
          "cursor": {
            "description": "Resume cursor associated with this delivery.",
            "type": "string"
          },
          "delivery_context": {
            "$ref": "#/components/schemas/RealtimeEventDeliveryContext"
          },
          "envelope_id": {
            "description": "Unique websocket delivery attempt identifier.",
            "type": "string",
            "example": "01jzn7e61x3a7v9h2r7t2m3q4p"
          },
          "payload": {
            "$ref": "#/components/schemas/RealtimeProductEventEnvelope"
          },
          "subscription_id": {
            "description": "Subscription that received this event.",
            "type": "string",
            "example": "01jzn7e61x3a7v9h2r7t2m3q4p"
          },
          "type": {
            "description": "Frame type.",
            "enum": [
              "event"
            ],
            "type": "string"
          }
        },
        "required": [
          "type",
          "envelope_id",
          "accepts_response_payload",
          "subscription_id",
          "cursor",
          "payload"
        ],
        "type": "object"
      },
      "RealtimeEventMentionTarget": {
        "additionalProperties": false,
        "description": "Mention target owned by the subscriber receiving this event.",
        "properties": {
          "id": {
            "description": "Workspace membership target identifier.",
            "type": "string",
            "example": "01jzn7e61x3a7v9h2r7t2m3q4p"
          },
          "type": {
            "description": "Mention target type.",
            "enum": [
              "workspace_membership"
            ],
            "type": "string"
          }
        },
        "required": [
          "id",
          "type"
        ],
        "type": "object"
      },
      "RealtimeEventType": {
        "description": "ProductEvent type available on public realtime sockets.",
        "enum": [
          "message.created"
        ],
        "type": "string"
      },
      "RealtimeHelloFrame": {
        "additionalProperties": false,
        "description": "Server hello frame sent after a realtime socket connects.",
        "properties": {
          "connection_id": {
            "description": "Realtime connection identifier.",
            "type": "string",
            "example": "01jzn7e61x3a7v9h2r7t2m3q4p"
          },
          "heartbeat_interval_seconds": {
            "description": "Recommended heartbeat interval for the socket.",
            "type": "integer",
            "minimum": 1
          },
          "resume_supported": {
            "description": "Whether bounded resume is supported for this connection.",
            "type": "boolean"
          },
          "subscriptions": {
            "description": "Canonical subscriptions authorized for this socket.",
            "items": {
              "$ref": "#/components/schemas/RealtimeConnectionSubscription"
            },
            "type": "array"
          },
          "type": {
            "description": "Frame type.",
            "enum": [
              "hello"
            ],
            "type": "string"
          },
          "warnings": {
            "description": "Non-fatal connection warnings.",
            "items": {
              "$ref": "#/components/schemas/RealtimeConnectionWarning"
            },
            "type": "array"
          }
        },
        "required": [
          "type",
          "connection_id",
          "heartbeat_interval_seconds",
          "resume_supported",
          "subscriptions"
        ],
        "type": "object"
      },
      "RealtimeWarningFrame": {
        "additionalProperties": false,
        "description": "Server warning frame sent when a non-fatal realtime condition occurs after connection.",
        "properties": {
          "type": {
            "description": "Frame type.",
            "enum": [
              "warning"
            ],
            "type": "string"
          },
          "warnings": {
            "description": "Non-fatal realtime socket warnings.",
            "items": {
              "$ref": "#/components/schemas/RealtimeConnectionWarning"
            },
            "type": "array",
            "minItems": 1
          }
        },
        "required": [
          "type",
          "warnings"
        ],
        "type": "object"
      },
      "RealtimeObjectTarget": {
        "additionalProperties": false,
        "description": "Canonical realtime target resolved by the API. The initial release returns workspace membership targets only.",
        "properties": {
          "id": {
            "description": "Target identifier.",
            "type": "string",
            "example": "01jzn7e61x3a7v9h2r7t2m3q4p"
          },
          "type": {
            "description": "Target type.",
            "enum": [
              "workspace_membership"
            ],
            "type": "string"
          }
        },
        "required": [
          "type",
          "id"
        ],
        "type": "object"
      },
      "RealtimeProductEventData": {
        "additionalProperties": false,
        "description": "Public ProductEvent data payload. Event-specific object schemas are owned by the ProductEvent registry.",
        "properties": {
          "object": {
            "additionalProperties": true,
            "description": "Event-specific public DTO.",
            "type": "object"
          },
          "previous_attributes": {
            "additionalProperties": true,
            "description": "Present only for event types whose source contract declares previous attributes; rejected on event types that do not. No event type currently on the realtime allowlist declares previous attributes, so this field is never present today.",
            "type": "object"
          }
        },
        "required": [
          "object"
        ],
        "type": "object"
      },
      "RealtimeProductEventEnvelope": {
        "additionalProperties": false,
        "description": "RFC 085 ProductEvent envelope delivered over a public realtime socket.",
        "properties": {
          "api_version": {
            "description": "ProductEvent API version.",
            "type": "string"
          },
          "created_at": {
            "description": "ProductEvent creation timestamp.",
            "type": "string",
            "example": "2026-05-14T08:00:00.000Z",
            "format": "date-time"
          },
          "data": {
            "$ref": "#/components/schemas/RealtimeProductEventData"
          },
          "id": {
            "description": "Canonical ProductEvent identifier.",
            "type": "string",
            "example": "01jzn7e61x3a7v9h2r7t2m3q4p"
          },
          "object": {
            "description": "ProductEvent object type.",
            "enum": [
              "event"
            ],
            "type": "string"
          },
          "related": {
            "additionalProperties": false,
            "description": "Related resource identifiers for routing and debugging.",
            "properties": {
              "call_id": {
                "description": "Related call identifier.",
                "type": "string",
                "nullable": true
              },
              "conversation_id": {
                "description": "Related conversation identifier.",
                "type": "string",
                "nullable": true
              },
              "message_id": {
                "description": "Related message identifier.",
                "type": "string",
                "nullable": true
              },
              "thread_root_message_id": {
                "description": "Related thread root message identifier.",
                "type": "string",
                "nullable": true
              }
            },
            "required": [
              "conversation_id",
              "message_id",
              "thread_root_message_id",
              "call_id"
            ],
            "type": "object"
          },
          "type": {
            "$ref": "#/components/schemas/RealtimeEventType"
          },
          "workspace_id": {
            "description": "Workspace identifier.",
            "type": "string",
            "example": "01jzn7e61x3a7v9h2r7t2m3q4p"
          }
        },
        "required": [
          "id",
          "object",
          "type",
          "api_version",
          "created_at",
          "workspace_id",
          "data",
          "related"
        ],
        "type": "object"
      },
      "RealtimeResumeRequest": {
        "additionalProperties": false,
        "description": "Bounded realtime resume request.",
        "properties": {
          "cursor": {
            "description": "Last acknowledged realtime cursor.",
            "type": "string"
          }
        },
        "required": [
          "cursor"
        ],
    

# --- truncated at 32 KB (208 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/ando/refs/heads/main/openapi/ando-public-api-v1-openapi.json