SlideShare a Scribd company logo
API Copyrights: New Considerations for
Building or Using APIs
Stacey Giamalis
Ed Anuff
Presenters
2
Stacey Giamalis
Apigee Legal Function Lead
Ed Anuff
Apigee Product Strategist and
Developer
Context
•  Intended for API users and API creators who are curious about the impact of this
decision on them
•  Not a critical analysis
•  Not legal advice
•  Oracle v. Google background
–  2010: patent and copyright claims on Java API (not the implementing code)
–  2012: federal trial court says Java API not copyrightable (ie not protected by copyright)
–  2014: federal appeals court decides that Java API declaration headers and overall structure,
sequence, and organization protected by copyright
–  June 2015: Supreme Court decides not to review federal appeals court decision
•  Copyright infringement requires three elements, only two of which were before the
court
–  a work protected by copyright
–  infringement of the copyright by copying, distributing, etc.
–  no valid defense to infringement, such as fair use
3
The case: issues decided by the federal circuit
•  Was the trial court correct in holding that the Java API declaration headers were
not protected by copyright due to merger and method of operation?
–  the federal Circuit said “No”
•  Did Google’s use of the Java API constitute fair use?
–  the federal circuit court said: “Not enough facts for us to decide; trial court needs to
rehear this part”
4
The case: facts
•  The Java API is complex and intricately organized
–  an API is an architecture for making operations and resources of a program available for use
by another program, along with instructions on how to write code to access those
operations and resources
–  the Java API is 6,000 methods (or routines), which are combined with variables and other
items and grouped into subclasses, which are grouped into 600 classes, and the 600
classes are combined with interfaces and grouped into 166 API packages
•  Google admitted that it copied the exact declaration headers for 37 of the Java
API packages and the exact structure, order, and organization of their routines
–  Declaration header example: public static int max (int x, int y)
5
The case: facts (cont’d)
•  The Java API packages that Google incorporated into the Android API did not
allow the Android platform or Android OS apps to access, or interoperate with,
the Java platform
•  Java API licensing conversations between Sun and Google broke down over
Google’s refusal to follow Java’s core standard of “write once, run anywhere”
–  AndroidOS apps do not run on other Java-based platforms
6
The case: federal circuit’s holdings
•  Java API declaration headers are copyrightable
–  “idea/expression merger” (only one, or only a few, ways to write something)
•  federal circuit held that in the Ninth Circuit, idea/expression merger is for defense against
infringement, not relevant for copyright
•  however, court said merger not present here with possible exception
–  names and short phrases
•  by regulation, words and short phrases comprising names are not copyrightable
•  but compilations of non-protected items are protectable under copyright law if there was
creativity in the selection and arrangement of the items
•  Structure, sequence and organization of the Java API is copyrightable
–  the Java API is a creative and original taxonomy as determined by the trial court
•  Google could employ a routine/class/package structure to offer the same functionality in
AndroidOS, but it cannot replicate the exact detailed arrangement of the Java routines
7
The case: court’s commentary on fair use
•  Under Ninth Circuit law an interoperability need is relevant to a fair use defense,
not to copyrightability
•  But Google was NOT trying to make Android OS compatible with Java platform
•  Instead, Google wanted to accelerate availability of Android OS apps by
leveraging the fact that developers were already trained and experienced in
using Java
8
The Case: court’s commentary on fair use (cont’d)
•  There are four fair use factors and they’re applied on a case-by-case basis:
1. Purpose and character of the infringing use
2. The nature of the copyrighted work (including how informative/functional vs. how creative)
3. The amount and substantiality of portion of the copyrighted work used
4. The effect of the use upon the value of or market for the copyright holder’s work
•  Of these, #4 is by far the most important per the court
–  the court was clearly troubled by Google’s objectives in copying the Java API
•  Regarding #2, the court said that if copying of a (utilitarian) software program is
needed to perform the program’s functions, that could mean the use is fair
9
Comments and context: the decision
•  The appeals court did not say all APIs are copyrightable
•  Java API considered as a separate work from the underlying Java platform
•  The case was NOT about implementing code that is written to an API
10
Comments and context: situational aspects
•  Google cloned the Java API to use as its own API for its own program, and
displaced the Java platform
–  Google used the Java API for a different and replacing use than what Sun created it
for (to call back to the Java platform)
•  Google violated Java’s core standard and philosophy
•  Google wanted to leverage developers’ familiarity with the Java API to make
easy porting of pre-Android OS Java apps to Android OS
–  leveraging the network effects of the Java API
11
Comments and context: practical aspects
•  Structure: Java code API particularly intricate
–  compare structure of web APIs
•  Resource names
–  individual names vs. compilation of all names
–  REST API resource names style
•  Case NOT about using an API to access operations/resources of the underlying
program
–  API has been published for that purpose
•  language in the federal court’s decision honoring this
•  legal theories (implied license, implied promise) and community enforcement
•  explicit licensing
12
Suggested practices
•  Avoid cloning APIs
•  Create your own APIs—degree of similarity to other APIs
–  web APIs (RESTful or SOA APIs)
•  Consulting well-known APIs
–  resource names
•  generate your own; different can be good
–  structuring your API
–  general structure vs. identical organization of all items to another API
–  explicitly license your API
13
Situations
•  Example: creating an API for a third-party program that doesn’t have one
•  Example: creating connecting code for a third-party program (either without an
API, or ignoring/subverting the API)
•  Example: creating mashups/super APIs
•  Is another’s API or underlying program (may be separate works) being either
literally copied, or is its structure, sequence, or organization being copied?
•  What is the purpose for which the API/connecting code is being created?
14
Conclusion
•  Nothing has changed in terms of using APIs to access operations and
resources of an underlying program
•  Biggest issue in API creation is in cloning vs. creating your own APIs
•  Fair use decision in Oracle v. Google coming later
15
Thank you
Special thanks to Heather Meeker, partner at the O’Melveney firm,
for her contributions to this presentation

