OverDrive Developers

Library Account API

The Library Account API delivers general information about an account including available formats, OverDrive Advantage collections, and a products hypermedia link that returns all available titles in a library collection.

Note: The examples below show our production API URL. If you're using our integration environment, use https://integration.api.overdrive.com or https://integration-patron.api.overdrive.com. For more information on the integration environment, please see Getting Started.

To access the Library Account API, you'll need to know your library ID. If you don't know your library ID, contact support.

Accessing the Library Account API

The Library Account API serves as the starting point for most API clients to discover additional resources for a library account using hypermedia.

Library Account API resources include:

  • products: A library's digital collection, and the starting point for the Search API.
  • advantage accounts: Titles purchased to supplement a library's digital collection. These are in addition to the consortium titles available.

Resource URL

https://api.overdrive.com/v1/libraries/{Library ID}

This URL returns a JSON response that includes:

  • The library's name
  • The account type
  • A link for all products available in the digital media collection
  • A link for all advantageAccounts associated with the account
  • A link for the curated lists created by the account
  • The formats supported by the library account
  • The enabled platforms (the OverDrive platforms associated with the account)

Example request

GET https://api.overdrive.com/v1/libraries/4225
User-Agent: {Your application}
Authorization: Bearer {OAuth access token}
Host: api.overdrive.com

Example response

200 OK
Pragma: no-cache
X-Frame-Options: deny
Content-Length: 1140
Cache-Control: no-cache
Content-Type: application/json; charset=utf-8
Date: Thu, 19 Jan 2023 18:54:50 GMT
Expires: -1

{
    "id": 4225,
    "name": "OverDrive API Integration Library (OH)",
    "type": "Library",
    "collectionToken": "v1L1BBQ0AAA2_",
    "links": {
        "self": {
            "href": "https://api.overdrive.com/v1/libraries/4425",
            "type": "application/vnd.overdrive.api+json"
        },
        "products": {
            "href": "https://api.overdrive.com/v1/collections/v1L1BBQ0AAA2_/products",
            "type": "application/vnd.overdrive.api+json"
        },
        "advantageAccounts": {
            "href": "https://api.overdrive.com/v1/libraries/4425/advantageAccounts",
            "type": "application/vnd.overdrive.api+json"
        },
        "dlrHomepage": {
            "href": "https://link.overdrive.com/?websiteID=100300",
            "type": "text/html"
        },
        "lists": {
            "href": "https://api.overdrive.com/v1/libraries/4425/lists",
            "type": "application/vnd.overdrive.api+json"
        }
    },
    "formats": [
        {
            "id": "ebook-mediado",
            "name": "MediaDo eBook"
        },
        {
            "id": "ebook-kindle",
            "name": "Kindle Book"
        },
        {
            "id": "magazine-overdrive",
            "name": "OverDrive Magazine"
        },
        {
            "id": "ebook-overdrive",
            "name": "OverDrive Read"
        },
        {
            "id": "audiobook-overdrive",
            "name": "OverDrive Listen"
        }
    ],
    "enabledPlatforms": [
        "lightning",
        "libby"
    ]

}

Now that you have the library account products URL, you can access the Search API. From there, follow the hypermedia links to access the Metadata and Library Availability APIs to get the information you need to make your app work.

Curated lists

The lists link in the response will show you the curated lists created by the account. Curated lists are hand-picked lists of titles that libraries and schools build to promote those titles (such as holiday titles or series starters).

Example request

GET https://api.overdrive.com/v1/libraries/4425/lists
User-Agent: {Your application}
Authorization: Bearer {OAuth access token}
Host: api.overdrive.com

Example response

200 OK
Pragma: no-cache
X-Frame-Options: deny
Content-Length: 816
Cache-Control: no-cache
Content-Type: application/json; charset=utf-8
Date: Thu, 18 May 2023 18:54:50 GMT
Expires: -1

