In Oracle America, Inc. v. Google, Inc., the debate was over Google's use of 37 "Java APIs" in Android, and whether or not it was fair use. However, I've never found a clear description of the nature of those Java APIs. Are they method signatures? Compiled classes? Something else? And how was the number 37 arrived at?
Oracle v Google, CAFC (2014), at footnote 2:
The 37 API packages involved in this appeal are: java.awt.font, java.beans, java.io, java.lang, java.lang.annotation, java.lang.ref, java.lang.reflect, java.net, java.nio, java.nio.channels, java.nio.channels.spi, java.nio.charset, java.nio.charset.spi, java.security, java.security.acl, java.security.cert, java.security.interfaces, java.security.spec, java.sql, java.text, java.util, java.util.jar, java.util.logging, java.util.prefs, java.util.regex, java.util.zip, javax.crypto, javax.crypto.interfaces, javax.crypto.spec, javax.net, javax.net.ssl, javax.security.auth, javax.security.auth.callback, javax.security.auth.login, javax.security.auth.x500, javax.security.cert, and javax.sql.
The "declaring code and the structure, sequence, and organization of the API packages" is what Google took and what the CAFC held was entitled to copyright protection. This was composed of "over six hundred classes, with over six thousand methods". Both sides acknowledged that "Google wrote its own implementing code".