Skip to content

Concepts ​

Three ideas run through the whole API: every item has an ID, most answers depend on a KNIME version, and lists come in pages.

Identifying items ​

Everything in NodePit is identified by its nodePitId, and the search is the place to get one. The ID looks different for each kind of item:

ItemWhat the nodePitId isExample
NodeThe class name of the node’s factoryio.qrocodile.api.designer.node.QrDesignerNodeFactory
CategoryThe path in the KNIME node repository/io/read
ExtensionThe ID of its feature in KNIME’s update siteio.qrocodile.api.feature.feature.group
ProductA short nameqrocodile
WorkflowThe path of the workflow on the server it lives onreturned by the search and by the list of workflows

IDs can contain dots and slashes. When you put one in a URL, encode it: the category /io/read becomes %2Fio%2Fread. Most HTTP libraries do this for you if you pass the ID as a path segment.

KNIME versions ​

A node can change between KNIME versions: it gains options, moves to another category, or gets replaced. Most endpoints take a knimeVersion parameter with the major and minor number, such as 5.12, and answer for that version. Without it, you get the latest version, so a script that omits the parameter always sees what is current.

sh
curl "https://nodepit.com/api/nodes/io.qrocodile.api.designer.node.QrDesignerNodeFactory?knimeVersion=5.12"

The /api/versions endpoint lists every KNIME release with its release date and download address, once for each operating system and architecture. To find the latest release, compare the version numbers, not the dates: KNIME keeps shipping bugfix releases for older versions, so the most recent date can belong to an older version. With jq, for example:

sh
curl -s "https://nodepit.com/api/versions?os=linux&arch=x86_64" \
  | jq '.items | max_by(.version | split(".") | map(tonumber))'

Searching and listing ​

The search takes a query and, optionally, a kind to narrow down the results. The kinds are node, category, iu (an extension), workflow, product, user, port, and server; leave kind out to search across all of them. Pass kind more than once to search several kinds at once, as in kind=node&kind=category. The search returns 10 hits unless you set a limit, up to 50; it has no skip, so narrow the query instead of paging through it.

The search matches names, so a query with a space may find nothing where the same words written together do: groupby finds the GroupBy node, while group by does not. If a search comes back empty, try a shorter or differently written query.

The list endpoints /api/nodes, /api/categories, and /api/workflows return their items in pages, with the total number of items next to them. The list of products is short and comes in one piece. Use limit to set how many items you want in one request, up to 50, and skip to start further down the list:

sh
curl "https://nodepit.com/api/nodes?limit=50&skip=100"

A list only carries the name, the ID, and the URL of each item, so it stays small. To get more, ask for the item itself with its ID.

Was this page helpful?