Skip to content

Overview

Communities, posts, comments, reactions and polls for the Optiwork suite.

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_at set).
  • Timestamps are ISO-8601 in UTC (e.g. 2026-10-19T14:38:26.000000Z).
  • reaction_summary is a map of reaction type to count, or [] when there are none.
  • Validation failures return 422 with a per-field errors map; 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.

The authentication key (JWT passport) from My account > Profile > Security at work.optidata.cloud/user/settings/security.

Security scheme type: http

Bearer format: JWT