![Page 1: APIs for Internal Audiences - Netflix - App Dev Conference](https://reader033.vdocuments.site/reader033/viewer/2022061218/54b755d74a7959737d8b459e/html5/thumbnails/1.jpg)
APIs for an Internal AudienceBy Daniel Jacobson@daniel_jacobson
From the App Dev ConferenceSanta Clara, CAOctober 27, 2011
![Page 2: APIs for Internal Audiences - Netflix - App Dev Conference](https://reader033.vdocuments.site/reader033/viewer/2022061218/54b755d74a7959737d8b459e/html5/thumbnails/2.jpg)
NPR API Requests by Audience
![Page 3: APIs for Internal Audiences - Netflix - App Dev Conference](https://reader033.vdocuments.site/reader033/viewer/2022061218/54b755d74a7959737d8b459e/html5/thumbnails/3.jpg)
![Page 4: APIs for Internal Audiences - Netflix - App Dev Conference](https://reader033.vdocuments.site/reader033/viewer/2022061218/54b755d74a7959737d8b459e/html5/thumbnails/4.jpg)
The NPR API Powered Products
![Page 5: APIs for Internal Audiences - Netflix - App Dev Conference](https://reader033.vdocuments.site/reader033/viewer/2022061218/54b755d74a7959737d8b459e/html5/thumbnails/5.jpg)
Netflix API Requests by Audience
![Page 6: APIs for Internal Audiences - Netflix - App Dev Conference](https://reader033.vdocuments.site/reader033/viewer/2022061218/54b755d74a7959737d8b459e/html5/thumbnails/6.jpg)
Netflix API
![Page 7: APIs for Internal Audiences - Netflix - App Dev Conference](https://reader033.vdocuments.site/reader033/viewer/2022061218/54b755d74a7959737d8b459e/html5/thumbnails/7.jpg)
Netflix API
![Page 8: APIs for Internal Audiences - Netflix - App Dev Conference](https://reader033.vdocuments.site/reader033/viewer/2022061218/54b755d74a7959737d8b459e/html5/thumbnails/8.jpg)
How does this translate into value?
![Page 9: APIs for Internal Audiences - Netflix - App Dev Conference](https://reader033.vdocuments.site/reader033/viewer/2022061218/54b755d74a7959737d8b459e/html5/thumbnails/9.jpg)
NPR API : Page View Growth
![Page 10: APIs for Internal Audiences - Netflix - App Dev Conference](https://reader033.vdocuments.site/reader033/viewer/2022061218/54b755d74a7959737d8b459e/html5/thumbnails/10.jpg)
Netflix API : Requests Per Month
Jan-10 Feb-10 Mar-10 Apr-10 May-10 Jun-10 Jul-10 Aug-10 Sep-10 Oct-10 Nov-10 Dec-10 Jan-11 Feb-11 Mar-11 Apr-11 May-11 Jun-11 Jul-11 -
5
10
15
20
25
30
35
Requ
ests
in B
illio
ns
![Page 11: APIs for Internal Audiences - Netflix - App Dev Conference](https://reader033.vdocuments.site/reader033/viewer/2022061218/54b755d74a7959737d8b459e/html5/thumbnails/11.jpg)
What does all of this mean?
![Page 12: APIs for Internal Audiences - Netflix - App Dev Conference](https://reader033.vdocuments.site/reader033/viewer/2022061218/54b755d74a7959737d8b459e/html5/thumbnails/12.jpg)
Public APIs
Private APIs
![Page 13: APIs for Internal Audiences - Netflix - App Dev Conference](https://reader033.vdocuments.site/reader033/viewer/2022061218/54b755d74a7959737d8b459e/html5/thumbnails/13.jpg)
![Page 14: APIs for Internal Audiences - Netflix - App Dev Conference](https://reader033.vdocuments.site/reader033/viewer/2022061218/54b755d74a7959737d8b459e/html5/thumbnails/14.jpg)
Netflix API Requests by Audience
![Page 15: APIs for Internal Audiences - Netflix - App Dev Conference](https://reader033.vdocuments.site/reader033/viewer/2022061218/54b755d74a7959737d8b459e/html5/thumbnails/15.jpg)
![Page 16: APIs for Internal Audiences - Netflix - App Dev Conference](https://reader033.vdocuments.site/reader033/viewer/2022061218/54b755d74a7959737d8b459e/html5/thumbnails/16.jpg)
Personalization
EngineUser Info Movie
MetadataMovie Ratings
Similar Movies Reviews A/B Test
Engine
![Page 17: APIs for Internal Audiences - Netflix - App Dev Conference](https://reader033.vdocuments.site/reader033/viewer/2022061218/54b755d74a7959737d8b459e/html5/thumbnails/17.jpg)
Personalization
EngineUser Info Movie
MetadataMovie Ratings
Similar Movies
API
Reviews A/B Test Engine
![Page 18: APIs for Internal Audiences - Netflix - App Dev Conference](https://reader033.vdocuments.site/reader033/viewer/2022061218/54b755d74a7959737d8b459e/html5/thumbnails/18.jpg)
Personalization
EngineUser Info Movie
MetadataMovie Ratings
Similar Movies
API
Reviews A/B Test Engine
![Page 19: APIs for Internal Audiences - Netflix - App Dev Conference](https://reader033.vdocuments.site/reader033/viewer/2022061218/54b755d74a7959737d8b459e/html5/thumbnails/19.jpg)
Netflix API
![Page 20: APIs for Internal Audiences - Netflix - App Dev Conference](https://reader033.vdocuments.site/reader033/viewer/2022061218/54b755d74a7959737d8b459e/html5/thumbnails/20.jpg)
Redesigning the Netflix API
![Page 21: APIs for Internal Audiences - Netflix - App Dev Conference](https://reader033.vdocuments.site/reader033/viewer/2022061218/54b755d74a7959737d8b459e/html5/thumbnails/21.jpg)
Key Goals of API Redesign
• Improve performance of devices– Reduce API transactions– Reduce payload size
• Improve ability to rapidly innovate on devices– Put the API in the hands of the UI teams
![Page 22: APIs for Internal Audiences - Netflix - App Dev Conference](https://reader033.vdocuments.site/reader033/viewer/2022061218/54b755d74a7959737d8b459e/html5/thumbnails/22.jpg)
Netflix API : Requests Per Month
Jan-10 Feb-10 Mar-10 Apr-10 May-10 Jun-10 Jul-10 Aug-10 Sep-10 Oct-10 Nov-10 Dec-10 Jan-11 Feb-11 Mar-11 Apr-11 May-11 Jun-11 Jul-11 -
5
10
15
20
25
30
35
Requ
ests
in B
illio
ns
![Page 23: APIs for Internal Audiences - Netflix - App Dev Conference](https://reader033.vdocuments.site/reader033/viewer/2022061218/54b755d74a7959737d8b459e/html5/thumbnails/23.jpg)
Growth of the Netflix API
Over 1 Billion requests per day(Peaks at about 20,000 requests per second)
![Page 24: APIs for Internal Audiences - Netflix - App Dev Conference](https://reader033.vdocuments.site/reader033/viewer/2022061218/54b755d74a7959737d8b459e/html5/thumbnails/24.jpg)
![Page 25: APIs for Internal Audiences - Netflix - App Dev Conference](https://reader033.vdocuments.site/reader033/viewer/2022061218/54b755d74a7959737d8b459e/html5/thumbnails/25.jpg)
<catalog_titles> <number_of_results>1140</number_of_results> <start_index>0</start_index> <results_per_page>10</results_per_page> <catalog_title> <id>http://api.netflix.com/catalog/titles/movies/60021896</id><title short="Star" regular="Star"></title> <box_art small="http://alien2.netflix.com/us/boxshots/tiny/60021896.jpg"
medium="http://alien2.netflix.com/us/boxshots/small/60021896.jpg" large="http://alien2.netflix.com/us/boxshots/large/60021896.jpg"></box_art>
<link href="http://api.netflix.com/catalog/titles/movies/60021896/synopsis" rel="http://schemas.netflix.com/catalog/titles/synopsis" title="synopsis"></link>
<release_year>2001</release_year> <category scheme="http://api.netflix.com/catalog/titles/mpaa_ratings" label="NR"></category> <category scheme="http://api.netflix.com/categories/genres" label="Foreign"></category> <link href="http://api.netflix.com/catalog/titles/movies/60021896/cast"
rel="http://schemas.netflix.com/catalog/people.cast" title="cast"></link><link href="http://api.netflix.com/catalog/titles/movies/60021896/screen_formats" rel="http://schemas.netflix.com/catalog/titles/screen_formats" title="screen formats"></link <link href="http://api.netflix.com/catalog/titles/movies/60021896/languages_and_audio" rel="http://schemas.netflix.com/catalog/titles/languages_and_audio" title="languages and audio"></link> <average_rating>1.9</average_rating> <link href="http://api.netflix.com/catalog/titles/movies/60021896/similars" rel="http://schemas.netflix.com/catalog/titles.similars" title="similars"></link> <link href="http://www.netflix.com/Movie/Star/60021896" rel="alternate" title="webpage"></link> </catalog_title> <catalog_title> <id>http://api.netflix.com/catalog/titles/movies/17985448</id><title short="Lone Star" regular="Lone Star"></title> <box_art small="http://alien2.netflix.com/us/boxshots/tiny/17985448.jpg" medium="http://alien2.netflix.com/us/boxshots/small/17985448.jpg" large=""></box_art> <link href="http://api.netflix.com/catalog/titles/movies/17985448/synopsis" rel="http://schemas.netflix.com/catalog/titles/synopsis" title="synopsis"></link> <release_year>1996</release_year> <category scheme="http://api.netflix.com/catalog/titles/mpaa_ratings" label="R"></category> <category scheme="http://api.netflix.com/categories/genres" label="Drama"></category><link href="http://api.netflix.com/catalog/titles/movies/17985448/awards" rel="http://schemas.netflix.com/catalog/titles/awards" title="awards"></link> <link href="http://api.netflix.com/catalog/titles/movies/17985448/format_availability" rel="http://schemas.netflix.com/catalog/titles/format_availability" title="formats"></link> <link href="http://api.netflix.com/catalog/titles/movies/17985448/screen_formats" rel="http://schemas.netflix.com/catalog/titles/screen_formats" title="screen formats"></link> <link href="http://api.netflix.com/catalog/titles/movies/17985448/languages_and_audio" rel="http://schemas.netflix.com/catalog/titles/languages_and_audio" title="languages and audio"></link> <average_rating>3.7</average_rating> <link href="http://api.netflix.com/catalog/titles/movies/17985448/previews" rel="http://schemas.netflix.com/catalog/titles/previews" title="previews"></link> <link href="http://api.netflix.com/catalog/titles/movies/17985448/similars" rel="http://schemas.netflix.com/catalog/titles.similars" title="similars"></link> <link href="http://www.netflix.com/Movie/Lone_Star/17985448" rel="alternate" title="webpage"></link> </catalog_title></catalog_titles>
![Page 26: APIs for Internal Audiences - Netflix - App Dev Conference](https://reader033.vdocuments.site/reader033/viewer/2022061218/54b755d74a7959737d8b459e/html5/thumbnails/26.jpg)
{"catalog_title":{"id":"http://api.netflix.com/catalog/titles/movies/60034967","title":{"title_short":"Rosencrantz and Guildenstern Are Dead","regular":"Rosencrantz and Guildenstern Are Dead"},"maturity_level":60,"release_year":"1990","average_rating":3.7,"box_art":{"284pix_w":"http://cdn-7.nflximg.com/en_US/boxshots/ghd/60034967.jpg","110pix_w":"http://cdn-7.nflximg.com/en_US/boxshots/large/60034967.jpg","38pix_w":"http://cdn-7.nflximg.com/en_US/boxshots/tiny/60034967.jpg","64pix_w":"http://cdn-7.nflximg.com/en_US/boxshots/small/60034967.jpg","150pix_w":"http://cdn-7.nflximg.com/en_US/boxshots/150/60034967.jpg","88pix_w":"http://cdn-7.nflximg.com/en_US/boxshots/88/60034967.jpg","124pix_w":"http://cdn-7.nflximg.com/en_US/boxshots/124/60034967.jpg"},"language":"en","web_page":"http://www.netflix.com/Movie/Rosencrantz_and_Guildenstern_Are_Dead/60034967","tiny_url":"http://movi.es/ApUP9"},"meta":{"expand":["@directors","@bonus_materials","@cast","@awards","@short_synopsis","@synopsis","@box_art","@screen_formats","@"links":{"id":"http://api.netflix.com/catalog/titles/movies/60034967","languages_and_audio":"http://api.netflix.com/catalog/titles/movies/60034967/languages_and_audio","title":"http://api.netflix.com/catalog/titles/movies/60034967/title","screen_formats":"http://api.netflix.com/catalog/titles/movies/60034967/screen_formats","cast":"http://api.netflix.com/catalog/titles/movies/60034967/cast","awards":"http://api.netflix.com/catalog/titles/movies/60034967/awards","short_synopsis":"http://api.netflix.com/catalog/titles/movies/60034967/short_synopsis","box_art":"http://api.netflix.com/catalog/titles/movies/60034967/box_art","synopsis":"http://api.netflix.com/catalog/titles/movies/60034967/synopsis","directors":"http://api.netflix.com/catalog/titles/movies/60034967/directors","similars":"http://api.netflix.com/catalog/titles/movies/60034967/similars","format_availability":"http://api.netflix.com/catalog/titles/movies/60034967/format_availability"}}}
![Page 27: APIs for Internal Audiences - Netflix - App Dev Conference](https://reader033.vdocuments.site/reader033/viewer/2022061218/54b755d74a7959737d8b459e/html5/thumbnails/27.jpg)
Improve Efficiency of API Requests
Could it have been 100 million requests per day? Or less?(Assuming everything else remained the same)
![Page 28: APIs for Internal Audiences - Netflix - App Dev Conference](https://reader033.vdocuments.site/reader033/viewer/2022061218/54b755d74a7959737d8b459e/html5/thumbnails/28.jpg)
AUTH
DEVICE SETUP
TIME SERVICE
INSTANT QUEUE
LISTS
LIST ( i )
TITLES
LOGGING
CLIENT APPS API SERVER
![Page 29: APIs for Internal Audiences - Netflix - App Dev Conference](https://reader033.vdocuments.site/reader033/viewer/2022061218/54b755d74a7959737d8b459e/html5/thumbnails/29.jpg)
CUSTOMENDPOINT
PER DEVICE
CLIENT APPS API SERVER
APISCRIPTING
TIER
AUTH
DEVICE SETUP
TIME SERVICE
INSTANT QUEUE
LISTS
LIST ( i )
TITLES
LOGGING
![Page 30: APIs for Internal Audiences - Netflix - App Dev Conference](https://reader033.vdocuments.site/reader033/viewer/2022061218/54b755d74a7959737d8b459e/html5/thumbnails/30.jpg)
Courtesy of John Musser, ProgrammableWeb
API Billionaires Club
5 billion API calls / day (April 2010)
3.2 billion API-delivered stories / month (October
2011)
5 billion API calls / day (October 2009)
8 billion API calls / month (Q3 2009)
3 billion API calls / month (March 2009)
13 billion API calls / day (May 2011)
Over 260 billion objects stored in S3 (January 2011)
1 billion API calls / day (October 2011)
![Page 31: APIs for Internal Audiences - Netflix - App Dev Conference](https://reader033.vdocuments.site/reader033/viewer/2022061218/54b755d74a7959737d8b459e/html5/thumbnails/31.jpg)
Courtesy of John Musser, ProgrammableWeb
API Billionaires Club
5 billion API calls / day (April 2010)
3.2 billion API-delivered stories / month (October
2011)
5 billion API calls / day (October 2009)
8 billion API calls / month (Q3 2009)
3 billion API calls / month (March 2009)
13 billion API calls / day (May 2011)
Over 260 billion objects stored in S3 (January 2011)
1 billion API calls / day (October 2011)
![Page 32: APIs for Internal Audiences - Netflix - App Dev Conference](https://reader033.vdocuments.site/reader033/viewer/2022061218/54b755d74a7959737d8b459e/html5/thumbnails/32.jpg)
![Page 33: APIs for Internal Audiences - Netflix - App Dev Conference](https://reader033.vdocuments.site/reader033/viewer/2022061218/54b755d74a7959737d8b459e/html5/thumbnails/33.jpg)
![Page 34: APIs for Internal Audiences - Netflix - App Dev Conference](https://reader033.vdocuments.site/reader033/viewer/2022061218/54b755d74a7959737d8b459e/html5/thumbnails/34.jpg)
If you are interested in helping us solve these problems, please contact me at:
Daniel [email protected]
@daniel_jacobsonhttp://www.linkedin.com/in/danieljacobsonhttp://www.slideshare.net/danieljacobson