---
title: "SDK"
url: "https://raconte.ai/en/docs/sdk"
---

### Documentation

[Introduction](/en/docs)[Getting started](/en/docs/getting-started)[MCP server](/en/docs/mcp)[Webhooks](/en/docs/webhooks)[REST API](/en/docs/api)[CLI](/en/docs/cli)[SDK](/en/docs/sdk)[Agent skill](/en/docs/skill)

### Guides

[Configure the MCP server](/en/guides/mcp-setup)[Using the MCP server](/en/guides/mcp-usage)

[Raconte](/) ⟩ [Documentation](/en/docs)

# SDK

Typed TypeScript SDK for the Raconte API: @raconte/node-sdk.

`@raconte/node-sdk` is the typed TypeScript SDK for the Raconte API. It exposes the same surface as the [REST API](/en/docs/api) (interviews and invitations) as typed functions, generated from the public OpenAPI spec, with Zod schemas for validation. It uses the native `fetch` and ships ESM.

Prefer the [CLI](/en/docs/cli) for scripts and terminals; use the SDK inside a TypeScript or Node application.

## Install

```
npm install @raconte/node-sdk
```

## Quick start

Create an organization API key from [Settings → API](/settings/api), then:

```
import { createRaconteClient, interviewsControllerList } from '@raconte/node-sdk'

const client = createRaconteClient({ apiKey: process.env.RACONTE_API_KEY! })

const { data, error } = await interviewsControllerList({ client })
if (error)
  throw new Error(`Request failed: ${JSON.stringify(error)}`)

console.log(data)
```

Every SDK function takes the client through its `client` option and returns `{ data, error, response }` (no throw on HTTP errors), so check `error` before using `data`.

`createRaconteClient` accepts `{ apiKey }`. The key is sent as `Authorization: Bearer <key>`.

## Validation schemas

Zod schemas for every request and response are available from the `/zod` subpath:

```
import { zCreateInterviewSchema } from '@raconte/node-sdk/zod'

const input = zCreateInterviewSchema.parse(payload)
```

## What you can do

*   **Interviews**: list, create, get, update, archive, restore, logs, regenerate intro / first message.
*   **Invitations**: list, create, create in bulk, get, update, send, cancel, reactivate, archive, restore, logs, message audio URL.
*   **Voices**: list the catalog and get a preview audio URL (the public, no-auth endpoints you pick a `voiceId` from).

See the [interactive API reference](/en/docs/api-reference) for the full request and response schemas.

Table of contents

[1\. Install](#install)[2\. Quick start](#quick-start)[3\. Validation schemas](#validation-schemas)[4\. What you can do](#what-you-can-do)
