Adapters API

The adapters API is the control-plane surface for the server-side adapter registry: which agent runtimes Paperclip can talk to, how each is configured, and how external adapter packages get installed at the instance level.

For per-adapter configuration semantics, jump to Reference → Adapters → Overview. This page documents the REST endpoints.

All routes here are mounted under /api. They are instance-admin / board-scoped — they shape the server itself, not a single company.


List installed adapters

GET /api/adapters

Returns the registry of server-side adapters Paperclip currently knows about: built-in adapter types plus any external adapters installed on the instance.

Install an external adapter

POST /api/adapters/install

Installs an external adapter package on the instance. Used by the Adapter Manager UI and the paperclipai adapter install CLI workflow.

Update an adapter's instance config

PATCH /api/adapters/:type

Persists instance-level configuration for the adapter identified by :type (for example claude_local, codex_local, openclaw_gateway).

Override adapter behaviour

PATCH /api/adapters/:type/override

Sets the operator-controlled override block for an adapter — used to force-disable, pin, or otherwise override registry defaults without editing instance config directly.

Delete an installed adapter

DELETE /api/adapters/:type

Removes an external adapter from the registry. Built-in adapter types cannot be deleted.

Reload an adapter

POST /api/adapters/:type/reload

Drops and re-loads the adapter module in-place. Useful after editing on-disk config without restarting the server.

Reinstall an adapter

POST /api/adapters/:type/reinstall

Re-runs the install flow for an external adapter (re-fetch, re-extract, re-register).

Read an adapter's config schema

GET /api/adapters/:type/config-schema

Returns the JSON schema the Adapter Manager uses to render the adapter's settings form.

Adapter UI parser bundle

GET /api/adapters/:type/ui-parser.js

Serves the adapter-supplied UI parser bundle. The Paperclip UI fetches this script to render run output for the adapter. The wire contract is documented in Adapter UI Parser.


Adapter device login

Some adapters authenticate with a device login — the kind where the tool prints a code and a URL, you approve it in a browser, and the CLI finishes signing in. These routes drive that flow from Paperclip for a company, scoped to one environment. They currently apply to the Codex adapter.

Route Purpose
POST /api/companies/{companyId}/adapters/{type}/login-sessions Start a device-login session. Body: { "environmentId": "<id>", "ttlSeconds"?: <number> }. Returns 201; a 409 means a session is already in flight.
GET /api/companies/{companyId}/adapters/{type}/login-sessions/{sessionId} Read the session — its state and the code/URL to complete the login in a browser.
POST /api/companies/{companyId}/adapters/{type}/login-sessions/{sessionId}/cancel Cancel the session.

These are board routes: the caller must be on the board, have access to the company, and be allowed to manage the company's adapters. type must be an adapter that supports device login (Codex today); other types are rejected.