More Related Content

PDF
API-first, going beyond SOA, ESB & Integration
PDF
I Love APIs 2015: Advanced Crash Course in Apigee Edge Workshop
PPTX
Transforming Your Business Through APIs
PDF
Using APIs to Program Disparate IoT Devices
PDF
Webcast: Deep-Dive Apigee Edge Microgateway
PPTX
Apigee Edge Overview and Roadmap
PDF
Bringing API Management to AWS Powered Backends
PPTX
App & API Monitoring: Building a 5-Star Reputation for your Apps
API-first, going beyond SOA, ESB & Integration
I Love APIs 2015: Advanced Crash Course in Apigee Edge Workshop
Transforming Your Business Through APIs
Using APIs to Program Disparate IoT Devices
Webcast: Deep-Dive Apigee Edge Microgateway
Apigee Edge Overview and Roadmap
Bringing API Management to AWS Powered Backends
App & API Monitoring: Building a 5-Star Reputation for your Apps

What's hot (20)

PDF
Deep Dive: Strategic Importance of BaaS
PDF
Webcast: Apigee Edge Product Demo
PDF
Pivotal + Apigee Workshop (June 4th, 2019)
PDF
Edge API BaaS Deep-Dive: Streamline app development
PPTX
Building APIs with Apigee Edge and Microsoft Azure
PDF
I Love APIs 2015: End to End Testing: Bug Squashing for Developers
PDF
I Love APIs 2015: Create Design-driven APIs with Node.js and Swagger
PPTX
Apigee Insights: Data & Context-Driven Actions
PPTX
Unlocking Value From the Internet of Things (IoT) with APIs
PDF
End to End Testing: Bug Squashing for API Developers
PPTX
We Built This City - Apigee Edge Architecture
PDF
Bringing Partners, Teams and Systems Together through APIs
PDF
I Love APIs 2015: Implementing an API Tier to Enable a New Mobile Platform
PPTX
Gotta Block ‘Em All – Observations on Controlling Access to Mobile APIs using...
PPTX
APIs.JSON: Bootstrapping The Web of APIs
PPTX
API First: Going Beyond SOA, ESBs, and Integration
PDF
Who Cares About APIs? (NordicAPIS April 2014)
PPTX
Adapt or Die: Serverless Microservices
PPTX
Monitoring Solutions for APIs
PPTX
Node.js - Extending the Programmability of Apigee Edge
Deep Dive: Strategic Importance of BaaS
Webcast: Apigee Edge Product Demo
Pivotal + Apigee Workshop (June 4th, 2019)
Edge API BaaS Deep-Dive: Streamline app development
Building APIs with Apigee Edge and Microsoft Azure
I Love APIs 2015: End to End Testing: Bug Squashing for Developers
I Love APIs 2015: Create Design-driven APIs with Node.js and Swagger
Apigee Insights: Data & Context-Driven Actions
Unlocking Value From the Internet of Things (IoT) with APIs
End to End Testing: Bug Squashing for API Developers
We Built This City - Apigee Edge Architecture
Bringing Partners, Teams and Systems Together through APIs
I Love APIs 2015: Implementing an API Tier to Enable a New Mobile Platform
Gotta Block ‘Em All – Observations on Controlling Access to Mobile APIs using...
APIs.JSON: Bootstrapping The Web of APIs
API First: Going Beyond SOA, ESBs, and Integration
Who Cares About APIs? (NordicAPIS April 2014)
Adapt or Die: Serverless Microservices
Monitoring Solutions for APIs
Node.js - Extending the Programmability of Apigee Edge
Ad

