Parses scholarly references in no time!
Copy & paste your bibliography below to get started …

View on GitHub Install RubyGem


Web Application

1. Parse

To get started, simply paste your list of citation references into the textarea above. AnyStyle processes one reference per line so please make sure each reference starts on a new line and remove any superfluous line breaks. Empty lines are fine, though, the parser will just skip them.

When you're ready, hit the parse button!

2. Edit

AnyStyle splits your citation references into segments (author, title etc.) based on machine learning heuristics. These segments will be displayed in the token editor above. Please review each segment to make sure the results are correct; in case the parser got something wrong just select individual tokens like you would select text in your favourite text editor and click on the 'Assign label' button to assign the correct label to your selection.

Pro tip: use Shift and Ctrl/Command to make multiple selections or double-click to select an entire segment at once.

When using the token editor, note that the parser requires every token to be assigned a label and the individual segments to be contiguous. For the best results combine tokens which semantically belong together. The word in, for example, typically belongs to either the editor or book title segments (in fact it is a good indicator for those fields); the label unknown should only be applied in exceptional cases. When in doubt how to label a reference, please get in touch with us or take a look at our initial training data for examples of correctly labelled references.

3. Save

That's it! When you've reviewed the segments just click on one of the available output formats to convert and save your references.

But there is more: because AnyStyle is based on machine learning you can help us improve! If the parser produces poor results for your citation style or language, just use the token editor to correctly label a handful of references; when you save the results, we will extract your adjustments and use them to train the parser; give us a few minutes to crunch numbers and try to parse your references again using the updated model: we hope the results will be much improved!

Pro tip: the current model's timestamp is included at the bottom of the parsed results; when training the model, keep an eye on the time to see whether or not your training data was already merged into the model.

Please note that we receive a lot of training data; too much data can cause the model to deteriorate so we try to reset the model from time to time. Please let us know if training the model does not work for you or if your parse results are poor so we can take a look. Also, if you'd be interested in helping us curate the training data, your help is much appreciated!


AnyStyle is open source software and freely available as a RubyGem!

$ [sudo] gem install anystyle

After installing the Gem you can start parsing references on your own computer directly from Ruby like this:

>> require 'anystyle'

>> AnyStyle.parse """
    Turing, Alan, Computing Machinery and Intelligence, Mind 59, pp 433-460 (1950)
=> [{
     :type => "article-journal",
     :author => [{
       :family => "Turing",
       :given => "Alan",
     :title => ["Computing Machinery and Intelligence"],
     :"container-title" => ["Mind"],
     :volume => ["59"],
     :pages => ["433–460"],
     :date => ["1950"]

For more details on how to use and train the parser, please consult the API documentation.

Since version 1.0 the AnyStyle.find allows you to extract references from PDF or text documents.

Web Service

AnyStyle Parser is also available as a web service using a JSON API.
If you would like to use the web service, please enter your email address below
and we will send you a valid API key.

We will send you an email with your API key shortly!

Note: At this time, the website and API still uses the 0.x branch of the anystyle-parser Gem. For the latest and much improved 1.0 version, please use the anystyle Gem directly.

The AnyStyle web service currently exposes a single endpoint that can be used to parse reference lists accessible via HTTP POST at

This service is available via HTTPS; our certificate is signed by Let's encrypt!

Required Headers


Required Parameters

bib json citproc or xml
Your API key
An array of reference strings

On Success

Returns 200 OK and the parsed references in the requested format.

On Error

Returns 400 Bad Request, 401 Not Authorized, or a 5xx status code with an optional error message.

Below you can see an example of what a typical HTTP request will look like:

POST /parse/references.json HTTP/1.1
Content-Type: application/json;charset=UTF-8

  "access_token": "BADC0DE000BADC0DE000BADC0DE",
  "references": [
    "Turing, Alan, Computing Machinery and Intelligence, Mind 59, pp 433-460 (1950)"

And a corresponding response would look somethink like this:

HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
Content-Length: 152

    "author": "Turing, Alan",
    "title": "Computing Machinery and Intelligence",
    "journal": "Mind",
    "volume": 59,
    "pages": "433–460",
    "year": 1950,
    "type": "article"