Andy Developer Docs

CLI Reference

Generated command and cross-adapter reference for andy-partner 0.2.0.

Outcome

Discover every supported public operation and use the same contract through the CLI, HTTP, or MCP.

Prerequisites

  • andy-partner@0.2.0. This reference covers client versions ^0.2.0; the server does not check the client version.
  • Node >=20.
  • A User session or Workspace API Key allowed by the operation metadata below.

Build freshness

  • Public contract: 1
  • Catalog operations: 127
  • Catalog digest: sha256:3548af8f91ada0634861ef1be6f769029db5bc47ae0b78ca3d76f2150b3cefa6
  • Generated by: apps/docs/generate-cli-reference.ts

Run andy help for global flags and andy <command> --help for command input details. Add --json for stable machine output. Successful calls exit 0; transport/internal failures exit 1; invalid input exits 2; authentication/setup failures exit 3; and stable business or authorization problems exit 4.

CLI commandOperation IDHTTPMCP toolMutatesStable problems
support metrics inspectsupport.metrics.inspectPOST /api/public/operations/support/metrics/inspectget_support_metricsnoauthentication_required, reauthentication_required, invalid_request, internal_error, permission_denied, resource_not_found, workspace_archived, entitlement_required
support settings inspectsupport.settings.inspectPOST /api/public/operations/support/settings/inspectmanage_support_settings (action inspect)noauthentication_required, reauthentication_required, invalid_request, internal_error, permission_denied, resource_not_found, workspace_archived, entitlement_required
support settings configuresupport.settings.configurePOST /api/public/operations/support/settings/configuremanage_support_settings (action configure)yesauthentication_required, reauthentication_required, invalid_request, internal_error, permission_denied, resource_not_found, workspace_archived, entitlement_required, idempotency_conflict
support alerts inspectsupport.alerts.inspectPOST /api/public/operations/support/alerts/inspectmanage_support_settings (action inspect_alerts)noauthentication_required, reauthentication_required, invalid_request, internal_error, permission_denied, resource_not_found, workspace_archived, entitlement_required
support alerts configuresupport.alerts.configurePOST /api/public/operations/support/alerts/configuremanage_support_settings (action configure_alerts)yesauthentication_required, reauthentication_required, invalid_request, internal_error, permission_denied, resource_not_found, workspace_archived, entitlement_required, idempotency_conflict
support provider inspectsupport.provider.inspectPOST /api/public/operations/support/provider/inspectmanage_support_provider (action inspect)noauthentication_required, reauthentication_required, invalid_request, internal_error, permission_denied, resource_not_found, workspace_archived, idempotency_conflict
support provider provisionsupport.provider.provisionPOST /api/public/operations/support/provider/provisionmanage_support_provider (action provision)yesauthentication_required, reauthentication_required, invalid_request, internal_error, permission_denied, resource_not_found, workspace_archived, entitlement_required, idempotency_conflict
support installation listsupport.installation.listPOST /api/public/operations/support/installation/listmanage_support_installation (action list)noauthentication_required, reauthentication_required, invalid_request, internal_error, permission_denied, resource_not_found, workspace_archived, entitlement_required, idempotency_conflict
support installation inspectsupport.installation.inspectPOST /api/public/operations/support/installation/inspectmanage_support_installation (action inspect)noauthentication_required, reauthentication_required, invalid_request, internal_error, permission_denied, resource_not_found, workspace_archived, entitlement_required, idempotency_conflict
support installation createsupport.installation.createPOST /api/public/operations/support/installation/createmanage_support_installation (action create)yesauthentication_required, reauthentication_required, invalid_request, internal_error, permission_denied, resource_not_found, workspace_archived, entitlement_required, idempotency_conflict
support installation configuresupport.installation.configurePOST /api/public/operations/support/installation/configuremanage_support_installation (action configure)yesauthentication_required, reauthentication_required, invalid_request, internal_error, permission_denied, resource_not_found, workspace_archived, entitlement_required, idempotency_conflict
support installation issue_keysupport.installation.issue_keyPOST /api/public/operations/support/installation/issue_keymanage_support_installation (action issue_key)yesauthentication_required, reauthentication_required, invalid_request, internal_error, permission_denied, resource_not_found, workspace_archived, entitlement_required, idempotency_conflict
support installation rotate_keysupport.installation.rotate_keyPOST /api/public/operations/support/installation/rotate_keymanage_support_installation (action rotate_key)yesauthentication_required, reauthentication_required, invalid_request, internal_error, permission_denied, resource_not_found, workspace_archived, entitlement_required, idempotency_conflict
support installation retire_keysupport.installation.retire_keyPOST /api/public/operations/support/installation/retire_keymanage_support_installation (action retire_key)yesauthentication_required, reauthentication_required, invalid_request, internal_error, permission_denied, resource_not_found, workspace_archived, entitlement_required, idempotency_conflict
support installation retiresupport.installation.retirePOST /api/public/operations/support/installation/retiremanage_support_installation (action retire)yesauthentication_required, reauthentication_required, invalid_request, internal_error, permission_denied, resource_not_found, workspace_archived, entitlement_required, idempotency_conflict
support ticket listsupport.ticket.listPOST /api/public/operations/support/ticket/listget_support_ticketnoauthentication_required, reauthentication_required, invalid_request, internal_error, permission_denied, resource_not_found, workspace_archived, entitlement_required, idempotency_conflict, ticket_resolved
support ticket inspectsupport.ticket.inspectPOST /api/public/operations/support/ticket/inspectget_support_ticketnoauthentication_required, reauthentication_required, invalid_request, internal_error, permission_denied, resource_not_found, workspace_archived, entitlement_required, idempotency_conflict, ticket_resolved
support ticket replysupport.ticket.replyPOST /api/public/operations/support/ticket/replyreply_support_ticketyesauthentication_required, reauthentication_required, invalid_request, internal_error, permission_denied, resource_not_found, workspace_archived, entitlement_required, idempotency_conflict, ticket_resolved
support ticket notesupport.ticket.notePOST /api/public/operations/support/ticket/notemanage_support_ticket (action note)yesauthentication_required, reauthentication_required, invalid_request, internal_error, permission_denied, resource_not_found, workspace_archived, entitlement_required, idempotency_conflict
support ticket assignsupport.ticket.assignPOST /api/public/operations/support/ticket/assignmanage_support_ticket (action assign)yesauthentication_required, reauthentication_required, invalid_request, internal_error, permission_denied, resource_not_found, workspace_archived, entitlement_required, idempotency_conflict
support ticket prioritysupport.ticket.priorityPOST /api/public/operations/support/ticket/prioritymanage_support_ticket (action priority)yesauthentication_required, reauthentication_required, invalid_request, internal_error, permission_denied, resource_not_found, workspace_archived, entitlement_required, idempotency_conflict
support ticket waitsupport.ticket.waitPOST /api/public/operations/support/ticket/waitmanage_support_ticket (action wait)yesauthentication_required, reauthentication_required, invalid_request, internal_error, permission_denied, resource_not_found, workspace_archived, entitlement_required, idempotency_conflict, ticket_resolved
support ticket resolvesupport.ticket.resolvePOST /api/public/operations/support/ticket/resolvemanage_support_ticket (action resolve)yesauthentication_required, reauthentication_required, invalid_request, internal_error, permission_denied, resource_not_found, workspace_archived, entitlement_required, idempotency_conflict
context getget_contextPOST /api/public/operations/context/getget_contextnoauthentication_required, reauthentication_required, invalid_request, internal_error
context select-workspaceselect_workspacenoneselect_workspaceyesauthentication_required, reauthentication_required, invalid_request, internal_error, resource_not_found, permission_denied, workspace_selection_required
auth statusidentity.statusPOST /api/public/operations/identity/statusnot exposed on MCPnoauthentication_required, reauthentication_required, invalid_request, internal_error, setup_required
workspace listworkspace.listPOST /api/public/operations/workspaces/listnot exposed on MCPnoauthentication_required, reauthentication_required, invalid_request, internal_error
workspace selectworkspace.selectnonenot exposed on MCPyesauthentication_required, reauthentication_required, invalid_request, internal_error, resource_not_found, permission_denied
workspace inspectworkspace.inspectPOST /api/public/operations/workspaces/inspectget_workspacenoauthentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, resource_not_found
workspace createworkspace.createPOST /api/public/operations/workspaces/createnot exposed on MCPyesauthentication_required, reauthentication_required, invalid_request, internal_error, permission_denied, idempotency_conflict
workspace renameworkspace.renamePOST /api/public/operations/workspaces/renamenot exposed on MCPyesauthentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, workspace_archived, idempotency_conflict
workspace entitlementsworkspace.entitlements.inspectPOST /api/public/operations/workspaces/entitlements/inspectget_workspace_entitlementsnoauthentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found
assistant telegram inspectassistant.telegram.inspectPOST /api/public/operations/assistant/telegram/inspectmanage_telegram_connection (action inspect)noauthentication_required, reauthentication_required, invalid_request, internal_error, permission_denied, resource_not_found, telegram_already_connected, telegram_challenge_invalid, telegram_identity_conflict, limit_exceeded
assistant telegram prepareassistant.telegram.preparePOST /api/public/operations/assistant/telegram/preparemanage_telegram_connection (action prepare)yesauthentication_required, reauthentication_required, invalid_request, internal_error, permission_denied, resource_not_found, telegram_already_connected, telegram_challenge_invalid, telegram_identity_conflict, limit_exceeded
assistant telegram confirmassistant.telegram.confirmPOST /api/public/operations/assistant/telegram/confirmmanage_telegram_connection (action confirm)yesauthentication_required, reauthentication_required, invalid_request, internal_error, permission_denied, resource_not_found, telegram_already_connected, telegram_challenge_invalid, telegram_identity_conflict, limit_exceeded
assistant telegram disconnectassistant.telegram.disconnectPOST /api/public/operations/assistant/telegram/disconnectmanage_telegram_connection (action disconnect)yesauthentication_required, reauthentication_required, invalid_request, internal_error, permission_denied, resource_not_found, telegram_already_connected, telegram_challenge_invalid, telegram_identity_conflict, limit_exceeded
workspace time-zone showworkspace.time_zone.inspectPOST /api/public/operations/workspaces/time-zone/inspectmanage_workspace_time_zone (action inspect)noauthentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, entitlement_required
workspace time-zone setworkspace.time_zone.setPOST /api/public/operations/workspaces/time-zone/setmanage_workspace_time_zone (action set)yesauthentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, workspace_archived, idempotency_conflict
billing showworkspace.billing.inspectPOST /api/public/operations/workspaces/billing/inspectget_workspace_billingnoauthentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found
billing portalworkspace.billing.portal_session.createPOST /api/public/operations/workspaces/billing/portal-session/createmanage_workspace_billing (action portal_session)noauthentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found
billing tax-statusworkspace.billing.tax_registration.setPOST /api/public/operations/workspaces/billing/tax-registration/setmanage_workspace_billing (action set_tax_registration)yesauthentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, confirmation_required
invoices listworkspace.invoices.listPOST /api/public/operations/workspaces/invoices/listlist_invoices (action list)noauthentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found
invoices linkworkspace.invoices.linkPOST /api/public/operations/workspaces/invoices/linklist_invoices (action link)noauthentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found
members listworkspace.member.listPOST /api/public/operations/workspaces/members/listmanage_workspace_members (action list_members)noauthentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found
members roleworkspace.member.change_rolePOST /api/public/operations/workspaces/members/change-rolemanage_workspace_members (action change_role)yesauthentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, workspace_archived, workspace_commercial_inactive, idempotency_conflict
members removeworkspace.member.removePOST /api/public/operations/workspaces/members/removemanage_workspace_members (action remove)yesauthentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, workspace_archived, workspace_commercial_inactive, idempotency_conflict
members invitesworkspace.invite.listPOST /api/public/operations/workspaces/invites/listmanage_workspace_members (action list_invites)noauthentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found
members inviteworkspace.invite.createPOST /api/public/operations/workspaces/invites/createmanage_workspace_members (action invite)yesauthentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, workspace_archived, workspace_commercial_inactive, confirmation_required, limit_exceeded, idempotency_conflict
members revokeworkspace.invite.revokePOST /api/public/operations/workspaces/invites/revokemanage_workspace_members (action revoke_invite)yesauthentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, workspace_archived, workspace_commercial_inactive, idempotency_conflict
agent listagent.listPOST /api/public/operations/agents/listget_agentnoauthentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, resource_not_found, entitlement_required
agent inspectagent.inspectPOST /api/public/operations/agents/inspectget_agentnoauthentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, resource_not_found, entitlement_required
agent metricsagent.metrics.inspectPOST /api/public/operations/agents/metrics/inspectget_agent_metrics (action inspect)noauthentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found
agent live-nowagent.metrics.live_nowPOST /api/public/operations/agents/metrics/live-nowget_agent_metrics (action live_now)noauthentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found
agent createagent.createPOST /api/public/operations/agents/createmanage_agent (action create)yesauthentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, workspace_archived, entitlement_required, limit_exceeded, idempotency_conflict
agent set-purposeagent.purpose.setPOST /api/public/operations/agents/purpose/setmanage_agent (action set_purpose)yesauthentication_required, reauthentication_required, invalid_request, internal_error, permission_denied, workspace_selection_required, resource_not_found, workspace_archived, entitlement_required, idempotency_conflict
agent configureagent.configurePOST /api/public/operations/agents/configureconfigure_agentyesauthentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, resource_not_found, workspace_archived, entitlement_required, idempotency_conflict, agent_selection_required
agent deleteagent.deletePOST /api/public/operations/agents/deletemanage_agent (action delete)yesauthentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, resource_not_found, workspace_archived, confirmation_required, idempotency_conflict, agent_selection_required
agent rename-slugagent.rename_slugPOST /api/public/operations/agents/rename-slugmanage_agent (action rename_slug)yesauthentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, workspace_archived, idempotency_conflict
agent-website dismissagent_website.dismissPOST /api/public/operations/agent-websites/dismissnot exposed on MCPyesauthentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, resource_not_found, workspace_archived, entitlement_required, idempotency_conflict, agent_selection_required
api-key listapi_key.listPOST /api/public/operations/api-keys/listnot exposed on MCPnoauthentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found
knowledge-source listknowledge_source.listPOST /api/public/operations/knowledge-sources/listlist_knowledgenoauthentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, workspace_archived, entitlement_required, agent_selection_required
knowledge-source inspectknowledge_source.inspectPOST /api/public/operations/knowledge-sources/inspectlist_knowledgenoauthentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, workspace_archived, entitlement_required, agent_selection_required
knowledge-source addknowledge_source.addPOST /api/public/operations/knowledge-sources/addadd_knowledgeyesauthentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, workspace_archived, entitlement_required, limit_exceeded, idempotency_conflict, agent_selection_required
knowledge-source waitknowledge_source.waitPOST /api/public/operations/knowledge-sources/waitnot exposed on MCPnoauthentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, workspace_archived, entitlement_required, processing_failed, processing_timeout
knowledge-source reconcileknowledge_source.reconcilePOST /api/public/operations/knowledge-sources/reconcilenot exposed on MCPyesauthentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, workspace_archived, entitlement_required, limit_exceeded, confirmation_required, idempotency_conflict
knowledge-source replaceknowledge_source.replacePOST /api/public/operations/knowledge-sources/replacereplace_knowledgeyesauthentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, workspace_archived, entitlement_required, limit_exceeded, idempotency_conflict, agent_selection_required
knowledge-source deleteknowledge_source.deletePOST /api/public/operations/knowledge-sources/deletedelete_knowledgeyesauthentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, workspace_archived, entitlement_required, confirmation_required, idempotency_conflict, agent_selection_required
public-chat inspectpublic_chat.inspectPOST /api/public/operations/public-chats/inspectnot exposed on MCPnoauthentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, workspace_archived, entitlement_required
public-chat enablepublic_chat.enablePOST /api/public/operations/public-chats/enablenot exposed on MCPyesauthentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, workspace_archived, entitlement_required, processing_failed, idempotency_conflict
public-chat disablepublic_chat.disablePOST /api/public/operations/public-chats/disablenot exposed on MCPyesauthentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, workspace_archived, entitlement_required, confirmation_required, idempotency_conflict
public-chat urlpublic_chat.urlPOST /api/public/operations/public-chats/urlnot exposed on MCPnoauthentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, workspace_archived, entitlement_required
widget inspectwidget.inspectPOST /api/public/operations/widgets/inspectmanage_widget (action inspect)noauthentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, workspace_archived, entitlement_required
widget configurewidget.configurePOST /api/public/operations/widgets/configuremanage_widget (action configure)yesauthentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, workspace_archived, entitlement_required, processing_failed, confirmation_required, idempotency_conflict
widget manifestwidget.manifestPOST /api/public/operations/widgets/manifestnot exposed on MCPnoauthentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, workspace_archived, entitlement_required
widget verifywidget.verifyPOST /api/public/operations/widgets/verifynot exposed on MCPnoauthentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, workspace_archived, processing_failed
content connection listcontent.connection.listPOST /api/public/operations/content/connections/listlist_connectionsnoauthentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, workspace_archived, insufficient_scope
content connection showcontent.connection.inspectPOST /api/public/operations/content/connections/inspectmanage_connection (action inspect)noauthentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, workspace_archived, insufficient_scope
content connection preflightcontent.connection.preflightPOST /api/public/operations/content/connections/preflightmanage_connection (action preflight)yesauthentication_required, reauthentication_required, invalid_request, internal_error, setup_required, workspace_selection_required, permission_denied, resource_not_found, workspace_archived, idempotency_conflict, insufficient_scope
content connection connectcontent.connection.connectPOST /api/public/operations/content/connections/connectmanage_connection (action connect)noauthentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, workspace_archived, provider_unavailable, insufficient_scope
content connection disconnectcontent.connection.disconnectPOST /api/public/operations/content/connections/disconnectmanage_connection (action disconnect)yesauthentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, workspace_archived, confirmation_required, idempotency_conflict, insufficient_scope
content connection slotscontent.connection.set_posting_slotsPOST /api/public/operations/content/connections/set-posting-slotsmanage_connection (action set_posting_slots)yesauthentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, workspace_archived, idempotency_conflict, insufficient_scope
content connection community-addcontent.connection.add_x_communityPOST /api/public/operations/content/connections/add-x-communitymanage_connection (action add_x_community)yesauthentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, workspace_archived, x_community_unsupported, x_community_invalid, idempotency_conflict, insufficient_scope
content connection community-removecontent.connection.remove_x_communityPOST /api/public/operations/content/connections/remove-x-communitymanage_connection (action remove_x_community)yesauthentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, workspace_archived, x_community_unsupported, idempotency_conflict, insufficient_scope
content media listcontent.media.listPOST /api/public/operations/content/media/listmanage_media (action list)noauthentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, workspace_archived, insufficient_scope
content media showcontent.media.inspectPOST /api/public/operations/content/media/inspectmanage_media (action inspect)noauthentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, workspace_archived, insufficient_scope
content media upload-preparecontent.media.upload_preparePOST /api/public/operations/content/media/upload-preparemanage_media (action prepare)yesauthentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, workspace_archived, idempotency_conflict, insufficient_scope
content media upload-completecontent.media.upload_completePOST /api/public/operations/content/media/upload-completemanage_media (action complete)yesauthentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, workspace_archived, idempotency_conflict, insufficient_scope
content media upload-bytescontent.media.upload_bytesPOST /api/public/operations/content/media/upload-bytesmanage_media (action upload_bytes)yesauthentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, workspace_archived, idempotency_conflict, insufficient_scope
content post createcontent.post.createPOST /api/public/operations/content/posts/createmanage_post (action create)yesauthentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, workspace_archived, setup_required, instagram_media_required, instagram_media_unsupported, media_unsupported, media_pending, tiktok_settings_required, tiktok_consent_required, tiktok_privacy_invalid, tiktok_media_required, tiktok_media_unsupported, tiktok_media_too_long, tiktok_interaction_unavailable, tiktok_branded_private, tiktok_caption_too_long, tiktok_delivery_unconfigured, tiktok_delivery_misconfigured, tiktok_media_unmeasured, tiktok_creator_cap_missing, first_comment_unsupported, x_community_unsupported, x_community_not_saved, post_text_too_long, post_format_unsupported, article_body_empty, article_markdown_too_long, article_image_source_unsupported, article_link_unsupported, article_html_unsupported, idempotency_conflict, insufficient_scope
content post listcontent.post.listPOST /api/public/operations/content/posts/listlist_postsnoauthentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, workspace_archived, insufficient_scope
content post showcontent.post.inspectPOST /api/public/operations/content/posts/inspectlist_postsnoauthentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, workspace_archived, insufficient_scope
content post editcontent.post.editPOST /api/public/operations/content/posts/editmanage_post (action edit)yesauthentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, workspace_archived, instagram_media_required, instagram_media_unsupported, media_unsupported, media_pending, first_comment_unsupported, x_community_unsupported, x_community_not_saved, post_text_too_long, post_format_unsupported, article_body_empty, article_markdown_too_long, article_image_source_unsupported, article_link_unsupported, article_html_unsupported, idempotency_conflict, insufficient_scope
content post approvecontent.post.approvePOST /api/public/operations/content/posts/approvemanage_post (action approve)yesauthentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, workspace_archived, setup_required, instagram_media_required, instagram_media_unsupported, media_unsupported, media_pending, tiktok_settings_required, tiktok_consent_required, tiktok_privacy_invalid, tiktok_media_required, tiktok_media_unsupported, tiktok_media_too_long, tiktok_interaction_unavailable, tiktok_branded_private, tiktok_caption_too_long, tiktok_delivery_unconfigured, tiktok_delivery_misconfigured, tiktok_media_unmeasured, tiktok_creator_cap_missing, x_community_not_saved, post_text_too_long, post_format_unsupported, article_body_empty, article_markdown_too_long, article_image_source_unsupported, article_link_unsupported, article_html_unsupported, idempotency_conflict, insufficient_scope
content post rejectcontent.post.rejectPOST /api/public/operations/content/posts/rejectmanage_post (action reject)yesauthentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, workspace_archived, idempotency_conflict, insufficient_scope
content post cancelcontent.post.cancelPOST /api/public/operations/content/posts/cancelmanage_post (action cancel)yesauthentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, workspace_archived, entitlement_required, idempotency_conflict, insufficient_scope
content post dismisscontent.post.dismissPOST /api/public/operations/content/posts/dismissmanage_post (action dismiss)yesauthentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, workspace_archived, idempotency_conflict, insufficient_scope
content post reschedulecontent.post.reschedulePOST /api/public/operations/content/posts/reschedulemanage_post (action reschedule)yesauthentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, workspace_archived, entitlement_required, idempotency_conflict, insufficient_scope
content post pausecontent.post.pausePOST /api/public/operations/content/posts/pausemanage_post (action pause)yesauthentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, workspace_archived, entitlement_required, idempotency_conflict, insufficient_scope
content post retry-first-commentcontent.post.retry_first_commentPOST /api/public/operations/content/posts/retry-first-commentmanage_post (action retry_first_comment)yesauthentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, workspace_archived, entitlement_required, idempotency_conflict, insufficient_scope
content post resumecontent.post.resumePOST /api/public/operations/content/posts/resumemanage_post (action resume)yesauthentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, workspace_archived, entitlement_required, idempotency_conflict, insufficient_scope
conversation listconversation.listPOST /api/public/operations/conversation/listlist_conversationsnoauthentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, workspace_archived, entitlement_required
conversation message listconversation.message.listPOST /api/public/operations/conversation/message/listlist_conversation_messagesnoauthentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, workspace_archived, entitlement_required
conversation reply-eligibility inspectconversation.reply_eligibility.inspectPOST /api/public/operations/conversation/reply-eligibility/inspectinspect_reply_eligibilitynoauthentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, workspace_archived, entitlement_required, agent_selection_required
conversation handoff takeoverconversation.handoff.takeoverPOST /api/public/operations/conversation/handoff/takeovermanage_handoff (action takeover)yesauthentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, workspace_archived, entitlement_required, idempotency_conflict, agent_selection_required
conversation handoff hand-backconversation.handoff.hand_backPOST /api/public/operations/conversation/handoff/hand-backmanage_handoff (action hand_back)yesauthentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, workspace_archived, entitlement_required, idempotency_conflict, agent_selection_required
conversation message sendconversation.message.sendPOST /api/public/operations/conversation/message/sendsend_messageyesauthentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, workspace_archived, entitlement_required, workspace_commercial_inactive, idempotency_conflict, agent_selection_required, reply_ineligible
conversation message submission inspectconversation.message.submission.inspectPOST /api/public/operations/conversation/message/submission/inspectinspect_message_submissionnoauthentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, workspace_archived, entitlement_required, workspace_commercial_inactive, agent_selection_required
conversation message reportconversation.message.reportPOST /api/public/operations/conversation/message/reportnot exposed on MCPyesauthentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, workspace_archived, entitlement_required, idempotency_conflict, agent_selection_required
conversation sender blockconversation.sender.blockPOST /api/public/operations/conversation/sender/blocknot exposed on MCPyesauthentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, workspace_archived, entitlement_required, idempotency_conflict, agent_selection_required
conversation sender unblockconversation.sender.unblockPOST /api/public/operations/conversation/sender/unblocknot exposed on MCPyesauthentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, workspace_archived, entitlement_required, idempotency_conflict, agent_selection_required
affiliate joinaffiliate.joinPOST /api/public/operations/affiliate/joinmanage_affiliate (action join)yesauthentication_required, reauthentication_required, invalid_request, internal_error, permission_denied, idempotency_conflict
affiliate showaffiliate.getPOST /api/public/operations/affiliate/getmanage_affiliate (action get)noauthentication_required, reauthentication_required, invalid_request, internal_error, permission_denied
affiliate updateaffiliate.updatePOST /api/public/operations/affiliate/updatemanage_affiliate (action update)yesauthentication_required, reauthentication_required, invalid_request, internal_error, permission_denied, resource_not_found, idempotency_conflict
outreach batch prepareoutreach.batch.preparePOST /api/public/operations/outreach/batches/preparemanage_outreach_batch (action prepare)yesauthentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, workspace_archived, idempotency_conflict, insufficient_scope, invalid_request
outreach batch inspectoutreach.batch.inspectPOST /api/public/operations/outreach/batches/inspectmanage_outreach_batch (action inspect)noauthentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, workspace_archived, resource_not_found, insufficient_scope
outreach batch reviseoutreach.batch.revisePOST /api/public/operations/outreach/batches/revisemanage_outreach_batch (action revise)yesauthentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, workspace_archived, idempotency_conflict, insufficient_scope, invalid_request
outreach batch approveoutreach.batch.approvePOST /api/public/operations/outreach/batches/approvemanage_outreach_batch (action approve)yesauthentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, workspace_archived, idempotency_conflict, insufficient_scope, invalid_request
outreach batch deferoutreach.batch.deferPOST /api/public/operations/outreach/batches/defermanage_outreach_batch (action defer)yesauthentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, workspace_archived, idempotency_conflict, insufficient_scope, invalid_request
outreach preparation startoutreach.preparation.startPOST /api/public/operations/outreach/preparation/startmanage_outreach_preparation (action start)yesauthentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, workspace_archived, idempotency_conflict, insufficient_scope, invalid_request
outreach preparation resumeoutreach.preparation.resumePOST /api/public/operations/outreach/preparation/resumemanage_outreach_preparation (action resume)yesauthentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, workspace_archived, idempotency_conflict, insufficient_scope, invalid_request
outreach preparation inspectoutreach.preparation.inspectPOST /api/public/operations/outreach/preparation/inspectmanage_outreach_preparation (action inspect)noauthentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, workspace_archived, resource_not_found, insufficient_scope
outreach outcomes inspectoutreach.outcomes.inspectPOST /api/public/operations/outreach/outcomes/inspectmanage_outreach_outcomes (action inspect)noauthentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, workspace_archived, resource_not_found, insufficient_scope
outreach outcomes recordoutreach.outcomes.recordPOST /api/public/operations/outreach/outcomes/recordmanage_outreach_outcomes (action record)yesauthentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, workspace_archived, idempotency_conflict, insufficient_scope, invalid_request
contact listcontact.listPOST /api/public/operations/contact/listlist_contactsnoauthentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, workspace_archived, entitlement_required, agent_selection_required
contact showcontact.inspectPOST /api/public/operations/contact/inspectmanage_contact (action inspect)noauthentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, workspace_archived, entitlement_required, invalid_request
contact discardcontact.discardPOST /api/public/operations/contact/discardmanage_contact (action discard)yesauthentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, workspace_archived, entitlement_required, idempotency_conflict
contact restorecontact.restorePOST /api/public/operations/contact/restoremanage_contact (action restore)yesauthentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, workspace_archived, entitlement_required, idempotency_conflict

Every response includes a request ID. Mutations accept an idempotency key, and the client reuses the same key for its single retry. Destructive commands require explicit confirmation.

andy content media upload --file <path> --kind <kind> --source-type <source-type> is a CLI-only composition of content.media.upload_prepare, direct storage upload, and content.media.upload_complete. It does not add an HTTP operation, MCP tool, or worker command.

andy content media wait --asset <id> [--timeout-ms <ms>] is a CLI-only observer that polls content.media.inspect until the Media Asset is ready or failed. It does not add an HTTP operation, MCP tool, or worker command.

Operation schemas

support metrics inspect

  • Operation ID: support.metrics.inspect
  • Authentication: oauth_token, workspace_api_key
  • Workspace selection: required
  • Required API Key scope: support:read
  • Minimum User role: none
  • Mutates: false
  • Idempotency: supported false; required false
  • HTTP: POST /api/public/operations/support/metrics/inspect
  • MCP: get_support_metrics — Inspect support metrics. Read Support Ticket facts in UTC-hour buckets for today, 7d or 30d. First-reply and backlog times use current support opening hours. complete=false means filling or a bounded sample exceeded; null statistics are unavailable, not zero. Optional clock ages the read without changing saved facts. Sales metrics are separate.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, permission_denied, resource_not_found, workspace_archived, entitlement_required

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"period":{"default":"30d","type":"string","enum":["today","7d","30d"]},"clock":{"type":"integer","minimum":0,"maximum":4102444800000}},"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"metrics":{"type":"object","properties":{"status":{"type":"string","enum":["ready","filling"]},"complete":{"type":"boolean"},"period":{"type":"string","enum":["today","7d","30d"]},"from":{"type":"number"},"until":{"type":"number"},"opened":{"type":"number"},"firstReplies":{"type":"number"},"resolved":{"type":"number"},"reopened":{"type":"number"},"medianFirstReplyMinutes":{"anyOf":[{"type":"number"},{"type":"null"}]},"firstRepliesPastPromise":{"anyOf":[{"type":"number"},{"type":"null"}]},"backlog":{"type":"number"},"medianBacklogMinutes":{"anyOf":[{"type":"number"},{"type":"null"}]},"oldestBacklogMinutes":{"anyOf":[{"type":"number"},{"type":"null"}]},"pendingPastPromise":{"anyOf":[{"type":"number"},{"type":"null"}]},"settings":{"type":"object","properties":{"replyPromiseMinutes":{"type":"integer","minimum":1,"maximum":43200},"timeZone":{"type":"string","minLength":1,"maxLength":64},"businessHours":{"type":"object","properties":{"days":{"minItems":1,"maxItems":7,"type":"array","items":{"type":"integer","minimum":0,"maximum":6}},"startMinutes":{"type":"integer","minimum":0,"maximum":1439},"endMinutes":{"type":"integer","minimum":1,"maximum":1440}},"required":["days","startMinutes","endMinutes"],"additionalProperties":false}},"required":["replyPromiseMinutes","timeZone","businessHours"],"additionalProperties":false}},"required":["status","complete","period","from","until","opened","firstReplies","resolved","reopened","medianFirstReplyMinutes","firstRepliesPastPromise","backlog","medianBacklogMinutes","oldestBacklogMinutes","pendingPastPromise","settings"],"additionalProperties":false}},"required":["metrics"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

support settings inspect

  • Operation ID: support.settings.inspect
  • Authentication: oauth_token, workspace_api_key
  • Workspace selection: required
  • Required API Key scope: support:read
  • Minimum User role: none
  • Mutates: false
  • Idempotency: supported false; required false
  • HTTP: POST /api/public/operations/support/settings/inspect
  • MCP: manage_support_settings (action inspect) — Inspect support settings. Read the provider's first Public Reply promise, weekly opening interval and IANA timezone. canConfigure reflects a live Owner or Admin role. Requesters receive only receipt promise metadata.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, permission_denied, resource_not_found, workspace_archived, entitlement_required

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"settings":{"type":"object","properties":{"replyPromiseMinutes":{"type":"integer","minimum":1,"maximum":43200},"timeZone":{"type":"string","minLength":1,"maxLength":64},"businessHours":{"type":"object","properties":{"days":{"minItems":1,"maxItems":7,"type":"array","items":{"type":"integer","minimum":0,"maximum":6}},"startMinutes":{"type":"integer","minimum":0,"maximum":1439},"endMinutes":{"type":"integer","minimum":1,"maximum":1440}},"required":["days","startMinutes","endMinutes"],"additionalProperties":false}},"required":["replyPromiseMinutes","timeZone","businessHours"],"additionalProperties":false},"canConfigure":{"type":"boolean"}},"required":["settings","canConfigure"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

support settings configure

  • Operation ID: support.settings.configure
  • Authentication: oauth_token
  • Workspace selection: required
  • Required API Key scope: none
  • Minimum User role: admin
  • Mutates: true
  • Idempotency: supported true; required false
  • HTTP: POST /api/public/operations/support/settings/configure
  • MCP: manage_support_settings (action configure) — Configure support reply promise. Owner or Admin. Set replyPromiseMinutes in business minutes, selected weekdays (Sunday=0), opening/closing minutes after midnight and an IANA timezone. Closing must follow opening; the promise fits at most 30 business days. Recomputes receipt, due marks and current metrics; preserves the original first reply through reopen. Sales timezone is unchanged. Reuse idempotencyKey for retries.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, permission_denied, resource_not_found, workspace_archived, entitlement_required, idempotency_conflict

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"replyPromiseMinutes":{"type":"integer","minimum":1,"maximum":43200},"timeZone":{"type":"string","minLength":1,"maxLength":64},"businessHours":{"type":"object","properties":{"days":{"minItems":1,"maxItems":7,"type":"array","items":{"type":"integer","minimum":0,"maximum":6}},"startMinutes":{"type":"integer","minimum":0,"maximum":1439},"endMinutes":{"type":"integer","minimum":1,"maximum":1440}},"required":["days","startMinutes","endMinutes"],"additionalProperties":false},"idempotencyKey":{"type":"string","minLength":1,"maxLength":200}},"required":["replyPromiseMinutes","timeZone","businessHours"],"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"settings":{"type":"object","properties":{"replyPromiseMinutes":{"type":"integer","minimum":1,"maximum":43200},"timeZone":{"type":"string","minLength":1,"maxLength":64},"businessHours":{"type":"object","properties":{"days":{"minItems":1,"maxItems":7,"type":"array","items":{"type":"integer","minimum":0,"maximum":6}},"startMinutes":{"type":"integer","minimum":0,"maximum":1439},"endMinutes":{"type":"integer","minimum":1,"maximum":1440}},"required":["days","startMinutes","endMinutes"],"additionalProperties":false}},"required":["replyPromiseMinutes","timeZone","businessHours"],"additionalProperties":false},"canConfigure":{"type":"boolean"}},"required":["settings","canConfigure"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

support alerts inspect

  • Operation ID: support.alerts.inspect
  • Authentication: oauth_token
  • Workspace selection: required
  • Required API Key scope: none
  • Minimum User role: none
  • Mutates: false
  • Idempotency: supported false; required false
  • HTTP: POST /api/public/operations/support/alerts/inspect
  • MCP: manage_support_settings (action inspect_alerts) — Inspect support ticket alerts. Any current Soporte operator. List every operator with how they get ticket alerts (a new ticket, a Requester reply, a reopen): push needs the Andy phone app, email is each operator's own switch, on by default. self marks the caller. emailSending is false while this deployment cannot send Soporte email.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, permission_denied, resource_not_found, workspace_archived, entitlement_required

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"emailSending":{"type":"boolean"},"operators":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"email":{"type":"string"},"self":{"type":"boolean"},"push":{"type":"boolean"},"emailAlerts":{"type":"boolean"}},"required":["name","email","self","push","emailAlerts"],"additionalProperties":false}}},"required":["emailSending","operators"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

support alerts configure

  • Operation ID: support.alerts.configure
  • Authentication: oauth_token
  • Workspace selection: required
  • Required API Key scope: none
  • Minimum User role: none
  • Mutates: true
  • Idempotency: supported true; required false
  • HTTP: POST /api/public/operations/support/alerts/configure
  • MCP: manage_support_settings (action configure_alerts) — Configure my support ticket alerts. Any current Soporte operator switches their own ticket alert emails on or off with emailAlerts. It never changes another operator. Push alerts are switched in the Andy phone app. Reuse idempotencyKey for retries.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, permission_denied, resource_not_found, workspace_archived, entitlement_required, idempotency_conflict

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"emailAlerts":{"type":"boolean"},"idempotencyKey":{"type":"string","minLength":1,"maxLength":200}},"required":["emailAlerts"],"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"emailSending":{"type":"boolean"},"operators":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"email":{"type":"string"},"self":{"type":"boolean"},"push":{"type":"boolean"},"emailAlerts":{"type":"boolean"}},"required":["name","email","self","push","emailAlerts"],"additionalProperties":false}}},"required":["emailSending","operators"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

support provider inspect

  • Operation ID: support.provider.inspect
  • Authentication: oauth_token
  • Workspace selection: required
  • Required API Key scope: none
  • Minimum User role: admin
  • Mutates: false
  • Idempotency: supported false; required false
  • HTTP: POST /api/public/operations/support/provider/inspect
  • MCP: manage_support_provider (action inspect) — Inspect Support provider. Read the selected Workspace's Support Agent binding, team Reply Email sender, operator seat capacity and whether Soporte is enabled. Workspace Owner or Admin membership is required. Only a Platform Admin also sees the Relay route. Does not provision or send anything.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, permission_denied, resource_not_found, workspace_archived, idempotency_conflict

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"provider":{"anyOf":[{"type":"object","properties":{"supportAgentId":{"type":"string","minLength":1},"operatorSeats":{"type":"integer","minimum":1,"maximum":1000},"sender":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100},"email":{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"}},"required":["name","email"],"additionalProperties":false},"relay":{"type":"object","properties":{"workspace":{"type":"string","pattern":"^[a-z][a-z0-9-]{0,79}$"},"product":{"type":"string","pattern":"^[a-z][a-z0-9-]{0,79}$"}},"required":["workspace","product"],"additionalProperties":false}},"required":["supportAgentId","operatorSeats","sender"],"additionalProperties":false},{"type":"null"}]},"supportEnabled":{"type":"boolean"}},"required":["provider","supportEnabled"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

support provider provision

  • Operation ID: support.provider.provision
  • Authentication: oauth_token
  • Workspace selection: required
  • Required API Key scope: none
  • Minimum User role: admin
  • Mutates: true
  • Idempotency: supported true; required false
  • HTTP: POST /api/public/operations/support/provider/provision
  • MCP: manage_support_provider (action provision) — Provision Support provider. Set up Soporte in the selected Workspace. A Workspace Owner or Admin whose Workspace has Soporte (Pro Max or a grant) binds a live same-Workspace Support Agent. Omit sender to use the default "Soporte " sender at Andy's verified domain; a custom sender must use a domain the server has verified. Operator seats and the Relay route are changed only by a Platform Admin, and only a Platform Admin sees the Relay route in the response. No invitation, email or Relay send occurs.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, permission_denied, resource_not_found, workspace_archived, entitlement_required, idempotency_conflict

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"supportAgentId":{"type":"string","minLength":1},"operatorSeats":{"type":"integer","minimum":1,"maximum":1000},"sender":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100},"email":{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"}},"required":["name","email"],"additionalProperties":false},"relay":{"type":"object","properties":{"workspace":{"type":"string","pattern":"^[a-z][a-z0-9-]{0,79}$"},"product":{"type":"string","pattern":"^[a-z][a-z0-9-]{0,79}$"}},"required":["workspace","product"],"additionalProperties":false},"idempotencyKey":{"type":"string","minLength":1,"maxLength":200}},"required":["supportAgentId"],"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"provider":{"anyOf":[{"type":"object","properties":{"supportAgentId":{"type":"string","minLength":1},"operatorSeats":{"type":"integer","minimum":1,"maximum":1000},"sender":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100},"email":{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"}},"required":["name","email"],"additionalProperties":false},"relay":{"type":"object","properties":{"workspace":{"type":"string","pattern":"^[a-z][a-z0-9-]{0,79}$"},"product":{"type":"string","pattern":"^[a-z][a-z0-9-]{0,79}$"}},"required":["workspace","product"],"additionalProperties":false}},"required":["supportAgentId","operatorSeats","sender"],"additionalProperties":false},{"type":"null"}]},"supportEnabled":{"type":"boolean"}},"required":["provider","supportEnabled"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

support installation list

  • Operation ID: support.installation.list
  • Authentication: oauth_token
  • Workspace selection: required
  • Required API Key scope: none
  • Minimum User role: admin
  • Mutates: false
  • Idempotency: supported false; required false
  • HTTP: POST /api/public/operations/support/installation/list
  • MCP: manage_support_installation (action list) — List Support installation. Provider Owner or Admin controls. Signing keys are delivered once only in verified App Configurar; other doors return an App handoff before issuance. Reads and retries contain metadata only.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, permission_denied, resource_not_found, workspace_archived, entitlement_required, idempotency_conflict

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"cursor":{"type":"string","minLength":1},"pageSize":{"default":50,"type":"integer","minimum":1,"maximum":100}},"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"installations":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"environment":{"type":"string","enum":["local","preview","production"]},"surfaces":{"type":"array","items":{"type":"object","properties":{"surface":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"},"ticketUrlTemplate":{"type":"string","maxLength":2000}},"required":["surface","ticketUrlTemplate"],"additionalProperties":false}},"branding":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100},"color":{"type":"string","pattern":"^#[0-9A-Fa-f]{6}$"},"footer":{"maxItems":3,"type":"array","items":{"type":"object","properties":{"label":{"type":"string","minLength":1,"maxLength":80},"url":{"type":"string","maxLength":2000}},"required":["label","url"],"additionalProperties":false}}},"required":["name","color","footer"],"additionalProperties":false},"ticketTag":{"type":"string"},"createdAt":{"type":"number"},"retiredAt":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["id","name","environment","surfaces","branding","createdAt","retiredAt"],"additionalProperties":false}},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["installations","nextCursor"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

support installation inspect

  • Operation ID: support.installation.inspect
  • Authentication: oauth_token
  • Workspace selection: required
  • Required API Key scope: none
  • Minimum User role: admin
  • Mutates: false
  • Idempotency: supported false; required false
  • HTTP: POST /api/public/operations/support/installation/inspect
  • MCP: manage_support_installation (action inspect) — Inspect Support installation. Provider Owner or Admin controls. Signing keys are delivered once only in verified App Configurar; other doors return an App handoff before issuance. Reads and retries contain metadata only.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, permission_denied, resource_not_found, workspace_archived, entitlement_required, idempotency_conflict

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"installationId":{"type":"string","minLength":1},"cursor":{"type":"string","minLength":1},"pageSize":{"default":50,"type":"integer","minimum":1,"maximum":100}},"required":["installationId"],"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"installation":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"environment":{"type":"string","enum":["local","preview","production"]},"surfaces":{"type":"array","items":{"type":"object","properties":{"surface":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"},"ticketUrlTemplate":{"type":"string","maxLength":2000}},"required":["surface","ticketUrlTemplate"],"additionalProperties":false}},"branding":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100},"color":{"type":"string","pattern":"^#[0-9A-Fa-f]{6}$"},"footer":{"maxItems":3,"type":"array","items":{"type":"object","properties":{"label":{"type":"string","minLength":1,"maxLength":80},"url":{"type":"string","maxLength":2000}},"required":["label","url"],"additionalProperties":false}}},"required":["name","color","footer"],"additionalProperties":false},"ticketTag":{"type":"string"},"createdAt":{"type":"number"},"retiredAt":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["id","name","environment","surfaces","branding","createdAt","retiredAt"],"additionalProperties":false},"keys":{"type":"array","items":{"type":"object","properties":{"kid":{"type":"string"},"status":{"type":"string","enum":["active","previous","retired"]},"createdAt":{"type":"number"},"retiredAt":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["kid","status","createdAt","retiredAt"],"additionalProperties":false}},"hasActiveKey":{"type":"boolean"},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["installation","keys","hasActiveKey","nextCursor"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

support installation create

  • Operation ID: support.installation.create
  • Authentication: oauth_token
  • Workspace selection: required
  • Required API Key scope: none
  • Minimum User role: admin
  • Mutates: true
  • Idempotency: supported true; required false
  • HTTP: POST /api/public/operations/support/installation/create
  • MCP: manage_support_installation (action create) — Create Support installation. Provider Owner or Admin controls. Signing keys are delivered once only in verified App Configurar; other doors return an App handoff before issuance. Reads and retries contain metadata only.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, permission_denied, resource_not_found, workspace_archived, entitlement_required, idempotency_conflict

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100},"surfaces":{"minItems":1,"maxItems":10,"type":"array","items":{"type":"object","properties":{"surface":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"},"ticketUrlTemplate":{"type":"string","maxLength":2000}},"required":["surface","ticketUrlTemplate"],"additionalProperties":false}},"branding":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100},"color":{"type":"string","pattern":"^#[0-9A-Fa-f]{6}$"},"footer":{"maxItems":3,"type":"array","items":{"type":"object","properties":{"label":{"type":"string","minLength":1,"maxLength":80},"url":{"type":"string","maxLength":2000}},"required":["label","url"],"additionalProperties":false}}},"required":["name","color","footer"],"additionalProperties":false},"ticketTag":{"anyOf":[{"type":"string","minLength":1,"maxLength":20,"description":"Short tag prefixed to the subject of every ticket opened through this installation, as [<tag>] <subject>, e.g. Preprod. null removes it; omitted on configure keeps the current tag."},{"type":"null"}]},"environment":{"type":"string","enum":["local","preview","production"]},"idempotencyKey":{"type":"string","minLength":1,"maxLength":200}},"required":["name","surfaces","branding","environment"],"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"installation":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"environment":{"type":"string","enum":["local","preview","production"]},"surfaces":{"type":"array","items":{"type":"object","properties":{"surface":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"},"ticketUrlTemplate":{"type":"string","maxLength":2000}},"required":["surface","ticketUrlTemplate"],"additionalProperties":false}},"branding":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100},"color":{"type":"string","pattern":"^#[0-9A-Fa-f]{6}$"},"footer":{"maxItems":3,"type":"array","items":{"type":"object","properties":{"label":{"type":"string","minLength":1,"maxLength":80},"url":{"type":"string","maxLength":2000}},"required":["label","url"],"additionalProperties":false}}},"required":["name","color","footer"],"additionalProperties":false},"ticketTag":{"type":"string"},"createdAt":{"type":"number"},"retiredAt":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["id","name","environment","surfaces","branding","createdAt","retiredAt"],"additionalProperties":false}},"required":["installation"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

support installation configure

  • Operation ID: support.installation.configure
  • Authentication: oauth_token
  • Workspace selection: required
  • Required API Key scope: none
  • Minimum User role: admin
  • Mutates: true
  • Idempotency: supported true; required false
  • HTTP: POST /api/public/operations/support/installation/configure
  • MCP: manage_support_installation (action configure) — Configure Support installation. Provider Owner or Admin controls. Signing keys are delivered once only in verified App Configurar; other doors return an App handoff before issuance. Reads and retries contain metadata only.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, permission_denied, resource_not_found, workspace_archived, entitlement_required, idempotency_conflict

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"installationId":{"type":"string","minLength":1},"name":{"type":"string","minLength":1,"maxLength":100},"surfaces":{"minItems":1,"maxItems":10,"type":"array","items":{"type":"object","properties":{"surface":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"},"ticketUrlTemplate":{"type":"string","maxLength":2000}},"required":["surface","ticketUrlTemplate"],"additionalProperties":false}},"branding":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100},"color":{"type":"string","pattern":"^#[0-9A-Fa-f]{6}$"},"footer":{"maxItems":3,"type":"array","items":{"type":"object","properties":{"label":{"type":"string","minLength":1,"maxLength":80},"url":{"type":"string","maxLength":2000}},"required":["label","url"],"additionalProperties":false}}},"required":["name","color","footer"],"additionalProperties":false},"ticketTag":{"anyOf":[{"type":"string","minLength":1,"maxLength":20,"description":"Short tag prefixed to the subject of every ticket opened through this installation, as [<tag>] <subject>, e.g. Preprod. null removes it; omitted on configure keeps the current tag."},{"type":"null"}]},"idempotencyKey":{"type":"string","minLength":1,"maxLength":200}},"required":["installationId","name","surfaces","branding"],"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"installation":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"environment":{"type":"string","enum":["local","preview","production"]},"surfaces":{"type":"array","items":{"type":"object","properties":{"surface":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"},"ticketUrlTemplate":{"type":"string","maxLength":2000}},"required":["surface","ticketUrlTemplate"],"additionalProperties":false}},"branding":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100},"color":{"type":"string","pattern":"^#[0-9A-Fa-f]{6}$"},"footer":{"maxItems":3,"type":"array","items":{"type":"object","properties":{"label":{"type":"string","minLength":1,"maxLength":80},"url":{"type":"string","maxLength":2000}},"required":["label","url"],"additionalProperties":false}}},"required":["name","color","footer"],"additionalProperties":false},"ticketTag":{"type":"string"},"createdAt":{"type":"number"},"retiredAt":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["id","name","environment","surfaces","branding","createdAt","retiredAt"],"additionalProperties":false}},"required":["installation"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

support installation issue_key

  • Operation ID: support.installation.issue_key
  • Authentication: oauth_token
  • Workspace selection: required
  • Required API Key scope: none
  • Minimum User role: admin
  • Mutates: true
  • Idempotency: supported true; required false
  • HTTP: POST /api/public/operations/support/installation/issue_key
  • MCP: manage_support_installation (action issue_key) — Issue key Support installation. Provider Owner or Admin controls. Signing keys are delivered once only in verified App Configurar; other doors return an App handoff before issuance. Reads and retries contain metadata only.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, permission_denied, resource_not_found, workspace_archived, entitlement_required, idempotency_conflict

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"installationId":{"type":"string","minLength":1},"idempotencyKey":{"type":"string","minLength":1,"maxLength":200}},"required":["installationId"],"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"anyOf":[{"type":"object","properties":{"delivery":{"type":"string","const":"app_required"},"appPath":{"type":"string"}},"required":["delivery","appPath"],"additionalProperties":false},{"type":"object","properties":{"installation":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"environment":{"type":"string","enum":["local","preview","production"]},"surfaces":{"type":"array","items":{"type":"object","properties":{"surface":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"},"ticketUrlTemplate":{"type":"string","maxLength":2000}},"required":["surface","ticketUrlTemplate"],"additionalProperties":false}},"branding":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100},"color":{"type":"string","pattern":"^#[0-9A-Fa-f]{6}$"},"footer":{"maxItems":3,"type":"array","items":{"type":"object","properties":{"label":{"type":"string","minLength":1,"maxLength":80},"url":{"type":"string","maxLength":2000}},"required":["label","url"],"additionalProperties":false}}},"required":["name","color","footer"],"additionalProperties":false},"ticketTag":{"type":"string"},"createdAt":{"type":"number"},"retiredAt":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["id","name","environment","surfaces","branding","createdAt","retiredAt"],"additionalProperties":false},"key":{"type":"object","properties":{"kid":{"type":"string"},"status":{"type":"string","enum":["active","previous","retired"]},"createdAt":{"type":"number"},"retiredAt":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["kid","status","createdAt","retiredAt"],"additionalProperties":false},"delivery":{"type":"string","const":"shown_once"},"signingSecret":{"type":"string"}},"required":["installation","key","delivery","signingSecret"],"additionalProperties":false},{"type":"object","properties":{"installation":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"environment":{"type":"string","enum":["local","preview","production"]},"surfaces":{"type":"array","items":{"type":"object","properties":{"surface":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"},"ticketUrlTemplate":{"type":"string","maxLength":2000}},"required":["surface","ticketUrlTemplate"],"additionalProperties":false}},"branding":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100},"color":{"type":"string","pattern":"^#[0-9A-Fa-f]{6}$"},"footer":{"maxItems":3,"type":"array","items":{"type":"object","properties":{"label":{"type":"string","minLength":1,"maxLength":80},"url":{"type":"string","maxLength":2000}},"required":["label","url"],"additionalProperties":false}}},"required":["name","color","footer"],"additionalProperties":false},"ticketTag":{"type":"string"},"createdAt":{"type":"number"},"retiredAt":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["id","name","environment","surfaces","branding","createdAt","retiredAt"],"additionalProperties":false},"key":{"type":"object","properties":{"kid":{"type":"string"},"status":{"type":"string","enum":["active","previous","retired"]},"createdAt":{"type":"number"},"retiredAt":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["kid","status","createdAt","retiredAt"],"additionalProperties":false},"delivery":{"type":"string","const":"already_delivered"}},"required":["installation","key","delivery"],"additionalProperties":false}]},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

support installation rotate_key

  • Operation ID: support.installation.rotate_key
  • Authentication: oauth_token
  • Workspace selection: required
  • Required API Key scope: none
  • Minimum User role: admin
  • Mutates: true
  • Idempotency: supported true; required false
  • HTTP: POST /api/public/operations/support/installation/rotate_key
  • MCP: manage_support_installation (action rotate_key) — Rotate key Support installation. Provider Owner or Admin controls. Signing keys are delivered once only in verified App Configurar; other doors return an App handoff before issuance. Reads and retries contain metadata only.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, permission_denied, resource_not_found, workspace_archived, entitlement_required, idempotency_conflict

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"installationId":{"type":"string","minLength":1},"idempotencyKey":{"type":"string","minLength":1,"maxLength":200}},"required":["installationId"],"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"anyOf":[{"type":"object","properties":{"delivery":{"type":"string","const":"app_required"},"appPath":{"type":"string"}},"required":["delivery","appPath"],"additionalProperties":false},{"type":"object","properties":{"installation":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"environment":{"type":"string","enum":["local","preview","production"]},"surfaces":{"type":"array","items":{"type":"object","properties":{"surface":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"},"ticketUrlTemplate":{"type":"string","maxLength":2000}},"required":["surface","ticketUrlTemplate"],"additionalProperties":false}},"branding":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100},"color":{"type":"string","pattern":"^#[0-9A-Fa-f]{6}$"},"footer":{"maxItems":3,"type":"array","items":{"type":"object","properties":{"label":{"type":"string","minLength":1,"maxLength":80},"url":{"type":"string","maxLength":2000}},"required":["label","url"],"additionalProperties":false}}},"required":["name","color","footer"],"additionalProperties":false},"ticketTag":{"type":"string"},"createdAt":{"type":"number"},"retiredAt":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["id","name","environment","surfaces","branding","createdAt","retiredAt"],"additionalProperties":false},"key":{"type":"object","properties":{"kid":{"type":"string"},"status":{"type":"string","enum":["active","previous","retired"]},"createdAt":{"type":"number"},"retiredAt":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["kid","status","createdAt","retiredAt"],"additionalProperties":false},"delivery":{"type":"string","const":"shown_once"},"signingSecret":{"type":"string"}},"required":["installation","key","delivery","signingSecret"],"additionalProperties":false},{"type":"object","properties":{"installation":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"environment":{"type":"string","enum":["local","preview","production"]},"surfaces":{"type":"array","items":{"type":"object","properties":{"surface":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"},"ticketUrlTemplate":{"type":"string","maxLength":2000}},"required":["surface","ticketUrlTemplate"],"additionalProperties":false}},"branding":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100},"color":{"type":"string","pattern":"^#[0-9A-Fa-f]{6}$"},"footer":{"maxItems":3,"type":"array","items":{"type":"object","properties":{"label":{"type":"string","minLength":1,"maxLength":80},"url":{"type":"string","maxLength":2000}},"required":["label","url"],"additionalProperties":false}}},"required":["name","color","footer"],"additionalProperties":false},"ticketTag":{"type":"string"},"createdAt":{"type":"number"},"retiredAt":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["id","name","environment","surfaces","branding","createdAt","retiredAt"],"additionalProperties":false},"key":{"type":"object","properties":{"kid":{"type":"string"},"status":{"type":"string","enum":["active","previous","retired"]},"createdAt":{"type":"number"},"retiredAt":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["kid","status","createdAt","retiredAt"],"additionalProperties":false},"delivery":{"type":"string","const":"already_delivered"}},"required":["installation","key","delivery"],"additionalProperties":false}]},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

support installation retire_key

  • Operation ID: support.installation.retire_key
  • Authentication: oauth_token
  • Workspace selection: required
  • Required API Key scope: none
  • Minimum User role: admin
  • Mutates: true
  • Idempotency: supported true; required false
  • HTTP: POST /api/public/operations/support/installation/retire_key
  • MCP: manage_support_installation (action retire_key) — Retire key Support installation. Provider Owner or Admin controls. Signing keys are delivered once only in verified App Configurar; other doors return an App handoff before issuance. Reads and retries contain metadata only.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, permission_denied, resource_not_found, workspace_archived, entitlement_required, idempotency_conflict

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"installationId":{"type":"string","minLength":1},"idempotencyKey":{"type":"string","minLength":1,"maxLength":200},"kid":{"type":"string","minLength":1,"maxLength":200}},"required":["installationId","kid"],"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"installation":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"environment":{"type":"string","enum":["local","preview","production"]},"surfaces":{"type":"array","items":{"type":"object","properties":{"surface":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"},"ticketUrlTemplate":{"type":"string","maxLength":2000}},"required":["surface","ticketUrlTemplate"],"additionalProperties":false}},"branding":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100},"color":{"type":"string","pattern":"^#[0-9A-Fa-f]{6}$"},"footer":{"maxItems":3,"type":"array","items":{"type":"object","properties":{"label":{"type":"string","minLength":1,"maxLength":80},"url":{"type":"string","maxLength":2000}},"required":["label","url"],"additionalProperties":false}}},"required":["name","color","footer"],"additionalProperties":false},"ticketTag":{"type":"string"},"createdAt":{"type":"number"},"retiredAt":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["id","name","environment","surfaces","branding","createdAt","retiredAt"],"additionalProperties":false},"keys":{"type":"array","items":{"type":"object","properties":{"kid":{"type":"string"},"status":{"type":"string","enum":["active","previous","retired"]},"createdAt":{"type":"number"},"retiredAt":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["kid","status","createdAt","retiredAt"],"additionalProperties":false}},"hasActiveKey":{"type":"boolean"},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["installation","keys","hasActiveKey","nextCursor"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

support installation retire

  • Operation ID: support.installation.retire
  • Authentication: oauth_token
  • Workspace selection: required
  • Required API Key scope: none
  • Minimum User role: admin
  • Mutates: true
  • Idempotency: supported true; required false
  • HTTP: POST /api/public/operations/support/installation/retire
  • MCP: manage_support_installation (action retire) — Retire Support installation. Provider Owner or Admin controls. Signing keys are delivered once only in verified App Configurar; other doors return an App handoff before issuance. Reads and retries contain metadata only.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, permission_denied, resource_not_found, workspace_archived, entitlement_required, idempotency_conflict

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"installationId":{"type":"string","minLength":1},"idempotencyKey":{"type":"string","minLength":1,"maxLength":200}},"required":["installationId"],"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"installation":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"environment":{"type":"string","enum":["local","preview","production"]},"surfaces":{"type":"array","items":{"type":"object","properties":{"surface":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"},"ticketUrlTemplate":{"type":"string","maxLength":2000}},"required":["surface","ticketUrlTemplate"],"additionalProperties":false}},"branding":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100},"color":{"type":"string","pattern":"^#[0-9A-Fa-f]{6}$"},"footer":{"maxItems":3,"type":"array","items":{"type":"object","properties":{"label":{"type":"string","minLength":1,"maxLength":80},"url":{"type":"string","maxLength":2000}},"required":["label","url"],"additionalProperties":false}}},"required":["name","color","footer"],"additionalProperties":false},"ticketTag":{"type":"string"},"createdAt":{"type":"number"},"retiredAt":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["id","name","environment","surfaces","branding","createdAt","retiredAt"],"additionalProperties":false}},"required":["installation"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

support ticket list

  • Operation ID: support.ticket.list
  • Authentication: oauth_token, workspace_api_key
  • Workspace selection: required
  • Required API Key scope: support:read
  • Minimum User role: none
  • Mutates: false
  • Idempotency: supported false; required false
  • HTTP: POST /api/public/operations/support/ticket/list
  • MCP: get_support_ticket — List support ticket. Read the live support queue and its view counts. View risk lists tickets still awaiting a first reply that are past or near the reply promise, oldest first; counts.risk stops at 500. Priority narrows any view. Otherwise search with one selector (number, status, assigneeId, installationId, requesterId, query or priority) instead of a view, optionally within updatedAfter/updatedBefore.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, permission_denied, resource_not_found, workspace_archived, entitlement_required, idempotency_conflict, ticket_resolved

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"view":{"type":"string","enum":["mine","unassigned","risk","open","resolved"]},"number":{"type":"integer","minimum":1,"maximum":9007199254740991},"status":{"type":"string","enum":["open","in_progress","waiting_customer","resolved"]},"assigneeId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"installationId":{"type":"string","minLength":1},"requesterId":{"type":"string","minLength":1},"query":{"type":"string","minLength":1,"maxLength":200},"priority":{"type":"string","enum":["low","normal","high","urgent"]},"updatedAfter":{"type":"integer","minimum":0,"maximum":4102444800000},"updatedBefore":{"type":"integer","minimum":0,"maximum":4102444800000},"clock":{"type":"integer","minimum":0,"maximum":4102444800000},"cursor":{"type":"string","minLength":1},"pageSize":{"default":50,"type":"integer","minimum":1,"maximum":100}},"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"tickets":{"type":"array","items":{"type":"object","properties":{"replyEmailFailed":{"type":"boolean"},"ticketUrl":{"type":"string"},"id":{"type":"string"},"number":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"subject":{"type":"string"},"status":{"type":"string","enum":["open","in_progress","waiting_customer","resolved"]},"priority":{"type":"string","enum":["low","normal","high","urgent"]},"installationId":{"type":"string"},"requester":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"email":{"type":"string"},"company":{"type":"string"},"openingApp":{"type":"string"}},"required":["name","email","company","openingApp"],"additionalProperties":false},"createdAt":{"type":"number"},"updatedAt":{"type":"number"},"firstHumanReplyAt":{"anyOf":[{"type":"number"},{"type":"null"}]},"latestRequesterSequence":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"requesterLastSeenSequence":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"unread":{"type":"boolean"},"reopenedCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"reopened":{"type":"boolean"},"replyPromise":{"type":"object","properties":{"minutes":{"type":"number"},"businessDayMinutes":{"type":"number"},"dueAt":{"type":"number"}},"required":["minutes","businessDayMinutes","dueAt"],"additionalProperties":false},"firstReply":{"type":"object","properties":{"minutes":{"anyOf":[{"type":"number"},{"type":"null"}]},"pending":{"type":"boolean"},"pastPromise":{"type":"boolean"}},"required":["minutes","pending","pastPromise"],"additionalProperties":false},"assignee":{"anyOf":[{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"],"additionalProperties":false},{"type":"null"}]}},"required":["id","number","subject","status","requester","createdAt","updatedAt","firstHumanReplyAt","latestRequesterSequence","requesterLastSeenSequence","unread","reopenedCount","reopened"],"additionalProperties":false}},"counts":{"type":"object","properties":{"mine":{"type":"number"},"unassigned":{"type":"number"},"risk":{"type":"number"},"open":{"type":"number"},"resolved":{"type":"number"}},"required":["mine","unassigned","open","resolved"],"additionalProperties":false},"summary":{"type":"object","properties":{"unassigned":{"type":"number"},"pendingPastPromise":{"anyOf":[{"type":"number"},{"type":"null"}]},"medianFirstReplyMinutes":{"anyOf":[{"type":"number"},{"type":"null"}]},"complete":{"type":"boolean"}},"required":["unassigned","pendingPastPromise","medianFirstReplyMinutes","complete"],"additionalProperties":false}},"required":["tickets"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

support ticket inspect

  • Operation ID: support.ticket.inspect
  • Authentication: oauth_token, workspace_api_key
  • Workspace selection: required
  • Required API Key scope: support:read
  • Minimum User role: none
  • Mutates: false
  • Idempotency: supported false; required false
  • HTTP: POST /api/public/operations/support/ticket/inspect
  • MCP: get_support_ticket — Inspect support ticket. Read the ticket and its permitted audience thread. ticketId comes from the list or numbered receipt.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, permission_denied, resource_not_found, workspace_archived, entitlement_required, idempotency_conflict, ticket_resolved

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"ticketId":{"type":"string","minLength":1},"clock":{"type":"integer","minimum":0,"maximum":4102444800000},"cursor":{"type":"string","minLength":1},"pageSize":{"default":50,"type":"integer","minimum":1,"maximum":100}},"required":["ticketId"],"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"ticket":{"type":"object","properties":{"replyEmailFailed":{"type":"boolean"},"ticketUrl":{"type":"string"},"id":{"type":"string"},"number":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"subject":{"type":"string"},"status":{"type":"string","enum":["open","in_progress","waiting_customer","resolved"]},"priority":{"type":"string","enum":["low","normal","high","urgent"]},"installationId":{"type":"string"},"requester":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"email":{"type":"string"},"company":{"type":"string"},"openingApp":{"type":"string"}},"required":["name","email","company","openingApp"],"additionalProperties":false},"createdAt":{"type":"number"},"updatedAt":{"type":"number"},"firstHumanReplyAt":{"anyOf":[{"type":"number"},{"type":"null"}]},"latestRequesterSequence":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"requesterLastSeenSequence":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"unread":{"type":"boolean"},"reopenedCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"reopened":{"type":"boolean"},"replyPromise":{"type":"object","properties":{"minutes":{"type":"number"},"businessDayMinutes":{"type":"number"},"dueAt":{"type":"number"}},"required":["minutes","businessDayMinutes","dueAt"],"additionalProperties":false},"firstReply":{"type":"object","properties":{"minutes":{"anyOf":[{"type":"number"},{"type":"null"}]},"pending":{"type":"boolean"},"pastPromise":{"type":"boolean"}},"required":["minutes","pending","pastPromise"],"additionalProperties":false},"assignee":{"anyOf":[{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"],"additionalProperties":false},{"type":"null"}]}},"required":["id","number","subject","status","requester","createdAt","updatedAt","firstHumanReplyAt","latestRequesterSequence","requesterLastSeenSequence","unread","reopenedCount","reopened"],"additionalProperties":false},"entries":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"sequence":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"kind":{"type":"string","enum":["requester_message","public_reply","ai_transcript","internal_note","opened","assigned","status_changed","reopened","priority_changed"]},"body":{"type":"string"},"authorName":{"type":"string"},"at":{"type":"number"},"fromStatus":{"type":"string","enum":["open","in_progress","waiting_customer","resolved"]},"toStatus":{"type":"string","enum":["open","in_progress","waiting_customer","resolved"]},"fromPriority":{"type":"string","enum":["low","normal","high","urgent"]},"toPriority":{"type":"string","enum":["low","normal","high","urgent"]},"previousAssigneeId":{"anyOf":[{"type":"string"},{"type":"null"}]},"newAssigneeId":{"anyOf":[{"type":"string"},{"type":"null"}]},"transcript":{"type":"array","items":{"type":"object","properties":{"role":{"type":"string","enum":["user","assistant"]},"content":{"type":"string"}},"required":["role","content"],"additionalProperties":false}}},"required":["id","sequence","kind","body","authorName","at"],"additionalProperties":false}},"transcript":{"type":"object","properties":{"id":{"type":"string"},"sequence":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"kind":{"type":"string","enum":["requester_message","public_reply","ai_transcript","internal_note","opened","assigned","status_changed","reopened","priority_changed"]},"body":{"type":"string"},"authorName":{"type":"string"},"at":{"type":"number"},"fromStatus":{"type":"string","enum":["open","in_progress","waiting_customer","resolved"]},"toStatus":{"type":"string","enum":["open","in_progress","waiting_customer","resolved"]},"fromPriority":{"type":"string","enum":["low","normal","high","urgent"]},"toPriority":{"type":"string","enum":["low","normal","high","urgent"]},"previousAssigneeId":{"anyOf":[{"type":"string"},{"type":"null"}]},"newAssigneeId":{"anyOf":[{"type":"string"},{"type":"null"}]},"transcript":{"type":"array","items":{"type":"object","properties":{"role":{"type":"string","enum":["user","assistant"]},"content":{"type":"string"}},"required":["role","content"],"additionalProperties":false}}},"required":["id","sequence","kind","body","authorName","at"],"additionalProperties":false},"operators":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"],"additionalProperties":false}},"nextOpen":{"anyOf":[{"type":"object","properties":{"id":{"type":"string"},"number":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"subject":{"type":"string"}},"required":["id","number","subject"],"additionalProperties":false},{"type":"null"}]}},"required":["ticket","entries"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

support ticket reply

  • Operation ID: support.ticket.reply
  • Authentication: oauth_token, workspace_api_key
  • Workspace selection: required
  • Required API Key scope: support:write
  • Minimum User role: none
  • Mutates: true
  • Idempotency: supported true; required false
  • HTTP: POST /api/public/operations/support/ticket/reply
  • MCP: reply_support_ticket — Reply support ticket. Send a Public Reply. The first reply moves open to in_progress and claims an unassigned ticket. Optional then waits or resolves atomically with the reply. A resolved ticket refuses replies.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, permission_denied, resource_not_found, workspace_archived, entitlement_required, idempotency_conflict, ticket_resolved

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"ticketId":{"type":"string","minLength":1},"body":{"type":"string","minLength":1,"maxLength":20000},"idempotencyKey":{"type":"string","minLength":1,"maxLength":200},"then":{"type":"string","enum":["waiting_customer","resolved"]}},"required":["ticketId","body"],"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"ticket":{"type":"object","properties":{"replyEmailFailed":{"type":"boolean"},"ticketUrl":{"type":"string"},"id":{"type":"string"},"number":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"subject":{"type":"string"},"status":{"type":"string","enum":["open","in_progress","waiting_customer","resolved"]},"priority":{"type":"string","enum":["low","normal","high","urgent"]},"installationId":{"type":"string"},"requester":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"email":{"type":"string"},"company":{"type":"string"},"openingApp":{"type":"string"}},"required":["name","email","company","openingApp"],"additionalProperties":false},"createdAt":{"type":"number"},"updatedAt":{"type":"number"},"firstHumanReplyAt":{"anyOf":[{"type":"number"},{"type":"null"}]},"latestRequesterSequence":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"requesterLastSeenSequence":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"unread":{"type":"boolean"},"reopenedCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"reopened":{"type":"boolean"},"replyPromise":{"type":"object","properties":{"minutes":{"type":"number"},"businessDayMinutes":{"type":"number"},"dueAt":{"type":"number"}},"required":["minutes","businessDayMinutes","dueAt"],"additionalProperties":false},"firstReply":{"type":"object","properties":{"minutes":{"anyOf":[{"type":"number"},{"type":"null"}]},"pending":{"type":"boolean"},"pastPromise":{"type":"boolean"}},"required":["minutes","pending","pastPromise"],"additionalProperties":false},"assignee":{"anyOf":[{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"],"additionalProperties":false},{"type":"null"}]}},"required":["id","number","subject","status","requester","createdAt","updatedAt","firstHumanReplyAt","latestRequesterSequence","requesterLastSeenSequence","unread","reopenedCount","reopened"],"additionalProperties":false}},"required":["ticket"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

support ticket note

  • Operation ID: support.ticket.note
  • Authentication: oauth_token, workspace_api_key
  • Workspace selection: required
  • Required API Key scope: support:write
  • Minimum User role: none
  • Mutates: true
  • Idempotency: supported true; required false
  • HTTP: POST /api/public/operations/support/ticket/note
  • MCP: manage_support_ticket (action note) — Add Internal Note. Save an Internal Note for the provider's operators only. It never enters Requester reads or unread state and never sends a Public Reply.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, permission_denied, resource_not_found, workspace_archived, entitlement_required, idempotency_conflict

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"ticketId":{"type":"string","minLength":1},"body":{"type":"string","minLength":1,"maxLength":20000},"idempotencyKey":{"type":"string","minLength":1,"maxLength":200}},"required":["ticketId","body"],"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"ticket":{"type":"object","properties":{"replyEmailFailed":{"type":"boolean"},"ticketUrl":{"type":"string"},"id":{"type":"string"},"number":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"subject":{"type":"string"},"status":{"type":"string","enum":["open","in_progress","waiting_customer","resolved"]},"priority":{"type":"string","enum":["low","normal","high","urgent"]},"installationId":{"type":"string"},"requester":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"email":{"type":"string"},"company":{"type":"string"},"openingApp":{"type":"string"}},"required":["name","email","company","openingApp"],"additionalProperties":false},"createdAt":{"type":"number"},"updatedAt":{"type":"number"},"firstHumanReplyAt":{"anyOf":[{"type":"number"},{"type":"null"}]},"latestRequesterSequence":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"requesterLastSeenSequence":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"unread":{"type":"boolean"},"reopenedCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"reopened":{"type":"boolean"},"replyPromise":{"type":"object","properties":{"minutes":{"type":"number"},"businessDayMinutes":{"type":"number"},"dueAt":{"type":"number"}},"required":["minutes","businessDayMinutes","dueAt"],"additionalProperties":false},"firstReply":{"type":"object","properties":{"minutes":{"anyOf":[{"type":"number"},{"type":"null"}]},"pending":{"type":"boolean"},"pastPromise":{"type":"boolean"}},"required":["minutes","pending","pastPromise"],"additionalProperties":false},"assignee":{"anyOf":[{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"],"additionalProperties":false},{"type":"null"}]}},"required":["id","number","subject","status","requester","createdAt","updatedAt","firstHumanReplyAt","latestRequesterSequence","requesterLastSeenSequence","unread","reopenedCount","reopened"],"additionalProperties":false}},"required":["ticket"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

support ticket assign

  • Operation ID: support.ticket.assign
  • Authentication: oauth_token, workspace_api_key
  • Workspace selection: required
  • Required API Key scope: support:write
  • Minimum User role: none
  • Mutates: true
  • Idempotency: supported true; required false
  • HTTP: POST /api/public/operations/support/ticket/assign
  • MCP: manage_support_ticket (action assign) — Assign Support Ticket. Assign to an authorized operator from inspect's operators, or use null to unassign. Foreign Workspace members and people without live seats are refused.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, permission_denied, resource_not_found, workspace_archived, entitlement_required, idempotency_conflict

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"ticketId":{"type":"string","minLength":1},"assigneeId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"idempotencyKey":{"type":"string","minLength":1,"maxLength":200}},"required":["ticketId","assigneeId"],"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"ticket":{"type":"object","properties":{"replyEmailFailed":{"type":"boolean"},"ticketUrl":{"type":"string"},"id":{"type":"string"},"number":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"subject":{"type":"string"},"status":{"type":"string","enum":["open","in_progress","waiting_customer","resolved"]},"priority":{"type":"string","enum":["low","normal","high","urgent"]},"installationId":{"type":"string"},"requester":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"email":{"type":"string"},"company":{"type":"string"},"openingApp":{"type":"string"}},"required":["name","email","company","openingApp"],"additionalProperties":false},"createdAt":{"type":"number"},"updatedAt":{"type":"number"},"firstHumanReplyAt":{"anyOf":[{"type":"number"},{"type":"null"}]},"latestRequesterSequence":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"requesterLastSeenSequence":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"unread":{"type":"boolean"},"reopenedCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"reopened":{"type":"boolean"},"replyPromise":{"type":"object","properties":{"minutes":{"type":"number"},"businessDayMinutes":{"type":"number"},"dueAt":{"type":"number"}},"required":["minutes","businessDayMinutes","dueAt"],"additionalProperties":false},"firstReply":{"type":"object","properties":{"minutes":{"anyOf":[{"type":"number"},{"type":"null"}]},"pending":{"type":"boolean"},"pastPromise":{"type":"boolean"}},"required":["minutes","pending","pastPromise"],"additionalProperties":false},"assignee":{"anyOf":[{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"],"additionalProperties":false},{"type":"null"}]}},"required":["id","number","subject","status","requester","createdAt","updatedAt","firstHumanReplyAt","latestRequesterSequence","requesterLastSeenSequence","unread","reopenedCount","reopened"],"additionalProperties":false}},"required":["ticket"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

support ticket priority

  • Operation ID: support.ticket.priority
  • Authentication: oauth_token, workspace_api_key
  • Workspace selection: required
  • Required API Key scope: support:write
  • Minimum User role: none
  • Mutates: true
  • Idempotency: supported true; required false
  • HTTP: POST /api/public/operations/support/ticket/priority
  • MCP: manage_support_ticket (action priority) — Set Support Ticket Priority. Set a Support Ticket's priority: low, normal, high or urgent (a ticket without one is normal). Operators only; the change is an internal event and Requesters never see priority.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, permission_denied, resource_not_found, workspace_archived, entitlement_required, idempotency_conflict

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"ticketId":{"type":"string","minLength":1},"priority":{"type":"string","enum":["low","normal","high","urgent"]},"idempotencyKey":{"type":"string","minLength":1,"maxLength":200}},"required":["ticketId","priority"],"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"ticket":{"type":"object","properties":{"replyEmailFailed":{"type":"boolean"},"ticketUrl":{"type":"string"},"id":{"type":"string"},"number":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"subject":{"type":"string"},"status":{"type":"string","enum":["open","in_progress","waiting_customer","resolved"]},"priority":{"type":"string","enum":["low","normal","high","urgent"]},"installationId":{"type":"string"},"requester":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"email":{"type":"string"},"company":{"type":"string"},"openingApp":{"type":"string"}},"required":["name","email","company","openingApp"],"additionalProperties":false},"createdAt":{"type":"number"},"updatedAt":{"type":"number"},"firstHumanReplyAt":{"anyOf":[{"type":"number"},{"type":"null"}]},"latestRequesterSequence":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"requesterLastSeenSequence":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"unread":{"type":"boolean"},"reopenedCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"reopened":{"type":"boolean"},"replyPromise":{"type":"object","properties":{"minutes":{"type":"number"},"businessDayMinutes":{"type":"number"},"dueAt":{"type":"number"}},"required":["minutes","businessDayMinutes","dueAt"],"additionalProperties":false},"firstReply":{"type":"object","properties":{"minutes":{"anyOf":[{"type":"number"},{"type":"null"}]},"pending":{"type":"boolean"},"pastPromise":{"type":"boolean"}},"required":["minutes","pending","pastPromise"],"additionalProperties":false},"assignee":{"anyOf":[{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"],"additionalProperties":false},{"type":"null"}]}},"required":["id","number","subject","status","requester","createdAt","updatedAt","firstHumanReplyAt","latestRequesterSequence","requesterLastSeenSequence","unread","reopenedCount","reopened"],"additionalProperties":false}},"required":["ticket"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

support ticket wait

  • Operation ID: support.ticket.wait
  • Authentication: oauth_token, workspace_api_key
  • Workspace selection: required
  • Required API Key scope: support:write
  • Minimum User role: none
  • Mutates: true
  • Idempotency: supported true; required false
  • HTTP: POST /api/public/operations/support/ticket/wait
  • MCP: manage_support_ticket (action wait) — Wait for Requester. Mark an unresolved Support Ticket waiting for the Requester. Their next message returns it to open and keeps the Assignee.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, permission_denied, resource_not_found, workspace_archived, entitlement_required, idempotency_conflict, ticket_resolved

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"ticketId":{"type":"string","minLength":1},"idempotencyKey":{"type":"string","minLength":1,"maxLength":200}},"required":["ticketId"],"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"ticket":{"type":"object","properties":{"replyEmailFailed":{"type":"boolean"},"ticketUrl":{"type":"string"},"id":{"type":"string"},"number":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"subject":{"type":"string"},"status":{"type":"string","enum":["open","in_progress","waiting_customer","resolved"]},"priority":{"type":"string","enum":["low","normal","high","urgent"]},"installationId":{"type":"string"},"requester":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"email":{"type":"string"},"company":{"type":"string"},"openingApp":{"type":"string"}},"required":["name","email","company","openingApp"],"additionalProperties":false},"createdAt":{"type":"number"},"updatedAt":{"type":"number"},"firstHumanReplyAt":{"anyOf":[{"type":"number"},{"type":"null"}]},"latestRequesterSequence":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"requesterLastSeenSequence":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"unread":{"type":"boolean"},"reopenedCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"reopened":{"type":"boolean"},"replyPromise":{"type":"object","properties":{"minutes":{"type":"number"},"businessDayMinutes":{"type":"number"},"dueAt":{"type":"number"}},"required":["minutes","businessDayMinutes","dueAt"],"additionalProperties":false},"firstReply":{"type":"object","properties":{"minutes":{"anyOf":[{"type":"number"},{"type":"null"}]},"pending":{"type":"boolean"},"pastPromise":{"type":"boolean"}},"required":["minutes","pending","pastPromise"],"additionalProperties":false},"assignee":{"anyOf":[{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"],"additionalProperties":false},{"type":"null"}]}},"required":["id","number","subject","status","requester","createdAt","updatedAt","firstHumanReplyAt","latestRequesterSequence","requesterLastSeenSequence","unread","reopenedCount","reopened"],"additionalProperties":false}},"required":["ticket"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

support ticket resolve

  • Operation ID: support.ticket.resolve
  • Authentication: oauth_token, workspace_api_key
  • Workspace selection: required
  • Required API Key scope: support:write
  • Minimum User role: none
  • Mutates: true
  • Idempotency: supported true; required false
  • HTTP: POST /api/public/operations/support/ticket/resolve
  • MCP: manage_support_ticket (action resolve) — Resolve Support Ticket. Resolve a Support Ticket in human hands. Never returns it to the AI. A Requester must explicitly reopen before another reply.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, permission_denied, resource_not_found, workspace_archived, entitlement_required, idempotency_conflict

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"ticketId":{"type":"string","minLength":1},"idempotencyKey":{"type":"string","minLength":1,"maxLength":200}},"required":["ticketId"],"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"ticket":{"type":"object","properties":{"replyEmailFailed":{"type":"boolean"},"ticketUrl":{"type":"string"},"id":{"type":"string"},"number":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"subject":{"type":"string"},"status":{"type":"string","enum":["open","in_progress","waiting_customer","resolved"]},"priority":{"type":"string","enum":["low","normal","high","urgent"]},"installationId":{"type":"string"},"requester":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"email":{"type":"string"},"company":{"type":"string"},"openingApp":{"type":"string"}},"required":["name","email","company","openingApp"],"additionalProperties":false},"createdAt":{"type":"number"},"updatedAt":{"type":"number"},"firstHumanReplyAt":{"anyOf":[{"type":"number"},{"type":"null"}]},"latestRequesterSequence":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"requesterLastSeenSequence":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"unread":{"type":"boolean"},"reopenedCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"reopened":{"type":"boolean"},"replyPromise":{"type":"object","properties":{"minutes":{"type":"number"},"businessDayMinutes":{"type":"number"},"dueAt":{"type":"number"}},"required":["minutes","businessDayMinutes","dueAt"],"additionalProperties":false},"firstReply":{"type":"object","properties":{"minutes":{"anyOf":[{"type":"number"},{"type":"null"}]},"pending":{"type":"boolean"},"pastPromise":{"type":"boolean"}},"required":["minutes","pending","pastPromise"],"additionalProperties":false},"assignee":{"anyOf":[{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"],"additionalProperties":false},{"type":"null"}]}},"required":["id","number","subject","status","requester","createdAt","updatedAt","firstHumanReplyAt","latestRequesterSequence","requesterLastSeenSequence","unread","reopenedCount","reopened"],"additionalProperties":false}},"required":["ticket"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

context get

  • Operation ID: get_context
  • Authentication: oauth_token, workspace_api_key
  • Workspace selection: none
  • Required API Key scope: none
  • Minimum User role: none
  • Mutates: false
  • Idempotency: supported false; required false
  • HTTP: POST /api/public/operations/context/get
  • MCP: get_context — Get Andy context. Return everything needed to route any Andy operation in one call: the connected identity and its capabilities, accessible Workspaces, the selected Workspace with its provenance, that Workspace's active Agents and live Entitlements, its labeled Platform Connections (the destinations a Post can publish to), availability, and ready-to-run repairs when no Workspace is selected. When agentsCompleteness.status is truncated, call this again with its nextCursor as agentsCursor to read the remaining Agents.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"agentsCursor":{"type":"string","minLength":1}},"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"identity":{"type":"object","properties":{"user":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","minLength":1},"email":{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"name":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["id","email","name"],"additionalProperties":false},{"type":"null"}]},"authMode":{"type":"string","enum":["oauth","workspace_api_key"]},"scopes":{"type":"array","items":{"type":"string"}},"expiresAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},{"type":"null"}]}},"required":["user","authMode","scopes","expiresAt"],"additionalProperties":false},"workspaces":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"name":{"type":"string","minLength":1},"slug":{"type":"string","minLength":1},"role":{"anyOf":[{"type":"string","enum":["owner","admin","member"]},{"type":"null"}]},"status":{"type":"string","enum":["active","archived"]}},"required":["id","name","slug","role","status"],"additionalProperties":false}},"selection":{"type":"object","properties":{"status":{"type":"string","enum":["selected","required","unavailable"]},"source":{"anyOf":[{"type":"string","enum":["api_key","auto_single","session"]},{"type":"null"}]},"workspaceId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]}},"required":["status","source","workspaceId"],"additionalProperties":false},"workspace":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","minLength":1},"name":{"type":"string","minLength":1},"slug":{"type":"string","minLength":1},"role":{"anyOf":[{"type":"string","enum":["owner","admin","member"]},{"type":"null"}]},"status":{"type":"string","enum":["active","archived"]}},"required":["id","name","slug","role","status"],"additionalProperties":false},{"type":"null"}]},"agents":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"name":{"type":"string","minLength":1},"slug":{"type":"string","minLength":1},"status":{"type":"string","const":"active"},"defaultLanguage":{"type":"string","enum":["en","es"]}},"required":["id","name","slug","status","defaultLanguage"],"additionalProperties":false}},"agentsCompleteness":{"type":"object","properties":{"status":{"type":"string","enum":["complete","truncated","not_authorized","no_workspace"]},"returned":{"type":"integer","minimum":0,"maximum":9007199254740991},"limit":{"type":"integer","minimum":1,"maximum":9007199254740991},"nextCursor":{"type":"string","minLength":1}},"required":["status","returned","limit"],"additionalProperties":false},"entitlements":{"anyOf":[{"type":"object","properties":{"workspaceId":{"type":"string","minLength":1},"plan":{"anyOf":[{"type":"string"},{"type":"null"}]},"planName":{"anyOf":[{"type":"string"},{"type":"null"}]},"status":{"type":"string"},"active":{"type":"boolean"},"features":{"type":"array","items":{"type":"string"}},"limits":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"number"}},"usage":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"number"}},"channels":{"type":"object","properties":{"allowed":{"type":"array","items":{"type":"string"}},"maxActive":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["allowed","maxActive"],"additionalProperties":false},"trialEnd":{"anyOf":[{"type":"number"},{"type":"null"}]},"periodEnd":{"anyOf":[{"type":"number"},{"type":"null"}]},"cancelAtPeriodEnd":{"type":"boolean"},"supportDeskSource":{"anyOf":[{"type":"string","enum":["plan","grant"]},{"type":"null"}]}},"required":["workspaceId","plan","planName","status","active","features","limits","usage","channels","trialEnd","periodEnd","cancelAtPeriodEnd"],"additionalProperties":false},{"type":"null"}]},"connections":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"label":{"type":"string","minLength":1},"provider":{"type":"string","enum":["x","linkedin","instagram","tiktok"]},"status":{"type":"string","enum":["connected","disconnected","expired"]},"capabilities":{"type":"object","properties":{"canPublish":{"type":"boolean"},"canReadMetrics":{"type":"boolean"},"maxTextLength":{"default":null,"anyOf":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"null"}]},"formats":{"default":["text"],"type":"array","items":{"type":"string","enum":["text","article"]}}},"required":["canPublish","canReadMetrics","maxTextLength","formats"],"additionalProperties":false}},"required":["id","label","provider","status","capabilities"],"additionalProperties":false}},"connectionsCompleteness":{"type":"object","properties":{"status":{"type":"string","enum":["complete","not_authorized","no_workspace"]},"returned":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["status","returned"],"additionalProperties":false},"availability":{"type":"object","properties":{"api":{"type":"boolean"},"mcp":{"type":"boolean"}},"required":["api","mcp"],"additionalProperties":false},"remediation":{"type":"object","properties":{"calls":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string","minLength":1},"operationId":{"type":"string","minLength":1},"mcpToolName":{"type":"string","minLength":1},"mode":{"type":"string","const":"merge_and_retry"},"input":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["operationId","input"],"additionalProperties":false}},"setupUrl":{"type":"string","format":"uri"}},"required":["calls"],"additionalProperties":false}},"required":["identity","workspaces","selection","workspace","agents","agentsCompleteness","entitlements","connections","connectionsCompleteness","availability","remediation"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

context select-workspace

  • Operation ID: select_workspace
  • Authentication: oauth_token
  • Workspace selection: none
  • Required API Key scope: none
  • Minimum User role: none
  • Mutates: true
  • Idempotency: supported true; required false
  • HTTP: not available — this operation has no HTTP adapter.
  • CLI: context select-workspace — Stores the Workspace in the local CLI profile — the CLI's own session — and prints the same context bundle read back through get_context. It does not bind an MCP session.
  • MCP: select_workspace — Select Andy Workspace. Bind one accessible Workspace to this MCP session and answer with the same complete context bundle as get_context, so no further orientation call is needed.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, resource_not_found, permission_denied, workspace_selection_required

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"workspaceId":{"type":"string","minLength":1}},"required":["workspaceId"],"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"identity":{"type":"object","properties":{"user":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","minLength":1},"email":{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"name":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["id","email","name"],"additionalProperties":false},{"type":"null"}]},"authMode":{"type":"string","enum":["oauth","workspace_api_key"]},"scopes":{"type":"array","items":{"type":"string"}},"expiresAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},{"type":"null"}]}},"required":["user","authMode","scopes","expiresAt"],"additionalProperties":false},"workspaces":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"name":{"type":"string","minLength":1},"slug":{"type":"string","minLength":1},"role":{"anyOf":[{"type":"string","enum":["owner","admin","member"]},{"type":"null"}]},"status":{"type":"string","enum":["active","archived"]}},"required":["id","name","slug","role","status"],"additionalProperties":false}},"selection":{"type":"object","properties":{"status":{"type":"string","enum":["selected","required","unavailable"]},"source":{"anyOf":[{"type":"string","enum":["api_key","auto_single","session"]},{"type":"null"}]},"workspaceId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]}},"required":["status","source","workspaceId"],"additionalProperties":false},"workspace":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","minLength":1},"name":{"type":"string","minLength":1},"slug":{"type":"string","minLength":1},"role":{"anyOf":[{"type":"string","enum":["owner","admin","member"]},{"type":"null"}]},"status":{"type":"string","enum":["active","archived"]}},"required":["id","name","slug","role","status"],"additionalProperties":false},{"type":"null"}]},"agents":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"name":{"type":"string","minLength":1},"slug":{"type":"string","minLength":1},"status":{"type":"string","const":"active"},"defaultLanguage":{"type":"string","enum":["en","es"]}},"required":["id","name","slug","status","defaultLanguage"],"additionalProperties":false}},"agentsCompleteness":{"type":"object","properties":{"status":{"type":"string","enum":["complete","truncated","not_authorized","no_workspace"]},"returned":{"type":"integer","minimum":0,"maximum":9007199254740991},"limit":{"type":"integer","minimum":1,"maximum":9007199254740991},"nextCursor":{"type":"string","minLength":1}},"required":["status","returned","limit"],"additionalProperties":false},"entitlements":{"anyOf":[{"type":"object","properties":{"workspaceId":{"type":"string","minLength":1},"plan":{"anyOf":[{"type":"string"},{"type":"null"}]},"planName":{"anyOf":[{"type":"string"},{"type":"null"}]},"status":{"type":"string"},"active":{"type":"boolean"},"features":{"type":"array","items":{"type":"string"}},"limits":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"number"}},"usage":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"number"}},"channels":{"type":"object","properties":{"allowed":{"type":"array","items":{"type":"string"}},"maxActive":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["allowed","maxActive"],"additionalProperties":false},"trialEnd":{"anyOf":[{"type":"number"},{"type":"null"}]},"periodEnd":{"anyOf":[{"type":"number"},{"type":"null"}]},"cancelAtPeriodEnd":{"type":"boolean"},"supportDeskSource":{"anyOf":[{"type":"string","enum":["plan","grant"]},{"type":"null"}]}},"required":["workspaceId","plan","planName","status","active","features","limits","usage","channels","trialEnd","periodEnd","cancelAtPeriodEnd"],"additionalProperties":false},{"type":"null"}]},"connections":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"label":{"type":"string","minLength":1},"provider":{"type":"string","enum":["x","linkedin","instagram","tiktok"]},"status":{"type":"string","enum":["connected","disconnected","expired"]},"capabilities":{"type":"object","properties":{"canPublish":{"type":"boolean"},"canReadMetrics":{"type":"boolean"},"maxTextLength":{"default":null,"anyOf":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"null"}]},"formats":{"default":["text"],"type":"array","items":{"type":"string","enum":["text","article"]}}},"required":["canPublish","canReadMetrics","maxTextLength","formats"],"additionalProperties":false}},"required":["id","label","provider","status","capabilities"],"additionalProperties":false}},"connectionsCompleteness":{"type":"object","properties":{"status":{"type":"string","enum":["complete","not_authorized","no_workspace"]},"returned":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["status","returned"],"additionalProperties":false},"availability":{"type":"object","properties":{"api":{"type":"boolean"},"mcp":{"type":"boolean"}},"required":["api","mcp"],"additionalProperties":false},"remediation":{"type":"object","properties":{"calls":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string","minLength":1},"operationId":{"type":"string","minLength":1},"mcpToolName":{"type":"string","minLength":1},"mode":{"type":"string","const":"merge_and_retry"},"input":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["operationId","input"],"additionalProperties":false}},"setupUrl":{"type":"string","format":"uri"}},"required":["calls"],"additionalProperties":false}},"required":["identity","workspaces","selection","workspace","agents","agentsCompleteness","entitlements","connections","connectionsCompleteness","availability","remediation"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

auth status

  • Operation ID: identity.status
  • Authentication: oauth_token, workspace_api_key
  • Workspace selection: optional
  • Required API Key scope: none
  • Minimum User role: none
  • Mutates: false
  • Idempotency: supported false; required false
  • HTTP: POST /api/public/operations/identity/status
  • MCP: not exposed on MCP — Inspect Andy identity status. Return the current Andy identity, selected Workspace, authentication mode, availability, and request ID without exposing credentials.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, setup_required

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"client":{"type":"object","properties":{"version":{"type":"string"},"endpoint":{"type":"string","format":"uri"}},"required":["version","endpoint"],"additionalProperties":false},"auth":{"type":"object","properties":{"mode":{"type":"string","enum":["user","workspace_api_key"]},"secretLocation":{"type":"string","enum":["os_store","environment","secret_file","unknown"]},"expiresAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},{"type":"null"}]}},"required":["mode","secretLocation","expiresAt"],"additionalProperties":false},"user":{"anyOf":[{"type":"object","properties":{"id":{"type":"string"},"email":{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"name":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["id","email","name"],"additionalProperties":false},{"type":"null"}]},"workspace":{"anyOf":[{"type":"object","properties":{"id":{"type":"string"},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"slug":{"anyOf":[{"type":"string"},{"type":"null"}]},"role":{"anyOf":[{"type":"string","enum":["owner","admin","member"]},{"type":"null"}]},"status":{"type":"string","enum":["active","archived"]}},"required":["id","name","slug","role","status"],"additionalProperties":false},{"type":"null"}]},"credential":{"anyOf":[{"type":"object","properties":{"keyPrefix":{"type":"string"},"scopes":{"type":"array","items":{"type":"string"}}},"required":["keyPrefix","scopes"],"additionalProperties":false},{"type":"null"}]},"availability":{"type":"object","properties":{"api":{"type":"boolean"},"mcp":{"type":"boolean"}},"required":["api","mcp"],"additionalProperties":false},"selection":{"type":"object","properties":{"status":{"type":"string","enum":["selected","required","unavailable"]},"source":{"anyOf":[{"type":"string","enum":["api_key","auto_single","session"]},{"type":"null"}]},"workspaceId":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["status","source","workspaceId"],"additionalProperties":false},"status":{"type":"string","const":"ready"}},"required":["client","auth","user","workspace","credential","availability","status"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

workspace list

  • Operation ID: workspace.list
  • Authentication: oauth_token
  • Workspace selection: none
  • Required API Key scope: none
  • Minimum User role: none
  • Mutates: false
  • Idempotency: supported false; required false
  • HTTP: POST /api/public/operations/workspaces/list
  • MCP: not exposed on MCP — List Andy Workspaces. List the Workspaces available to the connected Andy identity.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"cursor":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"pageSize":{"default":50,"type":"integer","minimum":1,"maximum":100}},"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"workspaces":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"name":{"type":"string","minLength":1},"slug":{"type":"string","minLength":1},"role":{"anyOf":[{"type":"string","enum":["owner","admin","member"]},{"type":"null"}]},"status":{"type":"string","enum":["active","archived"]}},"required":["id","name","slug","role","status"],"additionalProperties":false}}},"required":["workspaces"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

workspace select

  • Operation ID: workspace.select
  • Authentication: oauth_token
  • Workspace selection: none
  • Required API Key scope: none
  • Minimum User role: none
  • Mutates: true
  • Idempotency: supported true; required false
  • HTTP: not available — this operation has no HTTP adapter.
  • CLI: workspace select — Validates the ID or slug across every Workspace page, then stores it as the local CLI profile default. It is not a tenant operation and binds no MCP session.
  • MCP: not exposed on MCP — Select an Andy Workspace. Bind this OAuth MCP session to one Workspace returned by workspace.list. Superseded on MCP by select_workspace (#1068); the CLI command stores a local profile default instead.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, resource_not_found, permission_denied

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"workspaceId":{"type":"string","minLength":1}},"required":["workspaceId"],"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"workspace":{"type":"object","properties":{"id":{"type":"string","minLength":1},"name":{"type":"string","minLength":1},"slug":{"type":"string","minLength":1},"role":{"anyOf":[{"type":"string","enum":["owner","admin","member"]},{"type":"null"}]},"status":{"type":"string","enum":["active","archived"]}},"required":["id","name","slug","role","status"],"additionalProperties":false}},"required":["workspace"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

workspace inspect

  • Operation ID: workspace.inspect
  • Authentication: oauth_token, workspace_api_key
  • Workspace selection: required
  • Required API Key scope: none
  • Minimum User role: none
  • Mutates: false
  • Idempotency: supported false; required false
  • HTTP: POST /api/public/operations/workspaces/inspect
  • MCP: get_workspace — Inspect an Andy Workspace. Inspect the selected Workspace without exposing billing credentials.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, resource_not_found

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"workspace":{"type":"object","properties":{"id":{"type":"string","minLength":1},"name":{"type":"string","minLength":1},"slug":{"type":"string","minLength":1},"role":{"anyOf":[{"type":"string","enum":["owner","admin","member"]},{"type":"null"}]},"status":{"type":"string","enum":["active","archived"]}},"required":["id","name","slug","role","status"],"additionalProperties":false}},"required":["workspace"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

workspace create

  • Operation ID: workspace.create
  • Authentication: oauth_token
  • Workspace selection: none
  • Required API Key scope: none
  • Minimum User role: none
  • Mutates: true
  • Idempotency: supported true; required false
  • HTTP: POST /api/public/operations/workspaces/create
  • MCP: not exposed on MCP — Create an Andy Workspace. Create a Workspace owned by the current User under existing Plan and trial rules.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, permission_denied, idempotency_conflict

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"slug":{"type":"string","pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":200}},"required":["name"],"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"workspace":{"type":"object","properties":{"id":{"type":"string","minLength":1},"name":{"type":"string","minLength":1},"slug":{"type":"string","minLength":1},"role":{"anyOf":[{"type":"string","enum":["owner","admin","member"]},{"type":"null"}]},"status":{"type":"string","enum":["active","archived"]}},"required":["id","name","slug","role","status"],"additionalProperties":false}},"required":["workspace"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

workspace rename

  • Operation ID: workspace.rename
  • Authentication: oauth_token
  • Workspace selection: required
  • Required API Key scope: none
  • Minimum User role: admin
  • Mutates: true
  • Idempotency: supported true; required false
  • HTTP: POST /api/public/operations/workspaces/rename
  • MCP: not exposed on MCP — Rename an Andy Workspace. Rename the selected Workspace as a current Admin or Owner.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, workspace_archived, idempotency_conflict

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"idempotencyKey":{"type":"string","minLength":8,"maxLength":200}},"required":["name"],"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"workspace":{"type":"object","properties":{"id":{"type":"string","minLength":1},"name":{"type":"string","minLength":1},"slug":{"type":"string","minLength":1},"role":{"anyOf":[{"type":"string","enum":["owner","admin","member"]},{"type":"null"}]},"status":{"type":"string","enum":["active","archived"]}},"required":["id","name","slug","role","status"],"additionalProperties":false}},"required":["workspace"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

workspace entitlements

  • Operation ID: workspace.entitlements.inspect
  • Authentication: oauth_token, workspace_api_key
  • Workspace selection: required
  • Required API Key scope: workspace:read
  • Minimum User role: none
  • Mutates: false
  • Idempotency: supported false; required false
  • HTTP: POST /api/public/operations/workspaces/entitlements/inspect
  • MCP: get_workspace_entitlements — Inspect Andy Workspace Entitlements. Inspect current Entitlements, Limits, Usage, Plan, and trial state for the selected Workspace. A Workspace API Key needs workspace:read.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"entitlement":{"type":"object","properties":{"workspaceId":{"type":"string","minLength":1},"plan":{"anyOf":[{"type":"string"},{"type":"null"}]},"planName":{"anyOf":[{"type":"string"},{"type":"null"}]},"status":{"type":"string"},"active":{"type":"boolean"},"features":{"type":"array","items":{"type":"string"}},"limits":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"number"}},"usage":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"number"}},"channels":{"type":"object","properties":{"allowed":{"type":"array","items":{"type":"string"}},"maxActive":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["allowed","maxActive"],"additionalProperties":false},"trialEnd":{"anyOf":[{"type":"number"},{"type":"null"}]},"periodEnd":{"anyOf":[{"type":"number"},{"type":"null"}]},"cancelAtPeriodEnd":{"type":"boolean"},"supportDeskSource":{"anyOf":[{"type":"string","enum":["plan","grant"]},{"type":"null"}]}},"required":["workspaceId","plan","planName","status","active","features","limits","usage","channels","trialEnd","periodEnd","cancelAtPeriodEnd"],"additionalProperties":false}},"required":["entitlement"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

assistant telegram inspect

  • Operation ID: assistant.telegram.inspect
  • Authentication: oauth_token
  • Workspace selection: required
  • Required API Key scope: none
  • Minimum User role: none
  • Mutates: false
  • Idempotency: supported false; required false
  • HTTP: POST /api/public/operations/assistant/telegram/inspect
  • MCP: manage_telegram_connection (action inspect) — Inspect your Andy Telegram connection. Inspect your own Telegram connection and Workspace availability. Never reveals a connection token.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, permission_denied, resource_not_found, telegram_already_connected, telegram_challenge_invalid, telegram_identity_conflict, limit_exceeded

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"enabled":{"type":"boolean"},"status":{"type":"string","enum":["unavailable","connected","awaiting_confirmation","pending","expired","disconnected"]},"workspace":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"}},"required":["id","name","slug"],"additionalProperties":false},"connection":{"anyOf":[{"type":"object","properties":{"id":{"type":"string"},"accountLabel":{"type":"string"},"connectedAt":{"type":"number"}},"required":["id","accountLabel","connectedAt"],"additionalProperties":false},{"type":"null"}]},"challenge":{"anyOf":[{"type":"object","properties":{"id":{"type":"string"},"expiresAt":{"type":"number"},"accountLabel":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["id","expiresAt","accountLabel"],"additionalProperties":false},{"type":"null"}]},"appPath":{"type":"string"},"botUrl":{"type":"string"},"appRequired":{"type":"boolean"},"deepLink":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["enabled","status","workspace","connection","challenge","appPath","botUrl","appRequired","deepLink"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

assistant telegram prepare

  • Operation ID: assistant.telegram.prepare
  • Authentication: oauth_token
  • Workspace selection: required
  • Required API Key scope: none
  • Minimum User role: none
  • Mutates: true
  • Idempotency: supported true; required false
  • HTTP: POST /api/public/operations/assistant/telegram/prepare
  • MCP: manage_telegram_connection (action prepare) — Prepare your Andy Telegram connection. Connect your own Telegram account. Assistants and external callers receive an App handoff; only the connection page receives the one-time proof link. Open appPath to continue.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, permission_denied, resource_not_found, telegram_already_connected, telegram_challenge_invalid, telegram_identity_conflict, limit_exceeded

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"idempotencyKey":{"type":"string","minLength":8,"maxLength":200}},"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"enabled":{"type":"boolean"},"status":{"type":"string","enum":["unavailable","connected","awaiting_confirmation","pending","expired","disconnected"]},"workspace":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"}},"required":["id","name","slug"],"additionalProperties":false},"connection":{"anyOf":[{"type":"object","properties":{"id":{"type":"string"},"accountLabel":{"type":"string"},"connectedAt":{"type":"number"}},"required":["id","accountLabel","connectedAt"],"additionalProperties":false},{"type":"null"}]},"challenge":{"anyOf":[{"type":"object","properties":{"id":{"type":"string"},"expiresAt":{"type":"number"},"accountLabel":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["id","expiresAt","accountLabel"],"additionalProperties":false},{"type":"null"}]},"appPath":{"type":"string"},"botUrl":{"type":"string"},"appRequired":{"type":"boolean"},"deepLink":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["enabled","status","workspace","connection","challenge","appPath","botUrl","appRequired","deepLink"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

assistant telegram confirm

  • Operation ID: assistant.telegram.confirm
  • Authentication: oauth_token
  • Workspace selection: required
  • Required API Key scope: none
  • Minimum User role: none
  • Mutates: true
  • Idempotency: supported true; required false
  • HTTP: POST /api/public/operations/assistant/telegram/confirm
  • MCP: manage_telegram_connection (action confirm) — Confirm your Andy Telegram connection. Confirm the Telegram account shown on your connection page. Final confirmation must come from the same signed-in App session that prepared the link. Other callers receive an App handoff.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, permission_denied, resource_not_found, telegram_already_connected, telegram_challenge_invalid, telegram_identity_conflict, limit_exceeded

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"challengeId":{"type":"string","minLength":1},"idempotencyKey":{"type":"string","minLength":8,"maxLength":200}},"required":["challengeId"],"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"enabled":{"type":"boolean"},"status":{"type":"string","enum":["unavailable","connected","awaiting_confirmation","pending","expired","disconnected"]},"workspace":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"}},"required":["id","name","slug"],"additionalProperties":false},"connection":{"anyOf":[{"type":"object","properties":{"id":{"type":"string"},"accountLabel":{"type":"string"},"connectedAt":{"type":"number"}},"required":["id","accountLabel","connectedAt"],"additionalProperties":false},{"type":"null"}]},"challenge":{"anyOf":[{"type":"object","properties":{"id":{"type":"string"},"expiresAt":{"type":"number"},"accountLabel":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["id","expiresAt","accountLabel"],"additionalProperties":false},{"type":"null"}]},"appPath":{"type":"string"},"botUrl":{"type":"string"},"appRequired":{"type":"boolean"},"deepLink":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["enabled","status","workspace","connection","challenge","appPath","botUrl","appRequired","deepLink"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

assistant telegram disconnect

  • Operation ID: assistant.telegram.disconnect
  • Authentication: oauth_token
  • Workspace selection: required
  • Required API Key scope: none
  • Minimum User role: none
  • Mutates: true
  • Idempotency: supported true; required false
  • HTTP: POST /api/public/operations/assistant/telegram/disconnect
  • MCP: manage_telegram_connection (action disconnect) — Disconnect your Andy Telegram connection. Disconnect your own Telegram account from the selected Workspace immediately. Remains usable when the feature flag is Off.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, permission_denied, resource_not_found, telegram_already_connected, telegram_challenge_invalid, telegram_identity_conflict, limit_exceeded

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"idempotencyKey":{"type":"string","minLength":8,"maxLength":200}},"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"enabled":{"type":"boolean"},"status":{"type":"string","enum":["unavailable","connected","awaiting_confirmation","pending","expired","disconnected"]},"workspace":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"}},"required":["id","name","slug"],"additionalProperties":false},"connection":{"anyOf":[{"type":"object","properties":{"id":{"type":"string"},"accountLabel":{"type":"string"},"connectedAt":{"type":"number"}},"required":["id","accountLabel","connectedAt"],"additionalProperties":false},{"type":"null"}]},"challenge":{"anyOf":[{"type":"object","properties":{"id":{"type":"string"},"expiresAt":{"type":"number"},"accountLabel":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["id","expiresAt","accountLabel"],"additionalProperties":false},{"type":"null"}]},"appPath":{"type":"string"},"botUrl":{"type":"string"},"appRequired":{"type":"boolean"},"deepLink":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["enabled","status","workspace","connection","challenge","appPath","botUrl","appRequired","deepLink"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

workspace time-zone show

  • Operation ID: workspace.time_zone.inspect
  • Authentication: oauth_token, workspace_api_key
  • Workspace selection: required
  • Required API Key scope: workspace:read
  • Minimum User role: none
  • Mutates: false
  • Idempotency: supported false; required false
  • HTTP: POST /api/public/operations/workspaces/time-zone/inspect
  • MCP: manage_workspace_time_zone (action inspect) — Inspect the Andy Workspace time zone. Read the selected Workspace's IANA time zone. Dates in the App and Owner emails use it. source "default" means none is set yet and America/Santiago applies. A Workspace API Key needs workspace:read.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, entitlement_required

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"workspaceId":{"type":"string","minLength":1},"timeZone":{"type":"string","minLength":1},"source":{"type":"string","enum":["workspace","default"]}},"required":["workspaceId","timeZone","source"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

workspace time-zone set

  • Operation ID: workspace.time_zone.set
  • Authentication: oauth_token
  • Workspace selection: required
  • Required API Key scope: none
  • Minimum User role: admin
  • Mutates: true
  • Idempotency: supported true; required false
  • HTTP: POST /api/public/operations/workspaces/time-zone/set
  • MCP: manage_workspace_time_zone (action set) — Set the Andy Workspace time zone. Set the selected Workspace's IANA time zone, e.g. "Europe/London" or "America/Mexico_City". Dates in the App and Owner emails use it. Idempotent. Owner/Admin only.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, workspace_archived, idempotency_conflict

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"timeZone":{"type":"string","minLength":1,"maxLength":64},"idempotencyKey":{"type":"string","minLength":8,"maxLength":200}},"required":["timeZone"],"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"workspaceId":{"type":"string","minLength":1},"timeZone":{"type":"string","minLength":1},"source":{"type":"string","enum":["workspace","default"]}},"required":["workspaceId","timeZone","source"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

billing show

  • Operation ID: workspace.billing.inspect
  • Authentication: oauth_token
  • Workspace selection: required
  • Required API Key scope: none
  • Minimum User role: owner
  • Mutates: false
  • Idempotency: supported false; required false
  • HTTP: POST /api/public/operations/workspaces/billing/inspect
  • MCP: get_workspace_billing — Inspect Andy Workspace billing. Read the selected Workspace's plan (name, list price, status, next charge date and amount after discounts and account credit, card) and its Billing Details from Stripe: legal name, billing email, address and each tax ID with its Tax Registration Status and the statement that confirms it. needsPaymentMethod is true after an ownership transfer until the new Owner adds a card. Owner only.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"workspaceId":{"type":"string","minLength":1},"plan":{"type":"object","properties":{"slug":{"type":"string"},"name":{"type":"string"},"status":{"type":"string","enum":["active","trialing","past_due","inactive","free","complimentary"]},"price":{"anyOf":[{"type":"object","properties":{"amount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"currency":{"type":"string","minLength":1},"interval":{"type":"string","enum":["day","week","month","year"]},"intervalCount":{"type":"integer","minimum":1,"maximum":9007199254740991}},"required":["amount","currency","interval","intervalCount"],"additionalProperties":false},{"type":"null"}]},"nextChargeAt":{"anyOf":[{"type":"number"},{"type":"null"}]},"nextCharge":{"anyOf":[{"type":"object","properties":{"amount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"currency":{"type":"string","minLength":1}},"required":["amount","currency"],"additionalProperties":false},{"type":"null"}]},"cancelsAt":{"anyOf":[{"type":"number"},{"type":"null"}]},"trialEnd":{"anyOf":[{"type":"number"},{"type":"null"}]},"paymentMethod":{"anyOf":[{"type":"object","properties":{"brand":{"type":"string"},"last4":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["brand","last4"],"additionalProperties":false},{"type":"null"}]}},"required":["slug","name","status","price","nextChargeAt","nextCharge","cancelsAt","trialEnd","paymentMethod"],"additionalProperties":false},"hasCustomer":{"type":"boolean"},"billingDetails":{"anyOf":[{"type":"object","properties":{"legalName":{"anyOf":[{"type":"string"},{"type":"null"}]},"email":{"anyOf":[{"type":"string"},{"type":"null"}]},"address":{"anyOf":[{"type":"object","properties":{"line1":{"anyOf":[{"type":"string"},{"type":"null"}]},"line2":{"anyOf":[{"type":"string"},{"type":"null"}]},"city":{"anyOf":[{"type":"string"},{"type":"null"}]},"state":{"anyOf":[{"type":"string"},{"type":"null"}]},"postalCode":{"anyOf":[{"type":"string"},{"type":"null"}]},"country":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["line1","line2","city","state","postalCode","country"],"additionalProperties":false},{"type":"null"}]},"taxIds":{"type":"array","items":{"type":"object","properties":{"stripeTaxIdId":{"type":"string","minLength":1},"type":{"type":"string","minLength":1},"value":{"type":"string"},"country":{"anyOf":[{"type":"string"},{"type":"null"}]},"registration":{"type":"object","properties":{"confirmed":{"type":"boolean"},"confirmedAt":{"anyOf":[{"type":"number"},{"type":"null"}]},"confirmedBy":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["confirmed","confirmedAt","confirmedBy"],"additionalProperties":false},"confirmation":{"type":"object","properties":{"label":{"type":"object","properties":{"es":{"type":"string"},"en":{"type":"string"}},"required":["es","en"],"additionalProperties":false},"statement":{"type":"object","properties":{"es":{"type":"string"},"en":{"type":"string"}},"required":["es","en"],"additionalProperties":false},"wordingVersion":{"type":"object","properties":{"es":{"type":"string","minLength":1},"en":{"type":"string","minLength":1}},"required":["es","en"],"additionalProperties":false}},"required":["label","statement","wordingVersion"],"additionalProperties":false}},"required":["stripeTaxIdId","type","value","country","registration","confirmation"],"additionalProperties":false}}},"required":["legalName","email","address","taxIds"],"additionalProperties":false},{"type":"null"}]},"needsPaymentMethod":{"type":"boolean"}},"required":["workspaceId","plan","hasCustomer","billingDetails","needsPaymentMethod"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

billing portal

  • Operation ID: workspace.billing.portal_session.create
  • Authentication: oauth_token
  • Workspace selection: required
  • Required API Key scope: none
  • Minimum User role: owner
  • Mutates: false
  • Idempotency: supported false; required false
  • HTTP: POST /api/public/operations/workspaces/billing/portal-session/create
  • MCP: manage_workspace_billing (action portal_session) — Open the Andy Workspace billing portal. Return a fresh Stripe billing portal URL for the selected Workspace, for the Owner to open. flow "manage" changes the card, the plan or cancels; "payment_method" goes straight to adding a card; "details" edits the legal name, address and tax IDs, which apply to future invoices. Works after a cancellation, once the Workspace has paid. Owner only.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"flow":{"type":"string","enum":["manage","payment_method","details"]}},"required":["flow"],"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"flow":{"type":"string","enum":["manage","payment_method","details"]}},"required":["url","flow"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

billing tax-status

  • Operation ID: workspace.billing.tax_registration.set
  • Authentication: oauth_token
  • Workspace selection: required
  • Required API Key scope: none
  • Minimum User role: owner
  • Mutates: true
  • Idempotency: supported true; required false
  • HTTP: POST /api/public/operations/workspaces/billing/tax-registration/set
  • MCP: manage_workspace_billing (action set_tax_registration) — Set the Tax Registration Status of a tax ID. Confirm (confirmed true) or remove (confirmed false) the Owner's statement that the holder of one of the Workspace's tax IDs is registered for VAT, the IVA in Chile. Confirm only after the Owner read the exact statement from the billing inspect, in their language, and agreed; send that language's wordingVersion. Never confirm on the Owner's behalf. A changed tax ID starts unconfirmed. Idempotent. Owner only.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, confirmation_required

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"stripeTaxIdId":{"type":"string","pattern":"^txi_"},"confirmed":{"type":"boolean"},"wordingVersion":{"type":"string","minLength":1}},"required":["stripeTaxIdId","confirmed"],"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"workspaceId":{"type":"string","minLength":1},"taxId":{"type":"object","properties":{"stripeTaxIdId":{"type":"string","minLength":1},"type":{"type":"string","minLength":1},"value":{"type":"string"},"country":{"anyOf":[{"type":"string"},{"type":"null"}]},"registration":{"type":"object","properties":{"confirmed":{"type":"boolean"},"confirmedAt":{"anyOf":[{"type":"number"},{"type":"null"}]},"confirmedBy":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["confirmed","confirmedAt","confirmedBy"],"additionalProperties":false},"confirmation":{"type":"object","properties":{"label":{"type":"object","properties":{"es":{"type":"string"},"en":{"type":"string"}},"required":["es","en"],"additionalProperties":false},"statement":{"type":"object","properties":{"es":{"type":"string"},"en":{"type":"string"}},"required":["es","en"],"additionalProperties":false},"wordingVersion":{"type":"object","properties":{"es":{"type":"string","minLength":1},"en":{"type":"string","minLength":1}},"required":["es","en"],"additionalProperties":false}},"required":["label","statement","wordingVersion"],"additionalProperties":false}},"required":["stripeTaxIdId","type","value","country","registration","confirmation"],"additionalProperties":false}},"required":["workspaceId","taxId"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

invoices list

  • Operation ID: workspace.invoices.list
  • Authentication: oauth_token
  • Workspace selection: required
  • Required API Key scope: none
  • Minimum User role: owner
  • Mutates: false
  • Idempotency: supported false; required false
  • HTTP: POST /api/public/operations/workspaces/invoices/list
  • MCP: list_invoices (action list) — List Andy Workspace invoices. List the Invoices the selected Workspace was charged, newest first, live from Stripe: number, issue date, description, billed period, total in its currency, and paid or unpaid. History stays after a cancellation. $0 trial Invoices are left out unless includeZero is true; zeroCount says how many there are. Rows carry no URL: get a PDF or payment link with the invoice link operation. Page with meta.nextCursor. Owner only.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"includeZero":{"type":"boolean"},"cursor":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]}},"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"workspaceId":{"type":"string","minLength":1},"invoices":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"number":{"anyOf":[{"type":"string"},{"type":"null"}]},"issuedAt":{"type":"number"},"item":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"plan"},"planName":{"type":"string"}},"required":["kind","planName"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"credits"},"credits":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["kind","credits"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"other"},"description":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["kind","description"],"additionalProperties":false}]},"period":{"anyOf":[{"type":"object","properties":{"start":{"type":"number"},"end":{"type":"number"}},"required":["start","end"],"additionalProperties":false},{"type":"null"}]},"total":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"currency":{"type":"string","minLength":1},"status":{"type":"string","enum":["paid","unpaid"]}},"required":["id","number","issuedAt","item","period","total","currency","status"],"additionalProperties":false}},"zeroCount":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["workspaceId","invoices","zeroCount"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}
  • Operation ID: workspace.invoices.link
  • Authentication: oauth_token
  • Workspace selection: required
  • Required API Key scope: none
  • Minimum User role: owner
  • Mutates: false
  • Idempotency: supported false; required false
  • HTTP: POST /api/public/operations/workspaces/invoices/link
  • MCP: list_invoices (action link) — Get an Andy Workspace invoice link. Return a fresh link to one of the selected Workspace's Invoices: kind "pdf" downloads it, kind "pay" opens Stripe's payment page for an unpaid one. Give the link to the Owner to open now; never store it or send it to anyone else. Owner only.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"invoiceId":{"type":"string","pattern":"^in_"},"kind":{"default":"pdf","type":"string","enum":["pdf","pay"]}},"required":["invoiceId"],"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"invoiceId":{"type":"string","minLength":1},"kind":{"type":"string","enum":["pdf","pay"]},"url":{"type":"string","format":"uri"},"label":{"type":"string","minLength":1}},"required":["invoiceId","kind","url","label"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

members list

  • Operation ID: workspace.member.list
  • Authentication: oauth_token
  • Workspace selection: required
  • Required API Key scope: none
  • Minimum User role: none
  • Mutates: false
  • Idempotency: supported false; required false
  • HTTP: POST /api/public/operations/workspaces/members/list
  • MCP: manage_workspace_members (action list_members) — List Andy Workspace members. List the selected Workspace's members with their role (owner, admin or member), name, email and join date. Every member may read it.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"members":{"type":"array","items":{"type":"object","properties":{"membershipId":{"type":"string","minLength":1},"userId":{"type":"string","minLength":1},"role":{"type":"string","enum":["owner","admin","member"]},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"email":{"type":"string","minLength":1},"isDeleted":{"type":"boolean"},"joinedAt":{"type":"number"}},"required":["membershipId","userId","role","name","email","isDeleted","joinedAt"],"additionalProperties":false}}},"required":["members"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

members role

  • Operation ID: workspace.member.change_role
  • Authentication: oauth_token
  • Workspace selection: required
  • Required API Key scope: none
  • Minimum User role: admin
  • Mutates: true
  • Idempotency: supported true; required false
  • HTTP: POST /api/public/operations/workspaces/members/change-role
  • MCP: manage_workspace_members (action change_role) — Change an Andy Workspace member's role. Make one member an admin or a member, by membershipId from the member list. The Owner's role changes only through ownership transfer in the App. Owner/Admin only.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, workspace_archived, workspace_commercial_inactive, idempotency_conflict

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"membershipId":{"type":"string","minLength":1},"role":{"type":"string","enum":["admin","member"]},"idempotencyKey":{"type":"string","minLength":8,"maxLength":200}},"required":["membershipId","role"],"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"member":{"type":"object","properties":{"membershipId":{"type":"string","minLength":1},"userId":{"type":"string","minLength":1},"role":{"type":"string","enum":["owner","admin","member"]},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"email":{"type":"string","minLength":1},"isDeleted":{"type":"boolean"},"joinedAt":{"type":"number"}},"required":["membershipId","userId","role","name","email","isDeleted","joinedAt"],"additionalProperties":false}},"required":["member"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

members remove

  • Operation ID: workspace.member.remove
  • Authentication: oauth_token
  • Workspace selection: required
  • Required API Key scope: none
  • Minimum User role: admin
  • Mutates: true
  • Idempotency: supported true; required false
  • HTTP: POST /api/public/operations/workspaces/members/remove
  • MCP: manage_workspace_members (action remove) — Remove an Andy Workspace member. Remove one member from the selected Workspace, by membershipId from the member list. They lose access at once. The Owner cannot be removed, and you cannot remove yourself: leave the Workspace in the App. Owner/Admin only.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, workspace_archived, workspace_commercial_inactive, idempotency_conflict

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"membershipId":{"type":"string","minLength":1},"idempotencyKey":{"type":"string","minLength":8,"maxLength":200}},"required":["membershipId"],"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"membershipId":{"type":"string","minLength":1},"removed":{"type":"boolean","const":true}},"required":["membershipId","removed"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

members invites

  • Operation ID: workspace.invite.list
  • Authentication: oauth_token
  • Workspace selection: required
  • Required API Key scope: none
  • Minimum User role: admin
  • Mutates: false
  • Idempotency: supported false; required false
  • HTTP: POST /api/public/operations/workspaces/invites/list
  • MCP: manage_workspace_members (action list_invites) — List Andy Workspace invitations. List the selected Workspace's invitations: email, role, status (pending, revoked or accepted) and expiry. A pending invitation takes a seat until it expires. Owner/Admin only.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"invites":{"type":"array","items":{"type":"object","properties":{"inviteId":{"type":"string","minLength":1},"email":{"type":"string","minLength":1},"role":{"type":"string","enum":["admin","member"]},"status":{"type":"string","enum":["pending","revoked","accepted"]},"expiresAt":{"type":"number"},"createdAt":{"type":"number"},"invitedBy":{"type":"string","minLength":1}},"required":["inviteId","email","role","status","expiresAt","createdAt","invitedBy"],"additionalProperties":false}}},"required":["invites"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

members invite

  • Operation ID: workspace.invite.create
  • Authentication: oauth_token
  • Workspace selection: required
  • Required API Key scope: none
  • Minimum User role: admin
  • Mutates: true
  • Idempotency: supported true; required false
  • HTTP: POST /api/public/operations/workspaces/invites/create
  • MCP: manage_workspace_members (action invite) — Invite someone to an Andy Workspace. Email an invitation to join the selected Workspace as an admin or a member. It sends an email, so set confirm true only after the User agreed to send it. Inviting the same email again replaces its pending invitation. Refused with limit_exceeded when members plus pending invitations fill the plan's seats. Owner/Admin only.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, workspace_archived, workspace_commercial_inactive, confirmation_required, limit_exceeded, idempotency_conflict

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"email":{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"role":{"type":"string","enum":["admin","member"]},"confirm":{"type":"boolean"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":200}},"required":["email","role"],"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"invite":{"type":"object","properties":{"inviteId":{"type":"string","minLength":1},"email":{"type":"string","minLength":1},"role":{"type":"string","enum":["admin","member"]},"status":{"type":"string","enum":["pending","revoked","accepted"]},"expiresAt":{"type":"number"},"createdAt":{"type":"number"},"invitedBy":{"type":"string","minLength":1}},"required":["inviteId","email","role","status","expiresAt","createdAt","invitedBy"],"additionalProperties":false}},"required":["invite"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

members revoke

  • Operation ID: workspace.invite.revoke
  • Authentication: oauth_token
  • Workspace selection: required
  • Required API Key scope: none
  • Minimum User role: admin
  • Mutates: true
  • Idempotency: supported true; required false
  • HTTP: POST /api/public/operations/workspaces/invites/revoke
  • MCP: manage_workspace_members (action revoke_invite) — Revoke an Andy Workspace invitation. Revoke one pending invitation, by inviteId from the invitation list. Its link stops working and its seat frees up. Owner/Admin only.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, workspace_archived, workspace_commercial_inactive, idempotency_conflict

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"inviteId":{"type":"string","minLength":1},"idempotencyKey":{"type":"string","minLength":8,"maxLength":200}},"required":["inviteId"],"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"invite":{"type":"object","properties":{"inviteId":{"type":"string","minLength":1},"email":{"type":"string","minLength":1},"role":{"type":"string","enum":["admin","member"]},"status":{"type":"string","enum":["pending","revoked","accepted"]},"expiresAt":{"type":"number"},"createdAt":{"type":"number"},"invitedBy":{"type":"string","minLength":1}},"required":["inviteId","email","role","status","expiresAt","createdAt","invitedBy"],"additionalProperties":false}},"required":["invite"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

agent list

  • Operation ID: agent.list
  • Authentication: oauth_token, workspace_api_key
  • Workspace selection: required
  • Required API Key scope: none
  • Minimum User role: none
  • Mutates: false
  • Idempotency: supported false; required false
  • HTTP: POST /api/public/operations/agents/list
  • MCP: get_agent — List Andy Agents. List active Agents in the selected Workspace.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, resource_not_found, entitlement_required

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"cursor":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"pageSize":{"default":50,"type":"integer","minimum":1,"maximum":100}},"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"agents":{"type":"array","items":{"type":"object","properties":{"purpose":{"type":"string","enum":["sales","support","assistant"]},"id":{"type":"string","minLength":1},"workspaceId":{"type":"string","minLength":1},"name":{"type":"string","minLength":1},"slug":{"type":"string","minLength":1},"status":{"type":"string","const":"active"},"defaultLanguage":{"type":"string","enum":["en","es"]},"configuration":{"type":"object","properties":{"instructions":{"anyOf":[{"type":"string"},{"type":"null"}]},"temperature":{"type":"number"},"tone":{"type":"string","enum":["formal","balanced","casual"]},"creativity":{"type":"string","enum":["predictable","balanced","creative"]},"handoffReply":{"default":{},"description":"The Handoff reply the Owner wrote per language. A missing language sends its default.","type":"object","properties":{"es":{"type":"string"},"en":{"type":"string"}},"additionalProperties":false}},"required":["instructions","temperature","tone","creativity","handoffReply"],"additionalProperties":false}},"required":["purpose","id","workspaceId","name","slug","status","defaultLanguage","configuration"],"additionalProperties":false}}},"required":["agents"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

agent inspect

  • Operation ID: agent.inspect
  • Authentication: oauth_token, workspace_api_key
  • Workspace selection: required
  • Required API Key scope: none
  • Minimum User role: none
  • Mutates: false
  • Idempotency: supported false; required false
  • HTTP: POST /api/public/operations/agents/inspect
  • MCP: get_agent — Inspect an Andy Agent. Inspect one active Agent by exact ID in the selected Workspace.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, resource_not_found, entitlement_required

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"agentId":{"type":"string","minLength":1}},"required":["agentId"],"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"agent":{"type":"object","properties":{"purpose":{"type":"string","enum":["sales","support","assistant"]},"id":{"type":"string","minLength":1},"workspaceId":{"type":"string","minLength":1},"name":{"type":"string","minLength":1},"slug":{"type":"string","minLength":1},"status":{"type":"string","const":"active"},"defaultLanguage":{"type":"string","enum":["en","es"]},"configuration":{"type":"object","properties":{"instructions":{"anyOf":[{"type":"string"},{"type":"null"}]},"temperature":{"type":"number"},"tone":{"type":"string","enum":["formal","balanced","casual"]},"creativity":{"type":"string","enum":["predictable","balanced","creative"]},"handoffReply":{"default":{},"description":"The Handoff reply the Owner wrote per language. A missing language sends its default.","type":"object","properties":{"es":{"type":"string"},"en":{"type":"string"}},"additionalProperties":false}},"required":["instructions","temperature","tone","creativity","handoffReply"],"additionalProperties":false}},"required":["purpose","id","workspaceId","name","slug","status","defaultLanguage","configuration"],"additionalProperties":false},"currentSupportAgentGranted":{"type":"boolean"}},"required":["agent"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

agent metrics

  • Operation ID: agent.metrics.inspect
  • Authentication: oauth_token, workspace_api_key
  • Workspace selection: required
  • Required API Key scope: agent:read
  • Minimum User role: member
  • Mutates: false
  • Idempotency: supported false; required false
  • HTTP: POST /api/public/operations/agents/metrics/inspect
  • MCP: get_agent_metrics (action inspect) — Inspect Agent Metrics. Read the Overview board's exact metrics and previous-period comparison in the Workspace time zone. Period is today, 7d, 30d or {month: YYYY-MM}. Clock defaults to now and is floored to the hour. While history is filling, no partial numbers are returned. Get agentId from get_context or get_agent.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"agentId":{"type":"string","minLength":1},"clock":{"type":"number"},"period":{"anyOf":[{"type":"string","enum":["today","7d","30d"]},{"type":"object","properties":{"month":{"type":"string","pattern":"^\\d{4}-(0[1-9]|1[0-2])$"}},"required":["month"],"additionalProperties":false}]}},"required":["agentId","period"],"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"metrics":{"oneOf":[{"type":"object","properties":{"status":{"type":"string","const":"filling"}},"required":["status"],"additionalProperties":false},{"type":"object","properties":{"status":{"type":"string","const":"ready"},"series":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string"},"start":{"type":"number"},"exchanges":{"anyOf":[{"type":"number"},{"type":"null"}]},"leads":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["label","start","exchanges","leads"],"additionalProperties":false}},"kpis":{"type":"object","properties":{"exchanges":{"type":"object","properties":{"value":{"type":"number"},"previous":{"type":"number"}},"required":["value","previous"],"additionalProperties":false},"leads":{"type":"object","properties":{"value":{"type":"number"},"previous":{"type":"number"}},"required":["value","previous"],"additionalProperties":false},"leadConversion":{"type":"object","properties":{"value":{"type":"number"},"previous":{"type":"number"}},"required":["value","previous"],"additionalProperties":false},"answeredByAgentOnly":{"type":"object","properties":{"value":{"type":"number"},"previous":{"type":"number"}},"required":["value","previous"],"additionalProperties":false},"replyRate":{"type":"object","properties":{"value":{"type":"number"},"previous":{"type":"number"}},"required":["value","previous"],"additionalProperties":false},"medianResponseMs":{"type":"object","properties":{"value":{"type":"number"},"previous":{"type":"number"}},"required":["value","previous"],"additionalProperties":false},"afterHoursShare":{"type":"object","properties":{"value":{"type":"number"},"previous":{"type":"number"}},"required":["value","previous"],"additionalProperties":false}},"required":["exchanges","leads","leadConversion","answeredByAgentOnly","replyRate","medianResponseMs","afterHoursShare"],"additionalProperties":false},"byChannel":{"type":"array","items":{"type":"object","properties":{"channel":{"type":"string","enum":["whatsapp","instagram","widget","public_url","slack","voice"]},"exchanges":{"type":"number"},"leads":{"type":"number"}},"required":["channel","exchanges","leads"],"additionalProperties":false}},"byWeekday":{"type":"array","items":{"type":"number"}},"byHour":{"type":"array","items":{"type":"number"}},"afterHours":{"type":"object","properties":{"source":{"type":"string","enum":["business_hours","default"]},"timeZone":{"type":"string"},"hours":{"type":"object","properties":{"monday":{"type":"array","items":{"type":"object","properties":{"start":{"type":"string"},"end":{"type":"string"}},"required":["start","end"],"additionalProperties":false}},"tuesday":{"type":"array","items":{"type":"object","properties":{"start":{"type":"string"},"end":{"type":"string"}},"required":["start","end"],"additionalProperties":false}},"wednesday":{"type":"array","items":{"type":"object","properties":{"start":{"type":"string"},"end":{"type":"string"}},"required":["start","end"],"additionalProperties":false}},"thursday":{"type":"array","items":{"type":"object","properties":{"start":{"type":"string"},"end":{"type":"string"}},"required":["start","end"],"additionalProperties":false}},"friday":{"type":"array","items":{"type":"object","properties":{"start":{"type":"string"},"end":{"type":"string"}},"required":["start","end"],"additionalProperties":false}},"saturday":{"type":"array","items":{"type":"object","properties":{"start":{"type":"string"},"end":{"type":"string"}},"required":["start","end"],"additionalProperties":false}},"sunday":{"type":"array","items":{"type":"object","properties":{"start":{"type":"string"},"end":{"type":"string"}},"required":["start","end"],"additionalProperties":false}}},"required":["monday","tuesday","wednesday","thursday","friday","saturday","sunday"],"additionalProperties":false}},"required":["source","timeZone","hours"],"additionalProperties":false}},"required":["status","series","kpis","byChannel","byWeekday","byHour","afterHours"],"additionalProperties":false}]}},"required":["metrics"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

agent live-now

  • Operation ID: agent.metrics.live_now
  • Authentication: oauth_token, workspace_api_key
  • Workspace selection: required
  • Required API Key scope: agent:read
  • Minimum User role: member
  • Mutates: false
  • Idempotency: supported false; required false
  • HTTP: POST /api/public/operations/agents/metrics/live-now
  • MCP: get_agent_metrics (action live_now) — Read Agent live-now count. Count Conversations with a counted Message less than five minutes old. Clock defaults to now; liveNow is null while history is filling. Get agentId from get_context or get_agent.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"agentId":{"type":"string","minLength":1},"clock":{"type":"number"}},"required":["agentId"],"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"liveNow":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["liveNow"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

agent create

  • Operation ID: agent.create
  • Authentication: oauth_token, workspace_api_key
  • Workspace selection: required
  • Required API Key scope: none
  • Minimum User role: none
  • Mutates: true
  • Idempotency: supported true; required false
  • HTTP: POST /api/public/operations/agents/create
  • MCP: manage_agent (action create) — Create an Andy Agent. Create an Agent in the selected Workspace under current Entitlements and Limits. Purpose defaults to sales. A Workspace Owner or Admin User may create a support Agent when the Workspace has Soporte (Pro Max or a grant); only a Platform Admin User may create assistant. A Workspace API Key creates only sales. Purpose is read-only in ordinary Agent configuration.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, workspace_archived, entitlement_required, limit_exceeded, idempotency_conflict

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"purpose":{"default":"sales","type":"string","enum":["sales","support","assistant"]},"name":{"type":"string","minLength":1,"maxLength":120},"slug":{"type":"string","pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$"},"defaultLanguage":{"description":"The Agent's language. Omit it to use the creating User's language; a Workspace API Key uses the Workspace Owner's. Spanish when neither is known.","type":"string","enum":["en","es"]},"instructions":{"type":"string","minLength":1,"maxLength":20000},"temperature":{"type":"number","minimum":0,"maximum":2},"idempotencyKey":{"type":"string","minLength":8,"maxLength":200}},"required":["name"],"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"agent":{"type":"object","properties":{"purpose":{"type":"string","enum":["sales","support","assistant"]},"id":{"type":"string","minLength":1},"workspaceId":{"type":"string","minLength":1},"name":{"type":"string","minLength":1},"slug":{"type":"string","minLength":1},"status":{"type":"string","const":"active"},"defaultLanguage":{"type":"string","enum":["en","es"]},"configuration":{"type":"object","properties":{"instructions":{"anyOf":[{"type":"string"},{"type":"null"}]},"temperature":{"type":"number"},"tone":{"type":"string","enum":["formal","balanced","casual"]},"creativity":{"type":"string","enum":["predictable","balanced","creative"]},"handoffReply":{"default":{},"description":"The Handoff reply the Owner wrote per language. A missing language sends its default.","type":"object","properties":{"es":{"type":"string"},"en":{"type":"string"}},"additionalProperties":false}},"required":["instructions","temperature","tone","creativity","handoffReply"],"additionalProperties":false}},"required":["purpose","id","workspaceId","name","slug","status","defaultLanguage","configuration"],"additionalProperties":false},"currentSupportAgentGranted":{"type":"boolean"}},"required":["agent"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

agent set-purpose

  • Operation ID: agent.purpose.set
  • Authentication: oauth_token
  • Workspace selection: required
  • Required API Key scope: none
  • Minimum User role: admin
  • Mutates: true
  • Idempotency: supported true; required false
  • HTTP: POST /api/public/operations/agents/purpose/set
  • MCP: manage_agent (action set_purpose) — Set an Agent's provisioned purpose. A Workspace Owner or Admin User may switch an Agent between sales and support; support needs Soporte (Pro Max or a grant). Only a Platform Admin User may give or remove assistant. Workspace API Keys never hold this authority. Purpose remains read-only in ordinary Agent configuration.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, permission_denied, workspace_selection_required, resource_not_found, workspace_archived, entitlement_required, idempotency_conflict

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"agentId":{"type":"string","minLength":1},"purpose":{"type":"string","enum":["sales","support","assistant"]},"idempotencyKey":{"type":"string","minLength":8,"maxLength":200}},"required":["agentId","purpose"],"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"agent":{"type":"object","properties":{"purpose":{"type":"string","enum":["sales","support","assistant"]},"id":{"type":"string","minLength":1},"workspaceId":{"type":"string","minLength":1},"name":{"type":"string","minLength":1},"slug":{"type":"string","minLength":1},"status":{"type":"string","const":"active"},"defaultLanguage":{"type":"string","enum":["en","es"]},"configuration":{"type":"object","properties":{"instructions":{"anyOf":[{"type":"string"},{"type":"null"}]},"temperature":{"type":"number"},"tone":{"type":"string","enum":["formal","balanced","casual"]},"creativity":{"type":"string","enum":["predictable","balanced","creative"]},"handoffReply":{"default":{},"description":"The Handoff reply the Owner wrote per language. A missing language sends its default.","type":"object","properties":{"es":{"type":"string"},"en":{"type":"string"}},"additionalProperties":false}},"required":["instructions","temperature","tone","creativity","handoffReply"],"additionalProperties":false}},"required":["purpose","id","workspaceId","name","slug","status","defaultLanguage","configuration"],"additionalProperties":false},"currentSupportAgentGranted":{"type":"boolean"}},"required":["agent"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

agent configure

  • Operation ID: agent.configure
  • Authentication: workspace_api_key
  • Workspace selection: required
  • Required API Key scope: none
  • Minimum User role: none
  • Mutates: true
  • Idempotency: supported true; required false
  • HTTP: POST /api/public/operations/agents/configure
  • MCP: configure_agent — Configure an Andy Agent. Configure the supported public fields of one Agent by exact ID.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, resource_not_found, workspace_archived, entitlement_required, idempotency_conflict, agent_selection_required

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"agentId":{"type":"string","minLength":1},"name":{"type":"string","minLength":1,"maxLength":120},"defaultLanguage":{"description":"The language the Widget and the Handoff reply use when a Visitor's own is unknown. A host page's <html lang> or a lang prop overrides it per Visitor. Copy already written in each language stays in that language.","type":"string","enum":["en","es"]},"instructions":{"anyOf":[{"type":"string","minLength":1,"maxLength":20000},{"type":"null"}]},"temperature":{"type":"number","minimum":0,"maximum":2},"tone":{"description":"How the Agent sounds: formal, balanced (default) or casual.","type":"string","enum":["formal","balanced","casual"]},"creativity":{"description":"How much answers vary: predictable, balanced (default) or creative.","type":"string","enum":["predictable","balanced","creative"]},"handoffReply":{"type":"object","properties":{"es":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}]},"en":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}]}},"additionalProperties":false,"description":"The reply a Visitor gets when the Agent hands the Conversation to a person, per language. Empty or null sends the default in that language."},"idempotencyKey":{"type":"string","minLength":8,"maxLength":200}},"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"agent":{"type":"object","properties":{"purpose":{"type":"string","enum":["sales","support","assistant"]},"id":{"type":"string","minLength":1},"workspaceId":{"type":"string","minLength":1},"name":{"type":"string","minLength":1},"slug":{"type":"string","minLength":1},"status":{"type":"string","const":"active"},"defaultLanguage":{"type":"string","enum":["en","es"]},"configuration":{"type":"object","properties":{"instructions":{"anyOf":[{"type":"string"},{"type":"null"}]},"temperature":{"type":"number"},"tone":{"type":"string","enum":["formal","balanced","casual"]},"creativity":{"type":"string","enum":["predictable","balanced","creative"]},"handoffReply":{"default":{},"description":"The Handoff reply the Owner wrote per language. A missing language sends its default.","type":"object","properties":{"es":{"type":"string"},"en":{"type":"string"}},"additionalProperties":false}},"required":["instructions","temperature","tone","creativity","handoffReply"],"additionalProperties":false}},"required":["purpose","id","workspaceId","name","slug","status","defaultLanguage","configuration"],"additionalProperties":false},"currentSupportAgentGranted":{"type":"boolean"}},"required":["agent"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

agent delete

  • Operation ID: agent.delete
  • Authentication: workspace_api_key
  • Workspace selection: required
  • Required API Key scope: none
  • Minimum User role: none
  • Mutates: true
  • Idempotency: supported true; required false
  • HTTP: POST /api/public/operations/agents/delete
  • MCP: manage_agent (action delete) — Soft-delete an Andy Agent. Soft-delete one Agent after exact-ID confirmation.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, resource_not_found, workspace_archived, confirmation_required, idempotency_conflict, agent_selection_required

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"agentId":{"type":"string","minLength":1},"confirm":{"type":"boolean"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":200}},"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"agentId":{"type":"string","minLength":1},"deleted":{"type":"boolean","const":true}},"required":["agentId","deleted"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

agent rename-slug

  • Operation ID: agent.rename_slug
  • Authentication: oauth_token
  • Workspace selection: required
  • Required API Key scope: none
  • Minimum User role: admin
  • Mutates: true
  • Idempotency: supported true; required false
  • HTTP: POST /api/public/operations/agents/rename-slug
  • MCP: manage_agent (action rename_slug) — Rename an Andy Agent's URL slug. Change one Agent's URL slug, the in //. The old URL stops working at once; nothing redirects it. The slug must be lowercase letters, numbers and hyphens, not a reserved Workspace page, and not used by another live Agent in the Workspace. Owner/Admin only.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, workspace_archived, idempotency_conflict

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"agentId":{"type":"string","minLength":1},"slug":{"type":"string","pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":200}},"required":["agentId","slug"],"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"agent":{"type":"object","properties":{"purpose":{"type":"string","enum":["sales","support","assistant"]},"id":{"type":"string","minLength":1},"workspaceId":{"type":"string","minLength":1},"name":{"type":"string","minLength":1},"slug":{"type":"string","minLength":1},"status":{"type":"string","const":"active"},"defaultLanguage":{"type":"string","enum":["en","es"]},"configuration":{"type":"object","properties":{"instructions":{"anyOf":[{"type":"string"},{"type":"null"}]},"temperature":{"type":"number"},"tone":{"type":"string","enum":["formal","balanced","casual"]},"creativity":{"type":"string","enum":["predictable","balanced","creative"]},"handoffReply":{"default":{},"description":"The Handoff reply the Owner wrote per language. A missing language sends its default.","type":"object","properties":{"es":{"type":"string"},"en":{"type":"string"}},"additionalProperties":false}},"required":["instructions","temperature","tone","creativity","handoffReply"],"additionalProperties":false}},"required":["purpose","id","workspaceId","name","slug","status","defaultLanguage","configuration"],"additionalProperties":false},"currentSupportAgentGranted":{"type":"boolean"}},"required":["agent"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

agent-website dismiss

  • Operation ID: agent_website.dismiss
  • Authentication: workspace_api_key
  • Workspace selection: required
  • Required API Key scope: none
  • Minimum User role: none
  • Mutates: true
  • Idempotency: supported true; required false
  • HTTP: POST /api/public/operations/agent-websites/dismiss
  • MCP: not exposed on MCP — Dismiss an Agent Website origin. Record one exact origin as dismissed ("Not this site") on one Agent. It appends to the Agent's dismissed Agent Website origins and never writes Agent Website.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, resource_not_found, workspace_archived, entitlement_required, idempotency_conflict, agent_selection_required

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"agentId":{"type":"string","minLength":1},"origin":{"type":"string"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":200}},"required":["origin"],"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"agentId":{"type":"string","minLength":1},"dismissedAgentWebsiteOrigins":{"maxItems":50,"type":"array","items":{"type":"string"}}},"required":["agentId","dismissedAgentWebsiteOrigins"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

api-key list

  • Operation ID: api_key.list
  • Authentication: oauth_token
  • Workspace selection: required
  • Required API Key scope: none
  • Minimum User role: none
  • Mutates: false
  • Idempotency: supported false; required false
  • HTTP: POST /api/public/operations/api-keys/list
  • MCP: not exposed on MCP — List Andy Workspace API Keys. List safe metadata for Workspace API Keys as a current Workspace Admin.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"cursor":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"pageSize":{"default":50,"type":"integer","minimum":1,"maximum":100}},"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"apiKeys":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"workspaceId":{"type":"string","minLength":1},"name":{"type":"string","minLength":1},"keyPrefix":{"type":"string","minLength":1},"preset":{"anyOf":[{"type":"string","enum":["read_only","operator"]},{"type":"null"}]},"scopes":{"type":"array","items":{"type":"string","enum":["workspace:read","agent:read","agent:write","knowledge_source:read","knowledge_source:write","public_chat:read","public_chat:write","widget:read","widget:write","support:read","content:read","support:write","content:write","content:approve","content:schedule","content:publish","content:connections"]}},"lastUsedAt":{"anyOf":[{"type":"number"},{"type":"null"}]},"createdAt":{"type":"number"},"revokedAt":{"anyOf":[{"type":"number"},{"type":"null"}]},"rotatedFromId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]}},"required":["id","workspaceId","name","keyPrefix","preset","scopes","lastUsedAt","createdAt","revokedAt","rotatedFromId"],"additionalProperties":false}}},"required":["apiKeys"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

knowledge-source list

  • Operation ID: knowledge_source.list
  • Authentication: oauth_token, workspace_api_key
  • Workspace selection: required
  • Required API Key scope: none
  • Minimum User role: none
  • Mutates: false
  • Idempotency: supported false; required false
  • HTTP: POST /api/public/operations/knowledge-sources/list
  • MCP: list_knowledge — List Andy Knowledge Sources. List current Knowledge Sources for one Agent.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, workspace_archived, entitlement_required, agent_selection_required

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"agentId":{"type":"string","minLength":1},"cursor":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"pageSize":{"default":50,"type":"integer","minimum":1,"maximum":100}},"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"knowledgeSources":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"workspaceId":{"type":"string","minLength":1},"agentId":{"type":"string","minLength":1},"key":{"type":"string","minLength":1},"title":{"type":"string","minLength":1},"provenance":{"type":"object","properties":{"kind":{"type":"string","enum":["repository","url","manual"]},"uri":{"type":"string","minLength":1,"maxLength":2000}},"required":["kind","uri"],"additionalProperties":false},"revision":{"type":"string","minLength":1},"digest":{"type":"string","pattern":"^sha256:[a-f0-9]{64}$"},"required":{"type":"boolean"},"importedAt":{"type":"number"},"state":{"type":"string","enum":["pending","processing","active","failed","replacing"]},"activeRevision":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","minLength":1},"revision":{"type":"string","minLength":1},"digest":{"type":"string","pattern":"^sha256:[a-f0-9]{64}$"},"state":{"type":"string","enum":["pending","processing","active","failed"]},"importedAt":{"type":"number"},"errorCode":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["id","revision","digest","state","importedAt","errorCode"],"additionalProperties":false},{"type":"null"}]},"pendingRevision":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","minLength":1},"revision":{"type":"string","minLength":1},"digest":{"type":"string","pattern":"^sha256:[a-f0-9]{64}$"},"state":{"type":"string","enum":["pending","processing","active","failed"]},"importedAt":{"type":"number"},"errorCode":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["id","revision","digest","state","importedAt","errorCode"],"additionalProperties":false},{"type":"null"}]}},"required":["id","workspaceId","agentId","key","title","provenance","revision","digest","required","importedAt","state","activeRevision","pendingRevision"],"additionalProperties":false}}},"required":["knowledgeSources"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

knowledge-source inspect

  • Operation ID: knowledge_source.inspect
  • Authentication: oauth_token, workspace_api_key
  • Workspace selection: required
  • Required API Key scope: none
  • Minimum User role: none
  • Mutates: false
  • Idempotency: supported false; required false
  • HTTP: POST /api/public/operations/knowledge-sources/inspect
  • MCP: list_knowledge — Inspect an Andy Knowledge Source. Inspect one Knowledge Source and its safe active and pending revision state.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, workspace_archived, entitlement_required, agent_selection_required

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"agentId":{"type":"string","minLength":1},"sourceId":{"type":"string","minLength":1}},"required":["sourceId"],"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"knowledgeSource":{"type":"object","properties":{"id":{"type":"string","minLength":1},"workspaceId":{"type":"string","minLength":1},"agentId":{"type":"string","minLength":1},"key":{"type":"string","minLength":1},"title":{"type":"string","minLength":1},"provenance":{"type":"object","properties":{"kind":{"type":"string","enum":["repository","url","manual"]},"uri":{"type":"string","minLength":1,"maxLength":2000}},"required":["kind","uri"],"additionalProperties":false},"revision":{"type":"string","minLength":1},"digest":{"type":"string","pattern":"^sha256:[a-f0-9]{64}$"},"required":{"type":"boolean"},"importedAt":{"type":"number"},"state":{"type":"string","enum":["pending","processing","active","failed","replacing"]},"activeRevision":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","minLength":1},"revision":{"type":"string","minLength":1},"digest":{"type":"string","pattern":"^sha256:[a-f0-9]{64}$"},"state":{"type":"string","enum":["pending","processing","active","failed"]},"importedAt":{"type":"number"},"errorCode":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["id","revision","digest","state","importedAt","errorCode"],"additionalProperties":false},{"type":"null"}]},"pendingRevision":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","minLength":1},"revision":{"type":"string","minLength":1},"digest":{"type":"string","pattern":"^sha256:[a-f0-9]{64}$"},"state":{"type":"string","enum":["pending","processing","active","failed"]},"importedAt":{"type":"number"},"errorCode":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["id","revision","digest","state","importedAt","errorCode"],"additionalProperties":false},{"type":"null"}]}},"required":["id","workspaceId","agentId","key","title","provenance","revision","digest","required","importedAt","state","activeRevision","pendingRevision"],"additionalProperties":false}},"required":["knowledgeSource"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

knowledge-source add

  • Operation ID: knowledge_source.add
  • Authentication: oauth_token, workspace_api_key
  • Workspace selection: required
  • Required API Key scope: none
  • Minimum User role: admin
  • Mutates: true
  • Idempotency: supported true; required false
  • HTTP: POST /api/public/operations/knowledge-sources/add
  • MCP: add_knowledge — Add an Andy Knowledge Source. Add one reviewed, content-addressed Knowledge Source to an Agent. digest is optional: omitted, Andy computes it from the exact content; a supplied digest must match.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, workspace_archived, entitlement_required, limit_exceeded, idempotency_conflict, agent_selection_required

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"key":{"type":"string","minLength":1,"maxLength":160},"title":{"type":"string","minLength":1,"maxLength":240},"provenance":{"type":"object","properties":{"kind":{"type":"string","enum":["repository","url","manual"]},"uri":{"type":"string","minLength":1,"maxLength":2000}},"required":["kind","uri"]},"revision":{"type":"string","minLength":1,"maxLength":200},"digest":{"type":"string","pattern":"^sha256:[a-f0-9]{64}$"},"required":{"default":true,"type":"boolean"},"content":{"type":"string","minLength":1},"agentId":{"type":"string","minLength":1},"idempotencyKey":{"type":"string","minLength":8,"maxLength":200}},"required":["key","title","provenance","revision","content"],"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"knowledgeSource":{"type":"object","properties":{"id":{"type":"string","minLength":1},"workspaceId":{"type":"string","minLength":1},"agentId":{"type":"string","minLength":1},"key":{"type":"string","minLength":1},"title":{"type":"string","minLength":1},"provenance":{"type":"object","properties":{"kind":{"type":"string","enum":["repository","url","manual"]},"uri":{"type":"string","minLength":1,"maxLength":2000}},"required":["kind","uri"],"additionalProperties":false},"revision":{"type":"string","minLength":1},"digest":{"type":"string","pattern":"^sha256:[a-f0-9]{64}$"},"required":{"type":"boolean"},"importedAt":{"type":"number"},"state":{"type":"string","enum":["pending","processing","active","failed","replacing"]},"activeRevision":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","minLength":1},"revision":{"type":"string","minLength":1},"digest":{"type":"string","pattern":"^sha256:[a-f0-9]{64}$"},"state":{"type":"string","enum":["pending","processing","active","failed"]},"importedAt":{"type":"number"},"errorCode":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["id","revision","digest","state","importedAt","errorCode"],"additionalProperties":false},{"type":"null"}]},"pendingRevision":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","minLength":1},"revision":{"type":"string","minLength":1},"digest":{"type":"string","pattern":"^sha256:[a-f0-9]{64}$"},"state":{"type":"string","enum":["pending","processing","active","failed"]},"importedAt":{"type":"number"},"errorCode":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["id","revision","digest","state","importedAt","errorCode"],"additionalProperties":false},{"type":"null"}]}},"required":["id","workspaceId","agentId","key","title","provenance","revision","digest","required","importedAt","state","activeRevision","pendingRevision"],"additionalProperties":false}},"required":["knowledgeSource"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

knowledge-source wait

  • Operation ID: knowledge_source.wait
  • Authentication: oauth_token, workspace_api_key
  • Workspace selection: required
  • Required API Key scope: none
  • Minimum User role: none
  • Mutates: false
  • Idempotency: supported false; required false
  • HTTP: POST /api/public/operations/knowledge-sources/wait
  • MCP: not exposed on MCP — Observe Andy Knowledge Source processing. Return current processing state and bounded retry guidance without holding the server request open.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, workspace_archived, entitlement_required, processing_failed, processing_timeout

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"agentId":{"type":"string","minLength":1},"sourceId":{"type":"string","minLength":1}},"required":["agentId","sourceId"],"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"knowledgeSource":{"type":"object","properties":{"id":{"type":"string","minLength":1},"workspaceId":{"type":"string","minLength":1},"agentId":{"type":"string","minLength":1},"key":{"type":"string","minLength":1},"title":{"type":"string","minLength":1},"provenance":{"type":"object","properties":{"kind":{"type":"string","enum":["repository","url","manual"]},"uri":{"type":"string","minLength":1,"maxLength":2000}},"required":["kind","uri"],"additionalProperties":false},"revision":{"type":"string","minLength":1},"digest":{"type":"string","pattern":"^sha256:[a-f0-9]{64}$"},"required":{"type":"boolean"},"importedAt":{"type":"number"},"state":{"type":"string","enum":["pending","processing","active","failed","replacing"]},"activeRevision":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","minLength":1},"revision":{"type":"string","minLength":1},"digest":{"type":"string","pattern":"^sha256:[a-f0-9]{64}$"},"state":{"type":"string","enum":["pending","processing","active","failed"]},"importedAt":{"type":"number"},"errorCode":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["id","revision","digest","state","importedAt","errorCode"],"additionalProperties":false},{"type":"null"}]},"pendingRevision":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","minLength":1},"revision":{"type":"string","minLength":1},"digest":{"type":"string","pattern":"^sha256:[a-f0-9]{64}$"},"state":{"type":"string","enum":["pending","processing","active","failed"]},"importedAt":{"type":"number"},"errorCode":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["id","revision","digest","state","importedAt","errorCode"],"additionalProperties":false},{"type":"null"}]}},"required":["id","workspaceId","agentId","key","title","provenance","revision","digest","required","importedAt","state","activeRevision","pendingRevision"],"additionalProperties":false},"terminal":{"type":"boolean"},"retryAfterMs":{"anyOf":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"null"}]}},"required":["knowledgeSource","terminal","retryAfterMs"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

knowledge-source reconcile

  • Operation ID: knowledge_source.reconcile
  • Authentication: workspace_api_key
  • Workspace selection: required
  • Required API Key scope: none
  • Minimum User role: none
  • Mutates: true
  • Idempotency: supported true; required false
  • HTTP: POST /api/public/operations/knowledge-sources/reconcile
  • MCP: not exposed on MCP — Reconcile Andy Knowledge Sources. Plan or apply one versioned desired-state Knowledge Source manifest; omission is non-destructive.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, workspace_archived, entitlement_required, limit_exceeded, confirmation_required, idempotency_conflict

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"agentId":{"type":"string","minLength":1},"manifest":{"type":"object","properties":{"version":{"type":"string","const":"1"},"sources":{"maxItems":100,"type":"array","items":{"anyOf":[{"type":"object","properties":{"key":{"type":"string","minLength":1,"maxLength":160},"title":{"type":"string","minLength":1,"maxLength":240},"provenance":{"type":"object","properties":{"kind":{"type":"string","enum":["repository","url","manual"]},"uri":{"type":"string","minLength":1,"maxLength":2000}},"required":["kind","uri"]},"revision":{"type":"string","minLength":1,"maxLength":200},"digest":{"type":"string","pattern":"^sha256:[a-f0-9]{64}$"},"required":{"default":true,"type":"boolean"},"content":{"type":"string","minLength":1},"tombstone":{"type":"boolean","const":false}},"required":["key","title","provenance","revision","digest","content"]},{"type":"object","properties":{"key":{"type":"string","minLength":1,"maxLength":160},"tombstone":{"type":"boolean","const":true},"confirm":{"type":"string","minLength":1}},"required":["key","tombstone"],"additionalProperties":false}]}}},"required":["version","sources"],"additionalProperties":false},"dryRun":{"default":true,"type":"boolean"},"prune":{"default":false,"type":"boolean"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":200}},"required":["agentId","manifest"],"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"runId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"status":{"type":"string","enum":["planned","applying","completed","failed"]},"dryRun":{"type":"boolean"},"checkpoint":{"type":"integer","minimum":0,"maximum":9007199254740991},"errorCode":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"plan":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string","minLength":1},"sourceId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"action":{"type":"string","enum":["add","noop","replace","delete"]}},"required":["key","sourceId","action"],"additionalProperties":false}},"knowledgeSources":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"workspaceId":{"type":"string","minLength":1},"agentId":{"type":"string","minLength":1},"key":{"type":"string","minLength":1},"title":{"type":"string","minLength":1},"provenance":{"type":"object","properties":{"kind":{"type":"string","enum":["repository","url","manual"]},"uri":{"type":"string","minLength":1,"maxLength":2000}},"required":["kind","uri"],"additionalProperties":false},"revision":{"type":"string","minLength":1},"digest":{"type":"string","pattern":"^sha256:[a-f0-9]{64}$"},"required":{"type":"boolean"},"importedAt":{"type":"number"},"state":{"type":"string","enum":["pending","processing","active","failed","replacing"]},"activeRevision":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","minLength":1},"revision":{"type":"string","minLength":1},"digest":{"type":"string","pattern":"^sha256:[a-f0-9]{64}$"},"state":{"type":"string","enum":["pending","processing","active","failed"]},"importedAt":{"type":"number"},"errorCode":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["id","revision","digest","state","importedAt","errorCode"],"additionalProperties":false},{"type":"null"}]},"pendingRevision":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","minLength":1},"revision":{"type":"string","minLength":1},"digest":{"type":"string","pattern":"^sha256:[a-f0-9]{64}$"},"state":{"type":"string","enum":["pending","processing","active","failed"]},"importedAt":{"type":"number"},"errorCode":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["id","revision","digest","state","importedAt","errorCode"],"additionalProperties":false},{"type":"null"}]}},"required":["id","workspaceId","agentId","key","title","provenance","revision","digest","required","importedAt","state","activeRevision","pendingRevision"],"additionalProperties":false}}},"required":["runId","status","dryRun","checkpoint","errorCode","plan","knowledgeSources"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

knowledge-source replace

  • Operation ID: knowledge_source.replace
  • Authentication: oauth_token, workspace_api_key
  • Workspace selection: required
  • Required API Key scope: none
  • Minimum User role: admin
  • Mutates: true
  • Idempotency: supported true; required false
  • HTTP: POST /api/public/operations/knowledge-sources/replace
  • MCP: replace_knowledge — Replace an Andy Knowledge Source. Privately process a replacement revision while retaining last-good Knowledge. digest is optional: omitted, Andy computes it from the exact content; a supplied digest must match.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, workspace_archived, entitlement_required, limit_exceeded, idempotency_conflict, agent_selection_required

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"title":{"type":"string","minLength":1,"maxLength":240},"provenance":{"type":"object","properties":{"kind":{"type":"string","enum":["repository","url","manual"]},"uri":{"type":"string","minLength":1,"maxLength":2000}},"required":["kind","uri"]},"revision":{"type":"string","minLength":1,"maxLength":200},"digest":{"type":"string","pattern":"^sha256:[a-f0-9]{64}$"},"required":{"default":true,"type":"boolean"},"content":{"type":"string","minLength":1},"agentId":{"type":"string","minLength":1},"sourceId":{"type":"string","minLength":1},"idempotencyKey":{"type":"string","minLength":8,"maxLength":200}},"required":["title","provenance","revision","content","sourceId"],"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"knowledgeSource":{"type":"object","properties":{"id":{"type":"string","minLength":1},"workspaceId":{"type":"string","minLength":1},"agentId":{"type":"string","minLength":1},"key":{"type":"string","minLength":1},"title":{"type":"string","minLength":1},"provenance":{"type":"object","properties":{"kind":{"type":"string","enum":["repository","url","manual"]},"uri":{"type":"string","minLength":1,"maxLength":2000}},"required":["kind","uri"],"additionalProperties":false},"revision":{"type":"string","minLength":1},"digest":{"type":"string","pattern":"^sha256:[a-f0-9]{64}$"},"required":{"type":"boolean"},"importedAt":{"type":"number"},"state":{"type":"string","enum":["pending","processing","active","failed","replacing"]},"activeRevision":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","minLength":1},"revision":{"type":"string","minLength":1},"digest":{"type":"string","pattern":"^sha256:[a-f0-9]{64}$"},"state":{"type":"string","enum":["pending","processing","active","failed"]},"importedAt":{"type":"number"},"errorCode":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["id","revision","digest","state","importedAt","errorCode"],"additionalProperties":false},{"type":"null"}]},"pendingRevision":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","minLength":1},"revision":{"type":"string","minLength":1},"digest":{"type":"string","pattern":"^sha256:[a-f0-9]{64}$"},"state":{"type":"string","enum":["pending","processing","active","failed"]},"importedAt":{"type":"number"},"errorCode":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["id","revision","digest","state","importedAt","errorCode"],"additionalProperties":false},{"type":"null"}]}},"required":["id","workspaceId","agentId","key","title","provenance","revision","digest","required","importedAt","state","activeRevision","pendingRevision"],"additionalProperties":false}},"required":["knowledgeSource"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

knowledge-source delete

  • Operation ID: knowledge_source.delete
  • Authentication: oauth_token, workspace_api_key
  • Workspace selection: required
  • Required API Key scope: none
  • Minimum User role: admin
  • Mutates: true
  • Idempotency: supported true; required false
  • HTTP: POST /api/public/operations/knowledge-sources/delete
  • MCP: delete_knowledge — Delete an Andy Knowledge Source. Delete one Knowledge Source only with explicit tombstone and prune intent plus exact-ID confirmation.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, workspace_archived, entitlement_required, confirmation_required, idempotency_conflict, agent_selection_required

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"agentId":{"type":"string","minLength":1},"sourceId":{"type":"string","minLength":1},"tombstone":{"type":"boolean"},"prune":{"type":"boolean"},"confirm":{"type":"string","minLength":1},"idempotencyKey":{"type":"string","minLength":8,"maxLength":200}},"required":["sourceId"],"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"sourceId":{"type":"string","minLength":1},"deleted":{"type":"boolean","const":true}},"required":["sourceId","deleted"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

public-chat inspect

  • Operation ID: public_chat.inspect
  • Authentication: oauth_token, workspace_api_key
  • Workspace selection: required
  • Required API Key scope: none
  • Minimum User role: none
  • Mutates: false
  • Idempotency: supported false; required false
  • HTTP: POST /api/public/operations/public-chats/inspect
  • MCP: not exposed on MCP — Inspect Andy Public Chat. Inspect Public Chat state and its stable URL for one Agent.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, workspace_archived, entitlement_required

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"agentId":{"type":"string","minLength":1}},"required":["agentId"],"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"publicChat":{"type":"object","properties":{"agentId":{"type":"string","minLength":1},"enabled":{"type":"boolean"},"url":{"type":"string","format":"uri"},"website":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["agentId","enabled","url","website"],"additionalProperties":false}},"required":["publicChat"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

public-chat enable

  • Operation ID: public_chat.enable
  • Authentication: workspace_api_key
  • Workspace selection: required
  • Required API Key scope: none
  • Minimum User role: none
  • Mutates: true
  • Idempotency: supported true; required false
  • HTTP: POST /api/public/operations/public-chats/enable
  • MCP: not exposed on MCP — Enable Andy Public Chat. Enable Public Chat for one exactly selected Agent.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, workspace_archived, entitlement_required, processing_failed, idempotency_conflict

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"agentId":{"type":"string","minLength":1},"website":{"anyOf":[{"type":"string"},{"type":"null"}]},"idempotencyKey":{"type":"string","minLength":8,"maxLength":200}},"required":["agentId"],"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"publicChat":{"type":"object","properties":{"agentId":{"type":"string","minLength":1},"enabled":{"type":"boolean"},"url":{"type":"string","format":"uri"},"website":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["agentId","enabled","url","website"],"additionalProperties":false}},"required":["publicChat"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

public-chat disable

  • Operation ID: public_chat.disable
  • Authentication: workspace_api_key
  • Workspace selection: required
  • Required API Key scope: none
  • Minimum User role: none
  • Mutates: true
  • Idempotency: supported true; required false
  • HTTP: POST /api/public/operations/public-chats/disable
  • MCP: not exposed on MCP — Disable Andy Public Chat. Disable Public Chat after exact Agent-ID confirmation.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, workspace_archived, entitlement_required, confirmation_required, idempotency_conflict

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"agentId":{"type":"string","minLength":1},"confirm":{"type":"string","minLength":1},"idempotencyKey":{"type":"string","minLength":8,"maxLength":200}},"required":["agentId"],"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"publicChat":{"type":"object","properties":{"agentId":{"type":"string","minLength":1},"enabled":{"type":"boolean"},"url":{"type":"string","format":"uri"},"website":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["agentId","enabled","url","website"],"additionalProperties":false}},"required":["publicChat"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

public-chat url

  • Operation ID: public_chat.url
  • Authentication: oauth_token, workspace_api_key
  • Workspace selection: required
  • Required API Key scope: none
  • Minimum User role: none
  • Mutates: false
  • Idempotency: supported false; required false
  • HTTP: POST /api/public/operations/public-chats/url
  • MCP: not exposed on MCP — Resolve Andy Public Chat URL. Return the stable Public Chat URL for one Agent.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, workspace_archived, entitlement_required

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"agentId":{"type":"string","minLength":1}},"required":["agentId"],"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"agentId":{"type":"string","minLength":1},"url":{"type":"string","format":"uri"}},"required":["agentId","url"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

widget inspect

  • Operation ID: widget.inspect
  • Authentication: oauth_token, workspace_api_key
  • Workspace selection: required
  • Required API Key scope: none
  • Minimum User role: none
  • Mutates: false
  • Idempotency: supported false; required false
  • HTTP: POST /api/public/operations/widgets/inspect
  • MCP: manage_widget (action inspect) — Inspect Andy Widget configuration. Inspect the effective canonical Widget configuration for one Agent.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, workspace_archived, entitlement_required

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"agentId":{"type":"string","minLength":1}},"required":["agentId"],"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"agentId":{"type":"string","minLength":1},"configuration":{"type":"object","properties":{"allowedOrigins":{"maxItems":50,"type":"array","items":{"type":"string"}},"legacyAllowedDomains":{"type":"array","items":{"type":"string","minLength":1}},"legacyAllowsAnyOrigin":{"type":"boolean"},"showBranding":{"type":"boolean"},"defaultLanguage":{"type":"string","enum":["en","es"]},"website":{"anyOf":[{"type":"string"},{"type":"null"}]},"appearance":{"type":"object","properties":{"welcomeMessage":{"type":"string"},"brandColor":{"type":"string","pattern":"^#[0-9A-Fa-f]{6}$"},"theme":{"type":"string","enum":["light","dark","auto"]},"orientation":{"type":"string","enum":["left","right"]},"logoUrl":{"type":"string"},"bubbleStyle":{"type":"string","enum":["icon","pill"]},"bubbleLabel":{"anyOf":[{"type":"string"},{"type":"null"}]},"useBrandColor":{"type":"boolean"}},"required":["welcomeMessage","brandColor","theme","orientation","logoUrl","bubbleStyle","bubbleLabel","useBrandColor"],"additionalProperties":false},"behavior":{"type":"object","properties":{"welcomePopup":{"type":"object","properties":{"enabled":{"type":"boolean"},"seconds":{"type":"number","minimum":0,"maximum":30},"message":{"type":"string"}},"required":["enabled","seconds","message"],"additionalProperties":false},"leadCapture":{"type":"object","properties":{"enabled":{"type":"boolean"},"contactEmail":{"anyOf":[{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},{"type":"string","const":""}]},"calendarLink":{"anyOf":[{"type":"string","format":"uri"},{"type":"string","const":""}]},"phoneNumber":{"type":"string"},"customMessage":{"type":"string"},"emailNotificationEnabled":{"type":"boolean"}},"required":["enabled","contactEmail","calendarLink","phoneNumber","customMessage","emailNotificationEnabled"],"additionalProperties":false},"predefinedQuestions":{"maxItems":4,"type":"array","items":{"type":"object","properties":{"question":{"type":"string","minLength":1},"order":{"type":"number"}},"required":["question"],"additionalProperties":false}}},"required":["welcomePopup","leadCapture","predefinedQuestions"],"additionalProperties":false},"widget":{"type":"object","properties":{"schemaVersion":{"type":"number","const":2},"identity":{"type":"object","properties":{"name":{"type":"string"},"avatarUrl":{"type":"string"}},"required":["name"],"additionalProperties":false},"conversation":{"type":"object","properties":{"greeting":{"type":"object","properties":{"es":{"type":"string"},"en":{"type":"string"}},"additionalProperties":false},"starters":{"type":"object","properties":{"es":{"type":"array","items":{"type":"string"}},"en":{"type":"array","items":{"type":"string"}}},"additionalProperties":false},"footerNote":{"type":"object","properties":{"es":{"type":"string"},"en":{"type":"string"}},"additionalProperties":false},"proactive":{"type":"object","properties":{"messages":{"type":"object","properties":{"es":{"type":"array","items":{"type":"string"}},"en":{"type":"array","items":{"type":"string"}}},"additionalProperties":false},"delaySeconds":{"type":"number"},"mobile":{"type":"boolean"}},"required":["messages","delaySeconds","mobile"],"additionalProperties":false}},"required":["greeting","starters"],"additionalProperties":false},"look":{"type":"object","properties":{"accent":{"type":"string"},"theme":{"type":"string","enum":["light","dark","auto"]},"header":{"type":"string","enum":["neutral","brand"]},"launcher":{"type":"object","properties":{"style":{"type":"string","enum":["icon","pill"]},"icon":{"type":"string","enum":["andy","logo"]},"label":{"type":"object","properties":{"es":{"type":"string"},"en":{"type":"string"}},"additionalProperties":false},"position":{"type":"string","enum":["left","right"]},"offsetY":{"type":"number"}},"required":["style","icon","position","offsetY"],"additionalProperties":false},"branding":{"type":"boolean"}},"required":["accent","theme","header","launcher","branding"],"additionalProperties":false},"defaultLang":{"type":"string","enum":["es","en"]}},"required":["schemaVersion","identity","conversation","look","defaultLang"],"additionalProperties":false,"description":"What the 3.x Widget shows, with the look's defaults resolved. Copy the Owner never wrote in a language is absent: the Widget shows the Agent's own copy, else its localized default. Copy the Owner cleared in a language is the default (Greeting, launcher label) or empty (\"\" or []), which shows nothing. Read-only: change it with a `configuration.widget` patch, which takes per-language copy and one Proactive Message string per language, and stores every value it is sent."}},"required":["allowedOrigins","legacyAllowedDomains","legacyAllowsAnyOrigin","showBranding","defaultLanguage","website","appearance","behavior","widget"],"additionalProperties":false}},"required":["agentId","configuration"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

widget configure

  • Operation ID: widget.configure
  • Authentication: oauth_token, workspace_api_key
  • Workspace selection: required
  • Required API Key scope: none
  • Minimum User role: admin
  • Mutates: true
  • Idempotency: supported true; required false
  • HTTP: POST /api/public/operations/widgets/configure
  • MCP: manage_widget (action configure) — Configure Andy Widget. Configure exact allowed origins and the Agent-owned Widget fields. widget changes the v2 Widget config (per-language copy, look and Launcher) and writes only the fields given.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, workspace_archived, entitlement_required, processing_failed, confirmation_required, idempotency_conflict

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"agentId":{"type":"string","minLength":1},"configuration":{"type":"object","properties":{"allowedOrigins":{"maxItems":50,"type":"array","items":{"type":"string"}},"confirmRemovedOrigins":{"type":"array","items":{"type":"string","minLength":1}},"showBranding":{"type":"boolean"},"defaultLanguage":{"description":"The Agent's default language, as in agent.configure. Copy already written in each language stays in that language.","type":"string","enum":["en","es"]},"website":{"anyOf":[{"type":"string"},{"type":"null"}]},"appearance":{"type":"object","properties":{"welcomeMessage":{"type":"string","maxLength":500},"brandColor":{"type":"string","pattern":"^#[0-9A-Fa-f]{6}$"},"theme":{"type":"string","enum":["light","dark","auto"]},"orientation":{"type":"string","enum":["left","right"]},"logoUrl":{"type":"string"},"bubbleStyle":{"type":"string","enum":["icon","pill"]},"bubbleLabel":{"anyOf":[{"type":"string"},{"type":"null"}]},"useBrandColor":{"type":"boolean"}}},"behavior":{"type":"object","properties":{"welcomePopup":{"type":"object","properties":{"enabled":{"type":"boolean"},"seconds":{"type":"number","minimum":0,"maximum":30},"message":{"type":"string"}}},"leadCapture":{"type":"object","properties":{"enabled":{"type":"boolean"},"contactEmail":{"anyOf":[{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},{"type":"string","const":""}]},"calendarLink":{"anyOf":[{"type":"string","format":"uri"},{"type":"string","const":""}]},"phoneNumber":{"type":"string"},"customMessage":{"type":"string"},"emailNotificationEnabled":{"type":"boolean"}}},"predefinedQuestions":{"maxItems":4,"type":"array","items":{"type":"object","properties":{"question":{"type":"string","minLength":1,"maxLength":80},"order":{"type":"number"}},"required":["question"]}}},"additionalProperties":false},"widget":{"type":"object","properties":{"identity":{"type":"object","properties":{"name":{"anyOf":[{"type":"string","maxLength":40},{"type":"null"}],"description":"Display name, the panel's title. Empty shows the Agent's name."}},"additionalProperties":false},"conversation":{"type":"object","properties":{"greeting":{"type":"object","properties":{"es":{"type":"string","maxLength":500},"en":{"type":"string","maxLength":500}},"additionalProperties":false},"starters":{"type":"object","properties":{"es":{"maxItems":4,"type":"array","items":{"type":"string","maxLength":80}},"en":{"maxItems":4,"type":"array","items":{"type":"string","maxLength":80}}},"additionalProperties":false},"footerNote":{"type":"object","properties":{"es":{"type":"string","maxLength":120},"en":{"type":"string","maxLength":120}},"additionalProperties":false},"proactive":{"type":"object","properties":{"enabled":{"type":"boolean"},"message":{"type":"object","properties":{"es":{"type":"string"},"en":{"type":"string"}},"additionalProperties":false},"delaySeconds":{"anyOf":[{"type":"number","minimum":0,"maximum":30},{"type":"null"}]},"mobile":{"type":"boolean"}},"additionalProperties":false}},"additionalProperties":false},"look":{"type":"object","properties":{"accent":{"anyOf":[{"type":"string","pattern":"^#[0-9A-Fa-f]{6}$"},{"type":"null"}]},"theme":{"anyOf":[{"type":"string","enum":["light","dark","auto"]},{"type":"null"}]},"header":{"anyOf":[{"type":"string","enum":["neutral","brand"]},{"type":"null"}]},"launcher":{"type":"object","properties":{"style":{"anyOf":[{"type":"string","enum":["icon","pill"]},{"type":"null"}]},"icon":{"anyOf":[{"type":"string","enum":["andy","logo"]},{"type":"null"}]},"label":{"type":"object","properties":{"es":{"type":"string","maxLength":30},"en":{"type":"string","maxLength":30}},"additionalProperties":false},"position":{"anyOf":[{"type":"string","enum":["left","right"]},{"type":"null"}]},"offsetY":{"anyOf":[{"type":"integer","minimum":0,"maximum":160},{"type":"null"}]}},"additionalProperties":false},"branding":{"type":"boolean","description":"\"Powered by Andy\"; hiding it needs a plan with custom branding."}},"additionalProperties":false}},"additionalProperties":false},"logoMediaAssetId":{"description":"A PNG or JPEG Media Asset id from manage_media, up to 2097152 bytes, becomes the Agent's logo; null removes it. A Support Agent's Widget never shows a logo.","anyOf":[{"type":"string","minLength":1},{"type":"null"}]}},"additionalProperties":false},"idempotencyKey":{"type":"string","minLength":8,"maxLength":200}},"required":["agentId","configuration"],"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"agentId":{"type":"string","minLength":1},"configuration":{"type":"object","properties":{"allowedOrigins":{"maxItems":50,"type":"array","items":{"type":"string"}},"legacyAllowedDomains":{"type":"array","items":{"type":"string","minLength":1}},"legacyAllowsAnyOrigin":{"type":"boolean"},"showBranding":{"type":"boolean"},"defaultLanguage":{"type":"string","enum":["en","es"]},"website":{"anyOf":[{"type":"string"},{"type":"null"}]},"appearance":{"type":"object","properties":{"welcomeMessage":{"type":"string"},"brandColor":{"type":"string","pattern":"^#[0-9A-Fa-f]{6}$"},"theme":{"type":"string","enum":["light","dark","auto"]},"orientation":{"type":"string","enum":["left","right"]},"logoUrl":{"type":"string"},"bubbleStyle":{"type":"string","enum":["icon","pill"]},"bubbleLabel":{"anyOf":[{"type":"string"},{"type":"null"}]},"useBrandColor":{"type":"boolean"}},"required":["welcomeMessage","brandColor","theme","orientation","logoUrl","bubbleStyle","bubbleLabel","useBrandColor"],"additionalProperties":false},"behavior":{"type":"object","properties":{"welcomePopup":{"type":"object","properties":{"enabled":{"type":"boolean"},"seconds":{"type":"number","minimum":0,"maximum":30},"message":{"type":"string"}},"required":["enabled","seconds","message"],"additionalProperties":false},"leadCapture":{"type":"object","properties":{"enabled":{"type":"boolean"},"contactEmail":{"anyOf":[{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},{"type":"string","const":""}]},"calendarLink":{"anyOf":[{"type":"string","format":"uri"},{"type":"string","const":""}]},"phoneNumber":{"type":"string"},"customMessage":{"type":"string"},"emailNotificationEnabled":{"type":"boolean"}},"required":["enabled","contactEmail","calendarLink","phoneNumber","customMessage","emailNotificationEnabled"],"additionalProperties":false},"predefinedQuestions":{"maxItems":4,"type":"array","items":{"type":"object","properties":{"question":{"type":"string","minLength":1},"order":{"type":"number"}},"required":["question"],"additionalProperties":false}}},"required":["welcomePopup","leadCapture","predefinedQuestions"],"additionalProperties":false},"widget":{"type":"object","properties":{"schemaVersion":{"type":"number","const":2},"identity":{"type":"object","properties":{"name":{"type":"string"},"avatarUrl":{"type":"string"}},"required":["name"],"additionalProperties":false},"conversation":{"type":"object","properties":{"greeting":{"type":"object","properties":{"es":{"type":"string"},"en":{"type":"string"}},"additionalProperties":false},"starters":{"type":"object","properties":{"es":{"type":"array","items":{"type":"string"}},"en":{"type":"array","items":{"type":"string"}}},"additionalProperties":false},"footerNote":{"type":"object","properties":{"es":{"type":"string"},"en":{"type":"string"}},"additionalProperties":false},"proactive":{"type":"object","properties":{"messages":{"type":"object","properties":{"es":{"type":"array","items":{"type":"string"}},"en":{"type":"array","items":{"type":"string"}}},"additionalProperties":false},"delaySeconds":{"type":"number"},"mobile":{"type":"boolean"}},"required":["messages","delaySeconds","mobile"],"additionalProperties":false}},"required":["greeting","starters"],"additionalProperties":false},"look":{"type":"object","properties":{"accent":{"type":"string"},"theme":{"type":"string","enum":["light","dark","auto"]},"header":{"type":"string","enum":["neutral","brand"]},"launcher":{"type":"object","properties":{"style":{"type":"string","enum":["icon","pill"]},"icon":{"type":"string","enum":["andy","logo"]},"label":{"type":"object","properties":{"es":{"type":"string"},"en":{"type":"string"}},"additionalProperties":false},"position":{"type":"string","enum":["left","right"]},"offsetY":{"type":"number"}},"required":["style","icon","position","offsetY"],"additionalProperties":false},"branding":{"type":"boolean"}},"required":["accent","theme","header","launcher","branding"],"additionalProperties":false},"defaultLang":{"type":"string","enum":["es","en"]}},"required":["schemaVersion","identity","conversation","look","defaultLang"],"additionalProperties":false,"description":"What the 3.x Widget shows, with the look's defaults resolved. Copy the Owner never wrote in a language is absent: the Widget shows the Agent's own copy, else its localized default. Copy the Owner cleared in a language is the default (Greeting, launcher label) or empty (\"\" or []), which shows nothing. Read-only: change it with a `configuration.widget` patch, which takes per-language copy and one Proactive Message string per language, and stores every value it is sent."}},"required":["allowedOrigins","legacyAllowedDomains","legacyAllowsAnyOrigin","showBranding","defaultLanguage","website","appearance","behavior","widget"],"additionalProperties":false}},"required":["agentId","configuration"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

widget manifest

  • Operation ID: widget.manifest
  • Authentication: oauth_token, workspace_api_key
  • Workspace selection: required
  • Required API Key scope: none
  • Minimum User role: none
  • Mutates: false
  • Idempotency: supported false; required false
  • HTTP: POST /api/public/operations/widgets/manifest
  • MCP: not exposed on MCP — Resolve Andy Widget integration manifest. Return the Workspace, Agent, pinned package contract, effective configuration, and Public Chat state without secrets.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, workspace_archived, entitlement_required

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"agentId":{"type":"string","minLength":1}},"required":["agentId"],"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"workspace":{"type":"object","properties":{"id":{"type":"string","minLength":1},"slug":{"type":"string","minLength":1}},"required":["id","slug"],"additionalProperties":false},"agent":{"type":"object","properties":{"id":{"type":"string","minLength":1},"slug":{"type":"string","minLength":1}},"required":["id","slug"],"additionalProperties":false},"package":{"type":"object","properties":{"packageName":{"type":"string","const":"andy-widget-react"},"version":{"type":"string","const":"2.3.2"},"component":{"type":"string","const":"AndyChat"},"agentIdProp":{"type":"string","const":"embedId"}},"required":["packageName","version","component","agentIdProp"],"additionalProperties":false},"configuration":{"type":"object","properties":{"allowedOrigins":{"maxItems":50,"type":"array","items":{"type":"string"}},"legacyAllowedDomains":{"type":"array","items":{"type":"string","minLength":1}},"legacyAllowsAnyOrigin":{"type":"boolean"},"showBranding":{"type":"boolean"},"defaultLanguage":{"type":"string","enum":["en","es"]},"website":{"anyOf":[{"type":"string"},{"type":"null"}]},"appearance":{"type":"object","properties":{"welcomeMessage":{"type":"string"},"brandColor":{"type":"string","pattern":"^#[0-9A-Fa-f]{6}$"},"theme":{"type":"string","enum":["light","dark","auto"]},"orientation":{"type":"string","enum":["left","right"]},"logoUrl":{"type":"string"},"bubbleStyle":{"type":"string","enum":["icon","pill"]},"bubbleLabel":{"anyOf":[{"type":"string"},{"type":"null"}]},"useBrandColor":{"type":"boolean"}},"required":["welcomeMessage","brandColor","theme","orientation","logoUrl","bubbleStyle","bubbleLabel","useBrandColor"],"additionalProperties":false},"behavior":{"type":"object","properties":{"welcomePopup":{"type":"object","properties":{"enabled":{"type":"boolean"},"seconds":{"type":"number","minimum":0,"maximum":30},"message":{"type":"string"}},"required":["enabled","seconds","message"],"additionalProperties":false},"leadCapture":{"type":"object","properties":{"enabled":{"type":"boolean"},"contactEmail":{"anyOf":[{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},{"type":"string","const":""}]},"calendarLink":{"anyOf":[{"type":"string","format":"uri"},{"type":"string","const":""}]},"phoneNumber":{"type":"string"},"customMessage":{"type":"string"},"emailNotificationEnabled":{"type":"boolean"}},"required":["enabled","contactEmail","calendarLink","phoneNumber","customMessage","emailNotificationEnabled"],"additionalProperties":false},"predefinedQuestions":{"maxItems":4,"type":"array","items":{"type":"object","properties":{"question":{"type":"string","minLength":1},"order":{"type":"number"}},"required":["question"],"additionalProperties":false}}},"required":["welcomePopup","leadCapture","predefinedQuestions"],"additionalProperties":false},"widget":{"type":"object","properties":{"schemaVersion":{"type":"number","const":2},"identity":{"type":"object","properties":{"name":{"type":"string"},"avatarUrl":{"type":"string"}},"required":["name"],"additionalProperties":false},"conversation":{"type":"object","properties":{"greeting":{"type":"object","properties":{"es":{"type":"string"},"en":{"type":"string"}},"additionalProperties":false},"starters":{"type":"object","properties":{"es":{"type":"array","items":{"type":"string"}},"en":{"type":"array","items":{"type":"string"}}},"additionalProperties":false},"footerNote":{"type":"object","properties":{"es":{"type":"string"},"en":{"type":"string"}},"additionalProperties":false},"proactive":{"type":"object","properties":{"messages":{"type":"object","properties":{"es":{"type":"array","items":{"type":"string"}},"en":{"type":"array","items":{"type":"string"}}},"additionalProperties":false},"delaySeconds":{"type":"number"},"mobile":{"type":"boolean"}},"required":["messages","delaySeconds","mobile"],"additionalProperties":false}},"required":["greeting","starters"],"additionalProperties":false},"look":{"type":"object","properties":{"accent":{"type":"string"},"theme":{"type":"string","enum":["light","dark","auto"]},"header":{"type":"string","enum":["neutral","brand"]},"launcher":{"type":"object","properties":{"style":{"type":"string","enum":["icon","pill"]},"icon":{"type":"string","enum":["andy","logo"]},"label":{"type":"object","properties":{"es":{"type":"string"},"en":{"type":"string"}},"additionalProperties":false},"position":{"type":"string","enum":["left","right"]},"offsetY":{"type":"number"}},"required":["style","icon","position","offsetY"],"additionalProperties":false},"branding":{"type":"boolean"}},"required":["accent","theme","header","launcher","branding"],"additionalProperties":false},"defaultLang":{"type":"string","enum":["es","en"]}},"required":["schemaVersion","identity","conversation","look","defaultLang"],"additionalProperties":false,"description":"What the 3.x Widget shows, with the look's defaults resolved. Copy the Owner never wrote in a language is absent: the Widget shows the Agent's own copy, else its localized default. Copy the Owner cleared in a language is the default (Greeting, launcher label) or empty (\"\" or []), which shows nothing. Read-only: change it with a `configuration.widget` patch, which takes per-language copy and one Proactive Message string per language, and stores every value it is sent."}},"required":["allowedOrigins","legacyAllowedDomains","legacyAllowsAnyOrigin","showBranding","defaultLanguage","website","appearance","behavior","widget"],"additionalProperties":false},"publicChat":{"type":"object","properties":{"agentId":{"type":"string","minLength":1},"enabled":{"type":"boolean"},"url":{"type":"string","format":"uri"},"website":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["agentId","enabled","url","website"],"additionalProperties":false}},"required":["workspace","agent","package","configuration","publicChat"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

widget verify

  • Operation ID: widget.verify
  • Authentication: oauth_token, workspace_api_key
  • Workspace selection: required
  • Required API Key scope: none
  • Minimum User role: none
  • Mutates: false
  • Idempotency: supported false; required false
  • HTTP: POST /api/public/operations/widgets/verify
  • MCP: not exposed on MCP — Verify an Andy Widget integration. Verify Agent/configuration/origin/Knowledge/Public Chat and execute one real public answer, consuming one conversation and quota unit.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, workspace_archived, processing_failed

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"agentId":{"type":"string","minLength":1},"origin":{"type":"string"},"question":{"default":"What can you help me with?","type":"string","minLength":1,"maxLength":2000}},"required":["agentId","origin"],"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"agentId":{"type":"string","minLength":1},"origin":{"type":"string"},"configuration":{"type":"object","properties":{"allowedOrigins":{"maxItems":50,"type":"array","items":{"type":"string"}},"legacyAllowedDomains":{"type":"array","items":{"type":"string","minLength":1}},"legacyAllowsAnyOrigin":{"type":"boolean"},"showBranding":{"type":"boolean"},"defaultLanguage":{"type":"string","enum":["en","es"]},"website":{"anyOf":[{"type":"string"},{"type":"null"}]},"appearance":{"type":"object","properties":{"welcomeMessage":{"type":"string"},"brandColor":{"type":"string","pattern":"^#[0-9A-Fa-f]{6}$"},"theme":{"type":"string","enum":["light","dark","auto"]},"orientation":{"type":"string","enum":["left","right"]},"logoUrl":{"type":"string"},"bubbleStyle":{"type":"string","enum":["icon","pill"]},"bubbleLabel":{"anyOf":[{"type":"string"},{"type":"null"}]},"useBrandColor":{"type":"boolean"}},"required":["welcomeMessage","brandColor","theme","orientation","logoUrl","bubbleStyle","bubbleLabel","useBrandColor"],"additionalProperties":false},"behavior":{"type":"object","properties":{"welcomePopup":{"type":"object","properties":{"enabled":{"type":"boolean"},"seconds":{"type":"number","minimum":0,"maximum":30},"message":{"type":"string"}},"required":["enabled","seconds","message"],"additionalProperties":false},"leadCapture":{"type":"object","properties":{"enabled":{"type":"boolean"},"contactEmail":{"anyOf":[{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},{"type":"string","const":""}]},"calendarLink":{"anyOf":[{"type":"string","format":"uri"},{"type":"string","const":""}]},"phoneNumber":{"type":"string"},"customMessage":{"type":"string"},"emailNotificationEnabled":{"type":"boolean"}},"required":["enabled","contactEmail","calendarLink","phoneNumber","customMessage","emailNotificationEnabled"],"additionalProperties":false},"predefinedQuestions":{"maxItems":4,"type":"array","items":{"type":"object","properties":{"question":{"type":"string","minLength":1},"order":{"type":"number"}},"required":["question"],"additionalProperties":false}}},"required":["welcomePopup","leadCapture","predefinedQuestions"],"additionalProperties":false},"widget":{"type":"object","properties":{"schemaVersion":{"type":"number","const":2},"identity":{"type":"object","properties":{"name":{"type":"string"},"avatarUrl":{"type":"string"}},"required":["name"],"additionalProperties":false},"conversation":{"type":"object","properties":{"greeting":{"type":"object","properties":{"es":{"type":"string"},"en":{"type":"string"}},"additionalProperties":false},"starters":{"type":"object","properties":{"es":{"type":"array","items":{"type":"string"}},"en":{"type":"array","items":{"type":"string"}}},"additionalProperties":false},"footerNote":{"type":"object","properties":{"es":{"type":"string"},"en":{"type":"string"}},"additionalProperties":false},"proactive":{"type":"object","properties":{"messages":{"type":"object","properties":{"es":{"type":"array","items":{"type":"string"}},"en":{"type":"array","items":{"type":"string"}}},"additionalProperties":false},"delaySeconds":{"type":"number"},"mobile":{"type":"boolean"}},"required":["messages","delaySeconds","mobile"],"additionalProperties":false}},"required":["greeting","starters"],"additionalProperties":false},"look":{"type":"object","properties":{"accent":{"type":"string"},"theme":{"type":"string","enum":["light","dark","auto"]},"header":{"type":"string","enum":["neutral","brand"]},"launcher":{"type":"object","properties":{"style":{"type":"string","enum":["icon","pill"]},"icon":{"type":"string","enum":["andy","logo"]},"label":{"type":"object","properties":{"es":{"type":"string"},"en":{"type":"string"}},"additionalProperties":false},"position":{"type":"string","enum":["left","right"]},"offsetY":{"type":"number"}},"required":["style","icon","position","offsetY"],"additionalProperties":false},"branding":{"type":"boolean"}},"required":["accent","theme","header","launcher","branding"],"additionalProperties":false},"defaultLang":{"type":"string","enum":["es","en"]}},"required":["schemaVersion","identity","conversation","look","defaultLang"],"additionalProperties":false,"description":"What the 3.x Widget shows, with the look's defaults resolved. Copy the Owner never wrote in a language is absent: the Widget shows the Agent's own copy, else its localized default. Copy the Owner cleared in a language is the default (Greeting, launcher label) or empty (\"\" or []), which shows nothing. Read-only: change it with a `configuration.widget` patch, which takes per-language copy and one Proactive Message string per language, and stores every value it is sent."}},"required":["allowedOrigins","legacyAllowedDomains","legacyAllowsAnyOrigin","showBranding","defaultLanguage","website","appearance","behavior","widget"],"additionalProperties":false},"checks":{"type":"object","properties":{"agent":{"type":"boolean","const":true},"configuration":{"type":"boolean","const":true},"origin":{"type":"boolean","const":true},"knowledge":{"type":"boolean","const":true},"publicChat":{"type":"boolean","const":true},"answer":{"type":"boolean","const":true}},"required":["agent","configuration","origin","knowledge","publicChat","answer"],"additionalProperties":false},"answer":{"type":"string","minLength":1}},"required":["agentId","origin","configuration","checks","answer"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

content connection list

  • Operation ID: content.connection.list
  • Authentication: oauth_token, workspace_api_key
  • Workspace selection: required
  • Required API Key scope: content:connections
  • Minimum User role: none
  • Mutates: false
  • Idempotency: supported false; required false
  • HTTP: POST /api/public/operations/content/connections/list
  • MCP: list_connections — List Andy Content connections. List the current Platform Connection for each publish target, without credentials. Superseded and abandoned connections are not returned.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, workspace_archived, insufficient_scope

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"cursor":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"pageSize":{"default":50,"type":"integer","minimum":1,"maximum":100}},"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"connections":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"label":{"type":"string","minLength":1},"workspaceId":{"type":"string","minLength":1},"agentId":{"type":"string","minLength":1},"provider":{"type":"string","enum":["x","linkedin","instagram","tiktok"]},"status":{"type":"string","enum":["connected","disconnected","expired"]},"mode":{"type":"string","enum":["direct","draft_only","manual_export"]},"destination":{"type":"object","properties":{"externalAccountId":{"anyOf":[{"type":"string"},{"type":"null"}]},"handle":{"anyOf":[{"type":"string"},{"type":"null"}]},"targetType":{"anyOf":[{"type":"string","enum":["personal_profile","company_page"]},{"type":"null"}]},"organizationId":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["externalAccountId","handle","targetType","organizationId"],"additionalProperties":false},"scopes":{"type":"array","items":{"type":"string"}},"expiresAt":{"anyOf":[{"type":"number"},{"type":"null"}]},"capabilities":{"type":"object","properties":{"canPublish":{"type":"boolean"},"canRefresh":{"default":false,"type":"boolean"},"canReadMetrics":{"type":"boolean"},"maxTextLength":{"default":null,"anyOf":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"null"}]},"formats":{"default":["text"],"type":"array","items":{"type":"string","enum":["text","article"]}}},"required":["canPublish","canRefresh","canReadMetrics","maxTextLength","formats"],"additionalProperties":false},"tiktokCreator":{"anyOf":[{"type":"object","properties":{"displayName":{"anyOf":[{"type":"string"},{"type":"null"}]},"avatarUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"privacyLevelOptions":{"type":"array","items":{"type":"string"}},"maxVideoDurationSec":{"anyOf":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"null"}]},"commentDisabled":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"duetDisabled":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"stitchDisabled":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"fetchedAt":{"type":"number"},"checkedAt":{"anyOf":[{"type":"number"},{"type":"null"}]},"checkPending":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["displayName","avatarUrl","privacyLevelOptions","maxVideoDurationSec","commentDisabled","duetDisabled","stitchDisabled","fetchedAt","checkedAt","checkPending"],"additionalProperties":false},{"type":"null"}]},"tiktokWorkspaceConsent":{"anyOf":[{"type":"object","properties":{"acceptedAt":{"type":"number"},"current":{"type":"boolean"}},"required":["acceptedAt","current"],"additionalProperties":false},{"type":"null"}]},"postingSchedule":{"default":null,"anyOf":[{"type":"object","properties":{"timeZone":{"type":"string","minLength":1,"maxLength":64},"slots":{"maxItems":70,"type":"array","items":{"type":"object","properties":{"day":{"type":"integer","minimum":0,"maximum":6},"time":{"type":"string","pattern":"^([01]\\d|2[0-3]):[0-5]\\d$"}},"required":["day","time"],"additionalProperties":false}}},"required":["timeZone","slots"],"additionalProperties":false},{"type":"null"}]},"xCommunities":{"default":[],"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^[0-9]{1,19}$"},"name":{"type":"string","minLength":1,"maxLength":80},"addedAt":{"type":"number"}},"required":["id","name","addedAt"],"additionalProperties":false}},"createdAt":{"type":"number"},"updatedAt":{"type":"number"}},"required":["id","label","workspaceId","agentId","provider","status","mode","destination","scopes","expiresAt","capabilities","tiktokCreator","tiktokWorkspaceConsent","postingSchedule","xCommunities","createdAt","updatedAt"],"additionalProperties":false}},"agentId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"availableProviders":{"type":"array","items":{"type":"string","enum":["x","linkedin","instagram","tiktok"]}}},"required":["connections","agentId","availableProviders"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

content connection show

  • Operation ID: content.connection.inspect
  • Authentication: oauth_token, workspace_api_key
  • Workspace selection: required
  • Required API Key scope: content:connections
  • Minimum User role: none
  • Mutates: false
  • Idempotency: supported false; required false
  • HTTP: POST /api/public/operations/content/connections/inspect
  • MCP: manage_connection (action inspect) — Inspect an Andy Content connection. Inspect one exact Platform Connection and its non-secret destination identity.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, workspace_archived, insufficient_scope

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"connectionId":{"type":"string","minLength":1}},"required":["connectionId"],"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"connection":{"type":"object","properties":{"id":{"type":"string","minLength":1},"label":{"type":"string","minLength":1},"workspaceId":{"type":"string","minLength":1},"agentId":{"type":"string","minLength":1},"provider":{"type":"string","enum":["x","linkedin","instagram","tiktok"]},"status":{"type":"string","enum":["connected","disconnected","expired"]},"mode":{"type":"string","enum":["direct","draft_only","manual_export"]},"destination":{"type":"object","properties":{"externalAccountId":{"anyOf":[{"type":"string"},{"type":"null"}]},"handle":{"anyOf":[{"type":"string"},{"type":"null"}]},"targetType":{"anyOf":[{"type":"string","enum":["personal_profile","company_page"]},{"type":"null"}]},"organizationId":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["externalAccountId","handle","targetType","organizationId"],"additionalProperties":false},"scopes":{"type":"array","items":{"type":"string"}},"expiresAt":{"anyOf":[{"type":"number"},{"type":"null"}]},"capabilities":{"type":"object","properties":{"canPublish":{"type":"boolean"},"canRefresh":{"default":false,"type":"boolean"},"canReadMetrics":{"type":"boolean"},"maxTextLength":{"default":null,"anyOf":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"null"}]},"formats":{"default":["text"],"type":"array","items":{"type":"string","enum":["text","article"]}}},"required":["canPublish","canRefresh","canReadMetrics","maxTextLength","formats"],"additionalProperties":false},"tiktokCreator":{"anyOf":[{"type":"object","properties":{"displayName":{"anyOf":[{"type":"string"},{"type":"null"}]},"avatarUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"privacyLevelOptions":{"type":"array","items":{"type":"string"}},"maxVideoDurationSec":{"anyOf":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"null"}]},"commentDisabled":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"duetDisabled":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"stitchDisabled":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"fetchedAt":{"type":"number"},"checkedAt":{"anyOf":[{"type":"number"},{"type":"null"}]},"checkPending":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["displayName","avatarUrl","privacyLevelOptions","maxVideoDurationSec","commentDisabled","duetDisabled","stitchDisabled","fetchedAt","checkedAt","checkPending"],"additionalProperties":false},{"type":"null"}]},"tiktokWorkspaceConsent":{"anyOf":[{"type":"object","properties":{"acceptedAt":{"type":"number"},"current":{"type":"boolean"}},"required":["acceptedAt","current"],"additionalProperties":false},{"type":"null"}]},"postingSchedule":{"default":null,"anyOf":[{"type":"object","properties":{"timeZone":{"type":"string","minLength":1,"maxLength":64},"slots":{"maxItems":70,"type":"array","items":{"type":"object","properties":{"day":{"type":"integer","minimum":0,"maximum":6},"time":{"type":"string","pattern":"^([01]\\d|2[0-3]):[0-5]\\d$"}},"required":["day","time"],"additionalProperties":false}}},"required":["timeZone","slots"],"additionalProperties":false},{"type":"null"}]},"xCommunities":{"default":[],"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^[0-9]{1,19}$"},"name":{"type":"string","minLength":1,"maxLength":80},"addedAt":{"type":"number"}},"required":["id","name","addedAt"],"additionalProperties":false}},"createdAt":{"type":"number"},"updatedAt":{"type":"number"}},"required":["id","label","workspaceId","agentId","provider","status","mode","destination","scopes","expiresAt","capabilities","tiktokCreator","tiktokWorkspaceConsent","postingSchedule","xCommunities","createdAt","updatedAt"],"additionalProperties":false}},"required":["connection"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

content connection preflight

  • Operation ID: content.connection.preflight
  • Authentication: oauth_token, workspace_api_key
  • Workspace selection: required
  • Required API Key scope: content:connections
  • Minimum User role: admin
  • Mutates: true
  • Idempotency: supported true; required false
  • HTTP: POST /api/public/operations/content/connections/preflight
  • MCP: manage_connection (action preflight) — Preflight an Andy Content connection. Check one exact Platform Connection, refresh credentials when needed, and return a reconnect handoff when setup is required. Set refreshCreator:true when opening TikTok publishing review, then inspect until creator checkPending clears and fetchedAt advances; a failed check must not authorize publication.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, setup_required, workspace_selection_required, permission_denied, resource_not_found, workspace_archived, idempotency_conflict, insufficient_scope

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"connectionId":{"type":"string","minLength":1},"refreshCreator":{"type":"boolean"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":200}},"required":["connectionId"],"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"connection":{"type":"object","properties":{"id":{"type":"string","minLength":1},"label":{"type":"string","minLength":1},"workspaceId":{"type":"string","minLength":1},"agentId":{"type":"string","minLength":1},"provider":{"type":"string","enum":["x","linkedin","instagram","tiktok"]},"status":{"type":"string","enum":["connected","disconnected","expired"]},"mode":{"type":"string","enum":["direct","draft_only","manual_export"]},"destination":{"type":"object","properties":{"externalAccountId":{"anyOf":[{"type":"string"},{"type":"null"}]},"handle":{"anyOf":[{"type":"string"},{"type":"null"}]},"targetType":{"anyOf":[{"type":"string","enum":["personal_profile","company_page"]},{"type":"null"}]},"organizationId":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["externalAccountId","handle","targetType","organizationId"],"additionalProperties":false},"scopes":{"type":"array","items":{"type":"string"}},"expiresAt":{"anyOf":[{"type":"number"},{"type":"null"}]},"capabilities":{"type":"object","properties":{"canPublish":{"type":"boolean"},"canRefresh":{"default":false,"type":"boolean"},"canReadMetrics":{"type":"boolean"},"maxTextLength":{"default":null,"anyOf":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"null"}]},"formats":{"default":["text"],"type":"array","items":{"type":"string","enum":["text","article"]}}},"required":["canPublish","canRefresh","canReadMetrics","maxTextLength","formats"],"additionalProperties":false},"tiktokCreator":{"anyOf":[{"type":"object","properties":{"displayName":{"anyOf":[{"type":"string"},{"type":"null"}]},"avatarUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"privacyLevelOptions":{"type":"array","items":{"type":"string"}},"maxVideoDurationSec":{"anyOf":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"null"}]},"commentDisabled":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"duetDisabled":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"stitchDisabled":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"fetchedAt":{"type":"number"},"checkedAt":{"anyOf":[{"type":"number"},{"type":"null"}]},"checkPending":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["displayName","avatarUrl","privacyLevelOptions","maxVideoDurationSec","commentDisabled","duetDisabled","stitchDisabled","fetchedAt","checkedAt","checkPending"],"additionalProperties":false},{"type":"null"}]},"tiktokWorkspaceConsent":{"anyOf":[{"type":"object","properties":{"acceptedAt":{"type":"number"},"current":{"type":"boolean"}},"required":["acceptedAt","current"],"additionalProperties":false},{"type":"null"}]},"postingSchedule":{"default":null,"anyOf":[{"type":"object","properties":{"timeZone":{"type":"string","minLength":1,"maxLength":64},"slots":{"maxItems":70,"type":"array","items":{"type":"object","properties":{"day":{"type":"integer","minimum":0,"maximum":6},"time":{"type":"string","pattern":"^([01]\\d|2[0-3]):[0-5]\\d$"}},"required":["day","time"],"additionalProperties":false}}},"required":["timeZone","slots"],"additionalProperties":false},{"type":"null"}]},"xCommunities":{"default":[],"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^[0-9]{1,19}$"},"name":{"type":"string","minLength":1,"maxLength":80},"addedAt":{"type":"number"}},"required":["id","name","addedAt"],"additionalProperties":false}},"createdAt":{"type":"number"},"updatedAt":{"type":"number"}},"required":["id","label","workspaceId","agentId","provider","status","mode","destination","scopes","expiresAt","capabilities","tiktokCreator","tiktokWorkspaceConsent","postingSchedule","xCommunities","createdAt","updatedAt"],"additionalProperties":false},"ready":{"type":"boolean"},"state":{"type":"string","enum":["ready","refreshing","setup_required"]},"handoffUrl":{"anyOf":[{"type":"string","format":"uri"},{"type":"null"}]},"nextAction":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["connection","ready","state","handoffUrl","nextAction"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

content connection connect

  • Operation ID: content.connection.connect
  • Authentication: workspace_api_key
  • Workspace selection: required
  • Required API Key scope: content:connections
  • Minimum User role: admin
  • Mutates: false
  • Idempotency: supported false; required false
  • HTTP: POST /api/public/operations/content/connections/connect
  • MCP: manage_connection (action connect) — Prepare an Andy Content provider handoff. Prepare an App handoff for native provider consent without impersonating a User.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, workspace_archived, provider_unavailable, insufficient_scope

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"provider":{"type":"string","enum":["x","linkedin","instagram","tiktok"]},"agentId":{"type":"string","minLength":1},"connectionId":{"type":"string","minLength":1},"targetType":{"type":"string","enum":["personal_profile","company_page"]},"organizationId":{"type":"string","minLength":1},"displayName":{"type":"string","minLength":1}},"required":["provider","agentId"],"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"provider":{"type":"string","enum":["x","linkedin","instagram","tiktok"]},"agentId":{"type":"string","minLength":1},"connectionId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"targetType":{"anyOf":[{"type":"string","enum":["personal_profile","company_page"]},{"type":"null"}]},"organizationId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"displayName":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"handoffUrl":{"type":"string","format":"uri"}},"required":["provider","agentId","connectionId","targetType","organizationId","displayName","handoffUrl"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

content connection disconnect

  • Operation ID: content.connection.disconnect
  • Authentication: workspace_api_key
  • Workspace selection: required
  • Required API Key scope: content:connections
  • Minimum User role: admin
  • Mutates: true
  • Idempotency: supported true; required false
  • HTTP: POST /api/public/operations/content/connections/disconnect
  • MCP: manage_connection (action disconnect) — Disconnect an Andy Content connection. Disconnect one exact Platform Connection after exact-ID confirmation: dispose of credentials, remove it from the Workspace's connections, and cancel Posts still waiting on it. Published Posts keep their history; connecting the same account again makes a new connection.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, workspace_archived, confirmation_required, idempotency_conflict, insufficient_scope

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"connectionId":{"type":"string","minLength":1},"confirm":{"type":"string","minLength":1},"idempotencyKey":{"type":"string","minLength":8,"maxLength":200}},"required":["connectionId"],"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"connection":{"type":"object","properties":{"id":{"type":"string","minLength":1},"label":{"type":"string","minLength":1},"workspaceId":{"type":"string","minLength":1},"agentId":{"type":"string","minLength":1},"provider":{"type":"string","enum":["x","linkedin","instagram","tiktok"]},"status":{"type":"string","enum":["connected","disconnected","expired"]},"mode":{"type":"string","enum":["direct","draft_only","manual_export"]},"destination":{"type":"object","properties":{"externalAccountId":{"anyOf":[{"type":"string"},{"type":"null"}]},"handle":{"anyOf":[{"type":"string"},{"type":"null"}]},"targetType":{"anyOf":[{"type":"string","enum":["personal_profile","company_page"]},{"type":"null"}]},"organizationId":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["externalAccountId","handle","targetType","organizationId"],"additionalProperties":false},"scopes":{"type":"array","items":{"type":"string"}},"expiresAt":{"anyOf":[{"type":"number"},{"type":"null"}]},"capabilities":{"type":"object","properties":{"canPublish":{"type":"boolean"},"canRefresh":{"default":false,"type":"boolean"},"canReadMetrics":{"type":"boolean"},"maxTextLength":{"default":null,"anyOf":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"null"}]},"formats":{"default":["text"],"type":"array","items":{"type":"string","enum":["text","article"]}}},"required":["canPublish","canRefresh","canReadMetrics","maxTextLength","formats"],"additionalProperties":false},"tiktokCreator":{"anyOf":[{"type":"object","properties":{"displayName":{"anyOf":[{"type":"string"},{"type":"null"}]},"avatarUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"privacyLevelOptions":{"type":"array","items":{"type":"string"}},"maxVideoDurationSec":{"anyOf":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"null"}]},"commentDisabled":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"duetDisabled":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"stitchDisabled":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"fetchedAt":{"type":"number"},"checkedAt":{"anyOf":[{"type":"number"},{"type":"null"}]},"checkPending":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["displayName","avatarUrl","privacyLevelOptions","maxVideoDurationSec","commentDisabled","duetDisabled","stitchDisabled","fetchedAt","checkedAt","checkPending"],"additionalProperties":false},{"type":"null"}]},"tiktokWorkspaceConsent":{"anyOf":[{"type":"object","properties":{"acceptedAt":{"type":"number"},"current":{"type":"boolean"}},"required":["acceptedAt","current"],"additionalProperties":false},{"type":"null"}]},"postingSchedule":{"default":null,"anyOf":[{"type":"object","properties":{"timeZone":{"type":"string","minLength":1,"maxLength":64},"slots":{"maxItems":70,"type":"array","items":{"type":"object","properties":{"day":{"type":"integer","minimum":0,"maximum":6},"time":{"type":"string","pattern":"^([01]\\d|2[0-3]):[0-5]\\d$"}},"required":["day","time"],"additionalProperties":false}}},"required":["timeZone","slots"],"additionalProperties":false},{"type":"null"}]},"xCommunities":{"default":[],"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^[0-9]{1,19}$"},"name":{"type":"string","minLength":1,"maxLength":80},"addedAt":{"type":"number"}},"required":["id","name","addedAt"],"additionalProperties":false}},"createdAt":{"type":"number"},"updatedAt":{"type":"number"}},"required":["id","label","workspaceId","agentId","provider","status","mode","destination","scopes","expiresAt","capabilities","tiktokCreator","tiktokWorkspaceConsent","postingSchedule","xCommunities","createdAt","updatedAt"],"additionalProperties":false}},"required":["connection"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

content connection slots

  • Operation ID: content.connection.set_posting_slots
  • Authentication: oauth_token, workspace_api_key
  • Workspace selection: required
  • Required API Key scope: content:connections
  • Minimum User role: admin
  • Mutates: true
  • Idempotency: supported true; required false
  • HTTP: POST /api/public/operations/content/connections/set-posting-slots
  • MCP: manage_connection (action set_posting_slots) — Set an Andy Content connection's posting slots. Replace one Platform Connection's weekly posting slots: slots is the whole week as { day, time } rows (day 0 = Sunday … 6 = Saturday, time "HH:mm" on timeZone, e.g. Europe/London; timeZone defaults to the connection's current zone). Andy proposes a new or pending Post's time as the next free slot at least 30 minutes out; explicit and approved times never move. An empty list turns slots off and proposals fall back to the next full hour. Owner/Admin only.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, workspace_archived, idempotency_conflict, insufficient_scope

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"connectionId":{"type":"string","minLength":1},"slots":{"maxItems":70,"type":"array","items":{"type":"object","properties":{"day":{"type":"integer","minimum":0,"maximum":6},"time":{"type":"string","pattern":"^([01]\\d|2[0-3]):[0-5]\\d$"}},"required":["day","time"],"additionalProperties":false}},"timeZone":{"type":"string","minLength":1,"maxLength":64},"idempotencyKey":{"type":"string","minLength":8,"maxLength":200}},"required":["connectionId","slots"],"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"connection":{"type":"object","properties":{"id":{"type":"string","minLength":1},"label":{"type":"string","minLength":1},"workspaceId":{"type":"string","minLength":1},"agentId":{"type":"string","minLength":1},"provider":{"type":"string","enum":["x","linkedin","instagram","tiktok"]},"status":{"type":"string","enum":["connected","disconnected","expired"]},"mode":{"type":"string","enum":["direct","draft_only","manual_export"]},"destination":{"type":"object","properties":{"externalAccountId":{"anyOf":[{"type":"string"},{"type":"null"}]},"handle":{"anyOf":[{"type":"string"},{"type":"null"}]},"targetType":{"anyOf":[{"type":"string","enum":["personal_profile","company_page"]},{"type":"null"}]},"organizationId":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["externalAccountId","handle","targetType","organizationId"],"additionalProperties":false},"scopes":{"type":"array","items":{"type":"string"}},"expiresAt":{"anyOf":[{"type":"number"},{"type":"null"}]},"capabilities":{"type":"object","properties":{"canPublish":{"type":"boolean"},"canRefresh":{"default":false,"type":"boolean"},"canReadMetrics":{"type":"boolean"},"maxTextLength":{"default":null,"anyOf":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"null"}]},"formats":{"default":["text"],"type":"array","items":{"type":"string","enum":["text","article"]}}},"required":["canPublish","canRefresh","canReadMetrics","maxTextLength","formats"],"additionalProperties":false},"tiktokCreator":{"anyOf":[{"type":"object","properties":{"displayName":{"anyOf":[{"type":"string"},{"type":"null"}]},"avatarUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"privacyLevelOptions":{"type":"array","items":{"type":"string"}},"maxVideoDurationSec":{"anyOf":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"null"}]},"commentDisabled":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"duetDisabled":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"stitchDisabled":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"fetchedAt":{"type":"number"},"checkedAt":{"anyOf":[{"type":"number"},{"type":"null"}]},"checkPending":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["displayName","avatarUrl","privacyLevelOptions","maxVideoDurationSec","commentDisabled","duetDisabled","stitchDisabled","fetchedAt","checkedAt","checkPending"],"additionalProperties":false},{"type":"null"}]},"tiktokWorkspaceConsent":{"anyOf":[{"type":"object","properties":{"acceptedAt":{"type":"number"},"current":{"type":"boolean"}},"required":["acceptedAt","current"],"additionalProperties":false},{"type":"null"}]},"postingSchedule":{"default":null,"anyOf":[{"type":"object","properties":{"timeZone":{"type":"string","minLength":1,"maxLength":64},"slots":{"maxItems":70,"type":"array","items":{"type":"object","properties":{"day":{"type":"integer","minimum":0,"maximum":6},"time":{"type":"string","pattern":"^([01]\\d|2[0-3]):[0-5]\\d$"}},"required":["day","time"],"additionalProperties":false}}},"required":["timeZone","slots"],"additionalProperties":false},{"type":"null"}]},"xCommunities":{"default":[],"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^[0-9]{1,19}$"},"name":{"type":"string","minLength":1,"maxLength":80},"addedAt":{"type":"number"}},"required":["id","name","addedAt"],"additionalProperties":false}},"createdAt":{"type":"number"},"updatedAt":{"type":"number"}},"required":["id","label","workspaceId","agentId","provider","status","mode","destination","scopes","expiresAt","capabilities","tiktokCreator","tiktokWorkspaceConsent","postingSchedule","xCommunities","createdAt","updatedAt"],"additionalProperties":false}},"required":["connection"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

content connection community-add

  • Operation ID: content.connection.add_x_community
  • Authentication: oauth_token, workspace_api_key
  • Workspace selection: required
  • Required API Key scope: content:connections
  • Minimum User role: admin
  • Mutates: true
  • Idempotency: supported true; required false
  • HTTP: POST /api/public/operations/content/connections/add-x-community
  • MCP: manage_connection (action add_x_community) — Save an X Community on an Andy X connection. Save one X Community on an X Platform Connection so its Posts can target it with xCommunity. community is the numeric id or the community URL (https://x.com/i/communities/); name is the label pickers show (saving an id already on the list renames it). Up to 20 per connection. X connections only (x_community_unsupported otherwise); a malformed id or URL is x_community_invalid. The connected X account must be a member of the community for X to accept Posts there. Owner/Admin only.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, workspace_archived, x_community_unsupported, x_community_invalid, idempotency_conflict, insufficient_scope

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"connectionId":{"type":"string","minLength":1},"community":{"type":"string","minLength":1,"maxLength":200},"name":{"type":"string","minLength":1,"maxLength":80},"idempotencyKey":{"type":"string","minLength":8,"maxLength":200}},"required":["connectionId","community","name"],"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"connection":{"type":"object","properties":{"id":{"type":"string","minLength":1},"label":{"type":"string","minLength":1},"workspaceId":{"type":"string","minLength":1},"agentId":{"type":"string","minLength":1},"provider":{"type":"string","enum":["x","linkedin","instagram","tiktok"]},"status":{"type":"string","enum":["connected","disconnected","expired"]},"mode":{"type":"string","enum":["direct","draft_only","manual_export"]},"destination":{"type":"object","properties":{"externalAccountId":{"anyOf":[{"type":"string"},{"type":"null"}]},"handle":{"anyOf":[{"type":"string"},{"type":"null"}]},"targetType":{"anyOf":[{"type":"string","enum":["personal_profile","company_page"]},{"type":"null"}]},"organizationId":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["externalAccountId","handle","targetType","organizationId"],"additionalProperties":false},"scopes":{"type":"array","items":{"type":"string"}},"expiresAt":{"anyOf":[{"type":"number"},{"type":"null"}]},"capabilities":{"type":"object","properties":{"canPublish":{"type":"boolean"},"canRefresh":{"default":false,"type":"boolean"},"canReadMetrics":{"type":"boolean"},"maxTextLength":{"default":null,"anyOf":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"null"}]},"formats":{"default":["text"],"type":"array","items":{"type":"string","enum":["text","article"]}}},"required":["canPublish","canRefresh","canReadMetrics","maxTextLength","formats"],"additionalProperties":false},"tiktokCreator":{"anyOf":[{"type":"object","properties":{"displayName":{"anyOf":[{"type":"string"},{"type":"null"}]},"avatarUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"privacyLevelOptions":{"type":"array","items":{"type":"string"}},"maxVideoDurationSec":{"anyOf":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"null"}]},"commentDisabled":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"duetDisabled":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"stitchDisabled":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"fetchedAt":{"type":"number"},"checkedAt":{"anyOf":[{"type":"number"},{"type":"null"}]},"checkPending":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["displayName","avatarUrl","privacyLevelOptions","maxVideoDurationSec","commentDisabled","duetDisabled","stitchDisabled","fetchedAt","checkedAt","checkPending"],"additionalProperties":false},{"type":"null"}]},"tiktokWorkspaceConsent":{"anyOf":[{"type":"object","properties":{"acceptedAt":{"type":"number"},"current":{"type":"boolean"}},"required":["acceptedAt","current"],"additionalProperties":false},{"type":"null"}]},"postingSchedule":{"default":null,"anyOf":[{"type":"object","properties":{"timeZone":{"type":"string","minLength":1,"maxLength":64},"slots":{"maxItems":70,"type":"array","items":{"type":"object","properties":{"day":{"type":"integer","minimum":0,"maximum":6},"time":{"type":"string","pattern":"^([01]\\d|2[0-3]):[0-5]\\d$"}},"required":["day","time"],"additionalProperties":false}}},"required":["timeZone","slots"],"additionalProperties":false},{"type":"null"}]},"xCommunities":{"default":[],"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^[0-9]{1,19}$"},"name":{"type":"string","minLength":1,"maxLength":80},"addedAt":{"type":"number"}},"required":["id","name","addedAt"],"additionalProperties":false}},"createdAt":{"type":"number"},"updatedAt":{"type":"number"}},"required":["id","label","workspaceId","agentId","provider","status","mode","destination","scopes","expiresAt","capabilities","tiktokCreator","tiktokWorkspaceConsent","postingSchedule","xCommunities","createdAt","updatedAt"],"additionalProperties":false}},"required":["connection"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

content connection community-remove

  • Operation ID: content.connection.remove_x_community
  • Authentication: oauth_token, workspace_api_key
  • Workspace selection: required
  • Required API Key scope: content:connections
  • Minimum User role: admin
  • Mutates: true
  • Idempotency: supported true; required false
  • HTTP: POST /api/public/operations/content/connections/remove-x-community
  • MCP: manage_connection (action remove_x_community) — Remove a saved X Community from an Andy X connection. Remove one saved X Community (communityId from the connection's xCommunities) from an X Platform Connection. New Posts can no longer target it; approved Posts keep it, and a pending Post that targets it is refused at approval (x_community_not_saved) until it is edited. Removing an id that is not saved changes nothing. X connections only. Owner/Admin only.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, workspace_archived, x_community_unsupported, idempotency_conflict, insufficient_scope

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"connectionId":{"type":"string","minLength":1},"communityId":{"type":"string","pattern":"^[0-9]{1,19}$"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":200}},"required":["connectionId","communityId"],"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"connection":{"type":"object","properties":{"id":{"type":"string","minLength":1},"label":{"type":"string","minLength":1},"workspaceId":{"type":"string","minLength":1},"agentId":{"type":"string","minLength":1},"provider":{"type":"string","enum":["x","linkedin","instagram","tiktok"]},"status":{"type":"string","enum":["connected","disconnected","expired"]},"mode":{"type":"string","enum":["direct","draft_only","manual_export"]},"destination":{"type":"object","properties":{"externalAccountId":{"anyOf":[{"type":"string"},{"type":"null"}]},"handle":{"anyOf":[{"type":"string"},{"type":"null"}]},"targetType":{"anyOf":[{"type":"string","enum":["personal_profile","company_page"]},{"type":"null"}]},"organizationId":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["externalAccountId","handle","targetType","organizationId"],"additionalProperties":false},"scopes":{"type":"array","items":{"type":"string"}},"expiresAt":{"anyOf":[{"type":"number"},{"type":"null"}]},"capabilities":{"type":"object","properties":{"canPublish":{"type":"boolean"},"canRefresh":{"default":false,"type":"boolean"},"canReadMetrics":{"type":"boolean"},"maxTextLength":{"default":null,"anyOf":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"null"}]},"formats":{"default":["text"],"type":"array","items":{"type":"string","enum":["text","article"]}}},"required":["canPublish","canRefresh","canReadMetrics","maxTextLength","formats"],"additionalProperties":false},"tiktokCreator":{"anyOf":[{"type":"object","properties":{"displayName":{"anyOf":[{"type":"string"},{"type":"null"}]},"avatarUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"privacyLevelOptions":{"type":"array","items":{"type":"string"}},"maxVideoDurationSec":{"anyOf":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"null"}]},"commentDisabled":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"duetDisabled":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"stitchDisabled":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"fetchedAt":{"type":"number"},"checkedAt":{"anyOf":[{"type":"number"},{"type":"null"}]},"checkPending":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["displayName","avatarUrl","privacyLevelOptions","maxVideoDurationSec","commentDisabled","duetDisabled","stitchDisabled","fetchedAt","checkedAt","checkPending"],"additionalProperties":false},{"type":"null"}]},"tiktokWorkspaceConsent":{"anyOf":[{"type":"object","properties":{"acceptedAt":{"type":"number"},"current":{"type":"boolean"}},"required":["acceptedAt","current"],"additionalProperties":false},{"type":"null"}]},"postingSchedule":{"default":null,"anyOf":[{"type":"object","properties":{"timeZone":{"type":"string","minLength":1,"maxLength":64},"slots":{"maxItems":70,"type":"array","items":{"type":"object","properties":{"day":{"type":"integer","minimum":0,"maximum":6},"time":{"type":"string","pattern":"^([01]\\d|2[0-3]):[0-5]\\d$"}},"required":["day","time"],"additionalProperties":false}}},"required":["timeZone","slots"],"additionalProperties":false},{"type":"null"}]},"xCommunities":{"default":[],"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^[0-9]{1,19}$"},"name":{"type":"string","minLength":1,"maxLength":80},"addedAt":{"type":"number"}},"required":["id","name","addedAt"],"additionalProperties":false}},"createdAt":{"type":"number"},"updatedAt":{"type":"number"}},"required":["id","label","workspaceId","agentId","provider","status","mode","destination","scopes","expiresAt","capabilities","tiktokCreator","tiktokWorkspaceConsent","postingSchedule","xCommunities","createdAt","updatedAt"],"additionalProperties":false}},"required":["connection"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

content media list

  • Operation ID: content.media.list
  • Authentication: oauth_token, workspace_api_key
  • Workspace selection: required
  • Required API Key scope: content:read
  • Minimum User role: none
  • Mutates: false
  • Idempotency: supported false; required false
  • HTTP: POST /api/public/operations/content/media/list
  • MCP: manage_media (action list) — List Andy Content Media Assets. List the Workspace's durable Media Assets.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, workspace_archived, insufficient_scope

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"pieceId":{"type":"string","minLength":1},"cursor":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"pageSize":{"default":50,"type":"integer","minimum":1,"maximum":100}},"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"media":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"pieceId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"pieceRevision":{"anyOf":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"null"}]},"planItemId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"kind":{"type":"string","enum":["video","photo"]},"revision":{"anyOf":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"null"}]},"reviewState":{"type":"string","enum":["pending","approved","rejected"]},"renderState":{"type":"string","enum":["none","rendered"]},"provenance":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["bsale_product","catalog_product","upload","brand_logo","screen_capture"]},"ref":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["type"],"additionalProperties":false}},"mime":{"anyOf":[{"type":"string"},{"type":"null"}]},"byteSize":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"width":{"anyOf":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"null"}]},"height":{"anyOf":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"null"}]},"durationSeconds":{"anyOf":[{"type":"number","minimum":0},{"type":"null"}]},"uploadState":{"anyOf":[{"type":"string","enum":["pending","ready","failed"]},{"type":"null"}]},"uploadError":{"anyOf":[{"type":"string"},{"type":"null"}]},"revisions":{"type":"array","items":{"type":"object","properties":{"revision":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"url":{"anyOf":[{"type":"string","format":"uri"},{"type":"null"}]},"mime":{"anyOf":[{"type":"string"},{"type":"null"}]},"renderJobId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"createdAt":{"type":"number"}},"required":["revision","url","mime","renderJobId","createdAt"],"additionalProperties":false}},"review":{"anyOf":[{"type":"object","properties":{"revision":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"decision":{"type":"string","enum":["approved","rejected"]},"actor":{"type":"string","minLength":1},"policyVersion":{"type":"integer","minimum":0,"maximum":9007199254740991},"note":{"anyOf":[{"type":"string"},{"type":"null"}]},"decidedAt":{"type":"number"}},"required":["revision","decision","actor","policyVersion","note","decidedAt"],"additionalProperties":false},{"type":"null"}]},"costs":{"type":"object","properties":{"estimatedUsd":{"anyOf":[{"type":"number","minimum":0},{"type":"null"}]},"actualUsd":{"anyOf":[{"type":"number","minimum":0},{"type":"null"}]}},"required":["estimatedUsd","actualUsd"],"additionalProperties":false},"nextAction":{"anyOf":[{"type":"string"},{"type":"null"}]},"createdAt":{"type":"number"},"updatedAt":{"type":"number"}},"required":["id","pieceId","pieceRevision","planItemId","kind","revision","reviewState","renderState","provenance","mime","byteSize","width","height","durationSeconds","uploadState","uploadError","revisions","review","costs","nextAction","createdAt","updatedAt"],"additionalProperties":false}}},"required":["media"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

content media show

  • Operation ID: content.media.inspect
  • Authentication: oauth_token, workspace_api_key
  • Workspace selection: required
  • Required API Key scope: content:read
  • Minimum User role: none
  • Mutates: false
  • Idempotency: supported false; required false
  • HTTP: POST /api/public/operations/content/media/inspect
  • MCP: manage_media (action inspect) — Inspect an Andy Content Media Asset. Inspect one exact Media Asset revision, its jobs, review, and cost evidence.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, workspace_archived, insufficient_scope

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"assetId":{"type":"string","minLength":1}},"required":["assetId"],"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"media":{"type":"object","properties":{"id":{"type":"string","minLength":1},"pieceId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"pieceRevision":{"anyOf":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"null"}]},"planItemId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"kind":{"type":"string","enum":["video","photo"]},"revision":{"anyOf":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"null"}]},"reviewState":{"type":"string","enum":["pending","approved","rejected"]},"renderState":{"type":"string","enum":["none","rendered"]},"provenance":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["bsale_product","catalog_product","upload","brand_logo","screen_capture"]},"ref":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["type"],"additionalProperties":false}},"mime":{"anyOf":[{"type":"string"},{"type":"null"}]},"byteSize":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"width":{"anyOf":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"null"}]},"height":{"anyOf":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"null"}]},"durationSeconds":{"anyOf":[{"type":"number","minimum":0},{"type":"null"}]},"uploadState":{"anyOf":[{"type":"string","enum":["pending","ready","failed"]},{"type":"null"}]},"uploadError":{"anyOf":[{"type":"string"},{"type":"null"}]},"revisions":{"type":"array","items":{"type":"object","properties":{"revision":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"url":{"anyOf":[{"type":"string","format":"uri"},{"type":"null"}]},"mime":{"anyOf":[{"type":"string"},{"type":"null"}]},"renderJobId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"createdAt":{"type":"number"}},"required":["revision","url","mime","renderJobId","createdAt"],"additionalProperties":false}},"review":{"anyOf":[{"type":"object","properties":{"revision":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"decision":{"type":"string","enum":["approved","rejected"]},"actor":{"type":"string","minLength":1},"policyVersion":{"type":"integer","minimum":0,"maximum":9007199254740991},"note":{"anyOf":[{"type":"string"},{"type":"null"}]},"decidedAt":{"type":"number"}},"required":["revision","decision","actor","policyVersion","note","decidedAt"],"additionalProperties":false},{"type":"null"}]},"costs":{"type":"object","properties":{"estimatedUsd":{"anyOf":[{"type":"number","minimum":0},{"type":"null"}]},"actualUsd":{"anyOf":[{"type":"number","minimum":0},{"type":"null"}]}},"required":["estimatedUsd","actualUsd"],"additionalProperties":false},"nextAction":{"anyOf":[{"type":"string"},{"type":"null"}]},"createdAt":{"type":"number"},"updatedAt":{"type":"number"}},"required":["id","pieceId","pieceRevision","planItemId","kind","revision","reviewState","renderState","provenance","mime","byteSize","width","height","durationSeconds","uploadState","uploadError","revisions","review","costs","nextAction","createdAt","updatedAt"],"additionalProperties":false}},"required":["media"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

content media upload-prepare

  • Operation ID: content.media.upload_prepare
  • Authentication: oauth_token, workspace_api_key
  • Workspace selection: required
  • Required API Key scope: content:write
  • Minimum User role: none
  • Mutates: true
  • Idempotency: supported true; required false
  • HTTP: POST /api/public/operations/content/media/upload-prepare
  • MCP: manage_media (action prepare) — Prepare an Andy Content Media upload. Create a scoped 24-hour upload session for one file without creating a Media Asset. Anyone permitted to create Posts may upload; declare the file's sha256 hex digest so the assembled bytes are checked against it. The response carries the preparationId, the session uploadUrl, partSizeBytes, partCount, and the uploadToken. Send the bytes as parts (POST <uploadUrl>?preparation=<id>&index=<0-based> with header X-Andy-Upload-Token and the raw slice as the body); the server stores every part itself, so no caller ever names a storage object. Replaying prepare with the same key returns the same live session and the same endpoint.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, workspace_archived, idempotency_conflict, insufficient_scope

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"fileName":{"type":"string","minLength":1},"contentType":{"type":"string","minLength":1},"byteSize":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"sha256":{"type":"string","minLength":64,"maxLength":64},"idempotencyKey":{"type":"string","minLength":8,"maxLength":200}},"required":["fileName","contentType","byteSize","sha256"],"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"preparationId":{"type":"string","minLength":1},"uploadUrl":{"type":"string","format":"uri"},"partSizeBytes":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"partCount":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"uploadToken":{"type":"string","minLength":1}},"required":["preparationId","uploadUrl","partSizeBytes","partCount","uploadToken"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

content media upload-complete

  • Operation ID: content.media.upload_complete
  • Authentication: oauth_token, workspace_api_key
  • Workspace selection: required
  • Required API Key scope: content:write
  • Minimum User role: none
  • Mutates: true
  • Idempotency: supported true; required false
  • HTTP: POST /api/public/operations/content/media/upload-complete
  • MCP: manage_media (action complete) — Complete an Andy Content Media upload. Close an upload session whose parts all arrived and create a provenance-bearing Media Asset from them. Completion takes no storage id: the asset is assembled from the parts this session's own intake stored, inside the same Workspace, actor, token and 24-hour window, so bytes sent under another session can never be claimed. Anyone permitted to create Posts may complete their own sessions. The asset kind is derived from measured bytes. Assembly and content validation finish asynchronously; poll inspect until uploadState is ready or failed. Only ready assets attach or publish.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, workspace_archived, idempotency_conflict, insufficient_scope

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"preparationId":{"type":"string","minLength":1},"uploadToken":{"type":"string","minLength":1},"sourceType":{"type":"string","enum":["bsale_product","catalog_product","upload"]},"sourceRef":{"type":"string","minLength":1},"idempotencyKey":{"type":"string","minLength":8,"maxLength":200}},"required":["preparationId","uploadToken","sourceType"],"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"media":{"type":"object","properties":{"id":{"type":"string","minLength":1},"pieceId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"pieceRevision":{"anyOf":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"null"}]},"planItemId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"kind":{"type":"string","enum":["video","photo"]},"revision":{"anyOf":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"null"}]},"reviewState":{"type":"string","enum":["pending","approved","rejected"]},"renderState":{"type":"string","enum":["none","rendered"]},"provenance":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["bsale_product","catalog_product","upload","brand_logo","screen_capture"]},"ref":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["type"],"additionalProperties":false}},"mime":{"anyOf":[{"type":"string"},{"type":"null"}]},"byteSize":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"width":{"anyOf":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"null"}]},"height":{"anyOf":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"null"}]},"durationSeconds":{"anyOf":[{"type":"number","minimum":0},{"type":"null"}]},"uploadState":{"anyOf":[{"type":"string","enum":["pending","ready","failed"]},{"type":"null"}]},"uploadError":{"anyOf":[{"type":"string"},{"type":"null"}]},"revisions":{"type":"array","items":{"type":"object","properties":{"revision":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"url":{"anyOf":[{"type":"string","format":"uri"},{"type":"null"}]},"mime":{"anyOf":[{"type":"string"},{"type":"null"}]},"renderJobId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"createdAt":{"type":"number"}},"required":["revision","url","mime","renderJobId","createdAt"],"additionalProperties":false}},"review":{"anyOf":[{"type":"object","properties":{"revision":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"decision":{"type":"string","enum":["approved","rejected"]},"actor":{"type":"string","minLength":1},"policyVersion":{"type":"integer","minimum":0,"maximum":9007199254740991},"note":{"anyOf":[{"type":"string"},{"type":"null"}]},"decidedAt":{"type":"number"}},"required":["revision","decision","actor","policyVersion","note","decidedAt"],"additionalProperties":false},{"type":"null"}]},"costs":{"type":"object","properties":{"estimatedUsd":{"anyOf":[{"type":"number","minimum":0},{"type":"null"}]},"actualUsd":{"anyOf":[{"type":"number","minimum":0},{"type":"null"}]}},"required":["estimatedUsd","actualUsd"],"additionalProperties":false},"nextAction":{"anyOf":[{"type":"string"},{"type":"null"}]},"createdAt":{"type":"number"},"updatedAt":{"type":"number"}},"required":["id","pieceId","pieceRevision","planItemId","kind","revision","reviewState","renderState","provenance","mime","byteSize","width","height","durationSeconds","uploadState","uploadError","revisions","review","costs","nextAction","createdAt","updatedAt"],"additionalProperties":false}},"required":["media"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

content media upload-bytes

  • Operation ID: content.media.upload_bytes
  • Authentication: oauth_token, workspace_api_key
  • Workspace selection: required
  • Required API Key scope: content:write
  • Minimum User role: none
  • Mutates: true
  • Idempotency: supported true; required false
  • HTTP: POST /api/public/operations/content/media/upload-bytes
  • MCP: manage_media (action upload_bytes) — Upload Andy Content Media bytes. Upload one PNG/JPEG image as JSON-transport bytes (max 3 MB raw) and create a reusable photo Media Asset with sourceType upload. The server stores the bytes itself — no preparation, no upload URL, no client storage id — then completes through the same shared upload lifecycle as the direct-upload door. Replaying the same idempotencyKey with the same bytes returns the same asset; the same key with different bytes is idempotency_conflict. Read the asset back with content.media.inspect and attach its id as mediaAssetId on content.post.create for any channel. Anyone permitted to create Posts may upload.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, workspace_archived, idempotency_conflict, insufficient_scope

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"bytesBase64":{"type":"string","minLength":4,"maxLength":4000000},"contentType":{"type":"string","enum":["image/png","image/jpeg"]},"fileName":{"type":"string","minLength":1,"maxLength":200},"sourceRef":{"type":"string","minLength":1,"maxLength":500},"idempotencyKey":{"type":"string","minLength":8,"maxLength":200}},"required":["bytesBase64","contentType","fileName"],"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"media":{"type":"object","properties":{"id":{"type":"string","minLength":1},"pieceId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"pieceRevision":{"anyOf":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"null"}]},"planItemId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"kind":{"type":"string","enum":["video","photo"]},"revision":{"anyOf":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"null"}]},"reviewState":{"type":"string","enum":["pending","approved","rejected"]},"renderState":{"type":"string","enum":["none","rendered"]},"provenance":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["bsale_product","catalog_product","upload","brand_logo","screen_capture"]},"ref":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["type"],"additionalProperties":false}},"mime":{"anyOf":[{"type":"string"},{"type":"null"}]},"byteSize":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"width":{"anyOf":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"null"}]},"height":{"anyOf":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"null"}]},"durationSeconds":{"anyOf":[{"type":"number","minimum":0},{"type":"null"}]},"uploadState":{"anyOf":[{"type":"string","enum":["pending","ready","failed"]},{"type":"null"}]},"uploadError":{"anyOf":[{"type":"string"},{"type":"null"}]},"revisions":{"type":"array","items":{"type":"object","properties":{"revision":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"url":{"anyOf":[{"type":"string","format":"uri"},{"type":"null"}]},"mime":{"anyOf":[{"type":"string"},{"type":"null"}]},"renderJobId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"createdAt":{"type":"number"}},"required":["revision","url","mime","renderJobId","createdAt"],"additionalProperties":false}},"review":{"anyOf":[{"type":"object","properties":{"revision":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"decision":{"type":"string","enum":["approved","rejected"]},"actor":{"type":"string","minLength":1},"policyVersion":{"type":"integer","minimum":0,"maximum":9007199254740991},"note":{"anyOf":[{"type":"string"},{"type":"null"}]},"decidedAt":{"type":"number"}},"required":["revision","decision","actor","policyVersion","note","decidedAt"],"additionalProperties":false},{"type":"null"}]},"costs":{"type":"object","properties":{"estimatedUsd":{"anyOf":[{"type":"number","minimum":0},{"type":"null"}]},"actualUsd":{"anyOf":[{"type":"number","minimum":0},{"type":"null"}]}},"required":["estimatedUsd","actualUsd"],"additionalProperties":false},"nextAction":{"anyOf":[{"type":"string"},{"type":"null"}]},"createdAt":{"type":"number"},"updatedAt":{"type":"number"}},"required":["id","pieceId","pieceRevision","planItemId","kind","revision","reviewState","renderState","provenance","mime","byteSize","width","height","durationSeconds","uploadState","uploadError","revisions","review","costs","nextAction","createdAt","updatedAt"],"additionalProperties":false}},"required":["media"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

content post create

  • Operation ID: content.post.create
  • Authentication: oauth_token, workspace_api_key
  • Workspace selection: required
  • Required API Key scope: content:write
  • Minimum User role: none
  • Mutates: true
  • Idempotency: supported true; required false
  • HTTP: POST /api/public/operations/content/posts/create
  • MCP: manage_post (action create) — Create an Andy Content Post. Create a direct Post for one channel with an explicit intent (default request_approval). request_approval always files the Post as pending_approval with no dispatch, storing a proposed future scheduledAt (when the caller gives none, Andy proposes the connection's next free posting slot at least 30 minutes out, or the next full hour when the connection has no slots). schedule requires an explicit future scheduledAt and directly approves+schedules for Owner/Admin. publish_now is explicitly immediate and rejects scheduledAt. Members may only request approval. A Workspace API Key needs content:write, plus content:schedule for schedule or content:publish for publish_now. Create's optional targetType (personal_profile | company_page, LinkedIn only) picks the destination without an id; omitted, LinkedIn stays on the member profile. Optional firstComment (X up to 280 characters, LinkedIn up to 1250) is posted by Andy right after the Post publishes: a reply to the tweet on X, a comment by the same author on LinkedIn; Instagram and TikTok refuse it with first_comment_unsupported. It is part of what approval pins. X only: optional xCommunity { id, shareWithFollowers } (id from the Post's connection xCommunities, see content.connection.add_x_community) publishes the Post to that X Community instead of the author's timeline; shareWithFollowers:true also shows it to the author's followers. The author must be a member of the community. Other channels refuse it with x_community_unsupported; a community the connection has not saved is x_community_not_saved. Approval pins it. X Articles: send article { title, body, coverMediaAssetId? } instead of text (connections whose capabilities.formats include article; otherwise post_format_unsupported). The body is Markdown stored exactly as sent; inline images are ![caption](media:<mediaAssetId>) Workspace Media Assets, and they and the cover must be JPEG/PNG up to 5 MB. An Article takes no mediaAssetId, firstComment or xCommunity; copy.text is its title. Approval pins the title, body, cover and every inline image.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, workspace_archived, setup_required, instagram_media_required, instagram_media_unsupported, media_unsupported, media_pending, tiktok_settings_required, tiktok_consent_required, tiktok_privacy_invalid, tiktok_media_required, tiktok_media_unsupported, tiktok_media_too_long, tiktok_interaction_unavailable, tiktok_branded_private, tiktok_caption_too_long, tiktok_delivery_unconfigured, tiktok_delivery_misconfigured, tiktok_media_unmeasured, tiktok_creator_cap_missing, first_comment_unsupported, x_community_unsupported, x_community_not_saved, post_text_too_long, post_format_unsupported, article_body_empty, article_markdown_too_long, article_image_source_unsupported, article_link_unsupported, article_html_unsupported, idempotency_conflict, insufficient_scope

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","oneOf":[{"type":"object","properties":{"channel":{"type":"string","enum":["x","linkedin","instagram","tiktok"]},"text":{"type":"string","minLength":1,"maxLength":25000},"targetType":{"type":"string","enum":["personal_profile","company_page"]},"mediaAssetId":{"type":"string","minLength":1},"tiktokSettings":{"type":"object","properties":{"privacyLevel":{"type":"string","enum":["PUBLIC_TO_EVERYONE","MUTUAL_FOLLOW_FRIENDS","FOLLOWER_OF_CREATOR","SELF_ONLY"]},"commentEnabled":{"type":"boolean"},"duetEnabled":{"type":"boolean"},"stitchEnabled":{"type":"boolean"},"commercialContent":{"type":"string","enum":["off","own_brand","branded","both"]},"consentAccepted":{"type":"boolean"}},"required":["privacyLevel"],"additionalProperties":false},"firstComment":{"type":"string","minLength":1,"maxLength":1250},"xCommunity":{"type":"object","properties":{"id":{"type":"string","pattern":"^[0-9]{1,19}$"},"shareWithFollowers":{"type":"boolean"}},"required":["id","shareWithFollowers"],"additionalProperties":false},"connectionId":{"type":"string","minLength":1},"intent":{"type":"string","enum":["request_approval","schedule","publish_now"]},"scheduledAt":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"idempotencyKey":{"type":"string","minLength":8,"maxLength":200}},"required":["channel","text"],"additionalProperties":false},{"type":"object","properties":{"channel":{"type":"string","enum":["x","linkedin","instagram","tiktok"]},"article":{"type":"object","properties":{"title":{"type":"string","minLength":1,"maxLength":1000},"body":{"type":"string","minLength":1,"maxLength":100000},"coverMediaAssetId":{"type":"string","minLength":1}},"required":["title","body"],"additionalProperties":false},"connectionId":{"type":"string","minLength":1},"intent":{"type":"string","enum":["request_approval","schedule","publish_now"]},"scheduledAt":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"idempotencyKey":{"type":"string","minLength":8,"maxLength":200}},"required":["channel","article"],"additionalProperties":false}]}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"post":{"type":"object","properties":{"id":{"type":"string","minLength":1},"channel":{"type":"string","enum":["x","linkedin","instagram","tiktok"]},"status":{"type":"string","enum":["pending_approval","approved","published","failed","rejected"]},"revision":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"format":{"default":"text","type":"string","enum":["text","article"]},"copy":{"type":"object","properties":{"text":{"type":"string"},"hashtags":{"type":"array","items":{"type":"string"}},"cta":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["text","hashtags","cta"],"additionalProperties":false},"article":{"default":null,"anyOf":[{"type":"object","properties":{"title":{"type":"string"},"body":{"type":"string"},"coverMediaAssetId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]}},"required":["title","body","coverMediaAssetId"],"additionalProperties":false},{"type":"null"}]},"scheduledAt":{"anyOf":[{"type":"number"},{"type":"null"}]},"publishState":{"anyOf":[{"type":"string","enum":["queued","paused","publishing","manual_exported","published","failed","unknown","cancelled"]},{"type":"null"}]},"publishError":{"anyOf":[{"type":"string"},{"type":"null"}]},"externalPostId":{"anyOf":[{"type":"string"},{"type":"null"}]},"externalUrl":{"anyOf":[{"type":"string","format":"uri","pattern":"^https:\\/\\/.*"},{"type":"null"}]},"mediaAssetId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"mediaRevision":{"anyOf":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"null"}]},"tiktokSettings":{"anyOf":[{"type":"object","properties":{"privacyLevel":{"type":"string","enum":["PUBLIC_TO_EVERYONE","MUTUAL_FOLLOW_FRIENDS","FOLLOWER_OF_CREATOR","SELF_ONLY"]},"commentEnabled":{"type":"boolean"},"duetEnabled":{"type":"boolean"},"stitchEnabled":{"type":"boolean"},"commercialContent":{"type":"string","enum":["off","own_brand","branded","both"]}},"required":["privacyLevel","commentEnabled","duetEnabled","stitchEnabled","commercialContent"],"additionalProperties":false},{"type":"null"}]},"firstComment":{"anyOf":[{"type":"object","properties":{"text":{"type":"string","minLength":1},"state":{"type":"string","enum":["pending","posting","posted","failed"]},"externalId":{"anyOf":[{"type":"string"},{"type":"null"}]},"externalUrl":{"anyOf":[{"type":"string","format":"uri","pattern":"^https:\\/\\/.*"},{"type":"null"}]},"error":{"anyOf":[{"type":"string"},{"type":"null"}]},"updatedAt":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["text","state","externalId","externalUrl","error","updatedAt"],"additionalProperties":false},{"type":"null"}]},"xCommunity":{"default":null,"anyOf":[{"type":"object","properties":{"id":{"type":"string","pattern":"^[0-9]{1,19}$"},"shareWithFollowers":{"type":"boolean"},"name":{"type":"string","minLength":1,"maxLength":80}},"required":["id","shareWithFollowers","name"],"additionalProperties":false},{"type":"null"}]},"connectionId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"connectionLabel":{"anyOf":[{"type":"string"},{"type":"null"}]},"approval":{"anyOf":[{"type":"object","properties":{"approvedAt":{"type":"number"},"approvedBy":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"approvedRevision":{"anyOf":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"null"}]},"actor":{"type":"string","minLength":1},"contentHash":{"type":"string","minLength":1},"destinationFingerprint":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["approvedAt","approvedBy","approvedRevision","actor","contentHash","destinationFingerprint"],"additionalProperties":false},{"type":"null"}]},"terminalReason":{"anyOf":[{"type":"string","enum":["rejected","cancelled","dismissed"]},{"type":"null"}]},"terminalAt":{"anyOf":[{"type":"number"},{"type":"null"}]},"terminalActor":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"terminalNote":{"anyOf":[{"type":"string"},{"type":"null"}]},"nextAction":{"anyOf":[{"type":"string"},{"type":"null"}]},"createdAt":{"type":"number"},"updatedAt":{"type":"number"}},"required":["id","channel","status","revision","format","copy","article","scheduledAt","publishState","publishError","externalPostId","externalUrl","mediaAssetId","mediaRevision","tiktokSettings","xCommunity","connectionId","connectionLabel","approval","terminalReason","terminalAt","terminalActor","terminalNote","nextAction","createdAt","updatedAt"],"additionalProperties":false}},"required":["post"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

content post list

  • Operation ID: content.post.list
  • Authentication: oauth_token, workspace_api_key
  • Workspace selection: required
  • Required API Key scope: content:read
  • Minimum User role: none
  • Mutates: false
  • Idempotency: supported false; required false
  • HTTP: POST /api/public/operations/content/posts/list
  • MCP: list_posts — List Andy Content Posts. List Workspace Posts newest first. Filter status=pending_approval for the one approval queue.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, workspace_archived, insufficient_scope

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"cursor":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"pageSize":{"default":50,"type":"integer","minimum":1,"maximum":100},"status":{"type":"string","enum":["pending_approval","approved","published","failed","rejected"]}},"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"posts":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"channel":{"type":"string","enum":["x","linkedin","instagram","tiktok"]},"status":{"type":"string","enum":["pending_approval","approved","published","failed","rejected"]},"revision":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"format":{"default":"text","type":"string","enum":["text","article"]},"copy":{"type":"object","properties":{"text":{"type":"string"},"hashtags":{"type":"array","items":{"type":"string"}},"cta":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["text","hashtags","cta"],"additionalProperties":false},"article":{"default":null,"anyOf":[{"type":"object","properties":{"title":{"type":"string"},"body":{"type":"string"},"coverMediaAssetId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]}},"required":["title","body","coverMediaAssetId"],"additionalProperties":false},{"type":"null"}]},"scheduledAt":{"anyOf":[{"type":"number"},{"type":"null"}]},"publishState":{"anyOf":[{"type":"string","enum":["queued","paused","publishing","manual_exported","published","failed","unknown","cancelled"]},{"type":"null"}]},"publishError":{"anyOf":[{"type":"string"},{"type":"null"}]},"externalPostId":{"anyOf":[{"type":"string"},{"type":"null"}]},"externalUrl":{"anyOf":[{"type":"string","format":"uri","pattern":"^https:\\/\\/.*"},{"type":"null"}]},"mediaAssetId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"mediaRevision":{"anyOf":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"null"}]},"tiktokSettings":{"anyOf":[{"type":"object","properties":{"privacyLevel":{"type":"string","enum":["PUBLIC_TO_EVERYONE","MUTUAL_FOLLOW_FRIENDS","FOLLOWER_OF_CREATOR","SELF_ONLY"]},"commentEnabled":{"type":"boolean"},"duetEnabled":{"type":"boolean"},"stitchEnabled":{"type":"boolean"},"commercialContent":{"type":"string","enum":["off","own_brand","branded","both"]}},"required":["privacyLevel","commentEnabled","duetEnabled","stitchEnabled","commercialContent"],"additionalProperties":false},{"type":"null"}]},"firstComment":{"anyOf":[{"type":"object","properties":{"text":{"type":"string","minLength":1},"state":{"type":"string","enum":["pending","posting","posted","failed"]},"externalId":{"anyOf":[{"type":"string"},{"type":"null"}]},"externalUrl":{"anyOf":[{"type":"string","format":"uri","pattern":"^https:\\/\\/.*"},{"type":"null"}]},"error":{"anyOf":[{"type":"string"},{"type":"null"}]},"updatedAt":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["text","state","externalId","externalUrl","error","updatedAt"],"additionalProperties":false},{"type":"null"}]},"xCommunity":{"default":null,"anyOf":[{"type":"object","properties":{"id":{"type":"string","pattern":"^[0-9]{1,19}$"},"shareWithFollowers":{"type":"boolean"},"name":{"type":"string","minLength":1,"maxLength":80}},"required":["id","shareWithFollowers","name"],"additionalProperties":false},{"type":"null"}]},"connectionId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"connectionLabel":{"anyOf":[{"type":"string"},{"type":"null"}]},"approval":{"anyOf":[{"type":"object","properties":{"approvedAt":{"type":"number"},"approvedBy":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"approvedRevision":{"anyOf":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"null"}]},"actor":{"type":"string","minLength":1},"contentHash":{"type":"string","minLength":1},"destinationFingerprint":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["approvedAt","approvedBy","approvedRevision","actor","contentHash","destinationFingerprint"],"additionalProperties":false},{"type":"null"}]},"terminalReason":{"anyOf":[{"type":"string","enum":["rejected","cancelled","dismissed"]},{"type":"null"}]},"terminalAt":{"anyOf":[{"type":"number"},{"type":"null"}]},"terminalActor":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"terminalNote":{"anyOf":[{"type":"string"},{"type":"null"}]},"nextAction":{"anyOf":[{"type":"string"},{"type":"null"}]},"createdAt":{"type":"number"},"updatedAt":{"type":"number"}},"required":["id","channel","status","revision","format","copy","article","scheduledAt","publishState","publishError","externalPostId","externalUrl","mediaAssetId","mediaRevision","tiktokSettings","xCommunity","connectionId","connectionLabel","approval","terminalReason","terminalAt","terminalActor","terminalNote","nextAction","createdAt","updatedAt"],"additionalProperties":false}}},"required":["posts"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

content post show

  • Operation ID: content.post.inspect
  • Authentication: oauth_token, workspace_api_key
  • Workspace selection: required
  • Required API Key scope: content:read
  • Minimum User role: none
  • Mutates: false
  • Idempotency: supported false; required false
  • HTTP: POST /api/public/operations/content/posts/inspect
  • MCP: list_posts — Inspect an Andy Content Post. Inspect one exact Post by id, including lifecycle and publish state.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, workspace_archived, insufficient_scope

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"postId":{"type":"string","minLength":1}},"required":["postId"],"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"post":{"type":"object","properties":{"id":{"type":"string","minLength":1},"channel":{"type":"string","enum":["x","linkedin","instagram","tiktok"]},"status":{"type":"string","enum":["pending_approval","approved","published","failed","rejected"]},"revision":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"format":{"default":"text","type":"string","enum":["text","article"]},"copy":{"type":"object","properties":{"text":{"type":"string"},"hashtags":{"type":"array","items":{"type":"string"}},"cta":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["text","hashtags","cta"],"additionalProperties":false},"article":{"default":null,"anyOf":[{"type":"object","properties":{"title":{"type":"string"},"body":{"type":"string"},"coverMediaAssetId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]}},"required":["title","body","coverMediaAssetId"],"additionalProperties":false},{"type":"null"}]},"scheduledAt":{"anyOf":[{"type":"number"},{"type":"null"}]},"publishState":{"anyOf":[{"type":"string","enum":["queued","paused","publishing","manual_exported","published","failed","unknown","cancelled"]},{"type":"null"}]},"publishError":{"anyOf":[{"type":"string"},{"type":"null"}]},"externalPostId":{"anyOf":[{"type":"string"},{"type":"null"}]},"externalUrl":{"anyOf":[{"type":"string","format":"uri","pattern":"^https:\\/\\/.*"},{"type":"null"}]},"mediaAssetId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"mediaRevision":{"anyOf":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"null"}]},"tiktokSettings":{"anyOf":[{"type":"object","properties":{"privacyLevel":{"type":"string","enum":["PUBLIC_TO_EVERYONE","MUTUAL_FOLLOW_FRIENDS","FOLLOWER_OF_CREATOR","SELF_ONLY"]},"commentEnabled":{"type":"boolean"},"duetEnabled":{"type":"boolean"},"stitchEnabled":{"type":"boolean"},"commercialContent":{"type":"string","enum":["off","own_brand","branded","both"]}},"required":["privacyLevel","commentEnabled","duetEnabled","stitchEnabled","commercialContent"],"additionalProperties":false},{"type":"null"}]},"firstComment":{"anyOf":[{"type":"object","properties":{"text":{"type":"string","minLength":1},"state":{"type":"string","enum":["pending","posting","posted","failed"]},"externalId":{"anyOf":[{"type":"string"},{"type":"null"}]},"externalUrl":{"anyOf":[{"type":"string","format":"uri","pattern":"^https:\\/\\/.*"},{"type":"null"}]},"error":{"anyOf":[{"type":"string"},{"type":"null"}]},"updatedAt":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["text","state","externalId","externalUrl","error","updatedAt"],"additionalProperties":false},{"type":"null"}]},"xCommunity":{"default":null,"anyOf":[{"type":"object","properties":{"id":{"type":"string","pattern":"^[0-9]{1,19}$"},"shareWithFollowers":{"type":"boolean"},"name":{"type":"string","minLength":1,"maxLength":80}},"required":["id","shareWithFollowers","name"],"additionalProperties":false},{"type":"null"}]},"connectionId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"connectionLabel":{"anyOf":[{"type":"string"},{"type":"null"}]},"approval":{"anyOf":[{"type":"object","properties":{"approvedAt":{"type":"number"},"approvedBy":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"approvedRevision":{"anyOf":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"null"}]},"actor":{"type":"string","minLength":1},"contentHash":{"type":"string","minLength":1},"destinationFingerprint":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["approvedAt","approvedBy","approvedRevision","actor","contentHash","destinationFingerprint"],"additionalProperties":false},{"type":"null"}]},"terminalReason":{"anyOf":[{"type":"string","enum":["rejected","cancelled","dismissed"]},{"type":"null"}]},"terminalAt":{"anyOf":[{"type":"number"},{"type":"null"}]},"terminalActor":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"terminalNote":{"anyOf":[{"type":"string"},{"type":"null"}]},"nextAction":{"anyOf":[{"type":"string"},{"type":"null"}]},"createdAt":{"type":"number"},"updatedAt":{"type":"number"}},"required":["id","channel","status","revision","format","copy","article","scheduledAt","publishState","publishError","externalPostId","externalUrl","mediaAssetId","mediaRevision","tiktokSettings","xCommunity","connectionId","connectionLabel","approval","terminalReason","terminalAt","terminalActor","terminalNote","nextAction","createdAt","updatedAt"],"additionalProperties":false}},"required":["post"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

content post edit

  • Operation ID: content.post.edit
  • Authentication: oauth_token, workspace_api_key
  • Workspace selection: required
  • Required API Key scope: content:write
  • Minimum User role: admin
  • Mutates: true
  • Idempotency: supported true; required false
  • HTTP: POST /api/public/operations/content/posts/edit
  • MCP: manage_post (action edit) — Edit an Andy Content Post draft. Edit text, media, first comment (null removes it), X Community (xCommunity { id, shareWithFollowers }; null sends the Post back to the author's timeline), or proposed time on a pending_approval Post (Owner/Admin). An Article is edited with article { title, body, coverMediaAssetId? }, replaced whole; it refuses text and mediaAssetId, and a text Post refuses article. Approved posts use reschedule for time only.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, workspace_archived, instagram_media_required, instagram_media_unsupported, media_unsupported, media_pending, first_comment_unsupported, x_community_unsupported, x_community_not_saved, post_text_too_long, post_format_unsupported, article_body_empty, article_markdown_too_long, article_image_source_unsupported, article_link_unsupported, article_html_unsupported, idempotency_conflict, insufficient_scope

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"postId":{"type":"string","minLength":1},"text":{"type":"string","minLength":1,"maxLength":25000},"article":{"type":"object","properties":{"title":{"type":"string","minLength":1,"maxLength":1000},"body":{"type":"string","minLength":1,"maxLength":100000},"coverMediaAssetId":{"type":"string","minLength":1}},"required":["title","body"],"additionalProperties":false},"mediaAssetId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"scheduledAt":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"firstComment":{"anyOf":[{"type":"string","minLength":1,"maxLength":1250},{"type":"null"}]},"xCommunity":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","pattern":"^[0-9]{1,19}$"},"shareWithFollowers":{"type":"boolean"}},"required":["id","shareWithFollowers"],"additionalProperties":false},{"type":"null"}]},"idempotencyKey":{"type":"string","minLength":8,"maxLength":200}},"required":["postId"],"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"post":{"type":"object","properties":{"id":{"type":"string","minLength":1},"channel":{"type":"string","enum":["x","linkedin","instagram","tiktok"]},"status":{"type":"string","enum":["pending_approval","approved","published","failed","rejected"]},"revision":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"format":{"default":"text","type":"string","enum":["text","article"]},"copy":{"type":"object","properties":{"text":{"type":"string"},"hashtags":{"type":"array","items":{"type":"string"}},"cta":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["text","hashtags","cta"],"additionalProperties":false},"article":{"default":null,"anyOf":[{"type":"object","properties":{"title":{"type":"string"},"body":{"type":"string"},"coverMediaAssetId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]}},"required":["title","body","coverMediaAssetId"],"additionalProperties":false},{"type":"null"}]},"scheduledAt":{"anyOf":[{"type":"number"},{"type":"null"}]},"publishState":{"anyOf":[{"type":"string","enum":["queued","paused","publishing","manual_exported","published","failed","unknown","cancelled"]},{"type":"null"}]},"publishError":{"anyOf":[{"type":"string"},{"type":"null"}]},"externalPostId":{"anyOf":[{"type":"string"},{"type":"null"}]},"externalUrl":{"anyOf":[{"type":"string","format":"uri","pattern":"^https:\\/\\/.*"},{"type":"null"}]},"mediaAssetId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"mediaRevision":{"anyOf":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"null"}]},"tiktokSettings":{"anyOf":[{"type":"object","properties":{"privacyLevel":{"type":"string","enum":["PUBLIC_TO_EVERYONE","MUTUAL_FOLLOW_FRIENDS","FOLLOWER_OF_CREATOR","SELF_ONLY"]},"commentEnabled":{"type":"boolean"},"duetEnabled":{"type":"boolean"},"stitchEnabled":{"type":"boolean"},"commercialContent":{"type":"string","enum":["off","own_brand","branded","both"]}},"required":["privacyLevel","commentEnabled","duetEnabled","stitchEnabled","commercialContent"],"additionalProperties":false},{"type":"null"}]},"firstComment":{"anyOf":[{"type":"object","properties":{"text":{"type":"string","minLength":1},"state":{"type":"string","enum":["pending","posting","posted","failed"]},"externalId":{"anyOf":[{"type":"string"},{"type":"null"}]},"externalUrl":{"anyOf":[{"type":"string","format":"uri","pattern":"^https:\\/\\/.*"},{"type":"null"}]},"error":{"anyOf":[{"type":"string"},{"type":"null"}]},"updatedAt":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["text","state","externalId","externalUrl","error","updatedAt"],"additionalProperties":false},{"type":"null"}]},"xCommunity":{"default":null,"anyOf":[{"type":"object","properties":{"id":{"type":"string","pattern":"^[0-9]{1,19}$"},"shareWithFollowers":{"type":"boolean"},"name":{"type":"string","minLength":1,"maxLength":80}},"required":["id","shareWithFollowers","name"],"additionalProperties":false},{"type":"null"}]},"connectionId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"connectionLabel":{"anyOf":[{"type":"string"},{"type":"null"}]},"approval":{"anyOf":[{"type":"object","properties":{"approvedAt":{"type":"number"},"approvedBy":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"approvedRevision":{"anyOf":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"null"}]},"actor":{"type":"string","minLength":1},"contentHash":{"type":"string","minLength":1},"destinationFingerprint":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["approvedAt","approvedBy","approvedRevision","actor","contentHash","destinationFingerprint"],"additionalProperties":false},{"type":"null"}]},"terminalReason":{"anyOf":[{"type":"string","enum":["rejected","cancelled","dismissed"]},{"type":"null"}]},"terminalAt":{"anyOf":[{"type":"number"},{"type":"null"}]},"terminalActor":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"terminalNote":{"anyOf":[{"type":"string"},{"type":"null"}]},"nextAction":{"anyOf":[{"type":"string"},{"type":"null"}]},"createdAt":{"type":"number"},"updatedAt":{"type":"number"}},"required":["id","channel","status","revision","format","copy","article","scheduledAt","publishState","publishError","externalPostId","externalUrl","mediaAssetId","mediaRevision","tiktokSettings","xCommunity","connectionId","connectionLabel","approval","terminalReason","terminalAt","terminalActor","terminalNote","nextAction","createdAt","updatedAt"],"additionalProperties":false}},"required":["post"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

content post approve

  • Operation ID: content.post.approve
  • Authentication: workspace_api_key
  • Workspace selection: required
  • Required API Key scope: content:write
  • Minimum User role: admin
  • Mutates: true
  • Idempotency: supported true; required false
  • HTTP: POST /api/public/operations/content/posts/approve
  • MCP: manage_post (action approve) — Approve an Andy Content Post. Approve one pending_approval Post (Owner/Admin) with an explicit future scheduledAt, or publish it immediately with publishNow:true — a separate explicit intent, never the default and never derived from a missing or expired proposal. Pins content and connection, then schedules publish or dispatches now. A Workspace API Key needs content:write plus content:approve and content:schedule (or content:publish instead of content:schedule for publishNow).
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, workspace_archived, setup_required, instagram_media_required, instagram_media_unsupported, media_unsupported, media_pending, tiktok_settings_required, tiktok_consent_required, tiktok_privacy_invalid, tiktok_media_required, tiktok_media_unsupported, tiktok_media_too_long, tiktok_interaction_unavailable, tiktok_branded_private, tiktok_caption_too_long, tiktok_delivery_unconfigured, tiktok_delivery_misconfigured, tiktok_media_unmeasured, tiktok_creator_cap_missing, x_community_not_saved, post_text_too_long, post_format_unsupported, article_body_empty, article_markdown_too_long, article_image_source_unsupported, article_link_unsupported, article_html_unsupported, idempotency_conflict, insufficient_scope

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","oneOf":[{"type":"object","properties":{"postId":{"type":"string","minLength":1},"scheduledAt":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"consentAccepted":{"type":"boolean"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":200}},"required":["postId","scheduledAt"],"additionalProperties":false},{"type":"object","properties":{"postId":{"type":"string","minLength":1},"publishNow":{"type":"boolean","const":true},"consentAccepted":{"type":"boolean"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":200}},"required":["postId","publishNow"],"additionalProperties":false}]}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"post":{"type":"object","properties":{"id":{"type":"string","minLength":1},"channel":{"type":"string","enum":["x","linkedin","instagram","tiktok"]},"status":{"type":"string","enum":["pending_approval","approved","published","failed","rejected"]},"revision":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"format":{"default":"text","type":"string","enum":["text","article"]},"copy":{"type":"object","properties":{"text":{"type":"string"},"hashtags":{"type":"array","items":{"type":"string"}},"cta":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["text","hashtags","cta"],"additionalProperties":false},"article":{"default":null,"anyOf":[{"type":"object","properties":{"title":{"type":"string"},"body":{"type":"string"},"coverMediaAssetId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]}},"required":["title","body","coverMediaAssetId"],"additionalProperties":false},{"type":"null"}]},"scheduledAt":{"anyOf":[{"type":"number"},{"type":"null"}]},"publishState":{"anyOf":[{"type":"string","enum":["queued","paused","publishing","manual_exported","published","failed","unknown","cancelled"]},{"type":"null"}]},"publishError":{"anyOf":[{"type":"string"},{"type":"null"}]},"externalPostId":{"anyOf":[{"type":"string"},{"type":"null"}]},"externalUrl":{"anyOf":[{"type":"string","format":"uri","pattern":"^https:\\/\\/.*"},{"type":"null"}]},"mediaAssetId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"mediaRevision":{"anyOf":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"null"}]},"tiktokSettings":{"anyOf":[{"type":"object","properties":{"privacyLevel":{"type":"string","enum":["PUBLIC_TO_EVERYONE","MUTUAL_FOLLOW_FRIENDS","FOLLOWER_OF_CREATOR","SELF_ONLY"]},"commentEnabled":{"type":"boolean"},"duetEnabled":{"type":"boolean"},"stitchEnabled":{"type":"boolean"},"commercialContent":{"type":"string","enum":["off","own_brand","branded","both"]}},"required":["privacyLevel","commentEnabled","duetEnabled","stitchEnabled","commercialContent"],"additionalProperties":false},{"type":"null"}]},"firstComment":{"anyOf":[{"type":"object","properties":{"text":{"type":"string","minLength":1},"state":{"type":"string","enum":["pending","posting","posted","failed"]},"externalId":{"anyOf":[{"type":"string"},{"type":"null"}]},"externalUrl":{"anyOf":[{"type":"string","format":"uri","pattern":"^https:\\/\\/.*"},{"type":"null"}]},"error":{"anyOf":[{"type":"string"},{"type":"null"}]},"updatedAt":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["text","state","externalId","externalUrl","error","updatedAt"],"additionalProperties":false},{"type":"null"}]},"xCommunity":{"default":null,"anyOf":[{"type":"object","properties":{"id":{"type":"string","pattern":"^[0-9]{1,19}$"},"shareWithFollowers":{"type":"boolean"},"name":{"type":"string","minLength":1,"maxLength":80}},"required":["id","shareWithFollowers","name"],"additionalProperties":false},{"type":"null"}]},"connectionId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"connectionLabel":{"anyOf":[{"type":"string"},{"type":"null"}]},"approval":{"anyOf":[{"type":"object","properties":{"approvedAt":{"type":"number"},"approvedBy":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"approvedRevision":{"anyOf":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"null"}]},"actor":{"type":"string","minLength":1},"contentHash":{"type":"string","minLength":1},"destinationFingerprint":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["approvedAt","approvedBy","approvedRevision","actor","contentHash","destinationFingerprint"],"additionalProperties":false},{"type":"null"}]},"terminalReason":{"anyOf":[{"type":"string","enum":["rejected","cancelled","dismissed"]},{"type":"null"}]},"terminalAt":{"anyOf":[{"type":"number"},{"type":"null"}]},"terminalActor":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"terminalNote":{"anyOf":[{"type":"string"},{"type":"null"}]},"nextAction":{"anyOf":[{"type":"string"},{"type":"null"}]},"createdAt":{"type":"number"},"updatedAt":{"type":"number"}},"required":["id","channel","status","revision","format","copy","article","scheduledAt","publishState","publishError","externalPostId","externalUrl","mediaAssetId","mediaRevision","tiktokSettings","xCommunity","connectionId","connectionLabel","approval","terminalReason","terminalAt","terminalActor","terminalNote","nextAction","createdAt","updatedAt"],"additionalProperties":false}},"required":["post"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

content post reject

  • Operation ID: content.post.reject
  • Authentication: workspace_api_key
  • Workspace selection: required
  • Required API Key scope: content:write
  • Minimum User role: admin
  • Mutates: true
  • Idempotency: supported true; required false
  • HTTP: POST /api/public/operations/content/posts/reject
  • MCP: manage_post (action reject) — Reject an Andy Content Post. Reject one pending_approval Post (Owner/Admin). Rejected is terminal — no redraft loop. An optional note records why.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, workspace_archived, idempotency_conflict, insufficient_scope

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"postId":{"type":"string","minLength":1},"note":{"type":"string","maxLength":2000},"idempotencyKey":{"type":"string","minLength":8,"maxLength":200}},"required":["postId"],"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"post":{"type":"object","properties":{"id":{"type":"string","minLength":1},"channel":{"type":"string","enum":["x","linkedin","instagram","tiktok"]},"status":{"type":"string","enum":["pending_approval","approved","published","failed","rejected"]},"revision":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"format":{"default":"text","type":"string","enum":["text","article"]},"copy":{"type":"object","properties":{"text":{"type":"string"},"hashtags":{"type":"array","items":{"type":"string"}},"cta":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["text","hashtags","cta"],"additionalProperties":false},"article":{"default":null,"anyOf":[{"type":"object","properties":{"title":{"type":"string"},"body":{"type":"string"},"coverMediaAssetId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]}},"required":["title","body","coverMediaAssetId"],"additionalProperties":false},{"type":"null"}]},"scheduledAt":{"anyOf":[{"type":"number"},{"type":"null"}]},"publishState":{"anyOf":[{"type":"string","enum":["queued","paused","publishing","manual_exported","published","failed","unknown","cancelled"]},{"type":"null"}]},"publishError":{"anyOf":[{"type":"string"},{"type":"null"}]},"externalPostId":{"anyOf":[{"type":"string"},{"type":"null"}]},"externalUrl":{"anyOf":[{"type":"string","format":"uri","pattern":"^https:\\/\\/.*"},{"type":"null"}]},"mediaAssetId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"mediaRevision":{"anyOf":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"null"}]},"tiktokSettings":{"anyOf":[{"type":"object","properties":{"privacyLevel":{"type":"string","enum":["PUBLIC_TO_EVERYONE","MUTUAL_FOLLOW_FRIENDS","FOLLOWER_OF_CREATOR","SELF_ONLY"]},"commentEnabled":{"type":"boolean"},"duetEnabled":{"type":"boolean"},"stitchEnabled":{"type":"boolean"},"commercialContent":{"type":"string","enum":["off","own_brand","branded","both"]}},"required":["privacyLevel","commentEnabled","duetEnabled","stitchEnabled","commercialContent"],"additionalProperties":false},{"type":"null"}]},"firstComment":{"anyOf":[{"type":"object","properties":{"text":{"type":"string","minLength":1},"state":{"type":"string","enum":["pending","posting","posted","failed"]},"externalId":{"anyOf":[{"type":"string"},{"type":"null"}]},"externalUrl":{"anyOf":[{"type":"string","format":"uri","pattern":"^https:\\/\\/.*"},{"type":"null"}]},"error":{"anyOf":[{"type":"string"},{"type":"null"}]},"updatedAt":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["text","state","externalId","externalUrl","error","updatedAt"],"additionalProperties":false},{"type":"null"}]},"xCommunity":{"default":null,"anyOf":[{"type":"object","properties":{"id":{"type":"string","pattern":"^[0-9]{1,19}$"},"shareWithFollowers":{"type":"boolean"},"name":{"type":"string","minLength":1,"maxLength":80}},"required":["id","shareWithFollowers","name"],"additionalProperties":false},{"type":"null"}]},"connectionId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"connectionLabel":{"anyOf":[{"type":"string"},{"type":"null"}]},"approval":{"anyOf":[{"type":"object","properties":{"approvedAt":{"type":"number"},"approvedBy":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"approvedRevision":{"anyOf":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"null"}]},"actor":{"type":"string","minLength":1},"contentHash":{"type":"string","minLength":1},"destinationFingerprint":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["approvedAt","approvedBy","approvedRevision","actor","contentHash","destinationFingerprint"],"additionalProperties":false},{"type":"null"}]},"terminalReason":{"anyOf":[{"type":"string","enum":["rejected","cancelled","dismissed"]},{"type":"null"}]},"terminalAt":{"anyOf":[{"type":"number"},{"type":"null"}]},"terminalActor":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"terminalNote":{"anyOf":[{"type":"string"},{"type":"null"}]},"nextAction":{"anyOf":[{"type":"string"},{"type":"null"}]},"createdAt":{"type":"number"},"updatedAt":{"type":"number"}},"required":["id","channel","status","revision","format","copy","article","scheduledAt","publishState","publishError","externalPostId","externalUrl","mediaAssetId","mediaRevision","tiktokSettings","xCommunity","connectionId","connectionLabel","approval","terminalReason","terminalAt","terminalActor","terminalNote","nextAction","createdAt","updatedAt"],"additionalProperties":false}},"required":["post"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

content post cancel

  • Operation ID: content.post.cancel
  • Authentication: oauth_token, workspace_api_key
  • Workspace selection: required
  • Required API Key scope: content:write
  • Minimum User role: none
  • Mutates: true
  • Idempotency: supported true; required false
  • HTTP: POST /api/public/operations/content/posts/cancel
  • MCP: manage_post (action cancel) — Cancel an Andy Content Post. Cancel a pending draft or an approved Post still queued for dispatch. Lands as rejected with terminalReason=cancelled. A TikTok Post paused for lost access (#2107) stays cancellable. Reschedule on approved/no-attempt creates the queued attempt and arms dispatch atomically.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, workspace_archived, entitlement_required, idempotency_conflict, insufficient_scope

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"postId":{"type":"string","minLength":1},"idempotencyKey":{"type":"string","minLength":8,"maxLength":200}},"required":["postId"],"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"post":{"type":"object","properties":{"id":{"type":"string","minLength":1},"channel":{"type":"string","enum":["x","linkedin","instagram","tiktok"]},"status":{"type":"string","enum":["pending_approval","approved","published","failed","rejected"]},"revision":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"format":{"default":"text","type":"string","enum":["text","article"]},"copy":{"type":"object","properties":{"text":{"type":"string"},"hashtags":{"type":"array","items":{"type":"string"}},"cta":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["text","hashtags","cta"],"additionalProperties":false},"article":{"default":null,"anyOf":[{"type":"object","properties":{"title":{"type":"string"},"body":{"type":"string"},"coverMediaAssetId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]}},"required":["title","body","coverMediaAssetId"],"additionalProperties":false},{"type":"null"}]},"scheduledAt":{"anyOf":[{"type":"number"},{"type":"null"}]},"publishState":{"anyOf":[{"type":"string","enum":["queued","paused","publishing","manual_exported","published","failed","unknown","cancelled"]},{"type":"null"}]},"publishError":{"anyOf":[{"type":"string"},{"type":"null"}]},"externalPostId":{"anyOf":[{"type":"string"},{"type":"null"}]},"externalUrl":{"anyOf":[{"type":"string","format":"uri","pattern":"^https:\\/\\/.*"},{"type":"null"}]},"mediaAssetId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"mediaRevision":{"anyOf":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"null"}]},"tiktokSettings":{"anyOf":[{"type":"object","properties":{"privacyLevel":{"type":"string","enum":["PUBLIC_TO_EVERYONE","MUTUAL_FOLLOW_FRIENDS","FOLLOWER_OF_CREATOR","SELF_ONLY"]},"commentEnabled":{"type":"boolean"},"duetEnabled":{"type":"boolean"},"stitchEnabled":{"type":"boolean"},"commercialContent":{"type":"string","enum":["off","own_brand","branded","both"]}},"required":["privacyLevel","commentEnabled","duetEnabled","stitchEnabled","commercialContent"],"additionalProperties":false},{"type":"null"}]},"firstComment":{"anyOf":[{"type":"object","properties":{"text":{"type":"string","minLength":1},"state":{"type":"string","enum":["pending","posting","posted","failed"]},"externalId":{"anyOf":[{"type":"string"},{"type":"null"}]},"externalUrl":{"anyOf":[{"type":"string","format":"uri","pattern":"^https:\\/\\/.*"},{"type":"null"}]},"error":{"anyOf":[{"type":"string"},{"type":"null"}]},"updatedAt":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["text","state","externalId","externalUrl","error","updatedAt"],"additionalProperties":false},{"type":"null"}]},"xCommunity":{"default":null,"anyOf":[{"type":"object","properties":{"id":{"type":"string","pattern":"^[0-9]{1,19}$"},"shareWithFollowers":{"type":"boolean"},"name":{"type":"string","minLength":1,"maxLength":80}},"required":["id","shareWithFollowers","name"],"additionalProperties":false},{"type":"null"}]},"connectionId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"connectionLabel":{"anyOf":[{"type":"string"},{"type":"null"}]},"approval":{"anyOf":[{"type":"object","properties":{"approvedAt":{"type":"number"},"approvedBy":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"approvedRevision":{"anyOf":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"null"}]},"actor":{"type":"string","minLength":1},"contentHash":{"type":"string","minLength":1},"destinationFingerprint":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["approvedAt","approvedBy","approvedRevision","actor","contentHash","destinationFingerprint"],"additionalProperties":false},{"type":"null"}]},"terminalReason":{"anyOf":[{"type":"string","enum":["rejected","cancelled","dismissed"]},{"type":"null"}]},"terminalAt":{"anyOf":[{"type":"number"},{"type":"null"}]},"terminalActor":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"terminalNote":{"anyOf":[{"type":"string"},{"type":"null"}]},"nextAction":{"anyOf":[{"type":"string"},{"type":"null"}]},"createdAt":{"type":"number"},"updatedAt":{"type":"number"}},"required":["id","channel","status","revision","format","copy","article","scheduledAt","publishState","publishError","externalPostId","externalUrl","mediaAssetId","mediaRevision","tiktokSettings","xCommunity","connectionId","connectionLabel","approval","terminalReason","terminalAt","terminalActor","terminalNote","nextAction","createdAt","updatedAt"],"additionalProperties":false}},"required":["post"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

content post dismiss

  • Operation ID: content.post.dismiss
  • Authentication: workspace_api_key
  • Workspace selection: required
  • Required API Key scope: content:write
  • Minimum User role: admin
  • Mutates: true
  • Idempotency: supported true; required false
  • HTTP: POST /api/public/operations/content/posts/dismiss
  • MCP: manage_post (action dismiss) — Dismiss a failed or unknown-outcome Andy Content Post. Dismiss one failed Post, or one approved Post whose publishState is unknown and confirmed unpublished, for Owner/Admin. Lands as rejected with terminalReason=dismissed, keeping the failed/unknown attempt as the history fact and leaving Te necesitan and the approval queue. No provider call, no job, never publishes, never retries. A Workspace API Key needs content:write.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, workspace_archived, idempotency_conflict, insufficient_scope

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"postId":{"type":"string","minLength":1},"note":{"type":"string","maxLength":2000},"idempotencyKey":{"type":"string","minLength":8,"maxLength":200}},"required":["postId"],"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"post":{"type":"object","properties":{"id":{"type":"string","minLength":1},"channel":{"type":"string","enum":["x","linkedin","instagram","tiktok"]},"status":{"type":"string","enum":["pending_approval","approved","published","failed","rejected"]},"revision":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"format":{"default":"text","type":"string","enum":["text","article"]},"copy":{"type":"object","properties":{"text":{"type":"string"},"hashtags":{"type":"array","items":{"type":"string"}},"cta":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["text","hashtags","cta"],"additionalProperties":false},"article":{"default":null,"anyOf":[{"type":"object","properties":{"title":{"type":"string"},"body":{"type":"string"},"coverMediaAssetId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]}},"required":["title","body","coverMediaAssetId"],"additionalProperties":false},{"type":"null"}]},"scheduledAt":{"anyOf":[{"type":"number"},{"type":"null"}]},"publishState":{"anyOf":[{"type":"string","enum":["queued","paused","publishing","manual_exported","published","failed","unknown","cancelled"]},{"type":"null"}]},"publishError":{"anyOf":[{"type":"string"},{"type":"null"}]},"externalPostId":{"anyOf":[{"type":"string"},{"type":"null"}]},"externalUrl":{"anyOf":[{"type":"string","format":"uri","pattern":"^https:\\/\\/.*"},{"type":"null"}]},"mediaAssetId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"mediaRevision":{"anyOf":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"null"}]},"tiktokSettings":{"anyOf":[{"type":"object","properties":{"privacyLevel":{"type":"string","enum":["PUBLIC_TO_EVERYONE","MUTUAL_FOLLOW_FRIENDS","FOLLOWER_OF_CREATOR","SELF_ONLY"]},"commentEnabled":{"type":"boolean"},"duetEnabled":{"type":"boolean"},"stitchEnabled":{"type":"boolean"},"commercialContent":{"type":"string","enum":["off","own_brand","branded","both"]}},"required":["privacyLevel","commentEnabled","duetEnabled","stitchEnabled","commercialContent"],"additionalProperties":false},{"type":"null"}]},"firstComment":{"anyOf":[{"type":"object","properties":{"text":{"type":"string","minLength":1},"state":{"type":"string","enum":["pending","posting","posted","failed"]},"externalId":{"anyOf":[{"type":"string"},{"type":"null"}]},"externalUrl":{"anyOf":[{"type":"string","format":"uri","pattern":"^https:\\/\\/.*"},{"type":"null"}]},"error":{"anyOf":[{"type":"string"},{"type":"null"}]},"updatedAt":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["text","state","externalId","externalUrl","error","updatedAt"],"additionalProperties":false},{"type":"null"}]},"xCommunity":{"default":null,"anyOf":[{"type":"object","properties":{"id":{"type":"string","pattern":"^[0-9]{1,19}$"},"shareWithFollowers":{"type":"boolean"},"name":{"type":"string","minLength":1,"maxLength":80}},"required":["id","shareWithFollowers","name"],"additionalProperties":false},{"type":"null"}]},"connectionId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"connectionLabel":{"anyOf":[{"type":"string"},{"type":"null"}]},"approval":{"anyOf":[{"type":"object","properties":{"approvedAt":{"type":"number"},"approvedBy":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"approvedRevision":{"anyOf":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"null"}]},"actor":{"type":"string","minLength":1},"contentHash":{"type":"string","minLength":1},"destinationFingerprint":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["approvedAt","approvedBy","approvedRevision","actor","contentHash","destinationFingerprint"],"additionalProperties":false},{"type":"null"}]},"terminalReason":{"anyOf":[{"type":"string","enum":["rejected","cancelled","dismissed"]},{"type":"null"}]},"terminalAt":{"anyOf":[{"type":"number"},{"type":"null"}]},"terminalActor":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"terminalNote":{"anyOf":[{"type":"string"},{"type":"null"}]},"nextAction":{"anyOf":[{"type":"string"},{"type":"null"}]},"createdAt":{"type":"number"},"updatedAt":{"type":"number"}},"required":["id","channel","status","revision","format","copy","article","scheduledAt","publishState","publishError","externalPostId","externalUrl","mediaAssetId","mediaRevision","tiktokSettings","xCommunity","connectionId","connectionLabel","approval","terminalReason","terminalAt","terminalActor","terminalNote","nextAction","createdAt","updatedAt"],"additionalProperties":false}},"required":["post"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

content post reschedule

  • Operation ID: content.post.reschedule
  • Authentication: oauth_token, workspace_api_key
  • Workspace selection: required
  • Required API Key scope: content:write
  • Minimum User role: none
  • Mutates: true
  • Idempotency: supported true; required false
  • HTTP: POST /api/public/operations/content/posts/reschedule
  • MCP: manage_post (action reschedule) — Reschedule an Andy Content Post. Move the proposed or queued publish time of a pending or approved Post. Approved rows with no publish attempt get a queued attempt and dispatch armed atomically. Rescheduling an approved Post needs Owner/Admin (a Workspace API Key needs content:schedule plus content:write); moving a pending proposal needs only content:write.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, workspace_archived, entitlement_required, idempotency_conflict, insufficient_scope

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"postId":{"type":"string","minLength":1},"scheduledAt":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"idempotencyKey":{"type":"string","minLength":8,"maxLength":200}},"required":["postId","scheduledAt"],"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"post":{"type":"object","properties":{"id":{"type":"string","minLength":1},"channel":{"type":"string","enum":["x","linkedin","instagram","tiktok"]},"status":{"type":"string","enum":["pending_approval","approved","published","failed","rejected"]},"revision":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"format":{"default":"text","type":"string","enum":["text","article"]},"copy":{"type":"object","properties":{"text":{"type":"string"},"hashtags":{"type":"array","items":{"type":"string"}},"cta":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["text","hashtags","cta"],"additionalProperties":false},"article":{"default":null,"anyOf":[{"type":"object","properties":{"title":{"type":"string"},"body":{"type":"string"},"coverMediaAssetId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]}},"required":["title","body","coverMediaAssetId"],"additionalProperties":false},{"type":"null"}]},"scheduledAt":{"anyOf":[{"type":"number"},{"type":"null"}]},"publishState":{"anyOf":[{"type":"string","enum":["queued","paused","publishing","manual_exported","published","failed","unknown","cancelled"]},{"type":"null"}]},"publishError":{"anyOf":[{"type":"string"},{"type":"null"}]},"externalPostId":{"anyOf":[{"type":"string"},{"type":"null"}]},"externalUrl":{"anyOf":[{"type":"string","format":"uri","pattern":"^https:\\/\\/.*"},{"type":"null"}]},"mediaAssetId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"mediaRevision":{"anyOf":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"null"}]},"tiktokSettings":{"anyOf":[{"type":"object","properties":{"privacyLevel":{"type":"string","enum":["PUBLIC_TO_EVERYONE","MUTUAL_FOLLOW_FRIENDS","FOLLOWER_OF_CREATOR","SELF_ONLY"]},"commentEnabled":{"type":"boolean"},"duetEnabled":{"type":"boolean"},"stitchEnabled":{"type":"boolean"},"commercialContent":{"type":"string","enum":["off","own_brand","branded","both"]}},"required":["privacyLevel","commentEnabled","duetEnabled","stitchEnabled","commercialContent"],"additionalProperties":false},{"type":"null"}]},"firstComment":{"anyOf":[{"type":"object","properties":{"text":{"type":"string","minLength":1},"state":{"type":"string","enum":["pending","posting","posted","failed"]},"externalId":{"anyOf":[{"type":"string"},{"type":"null"}]},"externalUrl":{"anyOf":[{"type":"string","format":"uri","pattern":"^https:\\/\\/.*"},{"type":"null"}]},"error":{"anyOf":[{"type":"string"},{"type":"null"}]},"updatedAt":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["text","state","externalId","externalUrl","error","updatedAt"],"additionalProperties":false},{"type":"null"}]},"xCommunity":{"default":null,"anyOf":[{"type":"object","properties":{"id":{"type":"string","pattern":"^[0-9]{1,19}$"},"shareWithFollowers":{"type":"boolean"},"name":{"type":"string","minLength":1,"maxLength":80}},"required":["id","shareWithFollowers","name"],"additionalProperties":false},{"type":"null"}]},"connectionId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"connectionLabel":{"anyOf":[{"type":"string"},{"type":"null"}]},"approval":{"anyOf":[{"type":"object","properties":{"approvedAt":{"type":"number"},"approvedBy":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"approvedRevision":{"anyOf":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"null"}]},"actor":{"type":"string","minLength":1},"contentHash":{"type":"string","minLength":1},"destinationFingerprint":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["approvedAt","approvedBy","approvedRevision","actor","contentHash","destinationFingerprint"],"additionalProperties":false},{"type":"null"}]},"terminalReason":{"anyOf":[{"type":"string","enum":["rejected","cancelled","dismissed"]},{"type":"null"}]},"terminalAt":{"anyOf":[{"type":"number"},{"type":"null"}]},"terminalActor":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"terminalNote":{"anyOf":[{"type":"string"},{"type":"null"}]},"nextAction":{"anyOf":[{"type":"string"},{"type":"null"}]},"createdAt":{"type":"number"},"updatedAt":{"type":"number"}},"required":["id","channel","status","revision","format","copy","article","scheduledAt","publishState","publishError","externalPostId","externalUrl","mediaAssetId","mediaRevision","tiktokSettings","xCommunity","connectionId","connectionLabel","approval","terminalReason","terminalAt","terminalActor","terminalNote","nextAction","createdAt","updatedAt"],"additionalProperties":false}},"required":["post"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

content post pause

  • Operation ID: content.post.pause
  • Authentication: oauth_token, workspace_api_key
  • Workspace selection: required
  • Required API Key scope: content:write
  • Minimum User role: none
  • Mutates: true
  • Idempotency: supported true; required false
  • HTTP: POST /api/public/operations/content/posts/pause
  • MCP: manage_post (action pause) — Pause an Andy Content Post. Pause an approved queued Post without losing approval or its target. Paused posts cannot dispatch. A Member or content:write key may stop delivery.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, workspace_archived, entitlement_required, idempotency_conflict, insufficient_scope

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"postId":{"type":"string","minLength":1},"idempotencyKey":{"type":"string","minLength":8,"maxLength":200}},"required":["postId"],"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"post":{"type":"object","properties":{"id":{"type":"string","minLength":1},"channel":{"type":"string","enum":["x","linkedin","instagram","tiktok"]},"status":{"type":"string","enum":["pending_approval","approved","published","failed","rejected"]},"revision":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"format":{"default":"text","type":"string","enum":["text","article"]},"copy":{"type":"object","properties":{"text":{"type":"string"},"hashtags":{"type":"array","items":{"type":"string"}},"cta":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["text","hashtags","cta"],"additionalProperties":false},"article":{"default":null,"anyOf":[{"type":"object","properties":{"title":{"type":"string"},"body":{"type":"string"},"coverMediaAssetId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]}},"required":["title","body","coverMediaAssetId"],"additionalProperties":false},{"type":"null"}]},"scheduledAt":{"anyOf":[{"type":"number"},{"type":"null"}]},"publishState":{"anyOf":[{"type":"string","enum":["queued","paused","publishing","manual_exported","published","failed","unknown","cancelled"]},{"type":"null"}]},"publishError":{"anyOf":[{"type":"string"},{"type":"null"}]},"externalPostId":{"anyOf":[{"type":"string"},{"type":"null"}]},"externalUrl":{"anyOf":[{"type":"string","format":"uri","pattern":"^https:\\/\\/.*"},{"type":"null"}]},"mediaAssetId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"mediaRevision":{"anyOf":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"null"}]},"tiktokSettings":{"anyOf":[{"type":"object","properties":{"privacyLevel":{"type":"string","enum":["PUBLIC_TO_EVERYONE","MUTUAL_FOLLOW_FRIENDS","FOLLOWER_OF_CREATOR","SELF_ONLY"]},"commentEnabled":{"type":"boolean"},"duetEnabled":{"type":"boolean"},"stitchEnabled":{"type":"boolean"},"commercialContent":{"type":"string","enum":["off","own_brand","branded","both"]}},"required":["privacyLevel","commentEnabled","duetEnabled","stitchEnabled","commercialContent"],"additionalProperties":false},{"type":"null"}]},"firstComment":{"anyOf":[{"type":"object","properties":{"text":{"type":"string","minLength":1},"state":{"type":"string","enum":["pending","posting","posted","failed"]},"externalId":{"anyOf":[{"type":"string"},{"type":"null"}]},"externalUrl":{"anyOf":[{"type":"string","format":"uri","pattern":"^https:\\/\\/.*"},{"type":"null"}]},"error":{"anyOf":[{"type":"string"},{"type":"null"}]},"updatedAt":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["text","state","externalId","externalUrl","error","updatedAt"],"additionalProperties":false},{"type":"null"}]},"xCommunity":{"default":null,"anyOf":[{"type":"object","properties":{"id":{"type":"string","pattern":"^[0-9]{1,19}$"},"shareWithFollowers":{"type":"boolean"},"name":{"type":"string","minLength":1,"maxLength":80}},"required":["id","shareWithFollowers","name"],"additionalProperties":false},{"type":"null"}]},"connectionId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"connectionLabel":{"anyOf":[{"type":"string"},{"type":"null"}]},"approval":{"anyOf":[{"type":"object","properties":{"approvedAt":{"type":"number"},"approvedBy":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"approvedRevision":{"anyOf":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"null"}]},"actor":{"type":"string","minLength":1},"contentHash":{"type":"string","minLength":1},"destinationFingerprint":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["approvedAt","approvedBy","approvedRevision","actor","contentHash","destinationFingerprint"],"additionalProperties":false},{"type":"null"}]},"terminalReason":{"anyOf":[{"type":"string","enum":["rejected","cancelled","dismissed"]},{"type":"null"}]},"terminalAt":{"anyOf":[{"type":"number"},{"type":"null"}]},"terminalActor":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"terminalNote":{"anyOf":[{"type":"string"},{"type":"null"}]},"nextAction":{"anyOf":[{"type":"string"},{"type":"null"}]},"createdAt":{"type":"number"},"updatedAt":{"type":"number"}},"required":["id","channel","status","revision","format","copy","article","scheduledAt","publishState","publishError","externalPostId","externalUrl","mediaAssetId","mediaRevision","tiktokSettings","xCommunity","connectionId","connectionLabel","approval","terminalReason","terminalAt","terminalActor","terminalNote","nextAction","createdAt","updatedAt"],"additionalProperties":false}},"required":["post"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

content post retry-first-comment

  • Operation ID: content.post.retry_first_comment
  • Authentication: oauth_token, workspace_api_key
  • Workspace selection: required
  • Required API Key scope: content:write
  • Minimum User role: admin
  • Mutates: true
  • Idempotency: supported true; required false
  • HTTP: POST /api/public/operations/content/posts/retry-first-comment
  • MCP: manage_post (action retry_first_comment) — Retry an Andy Post's first comment. Post the first comment again for a published Post whose firstComment.state is failed. Only the comment is retried; the Post itself is never republished. It posts through the Post's connection; when that connection was replaced by a reconnect, through its single replacement. Optional connectionId (a list_connections row of the same workspace, provider and target, connected, with the comment scope) picks the connection explicitly and is required when the replacement is ambiguous. Owner/Admin, or an API key with content:write and content:publish.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, workspace_archived, entitlement_required, idempotency_conflict, insufficient_scope

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"postId":{"type":"string","minLength":1},"connectionId":{"type":"string","minLength":1},"idempotencyKey":{"type":"string","minLength":8,"maxLength":200}},"required":["postId"],"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"post":{"type":"object","properties":{"id":{"type":"string","minLength":1},"channel":{"type":"string","enum":["x","linkedin","instagram","tiktok"]},"status":{"type":"string","enum":["pending_approval","approved","published","failed","rejected"]},"revision":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"format":{"default":"text","type":"string","enum":["text","article"]},"copy":{"type":"object","properties":{"text":{"type":"string"},"hashtags":{"type":"array","items":{"type":"string"}},"cta":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["text","hashtags","cta"],"additionalProperties":false},"article":{"default":null,"anyOf":[{"type":"object","properties":{"title":{"type":"string"},"body":{"type":"string"},"coverMediaAssetId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]}},"required":["title","body","coverMediaAssetId"],"additionalProperties":false},{"type":"null"}]},"scheduledAt":{"anyOf":[{"type":"number"},{"type":"null"}]},"publishState":{"anyOf":[{"type":"string","enum":["queued","paused","publishing","manual_exported","published","failed","unknown","cancelled"]},{"type":"null"}]},"publishError":{"anyOf":[{"type":"string"},{"type":"null"}]},"externalPostId":{"anyOf":[{"type":"string"},{"type":"null"}]},"externalUrl":{"anyOf":[{"type":"string","format":"uri","pattern":"^https:\\/\\/.*"},{"type":"null"}]},"mediaAssetId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"mediaRevision":{"anyOf":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"null"}]},"tiktokSettings":{"anyOf":[{"type":"object","properties":{"privacyLevel":{"type":"string","enum":["PUBLIC_TO_EVERYONE","MUTUAL_FOLLOW_FRIENDS","FOLLOWER_OF_CREATOR","SELF_ONLY"]},"commentEnabled":{"type":"boolean"},"duetEnabled":{"type":"boolean"},"stitchEnabled":{"type":"boolean"},"commercialContent":{"type":"string","enum":["off","own_brand","branded","both"]}},"required":["privacyLevel","commentEnabled","duetEnabled","stitchEnabled","commercialContent"],"additionalProperties":false},{"type":"null"}]},"firstComment":{"anyOf":[{"type":"object","properties":{"text":{"type":"string","minLength":1},"state":{"type":"string","enum":["pending","posting","posted","failed"]},"externalId":{"anyOf":[{"type":"string"},{"type":"null"}]},"externalUrl":{"anyOf":[{"type":"string","format":"uri","pattern":"^https:\\/\\/.*"},{"type":"null"}]},"error":{"anyOf":[{"type":"string"},{"type":"null"}]},"updatedAt":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["text","state","externalId","externalUrl","error","updatedAt"],"additionalProperties":false},{"type":"null"}]},"xCommunity":{"default":null,"anyOf":[{"type":"object","properties":{"id":{"type":"string","pattern":"^[0-9]{1,19}$"},"shareWithFollowers":{"type":"boolean"},"name":{"type":"string","minLength":1,"maxLength":80}},"required":["id","shareWithFollowers","name"],"additionalProperties":false},{"type":"null"}]},"connectionId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"connectionLabel":{"anyOf":[{"type":"string"},{"type":"null"}]},"approval":{"anyOf":[{"type":"object","properties":{"approvedAt":{"type":"number"},"approvedBy":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"approvedRevision":{"anyOf":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"null"}]},"actor":{"type":"string","minLength":1},"contentHash":{"type":"string","minLength":1},"destinationFingerprint":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["approvedAt","approvedBy","approvedRevision","actor","contentHash","destinationFingerprint"],"additionalProperties":false},{"type":"null"}]},"terminalReason":{"anyOf":[{"type":"string","enum":["rejected","cancelled","dismissed"]},{"type":"null"}]},"terminalAt":{"anyOf":[{"type":"number"},{"type":"null"}]},"terminalActor":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"terminalNote":{"anyOf":[{"type":"string"},{"type":"null"}]},"nextAction":{"anyOf":[{"type":"string"},{"type":"null"}]},"createdAt":{"type":"number"},"updatedAt":{"type":"number"}},"required":["id","channel","status","revision","format","copy","article","scheduledAt","publishState","publishError","externalPostId","externalUrl","mediaAssetId","mediaRevision","tiktokSettings","xCommunity","connectionId","connectionLabel","approval","terminalReason","terminalAt","terminalActor","terminalNote","nextAction","createdAt","updatedAt"],"additionalProperties":false}},"required":["post"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

content post resume

  • Operation ID: content.post.resume
  • Authentication: oauth_token, workspace_api_key
  • Workspace selection: required
  • Required API Key scope: content:write
  • Minimum User role: admin
  • Mutates: true
  • Idempotency: supported true; required false
  • HTTP: POST /api/public/operations/content/posts/resume
  • MCP: manage_post (action resume) — Resume an Andy Content Post. Resume a paused approved Post at an explicit future scheduledAt. Revalidates its exact connected target. Requires Owner/Admin or an API key with content:write and content:schedule. Never publishes immediately.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, workspace_archived, entitlement_required, idempotency_conflict, insufficient_scope

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"postId":{"type":"string","minLength":1},"scheduledAt":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"idempotencyKey":{"type":"string","minLength":8,"maxLength":200}},"required":["postId","scheduledAt"],"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"post":{"type":"object","properties":{"id":{"type":"string","minLength":1},"channel":{"type":"string","enum":["x","linkedin","instagram","tiktok"]},"status":{"type":"string","enum":["pending_approval","approved","published","failed","rejected"]},"revision":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"format":{"default":"text","type":"string","enum":["text","article"]},"copy":{"type":"object","properties":{"text":{"type":"string"},"hashtags":{"type":"array","items":{"type":"string"}},"cta":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["text","hashtags","cta"],"additionalProperties":false},"article":{"default":null,"anyOf":[{"type":"object","properties":{"title":{"type":"string"},"body":{"type":"string"},"coverMediaAssetId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]}},"required":["title","body","coverMediaAssetId"],"additionalProperties":false},{"type":"null"}]},"scheduledAt":{"anyOf":[{"type":"number"},{"type":"null"}]},"publishState":{"anyOf":[{"type":"string","enum":["queued","paused","publishing","manual_exported","published","failed","unknown","cancelled"]},{"type":"null"}]},"publishError":{"anyOf":[{"type":"string"},{"type":"null"}]},"externalPostId":{"anyOf":[{"type":"string"},{"type":"null"}]},"externalUrl":{"anyOf":[{"type":"string","format":"uri","pattern":"^https:\\/\\/.*"},{"type":"null"}]},"mediaAssetId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"mediaRevision":{"anyOf":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"null"}]},"tiktokSettings":{"anyOf":[{"type":"object","properties":{"privacyLevel":{"type":"string","enum":["PUBLIC_TO_EVERYONE","MUTUAL_FOLLOW_FRIENDS","FOLLOWER_OF_CREATOR","SELF_ONLY"]},"commentEnabled":{"type":"boolean"},"duetEnabled":{"type":"boolean"},"stitchEnabled":{"type":"boolean"},"commercialContent":{"type":"string","enum":["off","own_brand","branded","both"]}},"required":["privacyLevel","commentEnabled","duetEnabled","stitchEnabled","commercialContent"],"additionalProperties":false},{"type":"null"}]},"firstComment":{"anyOf":[{"type":"object","properties":{"text":{"type":"string","minLength":1},"state":{"type":"string","enum":["pending","posting","posted","failed"]},"externalId":{"anyOf":[{"type":"string"},{"type":"null"}]},"externalUrl":{"anyOf":[{"type":"string","format":"uri","pattern":"^https:\\/\\/.*"},{"type":"null"}]},"error":{"anyOf":[{"type":"string"},{"type":"null"}]},"updatedAt":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["text","state","externalId","externalUrl","error","updatedAt"],"additionalProperties":false},{"type":"null"}]},"xCommunity":{"default":null,"anyOf":[{"type":"object","properties":{"id":{"type":"string","pattern":"^[0-9]{1,19}$"},"shareWithFollowers":{"type":"boolean"},"name":{"type":"string","minLength":1,"maxLength":80}},"required":["id","shareWithFollowers","name"],"additionalProperties":false},{"type":"null"}]},"connectionId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"connectionLabel":{"anyOf":[{"type":"string"},{"type":"null"}]},"approval":{"anyOf":[{"type":"object","properties":{"approvedAt":{"type":"number"},"approvedBy":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"approvedRevision":{"anyOf":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"null"}]},"actor":{"type":"string","minLength":1},"contentHash":{"type":"string","minLength":1},"destinationFingerprint":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["approvedAt","approvedBy","approvedRevision","actor","contentHash","destinationFingerprint"],"additionalProperties":false},{"type":"null"}]},"terminalReason":{"anyOf":[{"type":"string","enum":["rejected","cancelled","dismissed"]},{"type":"null"}]},"terminalAt":{"anyOf":[{"type":"number"},{"type":"null"}]},"terminalActor":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"terminalNote":{"anyOf":[{"type":"string"},{"type":"null"}]},"nextAction":{"anyOf":[{"type":"string"},{"type":"null"}]},"createdAt":{"type":"number"},"updatedAt":{"type":"number"}},"required":["id","channel","status","revision","format","copy","article","scheduledAt","publishState","publishError","externalPostId","externalUrl","mediaAssetId","mediaRevision","tiktokSettings","xCommunity","connectionId","connectionLabel","approval","terminalReason","terminalAt","terminalActor","terminalNote","nextAction","createdAt","updatedAt"],"additionalProperties":false}},"required":["post"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

conversation list

  • Operation ID: conversation.list
  • Authentication: oauth_token, workspace_api_key
  • Workspace selection: required
  • Required API Key scope: agent:read
  • Minimum User role: none
  • Mutates: false
  • Idempotency: supported false; required false
  • HTTP: POST /api/public/operations/conversation/list
  • MCP: list_conversations — List Andy Conversations. List Workspace Conversations as flat rows sorted by recency, aggregated across every active Agent unless agentId narrows it. Each row carries Workspace and Agent identity, customer label, channel, needs-human status, handoff state, sender-block fact, a preview of at most 160 characters, and the Message count. Production traffic only; raw provider metadata never crosses this boundary.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, workspace_archived, entitlement_required

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"agentId":{"type":"string","minLength":1},"channel":{"type":"string","enum":["whatsapp","instagram","slack","voice","widget","public_url"]},"status":{"type":"string","enum":["needs_human","waiting","resolved"]},"since":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"cursor":{"type":"string","minLength":1},"pageSize":{"default":20,"type":"integer","minimum":1,"maximum":100}},"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"conversations":{"type":"array","items":{"type":"object","properties":{"workspaceId":{"type":"string","minLength":1},"workspaceName":{"type":"string","minLength":1},"agentId":{"type":"string","minLength":1},"agentName":{"type":"string","minLength":1},"sessionId":{"type":"string","minLength":1},"customerLabel":{"type":"string","minLength":1},"channel":{"type":"string","minLength":1},"channelLabel":{"type":"string","minLength":1},"status":{"type":"string","enum":["needs_human","waiting","resolved"]},"handoffState":{"type":"string","enum":["agent_active","paused_by_andy","paused_by_human"]},"senderBlocked":{"type":"boolean"},"lastMessageRole":{"type":"string","enum":["visitor","agent"]},"lastMessagePreview":{"type":"string"},"lastMessageAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"messageCount":{"type":"integer","minimum":0,"maximum":9007199254740991},"messageCountCapped":{"description":"True when the Conversation has more Messages than messageCount; the count is capped per Conversation.","type":"boolean"}},"required":["workspaceId","workspaceName","agentId","agentName","sessionId","customerLabel","channel","channelLabel","status","handoffState","senderBlocked","lastMessageRole","lastMessagePreview","lastMessageAt","messageCount"],"additionalProperties":false}},"truncated":{"type":"boolean"}},"required":["conversations","truncated"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

conversation message list

  • Operation ID: conversation.message.list
  • Authentication: oauth_token, workspace_api_key
  • Workspace selection: required
  • Required API Key scope: agent:read
  • Minimum User role: none
  • Mutates: false
  • Idempotency: supported false; required false
  • HTTP: POST /api/public/operations/conversation/message/list
  • MCP: list_conversation_messages — List Andy Conversation Messages. List Conversation Messages newest first, aggregated across every active Agent unless agentId narrows it. Call it with {"role":"visitor","pageSize":1} and no other context to read the newest customer Message with Workspace and Agent names on the row; add sessionId (with agentId) to read one Conversation. Content is verbatim, clamped to maxContentChars with an honest contentTruncated flag; raw provider metadata never crosses this boundary. An Instagram Agent reply carries delivery: sent, or failed with failureCode instagram_thread_owner (Instagram had given the conversation to another app or the Meta inbox, so the Visitor got none of it), instagram_send_failed (any other failure, none of it sent) or instagram_partly_delivered (the Visitor got only the first parts). Reads are bounded: a rare role or channel can return a short or empty page with truncated true, so keep calling with meta.nextCursor until truncated is false.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, workspace_archived, entitlement_required

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"agentId":{"type":"string","minLength":1},"sessionId":{"type":"string","minLength":1},"role":{"type":"string","enum":["visitor","agent"]},"channel":{"type":"string","enum":["whatsapp","instagram","slack","voice","widget","public_url"]},"since":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"until":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"maxContentChars":{"default":300,"type":"integer","minimum":50,"maximum":4000},"cursor":{"type":"string","minLength":1},"pageSize":{"default":20,"type":"integer","minimum":1,"maximum":100}},"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"messages":{"type":"array","items":{"type":"object","properties":{"messageId":{"type":"string","minLength":1},"workspaceId":{"type":"string","minLength":1},"workspaceName":{"type":"string","minLength":1},"agentId":{"type":"string","minLength":1},"agentName":{"type":"string","minLength":1},"sessionId":{"type":"string","minLength":1},"customerLabel":{"type":"string","minLength":1},"role":{"type":"string","enum":["visitor","agent"]},"content":{"type":"string"},"contentTruncated":{"type":"boolean"},"attachments":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1},"mime":{"type":"string","minLength":1},"bytes":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["name","mime","bytes"],"additionalProperties":false}},"channel":{"type":"string","minLength":1},"channelLabel":{"type":"string","minLength":1},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"delivery":{"type":"object","properties":{"status":{"type":"string","enum":["unknown","queued","sending","sent","delivered","read","failed","acceptance_unknown"]},"routeKind":{"type":"string","enum":["projection","browser","official_whatsapp","baileys_whatsapp","unsupported","unknown"]},"attempt":{"type":"integer","minimum":0,"maximum":9007199254740991},"maxAttempts":{"type":"integer","minimum":0,"maximum":9007199254740991},"correlationId":{"type":"string","minLength":1},"providerMessageId":{"type":"string","minLength":1},"failureCode":{"type":"string","minLength":1},"retryAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"updatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"}},"required":["status","routeKind","attempt","maxAttempts","correlationId"],"additionalProperties":false}},"required":["messageId","workspaceId","workspaceName","agentId","agentName","sessionId","customerLabel","role","content","contentTruncated","channel","channelLabel","createdAt"],"additionalProperties":false}},"truncated":{"type":"boolean"}},"required":["messages","truncated"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

conversation reply-eligibility inspect

  • Operation ID: conversation.reply_eligibility.inspect
  • Authentication: oauth_token, workspace_api_key
  • Workspace selection: required
  • Required API Key scope: agent:read
  • Minimum User role: none
  • Mutates: false
  • Idempotency: supported false; required false
  • HTTP: POST /api/public/operations/conversation/reply-eligibility/inspect
  • MCP: inspect_reply_eligibility — Inspect Conversation Reply Eligibility. Read the canonical, source-agnostic facts that decide whether an operator reply may be submitted. This does not enable a channel or send anything.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, workspace_archived, entitlement_required, agent_selection_required

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"agentId":{"type":"string","minLength":1},"sessionId":{"type":"string","minLength":1}},"required":["sessionId"],"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"workspaceId":{"type":"string","minLength":1},"agentId":{"type":"string","minLength":1},"sessionId":{"type":"string","minLength":1},"source":{"type":"string","enum":["browser","official_whatsapp","baileys_whatsapp","instagram","slack","voice","generic_api","widget","public_url","unknown"]},"routeKind":{"type":"string","enum":["projection","browser","official_whatsapp","baileys_whatsapp","unsupported","unknown"]},"eligible":{"type":"boolean"},"control":{"type":"string","enum":["available","unavailable","unknown"]},"canonicalRoute":{"type":"string","enum":["available","unavailable","unknown"]},"presence":{"type":"string","enum":["available","unavailable","unknown"]},"destination":{"type":"string","enum":["available","unavailable","unknown"]},"releaseState":{"type":"string","enum":["available","unavailable","unknown"]},"providerPolicy":{"type":"string","enum":["available","unavailable","unknown"]},"senderBlock":{"type":"string","enum":["available","unavailable","unknown"]},"transportHealth":{"type":"string","enum":["available","unavailable","unknown"]},"reason":{"type":"string","enum":["eligible","control_not_human","sender_blocked","route_unknown","route_unavailable","destination_unavailable","not_released","provider_policy_unavailable","template_required","transport_unavailable","visitor_offline","channel_not_allowed"]}},"required":["workspaceId","agentId","sessionId","source","routeKind","eligible","control","canonicalRoute","presence","destination","releaseState","providerPolicy","senderBlock","transportHealth","reason"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

conversation handoff takeover

  • Operation ID: conversation.handoff.takeover
  • Authentication: workspace_api_key
  • Workspace selection: required
  • Required API Key scope: agent:write
  • Minimum User role: none
  • Mutates: true
  • Idempotency: supported true; required false
  • HTTP: POST /api/public/operations/conversation/handoff/takeover
  • MCP: manage_handoff (action takeover) — Take over a Conversation. Pause the Agent for one Conversation so a human operator can reply. Idempotent per operator intent.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, workspace_archived, entitlement_required, idempotency_conflict, agent_selection_required

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"agentId":{"type":"string","minLength":1},"sessionId":{"type":"string","minLength":1},"reason":{"type":"string","minLength":1,"maxLength":500},"idempotencyKey":{"type":"string","minLength":8,"maxLength":200}},"required":["sessionId"],"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"agentId":{"type":"string","minLength":1},"sessionId":{"type":"string","minLength":1},"status":{"type":"string","const":"paused"},"pausedAt":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["agentId","sessionId","status","pausedAt"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

conversation handoff hand-back

  • Operation ID: conversation.handoff.hand_back
  • Authentication: workspace_api_key
  • Workspace selection: required
  • Required API Key scope: agent:write
  • Minimum User role: none
  • Mutates: true
  • Idempotency: supported true; required false
  • HTTP: POST /api/public/operations/conversation/handoff/hand-back
  • MCP: manage_handoff (action hand_back) — Hand a Conversation back to the Agent. Resume the Agent for one Conversation after human operator control. Idempotent per operator intent.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, workspace_archived, entitlement_required, idempotency_conflict, agent_selection_required

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"agentId":{"type":"string","minLength":1},"sessionId":{"type":"string","minLength":1},"idempotencyKey":{"type":"string","minLength":8,"maxLength":200}},"required":["sessionId"],"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"agentId":{"type":"string","minLength":1},"sessionId":{"type":"string","minLength":1},"status":{"type":"string","const":"active"},"resumedAt":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["agentId","sessionId","status","resumedAt"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

conversation message send

  • Operation ID: conversation.message.send
  • Authentication: workspace_api_key
  • Workspace selection: required
  • Required API Key scope: agent:write
  • Minimum User role: none
  • Mutates: true
  • Idempotency: supported true; required false
  • HTTP: POST /api/public/operations/conversation/message/send
  • MCP: send_message — Send an operator reply in a Conversation. Persist a human operator reply into the Conversation projection and schedule channel delivery when needed. No client-facing provider send.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, workspace_archived, entitlement_required, workspace_commercial_inactive, idempotency_conflict, agent_selection_required, reply_ineligible

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"agentId":{"type":"string","minLength":1},"sessionId":{"type":"string","minLength":1},"content":{"type":"string","minLength":1,"maxLength":4000},"idempotencyKey":{"type":"string","minLength":8,"maxLength":200}},"required":["sessionId","content"],"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"messageId":{"type":"string","minLength":1},"agentId":{"type":"string","minLength":1},"sessionId":{"type":"string","minLength":1},"delivery":{"type":"object","properties":{"status":{"type":"string","enum":["projected","queued"]},"deliveryId":{"type":"string","minLength":1}},"required":["status","deliveryId"],"additionalProperties":false}},"required":["messageId","agentId","sessionId","delivery"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

conversation message submission inspect

  • Operation ID: conversation.message.submission.inspect
  • Authentication: oauth_token, workspace_api_key
  • Workspace selection: required
  • Required API Key scope: agent:write
  • Minimum User role: none
  • Mutates: false
  • Idempotency: supported false; required false
  • HTTP: POST /api/public/operations/conversation/message/submission/inspect
  • MCP: inspect_message_submission — Recover an operator reply's acceptance and delivery. Inspect one original send intent under the current actor and Workspace. Returns durable Message acceptance and route-evidenced Delivery state; absence never starts another send. Reauthorises current access without matching Message text.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, workspace_archived, entitlement_required, workspace_commercial_inactive, agent_selection_required

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"agentId":{"type":"string","minLength":1},"sessionId":{"type":"string","minLength":1},"idempotencyKey":{"type":"string","minLength":8,"maxLength":200}},"required":["sessionId","idempotencyKey"],"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"agentId":{"type":"string","minLength":1},"sessionId":{"type":"string","minLength":1},"submission":{"oneOf":[{"type":"object","properties":{"status":{"type":"string","const":"not_found"}},"required":["status"],"additionalProperties":false},{"type":"object","properties":{"status":{"type":"string","const":"accepted"},"messageId":{"type":"string","minLength":1},"delivery":{"type":"object","properties":{"deliveryId":{"type":"string","minLength":1},"status":{"anyOf":[{"type":"string","enum":["unknown","queued","sending","sent","delivered","read","failed","acceptance_unknown"]},{"type":"string","const":"projected"}]},"routeKind":{"type":"string","enum":["projection","browser","official_whatsapp","baileys_whatsapp","unsupported","unknown"]},"failureCode":{"type":"string"},"updatedAt":{"type":"number"}},"required":["status","routeKind"],"additionalProperties":false}},"required":["status","messageId","delivery"],"additionalProperties":false}]}},"required":["agentId","sessionId","submission"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

conversation message report

  • Operation ID: conversation.message.report
  • Authentication: oauth_token
  • Workspace selection: required
  • Required API Key scope: none
  • Minimum User role: none
  • Mutates: true
  • Idempotency: supported true; required false
  • HTTP: POST /api/public/operations/conversation/message/report
  • MCP: not exposed on MCP — Report a Conversation Message. File a UGC Message report with identity + privacy-bounded evidence. Ordinary reports go to Workspace Owner/Admin; serious categories escalate to andy@andesphere.com. No automated classifier.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, workspace_archived, entitlement_required, idempotency_conflict, agent_selection_required

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"agentId":{"type":"string","minLength":1},"sessionId":{"type":"string","minLength":1},"messageId":{"type":"string","minLength":1},"reasonCategory":{"type":"string","enum":["ordinary","illegal","child_safety","credible_threat","cross_tenant","andy_policy"]},"note":{"type":"string","minLength":1,"maxLength":1000},"idempotencyKey":{"type":"string","minLength":8,"maxLength":200}},"required":["sessionId","messageId","reasonCategory"],"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"reportId":{"type":"string","minLength":1},"agentId":{"type":"string","minLength":1},"sessionId":{"type":"string","minLength":1},"messageId":{"type":"string","minLength":1},"reasonCategory":{"type":"string","enum":["ordinary","illegal","child_safety","credible_threat","cross_tenant","andy_policy"]},"status":{"type":"string","enum":["open","escalated"]},"escalationTarget":{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"}},"required":["reportId","agentId","sessionId","messageId","reasonCategory","status"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

conversation sender block

  • Operation ID: conversation.sender.block
  • Authentication: oauth_token
  • Workspace selection: required
  • Required API Key scope: none
  • Minimum User role: admin
  • Mutates: true
  • Idempotency: supported true; required false
  • HTTP: POST /api/public/operations/conversation/sender/block
  • MCP: not exposed on MCP — Block a Conversation sender. Owner/Admin reversible block scoped to Agent × provider sender identity (channel denormalized for audit). Suppresses AI and operator replies and keeps an audit record.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, workspace_archived, entitlement_required, idempotency_conflict, agent_selection_required

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"agentId":{"type":"string","minLength":1},"sessionId":{"type":"string","minLength":1},"reason":{"type":"string","minLength":1,"maxLength":500},"reportId":{"type":"string","minLength":1},"idempotencyKey":{"type":"string","minLength":8,"maxLength":200}},"required":["sessionId"],"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"blockId":{"type":"string","minLength":1},"agentId":{"type":"string","minLength":1},"sessionId":{"type":"string","minLength":1},"channel":{"type":"string","minLength":1},"providerSenderIdentity":{"type":"string","minLength":1},"status":{"type":"string","const":"active"},"blockedAt":{"type":"integer","minimum":0,"maximum":9007199254740991},"contactId":{"type":"string","minLength":1}},"required":["blockId","agentId","sessionId","channel","providerSenderIdentity","status","blockedAt"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

conversation sender unblock

  • Operation ID: conversation.sender.unblock
  • Authentication: oauth_token
  • Workspace selection: required
  • Required API Key scope: none
  • Minimum User role: admin
  • Mutates: true
  • Idempotency: supported true; required false
  • HTTP: POST /api/public/operations/conversation/sender/unblock
  • MCP: not exposed on MCP — Unblock a Conversation sender. Owner/Admin lift of a reversible sender block for Agent × provider sender identity.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, workspace_archived, entitlement_required, idempotency_conflict, agent_selection_required

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"agentId":{"type":"string","minLength":1},"sessionId":{"type":"string","minLength":1},"idempotencyKey":{"type":"string","minLength":8,"maxLength":200}},"required":["sessionId"],"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"blockId":{"type":"string","minLength":1},"agentId":{"type":"string","minLength":1},"sessionId":{"type":"string","minLength":1},"channel":{"type":"string","minLength":1},"providerSenderIdentity":{"type":"string","minLength":1},"status":{"type":"string","const":"lifted"},"liftedAt":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["blockId","agentId","sessionId","channel","providerSenderIdentity","status","liftedAt"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

affiliate join

  • Operation ID: affiliate.join
  • Authentication: oauth_token
  • Workspace selection: none
  • Required API Key scope: none
  • Minimum User role: none
  • Mutates: true
  • Idempotency: supported true; required false
  • HTTP: POST /api/public/operations/affiliate/join
  • MCP: manage_affiliate (action join) — Join the Andy affiliate program. Join the affiliate program as the signed-in User and get a personal Referral Link. Accepts the affiliate terms version 2026-09-27 (andypartner.com/legal/afiliados). Idempotent: joining again returns the same Affiliate with joined false.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, permission_denied, idempotency_conflict

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"acceptTermsVersion":{"type":"string","const":"2026-09-27"},"payoutMethod":{"type":"string","enum":["wise","paypal"]},"payoutEmail":{"type":"string","maxLength":254,"format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":200}},"required":["acceptTermsVersion"],"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"affiliate":{"type":"object","properties":{"affiliateId":{"type":"string","minLength":1},"referralCode":{"type":"string","minLength":1},"referralLink":{"type":"string","format":"uri"},"status":{"type":"string","enum":["active","suspended"]},"termsVersion":{"type":"string","minLength":1},"termsAcceptedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"payoutMethod":{"anyOf":[{"type":"string","enum":["wise","paypal"]},{"type":"null"}]},"payoutEmail":{"anyOf":[{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},{"type":"null"}]},"creditWorkspaceId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"}},"required":["affiliateId","referralCode","referralLink","status","termsVersion","termsAcceptedAt","payoutMethod","payoutEmail","creditWorkspaceId","createdAt"],"additionalProperties":false},"joined":{"type":"boolean"}},"required":["affiliate","joined"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

affiliate show

  • Operation ID: affiliate.get
  • Authentication: oauth_token
  • Workspace selection: none
  • Required API Key scope: none
  • Minimum User role: none
  • Mutates: false
  • Idempotency: supported false; required false
  • HTTP: POST /api/public/operations/affiliate/get
  • MCP: manage_affiliate (action get) — Show the signed-in User's Affiliate and earnings. Read the signed-in User's Referral Code, Referral Link and stats: Referral Link clicks (last 30 days and total), referred signups, paying Referrals, and earnings in USD cents (Andy Credit applied and pending, Cash Owed, cash paid, cash payable now against the US$20 minimum). Answers "how much have I earned?". Referrals are listed by Workspace initial, plan and whether they pay, only. creditWorkspaces lists the Affiliate's own paying Workspaces and which one receives Andy Credit. affiliate and stats are null until the User joins with affiliate.join.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, permission_denied

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"affiliate":{"anyOf":[{"type":"object","properties":{"affiliateId":{"type":"string","minLength":1},"referralCode":{"type":"string","minLength":1},"referralLink":{"type":"string","format":"uri"},"status":{"type":"string","enum":["active","suspended"]},"termsVersion":{"type":"string","minLength":1},"termsAcceptedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"payoutMethod":{"anyOf":[{"type":"string","enum":["wise","paypal"]},{"type":"null"}]},"payoutEmail":{"anyOf":[{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},{"type":"null"}]},"creditWorkspaceId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"}},"required":["affiliateId","referralCode","referralLink","status","termsVersion","termsAcceptedAt","payoutMethod","payoutEmail","creditWorkspaceId","createdAt"],"additionalProperties":false},{"type":"null"}]},"stats":{"anyOf":[{"type":"object","properties":{"clicks":{"type":"object","properties":{"last30Days":{"type":"integer","minimum":0,"maximum":9007199254740991},"total":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["last30Days","total"],"additionalProperties":false},"referredSignups":{"type":"integer","minimum":0,"maximum":9007199254740991},"payingReferrals":{"type":"integer","minimum":0,"maximum":9007199254740991},"earnings":{"type":"object","properties":{"currency":{"type":"string","const":"usd"},"andyCreditAppliedCents":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"andyCreditPendingCents":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"cashOwedCents":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"cashPaidCents":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"cashPayableCents":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"payoutMinimumCents":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["currency","andyCreditAppliedCents","andyCreditPendingCents","cashOwedCents","cashPaidCents","cashPayableCents","payoutMinimumCents"],"additionalProperties":false},"referrals":{"type":"array","items":{"type":"object","properties":{"referralId":{"type":"string","minLength":1},"workspaceInitial":{"type":"string","maxLength":1},"plan":{"anyOf":[{"type":"string"},{"type":"null"}]},"paying":{"type":"boolean"}},"required":["referralId","workspaceInitial","plan","paying"],"additionalProperties":false}},"creditWorkspaces":{"type":"array","items":{"type":"object","properties":{"workspaceId":{"type":"string","minLength":1},"name":{"type":"string"},"receivesCredit":{"type":"boolean"}},"required":["workspaceId","name","receivesCredit"],"additionalProperties":false}}},"required":["clicks","referredSignups","payingReferrals","earnings","referrals","creditWorkspaces"],"additionalProperties":false},{"type":"null"}]}},"required":["affiliate","stats"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

affiliate update

  • Operation ID: affiliate.update
  • Authentication: oauth_token
  • Workspace selection: none
  • Required API Key scope: none
  • Minimum User role: none
  • Mutates: true
  • Idempotency: supported true; required false
  • HTTP: POST /api/public/operations/affiliate/update
  • MCP: manage_affiliate (action update) — Set the Affiliate's payout details and Andy Credit Workspace. Set how the signed-in Affiliate is paid Cash Owed: payoutMethod wise or paypal, and the payoutEmail of that account, always together. Andy Credit needs no payout details: it lands on the customer of a Workspace the Affiliate pays for. creditWorkspaceId picks which one, from stats.creditWorkspaces of affiliate.get; without a choice it is the oldest. Either change can be made alone. resource_not_found until the User joins with affiliate.join.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, permission_denied, resource_not_found, idempotency_conflict

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"payoutMethod":{"type":"string","enum":["wise","paypal"]},"payoutEmail":{"type":"string","maxLength":254,"format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"creditWorkspaceId":{"type":"string","minLength":1},"idempotencyKey":{"type":"string","minLength":8,"maxLength":200}},"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"affiliate":{"type":"object","properties":{"affiliateId":{"type":"string","minLength":1},"referralCode":{"type":"string","minLength":1},"referralLink":{"type":"string","format":"uri"},"status":{"type":"string","enum":["active","suspended"]},"termsVersion":{"type":"string","minLength":1},"termsAcceptedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"payoutMethod":{"anyOf":[{"type":"string","enum":["wise","paypal"]},{"type":"null"}]},"payoutEmail":{"anyOf":[{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},{"type":"null"}]},"creditWorkspaceId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"}},"required":["affiliateId","referralCode","referralLink","status","termsVersion","termsAcceptedAt","payoutMethod","payoutEmail","creditWorkspaceId","createdAt"],"additionalProperties":false}},"required":["affiliate"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

outreach batch prepare

  • Operation ID: outreach.batch.prepare
  • Authentication: oauth_token, workspace_api_key
  • Workspace selection: required
  • Required API Key scope: agent:write
  • Minimum User role: admin
  • Mutates: true
  • Idempotency: supported true; required false
  • HTTP: POST /api/public/operations/outreach/batches/prepare
  • MCP: manage_outreach_batch (action prepare) — Prepare an outreach batch. Assemble (or recover) the review batch for one campaign sending day (Owner/Admin, Andesphere only). Snapshots eligible rows without accepting, selecting, verifying or queueing anything — preparation never mutates a contact. A Workspace API Key needs agent:write.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, workspace_archived, idempotency_conflict, insufficient_scope, invalid_request

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"campaignId":{"type":"string","minLength":1},"targetSendingDay":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":200}},"required":["campaignId","targetSendingDay"],"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"batch":{"type":"object","properties":{"id":{"type":"string","minLength":1},"revision":{"type":"integer","minimum":1,"maximum":9007199254740991},"targetSendingDay":{"type":"string","minLength":1},"status":{"type":"string","enum":["preparing","ready","approved","deferred"]},"specId":{"type":"string","minLength":1},"specVersion":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"rows":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"revision":{"type":"integer","minimum":1,"maximum":9007199254740991},"prospectId":{"type":"string","minLength":1},"recipientId":{"type":"string","minLength":1},"prospectName":{"type":"string","minLength":1},"fitReason":{"anyOf":[{"type":"string"},{"type":"null"}]},"normalizedAddress":{"type":"string","minLength":1},"businessIdentity":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"businessUnresolved":{"type":"boolean"},"generationId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"subject":{"type":"string"},"body":{"type":"string"},"edited":{"type":"boolean"},"followupSubject":{"anyOf":[{"type":"string"},{"type":"null"}]},"followupBody":{"anyOf":[{"type":"string"},{"type":"null"}]},"followupOnly":{"type":"boolean"},"selection":{"type":"string","enum":["selected","deselected"]},"status":{"type":"string","enum":["proposed","approved","skipped"]},"skipReason":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"adoptMessageId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"messageId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"queueItemId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"recipientStage":{"anyOf":[{"type":"string"},{"type":"null"}]},"updatedAt":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["id","revision","prospectId","recipientId","prospectName","fitReason","normalizedAddress","businessIdentity","businessUnresolved","generationId","subject","body","edited","followupSubject","followupBody","followupOnly","selection","status","skipReason","adoptMessageId","messageId","queueItemId","recipientStage","updatedAt"],"additionalProperties":false}},"counts":{"type":"object","properties":{"proposed":{"type":"integer","minimum":0,"maximum":9007199254740991},"approved":{"type":"integer","minimum":0,"maximum":9007199254740991},"skipped":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["proposed","approved","skipped"],"additionalProperties":false},"updatedAt":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["id","revision","targetSendingDay","status","specId","specVersion","rows","counts","updatedAt"],"additionalProperties":false}},"required":["batch"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

outreach batch inspect

  • Operation ID: outreach.batch.inspect
  • Authentication: oauth_token, workspace_api_key
  • Workspace selection: required
  • Required API Key scope: agent:read
  • Minimum User role: none
  • Mutates: false
  • Idempotency: supported false; required false
  • HTTP: POST /api/public/operations/outreach/batches/inspect
  • MCP: manage_outreach_batch (action inspect) — Inspect an outreach batch. Read one outreach batch with its rows, revisions, selection and approval state (any Workspace Member, Andesphere only). Every row carries the rowId and rowRevision the revise and approve calls take.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, workspace_archived, resource_not_found, insufficient_scope

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"campaignId":{"type":"string","minLength":1},"batchId":{"type":"string","minLength":1}},"required":["campaignId","batchId"],"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"batch":{"type":"object","properties":{"id":{"type":"string","minLength":1},"revision":{"type":"integer","minimum":1,"maximum":9007199254740991},"targetSendingDay":{"type":"string","minLength":1},"status":{"type":"string","enum":["preparing","ready","approved","deferred"]},"specId":{"type":"string","minLength":1},"specVersion":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"rows":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"revision":{"type":"integer","minimum":1,"maximum":9007199254740991},"prospectId":{"type":"string","minLength":1},"recipientId":{"type":"string","minLength":1},"prospectName":{"type":"string","minLength":1},"fitReason":{"anyOf":[{"type":"string"},{"type":"null"}]},"normalizedAddress":{"type":"string","minLength":1},"businessIdentity":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"businessUnresolved":{"type":"boolean"},"generationId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"subject":{"type":"string"},"body":{"type":"string"},"edited":{"type":"boolean"},"followupSubject":{"anyOf":[{"type":"string"},{"type":"null"}]},"followupBody":{"anyOf":[{"type":"string"},{"type":"null"}]},"followupOnly":{"type":"boolean"},"selection":{"type":"string","enum":["selected","deselected"]},"status":{"type":"string","enum":["proposed","approved","skipped"]},"skipReason":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"adoptMessageId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"messageId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"queueItemId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"recipientStage":{"anyOf":[{"type":"string"},{"type":"null"}]},"updatedAt":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["id","revision","prospectId","recipientId","prospectName","fitReason","normalizedAddress","businessIdentity","businessUnresolved","generationId","subject","body","edited","followupSubject","followupBody","followupOnly","selection","status","skipReason","adoptMessageId","messageId","queueItemId","recipientStage","updatedAt"],"additionalProperties":false}},"counts":{"type":"object","properties":{"proposed":{"type":"integer","minimum":0,"maximum":9007199254740991},"approved":{"type":"integer","minimum":0,"maximum":9007199254740991},"skipped":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["proposed","approved","skipped"],"additionalProperties":false},"updatedAt":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["id","revision","targetSendingDay","status","specId","specVersion","rows","counts","updatedAt"],"additionalProperties":false}},"required":["batch"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

outreach batch revise

  • Operation ID: outreach.batch.revise
  • Authentication: oauth_token, workspace_api_key
  • Workspace selection: required
  • Required API Key scope: agent:write
  • Minimum User role: admin
  • Mutates: true
  • Idempotency: supported true; required false
  • HTTP: POST /api/public/operations/outreach/batches/revise
  • MCP: manage_outreach_batch (action revise) — Revise an outreach batch row. Edit one batch row's subject/body and optional follow-up copy (empty follow-up strings explicitly clear it; omitted fields stay unchanged), or change its selection (Owner/Admin, Andesphere only). Edits bump the row revision the approve call must pin. A Workspace API Key needs agent:write.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, workspace_archived, idempotency_conflict, insufficient_scope, invalid_request

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"campaignId":{"type":"string","minLength":1},"batchId":{"type":"string","minLength":1},"rowId":{"type":"string","minLength":1},"expectedRowRevision":{"type":"integer","minimum":1,"maximum":9007199254740991},"subject":{"type":"string","minLength":2,"maxLength":80},"body":{"type":"string","minLength":10,"maxLength":5000},"followupSubject":{"type":"string","maxLength":80},"followupBody":{"type":"string","maxLength":5000},"selected":{"type":"boolean"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":200}},"required":["campaignId","batchId","rowId","expectedRowRevision"],"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"row":{"type":"object","properties":{"id":{"type":"string","minLength":1},"revision":{"type":"integer","minimum":1,"maximum":9007199254740991},"prospectId":{"type":"string","minLength":1},"recipientId":{"type":"string","minLength":1},"prospectName":{"type":"string","minLength":1},"fitReason":{"anyOf":[{"type":"string"},{"type":"null"}]},"normalizedAddress":{"type":"string","minLength":1},"businessIdentity":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"businessUnresolved":{"type":"boolean"},"generationId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"subject":{"type":"string"},"body":{"type":"string"},"edited":{"type":"boolean"},"followupSubject":{"anyOf":[{"type":"string"},{"type":"null"}]},"followupBody":{"anyOf":[{"type":"string"},{"type":"null"}]},"followupOnly":{"type":"boolean"},"selection":{"type":"string","enum":["selected","deselected"]},"status":{"type":"string","enum":["proposed","approved","skipped"]},"skipReason":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"adoptMessageId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"messageId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"queueItemId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"recipientStage":{"anyOf":[{"type":"string"},{"type":"null"}]},"updatedAt":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["id","revision","prospectId","recipientId","prospectName","fitReason","normalizedAddress","businessIdentity","businessUnresolved","generationId","subject","body","edited","followupSubject","followupBody","followupOnly","selection","status","skipReason","adoptMessageId","messageId","queueItemId","recipientStage","updatedAt"],"additionalProperties":false}},"required":["row"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

outreach batch approve

  • Operation ID: outreach.batch.approve
  • Authentication: oauth_token, workspace_api_key
  • Workspace selection: required
  • Required API Key scope: agent:write
  • Minimum User role: admin
  • Mutates: true
  • Idempotency: supported true; required false
  • HTTP: POST /api/public/operations/outreach/batches/approve
  • MCP: manage_outreach_batch (action approve) — Approve an outreach batch. The single batch decision (Owner/Admin, Andesphere only): accepts each eligible contact and freezes its immutable Message and Queue Item in one transaction, with exact per-row results — no separate contact-acceptance step. Replaying the same requestKey with the same revisions returns the original receipts; a changed payload under the same key is refused. A Workspace API Key needs agent:write.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, workspace_archived, idempotency_conflict, insufficient_scope, invalid_request

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"campaignId":{"type":"string","minLength":1},"batchId":{"type":"string","minLength":1},"batchRevision":{"type":"integer","minimum":1,"maximum":9007199254740991},"rows":{"minItems":1,"maxItems":50,"type":"array","items":{"type":"object","properties":{"rowId":{"type":"string","minLength":1},"rowRevision":{"type":"integer","minimum":1,"maximum":9007199254740991}},"required":["rowId","rowRevision"],"additionalProperties":false}},"requestKey":{"type":"string","minLength":8,"maxLength":200},"idempotencyKey":{"type":"string","minLength":8,"maxLength":200}},"required":["campaignId","batchId","batchRevision","rows","requestKey"],"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"status":{"type":"string","enum":["completed","refused","conflict"]},"reason":{"type":"string","minLength":1},"batchId":{"type":"string","minLength":1},"batchRevision":{"type":"integer","minimum":1,"maximum":9007199254740991},"requestKey":{"type":"string","minLength":1},"results":{"type":"array","items":{"type":"object","properties":{"rowId":{"type":"string","minLength":1},"status":{"type":"string","enum":["approved","skipped","refused","stale"]},"reason":{"type":"string","minLength":1},"failedCodes":{"type":"array","items":{"type":"string","minLength":1}},"messageId":{"type":"string","minLength":1},"queueItemId":{"type":"string","minLength":1}},"required":["rowId","status"],"additionalProperties":false}}},"required":["status","results"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

outreach batch defer

  • Operation ID: outreach.batch.defer
  • Authentication: oauth_token, workspace_api_key
  • Workspace selection: required
  • Required API Key scope: agent:write
  • Minimum User role: admin
  • Mutates: true
  • Idempotency: supported true; required false
  • HTTP: POST /api/public/operations/outreach/batches/defer
  • MCP: manage_outreach_batch (action defer) — Defer an outreach batch. Defer an open batch without approving anything (Owner/Admin, Andesphere only). Deferred rows stay unaccepted. A Workspace API Key needs agent:write.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, workspace_archived, idempotency_conflict, insufficient_scope, invalid_request

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"campaignId":{"type":"string","minLength":1},"batchId":{"type":"string","minLength":1},"targetSendingDay":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":200}},"required":["campaignId","batchId"],"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"batch":{"type":"object","properties":{"id":{"type":"string","minLength":1},"revision":{"type":"integer","minimum":1,"maximum":9007199254740991},"targetSendingDay":{"type":"string","minLength":1},"status":{"type":"string","enum":["preparing","ready","approved","deferred"]},"specId":{"type":"string","minLength":1},"specVersion":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"rows":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"revision":{"type":"integer","minimum":1,"maximum":9007199254740991},"prospectId":{"type":"string","minLength":1},"recipientId":{"type":"string","minLength":1},"prospectName":{"type":"string","minLength":1},"fitReason":{"anyOf":[{"type":"string"},{"type":"null"}]},"normalizedAddress":{"type":"string","minLength":1},"businessIdentity":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"businessUnresolved":{"type":"boolean"},"generationId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"subject":{"type":"string"},"body":{"type":"string"},"edited":{"type":"boolean"},"followupSubject":{"anyOf":[{"type":"string"},{"type":"null"}]},"followupBody":{"anyOf":[{"type":"string"},{"type":"null"}]},"followupOnly":{"type":"boolean"},"selection":{"type":"string","enum":["selected","deselected"]},"status":{"type":"string","enum":["proposed","approved","skipped"]},"skipReason":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"adoptMessageId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"messageId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"queueItemId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"recipientStage":{"anyOf":[{"type":"string"},{"type":"null"}]},"updatedAt":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["id","revision","prospectId","recipientId","prospectName","fitReason","normalizedAddress","businessIdentity","businessUnresolved","generationId","subject","body","edited","followupSubject","followupBody","followupOnly","selection","status","skipReason","adoptMessageId","messageId","queueItemId","recipientStage","updatedAt"],"additionalProperties":false}},"counts":{"type":"object","properties":{"proposed":{"type":"integer","minimum":0,"maximum":9007199254740991},"approved":{"type":"integer","minimum":0,"maximum":9007199254740991},"skipped":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["proposed","approved","skipped"],"additionalProperties":false},"updatedAt":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["id","revision","targetSendingDay","status","specId","specVersion","rows","counts","updatedAt"],"additionalProperties":false}},"required":["batch"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

outreach preparation start

  • Operation ID: outreach.preparation.start
  • Authentication: oauth_token, workspace_api_key
  • Workspace selection: required
  • Required API Key scope: agent:write
  • Minimum User role: admin
  • Mutates: true
  • Idempotency: supported true; required false
  • HTTP: POST /api/public/operations/outreach/preparation/start
  • MCP: manage_outreach_preparation (action start) — Start suitable outreach preparation. Start (or recover) the day's suitable preparation for one campaign's next sending-day gap (Owner/Admin, Andesphere only). Capacity is checked before any external call; inspection and verifier spend stay within 16/day and confirmed free allowance. Same-day retries recover persisted work without new spend. Cannot approve or send. A Workspace API Key needs agent:write.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, workspace_archived, idempotency_conflict, insufficient_scope, invalid_request

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"campaignId":{"type":"string","minLength":1},"targetSendingDay":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":200}},"required":["campaignId"],"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"preparation":{"type":"object","properties":{"id":{"type":"string","minLength":1},"preparationDay":{"type":"string","minLength":1},"targetSendingDay":{"type":"string","minLength":1},"status":{"type":"string","enum":["running","ready","ready_shortage","deferred"]},"batchId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"inspectedReserved":{"type":"integer","minimum":0,"maximum":9007199254740991},"inspectedUsed":{"type":"integer","minimum":0,"maximum":9007199254740991},"verifierReserved":{"type":"integer","minimum":0,"maximum":9007199254740991},"verifierUsed":{"type":"integer","minimum":0,"maximum":9007199254740991},"allowanceProvider":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"allowanceRemaining":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"allowanceCheckedAt":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"discoveryCalls":{"type":"integer","minimum":0,"maximum":9007199254740991},"generationCalls":{"type":"integer","minimum":0,"maximum":9007199254740991},"shortageReasons":{"type":"array","items":{"type":"string","minLength":1}},"omittedRows":{"type":"array","items":{"type":"object","properties":{"businessIdentity":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"prospectName":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"reason":{"type":"string","minLength":1}},"required":["businessIdentity","prospectName","reason"],"additionalProperties":false}},"updatedAt":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"completedAt":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]}},"required":["id","preparationDay","targetSendingDay","status","batchId","inspectedReserved","inspectedUsed","verifierReserved","verifierUsed","allowanceProvider","allowanceRemaining","allowanceCheckedAt","discoveryCalls","generationCalls","shortageReasons","omittedRows","updatedAt","completedAt"],"additionalProperties":false}},"required":["preparation"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

outreach preparation resume

  • Operation ID: outreach.preparation.resume
  • Authentication: oauth_token, workspace_api_key
  • Workspace selection: required
  • Required API Key scope: agent:write
  • Minimum User role: admin
  • Mutates: true
  • Idempotency: supported true; required false
  • HTTP: POST /api/public/operations/outreach/preparation/resume
  • MCP: manage_outreach_preparation (action resume) — Resume suitable outreach preparation. Resume the persisted preparation run for one campaign day without new spend (Owner/Admin, Andesphere only). Recovers reservations, verifier cache and generation ledger; cannot approve or send. A Workspace API Key needs agent:write.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, workspace_archived, idempotency_conflict, insufficient_scope, invalid_request

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"campaignId":{"type":"string","minLength":1},"preparationDay":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":200}},"required":["campaignId"],"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"preparation":{"type":"object","properties":{"id":{"type":"string","minLength":1},"preparationDay":{"type":"string","minLength":1},"targetSendingDay":{"type":"string","minLength":1},"status":{"type":"string","enum":["running","ready","ready_shortage","deferred"]},"batchId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"inspectedReserved":{"type":"integer","minimum":0,"maximum":9007199254740991},"inspectedUsed":{"type":"integer","minimum":0,"maximum":9007199254740991},"verifierReserved":{"type":"integer","minimum":0,"maximum":9007199254740991},"verifierUsed":{"type":"integer","minimum":0,"maximum":9007199254740991},"allowanceProvider":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"allowanceRemaining":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"allowanceCheckedAt":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"discoveryCalls":{"type":"integer","minimum":0,"maximum":9007199254740991},"generationCalls":{"type":"integer","minimum":0,"maximum":9007199254740991},"shortageReasons":{"type":"array","items":{"type":"string","minLength":1}},"omittedRows":{"type":"array","items":{"type":"object","properties":{"businessIdentity":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"prospectName":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"reason":{"type":"string","minLength":1}},"required":["businessIdentity","prospectName","reason"],"additionalProperties":false}},"updatedAt":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"completedAt":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]}},"required":["id","preparationDay","targetSendingDay","status","batchId","inspectedReserved","inspectedUsed","verifierReserved","verifierUsed","allowanceProvider","allowanceRemaining","allowanceCheckedAt","discoveryCalls","generationCalls","shortageReasons","omittedRows","updatedAt","completedAt"],"additionalProperties":false}},"required":["preparation"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

outreach preparation inspect

  • Operation ID: outreach.preparation.inspect
  • Authentication: oauth_token, workspace_api_key
  • Workspace selection: required
  • Required API Key scope: agent:read
  • Minimum User role: none
  • Mutates: false
  • Idempotency: supported false; required false
  • HTTP: POST /api/public/operations/outreach/preparation/inspect
  • MCP: manage_outreach_preparation (action inspect) — Inspect outreach preparation. Read one preparation run with its status, ready inventory pointer and concise shortage reasons (any Workspace Member, Andesphere only). A Workspace API Key needs agent:read.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, workspace_archived, resource_not_found, insufficient_scope

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"campaignId":{"type":"string","minLength":1},"preparationDay":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},"required":["campaignId"],"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"preparation":{"type":"object","properties":{"id":{"type":"string","minLength":1},"preparationDay":{"type":"string","minLength":1},"targetSendingDay":{"type":"string","minLength":1},"status":{"type":"string","enum":["running","ready","ready_shortage","deferred"]},"batchId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"inspectedReserved":{"type":"integer","minimum":0,"maximum":9007199254740991},"inspectedUsed":{"type":"integer","minimum":0,"maximum":9007199254740991},"verifierReserved":{"type":"integer","minimum":0,"maximum":9007199254740991},"verifierUsed":{"type":"integer","minimum":0,"maximum":9007199254740991},"allowanceProvider":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"allowanceRemaining":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"allowanceCheckedAt":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"discoveryCalls":{"type":"integer","minimum":0,"maximum":9007199254740991},"generationCalls":{"type":"integer","minimum":0,"maximum":9007199254740991},"shortageReasons":{"type":"array","items":{"type":"string","minLength":1}},"omittedRows":{"type":"array","items":{"type":"object","properties":{"businessIdentity":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"prospectName":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"reason":{"type":"string","minLength":1}},"required":["businessIdentity","prospectName","reason"],"additionalProperties":false}},"updatedAt":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"completedAt":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]}},"required":["id","preparationDay","targetSendingDay","status","batchId","inspectedReserved","inspectedUsed","verifierReserved","verifierUsed","allowanceProvider","allowanceRemaining","allowanceCheckedAt","discoveryCalls","generationCalls","shortageReasons","omittedRows","updatedAt","completedAt"],"additionalProperties":false}},"required":["preparation"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

outreach outcomes inspect

  • Operation ID: outreach.outcomes.inspect
  • Authentication: oauth_token, workspace_api_key
  • Workspace selection: required
  • Required API Key scope: agent:read
  • Minimum User role: none
  • Mutates: false
  • Idempotency: supported false; required false
  • HTTP: POST /api/public/operations/outreach/outcomes/inspect
  • MCP: manage_outreach_outcomes (action inspect) — Inspect outreach outcomes. Read the business-level contacted/replied/demo/customer/unknown picture with its evidence semantics (any Workspace Member, Andesphere only). Contacted means a canonically associated submitted prospect touch with failures kept in the denominator; unassociated submissions remain explicitly unresolved, never invented businesses; only authenticated genuine human replies count as replied; synthetic fixture rows are excluded from real counts and listed separately. A Workspace API Key needs agent:read.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, workspace_archived, resource_not_found, insufficient_scope

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"campaignId":{"type":"string","minLength":1}},"required":["campaignId"],"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"outcomes":{"type":"object","properties":{"campaignId":{"type":"string","minLength":1},"workspaceId":{"type":"string","minLength":1},"counts":{"type":"object","properties":{"contacted":{"type":"integer","minimum":0,"maximum":9007199254740991},"replied":{"type":"integer","minimum":0,"maximum":9007199254740991},"demos":{"type":"integer","minimum":0,"maximum":9007199254740991},"customers":{"type":"integer","minimum":0,"maximum":9007199254740991},"unknown":{"type":"integer","minimum":0,"maximum":9007199254740991},"deliveryFailures":{"type":"integer","minimum":0,"maximum":9007199254740991},"syntheticExcluded":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["contacted","replied","demos","customers","unknown","deliveryFailures","syntheticExcluded"],"additionalProperties":false},"contacted":{"type":"array","items":{"type":"object","properties":{"businessIdentity":{"type":"string","minLength":1},"name":{"type":"string","minLength":1},"contactedAt":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["businessIdentity","name","contactedAt"],"additionalProperties":false}},"unresolvedSubmissions":{"type":"array","items":{"type":"object","properties":{"providerMappingId":{"type":"string","minLength":1},"messageId":{"type":"string","minLength":1},"recipientId":{"type":"string","minLength":1},"submittedAt":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"reason":{"type":"string","const":"unassociated_business"}},"required":["providerMappingId","messageId","recipientId","submittedAt","reason"],"additionalProperties":false}},"deliveryFailures":{"type":"array","items":{"type":"object","properties":{"businessIdentity":{"type":"string","minLength":1},"name":{"type":"string","minLength":1},"reason":{"type":"string","enum":["failed_policy","failed_mailbox","temporary"]},"receivedAt":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["businessIdentity","name","reason","receivedAt"],"additionalProperties":false}},"replied":{"type":"array","items":{"type":"object","properties":{"businessIdentity":{"type":"string","minLength":1},"name":{"type":"string","minLength":1},"replyId":{"type":"string","minLength":1},"suggestion":{"type":"string","minLength":1},"evidenceQuote":{"type":"string"},"receivedAt":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"draft":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","minLength":1},"version":{"type":"integer","minimum":1,"maximum":9007199254740991},"approved":{"type":"boolean"}},"required":["id","version","approved"],"additionalProperties":false},{"type":"null"}]}},"required":["businessIdentity","name","replyId","suggestion","evidenceQuote","receivedAt","draft"],"additionalProperties":false}},"needsReview":{"type":"array","items":{"type":"object","properties":{"businessIdentity":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"name":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"replyId":{"type":"string","minLength":1},"suggestion":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"reason":{"type":"string","enum":["unclassified","automatic","unclear"]},"receivedAt":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["businessIdentity","name","replyId","suggestion","reason","receivedAt"],"additionalProperties":false}},"outcomes":{"type":"array","items":{"type":"object","properties":{"outcomeId":{"type":"string","minLength":1},"recordedByUserId":{"anyOf":[{"type":"string"},{"type":"null"}]},"clearedAt":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"clearedBy":{"anyOf":[{"type":"string"},{"type":"null"}]},"clearNote":{"anyOf":[{"type":"string"},{"type":"null"}]},"businessIdentity":{"type":"string","minLength":1},"name":{"type":"string","minLength":1},"kind":{"type":"string","enum":["demo","customer"]},"demoKind":{"anyOf":[{"type":"string","enum":["booked","delivered"]},{"type":"null"}]},"contactName":{"type":"string","minLength":1},"occurredAt":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"evidence":{"type":"string","minLength":1},"paymentEvidence":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"operatorAsserted":{"type":"boolean"},"assertionNote":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"recordedBy":{"type":"string","minLength":1},"recordedAt":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"revision":{"type":"integer","minimum":1,"maximum":9007199254740991},"corrections":{"type":"array","items":{"type":"object","properties":{"revisedAt":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"revisedBy":{"type":"string","minLength":1},"note":{"type":"string"},"previousRecordedBy":{"type":"string","minLength":1},"previousRecordedByUserId":{"type":"string"},"previousRecordedAt":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"previousKind":{"type":"string","enum":["demo","customer"]},"previousDemoKind":{"type":"string","enum":["booked","delivered"]},"previousContactName":{"type":"string","minLength":1},"previousOccurredAt":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"previousEvidence":{"type":"string"},"previousPaymentEvidence":{"type":"string","minLength":1},"previousOperatorAsserted":{"type":"boolean"},"previousAssertionNote":{"type":"string","minLength":1}},"required":["revisedAt","revisedBy","note","previousRecordedBy","previousRecordedAt","previousKind","previousContactName","previousOccurredAt","previousEvidence"],"additionalProperties":false}}},"required":["outcomeId","recordedByUserId","clearedAt","clearedBy","clearNote","businessIdentity","name","kind","demoKind","contactName","occurredAt","evidence","paymentEvidence","operatorAsserted","assertionNote","recordedBy","recordedAt","revision","corrections"],"additionalProperties":false}},"unknown":{"type":"array","items":{"type":"object","properties":{"businessIdentity":{"type":"string","minLength":1},"name":{"type":"string","minLength":1},"contactedAt":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["businessIdentity","name","contactedAt"],"additionalProperties":false}},"synthetic":{"type":"object","properties":{"excluded":{"type":"integer","minimum":0,"maximum":9007199254740991},"rows":{"type":"array","items":{"type":"object","properties":{"businessIdentity":{"type":"string","minLength":1},"name":{"type":"string","minLength":1},"buckets":{"type":"array","items":{"type":"string","minLength":1}}},"required":["businessIdentity","name","buckets"],"additionalProperties":false}}},"required":["excluded","rows"],"additionalProperties":false},"truncated":{"type":"boolean"}},"required":["campaignId","workspaceId","counts","contacted","unresolvedSubmissions","deliveryFailures","replied","needsReview","outcomes","unknown","synthetic","truncated"],"additionalProperties":false}},"required":["outcomes"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

outreach outcomes record

  • Operation ID: outreach.outcomes.record
  • Authentication: oauth_token, workspace_api_key
  • Workspace selection: required
  • Required API Key scope: agent:write
  • Minimum User role: admin
  • Mutates: true
  • Idempotency: supported true; required false
  • HTTP: POST /api/public/operations/outreach/outcomes/record
  • MCP: manage_outreach_outcomes (action record) — Record an outreach outcome. Record one manual demo or customer outcome for a contacted business, correct it, or retract it to unknown (Owner/Admin, Andesphere only). A demo needs its booked/delivered kind plus who/when/evidence; a customer needs payment evidence or an explicitly labeled operator assertion — nothing is inferred. Inspect returns outcomeId, revision and complete history including retracted facts. To correct or retract, pass that exact outcomeId and expectedRevision; kind unknown retracts only that fact and preserves the other kind. A new fact omits both target fields. Corrections reuse this operation and keep the original recorder and evidence in the audit trail. Never approves or sends. A Workspace API Key needs agent:write.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, workspace_archived, idempotency_conflict, insufficient_scope, invalid_request

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"campaignId":{"type":"string","minLength":1},"businessIdentity":{"type":"string","minLength":1,"maxLength":500},"outcomeId":{"type":"string","minLength":1},"expectedRevision":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"kind":{"type":"string","enum":["demo","customer","unknown"]},"demoKind":{"type":"string","enum":["booked","delivered"]},"contactName":{"type":"string","minLength":1,"maxLength":200},"occurredAt":{"type":"integer","minimum":1,"maximum":9007199254740991},"evidence":{"type":"string","minLength":1,"maxLength":2000},"paymentEvidence":{"type":"string","minLength":1,"maxLength":2000},"operatorAsserted":{"type":"boolean"},"assertionNote":{"type":"string","minLength":1,"maxLength":2000},"idempotencyKey":{"type":"string","minLength":8,"maxLength":200}},"required":["campaignId","businessIdentity","kind"],"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"cleared":{"type":"boolean"},"outcome":{"anyOf":[{"type":"object","properties":{"outcomeId":{"type":"string","minLength":1},"recordedByUserId":{"anyOf":[{"type":"string"},{"type":"null"}]},"clearedAt":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"clearedBy":{"anyOf":[{"type":"string"},{"type":"null"}]},"clearNote":{"anyOf":[{"type":"string"},{"type":"null"}]},"businessIdentity":{"type":"string","minLength":1},"name":{"type":"string","minLength":1},"kind":{"type":"string","enum":["demo","customer"]},"demoKind":{"anyOf":[{"type":"string","enum":["booked","delivered"]},{"type":"null"}]},"contactName":{"type":"string","minLength":1},"occurredAt":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"evidence":{"type":"string","minLength":1},"paymentEvidence":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"operatorAsserted":{"type":"boolean"},"assertionNote":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"recordedBy":{"type":"string","minLength":1},"recordedAt":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"revision":{"type":"integer","minimum":1,"maximum":9007199254740991},"corrections":{"type":"array","items":{"type":"object","properties":{"revisedAt":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"revisedBy":{"type":"string","minLength":1},"note":{"type":"string"},"previousRecordedBy":{"type":"string","minLength":1},"previousRecordedByUserId":{"type":"string"},"previousRecordedAt":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"previousKind":{"type":"string","enum":["demo","customer"]},"previousDemoKind":{"type":"string","enum":["booked","delivered"]},"previousContactName":{"type":"string","minLength":1},"previousOccurredAt":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"previousEvidence":{"type":"string"},"previousPaymentEvidence":{"type":"string","minLength":1},"previousOperatorAsserted":{"type":"boolean"},"previousAssertionNote":{"type":"string","minLength":1}},"required":["revisedAt","revisedBy","note","previousRecordedBy","previousRecordedAt","previousKind","previousContactName","previousOccurredAt","previousEvidence"],"additionalProperties":false}}},"required":["outcomeId","recordedByUserId","clearedAt","clearedBy","clearNote","businessIdentity","name","kind","demoKind","contactName","occurredAt","evidence","paymentEvidence","operatorAsserted","assertionNote","recordedBy","recordedAt","revision","corrections"],"additionalProperties":false},{"type":"null"}]}},"required":["cleared","outcome"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

contact list

  • Operation ID: contact.list
  • Authentication: oauth_token, workspace_api_key
  • Workspace selection: required
  • Required API Key scope: agent:read
  • Minimum User role: none
  • Mutates: false
  • Idempotency: supported false; required false
  • HTTP: POST /api/public/operations/contact/list
  • MCP: list_contacts — List Andy Contacts. List one Agent's unique people, newest interaction first. population "leads" excludes booked Contacts; "booked" selects them; "all" is the default. status selects active or discarded people. query matches name/email/phone across the full population through bounded continuation, never just loaded rows. A page can be empty while meta.nextCursor remains. countsOnly returns no person rows and retains the same bounded authorised traversal, for reactive totals. counts.population and counts.matched accumulate through the traversal and are exact only when counts.complete is true. Restart traversal after a write; concurrent population changes are not a frozen snapshot. Use each row's contactId for inspect/discard/restore. Continue with the same scope and filter until meta.nextCursor is absent. A Workspace API Key needs agent:read.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, workspace_archived, entitlement_required, agent_selection_required

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"agentId":{"type":"string","minLength":1},"status":{"default":"active","type":"string","enum":["active","discarded"]},"population":{"default":"all","type":"string","enum":["all","leads","booked"]},"query":{"type":"string","maxLength":200},"countsOnly":{"default":false,"type":"boolean"},"cursor":{"type":"string","minLength":1},"pageSize":{"default":50,"type":"integer","minimum":1,"maximum":200}},"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"contacts":{"type":"array","items":{"type":"object","properties":{"origen":{"type":"string","enum":["conversacion","agendo_cita"]},"contactId":{"type":"string","minLength":1},"agentId":{"type":"string","minLength":1},"name":{"type":"string"},"email":{"type":"string"},"phone":{"type":"string"},"company":{"type":"string"},"interestLevel":{"type":"string","enum":["low","medium","high"]},"lastInteractionAt":{"type":"integer","minimum":0,"maximum":9007199254740991},"status":{"type":"string","enum":["active","discarded"]},"discardedAt":{"type":"integer","minimum":0,"maximum":9007199254740991},"discardReason":{"type":"string","enum":["test","not_qualified"]}},"required":["contactId","agentId","lastInteractionAt","status"],"additionalProperties":false}},"counts":{"type":"object","properties":{"population":{"type":"integer","minimum":0,"maximum":9007199254740991},"matched":{"type":"integer","minimum":0,"maximum":9007199254740991},"complete":{"type":"boolean"}},"required":["population","matched","complete"],"additionalProperties":false}},"required":["contacts","counts"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

contact show

  • Operation ID: contact.inspect
  • Authentication: oauth_token, workspace_api_key
  • Workspace selection: required
  • Required API Key scope: agent:read
  • Minimum User role: none
  • Mutates: false
  • Idempotency: supported false; required false
  • HTTP: POST /api/public/operations/contact/inspect
  • MCP: manage_contact (action inspect) — Inspect an Andy Contact. Read one selected Agent's person, reachable identities and captured-event history. Select exactly one contactId from list_contacts or sessionId from an authorised production Conversation; sessionId resolves its saved person on that same Agent without population download. Each event exposes a Conversation destination only when the same Agent has a production Conversation in the current authorised scope. A null destination is unavailable. History is bounded: keep passing meta.nextCursor until historyComplete is true. Inspect does not change person status or establish that they were contacted. An API Key needs agent:read.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, workspace_archived, entitlement_required, invalid_request

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","oneOf":[{"type":"object","properties":{"agentId":{"type":"string","minLength":1},"cursor":{"type":"string","minLength":1},"pageSize":{"default":50,"type":"integer","minimum":1,"maximum":200},"contactId":{"type":"string","minLength":1}},"required":["agentId","contactId"],"additionalProperties":false},{"type":"object","properties":{"agentId":{"type":"string","minLength":1},"cursor":{"type":"string","minLength":1},"pageSize":{"default":50,"type":"integer","minimum":1,"maximum":200},"sessionId":{"type":"string","minLength":1}},"required":["agentId","sessionId"],"additionalProperties":false}]}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"contact":{"type":"object","properties":{"origen":{"type":"string","enum":["conversacion","agendo_cita"]},"contactId":{"type":"string","minLength":1},"agentId":{"type":"string","minLength":1},"name":{"type":"string"},"email":{"type":"string"},"phone":{"type":"string"},"company":{"type":"string"},"interestLevel":{"type":"string","enum":["low","medium","high"]},"lastInteractionAt":{"type":"integer","minimum":0,"maximum":9007199254740991},"status":{"type":"string","enum":["active","discarded"]},"discardedAt":{"type":"integer","minimum":0,"maximum":9007199254740991},"discardReason":{"type":"string","enum":["test","not_qualified"]}},"required":["contactId","agentId","lastInteractionAt","status"],"additionalProperties":false},"reachableIdentities":{"type":"array","items":{"type":"object","properties":{"kind":{"type":"string","enum":["email","phone"]},"value":{"type":"string","minLength":1}},"required":["kind","value"],"additionalProperties":false}},"captures":{"type":"array","items":{"type":"object","properties":{"captureId":{"type":"string","minLength":1},"capturedAt":{"type":"integer","minimum":0,"maximum":9007199254740991},"name":{"type":"string"},"email":{"type":"string"},"phone":{"type":"string"},"company":{"type":"string"},"interestLevel":{"type":"string","enum":["low","medium","high"]},"source":{"type":"string"},"notes":{"type":"string"},"conversation":{"anyOf":[{"type":"object","properties":{"agentId":{"type":"string","minLength":1},"sessionId":{"type":"string","minLength":1}},"required":["agentId","sessionId"],"additionalProperties":false},{"type":"null"}]}},"required":["captureId","capturedAt","interestLevel","source","conversation"],"additionalProperties":false}},"historyComplete":{"type":"boolean"}},"required":["contact","reachableIdentities","captures","historyComplete"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

contact discard

  • Operation ID: contact.discard
  • Authentication: oauth_token, workspace_api_key
  • Workspace selection: required
  • Required API Key scope: agent:write
  • Minimum User role: none
  • Mutates: true
  • Idempotency: supported true; required false
  • HTTP: POST /api/public/operations/contact/discard
  • MCP: manage_contact (action discard) — Discard a Contact. Remove one Contact from Leads and from broadcast audiences, with reason "test" or "not_qualified". Nothing is deleted: the conversation history stays, and if the person writes again they stay discarded. Idempotent; contact.restore undoes it. A Workspace API Key needs agent:write.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, workspace_archived, entitlement_required, idempotency_conflict

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"contactId":{"type":"string","minLength":1},"reason":{"type":"string","enum":["test","not_qualified"]},"idempotencyKey":{"type":"string","minLength":8,"maxLength":200}},"required":["contactId","reason"],"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"contact":{"type":"object","properties":{"origen":{"type":"string","enum":["conversacion","agendo_cita"]},"contactId":{"type":"string","minLength":1},"agentId":{"type":"string","minLength":1},"name":{"type":"string"},"email":{"type":"string"},"phone":{"type":"string"},"company":{"type":"string"},"interestLevel":{"type":"string","enum":["low","medium","high"]},"lastInteractionAt":{"type":"integer","minimum":0,"maximum":9007199254740991},"status":{"type":"string","enum":["active","discarded"]},"discardedAt":{"type":"integer","minimum":0,"maximum":9007199254740991},"discardReason":{"type":"string","enum":["test","not_qualified"]}},"required":["contactId","agentId","lastInteractionAt","status"],"additionalProperties":false}},"required":["contact"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

contact restore

  • Operation ID: contact.restore
  • Authentication: oauth_token, workspace_api_key
  • Workspace selection: required
  • Required API Key scope: agent:write
  • Minimum User role: none
  • Mutates: true
  • Idempotency: supported true; required false
  • HTTP: POST /api/public/operations/contact/restore
  • MCP: manage_contact (action restore) — Restore a discarded Contact. Put one discarded Contact back on Leads and in broadcast audiences. Idempotent on an active Contact. A Workspace API Key needs agent:write.
  • Stable problems: authentication_required, reauthentication_required, invalid_request, internal_error, workspace_selection_required, permission_denied, resource_not_found, workspace_archived, entitlement_required, idempotency_conflict

Operation input schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"contactId":{"type":"string","minLength":1},"idempotencyKey":{"type":"string","minLength":8,"maxLength":200}},"required":["contactId"],"additionalProperties":false}

Operation output schema (compact JSON, complete contract):

{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"contact":{"type":"object","properties":{"origen":{"type":"string","enum":["conversacion","agendo_cita"]},"contactId":{"type":"string","minLength":1},"agentId":{"type":"string","minLength":1},"name":{"type":"string"},"email":{"type":"string"},"phone":{"type":"string"},"company":{"type":"string"},"interestLevel":{"type":"string","enum":["low","medium","high"]},"lastInteractionAt":{"type":"integer","minimum":0,"maximum":9007199254740991},"status":{"type":"string","enum":["active","discarded"]},"discardedAt":{"type":"integer","minimum":0,"maximum":9007199254740991},"discardReason":{"type":"string","enum":["test","not_qualified"]}},"required":["contactId","agentId","lastInteractionAt","status"],"additionalProperties":false}},"required":["contact"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"nextCursor":{"type":"string","minLength":1}},"required":["requestId"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}

Machine-readable verification

andy version --json reports the client, public contract, Node range, and compatibility. The tracked page is current only when bun --filter @andy/docs generate-reference --check exits 0.

Next step

Use MCP for tool connection or Troubleshooting and Upgrading for stable failures and upgrades.

On this page

OutcomePrerequisitesBuild freshnessOperation schemassupport metrics inspectsupport settings inspectsupport settings configuresupport alerts inspectsupport alerts configuresupport provider inspectsupport provider provisionsupport installation listsupport installation inspectsupport installation createsupport installation configuresupport installation issue_keysupport installation rotate_keysupport installation retire_keysupport installation retiresupport ticket listsupport ticket inspectsupport ticket replysupport ticket notesupport ticket assignsupport ticket prioritysupport ticket waitsupport ticket resolvecontext getcontext select-workspaceauth statusworkspace listworkspace selectworkspace inspectworkspace createworkspace renameworkspace entitlementsassistant telegram inspectassistant telegram prepareassistant telegram confirmassistant telegram disconnectworkspace time-zone showworkspace time-zone setbilling showbilling portalbilling tax-statusinvoices listinvoices linkmembers listmembers rolemembers removemembers invitesmembers invitemembers revokeagent listagent inspectagent metricsagent live-nowagent createagent set-purposeagent configureagent deleteagent rename-slugagent-website dismissapi-key listknowledge-source listknowledge-source inspectknowledge-source addknowledge-source waitknowledge-source reconcileknowledge-source replaceknowledge-source deletepublic-chat inspectpublic-chat enablepublic-chat disablepublic-chat urlwidget inspectwidget configurewidget manifestwidget verifycontent connection listcontent connection showcontent connection preflightcontent connection connectcontent connection disconnectcontent connection slotscontent connection community-addcontent connection community-removecontent media listcontent media showcontent media upload-preparecontent media upload-completecontent media upload-bytescontent post createcontent post listcontent post showcontent post editcontent post approvecontent post rejectcontent post cancelcontent post dismisscontent post reschedulecontent post pausecontent post retry-first-commentcontent post resumeconversation listconversation message listconversation reply-eligibility inspectconversation handoff takeoverconversation handoff hand-backconversation message sendconversation message submission inspectconversation message reportconversation sender blockconversation sender unblockaffiliate joinaffiliate showaffiliate updateoutreach batch prepareoutreach batch inspectoutreach batch reviseoutreach batch approveoutreach batch deferoutreach preparation startoutreach preparation resumeoutreach preparation inspectoutreach outcomes inspectoutreach outcomes recordcontact listcontact showcontact discardcontact restoreMachine-readable verificationNext step