Skip to main content
im.addresses works with contact addresses before they become chats. An address is a full email address or an E.164 phone number. It is not a chat GUID, a contact display name, or a short code. Use this namespace when you need to answer one of these questions: im.addresses only checks address-level state. After you have a chat.guid, send, edit, unsend, reply, and notify through the messages API.

Input Format

Every im.addresses method accepts the same address argument: Phone numbers must be E.164: include the country code, start with +, and omit spaces, parentheses, and dashes.

Common Flow

Before you create a new chat, the most common preflight check is iMessage availability:
isIMessageAvailable(...) is a check only. It does not create a chat. im.chats.create(...) creates or resolves the chat and returns the chat.guid used by message APIs.

Check iMessage Availability

Returns boolean: Use this before starting a new conversation when you want to avoid sending iMessage traffic to an address that is clearly unreachable.
Availability is a live Apple lookup. true means it is reasonable to continue creating a chat and sending a message, but it does not guarantee that the later send will succeed. Network conditions, account state, or Apple service state can still change.

Get Address Details

Returns MultiServiceAddressInfo: get(...) throws NotFoundError when the server has no record for the address.
If you only need to know whether the address can use iMessage, call isIMessageAvailable(...). Use get(...) when you need address details such as country or available services.

Check Focus Status

Returns boolean: Focus is a live Apple state, not a long-term recipient preference. This method tells you whether the recipient may be silencing notifications right now. To trigger Apple’s “Notify Anyway” action after sending, use im.messages.notifySilenced(...) with chat.guid and message.guid.

Next Steps

  1. Chats — create a chat from an address and get chat.guid
  2. Messages — send text, attachments, and replies with chat.guid
  3. Error Handling — handle NotFoundError, retries, and structured error context