| Identities | Create, get, list, update (rename, metadata, contact-rule filter modes mail_filter_mode / phone_filter_mode / imessage_filter_mode), refresh, delete |
| Channel management | Create mailboxes with identities; provision, assign, and unlink phone numbers |
| Agent self-signup | Class methods Inkbox.signup / verify_signup / resend_signup_verification / get_signup_status — claim flow and restrictions |
| Email — send | Text, HTML, CC/BCC, base64 attachments, threaded replies via in_reply_to_message_id |
| Email — read | Paginated iter_emails / iter_unread_emails, filter by direction, fetch full threads oldest-first, mark read |
| Email — threads | Thread folders (inbox / spam / archive / blocked), per-thread folder updates, folder listing |
| Email — signatures | Configure a custom signature per mailbox with mailboxes.update; save HTML and text, clear content, and toggle automatic insertion on paid plans |
| Mailbox imports | inkbox.mailboxes.imports create / direct upload / start / get / list / wait / cancel for MBOX, EML, and ZIP archives; upload-target refresh, five-second default polling, terminal job results, non-cancelling timeouts, counters, and Message.import_job_id provenance |
| Phone calls | Place outbound calls with client WebSocket audio, list history, transcript segments per party |
| Text messages (SMS/MMS) | Send 1:1 SMS/MMS and beta group MMS (identity.send_text(to=... | conversation_id=..., text=None, media_urls=None)), list and filter, single message with MMS media, conversation summaries with include_groups and latest_has_media, per-conversation messages by UUID or 1:1 remote key, mark read, admin search / update / delete. Some carriers may reject group chats or MMS from 10DLC numbers |
| iMessage | Send 1:1 messages or dedicated-line groups with identity.send_imessage(to=[...]), reply or retry failed creation by conversation_id, and opt groups into message/conversation lists with include_groups=True. Claim lines with the type-less inkbox.imessages.claim_number(idempotency_key=...) API or claim_imessage_number=True during identity creation and updates. IMessageGroupCreationStatus and group_creation_status expose creating, not_created, or ready; failed attempts stay in the same conversation. send_style works on group creation and replies and can accompany media. Existing message-ID reaction methods support inbound group messages, with nullable reaction assignment_id. Group read receipts and typing are not supported |
| Vault — secrets | Initialize with client-side encryption, unlock, CRUD all payload types (login, api_key, key_pair, ssh_key, other), metadata-only listing without unlock |
| Vault — identity-scoped | identity.credentials with typed per-type accessors (get_login, get_api_key, get_ssh_key, get_key_pair), filtered by access rules |
| TOTP | Store inside LoginPayload.totp, parse otpauth:// URIs, generate codes client-side, set / remove on existing logins |
| Mailboxes (admin) | List, get, and search. Manage mailbox names and lifecycle through the identity. The per-mailbox filter_mode update is deprecated; set mail_filter_mode on the identity instead |
| Phone numbers (admin) | Provision local numbers (with optional state), update incoming-call action (hosted_agent / webhook / auto_accept / auto_reject / forward), transcript search, release |
| Contact rules | Identity-keyed email/domain and shared SMS/calls/iMessage lists, with nullable caller-authorized contact cards. Mutations require admin credentials; agent keys can read permitted rules. Phone rule setup does not require a dedicated number |
| Contacts | contacts.access.get/update separates group visibility from per-address communication. Atomic creation accepts nested access choices; boolean contacts.permissions and advanced contacts.communication_policy methods remain supported. list_management_for_identity includes hidden contacts, optional access settings, and communication coverage |
| Notes | CRUD free-form notes, list and filter, per-identity access grants (no wildcard) |
| Whoami | Inspect caller’s auth type (API key vs Inkbox Console user session), organization ID, API-key subtype constants for admin vs agent-scoped branching |
| Webhooks | Per-identity signing keys, typed event payloads, and HMAC verification. Contact enrichment requires Profile access; Memories can further hide memory text. See webhooks |
| Error handling | InkboxAPIError with status code and structured detail; narrower DuplicateContactRuleError subclass |
| Tunnels | inkbox.tunnels.connect(name="my-agent", forward_to="http://127.0.0.1:8000") for a public my-agent.inkboxwire.com URL; URL forwarding or in-process ASGI app; edge vs passthrough TLS. Manage tunnels with list / get / update, plus connect() and sign_csr() for passthrough; tunnel creation and deletion happen through the identity. Runtime supports Linux, macOS, and native Windows (0.7.4+). |