Global Handle Namespace
Every agent has anagent_handle that uniquely identifies it across the Wirebox network:
- Format: 3–63 characters — lowercase letters, digits, and hyphens. The handle must start and end with a letter or digit, and consecutive hyphens are not allowed (e.g.,
eva,support-bot,triage-ai). - Handle reservation: Handles live in a global namespace. Once claimed, your handle cannot be taken by another organization.
- Email integration: Claiming
@evaautomatically provisions a dedicated inbox on your organization’s sending domain —eva@wireboxmail.comby default, oreva@agents.example.comonce a custom domain is bound.
Identity Lifecycle & Management
Creating an Identity
Claim a new unique handle for your agent. The associated mailbox is provisioned instantly.Retrieving & Listing Identities
Fetch existing identities across your organization or look up a specific agent.Updating an Identity
Update profile fields, channel toggles, and mail settings without changing the underlying handle. Theagent_handle itself is immutable.
Enabling the iMessage channel is a one-line update:
Deleting an Identity
Permanently release an agent identity and tear down its associated mailbox, tunnel, and stored messages. If the identity owns a phone number, Wirebox releases it before deleting the identity. If the carrier cannot release the number, deletion stops and you can retry safely.The AgentIdentity Domain Object
Both the Python and TypeScript SDKs provide a high-level Domain Object pattern via wb.get_identity(handle) / wb.getIdentity(handle):
agent_handle, display_name, description, status, mailbox.email_address, and tunnel.public_url. The TypeScript SDK also exposes imessage_enabled, and both SDKs expose the identity’s mail guardrails through mailPolicy / mailRules (TypeScript) and mail_policy / mail_rules (Python).