Update to the 3.0 API

Custom Vision has now reached General Availability and has undergone an API update. This update includes a few new features and, importantly, a few breaking changes:

  • The Prediction API is now split into two based on the project type.
  • The Vision AI Developer Kit (VAIDK) export option requires creating a project in a specific way.
  • Default iterations have been removed in favor of a publish / unpublish a named iteration.

This guide will show you how to update your projects to work with the new API version. See the Release notes for a full list of the changes.

Use the updated Prediction API

The 2.x APIs used the same prediction call for both image classifiers and object detector projects. Both project types were acceptable to the PredictImage and PredictImageUrl calls. Starting with 3.0, we have split this API so that you need to match the project type to the call:

Use the new iteration publishing workflow

The 2.x APIs used the default iteration or a specified iteration ID to choose the iteration to use for prediction. Starting in 3.0, we have adopted a publishing flow whereby you first publish an iteration under a specified name from the training API. You then pass the name to the prediction methods to specify which iteration to use.


The 3.0 APIs do not use the default iteration feature. Until we deprecate the older APIs, you can continue to use the 2.x APIs to toggle an iteration as the default. These APIs will be maintained for a period of time, and you can call the UpdateIteration method to mark an iteration as default.

Publish an iteration

Once an iteration is trained, you can make it available for prediction using the PublishIteration method. To publish an iteration, you'll need the prediction resource ID, which is available on the CustomVision website's settings page.

The Custom Vision website settings page with the prediction resource ID outlined.


You can also get this information from the Azure Portal by going to the Custom Vision Prediction resource and selecting Properties.

Once your iteration is published, apps can use it for prediction by specifying the name in their prediction API call. To make an iteration unavailable for prediction calls, use the UnpublishIteration API.

Next steps