Optidata — Optiwork Platform Team
Overview
Communities, posts, comments, reactions and polls for the Optiwork suite.
Optiwork Social API v2026.11.06.0944
Section titled “Optiwork Social API v2026.11.06.0944”The Optiwork Social API is the company feed: the communities that group posts, the posts themselves (text, links, polls, attachments), their comments, the reactions on both, and the tags that label posts.
Base URL
All endpoints are served under the fixed Social host:
https://feed.work.optidata.cloud/api.
Authentication
Every endpoint requires a Bearer JWT passport, except GET /ping. Your
personal passport is available in Optiwork at
https://work.optidata.cloud/user/settings/security
(My account > Profile > Security), where it is shown as the
authentication key. Send it on every request:
Authorization: Bearer opk_xxxxxxxxxxxxxxxxxxxxxxxx
Accept: application/json
A request without a key returns 401. A key that is expired or not recognised
returns 419; get a fresh authentication key from the same settings page and retry.
Communities
A community is a shared space for posts. It is public (everyone in the
company) or private (only the people and groups it is shared with). A post can
also live outside any community, in the general feed. Only company administrators
create communities. Administrators rename and delete any community; on a
private community, people with the manage permission may too. Communities
linked to a group cannot be renamed or deleted here. Sharing is expressed as
permissions (view, interact, edit, manage).
Posts and the general feed
A post belongs either to one community or to no community (the general feed). The two cases have parallel routes:
- community:
/categories/{category}/posts/... - general feed:
/posts/...
A post carries a status: published, draft (only its author sees it) or
scheduled (published automatically at published_at). Create a post with
POST /categories/{category}/posts or POST /posts.
Post content
content is a rich-text document in the editor’s format: a
Quill delta serialised as a JSON-encoded
string (for example {"ops":[{"insert":"Hello\n"}]}). A post may also carry a
hero: a link preview, a poll, an attachment or an embed, chosen with
hero_type.
Paging
List endpoints that can grow long use cursor pagination: the response is an
envelope with data and a next_cursor / next_page_url. Follow next_page_url,
or pass the cursor back as the post-cursor (posts) or comment-cursor
(comments) query parameter, until next_cursor is null.
Conventions
- Deleting a post, comment or community moves it to the trash (
deleted_atset). - Timestamps are ISO-8601 in UTC (e.g.
2026-10-19T14:38:26.000000Z). reaction_summaryis a map of reaction type to count, or[]when there are none.- Validation failures return
422with a per-fielderrorsmap; an invalid poll vote is reported the same way. - Other errors the application raises itself (an unauthorized action, for example) use the message envelope of the suite.
Authentication
Section titled “ Authentication ”bearerAuth
Section titled “bearerAuth”The authentication key (JWT passport) from My account > Profile > Security at work.optidata.cloud/user/settings/security.
Security scheme type: http
Bearer format: JWT