Competency API

Inokufu's Competency API allow you to programmatically access all the major skills/occupations/domains of knowledge from one single API ๐Ÿ“

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.


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 European Skills, Competences, Qualifications and Occupations which is the multilingual classification of European Skills, Competences, Qualifications and Occupations. In France, there are similar frameworks such as Rรฉpertoire national des certifications professionnelles (RNCP) or Skills Panorama France. 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.


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 testing purpose, you can use this API key : x-api-key: MzSXmgX5Tl8HSZNIyXcElaL69MtOXymj1stHS4Jt but beware both request speed and number of daily calls are limited with this key.

Usage plans

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 sales team.

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.





These results are our best effort to answer your query.

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


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.


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 responses based on the code returned in msg.


This API offers three endpoints:

  • /similar endpoint enables you to search learning object by type (e.g. video, mooc, book, etc).

> ๐Ÿ‘‰ Learn more about /similar endpoint

  • /tagger endpoint enables you to search learning object by provider (e.g. youtube, coursera, applebook, etc).

> ๐Ÿ‘‰ Learn more about /tagger endpoint

  • /suggest endpoint enables you to search learning object by provider (e.g. youtube, coursera, applebook, etc).

> ๐Ÿ‘‰ Learn more about /suggest endpoint

Reading this documentation

Each API endpoint in this documentation is described using several parts:

  • The HTTP method. Includes GET, POST, PUT, PATCH, DELETE.

  • The base path. URLs referenced in the documentation have a base path such as . This base path goes before the endpoint path. Note that if you use RapidAPI to connect to our APIs, you should use the base URL provided by RapidAPI, such as

  • The endpoint path. This path goes after the base path and enable you to access the specific endpoint you need. For example, to access the Search endpoint of the Learning object API v2, you must add /search to the base path:

  • Required parameters. These parameters must be included in a request. Query parameters are added to the end of the URL with query string encoding. In the example above, lang=en and type=video are required parameters.

  • Optional parameters. These parameters can be included in a request to customize the query.

  • Authentication. If an API endpoint requires authentication, the API key must be included in the request header.

  • Code examples. Each endpoint has example requests in cURL, python, php and javascript format.

API versioning

Each Inokufu API has a version string that is specified in the base URL. The version string for a given Inokufu API can be incremented independently from other Inokufu APIs. We encourage you to use the newest available version of the Inokufu APIs.

Backwards compatible changes

The following changes to a Inokufu API are considered backwards compatible. The version string of an API will not be incremented if we:

  • Add properties to JSON objects.

  • Change the number of items returned in a single listing request.

  • Change rate limiting thresholds.

  • Change the structure or length of identifiers generated by the API.

  • Change error messages.

Backwards incompatible changes

The following changes are considered backwards incompatible. The version string of an API will be incremented if we:

  • Remove properties from JSON objects.

  • Change an API's URL structure.

If we deprecate an API or API endpoint that you are using, we will email you to give you at least 90 days' notice.

Rate limits

Each Inokufu API has rate limits that cap the number of requests you can make against an endpoint. If you exceed a rate limit, your request will be throttled, and you will receive a HTTP 429 Too Many Requests response from the API.

If you need a rate limit that is higher than the default, please consider upgrading to a higher paid plan or contacting our Inokufu sales team.

URL length limits

The maximum URL length that our APIs accept before returning a HTTP 414 URI too long response status code is an 8,192 byte limit. Note that some APIs accept POST requests with the query parameters in the request body as a workaround for this limitation. The documentation for each endpoint indicates which HTTP request methods it accepts.


We recommend that all access to Inokufu APIs is over HTTPS. Requests initiated over HTTP are automatically upgraded to HTTPS.


Pagination lets you list many objects from an API by using more than one request.

In the Inokufu API endpoints that support pagination, the optional max parameter specifies the maximum number of objects to return. The API will try to return the requested number of objects.


You may experience timeout during the first calls to our endpoints after a long period of inactivity when using demo or free keys. Don't worry, wait a few minutes and make your call again, everything should work as usual. There is no cold start issue when using a paid key.

Questions? Need Help? Found a bug?

If you've got questions about our API, found a bug or just want to chat with our developers, please feel free to email us at > ๐Ÿ‘‰ Check out our FAQ here