Twilio API breaking changes (2026): complete tracker and fixes
twilio 36 breaking / deprecation entries 2026
Twilio ships API and SDK changes continuously. Most are additive — but the ones that are not can silently break integrations that worked yesterday. This page is the complete, continuously regenerated record of every Twilio breaking change and deprecation in the mendapi change database: 36 entries (36 breaking, 0 deprecation), each linked to its upstream source and, where possible, to a concrete fix.
How to read this page
Every entry carries a fixability verdict from the mendapi adjudication pipeline: code-fixable means a mechanical code change repairs the break (19 entries); not code-fixable means the change requires a business decision, credential provisioning, or upstream action that no codemod can produce (17 entries). Entries marked auto-fix pack have a deterministic, gold-tested migration pack that mendapi fix can apply locally.
Am I affected?
Reading a changelog tells you what changed — not whether your code uses the affected surface. The mendapi scanner answers that locally, in about 30 seconds, without any code leaving your machine:
npx mendapi scan # -> N findings: file, line, provider, confidence mendapi deps --match # -> which of the changes below actually hit your endpoints
See Getting Started for the full workflow and the security model for why zero code upload is the default and only mode.
Complete Twilio breaking change timeline
| Date | Change | Ref |
|---|---|---|
| 2026-05-06 | 6.0.1 breaking not code-fixable |
source |
| 2026-04-20 | 6.0.0 breaking not code-fixable |
source |
| 2026-03-24 | 5.13.1 breaking code-fixable |
source |
| 2026-02-18 | 5.12.2 breaking not code-fixable |
source |
| 2026-01-22 | 5.12.0 breaking not code-fixable |
source |
| — | response-prop-removed: POST /2010-04-01/Accounts/{AccountSid}/Calls/{Sid}.json -> 200 annotation breaking code-fixable |
source |
| — | response-prop-removed: POST /2010-04-01/Accounts/{AccountSid}/Calls.json -> 201 annotation breaking code-fixable |
source |
| — | response-prop-removed: GET /2010-04-01/Accounts/{AccountSid}/Calls/{Sid}.json -> 200 annotation breaking code-fixable |
source |
| — | response-prop-removed: GET /2010-04-01/Accounts/{AccountSid}/Calls.json -> 200 calls[].annotation breaking code-fixable |
source |
| — | response-prop-removed: POST /2010-04-01/Accounts/{AccountSid}/SIP/Domains/{DomainSid}/IpAccessControlListMappings.json -> 201 subresource_uris breaking code-fixable |
source |
| — | response-prop-removed: POST /2010-04-01/Accounts/{AccountSid}/SIP/Domains/{DomainSid}/CredentialListMappings.json -> 201 subresource_uris breaking code-fixable |
source |
| — | response-prop-removed: POST /2010-04-01/Accounts/{AccountSid}/Calls/FeedbackSummary.json -> 201 issues[].percentage_of_total_calls breaking not code-fixable |
source |
| — | response-prop-removed: POST /2010-04-01/Accounts/{AccountSid}/Calls/FeedbackSummary.json -> 201 issues[].description breaking not code-fixable |
source |
| — | response-prop-removed: POST /2010-04-01/Accounts/{AccountSid}/Calls/FeedbackSummary.json -> 201 issues[].count breaking not code-fixable |
source |
| — | response-prop-removed: GET /2010-04-01/Accounts/{AccountSid}/SIP/Domains/{DomainSid}/IpAccessControlListMappings/{Sid}.json -> 200 subresource_uris breaking code-fixable |
source |
| — | response-prop-removed: GET /2010-04-01/Accounts/{AccountSid}/SIP/Domains/{DomainSid}/IpAccessControlListMappings.json -> 200 ip_access_control_list_mappings[].subresource_uris breaking code-fixable |
source |
| — | response-prop-removed: GET /2010-04-01/Accounts/{AccountSid}/SIP/Domains/{DomainSid}/CredentialListMappings/{Sid}.json -> 200 subresource_uris breaking code-fixable |
source |
| — | response-prop-removed: GET /2010-04-01/Accounts/{AccountSid}/SIP/Domains/{DomainSid}/CredentialListMappings.json -> 200 credential_list_mappings[].subresource_uris breaking code-fixable |
source |
| — | response-prop-removed: GET /2010-04-01/Accounts/{AccountSid}/Calls/FeedbackSummary/{Sid}.json -> 200 issues[].percentage_of_total_calls breaking not code-fixable |
source |
| — | response-prop-removed: GET /2010-04-01/Accounts/{AccountSid}/Calls/FeedbackSummary/{Sid}.json -> 200 issues[].description breaking not code-fixable |
source |
| — | response-prop-removed: GET /2010-04-01/Accounts/{AccountSid}/Calls/FeedbackSummary/{Sid}.json -> 200 issues[].count breaking not code-fixable |
source |
| — | response-prop-removed: POST /v1/LinkShortening/Domains/{DomainSid}/Config -> 201 messaging_service_sids breaking code-fixable |
source |
| — | response-prop-removed: POST /v1/LinkShortening/Domains/{DomainSid}/Config -> 200 messaging_service_sids breaking code-fixable |
source |
| — | request-prop-removed: POST /v1/LinkShortening/Domains/{DomainSid}/Config MessagingServiceSidsAction breaking code-fixable auto-fix pack |
source |
| — | request-prop-removed: POST /v1/LinkShortening/Domains/{DomainSid}/Config MessagingServiceSids breaking code-fixable auto-fix pack |
source |
| — | response-prop-removed: GET /v1/LinkShortening/Domains/{DomainSid}/Config -> 200 messaging_service_sids breaking code-fixable |
source |
| — | request-prop-added-required: POST /v1/Services/{MessagingServiceSid}/Compliance/Usa2p MessageFlow breaking not code-fixable |
source |
| — | request-prop-removed: POST /v1/a2p/BrandRegistrations A2pProfileBundleSid breaking code-fixable auto-fix pack |
source |
| — | request-prop-added-required: POST /v1/a2p/BrandRegistrations A2PProfileBundleSid breaking code-fixable auto-fix pack |
source |
| — | enum-value-removed: POST /v1/a2p/BrandRegistrations -> 201 status = VERIFIED breaking not code-fixable |
source |
| — | enum-value-removed: POST /v1/a2p/BrandRegistrations -> 201 status = IN_PROGRESS breaking not code-fixable |
source |
| — | enum-value-removed: GET /v1/a2p/BrandRegistrations/{Sid} -> 200 status = VERIFIED breaking not code-fixable |
source |
| — | enum-value-removed: GET /v1/a2p/BrandRegistrations/{Sid} -> 200 status = IN_PROGRESS breaking not code-fixable |
source |
| — | enum-value-removed: GET /v1/a2p/BrandRegistrations -> 200 data[].status = VERIFIED breaking not code-fixable |
source |
| — | enum-value-removed: GET /v1/a2p/BrandRegistrations -> 200 data[].status = IN_PROGRESS breaking not code-fixable |
source |
| — | param-removed: GET /v2/Attempts/Summary query:ServiceSid breaking code-fixable auto-fix pack |
source |
Automated migration packs for Twilio
mendapi ships 3 deterministic migration packs for Twilio — verified, idempotent codemods you can apply locally with mendapi fix. Full details in the pack catalog.
twilio-verify-attempts-summary-servicesid— Twilio Verify: Attempts Summary query param ServiceSid -> VerifyServiceSid (upstream reference)twilio-messaging-brand-registration-a2p-casing— Twilio Messaging: BrandRegistrations form param A2pProfileBundleSid -> A2PProfileBundleSid (upstream reference)twilio-linkshortening-messagingservicesids-removal— Twilio Messaging: LinkShortening domain config no longer accepts MessagingServiceSids / MessagingServiceSidsAction (upstream reference)
Monitoring Twilio going forward
This page is regenerated from the change database, which is fed by release feeds, changelog capture and OpenAPI spec diffing — so it does not depend on Twilio writing a perfect changelog. mendapi monitors 53543 change records across 20 providers; hosted plans watch your repos continuously and open fix PRs when a change lands. See pricing.
Related
- All breaking-change reports — per-change deep dives with migration guides.
- All monitored providers — live change counts.
- Migration pack catalog — every deterministic fix mendapi ships.