{
    "totalItems": 1,
    "limit": 25,
    "offset": 0,
    "lists": [
        {
            "id": 53247,
            "name": "Metro Public Library Staff Picks",
            "links": {
                "listAtOverDrive": {
                    "href": "https://link.overdrive.com?websiteID=100300&collectionId=21391",
                    "type": "text/html"
                },
                "listItems": {
                    "href": "https://api.overdrive.com/v1/collections/v1L1BBQ0AAA2_/products/lists/53247",
                    "type": "application/vnd.overdrive.api+json"
                }
            }
        }
    ],
    "links": {
        "self": {
            "href": "https://api.overdrive.com/v1/libraries/4425/lists?limit=25&offset=0",
            "type": "application/vnd.overdrive.api+json"
        },
        "first": {
            "href": "https://api.overdrive.com/v1/libraries/4425/lists?limit=25&offset=0",
            "type": "application/vnd.overdrive.api+json"
        },
        "last": {
            "href": "https://api.overdrive.com/v1/libraries/4425/lists?limit=25&offset=0",
            "type": "application/vnd.overdrive.api+json"
        }
    }
}

For each curated list, you'll see:

  • The list id
  • The name of the list
  • A listAtOverDrive link to view the list on the library or school's OverDrive website
  • A listItems link that returns the titles included in the list

Enabled platforms

Enabled platforms tell you which OverDrive platforms are associated with the account. This will let you know what type of account it is (e.g., library or school), where to direct users, and what branding to use in your implementation.

The table below shows all the enabled platform values and what they mean.

ValueDescription
Libby OverDrive's flagship app for public, academic, and corporate libraries. Most OverDrive partner libraries use Libby.
Sora OverDrive's app for K-12 schools. Almost all OverDrive partner schools use Sora.
LexisNexis The LexisNexis Digital Library. Used primarily by research-based organizations, such as law libraries and academic libraries.
Lightning A library's OverDrive website. Most partners promote Libby over their OverDrive website, but the website is available if needed.

In rare cases, you'll see a legacy OverDrive website as the enabled platform. This will display as either DLR (for public libraries), SDL (for schools), CDL (for colleges and academic institutions), or Corporate (for corporations). Legacy OverDrive websites are primarily used by libraries that need support for right-to-left languages.

Seeing Kanopy subscription information

You can use the Kanopy subscription endpoint to see whether a library has an active Kanopy subscription. You can also get a link to the library's Kanopy URL.

Example request

GET https://api.overdrive.com/v1/libraries/612/kanopyinfo
User-Agent: {Your application}
Authorization: Bearer {OAuth access token}
Host: api.overdrive.com

Example response

200 OK
Cache-Control: no-cache
Pragma: no-cache
X-Frame-Options: DENY
Date: Thu, 03 Nov 2022 09:58:43 GMT
Content-Type: application/json; charset=utf-8
Expires: -1
Content-Length: 5269

