What's new

Move faster with modern SDKs

Jon Palmer, September 6th 2022
Klaviyo product release

Klaviyo’s API is core to our value proposition. Though we are a leader in integrations, we know we can’t build everything under the sun; that’s where our API comes in. By opening up Klaviyo to our developer community, we empower our partners and customers to build whatever they need: from a simple script to tie together 2 disparate sources of data, to a fully-fledged integration.

Our SDKs take this one step further, by offering our developers an intuitive and familiar interface for interacting with our API, in their language of choice.

The challenge: scale + speed

One of the challenges faced by API-first companies is ensuring that downstream tools keep pace with the API.

Consider the figure below:

API structure

As you can imagine, developing a workflow to scalably generate these downstream tools becomes increasingly important as the scope of the API grows and the pace of API development accelerates.

At Klaviyo, we’ve made a big investment into API automation. This means that any change to our API is immediately reflected in our downstream tools. This approach minimizes time to release and minimizes code divergence.

OpenAPI specification

We have been able to do this by leveraging OpenAPI, a powerful, machine-readable standard for describing APIs.

We use OpenAPI throughout the API development process: from mocking API prototypes at the product-development stage, to auto-generating a comprehensive OpenAPI specification in production.

SDK generation with OpenAPI Generator

With an OpenAPI spec, we have a single source of truth that we can plug into a wide variety of development tools, available to both our engineering team and our global developer community: SDKsAPI docsPostman Collection, and much more.

One of the most useful tools in our OpenAPI toolbox is OpenAPI-Generator; with this, we are able to generate SDKs that work right out of the box, using just our OpenAPI spec.

However, there are certain features that don’t come built into the base generators. Informed by our developer community, as well as our experience creating and consuming both APIs and SDKs, we built an additional layer onto our SDK automation pipeline, to add these features:

  • Client- and endpoint-level authentication
  • Retries
  • Timeouts
  • More intuitive namespace
SDk workflow

By having our SDK handle much of the boilerplate code that our developers would otherwise have to write, we free them up to focus on what they do best: creatively building better customer experiences, at scale.

Get started building with our SDKs

  • Check out our full lineup of SDKs (PythonPHPRubyNode/JS)
  • Read through our developer guides to level up from sandbox account to fully-fledged integration