Skip to main content
API

Lifecycle

The API is built around a single, evolving GraphQL endpoint. This architecture ensures that new capabilities and performance improvements are delivered continuously without requiring migration between API versions.

This page outlines the different stability levels across the API, the stability guarantees of the stable API, the types of changes (breaking vs. non-breaking), and how deprecations are managed. For features currently in preview, see experimental features.

Feature lifecycle

Every feature sits at one of three stability levels: alpha, beta, or stable. Most features move through them in order, and stable features can only be retired through a deprecation process.

Lifecycle
text
[ ALPHA ] ──> [ BETA ] ──> [ STABLE ] ──> [ DEPRECATED ] ──> [ REMOVED ] Opt-in        Enabled                      12+ month               by default                   notice window

Stable API

Stable functionalities represent the production-ready core of the API. Changes are classified into two categories, non-breaking and breaking.

Non-breaking changes

Backward-compatible additions that do not disrupt existing integrations. These are released continuously without advance notice or deprecation.

Non-breaking changes include:

  • Adding a new query, mutation, or subscription.
  • Adding a new optional input argument to an existing operation.
  • Adding a new argument with a default that preserves existing behavior.
  • Adding a new field to the output of an existing operation.
  • Changing a required input argument to optional.
  • Adding a new value to an existing enum type.

Building for non-breaking changes

Non-breaking changes can still affect clients that make rigid assumptions. To keep integrations resilient:

  • Avoid strict object deserialization that fails when extra properties appear in payloads.
  • GraphQL enum types are non-exhaustive and expand over time. Always implement a fallback default case in client logic.
  • Inspect error extensions.exception.code values rather than matching against human-readable error strings.

Breaking changes and deprecations

A breaking change could break active existing integrations. As a consequence, any breaking change must first pass through a 12-month deprecation process.

Breaking changes include:

  • Removing or renaming an existing query, mutation, subscription, field, or input argument.
  • Removing or renaming enum values.
  • Changing the data type of an existing field or input argument.
  • Adding a new required input argument.
  • Changing an optional input argument to required.
  • Altering the business logic or behavior of an existing field.
  • Changing an output field from non-nullable (!) to nullable.
  • Changing the default value of an input argument or field.
  • Changing pagination defaults, maximum page sizes, or documented sort order.

Deprecation timeline

When a breaking change requires removing or replacing a stable capability, it follows a strict three-phase timeline:

  1. Deprecation announcementThe functionality is tagged with the @deprecated directive in the GraphQL schema. If applicable, a migration path is provided. The deprecation and respective removal date is announced simultaneously across three monitoring channels.
  2. Active notice window (months 1–12)The deprecated functionality remains fully operational. If a migration path is provided, integrators should update their applications and adopt the new fields during this 12-month window.
  3. Permanent removalAt the removal date, the functionality is permanently removed. Any subsequent requests using the functionality will fail schema validation with a GraphQL error.

Tracking Deprecations

Identify and track upcoming retirements across three channels:

  • Inspect @deprecated(reason: "...") directives in your schema tooling.
  • Review sunset dates and migration guides in the legacy section of the API or the deprecations portal.
  • Monitor DEPRECATED_FEATURE warnings returned directly in API responses.
Response example
Example request and response
graphql
{  "data": {    "station": {      "id": "5e8c22366f9c5f23ab0eff39",      "amenityList": [        {          "name": "Coffee Shop",          "foursquareUrl": "https://foursquare.com/v/example"        }      ]    }  },  "extensions": {    "warnings": [      {        "code": "DEPRECATED_FEATURE",        "path": ["amenityList", "foursquareUrl"],        "message": "This feature is deprecated and will be removed. To prevent errors and service disruptions, migrate to the recommended alternative before the scheduled removal date. Visit https://developers.chargetrip.com/deprecations for more information."      }    ]  }}

Was this content helpful?

Developers

Chargetrip ©

Status unknown

Manage cookies

Effective: 20th March, 2024 · Updated: 1 September, 2026

We use cookies to help improve your experience of developers.chargetrip.com. This cookie policy is part of the privacy policy, and covers the use of cookies between your device and our site. We also provide basic information on third-party services we may use, who may also use cookies as part of their service, though they are not covered by our policy.

If you don’t wish to accept any cookies from us, you should instruct your browser to refuse cookies from developers.chargetrip.com, with the understanding that we may be unable to provide you with some of your desired content and services.

A cookie is a small piece of data that a website stores on your device when you visit, typically containing information about the website itself, a unique identifier that allows the site to recognize your web browser when you return, additional data that serves the purpose of the cookie itself, and the lifespan of the cookie itself.

Cookies are used to enable certain features (e.g. logging in), to track site usage (e.g. analytics), to store your user settings (e.g. timezone, notification preferences), and to personalize your content (e.g. advertising, language).

Cookies set by the website you are visiting are normally referred to as “first-party cookies,” and typically only track your activity on that particular site. Cookies set by other sites and companies (i.e. third parties) can be used to track you on other websites that use the same third-party service.

Essential cookies

Cookies set by the website you are visiting are normally referred to as “first-party cookies,” and typically only track your activity on that particular site. Cookies set by other sites and companies (i.e. third parties) can be used to track you on other websites that use the same third-party service.

Performance cookies

Targeting / advertising cookies are used in determining what promotional content is more relevant and appropriate to you and your interests. Websites may use them to deliver targeted advertising or to limit the number of times you see an advertisement. This helps companies improve the effectiveness of their campaigns and the quality of content presented to you. These cookies may be set by the website you’re visiting (first-party) or by third-party services. Targeting/advertising cookies set by third parties may be used to track you on other websites that use the same third-party service. We use targeting/advertising cookies on our site.

Marketing / advertising cookies

Targeting / advertising cookies are used in determining what promotional content is more relevant and appropriate to you and your interests. Websites may use them to deliver targeted advertising or to limit the number of times you see an advertisement. This helps companies improve the effectiveness of their campaigns and the quality of content presented to you. These cookies may be set by the website you’re visiting (first-party) or by third-party services. Targeting/advertising cookies set by third parties may be used to track you on other websites that use the same third-party service. We use targeting/advertising cookies on our site.

Third party promise

We review the privacy policies of all our third-party providers before enlisting their services to ensure their practices align with ours. We will never knowingly include third-party services that compromise or violate the privacy of our users.

Cookie
google-cookie-consent
Description
Stores your cookie preferences, meaning which categories you have accepted or declined, so we can respect your choice on every visit and only load the analytics or marketing tools you have allowed.
Lifetime
2 years

How you can control or opt out of cookies

If you do not wish to accept cookies from us, you can instruct your browser to refuse cookies from our website. Most browsers are configured to accept cookies by default, but you can update these settings to either refuse cookies altogether or to notify you when a website is trying to set a cookie.

If you browse websites from multiple devices, you may need to update your settings on each individual device.

Although some cookies can be blocked with little impact on the experience of a website, blocking all cookies may mean you are unable to access certain features and content across the sites you visit.

We may update this Cookie Policy from time to time in order to reflect, for example, changes to the cookies we use or for other operational, legal, or regulatory reasons. Please re-visit this Cookie Policy to stay informed about our use of cookies and related technologies. The date at the top of this Cookie Policy indicates when it was last updated.