Apollo Server v2.0 wrapper for Archive.org’s REST API. Uses apollo-server-koa built for koa, a modern, new server framework from the Express.js team.
npm i
npm run start
GraphQL endpoint is at localhost:4000
.
GraphQL playground is at localhost:4000/graphql
.
Name | Type | Required | Description |
---|---|---|---|
id |
String |
✅ | Look up an item by ID (sometimes called identifier ). |
{
item(id: "bacteria_friend_and_foe") {
metadata {
identifier
title
subject
mediatype
}
}
}
💁 Tip
metadata.identifier
is the ID. You’ll probably want that in most instances.
Name | Type | Required | Default | Description |
---|---|---|---|---|
query |
String |
✅ | Your search query | |
limit |
Number |
50 |
Number of items to return | |
sort |
Array(String) |
Sort by fields (can specify up to 3, see below) | ||
start |
Number |
0 |
If paginating results, where to start |
View all options for sort
addeddate asc
addeddate desc
avg_rating asc
avg_rating desc
call_number asc
call_number desc
createdate asc
createdate desc
creatorSorter asc
creatorSorter desc
creatorSorterRaw asc
creatorSorterRaw desc
date asc
date desc
downloads asc
downloads desc
foldoutcount asc
foldoutcount desc
headerImage asc
headerImage desc
identifier asc
identifier desc
identifierSorter asc
identifierSorter desc
imagecount asc
imagecount desc
indexdate asc
indexdate desc
item_size asc
item_size desc
languageSorter asc
languageSorter desc
licenseurl asc
licenseurl desc
mediatype asc
mediatype desc
mediatypeSorter asc
mediatypeSorter desc
month asc
month desc
nav_order asc
nav_order desc
num_reviews asc
num_reviews desc
programSorter asc
programSorter desc
publicdate asc
publicdate desc
reviewdate asc
reviewdate desc
stars asc
stars desc
titleSorter asc
titleSorter desc
titleSorterRaw asc
titleSorterRaw desc
week asc
week desc
year asc
year desc
{
search(
query: "baking bread"
sort: ["year desc", "month desc"]
) {
response {
numFound
docs {
identifier
title
description
year
mediatype
}
}
}
}
Coming soon!
Coming soon!
This endpoint adds a few niceties to make consuption & parsing easier in JavaScript.
- Archive.org’s API can return some fields as either a string, a list of strings, or missing. In these instances a list of strings will be always returned (or an empty list in the case of missing data).
Archive.org’s API will return many different results for language (e.g.:
English
or eng
or en
all refer to the same language). For that reason,
metadata.language
is coerced into the RFC 5646 spec (e.g:
en
, en-CA
, de
, ja
, zh-CN
).
metadata.year
is coerced into an integer, with negative numbers
representing BCE
(e.g.: 1970
for 1970 CE, -300
for 300 BCE).