Quick Start

For a full description of the API, see the reference guide.

Note

The Media API V1 was deprecated; use the new version instead. It offers much-improved functionality, including photo and article suggestion, entity and tag translation, derived entities, and much more.

To get tags (keywords) for an article, use the following code:

const axios = require('axios');
const callGeneea = async (input) => {
    const url = 'https://api.geneea.com/media/tags';
    const options = {
        headers: {
            'content-type': 'application/json',
            'X-Customer-ID': '<your customer ID>',
            'Authorization': 'user_key <your user key>'
        }
    };
    const response = await axios.post(url, input, options);
    return response.data;
};
callGeneea({
    'id': '1',
    'date': '2019-02-03T10:15:30',
    'categories': ['science'],
    'domicile': 'Prague',
    'title': 'Amazing Discovery',
    'perex': 'Scientists made an amazing discovery about our planet.',
    'body': '<p>Scientists have found that the Earth is <b>not</b> flat!</p>'
}).then((output) => console.log(output));

produces the following results (see the TagsResponse reference page for explanation):

{
  version: 'M1.0',
  id: '1',
  referenceKey: '2f337473',
  tags: [ { id: 'G2', text: 'Earth', score: 6.87, type: 'location' } ]
}

The text was assigned a single tag Earth – location with the id G2 in Geneea Knowledgebase. We can query the knowledge for that id:

const axios = require('axios');
const callGkb = async (id) => {
    const url = `https://api.geneea.com/media/items/${id}`;
    const options = {
        headers: {
            'Accept': 'application/json',
            'X-Customer-ID': '<your customer ID>',
            'Authorization': 'user_key <your key>'
        }
    };
    const response = await axios.get(url, options);
    return response.data;
};
callGkb('G2').then((output) => console.log(output));

The output:

{
    'id': 'G2',
    'hrid': 'Earth (G2)',
    'descriptions': [
        {'text': 'třetí planeta od Slunce ve Sluneční soustavě', 'language': 'cs'},
        {'text': 'dritter Planet von der Sonne aus im Sonnensystem', 'language': 'de'},
        {'text': 'third planet from the Sun in the Solar System', 'language': 'en'}],
        {'text': 'tercer planeta desde el Sol en el Sistema solar', 'language': 'es'}],
        {'text': 'troisième planète du Système solaire', 'language': 'fr'}],
        {'text': 'trzecia planeta od Słońca', 'language': 'pl'},
    ...
}

The Media API also allows to send a feedback for the results of tagging, i.e. the correct/expected tags.

const axios = require('axios');
const callFeedback = async (input) => {
    const url = 'https://api.geneea.com/media/tags/feedback';
    const options = {
        headers: {
            'content-type': 'application/json',
            'X-Customer-ID': '<your customer ID>',
            'Authorization': 'user_key <your user key>'
        }
    }
    const response = await axios.post(url, input, options);
    return response.data;
};
callFeedback({
    'id': '1',
    'referenceKey': '0d33fdf8',
    'tags': [
        {'id': 'G111', 'text': 'Mars', 'type': 'location'}
    ]
}).then((output) => console.log(output));

Note that the referenceKey value in the feedback body refers to a particular API response. If omitted, the feedback is considered as “global” for a particular document id.