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 sync # -> one network call: pulls the change feed into a local database 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 Additive TwiML attribute visibility and new recording parameters |
source |
| 2026-04-20 | 6.0.0 breaking not code-fixable twilio v6: Node minimum 14->20 bump only |
source |
| 2026-03-24 | 5.13.1 breaking code-fixable Data-ingress API removed estimatedCompletionTime and moved operationId from response body to headers — response-shape |
source |
| 2026-02-18 | 5.12.2 breaking not code-fixable Formatting/metadata updates plus additive paths |
source |
| 2026-01-22 | 5.12.0 breaking not code-fixable CVE dependency fix and additive features (pagination, response headers) |
source |
| — | response-prop-removed: POST /2010-04-01/Accounts/{AccountSid}/Calls/{Sid}.json -> 200 annotation breaking code-fixable |
spec diff |
| — | response-prop-removed: POST /2010-04-01/Accounts/{AccountSid}/Calls.json -> 201 annotation breaking code-fixable |
spec diff |
| — | response-prop-removed: GET /2010-04-01/Accounts/{AccountSid}/Calls/{Sid}.json -> 200 annotation breaking code-fixable |
spec diff |
| — | response-prop-removed: GET /2010-04-01/Accounts/{AccountSid}/Calls.json -> 200 calls[].annotation breaking code-fixable |
spec diff |
| — | response-prop-removed: POST /2010-04-01/Accounts/{AccountSid}/SIP/Domains/{DomainSid}/IpAccessControlListMappings.json -> 201 subresource_uris breaking code-fixable |
spec diff |
| — | response-prop-removed: POST /2010-04-01/Accounts/{AccountSid}/SIP/Domains/{DomainSid}/CredentialListMappings.json -> 201 subresource_uris breaking code-fixable |
spec diff |
| — | response-prop-removed: POST /2010-04-01/Accounts/{AccountSid}/Calls/FeedbackSummary.json -> 201 issues[].percentage_of_total_calls breaking not code-fixable |
spec diff |
| — | response-prop-removed: POST /2010-04-01/Accounts/{AccountSid}/Calls/FeedbackSummary.json -> 201 issues[].description breaking not code-fixable |
spec diff |
| — | response-prop-removed: POST /2010-04-01/Accounts/{AccountSid}/Calls/FeedbackSummary.json -> 201 issues[].count breaking not code-fixable |
spec diff |
| — | response-prop-removed: GET /2010-04-01/Accounts/{AccountSid}/SIP/Domains/{DomainSid}/IpAccessControlListMappings/{Sid}.json -> 200 subresource_uris breaking code-fixable |
spec diff |
| — | 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 |
spec diff |
| — | response-prop-removed: GET /2010-04-01/Accounts/{AccountSid}/SIP/Domains/{DomainSid}/CredentialListMappings/{Sid}.json -> 200 subresource_uris breaking code-fixable |
spec diff |
| — | response-prop-removed: GET /2010-04-01/Accounts/{AccountSid}/SIP/Domains/{DomainSid}/CredentialListMappings.json -> 200 credential_list_mappings[].subresource_uris breaking code-fixable |
spec diff |
| — | response-prop-removed: GET /2010-04-01/Accounts/{AccountSid}/Calls/FeedbackSummary/{Sid}.json -> 200 issues[].percentage_of_total_calls breaking not code-fixable |
spec diff |
| — | response-prop-removed: GET /2010-04-01/Accounts/{AccountSid}/Calls/FeedbackSummary/{Sid}.json -> 200 issues[].description breaking not code-fixable |
spec diff |
| — | response-prop-removed: GET /2010-04-01/Accounts/{AccountSid}/Calls/FeedbackSummary/{Sid}.json -> 200 issues[].count breaking not code-fixable |
spec diff |
| — | response-prop-removed: POST /v1/LinkShortening/Domains/{DomainSid}/Config -> 201 messaging_service_sids breaking code-fixable |
spec diff |
| — | response-prop-removed: POST /v1/LinkShortening/Domains/{DomainSid}/Config -> 200 messaging_service_sids breaking code-fixable |
spec diff |
| — | request-prop-removed: POST /v1/LinkShortening/Domains/{DomainSid}/Config MessagingServiceSidsAction breaking code-fixable auto-fix pack |
spec diff |
| — | request-prop-removed: POST /v1/LinkShortening/Domains/{DomainSid}/Config MessagingServiceSids breaking code-fixable auto-fix pack |
spec diff |
| — | response-prop-removed: GET /v1/LinkShortening/Domains/{DomainSid}/Config -> 200 messaging_service_sids breaking code-fixable |
spec diff |
| — | request-prop-added-required: POST /v1/Services/{MessagingServiceSid}/Compliance/Usa2p MessageFlow breaking not code-fixable |
spec diff |
| — | request-prop-removed: POST /v1/a2p/BrandRegistrations A2pProfileBundleSid breaking code-fixable auto-fix pack |
spec diff |
| — | request-prop-added-required: POST /v1/a2p/BrandRegistrations A2PProfileBundleSid breaking code-fixable auto-fix pack |
spec diff |
| — | enum-value-removed: POST /v1/a2p/BrandRegistrations -> 201 status = VERIFIED breaking not code-fixable |
spec diff |
| — | enum-value-removed: POST /v1/a2p/BrandRegistrations -> 201 status = IN_PROGRESS breaking not code-fixable |
spec diff |
| — | enum-value-removed: GET /v1/a2p/BrandRegistrations/{Sid} -> 200 status = VERIFIED breaking not code-fixable |
spec diff |
| — | enum-value-removed: GET /v1/a2p/BrandRegistrations/{Sid} -> 200 status = IN_PROGRESS breaking not code-fixable |
spec diff |
| — | enum-value-removed: GET /v1/a2p/BrandRegistrations -> 200 data[].status = VERIFIED breaking not code-fixable |
spec diff |
| — | enum-value-removed: GET /v1/a2p/BrandRegistrations -> 200 data[].status = IN_PROGRESS breaking not code-fixable |
spec diff |
| — | param-removed: GET /v2/Attempts/Summary query:ServiceSid breaking code-fixable auto-fix pack |
spec diff |
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)
Recent Twilio releases adjudicated non-breaking
Not paging you is the other half of the job. The same pipeline that produced the timeline above also cleared 737 Twilio changes as additive or fix-only — releases an integrator can upgrade through without a migration. The most recent:
| Date | Release | Ref |
|---|---|---|
| 2026-04-14 | 5.13.2 fix |
source |
| 2026-03-12 | 5.13.0 additive |
source |
| 2026-02-05 | 5.12.1 additive |
source |
| 2026-01-07 | 5.11.2 additive |
source |
Measured: how the Twilio spec surface actually moves
The timeline above is fed by diffing Twilio's own published OpenAPI specs, so the natural question is how trustworthy that diff engine is on Twilio specifically. Two measured answers, both from archived evidence this page reads at build time.
Adjudicated parity corridor. Across 20 consecutive spec pairs spanning 5 Twilio API families (api v2010, chat v2, messaging v1, taskrouter v1, verify v2), the mendapi engine was run head-to-head against a mature open-source comparator (oasdiff version 1.26.0). The comparator flagged 358 breaking findings to mendapi's 142; every one of the 236 comparator-only findings was bucket-classified from the comparator's own texts (169 format-annotation-only, 67 object-to-any type widenings) and driven to 0 real gaps — 100% accounted. The corridor found no breaking change the comparator saw that mendapi missed.
An honest negative. The most recent Verify v2 corridor (twilio-oai 1.49 to main) produced 49 raw diff records and 0 breaking changes: 21 request-prop-added, 13 response-prop-added, 11 enum-value-added, 4 path-added. That is the Passkeys and RCS rollout — purely additive surface growth. A detection engine that cannot report “nothing broke here” is not measuring; the 36 entries in the timeline above are what remains after exactly this kind of adjudication.
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 84125 change records across 20 providers; hosted plans watch your repos continuously and open fix PRs when a change lands. See pricing.
Frequently asked questions
How do I check if my codebase is affected by Twilio breaking changes?
Run npx mendapi scan in your repo. It statically matches your files against the 36 Twilio breaking changes and deprecations in this tracker and reports file, line and confidence for every hit — locally, in about 30 seconds, with zero network calls.
How many Twilio API breaking changes are on record?
This tracker records 36 entries for Twilio (36 breaking changes and 0 deprecations, 2026). Each entry is adjudicated: 19 are code-fixable, 17 require a decision no codemod can make.
Are there automated fixes for Twilio breaking changes?
Yes — mendapi ships 3 deterministic migration packs for Twilio. mendapi fix applies them locally as reviewable diffs; every pack is gold-tested and idempotent.
Does my code get uploaded when scanning for Twilio changes?
No. mendapi scan, deps and fix run with zero network code, mechanically enforced by the test suite. Optional hosted reporting is metadata-only, secrets-redacted, and requires an explicit flag.
Related
- 20 Twilio spec pairs: 358 findings from one engine, 142 from ours, and every disagreement named — the long-form methodology report behind this provider's tracked changes.
- API breaking change detection — how upstream breakage is caught before it ships, and why default severity gates stay silent.
- 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.