Client libraries / SDKs

Client libraries or SDKs are aimed to be wrappers around our API to drastically ease the integration process. They are aimed at providing easy to use methods to achieve common integration tasks, such as:

  • Retrieving product results (search, browse, autocomplete, recommendations and quizzes)
  • Dispatching behavioral events
  • Updating catalog data and setting configurations (server side only)

Constructor offers client libraries in a number of languages, both for use in the browser and server-side.

To get a better understanding of the benefits of using Constructor's client libraries, please be sure to read the Client library usage justification guide.

Constructor aims to provide the following with all of our open source client library offerings:

  • Strong unit and integration test coverage
  • Minimal dependency usage
  • Optimized bundle size
  • Comprehensive and living documentation
  • Lightweight footprint
  • Proactive security audits through automated code and dependency tree analysis

AI Shopping Agent and Product Insights Agent support

Not every client library supports the AI Shopping Agent (ASA) and the Product Insights Agent (PIA):

LibraryASA resultsASA eventsPIA resultsPIA events
JavaScriptagent moduletracker moduleagent.pia moduletracker module
iOS / SwiftNoVersion 4.7.0 and later, except trackAgentButtonClickNoNo
Node, Java, Python, .NET, Android / KotlinNoNoNoNo

The agent module receives ASA results through the browser EventSource interface. React Native does not include EventSource. If you use the JavaScript client library in React Native, you must add an EventSource polyfill.

To show the agents without building your own interface, use the ASA and PIA UI libraries.

Client side / browser

JavaScript logo

JavaScript (+TypeScript & React Native)

TypeScript support is available. The JavaScript client library does not contain the capability to render out results within the view layer (DOM) - please see our UI libraries.

GitHub: https://github.com/Constructor-io/constructorio-client-javascript

npm: https://www.npmjs.com/package/@constructor-io/constructorio-client-javascript

Documentation: https://constructor-io.github.io/constructorio-client-javascript/index.html

Usage in React Native context: https://github.com/Constructor-io/constructorio-client-javascript/wiki/Utilization-in-a-DOM-less-environment

Server side

Node logo

Node (+TypeScript)

GitHub: https://github.com/Constructor-io/constructorio-node

npm: https://www.npmjs.com/package/@constructor-io/constructorio-node

Documentation: https://constructor-io.github.io/constructorio-node

Java icon

Java

GitHub: https://github.com/Constructor-io/constructorio-java

JitPack: https://jitpack.io/#Constructor-io/constructorio-java

Documentation: https://constructor-io.github.io/constructorio-java

Python

GitHub: https://github.com/Constructor-io/constructorio-python

PyPI: https://pypi.org/project/constructor-io

Documentation: https://constructor-io.github.io/constructorio-python

.NET icon

.NET

GitHub: https://github.com/Constructor-io/constructorio-netcore

NuGet: https://www.nuget.org/packages/constructor.io

Documentation: https://constructor-io.github.io/constructorio-netcore

Mobile

iOS / Swift

GitHub: https://github.com/Constructor-io/constructorio-client-swift

Documentation: https://constructor-io.github.io/constructorio-client-swift

Kotlin icon

Android / Kotlin

GitHub: https://github.com/Constructor-io/constructorio-client-android

JitPack: https://jitpack.io/#Constructor-io/constructorio-client-android

Documentation: https://constructor-io.github.io/constructorio-client-android


Did this page help you?