Coline Docs
API

Endpoint reference

Every Coline API route, with the scope it needs.

Paths are relative to https://coline.app/api/v1. Request and response schemas are in the OpenAPI description, and the developer portal has an interactive reference.

OAuth means the route acts for a person and needs an OAuth token; workspace API keys get 403 USER_IDENTITY_REQUIRED. Every other route accepts both. Routes marked † work today but aren't in the OpenAPI description yet.

Identity

MethodPathDoesScope
GET/me/workspacesList the person's workspacesworkspace.read (OAuth)
GET/workspaces/{workspaceSlug}/members †List workspace membersworkspace.read
GET/oauth/userinfoThe signed-in personOAuth token

Calendar

MethodPathDoesScope
GET/workspaces/{workspaceSlug}/calendar/calendarsList calendarscalendar.read (OAuth)
POST/workspaces/{workspaceSlug}/calendar/calendarsCreate a calendarcalendar.write (OAuth)
PATCH/workspaces/{workspaceSlug}/calendar/calendars/{calendarId}Update a calendar and your preferences for itcalendar.write (OAuth)
DELETE/workspaces/{workspaceSlug}/calendar/calendars/{calendarId}Archive a calendarcalendar.write (OAuth)
POST/workspaces/{workspaceSlug}/calendar/calendars/{calendarId}/restoreRestore an archived calendarcalendar.write (OAuth)
GET/workspaces/{workspaceSlug}/calendar/calendars/{calendarId}/changesList changes after a revision number (afterRevision)calendar.read (OAuth)
GET PUT DELETE/workspaces/{workspaceSlug}/calendar/calendars/{calendarId}/grantsRead, set or remove who can access a calendarcalendar.read / calendar.write (OAuth)
POST/workspaces/{workspaceSlug}/calendar/calendars/{calendarId}/importImport an .ics filecalendar.write (OAuth)
GET/workspaces/{workspaceSlug}/calendar/calendars/{calendarId}/exportExport as .icscalendar.read (OAuth)
GET/workspaces/{workspaceSlug}/calendar/my-scheduleThe person's combined schedulecalendar.read (OAuth)
GET/workspaces/{workspaceSlug}/calendar/searchSearch eventscalendar.read (OAuth)
GET/workspaces/{workspaceSlug}/calendar/eventsList events between start and endcalendar.read (OAuth)
POST/workspaces/{workspaceSlug}/calendar/eventsCreate an eventcalendar.write (OAuth)
GET PATCH DELETE/workspaces/{workspaceSlug}/calendar/events/{eventId}Read, update or delete an eventcalendar.read / calendar.write (OAuth)
GET PUT/workspaces/{workspaceSlug}/calendar/events/{eventId}/remindersRead or replace the person's reminderscalendar.read / calendar.write (OAuth)
PATCH/workspaces/{workspaceSlug}/calendar/events/{eventId}/responseAccept, decline or tentatively acceptcalendar.write (OAuth)
GET POST PATCH/workspaces/{workspaceSlug}/calendar/events/{eventId}/counter-proposalsList, propose or answer new timescalendar.read / calendar.write (OAuth)

Calendar writes that email people outside Coline wait for the person's approval when sent by an API client. See Calendar.

Tasks

MethodPathDoesScope
GET/workspaces/{workspaceSlug}/taskboards †List taskboards with their statusestaskboards.read
GET/workspaces/{workspaceSlug}/taskboards/{taskboardId}/tasks †List tasks, with search, status and assignee filterstaskboards.read
POST/workspaces/{workspaceSlug}/taskboards/{taskboardId}/tasks †Create a tasktaskboards.write
GET/workspaces/{workspaceSlug}/taskboards/{taskboardId}/tasks/{taskId}Get a tasktaskboards.read
PATCH/workspaces/{workspaceSlug}/taskboards/{taskboardId}/tasks/{taskId}Update a tasktaskboards.write
DELETE/workspaces/{workspaceSlug}/taskboards/{taskboardId}/tasks/{taskId}Delete a tasktaskboards.write
GET POST DELETE/workspaces/{workspaceSlug}/taskboards/{taskboardId}/tasks/{taskId}/relations †Related, blocking and duplicate links between taskstaskboards.read / taskboards.write
POST/workspaces/{workspaceSlug}/tasks/resolve †Resolve a reference like COL-42 or title text to taskstaskboards.read

Files and drives

MethodPathDoesScope
GET/workspaces/{workspaceSlug}/drives †List drivesfiles.read
GET/workspaces/{workspaceSlug}/drives/{driveId}/files †List files in a drive or folderfiles.read
GET PATCH DELETE/workspaces/{workspaceSlug}/files/{fileId} †Read, rename or move, or trash a filefiles.read / files.write
POST/workspaces/{workspaceSlug}/uploads/initiateStart a multipart uploadfiles.write
GET/workspaces/{workspaceSlug}/uploads/partGet a signed URL for one partfiles.write
POST/workspaces/{workspaceSlug}/uploads/partUpload one part through Colinefiles.write
POST/workspaces/{workspaceSlug}/uploads/completeFinish the upload and create the filefiles.write

Docs and notes

MethodPathDoesScope
GET POST/workspaces/{workspaceSlug}/docs †List or create docsfiles.read / files.write
GET PATCH DELETE/workspaces/{workspaceSlug}/docs/{docId} †Read, update or delete a docfiles.read / files.write
GET POST/workspaces/{workspaceSlug}/notes †List or create notesfiles.read / files.write
GET PUT DELETE/workspaces/{workspaceSlug}/notes/{noteId} †Read, replace or delete a notefiles.read / files.write

Sheets

