ObjectStackObjectStack

Feed Api

Feed Api protocol schemas

Feed / Chatter API Protocol

Defines the HTTP interface for the unified activity timeline (Feed).

Covers Feed CRUD, Emoji Reactions, Pin/Star, Search, Changelog,

and Record Subscription endpoints.

Base path: /api/data/{object}/{recordId}/feed

@example Endpoints

GET /api/data/{object}/{recordId}/feed — List feed items

POST /api/data/{object}/{recordId}/feed — Create feed item

PUT /api/data/{object}/{recordId}/feed/{feedId} — Update feed item

DELETE /api/data/{object}/{recordId}/feed/{feedId} — Delete feed item

POST /api/data/{object}/{recordId}/feed/{feedId}/reactions — Add reaction

DELETE /api/data/{object}/{recordId}/feed/{feedId}/reactions/{emoji} — Remove reaction

POST /api/data/{object}/{recordId}/feed/{feedId}/pin — Pin feed item

DELETE /api/data/{object}/{recordId}/feed/{feedId}/pin — Unpin feed item

POST /api/data/{object}/{recordId}/feed/{feedId}/star — Star feed item

DELETE /api/data/{object}/{recordId}/feed/{feedId}/star — Unstar feed item

GET /api/data/{object}/{recordId}/feed/search — Search feed items

GET /api/data/{object}/{recordId}/changelog — Get field-level changelog

POST /api/data/{object}/{recordId}/subscribe — Subscribe

DELETE /api/data/{object}/{recordId}/subscribe — Unsubscribe

Source: packages/spec/src/api/feed-api.zod.ts

TypeScript Usage

import { AddReactionRequest, AddReactionResponse, ChangelogEntry, CreateFeedItemRequest, CreateFeedItemResponse, DeleteFeedItemRequest, DeleteFeedItemResponse, FeedApiErrorCode, FeedItemPathParams, FeedListFilterType, FeedPathParams, FeedUnsubscribeRequest, GetChangelogRequest, GetChangelogResponse, GetFeedRequest, GetFeedResponse, PinFeedItemRequest, PinFeedItemResponse, RemoveReactionRequest, RemoveReactionResponse, SearchFeedRequest, SearchFeedResponse, StarFeedItemRequest, StarFeedItemResponse, SubscribeRequest, SubscribeResponse, UnpinFeedItemRequest, UnpinFeedItemResponse, UnstarFeedItemRequest, UnstarFeedItemResponse, UnsubscribeResponse, UpdateFeedItemRequest, UpdateFeedItemResponse } from '@objectstack/spec/api';
import type { AddReactionRequest, AddReactionResponse, ChangelogEntry, CreateFeedItemRequest, CreateFeedItemResponse, DeleteFeedItemRequest, DeleteFeedItemResponse, FeedApiErrorCode, FeedItemPathParams, FeedListFilterType, FeedPathParams, FeedUnsubscribeRequest, GetChangelogRequest, GetChangelogResponse, GetFeedRequest, GetFeedResponse, PinFeedItemRequest, PinFeedItemResponse, RemoveReactionRequest, RemoveReactionResponse, SearchFeedRequest, SearchFeedResponse, StarFeedItemRequest, StarFeedItemResponse, SubscribeRequest, SubscribeResponse, UnpinFeedItemRequest, UnpinFeedItemResponse, UnstarFeedItemRequest, UnstarFeedItemResponse, UnsubscribeResponse, UpdateFeedItemRequest, UpdateFeedItemResponse } from '@objectstack/spec/api';

// Validate data
const result = AddReactionRequest.parse(data);

AddReactionRequest

Properties

PropertyTypeRequiredDescription
objectstringObject name (e.g., "account")
recordIdstringRecord ID
feedIdstringFeed item ID
emojistringEmoji character or shortcode (e.g., "👍", ":thumbsup:")

AddReactionResponse

Properties

PropertyTypeRequiredDescription
successbooleanOperation success status
errorObjectoptionalError details if success is false
metaObjectoptionalResponse metadata
dataObject

