---
title: "Choose an SDK or API"
description: "Compare SeatLayer client SDKs, seven server SDKs, and REST/OpenAPI, then follow the shortest production path for your application stack."
---

> Documentation Index
> Fetch the complete documentation index at: https://docs.seatlayer.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Choose an SDK or API

Choose the surface that matches where your code runs and how much of the buyer
experience your product should own. Client SDKs select and hold inventory;
trusted server code inspects the hold and confirms booking.

> **Check exact release status before installing**
>
> Package versions and release channels change independently. Use the
> [machine-readable SDK catalog](/sdk-catalog.json) for the current package,
> registry, source, stability, and verification evidence, then follow the
> selected SDK guide for implementation.

## Choose by runtime

| Your code runs in | Start here | Best when |
|---|---|---|
| Browser or web framework | [Web SDKs](/buyer-sdk/web/) | JavaScript, TypeScript, React, Vue, or Angular owns the buyer page |
| Native mobile application | [Native app SDKs](/buyer-sdk/mobile/) | Flutter, React Native, Swift, or Kotlin owns the app screen |
| Trusted application server | [Server SDKs](/server-sdk/) | You want an idiomatic client for Node.js, Python, PHP, Java, Go, Ruby, or .NET |
| Any HTTPS-capable backend | [REST API and OpenAPI](/server-api/) | You want direct HTTP control or generated clients for another language |

## Choose the client control level

- **Use the complete buyer flow** — Start with [`SeatPicker`](/buyer-sdk/seat-picker/). SeatLayer supplies the
selection experience and returns an opaque hold to your checkout.
- **Build a custom web cart** — Use [`SeatingChart`](/buyer-sdk/seating-chart/) when your application owns
the cart, controls holds explicitly, or needs a non-standard layout.
- **Build a native app experience** — Compare the [native app SDKs](/buyer-sdk/mobile/) before choosing a drop-in
picker, composable native widgets, or the lower-level map surface.
- **Model multiple performances** — Choose an [Event, Performance Group, or Season](/start/inventory-models/)
before selecting the corresponding buyer and server APIs.

## Keep the trust boundary fixed

The browser or mobile app may select inventory, create a temporary hold, and
send its opaque `holdId` to your backend. Only trusted server code should hold a
secret key, inspect authoritative hold contents, calculate the charge, and book
with a stable `bookingRef`.

Continue with the [client SDK overview](/buyer-sdk/), the
[server SDK overview](/server-sdk/), or the [REST API overview](/server-api/).

Source: https://docs.seatlayer.io/sdks/index.mdx