{
    "subscriptions": [
        {
            "id": 10,
            "name": "Wayne County Public Library",
            "subscriptionId": "45ad1fd9fc03606fc71b4acae1b70d4a",
            "url": "https://www.kanopy.com/en/wcplohio",
            "status": "Active",
            "startDate": "2021-12-07T18:07:08Z",
            "endDate": "2022-12-07T05:00:00Z"
        },
        {
            "id": 11,
            "name": "Sandusky Library",
            "subscriptionId": "6f2f81ebd0673a01eab32ae30428c9c2",
            "url": "https://www.kanopy.com/en/sanduskylib",
            "status": "Active",
            "startDate": "2021-12-07T18:07:11Z",
            "endDate": "2022-12-07T05:00:00Z"
        },
        {
            "id": 12,
            "name": "Willoughby-Eastlake Public Library",
            "subscriptionId": "62279c2d54f6705782fe4f3cb10cb5aa",
            "url": "https://www.kanopy.com/en/welibrary",
            "status": "Active",
            "startDate": "2021-12-07T18:07:13Z",
            "endDate": "2022-12-07T05:00:00Z"
        },
        {
            "id": 13,
            "name": "Twinsburg Public Library",
            "subscriptionId": "164ae45e2b0e0c47987ad10206a78742",
            "url": "https://www.kanopy.com/en/twinsburg",
            "status": "Active",
            "startDate": "2021-12-07T18:07:18Z",
            "endDate": "2022-12-07T05:00:00Z"
        },
        {
            "id": 19,
            "name": "Ritter Public Library",
            "subscriptionId": "fd1c5a3fa0e030e27b1c06cabacc3654",
            "url": "https://www.kanopy.com/en/ritterlib",
            "status": "Active",
            "startDate": "2021-12-07T18:07:39Z",
            "endDate": "2022-12-07T05:00:00Z"
        },
        {
            "id": 20,
            "name": "Hudson Library & Historical Society",
            "subscriptionId": "19f0d3e1581ea5059c3931ccee65e6c3",
            "url": "https://www.kanopy.com/en/hudsonlibrary",
            "status": "Active",
            "startDate": "2021-12-07T18:07:43Z",
            "endDate": "2022-12-07T05:00:00Z"
        },
        {
            "id": 21,
            "name": "Euclid Public Library",
            "subscriptionId": "4e7686737d1377ca3c2b1f77d99b3bdb",
            "url": "https://www.kanopy.com/en/euclidlibrary",
            "status": "Active",
            "startDate": "2021-12-07T18:07:51Z",
            "endDate": "2022-12-07T05:00:00Z"
        },
        {
            "id": 22,
            "name": "Cleveland Hts-University Hts Public Library",
            "subscriptionId": "17934adde535b95b3d59c5074910ab1f",
            "url": "https://www.kanopy.com/en/heightslibrary",
            "status": "Active",
            "startDate": "2021-12-07T18:07:56Z",
            "endDate": "2022-12-07T05:00:00Z"
        },
        {
            "id": 26,
            "name": "McKinley Memorial Library",
            "subscriptionId": "b44f5035367d901695865bccb9be18c1",
            "url": "https://www.kanopy.com/en/mcklib",
            "status": "Active",
            "startDate": "2022-01-04T23:25:16Z",
            "endDate": "2023-01-04T05:00:00Z"
        },
        {
            "id": 27,
            "name": "Elyria Public Library",
            "subscriptionId": "644a084415e0ce1f4fd1cbc4442c5af4",
            "url": "https://www.kanopy.com/en/elyria",
            "status": "Active",
            "startDate": "2022-04-26T20:25:30Z",
            "endDate": "2023-04-26T04:00:00Z"
        },
        {
            "id": 28,
            "name": "Burton Public Library",
            "subscriptionId": "ec541e7a77ad9f7e8950465fd4c82afc",
            "url": "https://www.kanopy.com/en/burtonlibrary",
            "status": "Active",
            "startDate": "2021-12-07T18:08:18Z",
            "endDate": "2022-12-07T05:00:00Z"
        },
        {
            "id": 3,
            "name": "Shaker Heights Public Library",
            "subscriptionId": "ff9055d04629d57dca334e3fd1b1c289",
            "url": "https://www.kanopy.com/en/shakerlibrary",
            "status": "Active",
            "startDate": "2021-12-07T18:06:49Z",
            "endDate": "2022-12-07T05:00:00Z"
        },
        {
            "id": 31,
            "name": "Geauga County Public Library",
            "subscriptionId": "becee83232b9fae0af60f6872b08f2ba",
            "url": "https://www.kanopy.com/en/geaugalibrary",
            "status": "Active",
            "startDate": "2022-01-18T22:25:15Z",
            "endDate": "2023-01-18T05:00:00Z"
        },
        {
            "id": 32,
            "name": "Rocky River Public Library",
            "subscriptionId": "2e1dc004ac0ba45cf923c620b16837b0",
            "url": "https://www.kanopy.com/en/rrpl",
            "status": "Active",
            "startDate": "2021-12-07T18:08:40Z",
            "endDate": "2022-12-07T05:00:00Z"
        },
        {
            "id": 34,
            "name": "Huron Public Library",
            "subscriptionId": "e1be608d7e1bbdb92e11fd4ff691698e",
            "url": "https://www.kanopy.com/en/huronlibrary",
            "status": "Active",
            "startDate": "2021-12-07T18:08:48Z",
            "endDate": "2022-12-07T05:00:00Z"
        },
        {
            "id": 35,
            "name": "Lorain Public Library",
            "subscriptionId": "456651915e389319afe4cd8597e912b4",
            "url": "https://www.kanopy.com/en/lpls",
            "status": "Active",
            "startDate": "2021-12-07T18:08:51Z",
            "endDate": "2022-12-07T05:00:00Z"
        },
        {
            "id": 37,
            "name": "Bellevue Public Library",
            "subscriptionId": "067c619dce5a3637a67a9b2a3825c34b",
            "url": "https://www.kanopy.com/en/bellevuelib",
            "status": "Active",
            "startDate": "2022-04-26T20:25:35Z",
            "endDate": "2023-04-26T04:00:00Z"
        },
        {
            "id": 38,
            "name": "Mentor Public Library",
            "subscriptionId": "abca3cdbc7d5b7d6c88e030b51a85a71",
            "url": "https://www.kanopy.com/en/mentorpl",
            "status": "Active",
            "startDate": "2021-12-07T18:09:06Z",
            "endDate": "2022-12-07T05:00:00Z"
        },
        {
            "id": 40,
            "name": "Cleveland Public Library",
            "subscriptionId": "8726aab0122b086366365abd7f30a06a",
            "url": "https://www.kanopy.com/en/cpl",
            "status": "Active",
            "startDate": "2021-12-07T18:09:17Z",
            "endDate": "2022-12-07T05:00:00Z"
        },
        {
            "id": 52,
            "name": "Milan-Berlin Township Public Library",
            "subscriptionId": "224c0b0c8817fd17665aa4a9b52f0356",
            "url": "https://www.kanopy.com/en/milanberlin",
            "status": "Active",
            "startDate": "2021-12-07T18:09:58Z",
            "endDate": "2022-12-07T05:00:00Z"
        },
        {
            "id": 58,
            "name": "Girard Free Library",
            "subscriptionId": "ab65587d3cacfc4c9dc868b3fd95868b",
            "url": "https://www.kanopy.com/en/girardfreelibrary",
            "status": "Active",
            "startDate": "2021-12-07T18:10:20Z",
            "endDate": "2022-12-07T05:00:00Z"
        },
        {
            "id": 59,
            "name": "Stow-Munroe Falls Public Library",
            "subscriptionId": "59892f7323a3b76027738f421de81c6f",
            "url": "https://www.kanopy.com/en/smfpl",
            "status": "Active",
            "startDate": "2021-12-07T18:10:24Z",
            "endDate": "2022-12-07T05:00:00Z"
        },
        {
            "id": 9,
            "name": "Medina County District Library",
            "subscriptionId": "d10ccee5d03c023022d16e7c1ae41b7c",
            "url": "https://www.kanopy.com/en/mcdl",
            "status": "Active",
            "startDate": "2021-12-07T18:07:04Z",
            "endDate": "2022-12-07T05:00:00Z"
        }
    ]
}

If you want to see the Kanopy subscription information for an Advantage account, append the Advantage ID to the URL.

GET https://api.overdrive.com/v1/libraries/612/kanopyinfo/52
User-Agent: {Your application}
Authorization: Bearer {OAuth access token}
Host: api.overdrive.com

This will return information for only the individual Advantage account.

200 OK
Cache-Control: no-cache
Pragma: no-cache
X-Frame-Options: DENY
Date: Thu, 03 Nov 2022 09:59:08 GMT
Content-Type: application/json; charset=utf-8
Expires: -1
Content-Length: 239

{
    "id": 52,
    "name": "Milan-Berlin Township Public Library",
    "subscriptionId": "224c0b0c8817fd17665aa4a9b52f0356",
    "url": "https://www.kanopy.com/en/milanberlin",
    "status": "Active",
    "startDate": "2021-12-07T18:09:58Z",
    "endDate": "2022-12-07T05:00:00Z"
}