Slatis

SDK

The official JavaScript/TypeScript SDK for the Slatis API.

Installation

npm install @slatis/sdk
# or
pnpm add @slatis/sdk

Server-side usage

import { Slatis } from '@slatis/sdk'
 
const slatis = new Slatis({ apiKey: process.env.SLATIS_SECRET_KEY! })
 
const booking = await slatis.bookings.create({
  eventTypeId: 'evt_01abc',
  attendee: {
    name: 'Jane Smith',
    email: 'jane@example.com',
    timezone: 'America/New_York',
  },
  requestedTime: '2026-05-01T14:00:00Z',
})

Client-side usage (React)

Use a public key in browser contexts:

import { SlatisProvider, useAvailability } from '@slatis/sdk/react'
 
function App() {
  return (
    <SlatisProvider apiKey="pk_live_xxx">
      <BookingWidget eventTypeId="evt_01abc" />
    </SlatisProvider>
  )
}
 
function BookingWidget({ eventTypeId }: { eventTypeId: string }) {
  const { slots, isLoading } = useAvailability({
    eventTypeId,
    startDate: new Date(),
    endDate: addDays(new Date(), 7),
  })
 
  // render slot picker...
}

Embeddable widget

The widget handles the full booking flow — slot selection, attendee form, confirmation:

<script src="https://cdn.slatis.com/widget.js"></script>
<div
  data-slatis-widget
  data-api-key="pk_live_xxx"
  data-event-type-id="evt_01abc"
></div>

Error handling

The SDK throws typed errors that you can inspect:

import { SlatisError } from '@slatis/sdk'
 
try {
  await slatis.bookings.create({ ... })
} catch (err) {
  if (err instanceof SlatisError) {
    console.log(err.code)    // 'not_found', 'validation_error', etc.
    console.log(err.status)  // HTTP status code
  }
}

On this page