Similar to API Copyrights: New Considerations for Building or Using APIs (20)

PDF
Software Copyrights in an Evolving Digital World
PPTX
Google v Oracle: The Future of Software and Fair Use
PPTX
Google v. Oracle
PPT
Oracle v. Google: Deciphering the district court’s decision of no copyright p...
PPTX
API Services: Building State-of-the-Art APIs
PDF
Dev Learn Handout - Session 604
PDF
Copyright, Open Source and APIs (towards an Interface Commons)
PDF
oracle-apac-developers-meetup-2-building-api-with-apiary-slides
PDF
Always up to date, testable and maintainable documentation with OpenAPI
PDF
Webinar–The 2019 Open Source Year in Review
PDF
Webservicex.pdf
PDF
The API Lifecycle Series: Evolving API Development and Testing from Open Sour...
PPTX
Extend soa with api management spoug- Madrid
PDF
Top 20 API Testing Interview Questions.pdf
PDF
Open Development
PDF
Oracle v Google: How Can You Protect Computer APIs
PDF
9 Months and Counting with Jeff Borek of IBM OpenAPI Meetup 2016 09 15
PDF
Marc van 't Veer - Testing The API Behind a Mobile App - EuroSTAR 2012
PDF
WSO2Con EU 2015: Towards a Winning API Strategy
PPTX
Scaling API Design - Nordic APIs 2014
Software Copyrights in an Evolving Digital World
Google v Oracle: The Future of Software and Fair Use
Google v. Oracle
Oracle v. Google: Deciphering the district court’s decision of no copyright p...
API Services: Building State-of-the-Art APIs
Dev Learn Handout - Session 604
Copyright, Open Source and APIs (towards an Interface Commons)
oracle-apac-developers-meetup-2-building-api-with-apiary-slides
Always up to date, testable and maintainable documentation with OpenAPI
Webinar–The 2019 Open Source Year in Review
Webservicex.pdf
The API Lifecycle Series: Evolving API Development and Testing from Open Sour...
Extend soa with api management spoug- Madrid
Top 20 API Testing Interview Questions.pdf
Open Development
Oracle v Google: How Can You Protect Computer APIs
9 Months and Counting with Jeff Borek of IBM OpenAPI Meetup 2016 09 15
Marc van 't Veer - Testing The API Behind a Mobile App - EuroSTAR 2012
WSO2Con EU 2015: Towards a Winning API Strategy
Scaling API Design - Nordic APIs 2014
Ad

More from Apigee | Google Cloud (20)

