The Canva Apps SDK, Connect APIs, and MCP are now unified in the Canva Developers SDK. Learn more(opens in a new tab or window).
Canva Developers SDK
The Canva Apps SDK, Connect APIs, and MCP are now unified in the Canva Developers SDK. Learn more(opens in a new tab or window).

Deprecation policy

How we deprecate features in the Canva Developers SDK.

The Canva Developers SDK is constantly evolving. We try to make changes in backwards compatible ways, but sometimes it's necessary to deprecate existing features in order to improve the platform.

This page describes everything you need to know about how we handle deprecation.

TL;DR

  • This deprecation policy only applies to the public, stable version of the Developers SDK.
  • When a feature is deprecated, it remains available for at least a further 6 months.
  • Canva communicates deprecations at multiple points in time, via multiple channels.
  • There may be exceptions to this policy, like in the case of security incidents.

Applicability

This deprecation policy applies to the public, stable version of the Developers SDK.

If an app uses private or unstable APIs, such as those released in beta, breaking changes may occur at any moment and without warning. You should not rely on unstable APIs remaining the same.

Deprecation period

The deprecation period for the Developers SDK is 6 months.

Once a feature has been deprecated, it will remain available for at least 6 months. When the deprecation period ends, the feature may be removed from the Developers SDK at any point in time.

Communication

Developers are notified when features are deprecated and when they're made obsolete. This communication happens via a number of channels, including but not limited to:

Breaking vs. non-breaking changes

There isn't a universal definition of what constitutes a breaking versus non-breaking change. This section explains how Canva defines these terms for apps inside Canva, and for the Canva REST APIs.

Apps inside Canva

For apps inside Canva, these terms are defined in terms of the SDK's methods and types.

A breaking change is one that's backward incompatible, meaning that it either alters or removes an existing API. Some examples of breaking changes include:

  • Adding required properties to methods.
  • Renaming methods or types.
  • Removing values from enums.

When a breaking change is made, the developer must update their app by the end of the deprecation period.

A non-breaking change is one that's backward compatible. Some examples of non-breaking changes include:

  • Adding methods to the SDK.
  • Adding optional properties to methods.
  • Adding values to enums.

When a non-breaking change is made, the developer is not required to update their app.

Canva REST APIs

For the Canva REST APIs, these terms are defined in terms of requests and responses. A breaking change requires the release of a new API version, whereas a non-breaking change doesn't.

The following are considered breaking changes:

  • Changing the required scopes for an API.
  • Adding a required request parameter.
  • Changing a request parameter from optional to required.
  • Changing the default value of a request parameter.
  • Updating an optional query or search parameter.
  • Removing an enumerated value from a request parameter.
  • Removing a request parameter.
  • Changing a validation rule for request parameters or response properties.
  • Adding an enumerated value to a response property.
  • Changing a response property from required to optional.
  • Changing response property behavior. For example, changing the meaning or structure of a property's value.
  • Removing a response property.
  • Changing a REST API behavior in a way that isn't backwards compatible. For example, changing the way uploads are processed, or how quality settings are applied.
  • Changing the HTTP response status code for an API.

The following are considered non-breaking changes:

  • Adding an optional request parameter.
  • Adding an enumerated value to a request parameter.
  • Changing a request parameter from required to optional.
  • Adding a response property.
  • Changing a response property from optional to required.
  • Removing an enumerated value from a response property.

Exceptions

Canva is committed to having a stable deprecation policy that developers can rely upon, but there are exceptions that need to be accounted for.

For example, if a security issue is discovered and a breaking change is required to fix it, the deprecation period for that change will not be observed. We will, however:

  • Communicate the change as quickly as possible.
  • Provide resources to help minimize disruption, such as a migration guide.

We do not make exceptions lightly. They're reserved for truly exceptional circumstances.

Tips & tricks

When a feature is deprecated, here's what we recommend:

  • Upgrade the app as soon as possible. To help make this process painless, we always provide migration guides, support via the developer community, and support via our ticketing system.
  • Don't submit apps that use deprecated APIs. We won't automatically reject apps that do this, but it's easier to upgrade the app as part of the same submission.