Competency v1

Access all the major skills/occupations/domains of knowledge from one single API 📍

Introduction

This page shows you how to access our Domains of Competency Index. A Domain of Competency (DomComp for short) is a general term used to refers to a topic, skill, domain of knowledge or occupation associated to a learning object. The main objective of a DomComp is to make it easier for learners to find educational content related to their objective or interest, whatever the way they formulate it.

This API is currently in public beta. As such, it is available for free until we launch it commercially. Feel free to email us at sales@inokufu.com if you have any questions.

Background

While building the Learning Objects Index, we faced tremendous challenges classifying the various skills, occupations or domains of knowledge that each learning object can be associated with. A lot of frameworks and taxonomies have tried to map this. Wikipedia is one of the most known and used. In Europe, there is the ESCO which is the multilingual classification of European Skills, Competences, Qualifications and Occupations. In France, there are similar frameworks such as ROME or Formacode. And many more in each country or industry. But none is perfect or really universal.

Knowing that we couldn't build one single taxonomy that would work for every learner, we decided to take another approach. Instead of creating a new taxonomy or framework, we decided to build the Domains of Competency Index (DCI) to bring them all and in the lightness bind them. As a result, Inokufu DCI is sort of a meta index that can be connected to any existing skill/occupation/domain taxonomies or frameworks. Using Machine Learning and Graph Theory, Inokufu DCI binds these sources together and makes it easier for edtech companies to build the next generation of learning tools.

We built the Competency API as the easiest way to get skills, occupations or domains of knowledge from one single API.

Authentication

Inokufu APIs expects for the API key to be included in API requests to the server in a header that looks like the following:

# With shell, you can just pass the correct header with each request
curl "api_endpoint_here"
  -H "x-api-key: SAY-FRIEND-AND-ENTER"

Make sure to replace SAY-FRIEND-AND-ENTER with the demo key or with your own Developer API key.

For Demo purpose, you can use this API key : MzSXmgX5Tl8HSZNIyXcElaL69MtOXymj1stHS4Jt but beware both request speed and number of daily calls are limited with this key.

Usage plans

For now, the API is available for free using the demo key above. This is a demo key and thus the API is throttled. If you want higher usage quota, email us at sales@inokufu.com and we will provide you with your own Developer API key.

If you have specific requirement for your use case, we can offer you a tailored usage plan. If you want to know more about our enterprise plans, please feel free to contact our Inokufu sales team.

We also have an academic access program for researchers and academics that would like to build and experiment with this API.

Best efforts

Our mission is to help you find the best learning objects out there. While we are working hard on this ambitious goal, we are still at the beginning of this journey, and we have not connected every existing skill/occupation/domain (yet). At this stage, we can't guaranty 100% accuracy of our results.

Results returned by the API are our best efforts to match your query.

Most endpoints of the Competency API returns a score that gives you an indication of the confidence level of the corresponding result. The higher the score, the more confident.

Responses returned by endpoint suggest also contains a message (msg) that tells you how good we think our answer to your query is. Messages currently returned by the API are shown in the table below.

Code
Message
Meaning

A00

These results are our best effort to answer your query.

We are pretty confident that these results closely match what you are looking for.

B00

These results does not match exactly your query.

We have some results to show you that may be close enough to your query but still it's not exactly what you asked for, so you know.

C00

No result to display for this query.

We have found no result we are confident enough to show you based on what you are looking for. Try again with less strict parameters.

Depending on the level of accuracy you need, you may want to filter out reponses based on the code returned inmsg.

Similar

This endpoint returns a list of term that are similar to specific keywords about a skill, occupation or domain of knowledge.

Request

GET https://api.inokufu.com/domcomp/v1/similar

Headers

The API key must be included in the header.

"x-api-key": "SAY-FRIEND-AND-ENTER"

Make sure to replace SAY-FRIEND-AND-ENTER with the demo key or your own Developer API key.

Query Parameters

Query parameters must be included in the URL.

Parameter
Type
Default
Required
Description

keywords

string

Yes

Keywords describing a skill, occupation or domain of knowledge for which you want to find similar terms in other taxonomies or frameworks.

lang

string

en

Yes

Language of the query such as en (english) orfr(french).

Code examples

curl "https://api.inokufu.com/domcomp/v1/similar?keywords=weld&lang=en"
-H "x-api-key: SAY-FRIEND-AND-ENTER"

Response

Response parameters

Parameter
Required
Description

label

Yes

The title of the term according to the source (see below)

source

Yes

The name or the corresponding taxonomy or framework

score

No

This number is an indication of the confidence of the match between the keywords and the label. The higher the score, the better.

Response example

Here is an example of the JSON structured response provided by this endpoint.