MethodPathDoesScope
GET/workspaces/{workspaceSlug}/sheetsList sheetsfiles.read
POST/workspaces/{workspaceSlug}/sheetsCreate a sheet, optionally from a templatefiles.write
GET/workspaces/{workspaceSlug}/sheets/{sheetId}Get a sheetfiles.read
PUT/workspaces/{workspaceSlug}/sheets/{sheetId}Update a sheetfiles.write
DELETE/workspaces/{workspaceSlug}/sheets/{sheetId}Delete a sheetfiles.write
GET POST/workspaces/{workspaceSlug}/sheets/{sheetId}/rows †Read or write rowsfiles.read / files.write
POST/workspaces/{workspaceSlug}/sheets/{sheetId}/ops †Apply cell and structure operationsfiles.write
POST/workspaces/{workspaceSlug}/sheets/{sheetId}/importImport CSVfiles.write
GET/workspaces/{workspaceSlug}/sheets/{sheetId}/export †Exportfiles.read

Messages

Messages act for a person: you can read and post only in conversations that person is in, exactly as in the app. With an API key, only the public channel list is available.

MethodPathDoesScope
GET/workspaces/{workspaceSlug}/channels †List public channels, plus private channels the person is inworkspace.read
GET POST/workspaces/{workspaceSlug}/channels/{channelId}/messages †Read or post channel messagesworkspace.read / messages.write (OAuth)
GET/workspaces/{workspaceSlug}/dms †List the person's DMsworkspace.read (OAuth)
GET POST/workspaces/{workspaceSlug}/dms/{dmId}/messages †Read or post DM messagesworkspace.read / messages.write (OAuth)
GET/workspaces/{workspaceSlug}/messages/{messageId} †Get a messageworkspace.read (OAuth)
PATCH DELETE/workspaces/{workspaceSlug}/messages/{messageId} †Edit or delete your own messagemessages.write (OAuth)
GET POST/workspaces/{workspaceSlug}/messages/{messageId}/thread †Read a thread, or reply in itworkspace.read / messages.write (OAuth)
PUT DELETE/workspaces/{workspaceSlug}/messages/{messageId}/pin †Pin or unpin a messagemessages.write (OAuth)
PUT DELETE/workspaces/{workspaceSlug}/messages/{messageId}/reactions/{emoji} †Add or remove your reactionmessages.write (OAuth)

Messages you post appear under the person's name. Posting into a conversation the person isn't in fails with 403.

MethodPathDoesScope
POST/workspaces/{workspaceSlug}/search †Search files, tasks, messages, app documents and mail the person can accessworkspace.read (OAuth)

Apps in a workspace

MethodPathDoesScope
GET/workspaces/{workspaceSlug}/appsInstalled apps and the catalog the workspace can seeapps.read
POST/workspaces/{workspaceSlug}/appsInstall an appapps.write
GET/workspaces/{workspaceSlug}/apps/{appKey}Get an installed appapps.read
DELETE/workspaces/{workspaceSlug}/apps/{appKey}Uninstall an appapps.write
GET PUT/workspaces/{workspaceSlug}/apps/{appKey}/permissionsRead or change granted permissionsapps.read / apps.write
GET POST/workspaces/{workspaceSlug}/apps/{appKey}/secretsList, create or rotate app secretsapps.write
DELETE/workspaces/{workspaceSlug}/apps/{appKey}/secrets/{secretId}Delete a secretapps.write
GET POST/workspaces/{workspaceSlug}/apps/{appKey}/oauth-connectionsList or set the app's OAuth connectionsapps.write
DELETE/workspaces/{workspaceSlug}/apps/{appKey}/oauth-connections/{connectionId}Remove a connectionapps.write
GET POST/workspaces/{workspaceSlug}/apps/{appKey}/deliveriesList deliveries, or send a signed test deliveryapps.write
POST/workspaces/{workspaceSlug}/apps/{appKey}/deliveries/{deliveryId}/replayReplay a deliveryapps.write
GET POST/workspaces/{workspaceSlug}/apps/{appKey}/filesList or create the app's filesfiles.read / files.write
GET PATCH DELETE/workspaces/{workspaceSlug}/apps/{appKey}/files/{fileId}Read, update or trash an app filefiles.read / files.write
POST/workspaces/{workspaceSlug}/apps/{appKey}/notificationsSend a notification from the appnotifications.write
POST DELETE/workspaces/{workspaceSlug}/apps/{appKey}/index-documentsAdd or remove the app's search documentsindex.write
POST/workspaces/{workspaceSlug}/apps/{appKey}/ambient/eventsEmit the app's eventsambient.events.write

App Store and publishing

MethodPathDoesScope
GET/appsList public store appsNone
GET/apps/{appKey}Get a store appNone
GET/apps/{appKey}/versionsList approved versionsNone
POST/appsRegister a new app and its first releaseDeveloper session
POST/apps/{appKey}/versionsUpload a new version (used by coline-app push)apps.write or apps.publish
POST/apps/{appKey}/versions/{versionId}/submitSubmit a version for store reviewDeveloper session

Tab

MethodPathDoesScope
GET/tab/modelsList Tab models and pricesNone
POST/tab/chat/completionsOpenAI-compatible inline completionai.invoke

See Tab.

Upstream checks

MethodPathDoesScope
POST/upstream/checks †Report a check result from external CI on a Change Requestupstream.checks.write

The rest of Upstream has its own API at https://api.upstream.codes. See Upstream.

OAuth

MethodPathDoes
GET/oauth/authorizeStart the authorization code flow
POST/oauth/tokenExchange a code, or refresh a token

See OAuth.

On this page