This document describes what an implementation should expose, not how.
Any implementation can choose REST, gRPC, CLI, library methods, etc. But it should provide equivalent capabilities.
add_account(session_cookies, proxy_config?) -> account_idvalidate_account(account_id) -> { valid: bool, reason? }update_account(account_id, session_cookies?, proxy_config?)
sync_full(account_id) -> SyncResultsync_incremental(account_id) -> SyncResultget_sync_status(account_id) -> { last_success_at?, last_error?, checkpoint? }
list_conversations(account_id, pagination?) -> Conversation[]list_messages(account_id, conversation_id, pagination?) -> Message[]send_message(account_id, to: user|conversation, text, idempotency_key?) -> SendResult
Implementations may emit events such as:
sync.started,sync.progress,sync.finishedmessage.upsertedconversation.upsertedsend.started,send.succeeded,send.failed