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

# Gorgias plugin

> Access the Gorgias REST API for customer support accounts, including tickets, customers, messages, users, configuration, reporting, and file operations.

Use **Gorgias** through Corsair: one client, typed API calls.

This plugin uses Gorgias private-app API-key authentication. Store the API key as the account API key, the agent email in the account email field, and the account subdomain in tenant\_external\_id (the hostname prefix from your Gorgias URL). Requests use HTTP Basic authentication with email as username and API key as password.

Public Gorgias apps require OAuth 2.0. This plugin intentionally supports private apps only; it does not provide the public-app authorization, scope-consent, or token lifecycle flow. Do not use a private API key for a public app.

Account subdomains are tenant-specific and are validated as a single hostname label before request construction. No webhook receiver is included.

Cursor pagination uses the provider cursor and limit parameters and returns the documented next/previous cursors. Gorgias documents API-key rate limits of 40 requests per 20 seconds (enterprise accounts use a 10-second window); the shared transport honors Retry-After on HTTP 429 responses.

File downloads follow the provider redirect internally and return bounded base64 data; signed URLs and file contents are not logged. The client enforces a 20 MiB local safety limit for file transfer.

The deprecated ticket-message listing route remains available because Gorgias still lists it in its REST reference; prefer ticketMessages.listMessages for new work.

**What you get:**

* 114 typed API operations

## Setup

**1. Install**

```bash npm theme={null}
npm install corsair @corsair-dev/gorgias better-sqlite3
npm install --save-dev @types/better-sqlite3
```

```bash yarn theme={null}
yarn add corsair @corsair-dev/gorgias better-sqlite3
yarn add --dev @types/better-sqlite3
```

```bash pnpm theme={null}
pnpm install corsair @corsair-dev/gorgias better-sqlite3
pnpm install --save-dev @types/better-sqlite3
```

```bash bun theme={null}
bun add corsair @corsair-dev/gorgias better-sqlite3
bun add --dev @types/better-sqlite3
```

**2. Add the plugin**

```ts corsair.ts theme={null}
import Database from 'better-sqlite3';
import { createCorsair } from 'corsair';
import { gorgias } from '@corsair-dev/gorgias';

export const corsair = createCorsair({
	plugins: [
		gorgias(),
	],
	database: new Database('corsair.db'),
	kek: process.env.CORSAIR_KEK!,
	multiTenancy: true,
	hub: {
		projectApiKey: process.env.CORSAIR_API_KEY!,
		signingSecret: process.env.CORSAIR_SIGNING_SECRET!,
	},
});
```

With `multiTenancy: true`, scope calls with `corsair.withTenant(id)`. See [Quick start](https://docs.corsair.dev/quick-start.md) for KEK + Hub keys, and [Multi-tenancy](https://docs.corsair.dev/concepts/multi-tenancy.md) for account isolation.

**3. Choose authentication**

> [tab] API Key (Recommended)
>
> Store the Gorgias API key before the first call: `pnpm corsair setup --plugin=gorgias --tenant=acme api_key=<your-key>` (leave out `--tenant` without `multiTenancy`), or pass it as `key` in the plugin options. With Hub, each tenant enters their own key on the connect page. See [API key auth](https://docs.corsair.dev/concepts/api-key).
>
> ```ts theme={null}
> gorgias()
> ```
>
> More: [API Key](https://docs.corsair.dev/concepts/api-key)

**4. Connect a tenant**

Mint a connect link and send the tenant to it. Hub hosts the page and delivers the result to your app — see [Connect / OAuth](https://docs.corsair.dev/management/connect).

```ts theme={null}
const { connectUrl } = await corsair.manage.connect.createLink({
	plugin: 'gorgias',
	tenantId: 'acme',
});
// redirect the user's browser to connectUrl
```

## Example API calls

**`account.getAccount`**

```ts theme={null}
const tenant = corsair.withTenant('acme');
await tenant.gorgias.api.account.getAccount({});
```

**`account.createAccountSetting`**

```ts theme={null}
const tenant = corsair.withTenant('acme');
await tenant.gorgias.api.account.createAccountSetting({});
```

See the full list on the [API](https://docs.corsair.dev/plugins/gorgias/api.md) page.

## What's next

> [card] [API reference](https://docs.corsair.dev/plugins/gorgias/api.md)
>
> Every `gorgias.api.*` operation with input and output types.

> [card] [Connect / OAuth](https://docs.corsair.dev/management/connect)
>
> createLink, Hub delivery, and tenant connect flows.

> [card] [Use with agents](https://docs.corsair.dev/mcp-adapters/mcp-adapters)
>
> Expose this plugin's operations as MCP tools.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.