Netflix API Developer Blog
RSS FeedNetflix Public API Will Continue to Support DVD
Several months ago, we announced that we will be retiring the DVD-related features from the public API. This was done in anticipation of changes to our DVD business. However, there will be no changes to our DVD business, so we will now continue DVD support in the public API. This decision is effective immediately as we have not yet taken any action to remove these features.
Daniel Jacobson
Director of Engineering - Netflix API
Upcoming Changes to the Open API Program
As of Oct. 14th, 2011, the Netflix API will be focused exclusively on offering content and functionality from the streaming catalog. As a result, we will be discontinuing the support of DVD-related features in the Open API. These changes are in an effort to better position the Netflix API towards the company’s long-term goal of internationalizing our streaming experience. Focusing the API towards streaming will better enable the company to create rich experiences in these new markets. Additionally, over time, we plan to open up the API to become international as well.
The rest of this post includes the list of changes that will take effect in October. Our goal is to make the transition as smooth as possible by gracefully degrading as many of these deprecated features as possible.
The following resources will have DVD-related content removed from them, but they will still work correctly with streaming content only:
- users/user_ID/title_states
- users/user_ID/feeds
- catalog/titles
- catalog/titles/autocomplete
- catalog/titles/title/similar
- catalog/people/person_ID/filmography
The following disc endpoints (on the left of the table) will continue to be valid endpoints but will return a comparable, streaming-oriented result set (the results provided by the right side of the table) until June 1st, 2012, at which time these endpoints will be removed:
| Current Endpoint | New Endpoint Results |
| /users/user_ID/queues/disc | /users/user_ID/queues/instant |
| /users/user_ID/queues/disc/available | /users/user_ID/queues/instant/available |
| /users/user_ID/queues/disc/available/entry_ID | /users/user_ID/queues/instant/available/entry_ID |
| /users/user_ID/queues/disc/saved | /users/user_ID/queues/instant/saved |
| /users/user_ID/queues/disc/saved/entry_ID | /users/user_ID/queues/instant/saved/entry_ID |
The following resources will be deprecated and will return 404 responses:
- users/user_ID/at_home
- users/user_ID/rental_history/shipped
- users/user_ID/rental_history/returned
- catalog/titles/discs/disc_ID
All category resources will be deprecated. The category scheme attribute will remain, but will no longer resolve. The affected resources include:
- /categories/title_formats
- /categories/award_types
- /categories/screen_formats
- /categories/rental_states
- /categories/title_video_formats
- /categories/languages
- /categories/subtitle_languages
- /categories/audio
- /categories/genres
- /categories/title_formats
- /categories/queue_availability
- /categories/title_states
- /categories/mpaa_ratings
- /categories/tv_ratings
- /categories/ca_movie_ratings
- /categories/container_formats
- /categories/video_formats
- /categories/audio_formats
All resources that return DVD-specific elements will continue to work, although the DVD-specific elements will no longer be returned. This will primarily affect the elements in the catalog/titles/title resource, which will no longer return DVD-related values in the title_formats category.
Currently, there are several endpoints for the catalog index across the versions of the API. Over time, we plan to collapse them into a single index. For this announcement, we plan to leave the current versions the same, although the number of titles will dramatically decrease. The title count will decrease because the index today has both streaming and DVD titles. From this change, it will only contain titles that are available in streaming. We will have future announcements the catalog index in the future as we attempt to globalize it and clean up the endpoints.
The JavaScript Widgets will continue to work, although the will be modified to only work for streaming titles. Titles will no longer be able to be added to the DVD queue through these widgets.
The documentation in the portal is currently being revised to reflect all of these changes. We hope to have it published to the site sometime next week.
During this transition, we will continue to work with our developer community to make the change as smooth as possible.
Daniel Jacobson, Director of Engineering – Netflix API
Changes to genres and playback_bookmark
Genres Are Being Replaced as of June 15
Titles in the Netflix title catalog currently have genres associated with them. For instance, if you request the <catalog_title> record for the animated musical movie Sita Sings the Blues (GET catalog/titles/movies/70113539?v=2.0), the response contains the following genre information:
<?xml version="1.0" encoding="utf-8"?>
<catalog_title>
…
<category scheme="http://api.netflix.com/categories/genres"
label="Music & Musicals" term="Music & Musicals"></category>
<category scheme="http://api.netflix.com/categories/genres/623"
label="Animation for Grown-ups" term="Animation for Grown-ups"></category>
<category scheme="http://api.netflix.com/categories/genres/2316"
label="Contemporary Movie Musicals" term="Contemporary Movie Musicals"></category>
<category scheme="http://api.netflix.com/categories/genres/343"
label="Indie Dramas" term="Indie Dramas"></category>
<category scheme="http://api.netflix.com/categories/genres/315"
label="Indie Dramas" term="Indie Dramas"></category>
…
</catalog_title>
On June 15th, 2011, these genres are going away, to be replaced by a new classification model. This new model will be more flexible and more well-tuned to the diverse expectations of a global movie-watching audience.
What this means for you as an API developer is that you should identify any parts of your applications that rely on the current genre structure and remove this dependency in preparation for the rollout of the new classification model. Details of this new model will soon follow here at http://developer.netflix.com/.
The playback_bookmark element will always be zero as of June 30
If you request the users/user_ID/title_states resource for an instant-watch title that the subscriber has (at least partially) watched, the record for such a title has (in API versions 1.5 and higher) included a <playback_bookmark> element. That element gave an offset, in seconds, into the title’s play time to indicate where the subscriber last stopped or paused play.
At the end of June, 2011, as a side-effect of Netflix system changes, the playback bookmark element will return a default value of zero whether or not the subscriber has played, paused, or stopped the title. This affects API versions 1.5 or higher.
Netflix may re-introduce this feature in a future release of the Netflix API, but for now you are advised to hide, disable, or remove any features of your applications that rely on the the <playback_bookmark> element.
New "Series" Model
Summary: Netflix is moving toward treating a television series as a unified object — a single title — rather than as a set of seasons. You may notice some changes in the data you work with through the Netflix API, and you may want to change some of the logic of your application to better harmonize with this new conceptualization of the television series.
Description
Netflix is moving toward treating a television series as a unified object — a single title — rather than as a set of seasons or discs. The set-of-seasons or set-of-discs model is more of an artifact of the way DVDs are published and marketed, whereas the series-as-a-singular-thing is closer to the natural way of how subscribers think of a television series. You can already see this change emerging on the main Netflix site, and you may also note some changes in the underlying data to support this change.
Note that for some series with a particularly large number of titles (more than 200), the series may be broken up into more than one title — for instance: organized by decade.
Impact
Changes in API Requests and Responses
When you use the Netflix API to request the episodes associated with a series title, you will get a complete list of episodes for the series. This may be a larger list than you are used to getting for titles of this sort, and if your application intends to display information (such as the title state) for each episode, it will need to be prepared to use more (or bulkier) transmissions and more screen real estate in order to do so.
Episode titles will include information about the season number and episode number for each episode.
Here is an example response to a request for catalog/titles/series/70142415?v=2.0&expand=@episodes under the new model:
<catalog_title> <id>http://api.netflix.com/catalog/titles/series/70142415</id> <title short="The Sarah Silverman Program" regular="The Sarah Silverman Program"/> <link href="http://api.netflix.com/catalog/titles/series/70142415/box_art" rel="http://schemas.netflix.com/catalog/titles/box_art" title="box art"/> <link href="http://api.netflix.com/catalog/titles/series/70142415/synopsis" rel="http://schemas.netflix.com/catalog/titles/synopsis" title="synopsis"/> <link href="http://api.netflix.com/catalog/titles/series/70142415/short_synopsis" rel="http://schemas.netflix.com/catalog/titles/synopsis.short" title="short synopsis"/> <release_year>2007</release_year> <category scheme="http://api.netflix.com/categories/genres" label="Television" term="Television"/> <category scheme="http://api.netflix.com/categories/genres/2471" label="TV Sketch Comedies" term="TV Sketch Comedies"/> <category scheme="http://api.netflix.com/categories/genres/2197" label="TV Comedies" term="TV Comedies"/> <category scheme="http://api.netflix.com/categories/maturity_level" label="130" term="130"/> <link href="http://api.netflix.com/catalog/titles/series/70142415/screen_formats" rel="http://schemas.netflix.com/catalog/titles/screen_formats" title="screen formats"/> <link href="http://api.netflix.com/catalog/titles/series/70142415/cast" rel="http://schemas.netflix.com/catalog/people.cast" title="cast"/> <link href="http://api.netflix.com/catalog/titles/series/70142415/seasons" rel="http://schemas.netflix.com/catalog/titles.seasons" title="seasons"/> <link href="http://api.netflix.com/catalog/titles/series/70142415/episodes" rel="http://schemas.netflix.com/catalog/titles.programs" title="episodes"> <catalog_titles> <number_of_results>22</number_of_results> <link href="http://api.netflix.com/catalog/titles/programs/190213/70137452" rel="http://schemas.netflix.com/catalog/title" title="The Sarah Silverman Program: Season 1: Officer Jay"/> <link href="http://api.netflix.com/catalog/titles/programs/190214/70137456" rel="http://schemas.netflix.com/catalog/title" title="The Sarah Silverman Program: Season 1: Humanitarian of the Year"/> <link href="http://api.netflix.com/catalog/titles/programs/190215/70137453" rel="http://schemas.netflix.com/catalog/title" title="The Sarah Silverman Program: Season 1: Positively Negative"/> <link href="http://api.netflix.com/catalog/titles/programs/190216/70137454" rel="http://schemas.netflix.com/catalog/title" title="The Sarah Silverman Program: Season 1: Not Without My Daughter"/> <link href="http://api.netflix.com/catalog/titles/programs/190217/70137455" rel="http://schemas.netflix.com/catalog/title" title="The Sarah Silverman Program: Season 1: Muffin' Man"/> <link href="http://api.netflix.com/catalog/titles/programs/190218/70137451" rel="http://schemas.netflix.com/catalog/title" title="The Sarah Silverman Program: Season 1: Batteries"/> <link href="http://api.netflix.com/catalog/titles/programs/190219/70137457" rel="http://schemas.netflix.com/catalog/title" title="The Sarah Silverman Program: Season 2: Vol. 1: Bored of the Rings"/> <link href="http://api.netflix.com/catalog/titles/programs/190220/70137460" rel="http://schemas.netflix.com/catalog/title" title="The Sarah Silverman Program: Season 2: Vol. 1: Joan of Arf"/> <link href="http://api.netflix.com/catalog/titles/programs/190221/70137459" rel="http://schemas.netflix.com/catalog/title" title="The Sarah Silverman Program: Season 2: Vol. 1: Face Wars"/> <link href="http://api.netflix.com/catalog/titles/programs/190222/70137458" rel="http://schemas.netflix.com/catalog/title" title="The Sarah Silverman Program: Season 2: Vol. 1: Doodie"/> <link href="http://api.netflix.com/catalog/titles/programs/190223/70137462" rel="http://schemas.netflix.com/catalog/title" title="The Sarah Silverman Program: Season 2: Vol. 1: Ah, Men"/> <link href="http://api.netflix.com/catalog/titles/programs/190224/70137461" rel="http://schemas.netflix.com/catalog/title" title="The Sarah Silverman Program: Season 2: Vol. 1: Maid to Border"/> <link href="http://api.netflix.com/catalog/titles/programs/180818/70137469" rel="http://schemas.netflix.com/catalog/title" title="The Sarah Silverman Program: Season 2: Vol. 2: High, It's Sarah"/> <link href="http://api.netflix.com/catalog/titles/programs/190929/70137464" rel="http://schemas.netflix.com/catalog/title" title="The Sarah Silverman Program: Season 2: Vol. 2: The Mongolian Beef"/> <link href="http://api.netflix.com/catalog/titles/programs/180820/70137466" rel="http://schemas.netflix.com/catalog/title" title="The Sarah Silverman Program: Season 2: Vol. 2: Making New Friends"/> <link href="http://api.netflix.com/catalog/titles/programs/180821/70137468" rel="http://schemas.netflix.com/catalog/title" title="The Sarah Silverman Program: Season 2: Vol. 2: Patriot Tact"/> <link href="http://api.netflix.com/catalog/titles/programs/180822/70137463" rel="http://schemas.netflix.com/catalog/title" title="The Sarah Silverman Program: Season 2: Vol. 2: Pee"/> <link href="http://api.netflix.com/catalog/titles/programs/180823/70137465" rel="http://schemas.netflix.com/catalog/title" title="The Sarah Silverman Program: Season 2: Vol. 2: There's No Place Like Homeless"/> <link href="http://api.netflix.com/catalog/titles/programs/180824/70137467" rel="http://schemas.netflix.com/catalog/title" title="The Sarah Silverman Program: Season 2: Vol. 2: Fetus Don't Fail Me Now"/> <link href="http://api.netflix.com/catalog/titles/programs/180825/70137470" rel="http://schemas.netflix.com/catalog/title" title="The Sarah Silverman Program: Season 2: Vol. 2: I Thought My Dad Was Dead, But It Turns Out He's Not"/> <link href="http://api.netflix.com/catalog/titles/programs/180826/70137471" rel="http://schemas.netflix.com/catalog/title" title="The Sarah Silverman Program: Season 2: Vol. 2: Kangamangus"/> <link href="http://api.netflix.com/catalog/titles/programs/180827/70137472" rel="http://schemas.netflix.com/catalog/title" title="The Sarah Silverman Program: Season 2: Vol. 2: Vow Wow"/> </catalog_titles> </link> <average_rating>3.0</average_rating> <link href="http://api.netflix.com/catalog/titles/series/70142415/similars" rel="http://schemas.netflix.com/catalog/titles.similars" title="similars"/> <link href="http://www.netflix.com/Movie/The_Sarah_Silverman_Program/70142415" rel="alternate" title="web page"/> <link href="http://movi.es/VofWB" rel="http://schemas.netflix.com/catalog/title/ref.tiny" title="Tiny URL"/> </catalog_title>
Subscriber Expectations
Subscribers will come to expect that when they decide to "Add" a series to their queue, they will be adding the whole series — not just a season or a disc from the series. They will also expect, at the end of viewing details about one episode, to be given the choice to see the next episode in the series, without any additional clunkiness if this means passing over a (now-obsolete) season or disc boundary.
Subscribers may see changes to some of the information they have contributed. For instance if they formerly had ratings for multiple seasons of a series, these ratings will be consolidated into a single rating for the series as a whole. If they had formerly added certain seasons of a series to their queues, they may find these replaced in their queues by the series itself (if we've done this correctly as planned, the subscriber won't lose their place in the series during this switch).
API Rockstars Wanted
Netflix is the biggest consumer of the largest and most complex cloud computing environment, and is responsible for double-digit percentages of web traffic on a daily basis. The solutions we design define the cutting edge of consumer video provision. By joining our API team, you will be helping to fashion the state of the art for this space. As an engineer at Netflix, it won't be enough for you to be up-to-date on the latest standards and practices — you will need to look beyond them and help to explore the next steps of our industry in an ever-changing world where consumer expectations have a Moore's Law of their own.
Almost every day brings a new developer or partner to the Netflix API, and we often feel like we can't enable all the APIs we wish we could fast enough. To address both of those challenges, the Netflix API team is growing!
This is a developer forum — you are developers — you know other developers. Please help us find rockstars for each of these roles:
- API Integration, Technical Operations Manager
- API Integration, Technical Program Manager
- API Integration, Technical Support Engineer
- Senior Software Engineer, API
- Senior Software Engineer/Architect, Web API Platform
- Senior Software Engineer in Test, API Platform Engineering
Interested parties can learn more about these positions and apply for them by using the job links above. For more information on working at Netflix, please see http://www.netflix.com/Jobs.
OData Catalog Updates
After working with the OData system for several days, we have made some improvements to the system - some of them will break existing code, but this should be our last update of that nature (although it remains in "preview" mode, and so could change in the future.
Changes:
- The “Catalog” prefix has been removed from all entity sets. Therefore, “CatalogTitles” is now just “Titles”, “CatalogTitleGenres” is now just “TitleGenres”, and so on. This mirrors Netflix’s existing APIs, and also removes a bit of redundancy from the URL, since the root of the service is already “/Catalog/”.
- The Title entity’s ID is no longer a GUID, but rather a generated string that comes from Netflix’s API.
- The Person entity’s ID is no longer a GUID, but rather a generated number that comes from the Netflix’s API.
- The catalog data now includes whether a title is available for instant watch in HD (“Catalog/Titles?$filter=Instant/HighDefinitionAvailable”), which Netflix is beginning to start providing more often.
- The catalog data is now updated nightly to stay in sync with current Netflix data.
These changes should make the OData API more useful and consistent for developers to use. All changes have been documented on the OData Catalog API page.
Have fun, and let us know how it works for you!
Affiliate Partner Change
Netflix has partnered with the Google Affiliate Network to administer our affiliate revenue going forward. If you already have a Linkshare account, you are encouraged to migrate your links to the Google Affiliate Network as soon as possible so that your revenue stream continues. This partnership offers better tracking on our side, as well as deep linking to any page within the Netflix site so that our developers can provide a more customized user experience.
All the details about setting up your links for affiliate revenue can be found on our Affiliate Program page. Let us know if you have any questions or issues getting your links set up.
Announcing the OData Catalog API Preview!
The Netflix Catalog API provides rich information on over 100,000 movies and actors, but you can only retrieve its data by searching for movie title terms or actor names, or by downloading our multi-megabyte catalog index and putting it into a database to enable richer queries. What if you don't want to run your own database, but really need to find "movies available for instant watching released in the last two weeks in the anime genre that have greater than a 3 star average rating"?

OData to the Rescue
I'm happy to announce the availability of the Netflix OData Catalog API Preview. OData is an open protocol used to describe web-based data sources in a consistent way, enabling integration across a broad range of clients, servers, services, and tools. For example, at today's Microsoft MIX developer conference, they demonstrated using the Catalog within Visual Studio 2010. OData enabled:
- a schema view of the catalog illustrating the relationships between data entities
- a SQL-like language for creating rich queries against the catalog, and including only the data items you want in the results
- Intellisense IDE support, providing just-in-time help for building queries dynamically within the Visual Studio editor
We're initially rolling this out as a "Preview" as we want your feedback about how this API works before we finalize it. This means that the API might change in the future, but we'll be sure to give you advance notice before we start changing things. Please let us know what you think about the API in this blog or in the forum.
One last bit of good news, during the Preview this API is being made available without OAuth authentication and without rate limits. Now that you can access the Catalog more easily than ever before, we're really excited to see what you'll create! Check out the API documentation to get started. Kent has also built the beginning of a query builder.
Return of Netflix Widgets
The API Team is happy to announce a significant upgrade to the Netflix Widget API.
We hope the new widgets are a significant step forward, both in terms of what's offered and how easy it is to use. Gone are the days when you had to search the catalog, find a movie's ID, figure out how (or if) we had it currently available, and cobble together your own code, which would then break as soon as the movie left the catalog. Our new Widget Builder lets you search for a movie, find the one you like, add or remove widget options, see what it looks like right there on the page, and copy the code you need when you're happy.
We have two new widgets, Spotlight and Bubble. Both include rich information: movie descriptions, box art, add and play buttons, and even previews!
Spotlight widgets are embeddable badges, great for blog posts or sidebars about a specific movie. You can choose from two different layouts: a horizonal layout which is ideal for inclusion in the body of your pages, or a vertical layout that was designed more for sidebar placement. You can select what movie information you want to appear in the widget and modify its width. If you're a member of the Netflix affiliate program, you can add your ID and receive commissions for new referrals. You can even add buttons to allow your readers to share a movie on Facebook or Twitter.

The Bubble Widget is a fire-and-forget script that automatically enhances certain Netflix links on your page. When your readers mouse over those special links, they will see floating bubbles, just like the ones on Netflix.

Both widgets have been designed to degrade gracefully if JavaScript is not available. This is great for bloggers, since the "rich" version will appear if the blog post is displayed on a JavaScript-enabled page, and a Netflix movie link will appear for RSS readers and other non-JavaScript clients.
The widgets have been tested on a variety of web sites and blogs to ensure that they'll work well on your pages. If you do find any issues, please let us know about it in our forum.
We're already aware of a few minor fit-and-finish issues and will be addressing them shortly. Currently the instant watching player launched when the Play button is pressed has a white border; this will be fixed early next week. There's also additional work ahead to integrate the affilate program with the Bubble Widget, and to have a better description for the movie when sharing on Facebook.
We're very excited to see what you'll do with this new way to integrate with the Netflix service. Happy coding cutting and pasting!
The Netflix API Team
Catalog Index Maintanence
The api resource to access the catalog index api.netflix.com/catalog/titles/index will be down on 07/30 for about 30 minutes. Sorry for any incovenience.
[ Page 1 of 4 | Next ]