PDF
How Secure Are Your APIs?
PDF
Magazine Luiza at a glance (1)
PPTX
Monetization: Unlock More Value from Your APIs
PDF
Apigee Demo: API Platform Overview
PDF
Ticketmaster at a glance
PDF
AccuWeather: Recasting API Experiences in a Developer-First World
PDF
Which Application Modernization Pattern Is Right For You?
PPTX
Apigee Product Roadmap Part 2
PPTX
The Four Transformative Forces of the API Management Market
PDF
Walgreens at a glance
PDF
Apigee Edge: Intro to Microgateway
PDF
Managing the Complexity of Microservices Deployments
PDF
Pitney Bowes at a glance
PPTX
Microservices Done Right: Key Ingredients for Microservices Success
PDF
Adapt or Die: Opening Keynote with Chet Kapoor
PDF
Adapt or Die: Keynote with Greg Brail
PDF
Adapt or Die: Keynote with Anant Jhingran
PDF
London Adapt or Die: Opening Keynot
PDF
London Adapt or Die: Lunch keynote
PDF
London Adapt or Die: Closing Keynote — Adapt Now!
How Secure Are Your APIs?
Magazine Luiza at a glance (1)
Monetization: Unlock More Value from Your APIs
Apigee Demo: API Platform Overview
Ticketmaster at a glance
AccuWeather: Recasting API Experiences in a Developer-First World
Which Application Modernization Pattern Is Right For You?
Apigee Product Roadmap Part 2
The Four Transformative Forces of the API Management Market
Walgreens at a glance
Apigee Edge: Intro to Microgateway
Managing the Complexity of Microservices Deployments
Pitney Bowes at a glance
Microservices Done Right: Key Ingredients for Microservices Success
Adapt or Die: Opening Keynote with Chet Kapoor
Adapt or Die: Keynote with Greg Brail
Adapt or Die: Keynote with Anant Jhingran
London Adapt or Die: Opening Keynot
London Adapt or Die: Lunch keynote
London Adapt or Die: Closing Keynote — Adapt Now!

Recently uploaded (20)

PDF
AI in Product Development-omnex systems
PDF
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
PDF
Design an Analysis of Algorithms I-SECS-1021-03
PDF
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free
PPTX
Reimagine Home Health with the Power of Agentic AI​
PDF
Understanding Forklifts - TECH EHS Solution
PPTX
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
PPTX
Transform Your Business with a Software ERP System
PDF
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
PDF
Design an Analysis of Algorithms II-SECS-1021-03
PDF
System and Network Administration Chapter 2
PDF
How to Choose the Right IT Partner for Your Business in Malaysia
PPTX
Essential Infomation Tech presentation.pptx
PPTX
history of c programming in notes for students .pptx
PDF
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
PDF
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
PDF
PTS Company Brochure 2025 (1).pdf.......
PPTX
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
PDF
How to Migrate SBCGlobal Email to Yahoo Easily
PDF
Nekopoi APK 2025 free lastest update
AI in Product Development-omnex systems
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
Design an Analysis of Algorithms I-SECS-1021-03
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free
Reimagine Home Health with the Power of Agentic AI​
Understanding Forklifts - TECH EHS Solution
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
Transform Your Business with a Software ERP System
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
Design an Analysis of Algorithms II-SECS-1021-03
System and Network Administration Chapter 2
How to Choose the Right IT Partner for Your Business in Malaysia
Essential Infomation Tech presentation.pptx
history of c programming in notes for students .pptx
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
PTS Company Brochure 2025 (1).pdf.......
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
How to Migrate SBCGlobal Email to Yahoo Easily
Nekopoi APK 2025 free lastest update