{
    "statusCode": 200,
    "request": {
        "keywords": "weld",
        "lang": "en"
    },
    "response": [
        {
            "label": "welder",
            "score": 1.0,
            "source": "Inokufu DomComp index"
        },
        {
            "label": "welding",
            "source": "Inokufu DomComp synonym"
        },
        {
            "label": "operate welding equipment",
            "source": "ESCO classification"
        },
        {
            "label": "weld underwater",
            "source": "ESCO classification"
        },
        {
            "label": "weld in hyperbaric conditions",
            "source": "ESCO classification"
        },
        {
            "label": "weld mining machinery",
            "source": "ESCO classification"
        },
        {
            "label": "apply thermite welding techniques",
            "source": "ESCO classification"
        },
        {
            "label": "join metals",
            "source": "ESCO classification"
        },
        {
            "label": "perform tungsten inert gas welding",
            "source": "ESCO classification"
        },
        {
            "label": "welding coordinator",
            "source": "ESCO classification"
        },
        {
            "label": "perform metal active gas welding",
            "source": "ESCO classification"
        },
        {
            "label": "perform metal inert gas welding",
            "source": "ESCO classification"
        }
    ]
}

Tagger

This endpoint returns a list of tags that can be extracted and/or associated to a text. It is helpful when you want to identify a list of skill, occupation or domain of knowledge associated to a full text.

Request

POST https://api.inokufu.com/domcomp/v1/tagger

Headers

The API key must be included in the header.

"x-api-key": "SAY-FRIEND-AND-ENTER"

Make sure to replace SAY-FRIEND-AND-ENTER with the demo key or your own Developer API key.

Body

This endpoint requires the parameters to be sent in the body, formatted as JSON. Parameters are described in the table below.

Parameter
Type
Required
Description

text

string

Yes

Text for which you want to find the associated skill, occupation or domain of knowledge. Best results are obtained for text between 100 and 500 characters.

lang

string

Yes

Language of the query such as en (english) orfr(french).

Response

Response parameters

Parameter
Required
Description

tokenized_text

Yes

The text in tokenized version that we used to find the tags.

lang

Yes

The language of the text

tags

This is the list of terms associated to the text.

Response example

Here is an example of the JSON structured response provided by this endpoint.

{
    "statusCode": 200,
    "body": {
        "tokenized_text": "a web developer is a programmer who specializes in or is specifically engaged in the development of world wide web applications using a client server model",
        "lang": "en",
        "tags": [
            "world wide web",
            "developer",
            "web developer",
            "networks it",
            "web",
            "computer network",
            "telecommunications - telecommunications networks",
            "internet",
            "dev",
            "code programming",
            "van",
            "programming",
            "computer networks",
            "development"
        ]
    }
}

Suggest

This endpoint returns a list of suggestion of skill, occupation or domain of knowledge for specific keywords. This endpoint is not to be confused with the endpoint /similar which acts more as a synonym search within various finite taxonomies/frameworks. The endpoint /suggest is designed to make features such as autocomplete search input or suggested query. This endpoint is not limited by any taxonomy/framework.

This endpoint is still experimental and has been trained on a corpus of french texts only. The english version is in progress and will be available soon.

Request

GET https://api.inokufu.com/domcomp/v1/suggest

Headers

The API key must be included in the header.

"x-api-key": "SAY-FRIEND-AND-ENTER"

Make sure to replace SAY-FRIEND-AND-ENTER with the demo key or your own Developer API key.

Query Parameters

Query parameters must be included in the URL.

Parameter
Type
Default
Required
Description

keywords

string

Yes

Keywords describing a skill, occupation or domain of knowledge for which you want to suggest other terms.

Code examples

curl "https://api.inokufu.com/domcomp/v1/suggest?keywords=python"
-H "x-api-key: SAY-FRIEND-AND-ENTER"

Response

Response parameters

Parameter
Required
Description

label

Yes

The suggested term

score

Yes

This number is an indication of the confidence of the match between the keywords and the label. The higher the score, the better.

Response example

Here is an example of the JSON structured response provided by this endpoint.

{
    "statusCode": 200,
    "request": {
        "keywords": "python",
        "keywords_transformed": [
            "python"
        ]
    },
    "response": {
        "content": [
            {
                "label": "sql",
                "confidence": 0.6683011054992676
            },
            {
                "label": "jupyter",
                "confidence": 0.6620635390281677
            },
            {
                "label": "poo",
                "confidence": 0.6430356502532959
            },
            {
                "label": "langage python",
                "confidence": 0.6339637041091919
            },
            {
                "label": "iterateurs",
                "confidence": 0.6258624196052551
            },
            {
                "label": "java",
                "confidence": 0.6247775554656982
            },
            {
                "label": "swift",
                "confidence": 0.6237753629684448
            },
            {
                "label": "expression lambda",
                "confidence": 0.6212818026542664
            },
            {
                "label": "programmation objet",
                "confidence": 0.6212782859802246
            },
            {
                "label": "programmation java",
                "confidence": 0.621195375919342
            }
        ],
        "msg": "A00 - These results are our best effort to answer your query."
    }
}

Last updated