eLife developer resources.
- Background to our API and other services.
- eLife Code
- Mailing list
- REST API - Quickstart.
- Content negotiation
- AWS S3 access to our content
- SRU - Search Retrieval via URL
- External endpoints
Background to our API and other services.
Our philosophy is to make eLife content promiscuous, and to make it as easy as possible for the content to flow to as many locations as possible. We are also working on services to work on top of our publications. This portal will cover documentation about our services, and it will provide pointers to other services that work well with our content.
Of particular note, we have created a REST API to the content, and that service is documented fully here.
We have created a mailing list/google group for discussion around our API and other services. We check this list approximatly weekly.
REST API - Quickstart.
We have provided a full overview of our REST API. For a quickstart read on. For the REST API, eLife content is hosted using [Fluidinfo][fi] under the fluidinfo namespace
elifesciences.org. Fluidinfo is well documentedd. If you want to dive straight in, the base URL for eLife content is
https://fluiddb.fluidinfo.com/. You can get started by making calls to this endpoint. We have provided a set of example queries. For example the following query will return all articles in a particular subject area:
GET /values?query=elifesciences.org/api_v1/article/subject_area contains "Cell biology"&tag=elifesciences.org/api_v1/article/doi
and the curl version of this operation is:
You can get more information about our REST api - including it’s support for JASONP - on the [REST API overvieww][rao] page.
An RSS feed of recent content is available from http://elife.elifesciences.org/rss/recent.xml.
We now support content negotiation. We currently support content negotiation to return markdown versions of our articles, and to return images from articles. Support for XML will be added in the future.
Content negotiation for Markdown
Markdown is a convention for wiring plain text documents that can be easily converted to HTML. Most of this documentation is written in Markdown.
curl --header "Accept:text/plain" http://elife.elifesciences.org/content/2/e00334
Content negotiation for figures
Every figure published in an eLife article has it’s own DOI. When you resolve that DOI you get taken to a landing page specific to that figure. For example when you resolve http://dx.doi.org/10.7554/eLife.00631.016 you get taken to http://elife.elifesciences.org/content/2/e00631/F10. If you do a HTTP request against this page you will get back the full HTML for that page. Wouldn’t it be awesome if you could just get back the image? Well now you can with
curl --header "Accept:image/jpeg" http://elife.elifesciences.org/content/2/e00631/F10
AWS S3 access to our content
Our content gets sent, piping hot from out typesetters, to an Amazon S3 bucket. We have made that bucket read only to anyone. If you would like to download the raw eLife content you can get a listing of objects in the S3 bucket from http://s3.amazonaws.com/elife-articles.
SRU - Search Retrieval via URL
eLife is hosted on the HighWire platform, and as such we have an [SRU][sru] endpoint into our content. The Highwire SRU endpoint can be accessed at http://highwire.stanford.edu/cgi/sru. Currently only free text searches and searches for author, title, abstract and publication year are supported. This means that to use this interface to search for eLife content you have to query for eLife as a plain string, for example http://highwire.stanford.edu/cgi/sru?version=1.1&operation=searchRetrieve&query=%22eLife%22. There are currently some inconsistencies in the core metadata store, so some publication dates returned through this interface will be incorrect. If anyone can figure out how to make more expressive queries work against this endpoint, do let us know.
We are making eLife content available from a number of non-eLife controlled endpoints, with the aim of making it as easy as possible for people to access the content. We will update documentation on this site about these endpoints, however you can already browse some eLife content on scribd, Mendeley and github xml and github pdf repos. If you have a resource that you think is relevant, and you would like us to add to the documentation, please drop us a line in the group, or send a pull request to the documentation repo.