Wikipedia minus the headache

Usage no npm install needed!

<script type="module">
  import easypedia from 'https://cdn.skypack.dev/easypedia';



Easypedia is a single function that manages redirects, disambiguation, and parsing to pass a clean JSON into a callback. Example use case:

var easypedia = require("easypedia");

var searchTerm = "Bernie Sanders";
easypedia(searchTerm, function(error, page) {
  if (error)
    // do something with the page

JSON Structure

The simple structure of the page is as follows:

name: "Canada"
language: "en"
links: [...]
content: {...}
categories: [...]
isRelatedTo: (other) => ...
relationTo: (other) => ...


The sections property denotes the an array of sections, such as

    name: "Intro",
    sentences: [...]

The sentences are put in an array, with an example sentence being:

    content: "During the Iron Age, what is now Metropolitan France was inhabited by the Gauls, a Celtic people.",
    links: [
        {to: 'Iron Age', quoted: "Iron Age"},
        {to: 'Gaul', quoted: "Gaul"},
        {to: 'Celts', quoted: 'Celtic'}


categories is an array of various categories the page belongs to.

isRelatedTo and relationTo

isRelatedTo accepts another page and determines if the 2 are related.

relationTo finds how closely the 2 pages are related, with a high value being more closely related


If you want to modify the behaviour of Easypedia, pass in an options argument in the middle as such:

easypedia(searchTerm, options, callback);

If you pass an options object when using an array of searchTerms, the options are applied to each searchTerm.


By default, Easypedia uses the English Wikipedia. To change this, add a language property along with the language you want. It is clever enough to know what you mean.

For example, to use the French Wikipedia you could pass in any of the following:

var options = {language: "French"};
var options = {language: "Fr"};
var options = {language: "Francais"};
var options = {language: "Fran├žais"};

easypedia("France", options, console.log);

Also, the language property is NOT case-sensitive.