ChangelogEntry

Properties

PropertyTypeRequiredDescription
idstringChangelog entry ID
objectstringObject name
recordIdstringRecord ID
actorObjectWho made the change
changesObject[]Field-level changes
timestampstringWhen the change occurred
sourcestringoptionalChange source (e.g., "API", "UI", "automation")

CreateFeedItemRequest

Properties

PropertyTypeRequiredDescription
objectstringObject name (e.g., "account")
recordIdstringRecord ID
typeEnum<'comment' | 'field_change' | 'task' | 'event' | 'email' | 'call' | 'note' | 'file' | 'record_create' | 'record_delete' | 'approval' | 'sharing' | 'system'>Type of feed item to create
bodystringoptionalRich text body (Markdown supported)
mentionsObject[]optionalMentioned users, teams, or records
parentIdstringoptionalParent feed item ID for threaded replies
visibilityEnum<'public' | 'internal' | 'private'>Visibility: public, internal, or private

CreateFeedItemResponse

Properties

PropertyTypeRequiredDescription
successbooleanOperation success status
errorObjectoptionalError details if success is false
metaObjectoptionalResponse metadata
dataObjectThe created feed item

DeleteFeedItemRequest

Properties

PropertyTypeRequiredDescription
objectstringObject name (e.g., "account")
recordIdstringRecord ID
feedIdstringFeed item ID

DeleteFeedItemResponse

Properties

PropertyTypeRequiredDescription
successbooleanOperation success status
errorObjectoptionalError details if success is false
metaObjectoptionalResponse metadata
dataObject

FeedApiErrorCode

Allowed Values

  • feed_item_not_found
  • feed_permission_denied
  • feed_item_not_editable
  • feed_invalid_parent
  • reaction_already_exists
  • reaction_not_found
  • subscription_already_exists
  • subscription_not_found
  • invalid_feed_type
  • feed_already_pinned
  • feed_not_pinned
  • feed_already_starred
  • feed_not_starred
  • feed_search_query_too_short

FeedItemPathParams

Properties

PropertyTypeRequiredDescription
objectstringObject name (e.g., "account")
recordIdstringRecord ID
feedIdstringFeed item ID

FeedListFilterType

Allowed Values

  • all
  • comments_only
  • changes_only
  • tasks_only

FeedPathParams

Properties

PropertyTypeRequiredDescription
objectstringObject name (e.g., "account")
recordIdstringRecord ID

FeedUnsubscribeRequest

Properties

PropertyTypeRequiredDescription
objectstringObject name (e.g., "account")
recordIdstringRecord ID

GetChangelogRequest

Properties

PropertyTypeRequiredDescription
objectstringObject name (e.g., "account")
recordIdstringRecord ID
fieldstringoptionalFilter changelog to a specific field name
actorIdstringoptionalFilter changelog by actor user ID
dateFromstringoptionalFilter changes after this timestamp
dateTostringoptionalFilter changes before this timestamp
limitintegerMaximum number of changelog entries to return
cursorstringoptionalCursor for pagination

GetChangelogResponse

Properties

PropertyTypeRequiredDescription
successbooleanOperation success status
errorObjectoptionalError details if success is false
metaObjectoptionalResponse metadata
dataObject

GetFeedRequest

Properties

PropertyTypeRequiredDescription
objectstringObject name (e.g., "account")
recordIdstringRecord ID
typeEnum<'all' | 'comments_only' | 'changes_only' | 'tasks_only'>Filter by feed item category
limitintegerMaximum number of items to return
cursorstringoptionalCursor for pagination (opaque string from previous response)

GetFeedResponse

Properties

PropertyTypeRequiredDescription
successbooleanOperation success status
errorObjectoptionalError details if success is false
metaObjectoptionalResponse metadata
dataObject

PinFeedItemRequest

Properties

PropertyTypeRequiredDescription
objectstringObject name (e.g., "account")
recordIdstringRecord ID
feedIdstringFeed item ID

PinFeedItemResponse

Properties

