API for Developers

InterlinedList exposes an HTTP API that lets you build integrations, native clients, scripts, and automations on top of the platform. All request and response bodies are JSON unless noted otherwise.

This page is an index. Pick the section you need from the sidebar (or the list below) for full request/response details.

Interactive explorer: Try endpoints live in the browser with the Swagger / OpenAPI explorer at /api-docs. Authorize with a sync token and send real requests. The raw machine-readable spec is served at /api/openapi.json.

Base URL

Paths are relative to the InterlinedList deployment you are targeting:

https://interlinedlist.com

For example: https://interlinedlist.com/api/messages

Authentication at a glance

Two methods are supported. See Authentication & OAuth for details.

  • Session cookie: set by POST /api/auth/login; used by the web app and any browser client on the same origin.
  • Bearer token: obtained from POST /api/auth/sync-token; used by native, mobile, and CLI clients. Send as Authorization: Bearer <token>.

Endpoints documented as Session or Bearer accept either. Endpoints documented as Session only require the cookie.

Response conventions

Errors always return JSON with an error field:

{ "error": "Not authenticated" }

Common status codes: 400 bad request, 401 not authenticated, 403 forbidden (e.g. email not verified, subscriber feature), 404 not found, 409 conflict, 413 payload too large, 429 rate limited, 500 server error.

Paginated lists include a pagination object alongside the data array:

{
  "data": [ ... ],
  "pagination": {
    "total": 84,
    "limit": 20,
    "offset": 0,
    "hasMore": true
  }
}

Use limit and offset (or page) as query parameters to page through results.

Subscriber-only features

Some features require an active paid subscription. Check GET /api/user for the customerStatus field:

ValueMeaning
"free"No subscription
"subscriber"Active subscriber (legacy)
"subscriber:monthly"Active monthly subscriber
"subscriber:annual"Active annual subscriber

Any non-"free" status grants subscriber access. Features gated behind a subscription include image and video attachments on messages, scheduled posts, cross-posting to Mastodon/Bluesky/LinkedIn/X (Twitter), and document creation. Sending a subscriber-only field as a free user returns 403 Forbidden:

{ "error": "This feature requires an active subscription." }

Quick start

POST /api/auth/sync-token
Content-Type: application/json

{ "email": "you@example.com", "password": "yourpassword" }

Then:

GET /api/user
Authorization: Bearer 3f1c9e...<64 hex chars>...a8
POST /api/messages
Authorization: Bearer 3f1c9e...<64 hex chars>...a8
Content-Type: application/json

{ "content": "Hello from the API!", "publiclyVisible": true }

See Messages for the full message body reference.

Reference by category

SectionWhat's covered
Authentication & OAuthLogin, register, sync tokens, password reset, OAuth providers, account linking, logout, multi-account
Users and ProfileCurrent user, profile updates, avatars, linked identities, email change, account deletion
Public ProfilesNo-auth endpoints for viewing public user content
MessagesPosting, replies, dig reactions, scheduled posts, media uploads, cross-posting
Direct MessagesPrivate one-to-one messaging between mutual followers: send, folders, threads, read state, image attachments
ListsList CRUD, schema (DSL object), data rows, watchers, connections, search
List Schema DSLFull reference for the schema object: column types, the required-column rule, validation rules, conditional visibility
List FoldersTop-level folder hierarchy for organising lists
DocumentsDocument CRUD, delta sync, templates, search, image uploads
Document FoldersFolder hierarchy for organising documents
Sharing & Share LinksTokenized share links and per-person roles for documents and lists
FollowingFollow/unfollow, follow requests, follower & following lists
ModerationBlock and mute users, report messages and users
OrganizationsOrg CRUD, members, LinkedIn page integration
NotificationsNotification tray, mark read, single & bulk operations
Push NotificationsRegister and unregister device tokens
ExportsCSV exports of messages, lists, list rows, and follows
GitHub IntegrationConnected-account GitHub issue and repo helpers
LinkedIn IntegrationPersonal LinkedIn posting targets
Utility EndpointsImage proxy, geolocation, weather, OAuth client metadata, status probes
AdministrationAdmin-only user and email log management

Canonical reference and the interactive explorer

These per-category pages are the canonical human reference for the InterlinedList HTTP API. For the machine-readable contract and a live "try it" console, use:

  • Interactive API explorer: Swagger UI rendered from the OpenAPI 3.1 spec, with authorization and live requests.
  • OpenAPI spec: the raw OpenAPI 3.1 document, the source of truth for request and response shapes.