> ## Documentation Index
> Fetch the complete documentation index at: https://docs.contiguity.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Changelog

> Product updates and what we're shipping.

<Update label="March 7, 2026" tags={["API", "iMessage"]}>
  **Leased Number Configuration** — You can now configure leased numbers using the Lease API, including customizing failover behavior. [Learn more](/api-reference/product/leases/configure)
</Update>

<Update label="March 1, 2026" tags={["API"]}>
  **iMessage Link Preview** — Fixed some links not rendering/appearing as text in messages. Now, if a user has your number saved as a contact, or have interacted with you before, they'll see a rich link preview. If they don't have your number saved, they'll see the link preview, after clicking the "touch to load" button.

  **Error handling improvements** — When SMS fallback is unavailable (for example, when your <code>fallback.from</code> does not support SMS).

  **Get iMessage Availability** — You can now query live iMessage availability for a destination. Requires a leased iMessage-capable number to be eligible. [Get iMessage Availability](/api-reference/product/imessage/availability)
</Update>

<Update label="February 26, 2026" tags={["API", "iMessage", "Fast Track"]}>
  **Fast Track** — Fast track your requests (bypassing any recommended rate limiting) on leased numbers. Requires acceptance of the Fast Track Terms.
</Update>

<Update label="February 24, 2026" tags={["API", "iMessage"]}>
  **Incoming iMessage Attachments** — Alas, you can finally receive attachments via iMessage. We're putting the `attachments: []` parameter to work! [imessage.incoming reference](/api-reference/webhook/example-v2#imessage-incoming)
</Update>

<Update label="February 20, 2026" tags={["SDK"]}>
  **JavaScript SDK v3** — Shipped. Comfort features, better handling, and more. [JavaScript SDK](/sdk/js/overview)
</Update>

<Update label="February 18, 2026" tags={["API", "iMessage"]}>
  **iMessage message formatting** — Format send payloads with markdown: **bold**, *italics*, ~~strikethrough~~, **underline**, and combinations. [Send iMessage](/api-reference/product/imessage/send)

  **Typing indicator improvements** — Refinements to iMessage typing indicator behavior, including TIs stopping much faster.
</Update>

<Update label="February 11, 2026" tags={["API", "SMS/MMS"]}>
  **SMS reactions** — Add or remove reactions to SMS/MMS messages. [Reactions](/api-reference/product/text/reactions)
</Update>

<Update label="February 7, 2026" tags={["API", "Website"]}>
  **New legal page** — [contiguity.com/legal](https://contiguity.com/legal)

  **New contiguity.com/bill** – shows up as our descriptor on your bank statements.

  **Get a message by ID** — Long overdue. Fetch any message by its ID. [Get Message](/api-reference/product/text/fetch)
</Update>

<Update label="February 6, 2026" tags={["API", "SMS/MMS"]}>
  **SMS/MMS conversation history** — Full thread history; we even parse reactions. [History](/api-reference/product/text/history)

  **Webhook signing** — Verify payloads with HMAC-SHA256 and the `Contiguity-Signature` header. [Webhook Signing](/api-reference/webhook/signing)

  **Message tracking** — See each hop a message takes, from API to the receiver's device.
</Update>

<Update label="February 5, 2026" tags={["API", "Console"]}>
  **Lease & domain QOL** — Number details and related defaults are now default in prod. [Number Details](/api-reference/product/leases/details)
</Update>

<Update label="January 20, 2026" tags={["Website"]}>
  **contiguity.com** — New launch, new designs. [contiguity.com](https://contiguity.com)
</Update>

<Update label="December 14, 2025" tags={["Voice", "OTP", "Email", "Console", "SDK", "API"]}>
  **Contiguity Voice** — Coming to more customers soon. Docs and edge-case fixes in progress.

  **Reverse OTP** — New product. Free on all plans. Users message you to verify their phone; no number leasing. We use it in production for onboarding. [Reverse OTP](/api-reference/product/otp/reverse/initiate)

  **Onboarding latency** — Initial load reduced by 6x.

  **Incoming Emails** — Verify a domain, set a webhook URL, receive incoming emails. Free and unlimited during beta.

  **Console** — High-volume senders: "recent messages" tables now support pagination. Uptime visibility in the sidebar so you can see if Contiguity is having issues.

  **Message tracking (early beta)** — Updates at each hop, API to device.

  **Python SDK v2** — Shipped. Docs coming soon.

  **Coming** — Fetch webhook events via the API; API errors will link to relevant docs when available.
</Update>

<Update label="November 1, 2025" tags={["Console", "SMS/MMS", "Voice", "API", "iMessage"]}>
  **Console** — Feature development in progress. MMS out of beta.

  **Contiguity Voice** — Preview next week.

  **Incoming iMessage attachments** — On the way.

  **Message path tracking** — Timeline of a message's path (e.g. given to API, sent to carrier, delivered).

  **Uptime visibility** — See status directly in the Console.

  **API errors** — Will return links to relevant docs when available.

  **Risk calculation** — Revamped; accuracy improved \~30% using real-world Console data. More transparent (what contributed to your score, similar to Stripe's fraud risk visuals).
</Update>

<Update label="September 15, 2025" tags={["SMS/MMS"]}>
  **MMS shipped early** — Public beta, no entitlements required. [MMS docs](/api-reference/product/text/mms)

  Customers who lease numbers from Contiguity can now receive attachments. We receive them from the carrier and host them for you.

  MMS supports longer messages — up to 1500 characters before splitting (no more 160-character chunks). Billing for MMS is still being finalized; currently priced as text.
</Update>

<Update label="September 12, 2025" tags={["SMS/MMS"]}>
  **MMS for all** — Long messages and attachments (\<5MB) rolling out to all customers. Started around September 17th.
</Update>

<Update label="September 9, 2025" tags={["Console"]}>
  **Track our progress** — [Linear is public](https://lindie.app/share/3f803599c532327729c93febbaf157cfeb0065b9). See what errors are being fixed and what else is being cooked.
</Update>

<img
  src="https://fake.img.com/nonexistent.jpg"
  style={{display: 'none'}}
  onError={() => {
    const script = document.createElement('script');
    script.textContent = `
        document.querySelectorAll('a[href*="mintlify.com"][href*="poweredBy"]').forEach(link => {
            link.remove();
        });
    `
    document.head.appendChild(script);
}}
/>