PropertyTypeRequiredDescription
successbooleanOperation success status
errorObjectoptionalError details if success is false
metaObjectoptionalResponse metadata
dataObject

RemoveReactionRequest

Properties

PropertyTypeRequiredDescription
objectstringObject name (e.g., "account")
recordIdstringRecord ID
feedIdstringFeed item ID
emojistringEmoji character or shortcode to remove

RemoveReactionResponse

Properties

PropertyTypeRequiredDescription
successbooleanOperation success status
errorObjectoptionalError details if success is false
metaObjectoptionalResponse metadata
dataObject

SearchFeedRequest

Properties

PropertyTypeRequiredDescription
objectstringObject name (e.g., "account")
recordIdstringRecord ID
querystringFull-text search query against feed body content
typeEnum<'all' | 'comments_only' | 'changes_only' | 'tasks_only'>optionalFilter by feed item category
actorIdstringoptionalFilter by actor user ID
dateFromstringoptionalFilter feed items created after this timestamp
dateTostringoptionalFilter feed items created before this timestamp
hasAttachmentsbooleanoptionalFilter for items with file attachments
pinnedOnlybooleanoptionalReturn only pinned items
starredOnlybooleanoptionalReturn only starred items
limitintegerMaximum number of items to return
cursorstringoptionalCursor for pagination

SearchFeedResponse

Properties

PropertyTypeRequiredDescription
successbooleanOperation success status
errorObjectoptionalError details if success is false
metaObjectoptionalResponse metadata
dataObject

StarFeedItemRequest

Properties

PropertyTypeRequiredDescription
objectstringObject name (e.g., "account")
recordIdstringRecord ID
feedIdstringFeed item ID

StarFeedItemResponse

Properties

PropertyTypeRequiredDescription
successbooleanOperation success status
errorObjectoptionalError details if success is false
metaObjectoptionalResponse metadata
dataObject

SubscribeRequest

Properties

PropertyTypeRequiredDescription
objectstringObject name (e.g., "account")
recordIdstringRecord ID
eventsEnum<'comment' | 'mention' | 'field_change' | 'task' | 'approval' | 'all'>[]Event types to subscribe to
channelsEnum<'in_app' | 'email' | 'push' | 'slack'>[]Notification delivery channels

SubscribeResponse

Properties

PropertyTypeRequiredDescription
successbooleanOperation success status
errorObjectoptionalError details if success is false
metaObjectoptionalResponse metadata
dataObjectThe created or updated subscription

UnpinFeedItemRequest

Properties

PropertyTypeRequiredDescription
objectstringObject name (e.g., "account")
recordIdstringRecord ID
feedIdstringFeed item ID

UnpinFeedItemResponse

Properties

PropertyTypeRequiredDescription
successbooleanOperation success status
errorObjectoptionalError details if success is false
metaObjectoptionalResponse metadata
dataObject

UnstarFeedItemRequest

Properties

PropertyTypeRequiredDescription
objectstringObject name (e.g., "account")
recordIdstringRecord ID
feedIdstringFeed item ID

UnstarFeedItemResponse

Properties

PropertyTypeRequiredDescription
successbooleanOperation success status
errorObjectoptionalError details if success is false
metaObjectoptionalResponse metadata
dataObject

UnsubscribeResponse

Properties

PropertyTypeRequiredDescription
successbooleanOperation success status
errorObjectoptionalError details if success is false
metaObjectoptionalResponse metadata
dataObject

UpdateFeedItemRequest

Properties

PropertyTypeRequiredDescription
objectstringObject name (e.g., "account")
recordIdstringRecord ID
feedIdstringFeed item ID
bodystringoptionalUpdated rich text body
mentionsObject[]optionalUpdated mentions
visibilityEnum<'public' | 'internal' | 'private'>optionalUpdated visibility

UpdateFeedItemResponse

Properties

PropertyTypeRequiredDescription
successbooleanOperation success status
errorObjectoptionalError details if success is false
metaObjectoptionalResponse metadata
dataObjectThe updated feed item

On this page