API breaking-change feed
Changes from 15 providers, newest first. Each one links to the provider's own notice.
Filter
- Gemini API: Released the general-purpose Antigravity Agent managed agent, antigravity-preview-05-2026, in public preview. The Antigravity agent can autonomously plan, reason, write and execute code,…
- Gemini API: Launched the Managed Agents in the Gemini API in public preview. This enables developers to build and deploy autonomous, stateful agents that run in secure, isolated Google-hosted Linux…
- Gemini API: Released gemini-3.5-flash, the generally available (GA) version of Gemini 3.5 Flash, our most intelligent model for sustained frontier performance on agentic and coding tasks. This is…
- Claude Platform release notes — May 19, 2026
- Suspicious IP Throttling for Custom Token Exchange
- Claude Platform release notes — May 18, 2026
- Claude Platform release notes — May 13, 2026
- Non-Unique Emails is Now Generally Available
- Claude Platform release notes — May 12, 2026
- Secure your Account API with ACR EA
- Claude Platform release notes — May 11, 2026
- Online Refresh Tokens is now in Beta
-
Gemini API: Deprecation announcement
Why: title:deprecation
- Gemini API: Released gemini-3.1-flash-lite, the generally available (GA) version of Gemini 3.1 Flash-Lite, optimized for speed, scale, and cost efficiency.
-
Gemini API: Upcoming breaking change
Why: title:breaking change, text:breaking change
- Claude Platform release notes — May 6, 2026
- Auth for MCP is now Generally Available
- Resend Email Provider is now Generally Available
- Fix for Empty login_hint Parameter on External Identity Providers Requests
- Maps JavaScript API release 2026-05-06
- Gemini API: Updated File Search to support multimodal search. You can now natively embed and search through images using the gemini-embedding-2 model. Grounding metadata now includes media_id for…
- Gemini API: Launched event-driven Webhooks support in the Gemini API to replace polling workflows for the Batch API and long-running operations.
- Claude Platform release notes — May 4, 2026
-
Gemini API: The gemini-robotics-er-1.5-preview model has been shut down. Use gemini-robotics-er-1.6-preview instead.
Why: title:shut down
-
Claude Platform release notes — April 30, 2026
Why: text:we've retired
- Claude Platform release notes — April 29, 2026
- Maps JavaScript API release 2026-04-29
- Claude Platform release notes — April 24, 2026
- Claude Platform release notes — April 23, 2026
- Gemini API: Released gemini-embedding-2 as generally available (GA). To learn more, see the Embeddings page.
- Square API version 2026-04-21 released
- Gemini API: Released new versions of the Deep Research agent with collaborative planning, visualization support, MCP server integration, and File Search
-
Claude Platform release notes — April 20, 2026
Why: text:we've retired
- Claude Platform release notes — April 16, 2026
- Gemini API: Launched Gemini 3.1 Flash TTS Preview, our cost-efficient, expressive, and steerable text to speech model. Read the Text-to-Speech docs to learn more.
-
Gemini API: Deprecation announcement
Why: title:deprecation
- Gemini API: Released gemini-robotics-er-1.6-preview, our updated robotics model. It now has new capabilities like instrument reading, improved spatial and physical reasoning capabilities. To learn…
-
Claude Platform release notes — April 14, 2026
Why: text:announced the deprecation of
- Maps JavaScript API release 2026-04-14
-
PayPal Payments v2 spec changed: 22 breaking, 86 behaviour changes
Why: oasdiff:request-parameter-max-length-set, oasdiff:request-parameter-min-length-set, oasdiff:request-parameter-pattern-added, oasdiff:response-property-max-items-increased, oasdiff:response-required-property-removed
40 spec findings (oasdiff)
- Breaking
GET /v2/payments/authorizations/{authorization_id}for the `header` request parameter `paypal-auth-assertion`, the maxLength was set to `10000` - Breaking
GET /v2/payments/authorizations/{authorization_id}for the `path` request parameter `authorization_id`, the maxLength was set to `2147483647` - Breaking
GET /v2/payments/authorizations/{authorization_id}for the `header` request parameter `paypal-auth-assertion`, the minLength was set to `1` - Breaking
GET /v2/payments/authorizations/{authorization_id}added the pattern `^.*$` to the `header` request parameter `paypal-auth-assertion` - Breaking
GET /v2/payments/authorizations/{authorization_id}added the pattern `^[\S\s]*$` to the `path` request parameter `authorization_id` - Breaking
GET /v2/payments/authorizations/{authorization_id}the `links` response property's maxItems was increased from `10000` to `32767` for the response status `401` - Breaking
GET /v2/payments/authorizations/{authorization_id}removed the required property `details/items/issue` from the response with the `401` status - Breaking
GET /v2/payments/authorizations/{authorization_id}removed the required property `links/items/href` from the response with the `401` status - Breaking
GET /v2/payments/authorizations/{authorization_id}removed the required property `links/items/rel` from the response with the `401` status - Breaking
POST /v2/payments/authorizations/{authorization_id}/capturefor the `header` request parameter `paypal-request-id`, the maxLength was set to `10000` - Breaking
POST /v2/payments/authorizations/{authorization_id}/capturefor the `header` request parameter `prefer`, the maxLength was set to `2147483647` - Breaking
POST /v2/payments/authorizations/{authorization_id}/capturefor the `header` request parameter `paypal-request-id`, the minLength was set to `1` - Breaking
POST /v2/payments/authorizations/{authorization_id}/captureadded the pattern `^.*$` to the `header` request parameter `paypal-request-id` - Breaking
POST /v2/payments/authorizations/{authorization_id}/captureadded the pattern `^[\S\s]*$` to the `header` request parameter `prefer` - Breaking
POST /v2/payments/authorizations/{authorization_id}/capturethe `links` response property's maxItems was increased from `10000` to `32767` for the response status `409` - Breaking
POST /v2/payments/authorizations/{authorization_id}/captureremoved the required property `details/items/issue` from the response with the `409` status - Breaking
POST /v2/payments/authorizations/{authorization_id}/captureremoved the required property `links/items/href` from the response with the `409` status - Breaking
POST /v2/payments/authorizations/{authorization_id}/captureremoved the required property `links/items/rel` from the response with the `409` status - Breaking
GET /v2/payments/captures/{capture_id}for the `path` request parameter `capture_id`, the maxLength was set to `2147483647` - Breaking
GET /v2/payments/captures/{capture_id}added the pattern `^[\S\s]*$` to the `path` request parameter `capture_id` - Breaking
GET /v2/payments/refunds/{refund_id}for the `path` request parameter `refund_id`, the maxLength was set to `2147483647` - Breaking
GET /v2/payments/refunds/{refund_id}added the pattern `^[\S\s]*$` to the `path` request parameter `refund_id` - Behaviour
GET /v2/payments/authorizations/{authorization_id}removed `#/components/schemas/error_404, #/components/schemas/404` from the response body `allOf` list for the response status `404` - Behaviour
GET /v2/payments/authorizations/{authorization_id}the `allOf[subschema #1: Authorization -> subschema #1: authorization]/allOf[subschema #2]/expiration_time` response property's maxLength was unset from `64` for the response status `200` - Behaviour
GET /v2/payments/authorizations/{authorization_id}the `allOf[subschema #1: Authorization -> subschema #1: authorization]/allOf[subschema #3: Transaction Date and Time Stamps -> subschema #3: activity_timestamps]/create_time` response property's maxLength was unset from `64` for the response status `200` - Behaviour
GET /v2/payments/authorizations/{authorization_id}the `allOf[subschema #1: Authorization -> subschema #1: authorization]/allOf[subschema #3: Transaction Date and Time Stamps -> subschema #3: activity_timestamps]/update_time` response property's maxLength was unset from `64` for the response status `200` - Behaviour
GET /v2/payments/authorizations/{authorization_id}the `allOf[subschema #1: Authorization -> subschema #1: authorization]/allOf[subschema #2]/expiration_time` response property's minLength was unset from `20` for the response status `200` - Behaviour
GET /v2/payments/authorizations/{authorization_id}the `allOf[subschema #1: Authorization -> subschema #1: authorization]/allOf[subschema #3: Transaction Date and Time Stamps -> subschema #3: activity_timestamps]/create_time` response property's minLength was unset from `20` for the response status `200` - Behaviour
GET /v2/payments/authorizations/{authorization_id}the `allOf[subschema #1: Authorization -> subschema #1: authorization]/allOf[subschema #3: Transaction Date and Time Stamps -> subschema #3: activity_timestamps]/update_time` response property's minLength was unset from `20` for the response status `200` - Behaviour
GET /v2/payments/authorizations/{authorization_id}the `allOf[subschema #1: Authorization -> subschema #1: authorization]/allOf[subschema #2]/expiration_time` response's property pattern `^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$` was removed for t - Behaviour
GET /v2/payments/authorizations/{authorization_id}the `allOf[subschema #1: Authorization -> subschema #1: authorization]/allOf[subschema #3: Transaction Date and Time Stamps -> subschema #3: activity_timestamps]/create_time` response's property pattern `^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0 - Behaviour
GET /v2/payments/authorizations/{authorization_id}the `allOf[subschema #1: Authorization -> subschema #1: authorization]/allOf[subschema #3: Transaction Date and Time Stamps -> subschema #3: activity_timestamps]/update_time` response's property pattern `^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0 - Behaviour
GET /v2/payments/authorizations/{authorization_id}the `allOf[subschema #1: Authorization -> subschema #1: authorization]/allOf[subschema #1: Authorization Status With Details -> subschema #1: authorization_status]/status_details` response's property `type` changed from `object` to `any` for status `200` - Behaviour
GET /v2/payments/authorizations/{authorization_id}the `allOf[subschema #1: Authorization -> subschema #1: authorization]/allOf[subschema #2]/amount` response's property `type` changed from `object` to `any` for status `200` - Behaviour
GET /v2/payments/authorizations/{authorization_id}the `allOf[subschema #1: Authorization -> subschema #1: authorization]/allOf[subschema #2]/expiration_time` response's property `type/format` changed from `string/ppaas_date_time_v3` to `any` for status `200` - Behaviour
GET /v2/payments/authorizations/{authorization_id}the `allOf[subschema #1: Authorization -> subschema #1: authorization]/allOf[subschema #2]/links/items/` response's property `type` changed from `object` to `any` for status `200` - Behaviour
GET /v2/payments/authorizations/{authorization_id}the `allOf[subschema #1: Authorization -> subschema #1: authorization]/allOf[subschema #2]/network_transaction_reference` response's property `type` changed from `object` to `any` for status `200` - Behaviour
GET /v2/payments/authorizations/{authorization_id}the `allOf[subschema #1: Authorization -> subschema #1: authorization]/allOf[subschema #2]/seller_protection` response's property `type` changed from `object` to `any` for status `200` - Behaviour
GET /v2/payments/authorizations/{authorization_id}the `allOf[subschema #1: Authorization -> subschema #1: authorization]/allOf[subschema #3: Transaction Date and Time Stamps -> subschema #3: activity_timestamps]/create_time` response's property `type/format` changed from `string/ppaas_date_time_v3` to `any` for status `200` - Behaviour
GET /v2/payments/authorizations/{authorization_id}the `allOf[subschema #1: Authorization -> subschema #1: authorization]/allOf[subschema #3: Transaction Date and Time Stamps -> subschema #3: activity_timestamps]/update_time` response's property `type/format` changed from `string/ppaas_date_time_v3` to `any` for status `200`
- Breaking
-
PayPal Orders v2 spec changed: 16 breaking, 209 behaviour changes
Why: oasdiff:request-parameter-max-length-set, oasdiff:request-parameter-min-length-set, oasdiff:request-parameter-pattern-added, oasdiff:response-property-max-items-increased, oasdiff:response-required-property-removed, oasdiff:request-body-type-changed, oasdiff:request-property-pattern-added
40 spec findings (oasdiff)
- Breaking
POST /v2/checkout/ordersfor the `header` request parameter `paypal-auth-assertion`, the maxLength was set to `10000` - Breaking
POST /v2/checkout/ordersfor the `header` request parameter `paypal-auth-assertion`, the minLength was set to `1` - Breaking
POST /v2/checkout/ordersadded the pattern `^.*$` to the `header` request parameter `paypal-auth-assertion` - Breaking
POST /v2/checkout/ordersadded the pattern `^[A-Za-z0-9-{}(),]*$` to the `header` request parameter `paypal-client-metadata-id` - Breaking
POST /v2/checkout/ordersadded the pattern `^[\S\s]*$` to the `header` request parameter `paypal-partner-attribution-id` - Breaking
POST /v2/checkout/ordersadded the pattern `^[\S\s]*$` to the `header` request parameter `paypal-request-id` - Breaking
POST /v2/checkout/orders/order-update-callbackthe `links` response property's maxItems was increased from `10000` to `32767` for the response status `403` - Breaking
POST /v2/checkout/orders/order-update-callbackthe `links` response property's maxItems was increased from `10000` to `32767` for the response status `500` - Breaking
POST /v2/checkout/orders/order-update-callbackremoved the required property `details/items/issue` from the response with the `403` status - Breaking
POST /v2/checkout/orders/order-update-callbackremoved the required property `links/items/href` from the response with the `403` status - Breaking
POST /v2/checkout/orders/order-update-callbackremoved the required property `links/items/href` from the response with the `500` status - Breaking
POST /v2/checkout/orders/order-update-callbackremoved the required property `links/items/rel` from the response with the `403` status - Breaking
POST /v2/checkout/orders/order-update-callbackremoved the required property `links/items/rel` from the response with the `500` status - Breaking
GET /v2/checkout/orders/{id}for the `query` request parameter `fields`, the maxLength was set to `2147483647` - Breaking
POST /v2/checkout/orders/{id}/confirm-payment-sourcethe request's body `type` changed from `any` to `object` - Breaking
POST /v2/checkout/orders/{id}/confirm-payment-sourceadded the pattern `^[\S\s]*$` to the request property `application_context/brand_name` - Behaviour
POST /v2/checkout/ordersadded `#/components/schemas/apple_pay_request` to the `payment_source/apple_pay` request property `allOf` list - Behaviour
POST /v2/checkout/ordersadded `#/components/schemas/bancontact_request` to the `payment_source/bancontact` request property `allOf` list - Behaviour
POST /v2/checkout/ordersadded `#/components/schemas/blik_request` to the `payment_source/blik` request property `allOf` list - Behaviour
POST /v2/checkout/ordersadded `#/components/schemas/crypto_request` to the `payment_source/crypto` request property `allOf` list - Behaviour
POST /v2/checkout/ordersadded `#/components/schemas/eps_request` to the `payment_source/eps` request property `allOf` list - Behaviour
POST /v2/checkout/ordersadded `#/components/schemas/giropay_request` to the `payment_source/giropay` request property `allOf` list - Behaviour
POST /v2/checkout/ordersadded `#/components/schemas/google_pay_request` to the `payment_source/google_pay` request property `allOf` list - Behaviour
POST /v2/checkout/ordersadded `#/components/schemas/ideal_request` to the `payment_source/ideal` request property `allOf` list - Behaviour
POST /v2/checkout/ordersadded `#/components/schemas/mybank_request` to the `payment_source/mybank` request property `allOf` list - Behaviour
POST /v2/checkout/ordersadded `#/components/schemas/order_application_context` to the `application_context` request property `allOf` list - Behaviour
POST /v2/checkout/ordersadded `#/components/schemas/p24_request` to the `payment_source/p24` request property `allOf` list - Behaviour
POST /v2/checkout/ordersadded `#/components/schemas/payer, subschema #2` to the `payer` request property `allOf` list - Behaviour
POST /v2/checkout/ordersadded `#/components/schemas/paypal_wallet` to the `payment_source/paypal` request property `allOf` list - Behaviour
POST /v2/checkout/ordersadded `#/components/schemas/purchase_unit_request` to the `purchase_units/items/` request property `allOf` list - Behaviour
POST /v2/checkout/ordersadded `#/components/schemas/sofort_request` to the `payment_source/sofort` request property `allOf` list - Behaviour
POST /v2/checkout/ordersadded `#/components/schemas/trustly_request` to the `payment_source/trustly` request property `allOf` list - Behaviour
POST /v2/checkout/ordersadded `#/components/schemas/venmo_wallet_request` to the `payment_source/venmo` request property `allOf` list - Behaviour
POST /v2/checkout/ordersadded `subschema #1, subschema #2` to the `payment_source/card` request property `allOf` list - Behaviour
POST /v2/checkout/ordersremoved the request property `application_context/brand_name` - Behaviour
POST /v2/checkout/ordersremoved the request property `application_context/cancel_url` - Behaviour
POST /v2/checkout/ordersremoved the request property `application_context/landing_page` - Behaviour
POST /v2/checkout/ordersremoved the request property `application_context/locale` - Behaviour
POST /v2/checkout/ordersremoved the request property `application_context/payment_method` - Behaviour
POST /v2/checkout/ordersremoved the request property `application_context/return_url`
- Breaking
- Maps JavaScript API release 2026-04-08
- Gemini API: Released gemma-4-26b-a4b-it and gemma-4-31b-it, available on AI Studio and through the Gemini API, as part of the Gemma 4 launch.
- Gemini API: Introduced the new Flex and Priority inference tiers, offering more options for optimizing cost or latency.
- Maps JavaScript API release 2026-04-01
-
Gemini API: The gemini-2.5-flash-lite-preview-09-2025 model has been shut down. Use gemini-3.1-flash-lite-preview instead.
Why: title:shut down
- Gemini API: Launched Veo 3.1 Lite Preview, veo-3.1-lite-generate-preview, our most cost-efficient video generation model, designed for rapid iteration and building high-volume applications.
- Gemini API: Released gemini-3.1-flash-live-preview, the latest audio-to-audio (A2A) model designed for real-time dialogue and voice-first AI applications. Read the Live API docs to get started.
- Maps JavaScript API release 2026-03-26
- Gemini API: Launched Lyria 3 music generation models
Providers we watch
- Anthropic 60 changes
- Auth0 60 changes
- Google Gemini API 60 changes
- Google Maps Platform 37 changes
- Google Workspace APIs 30 changes
- HubSpot 10 changes
- Meta WhatsApp 2 changes
- Microsoft Graph 60 changes
- OpenAI 1 change
- PayPal 2 changes
- Plaid 10 changes
- Shopify 60 changes
- Square 7 changes
- Stripe 4 changes
- Twilio 30 changes
Get the next one before it breaks your weekend.
Free. No email sign-up yet. This page and the RSS feed pick up each provider's notice within the hour.
Email alerts are not open yet. Until they are, follow the feed by RSS.