Digital Public Library of America (Think "Open web API you can build cool apps for")

Sign in to queue


Today's Web Wednesday isn't a Visual Studio project. Isn't Windows Phone. Windows Azure, or even a Microsoft project. It's not even written in a usual Microsoft sphere language (much appears to be written with Ruby).

So why am I highlighting it here? But it looks like a awesome resource that you can code against, build awesome app's using it's data, and it's all open, as in open, open, open...

Digital Public Library of America (


The Digital Public Library of America brings together the riches of America’s libraries, archives, and museums, and makes them freely available to the world. It strives to contain the full breadth of human expression, from the written word, to works of art and culture, to records of America’s heritage, to the efforts and data of science. The DPLA aims to expand this crucial realm of openly available materials, and make those riches more easily discovered and more widely usable and used, through its three main elements:

1. A portal that delivers students, teachers, scholars, and the public to incredible resources, wherever they may be in America. Far more than a search engine, the portal provides innovative ways to search and scan through the united collection of millions of items, including by timeline, map, format, and topic.

2. A platform that enables new and transformative uses of our digitized cultural heritage. With an application programming interface (API) and maximally open data, the DPLA can be used by software developers, researchers, and others to create novel environments for learning, tools for discovery, and engaging apps.

3. An advocate for a strong public option in the twenty-first century. For most of American history, the ability to access materials for free through public libraries has been a central part of our culture, producing generations of avid readers and a knowledgeable, engaged citizenry. The DPLA will work, along with like-minded organizations and individuals, to ensure that this critical, open intellectual landscape remains vibrant and broad in the face of increasingly restrictive digital options. The DPLA will seek to multiply openly accessible materials to strengthen the public option that libraries represent in their communities.

Open platform, open data and open API...

The platform (so you can see how the built it all, which is kind of cool)


The data;




The API...


Welcome to the DPLA API Codex! This is where you can find authoritative documentation for the DPLA API and resources you can use to make the most of it. We’re happy to have you. (Wondering why we built an API in the first place?  Check out our philosophy.)

What now?
  • If you’ve never played (or worked) with an API before, head on over to API Basics.  We’ll get you started accessing some of our data.
  • If you’re already familiar with APIs in general and you just want to know how to get at our data, skip the basics and dive right into requests (Make sure you get an API key first.)
  • Once you’ve got some shiny new JSON-LD, how can you tell what it all means?  In responses, we explore the structure of objects and define the fields within those objects that the API will return.
  • Ready to start building something against our API, but want to know how we operate? We’ve got you. Check out our policies.
  • Uh oh.  You’re lost. We’re lost. Everything’s broken. I’m confused.  Time to check out our troubleshooting and FAQ page!
  • Confused by the terminology we’re using? Check out the glossary of terms.
  • Did we miss/break/overlook/forget something? Tell us.
The essentials

Need to start right now? Here’s a cheat sheet.

  • is the base URL of the DPLA API.
  • items and collections are the two resource types you can request.
  • In order to pass requests to the API, you’ll need to request an API key first. You also need to append &api_key=$YOUR_KEY (where $YOUR_KEY is your 32-character key) to any requests you make.
  • All records are returned as structured, wonderful, JSON-LD objects.   And we have reasons for that.
  • We’ve got a boatload of fields you can query, and a whole bunch of ways you can query them.
  • Dive head first into a bucket full of kitten metadata: (Copy and paste the URL into your browser and add your API key on the end.)


API Basics


A request is a URL sent to the web server over HTTP with the expectation of getting resource items back in the form of human-readable text or data. The URL supplies the web server with everything it needs to create and return a correct response. This is called a RESTful approach to API design and is employed by the DPLA API.

Who should use this?

This API is intended for use by large organizations and lone individuals alike, and our audience’s level of technical sophistication is deliberately quite varied.

How do I use it?

All you need to do to use the DPLA API is:

  1. Request an API key from DPLA.
  2. Fire up your web browser and enter your request into the URL bar.
  3. Read the response.

The DPLA API offers metadata (and meta-metadata) on two types of resources: items and collections. In short, items represent single physical objects indexed by a DPLA data provider, and collections are logical groupings of items. For simplicity’s sake, let’s try a simple search for items—i.e., a full-text search of all of the fields associated with items for a single term.

Let’s say you really want to know more about weasels. Compose your search query by taking the URL of the API and append your request to it like so: specifies the API and the correct version; items indicates the type of resource you’re requesting; ?q= begins your request, and the unadorned, unqualified search term weasels will be interpreted as a request for a full-text search.

Remember: You must enter your 32-character API key after the &api_key= parameter in included in every example request, and in general.

Now let’s look at typical results (to simplify things, we’re only reproducing the first result here):



Open, open, open... Now it's up to you to build some cool apps (hopefully Windows apps Wink. If you do, let us know...

The Discussion

Add Your 2 Cents