The Opal REST API has 78 endpoints. This table lists every one by area with its method, path, and what it does, and links to the page that explains it. All paths start with https://app.opalrecall.com/api/v1. Every endpoint except the key-management routes uses an API key.

Auth and Limits Recap

TopicSummary
Base URLhttps://app.opalrecall.com/api/v1
Auth headerAuthorization: Bearer opal_live_xxx (full access) or opal_read_xxx (read-only)
PlanWorkshop. Other plans get 403 FEATURE_NOT_IN_PLAN.
Read-only keysOnly GET, HEAD, and OPTIONS. Other methods return 403.
Rate limit100 requests per key per 60-second window. 429 with Retry-After.
Share and publish limits20 share creations and 20 publish operations per user per 60 seconds.
Keys per accountUp to 10 active.
Response shapeMost routes return { "data": ... }. Errors return { "error": "..." }.

See Opal API Keys: Create, Use, and Revoke, Errors, Rate Limits, and Plan Limits in the Opal API, and API Conventions: IDs, Response Format, and Status Codes for the details.

Endpoints by Area

Account

MethodPathWhat it doesGuide
GET/accountGet plan, limits, usage, and statusPlan, Limits, and Usage in the Opal API: GET /account

API keys

MethodPathWhat it doesGuide
POST/keysCreate a key (signed-in app session)Opal API Keys: Create, Use, and Revoke
GET/keysList keys (signed-in app session)Opal API Keys: Create, Use, and Revoke
DELETE/keys/:idRevoke a key (signed-in app session)Opal API Keys: Create, Use, and Revoke

Items and pages

MethodPathWhat it doesGuide
GET/itemsList owned itemsItems API: List, Get, Create, Update, and Delete
GET/items/inboxList inbox itemsItems API: List, Get, Create, Update, and Delete
GET/items/sharedList items shared with youItems API: List, Get, Create, Update, and Delete
GET/items/:idGet item metadata and accessItems API: List, Get, Create, Update, and Delete
GET/items/:id/pageGet full page contentItems API: List, Get, Create, Update, and Delete
POST/itemsCreate an itemItems API: List, Get, Create, Update, and Delete
PATCH/items/:idUpdate an itemItems API: List, Get, Create, Update, and Delete
DELETE/items/:idDelete an itemItems API: List, Get, Create, Update, and Delete
POST/items/:id/notify-metadataTell share recipients a field changedItems API: List, Get, Create, Update, and Delete

Files and media

MethodPathWhat it doesGuide
POST/items/uploadUpload a standalone file itemUpload Files and Media with the API
GET/items/:id/downloadGet a download URLUpload Files and Media with the API
POST/media/uploadUpload media for embeddingUpload Files and Media with the API

Binders

MethodPathWhat it doesGuide
POST/items/:id/binder/itemsAdd items to a binderBinders API: Add, Remove, Reorder, and Duplicate
DELETE/items/:id/binder/items/:itemIdRemove an item from a binderBinders API: Add, Remove, Reorder, and Duplicate
PATCH/items/:id/binder/reorderReorder binder itemsBinders API: Add, Remove, Reorder, and Duplicate
PATCH/items/:id/owner-controls-itemsToggle owner controlsBinders API: Add, Remove, Reorder, and Duplicate
POST/items/:id/duplicateDuplicate a binderBinders API: Add, Remove, Reorder, and Duplicate

Fences

MethodPathWhat it doesGuide
POST/items/:id/fence/itemsAdd an item to a fenceFences API: Add Items, Read Children, and Move a Fence
DELETE/items/:id/fence/items/:itemIdRemove an item from a fenceFences API: Add Items, Read Children, and Move a Fence
GET/items/:id/fence/childrenGet a fence and its childrenFences API: Add Items, Read Children, and Move a Fence
PATCH/items/:id/fence/items/:itemIdMove an item inside a fenceFences API: Add Items, Read Children, and Move a Fence
POST/items/:id/fence/items/batch-moveMove up to 500 items inside a fenceFences API: Add Items, Read Children, and Move a Fence
POST/items/:id/fence/moveMove a fence with its childrenFences API: Add Items, Read Children, and Move a Fence

Layout

MethodPathWhat it doesGuide
POST/items/batch/moveMove up to 500 itemsPosition Items: Batch Move, Inbox, and Z-Order
POST/items/:id/bring-to-frontBring an item to the frontPosition Items: Batch Move, Inbox, and Z-Order
PATCH/items/:id/inboxMove an item in or out of the inboxPosition Items: Batch Move, Inbox, and Z-Order

Workspaces

MethodPathWhat it doesGuide
GET/workspacesList workspacesWorkspaces API: List, Create, Update, Reorder, and Delete
GET/workspaces/:idGet a workspaceWorkspaces API: List, Create, Update, Reorder, and Delete
POST/workspacesCreate a workspaceWorkspaces API: List, Create, Update, Reorder, and Delete
PATCH/workspaces/:idUpdate a workspaceWorkspaces API: List, Create, Update, Reorder, and Delete
DELETE/workspaces/:idDelete a workspaceWorkspaces API: List, Create, Update, Reorder, and Delete
PATCH/workspaces/reorderReorder workspacesWorkspaces API: List, Create, Update, Reorder, and Delete
POST/workspaces/:id/iconUpload a workspace iconWorkspaces API: List, Create, Update, Reorder, and Delete
DELETE/workspaces/:id/iconDelete a workspace iconWorkspaces API: List, Create, Update, Reorder, and Delete

