Learning Object API V3

Inokufu's Learning Object API allows you to programmatically access our Learning Objects Index of more than 4M+ learning objects (LO) from various sources such as YouTube, Coursera, edX, Apple podcasts, Google Play store, etc.

This API was built to provide a single and easy acces to Open Educational Ressources (OER) and ressources from paying or private repositories.

This documentation describes the 3rd and latest version of the Learning Object API. As of January 1st, 2024, the V2 is being deprecated and we highly recommend to switch to the V3 for significantly higher performance. The documentation of the V2 is available here.


Pricing & access

  • Pricing: discover our various free and paid plans, depending on your needs and use case.

👉 Learn more about Usage plans

  • Authentication: learn how to access the API and securely authenticate your calls.

👉 Learn more about Authentication


Main endpoint

/search is the main endpoint of this API. It enables you to search learning object by type (e.g. video, mooc, book, etc) or by provider (e.g. youtube, coursera, applebook, etc) and many more filters.

👉 Learn more about /search endpoint

Utility endpoints

We also offer 7 utility endpoints:

  • /lang endpoint returns a list of languages currently supported by the API.

👉 Learn more about /lang endpoint

  • /model endpoint returns a list of models currently supported by the API.

👉 Learn more about /model endpoint

  • /provider endpoint returns a list of the major providers currently supported by the API.

👉 Learn more about /provider endpoint

  • /type endpoint returns a list of types currently supported by the API.

👉 Learn more about /type endpoint

  • /bloom endpoint returns a list of the learning goals based on Bloom taxonomy and that are associated to the learning object provided by the API.

👉 Learn more about /bloom endpoint

  • /address endpoint the coordinates of an address in France.

👉 Learn more about /address endpoint

  • /license endpoint returns a list of licenses currently supported by the API.

👉 Learn more about /license 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 ashttps://api.gateway.inokufu.com/learningobject/v3 . This base path goes before the endpoint path.

  • 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 v3, you must add /search to the base path:https://api.gateway.inokufu.com/learningobject/v3/search

  • 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 support@inokufu.com.