API Copyrights: New Considerations for Building or Using APIs

  • 1. API Copyrights: New Considerations for Building or Using APIs Stacey Giamalis Ed Anuff
  • 2. Presenters 2 Stacey Giamalis Apigee Legal Function Lead Ed Anuff Apigee Product Strategist and Developer
  • 3. Context •  Intended for API users and API creators who are curious about the impact of this decision on them •  Not a critical analysis •  Not legal advice •  Oracle v. Google background –  2010: patent and copyright claims on Java API (not the implementing code) –  2012: federal trial court says Java API not copyrightable (ie not protected by copyright) –  2014: federal appeals court decides that Java API declaration headers and overall structure, sequence, and organization protected by copyright –  June 2015: Supreme Court decides not to review federal appeals court decision •  Copyright infringement requires three elements, only two of which were before the court –  a work protected by copyright –  infringement of the copyright by copying, distributing, etc. –  no valid defense to infringement, such as fair use 3
  • 4. The case: issues decided by the federal circuit •  Was the trial court correct in holding that the Java API declaration headers were not protected by copyright due to merger and method of operation? –  the federal Circuit said “No” •  Did Google’s use of the Java API constitute fair use? –  the federal circuit court said: “Not enough facts for us to decide; trial court needs to rehear this part” 4
  • 5. The case: facts •  The Java API is complex and intricately organized –  an API is an architecture for making operations and resources of a program available for use by another program, along with instructions on how to write code to access those operations and resources –  the Java API is 6,000 methods (or routines), which are combined with variables and other items and grouped into subclasses, which are grouped into 600 classes, and the 600 classes are combined with interfaces and grouped into 166 API packages •  Google admitted that it copied the exact declaration headers for 37 of the Java API packages and the exact structure, order, and organization of their routines –  Declaration header example: public static int max (int x, int y) 5
  • 6. The case: facts (cont’d) •  The Java API packages that Google incorporated into the Android API did not allow the Android platform or Android OS apps to access, or interoperate with, the Java platform •  Java API licensing conversations between Sun and Google broke down over Google’s refusal to follow Java’s core standard of “write once, run anywhere” –  AndroidOS apps do not run on other Java-based platforms 6
  • 7. The case: federal circuit’s holdings •  Java API declaration headers are copyrightable –  “idea/expression merger” (only one, or only a few, ways to write something) •  federal circuit held that in the Ninth Circuit, idea/expression merger is for defense against infringement, not relevant for copyright •  however, court said merger not present here with possible exception –  names and short phrases •  by regulation, words and short phrases comprising names are not copyrightable •  but compilations of non-protected items are protectable under copyright law if there was creativity in the selection and arrangement of the items •  Structure, sequence and organization of the Java API is copyrightable –  the Java API is a creative and original taxonomy as determined by the trial court •  Google could employ a routine/class/package structure to offer the same functionality in AndroidOS, but it cannot replicate the exact detailed arrangement of the Java routines 7
  • 8. The case: court’s commentary on fair use •  Under Ninth Circuit law an interoperability need is relevant to a fair use defense, not to copyrightability •  But Google was NOT trying to make Android OS compatible with Java platform •  Instead, Google wanted to accelerate availability of Android OS apps by leveraging the fact that developers were already trained and experienced in using Java 8
  • 9. The Case: court’s commentary on fair use (cont’d) •  There are four fair use factors and they’re applied on a case-by-case basis: 1. Purpose and character of the infringing use 2. The nature of the copyrighted work (including how informative/functional vs. how creative) 3. The amount and substantiality of portion of the copyrighted work used 4. The effect of the use upon the value of or market for the copyright holder’s work •  Of these, #4 is by far the most important per the court –  the court was clearly troubled by Google’s objectives in copying the Java API •  Regarding #2, the court said that if copying of a (utilitarian) software program is needed to perform the program’s functions, that could mean the use is fair 9
  • 10. Comments and context: the decision •  The appeals court did not say all APIs are copyrightable •  Java API considered as a separate work from the underlying Java platform •  The case was NOT about implementing code that is written to an API 10
  • 11. Comments and context: situational aspects •  Google cloned the Java API to use as its own API for its own program, and displaced the Java platform –  Google used the Java API for a different and replacing use than what Sun created it for (to call back to the Java platform) •  Google violated Java’s core standard and philosophy •  Google wanted to leverage developers’ familiarity with the Java API to make easy porting of pre-Android OS Java apps to Android OS –  leveraging the network effects of the Java API 11
  • 12. Comments and context: practical aspects •  Structure: Java code API particularly intricate –  compare structure of web APIs •  Resource names –  individual names vs. compilation of all names –  REST API resource names style •  Case NOT about using an API to access operations/resources of the underlying program –  API has been published for that purpose •  language in the federal court’s decision honoring this •  legal theories (implied license, implied promise) and community enforcement •  explicit licensing 12
  • 13. Suggested practices •  Avoid cloning APIs •  Create your own APIs—degree of similarity to other APIs –  web APIs (RESTful or SOA APIs) •  Consulting well-known APIs –  resource names •  generate your own; different can be good –  structuring your API –  general structure vs. identical organization of all items to another API –  explicitly license your API 13
  • 14. Situations •  Example: creating an API for a third-party program that doesn’t have one •  Example: creating connecting code for a third-party program (either without an API, or ignoring/subverting the API) •  Example: creating mashups/super APIs •  Is another’s API or underlying program (may be separate works) being either literally copied, or is its structure, sequence, or organization being copied? •  What is the purpose for which the API/connecting code is being created? 14
  • 15. Conclusion •  Nothing has changed in terms of using APIs to access operations and resources of an underlying program •  Biggest issue in API creation is in cloning vs. creating your own APIs •  Fair use decision in Oracle v. Google coming later 15
  • 16. Thank you Special thanks to Heather Meeker, partner at the O’Melveney firm, for her contributions to this presentation