{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-metasearch/connect-api/sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":["admonition"]},"type":"markdown"},"seo":{"title":"Forward compatibility","siteUrl":"https://developers.booking.com","llmstxt":{"hide":false,"sections":[{"title":"Table of contents","includeFiles":["**/*"],"excludeFiles":[]}],"excludeFiles":[]}},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"forward-compatibility","__idx":0},"children":["Forward compatibility"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The Connect API evolves over time. To keep your integration resilient, build your client to be"," ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["forward-compatible"]}," so that additive, non-breaking changes are ingested smoothly and never break your"," ","flow."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["As a general rule — independent of any individual endpoint or its lifecycle stage — treat Connect API"," ","responses as forward-compatible:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["New fields may be added."]}," New fields may appear at the top level or within nested objects."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["New values may be added to existing fields."]}," Fields that draw from a fixed set of values (for"," ","example the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["image_size"]}," options on the property inventory stream) may gain new values over time."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["To handle this safely, build your client to:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Ignore properties it does not recognise"]},", rather than failing when an unexpected field appears."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Tolerate unknown values"]}," for enumerated fields, rather than rejecting the whole record."]}]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"warning","name":"Warning"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Do not implement strict schema validation that rejects unknown fields or unknown enum values. Additive"," ","changes are considered non-breaking and may be rolled out without prior notice; strict validation would"," ","cause such changes to break your integration."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Breaking changes — such as removing or renaming a field, or changing its type — are handled separately and"," ","communicated in advance."]}]},"headings":[{"value":"Forward compatibility","id":"forward-compatibility","depth":1}],"frontmatter":{"title":"Forward compatibility","seo":{"title":"Forward compatibility"}},"lastModified":"2026-07-13T10:57:59.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/metasearch/connect-api/development-guide/forward-compatibility","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}