Saved views

MethodPathWhat it doesGuide
GET/viewsList views and settingsSaved Views API: Save, List, and Set Your Home View
POST/viewsCreate a viewSaved Views API: Save, List, and Set Your Home View
PATCH/views/:idUpdate a viewSaved Views API: Save, List, and Set Your Home View
DELETE/views/:idDelete a viewSaved Views API: Save, List, and Set Your Home View
PATCH/views/settingsSet the Home view and first viewSaved Views API: Save, List, and Set Your Home View

Shares

MethodPathWhat it doesGuide
POST/sharesShare an itemSharing API: Shares, Permissions, and Recipient Placement
GET/shares/incomingList pending incoming sharesSharing API: Shares, Permissions, and Recipient Placement
GET/shares/outgoingList accepted outgoing sharesSharing API: Shares, Permissions, and Recipient Placement
GET/shares/:id/already-haveList items in a shared binder or fence that you already haveSharing API: Shares, Permissions, and Recipient Placement
POST/shares/:id/acceptAccept a shareSharing API: Shares, Permissions, and Recipient Placement
POST/shares/:id/declineDecline a shareSharing API: Shares, Permissions, and Recipient Placement
PATCH/shares/:idUpdate permissions or placementSharing API: Shares, Permissions, and Recipient Placement
PATCH/shares/:id/inboxMove a shared item in or out of the inboxSharing API: Shares, Permissions, and Recipient Placement
DELETE/shares/:idRemove or leave a shareSharing API: Shares, Permissions, and Recipient Placement
POST/items/:id/reassignHand a shared item, binder, or fence to a memberReassign Owner API: Hand a Shared Item, Binder, or Fence to a Member
GET/items/reassign/:transferIdCheck on a reassignment running in the backgroundReassign Owner API: Hand a Shared Item, Binder, or Fence to a Member

Copies

MethodPathWhat it doesGuide
POST/copies/createSend a copyCopies API: Send, Accept, and Decline Independent Copies
GET/copies/pendingList pending copiesCopies API: Send, Accept, and Decline Independent Copies
POST/copies/accept/:idAccept a copyCopies API: Send, Accept, and Decline Independent Copies
POST/copies/decline/:idDecline a copyCopies API: Send, Accept, and Decline Independent Copies

Publishing

MethodPathWhat it doesGuide
POST/items/:id/publishPublish or republishPublishing API: Publish, Refresh, Status, and Unpublish
POST/items/:id/publish/refreshRefresh the published snapshotPublishing API: Publish, Refresh, Status, and Unpublish
GET/items/:id/publishGet publish statusPublishing API: Publish, Refresh, Status, and Unpublish
DELETE/items/:id/publishUnpublishPublishing API: Publish, Refresh, Status, and Unpublish

Tasks

MethodPathWhat it doesGuide
GET/tasksList tasksTasks API: Create, List, Update, and Delete Tasks
GET/tasks/:taskIdGet a taskTasks API: Create, List, Update, and Delete Tasks
POST/tasksCreate a taskTasks API: Create, List, Update, and Delete Tasks
PATCH/tasks/:taskIdUpdate a taskTasks API: Create, List, Update, and Delete Tasks
DELETE/tasks/:taskIdDelete a taskTasks API: Create, List, Update, and Delete Tasks

Search

MethodPathWhat it doesGuide
GET/searchSearch your items and the items shared with youSearch API: Find Items by Title, Description, and Content

Profile

MethodPathWhat it doesGuide
GET/profileGet your profileProfile, Icons, and OpenGraph API Endpoints
PATCH/profileUpdate your profileProfile, Icons, and OpenGraph API Endpoints
POST/profile/avatarUpload an avatarProfile, Icons, and OpenGraph API Endpoints
DELETE/profile/avatarRemove the avatarProfile, Icons, and OpenGraph API Endpoints

Icons

MethodPathWhat it doesGuide
GET/iconsList iconsProfile, Icons, and OpenGraph API Endpoints
POST/iconsUpload an iconProfile, Icons, and OpenGraph API Endpoints
DELETE/icons/:blobNameDelete an iconProfile, Icons, and OpenGraph API Endpoints

OpenGraph

MethodPathWhat it doesGuide
POST/opengraphFetch a URL previewProfile, Icons, and OpenGraph API Endpoints

Export

MethodPathWhat it doesGuide
GET/export/checkCheck whether an export can startExport API: Download Your Workspaces as a Zip
GET/exportDownload the export zipExport API: Download Your Workspaces as a Zip

The key-management routes (POST, GET, and DELETE /keys) use your signed-in Opal session, not an API key. The public publishing routes under /p/ are not part of /api/v1 and do not use API-key auth. See Publishing API: Publish, Refresh, Status, and Unpublish.

Next Steps

FAQ

How many endpoints does the Opal API have?

78, grouped into account, API keys, items and pages, files and media, binders, fences, layout, workspaces, saved views, shares, copies, publishing, tasks, search, profile, icons, OpenGraph, and export.

Which endpoints work with a read-only key?

The GET endpoints. A read-only key can make only GET, HEAD, and OPTIONS requests.

Which endpoints do not use an API key?

The key-management routes under /api/v1/keys use your signed-in app session. The public /p/ routes are unauthenticated and are not part of /api/v1.