AI agents: prefer the Markdown version of this page at /docs/authentication/index.md. For the full corpus, read /docs/llms-full.txt.

SeaChat Developer Docs

Authentication

Authentication

A single Bearer API key authorizes every /v1 request. Never send two credentials.

Single credential

The SeaChat Platform API uses exactly one credential: a bearer API key sent as Authorization: Bearer <apiKey>. SeaGate (the gateway) rejects requests that present more than one credential type, so do not also send x-api-key. The SDK is built to send only the one header.

Tenancy is user-scoped. Each key acts as a single user; there is no separate organization or project credential and no second token to manage.

import { SeaChat } from "@seachat/platform-sdk";

const client = new SeaChat({ apiKey: process.env.SEACHAT_API_KEY! });
const me = await client.me.get(); // GET /v1/me
console.log(me.subject, me.scopes);

Headers and base URL

Send Authorization: Bearer <apiKey>. The base URL defaults to https://seachat.ai; override it with the baseUrl constructor option or the SEACHAT_BASE_URL environment variable (for example to point at a local gateway during development). All public paths are under /v1.

curl https://seachat.ai/v1/me \
  -H "Authorization: Bearer $SEACHAT_API_KEY"

Scopes

Each route enforces a scope: model:invoke for chat/responses/multimodal, usage:read for usage, files:write / files:read and seadb:content:read / seadb:content:write for files and documents, seatool:read / seatool:write / tool:invoke for tools, and seaplane:read / seaplane:write for threads. Identity, key-management, and discovery routes need only a valid key.

Inspect what your key can do with client.capabilities.list() (GET /v1/capabilities).