openapi: 3.0.3 info: title: Stream product:chat product:feeds API version: v228.3.0 servers: - description: Stream API url: https://chat.stream-io-api.com security: - JWT: [] api_key: [] stream-auth-type: [] - api_key: [] stream-auth-type: [] tags: - name: product:feeds paths: /api/v2/feeds/activities: post: description: 'Create a new activity or update an existing one ' operationId: AddActivity requestBody: content: application/json: schema: $ref: '#/components/schemas/AddActivityRequest' description: Activity Request required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/AddActivityResponse' description: Add Activity Response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Add a single activity tags: - product:feeds /api/v2/feeds/activities/{activity_id}/bookmarks: delete: description: 'Deletes a bookmark from an activity ' operationId: DeleteBookmark parameters: - in: path name: activity_id required: true schema: maxLength: 255 type: string writeOnly: true x-stream-index: '001' - in: query name: folder_id schema: maxLength: 255 type: string writeOnly: true x-stream-index: '002' - in: query name: user_id schema: type: string writeOnly: true x-stream-index: '003.001' responses: '200': content: application/json: schema: $ref: '#/components/schemas/DeleteBookmarkResponse' description: Delete Bookmark Response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Delete a bookmark tags: - product:feeds patch: description: 'Updates a bookmark for an activity ' operationId: UpdateBookmark parameters: - in: path name: activity_id required: true schema: maxLength: 255 type: string writeOnly: true x-stream-index: '001' requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateBookmarkRequest' description: Update Bookmark Request required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/UpdateBookmarkResponse' description: Update Bookmark Response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Update bookmark tags: - product:feeds post: description: 'Adds a bookmark to an activity ' operationId: AddBookmark parameters: - in: path name: activity_id required: true schema: maxLength: 255 type: string writeOnly: true x-stream-index: '001' requestBody: content: application/json: schema: $ref: '#/components/schemas/AddBookmarkRequest' description: Add Bookmark Request required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/AddBookmarkResponse' description: Add Bookmark Response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Add bookmark tags: - product:feeds /api/v2/feeds/activities/{activity_id}/feedback: post: description: 'Submit feedback for an activity including options to show less, hide, report, or mute the user ' operationId: ActivityFeedback parameters: - in: path name: activity_id required: true schema: maxLength: 255 type: string writeOnly: true x-stream-index: '001' requestBody: content: application/json: schema: $ref: '#/components/schemas/ActivityFeedbackRequest' description: Activity Feedback Request required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/ActivityFeedbackResponse' description: Activity Feedback Response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Provide feedback on an activity tags: - product:feeds /api/v2/feeds/activities/{activity_id}/polls/{poll_id}/vote: post: description: 'Cast a vote on a poll Sends events: - feeds.poll.vote_casted - feeds.poll.vote_changed - feeds.poll.vote_removed - poll.vote_casted - poll.vote_changed - poll.vote_removed ' operationId: CastPollVote parameters: - in: path name: activity_id required: true schema: type: string writeOnly: true x-stream-index: '002' - in: path name: poll_id required: true schema: description: Poll ID maxLength: 255 title: string type: string x-stream-index: '003' requestBody: content: application/json: schema: $ref: '#/components/schemas/CastPollVoteRequest' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/PollVoteResponse' description: Successful response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Cast vote tags: - product:feeds /api/v2/feeds/activities/{activity_id}/polls/{poll_id}/vote/{vote_id}: delete: description: 'Delete a vote from a poll Sends events: - feeds.poll.vote_removed - poll.vote_removed ' operationId: DeletePollVote parameters: - in: path name: activity_id required: true schema: type: string writeOnly: true x-stream-index: '003' - in: path name: poll_id required: true schema: description: Poll ID maxLength: 255 title: string type: string x-stream-index: '004' - in: path name: vote_id required: true schema: description: Vote ID maxLength: 255 title: string type: string x-stream-index: '005' - in: query name: user_id schema: type: string writeOnly: true x-stream-index: '001' responses: '200': content: application/json: schema: $ref: '#/components/schemas/PollVoteResponse' description: Successful response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Delete vote tags: - product:feeds /api/v2/feeds/activities/{activity_id}/reactions: post: description: 'Adds a reaction to an activity ' operationId: AddActivityReaction parameters: - in: path name: activity_id required: true schema: maxLength: 255 type: string writeOnly: true x-stream-index: '001' requestBody: content: application/json: schema: $ref: '#/components/schemas/AddReactionRequest' description: Add Reaction Request required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/AddReactionResponse' description: Add Reaction Response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Add reaction tags: - product:feeds /api/v2/feeds/activities/{activity_id}/reactions/{type}: delete: description: 'Removes a reaction from an activity ' operationId: DeleteActivityReaction parameters: - in: path name: activity_id required: true schema: maxLength: 255 type: string writeOnly: true x-stream-index: '001' - in: path name: type required: true schema: maxLength: 255 type: string writeOnly: true x-stream-index: '002' - in: query name: delete_notification_activity schema: description: 'Whether to delete the corresponding notification activity (default: false)' title: Delete Notification Activity type: boolean writeOnly: true x-stream-index: '003' - in: query name: user_id schema: type: string writeOnly: true x-stream-index: '004.001' responses: '200': content: application/json: schema: $ref: '#/components/schemas/DeleteActivityReactionResponse' description: Delete Activity Reaction Response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Remove reaction tags: - product:feeds /api/v2/feeds/activities/{activity_id}/reactions/query: post: description: 'Query activity reactions ' operationId: QueryActivityReactions parameters: - in: path name: activity_id required: true schema: type: string writeOnly: true x-stream-index: '001' requestBody: content: application/json: schema: $ref: '#/components/schemas/QueryActivityReactionsRequest' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/QueryActivityReactionsResponse' description: Response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Query activity reactions tags: - product:feeds /api/v2/feeds/activities/{id}: delete: description: 'Delete a single activity by its ID ' operationId: DeleteActivity parameters: - in: path name: id required: true schema: maxLength: 255 type: string writeOnly: true x-stream-index: '001' - in: query name: hard_delete schema: description: Whether to permanently delete the activity instead of soft delete title: Hard Delete type: boolean writeOnly: true x-stream-index: '002' - in: query name: delete_notification_activity schema: description: Whether to also delete any notification activities created from mentions in this activity title: Delete Notification Activity type: boolean writeOnly: true x-stream-index: '003' responses: '200': content: application/json: schema: $ref: '#/components/schemas/DeleteActivityResponse' description: Delete Activity Response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Delete a single activity tags: - product:feeds get: description: 'Returns activity by ID ' operationId: GetActivity parameters: - in: path name: id required: true schema: type: string writeOnly: true x-stream-index: '001' - in: query name: comment_sort schema: description: 'Order of comments in the activity. One of: first, last, popular' enum: - first - last - popular title: Comment Sort type: string writeOnly: true x-stream-index: '002' - in: query name: comment_limit schema: description: Maximum number of comments to return format: int32 maximum: 20 minimum: 0 title: Comment Limit type: integer writeOnly: true x-stream-index: '003' - in: query name: user_id schema: type: string writeOnly: true x-stream-index: '004.001' responses: '200': content: application/json: schema: $ref: '#/components/schemas/GetActivityResponse' description: Get Activity Response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Get activity tags: - product:feeds patch: description: 'Updates certain fields of the activity. Use ''set'' to update specific fields and ''unset'' to remove fields. This allows you to update only the fields you need without replacing the entire activity. Useful for updating reply restrictions (''restrict_replies''), mentioned users, or custom data. Sends events: - feeds.activity.updated ' operationId: UpdateActivityPartial parameters: - in: path name: id required: true schema: maxLength: 255 type: string writeOnly: true x-stream-index: '001' requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateActivityPartialRequest' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/UpdateActivityPartialResponse' description: Successful response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Partial activity update tags: - product:feeds put: description: 'Replaces an activity with the provided data. Use this to update text, attachments, reply restrictions (''restrict_replies''), mentioned users, and other activity fields. Note: This is a full update - any fields not provided will be cleared. Sends events: - feeds.activity.updated ' operationId: UpdateActivity parameters: - in: path name: id required: true schema: maxLength: 255 type: string writeOnly: true x-stream-index: '001' requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateActivityRequest' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/UpdateActivityResponse' description: Successful response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Full activity update tags: - product:feeds /api/v2/feeds/activities/{id}/restore: post: description: 'Restores a soft-deleted, moderation-removed, or shadow-blocked activity by its ID. Deleted activities can be restored by the owner (client-side). Moderation-blocked activities can only be restored server-side. ' operationId: RestoreActivity parameters: - in: path name: id required: true schema: maxLength: 255 type: string writeOnly: true x-stream-index: '001' - in: query name: enrich_own_fields schema: type: boolean writeOnly: true x-stream-index: '002' requestBody: content: application/json: schema: $ref: '#/components/schemas/RestoreActivityRequest' description: Restore Activity Request required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/RestoreActivityResponse' description: Restore Activity Response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Restore an activity tags: - product:feeds /api/v2/feeds/activities/batch: post: description: 'Create new activities or update existing ones in a batch operation ' operationId: UpsertActivities requestBody: content: application/json: schema: $ref: '#/components/schemas/UpsertActivitiesRequest' description: Upsert Activities Request required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/UpsertActivitiesResponse' description: Upsert Activities Response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Upsert multiple activities tags: - product:feeds /api/v2/feeds/activities/batch/partial: patch: description: 'Updates certain fields of multiple activities in a batch. Use ''set'' to update specific fields and ''unset'' to remove fields. Activities that fail due to not found, permission denied, or no changes detected are silently skipped and not included in the response. However, validation errors (e.g., updating reserved fields, invalid field values) will fail the entire batch request. Sends events: - feeds.activity.updated ' operationId: UpdateActivitiesPartialBatch requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateActivitiesPartialBatchRequest' description: Update Activities Partial Batch Request required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/UpdateActivitiesPartialBatchResponse' description: Update Activities Partial Batch Response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Batch partial activity update tags: - product:feeds /api/v2/feeds/activities/delete: post: description: 'Delete one or more activities by their IDs ' operationId: DeleteActivities requestBody: content: application/json: schema: $ref: '#/components/schemas/DeleteActivitiesRequest' description: Delete Activities Request required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/DeleteActivitiesResponse' description: Delete Activities Response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Remove multiple activities tags: - product:feeds /api/v2/feeds/activities/metrics/track: post: description: 'Track metric events (views, clicks, impressions) for activities. Supports batching up to 100 events per request. Each event is independently rate-limited per user per activity per metric. Server-side calls must include user_id. ' operationId: TrackActivityMetrics requestBody: content: application/json: schema: $ref: '#/components/schemas/TrackActivityMetricsRequest' description: Track Activity Metrics Request required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/TrackActivityMetricsResponse' description: Track Activity Metrics Response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Track activity metrics tags: - product:feeds /api/v2/feeds/activities/query: post: description: 'Query activities based on filters with pagination and sorting options ' operationId: QueryActivities requestBody: content: application/json: schema: $ref: '#/components/schemas/QueryActivitiesRequest' description: Query Activities Request required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/QueryActivitiesResponse' description: Query Activities Response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Query activities tags: - product:feeds /api/v2/feeds/bookmark_folders/{folder_id}: delete: description: 'Delete a bookmark folder by its ID ' operationId: DeleteBookmarkFolder parameters: - in: path name: folder_id required: true schema: maxLength: 255 type: string writeOnly: true x-stream-index: '001' responses: '200': content: application/json: schema: $ref: '#/components/schemas/DeleteBookmarkFolderResponse' description: Delete Bookmark Folder Response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Delete a bookmark folder tags: - product:feeds patch: description: 'Update a bookmark folder by its ID ' operationId: UpdateBookmarkFolder parameters: - in: path name: folder_id required: true schema: maxLength: 255 type: string writeOnly: true x-stream-index: '001' requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateBookmarkFolderRequest' description: Update Bookmark Folder Request required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/UpdateBookmarkFolderResponse' description: Update Bookmark Folder Response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Update a bookmark folder tags: - product:feeds /api/v2/feeds/bookmark_folders/query: post: description: 'Query bookmark folders with filter query ' operationId: QueryBookmarkFolders requestBody: content: application/json: schema: $ref: '#/components/schemas/QueryBookmarkFoldersRequest' description: Query Bookmark Folders Request required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/QueryBookmarkFoldersResponse' description: Query Bookmark Folders Response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Query bookmark folders tags: - product:feeds /api/v2/feeds/bookmarks/query: post: description: 'Query bookmarks with filter query ' operationId: QueryBookmarks requestBody: content: application/json: schema: $ref: '#/components/schemas/QueryBookmarksRequest' description: Query Bookmarks Request required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/QueryBookmarksResponse' description: Query Bookmarks Response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Query bookmarks tags: - product:feeds /api/v2/feeds/collections: delete: description: 'Delete collections in a batch operation. Users can only delete their own collections. ' operationId: DeleteCollections parameters: - in: query name: collection_refs required: true schema: description: List of collections to delete items: type: string maxItems: 100 minItems: 1 title: Collection references type: array writeOnly: true x-stream-index: '001' responses: '200': content: application/json: schema: $ref: '#/components/schemas/DeleteCollectionsResponse' description: Delete Collections Response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Delete multiple collections tags: - product:feeds get: description: 'Read collections by their references. By default, users can only read their own collections. ' operationId: ReadCollections parameters: - in: query name: collection_refs schema: description: List of collection references in format 'name:id' items: type: string maxItems: 100 title: Collection References type: array writeOnly: true x-stream-index: '001' - in: query name: user_id schema: type: string writeOnly: true x-stream-index: '002.001' responses: '200': content: application/json: schema: $ref: '#/components/schemas/ReadCollectionsResponse' description: Read Collections Response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Read collections tags: - product:feeds patch: description: 'Update existing collections in a batch operation. Only the custom data field is updatable. Users can only update their own collections. ' operationId: UpdateCollections requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateCollectionsRequest' description: Update Collections Request required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/UpdateCollectionsResponse' description: Update Collections Response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Update multiple collections tags: - product:feeds post: description: 'Create new collections in a batch operation. Collections are data objects that can be attached to activities for managing shared data across multiple activities. ' operationId: CreateCollections requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateCollectionsRequest' description: Create Collections Request required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/CreateCollectionsResponse' description: Create Collections Response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Create multiple collections tags: - product:feeds put: description: 'Insert new collections or update existing ones in a batch operation. Only the custom data field is updatable for existing collections. ' operationId: UpsertCollections requestBody: content: application/json: schema: $ref: '#/components/schemas/UpsertCollectionsRequest' description: Upsert Collections Request required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/UpsertCollectionsResponse' description: Upsert Collections Response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Upsert multiple collections tags: - product:feeds /api/v2/feeds/collections/query: post: description: 'Query collections with filter query ' operationId: QueryCollections requestBody: content: application/json: schema: $ref: '#/components/schemas/QueryCollectionsRequest' description: Query Collections Request required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/QueryCollectionsResponse' description: Query Collections Response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Query collections tags: - product:feeds /api/v2/feeds/comments: get: description: 'Retrieve a threaded list of comments for a specific object (e.g., activity), with configurable depth, sorting, and pagination ' operationId: GetComments parameters: - in: query name: object_id required: true schema: description: ID of the object to get comments for title: Object ID type: string writeOnly: true x-stream-index: '001' - in: query name: object_type required: true schema: description: Type of the object to get comments for enum: - activity title: Object Type type: string writeOnly: true x-stream-index: '002' - in: query name: depth schema: description: Maximum nested depth to return (0 = only first level) format: int32 maximum: 5 minimum: 0 title: Max Depth type: integer writeOnly: true x-stream-index: '003' - in: query name: sort schema: description: Sort order for the comments enum: - first - last - top - best - controversial title: Sort Order type: string writeOnly: true x-stream-index: '004' - in: query name: replies_limit schema: format: int32 maximum: 20 minimum: 0 type: integer writeOnly: true x-stream-index: '005' - in: query name: id_around schema: description: Returns the comment with the specified ID along with surrounding comments for context title: ID Around type: string writeOnly: true x-stream-index: '006' - in: query name: user_id schema: description: User ID for server-side requests to populate OwnReactions (server-side only) title: User ID type: string writeOnly: true x-stream-index: '007.001' - in: query name: limit schema: description: Max number of top‑level comments to return format: int32 maximum: 100 minimum: 0 title: Root Limit type: integer writeOnly: true x-stream-index: '008.001' - in: query name: prev schema: type: string writeOnly: true x-stream-index: '008.002' - in: query name: next schema: type: string writeOnly: true x-stream-index: '008.003' responses: '200': content: application/json: schema: $ref: '#/components/schemas/GetCommentsResponse' description: Get Comments Response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Get comments for an object tags: - product:feeds post: description: 'Adds a comment to an object (e.g., activity) or a reply to an existing comment, and broadcasts appropriate events ' operationId: AddComment requestBody: content: application/json: schema: $ref: '#/components/schemas/AddCommentRequest' description: Add Comment Request required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/AddCommentResponse' description: Add Comment Response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Add a comment or reply tags: - product:feeds /api/v2/feeds/comments/{comment_id}/bookmarks: delete: description: 'Deletes a bookmark from a comment ' operationId: DeleteCommentBookmark parameters: - in: path name: comment_id required: true schema: maxLength: 255 type: string writeOnly: true x-stream-index: '001' - in: query name: folder_id schema: maxLength: 255 type: string writeOnly: true x-stream-index: '002' - in: query name: user_id schema: type: string writeOnly: true x-stream-index: '003.001' responses: '200': content: application/json: schema: $ref: '#/components/schemas/DeleteCommentBookmarkResponse' description: Delete Comment Bookmark Response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Delete a comment bookmark tags: - product:feeds patch: description: 'Updates a bookmark for a comment ' operationId: UpdateCommentBookmark parameters: - in: path name: comment_id required: true schema: description: ID of the comment maxLength: 255 title: Comment ID type: string writeOnly: true x-stream-index: '001' requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateCommentBookmarkRequest' description: Update Comment Bookmark Request required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/UpdateCommentBookmarkResponse' description: Update Comment Bookmark Response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Update comment bookmark tags: - product:feeds post: description: 'Adds a bookmark to a comment ' operationId: AddCommentBookmark parameters: - in: path name: comment_id required: true schema: maxLength: 255 type: string writeOnly: true x-stream-index: '001' requestBody: content: application/json: schema: $ref: '#/components/schemas/AddCommentBookmarkRequest' description: Add Comment Bookmark Request required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/AddCommentBookmarkResponse' description: Add Comment Bookmark Response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Add comment bookmark tags: - product:feeds /api/v2/feeds/comments/{id}: delete: description: 'Deletes a comment from an object (e.g., activity) and broadcasts appropriate events ' operationId: DeleteComment parameters: - in: path name: id required: true schema: type: string writeOnly: true x-stream-index: '001' - in: query name: hard_delete schema: description: Whether to permanently delete the comment instead of soft delete title: Hard Delete type: boolean writeOnly: true x-stream-index: '002' - in: query name: delete_notification_activity schema: description: 'Whether to delete the corresponding notification activity (default: false)' title: Delete Notification Activity type: boolean writeOnly: true x-stream-index: '003' responses: '200': content: application/json: schema: $ref: '#/components/schemas/DeleteCommentResponse' description: Delete Comment Response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Delete a comment tags: - product:feeds get: description: 'Get a comment by ID ' operationId: GetComment parameters: - in: path name: id required: true schema: type: string writeOnly: true x-stream-index: '001' - in: query name: user_id schema: type: string writeOnly: true x-stream-index: '002.001' responses: '200': content: application/json: schema: $ref: '#/components/schemas/GetCommentResponse' description: Get Comment Response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Get comment tags: - product:feeds patch: description: 'Updates a comment on an object (e.g., activity) and broadcasts appropriate events ' operationId: UpdateComment parameters: - in: path name: id required: true schema: type: string writeOnly: true x-stream-index: '001' requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateCommentRequest' description: Update Comment Request required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/UpdateCommentResponse' description: Update Comment Response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Update a comment tags: - product:feeds /api/v2/feeds/comments/{id}/partial: post: description: 'Updates certain fields of the comment. Use ''set'' to update specific fields and ''unset'' to remove fields. Sends events: - feeds.activity.updated - feeds.comment.updated ' operationId: UpdateCommentPartial parameters: - in: path name: id required: true schema: maxLength: 255 type: string writeOnly: true x-stream-index: '001' requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateCommentPartialRequest' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/UpdateCommentPartialResponse' description: Successful response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Partial comment update tags: - product:feeds /api/v2/feeds/comments/{id}/reactions: post: description: 'Adds a reaction to a comment ' operationId: AddCommentReaction parameters: - in: path name: id required: true schema: maxLength: 255 type: string writeOnly: true x-stream-index: '001' requestBody: content: application/json: schema: $ref: '#/components/schemas/AddCommentReactionRequest' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/AddCommentReactionResponse' description: Successful response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Add comment reaction tags: - product:feeds /api/v2/feeds/comments/{id}/reactions/{type}: delete: description: 'Deletes a reaction from a comment ' operationId: DeleteCommentReaction parameters: - in: path name: id required: true schema: maxLength: 255 type: string writeOnly: true x-stream-index: '001' - in: path name: type required: true schema: maxLength: 255 type: string writeOnly: true x-stream-index: '002' - in: query name: delete_notification_activity schema: description: 'Whether to delete the corresponding notification activity (default: false)' title: Delete Notification Activity type: boolean writeOnly: true x-stream-index: '003' - in: query name: user_id schema: type: string writeOnly: true x-stream-index: '004.001' responses: '200': content: application/json: schema: $ref: '#/components/schemas/DeleteCommentReactionResponse' description: Delete Comment Reaction Response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Delete comment reaction tags: - product:feeds /api/v2/feeds/comments/{id}/reactions/query: post: description: 'Query comment reactions ' operationId: QueryCommentReactions parameters: - in: path name: id required: true schema: type: string writeOnly: true x-stream-index: '001' requestBody: content: application/json: schema: $ref: '#/components/schemas/QueryCommentReactionsRequest' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/QueryCommentReactionsResponse' description: Response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Query comment reactions tags: - product:feeds /api/v2/feeds/comments/{id}/replies: get: description: 'Retrieve a threaded list of replies for a single comment, with configurable depth, sorting, and pagination ' operationId: GetCommentReplies parameters: - in: path name: id required: true schema: type: string writeOnly: true x-stream-index: '001' - in: query name: depth schema: description: Maximum nested depth to return (0 = unlimited) format: int32 maximum: 5 minimum: 0 title: Max Depth type: integer writeOnly: true x-stream-index: '002' - in: query name: sort schema: description: 'first (oldest), last (newest) or top. One of: first, last, top, best, controversial' enum: - first - last - top - best - controversial title: Sort Order type: string writeOnly: true x-stream-index: '003' - in: query name: replies_limit schema: description: Max number of replies to return format: int32 minimum: 0 title: Replies Limit type: integer writeOnly: true x-stream-index: '004' - in: query name: id_around schema: description: Returns the reply with the specified ID along with surrounding replies for context title: ID Around type: string writeOnly: true x-stream-index: '005' - in: query name: user_id schema: description: User ID for server-side requests to populate OwnReactions (server-side only) title: User ID type: string writeOnly: true x-stream-index: '006.001' - in: query name: limit schema: description: Max number of direct replies to return format: int32 maximum: 100 minimum: 0 title: Reply Limit type: integer writeOnly: true x-stream-index: '007.001' - in: query name: prev schema: type: string writeOnly: true x-stream-index: '007.002' - in: query name: next schema: type: string writeOnly: true x-stream-index: '007.003' responses: '200': content: application/json: schema: $ref: '#/components/schemas/GetCommentRepliesResponse' description: Get Comment Replies Response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Get replies for a comment tags: - product:feeds /api/v2/feeds/comments/{id}/restore: post: description: 'Restores a soft-deleted, moderation-removed, or shadow-blocked comment by its ID. The comment and all its descendants are restored. Deleted comments can be restored client-side. Moderation-blocked comments can only be restored server-side. ' operationId: RestoreComment parameters: - in: path name: id required: true schema: maxLength: 255 type: string writeOnly: true x-stream-index: '001' requestBody: content: application/json: schema: $ref: '#/components/schemas/RestoreCommentRequest' description: Restore Comment Request required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/RestoreCommentResponse' description: Restore Comment Response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Restore a comment tags: - product:feeds /api/v2/feeds/comments/batch: post: description: 'Adds multiple comments in a single request. Each comment must specify the object type and ID. ' operationId: AddCommentsBatch requestBody: content: application/json: schema: $ref: '#/components/schemas/AddCommentsBatchRequest' description: Add Comments Batch Request required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/AddCommentsBatchResponse' description: Add Comments Batch Response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Add multiple comments in a batch tags: - product:feeds /api/v2/feeds/comments/query: post: description: 'Query comments using MongoDB-style filters with pagination and sorting options ' operationId: QueryComments requestBody: content: application/json: schema: $ref: '#/components/schemas/QueryCommentsRequest' description: Query Comments Request required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/QueryCommentsResponse' description: Query Comments Response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Query comments tags: - product:feeds /api/v2/feeds/feed_groups: get: description: 'List all feed groups for the application ' operationId: ListFeedGroups parameters: - in: query name: include_soft_deleted schema: type: boolean writeOnly: true x-stream-index: '001' responses: '200': content: application/json: schema: $ref: '#/components/schemas/ListFeedGroupsResponse' description: Response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: List all feed groups tags: - product:feeds post: description: 'Creates a new feed group with the specified configuration ' operationId: CreateFeedGroup requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateFeedGroupRequest' description: Create Feed Group Request required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/CreateFeedGroupResponse' description: Upsert Feed Group Response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Create a new feed group tags: - product:feeds /api/v2/feeds/feed_groups/{feed_group_id}/feeds/{feed_id}: delete: description: 'Delete a single feed by its ID ' operationId: DeleteFeed parameters: - in: path name: feed_group_id required: true schema: maxLength: 255 type: string writeOnly: true x-stream-index: '001' - in: path name: feed_id required: true schema: maxLength: 255 type: string writeOnly: true x-stream-index: '002' - in: query name: hard_delete schema: description: Whether to permanently delete the feed instead of soft delete title: Hard Delete type: boolean writeOnly: true x-stream-index: '003' responses: '200': content: application/json: schema: $ref: '#/components/schemas/DeleteFeedResponse' description: Delete Feed Response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Delete a single feed tags: - product:feeds post: description: 'Create a single feed for a given feed group ' operationId: GetOrCreateFeed parameters: - in: path name: feed_group_id required: true schema: maxLength: 255 type: string writeOnly: true x-stream-index: '001' - in: path name: feed_id required: true schema: maxLength: 255 type: string writeOnly: true x-stream-index: '002' requestBody: content: application/json: schema: $ref: '#/components/schemas/GetOrCreateFeedRequest' description: ClientRequest required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/GetOrCreateFeedResponse' description: Response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Create a new feed tags: - product:feeds put: description: 'Update an existing feed ' operationId: UpdateFeed parameters: - in: path name: feed_group_id required: true schema: maxLength: 255 type: string writeOnly: true x-stream-index: '001' - in: path name: feed_id required: true schema: maxLength: 255 type: string writeOnly: true x-stream-index: '002' requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateFeedRequest' description: Update Feed Request required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/UpdateFeedResponse' description: Update Feed Response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Update a feed tags: - product:feeds /api/v2/feeds/feed_groups/{feed_group_id}/feeds/{feed_id}/activities/{activity_id}/pin: delete: description: 'Unpin an activity from a feed. This removes the pin, so the activity will no longer be displayed at the top of the feed. ' operationId: UnpinActivity parameters: - in: path name: feed_group_id required: true schema: maxLength: 255 type: string writeOnly: true x-stream-index: '001' - in: path name: feed_id required: true schema: maxLength: 255 type: string writeOnly: true x-stream-index: '002' - in: path name: activity_id required: true schema: type: string writeOnly: true x-stream-index: '003' - in: query name: enrich_own_fields schema: description: If true, enriches the activity's current_feed with own_* fields (own_follows, own_followings, own_capabilities, own_membership). Defaults to false for performance. title: Enrich Own Fields type: boolean writeOnly: true x-stream-index: '004' - in: query name: user_id schema: type: string writeOnly: true x-stream-index: '005.001' responses: '200': content: application/json: schema: $ref: '#/components/schemas/UnpinActivityResponse' description: Unpin Activity Response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Unpin an activity from a feed tags: - product:feeds post: description: 'Pin an activity to a feed. Pinned activities are typically displayed at the top of a feed. ' operationId: PinActivity parameters: - in: path name: feed_group_id required: true schema: maxLength: 255 type: string writeOnly: true x-stream-index: '001' - in: path name: feed_id required: true schema: maxLength: 255 type: string writeOnly: true x-stream-index: '002' - in: path name: activity_id required: true schema: type: string writeOnly: true x-stream-index: '003' requestBody: content: application/json: schema: $ref: '#/components/schemas/PinActivityRequest' description: Pin Activity Request required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/PinActivityResponse' description: Pin Activity Response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Pin an activity to a feed tags: - product:feeds /api/v2/feeds/feed_groups/{feed_group_id}/feeds/{feed_id}/activities/mark/batch: post: description: 'Mark activities as read/seen/watched. Can mark by timestamp (seen), activity IDs (read), or all as read. ' operationId: MarkActivity parameters: - in: path name: feed_group_id required: true schema: maxLength: 255 type: string writeOnly: true x-stream-index: '001' - in: path name: feed_id required: true schema: maxLength: 255 type: string writeOnly: true x-stream-index: '002' requestBody: content: application/json: schema: $ref: '#/components/schemas/MarkActivityRequest' description: Mark Activity Request required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/Response' description: Response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Mark activities as read/seen/watched tags: - product:feeds /api/v2/feeds/feed_groups/{feed_group_id}/feeds/{feed_id}/change_visibility: post: description: 'Changes the visibility of an existing feed. Follow reconciliation (rewriting pending follows on loosening, or removing disallowed follows/members on tightening) runs asynchronously in the background; the response returns optimistically with the intended visibility. ' operationId: ChangeFeedVisibility parameters: - in: path name: feed_group_id required: true schema: maxLength: 255 type: string writeOnly: true x-stream-index: '001' - in: path name: feed_id required: true schema: maxLength: 255 type: string writeOnly: true x-stream-index: '002' requestBody: content: application/json: schema: $ref: '#/components/schemas/ChangeFeedVisibilityRequest' description: Change Feed Visibility Request required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/ChangeFeedVisibilityResponse' description: Change Feed Visibility Response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Change a feed's visibility tags: - product:feeds /api/v2/feeds/feed_groups/{feed_group_id}/feeds/{feed_id}/members: patch: description: 'Add, remove, or set members for a feed ' operationId: UpdateFeedMembers parameters: - in: path name: feed_group_id required: true schema: maxLength: 255 type: string writeOnly: true x-stream-index: '001' - in: path name: feed_id required: true schema: maxLength: 255 type: string writeOnly: true x-stream-index: '002' requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateFeedMembersRequest' description: Update Feed Members Request required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/UpdateFeedMembersResponse' description: Response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Update feed members tags: - product:feeds /api/v2/feeds/feed_groups/{feed_group_id}/feeds/{feed_id}/members/accept: post: description: 'Accepts a pending feed member request ' operationId: AcceptFeedMemberInvite parameters: - in: path name: feed_id required: true schema: maxLength: 255 type: string writeOnly: true x-stream-index: '001' - in: path name: feed_group_id required: true schema: maxLength: 255 type: string writeOnly: true x-stream-index: '002' requestBody: content: application/json: schema: $ref: '#/components/schemas/AcceptFeedMemberInviteRequest' description: Accept Feed Member Invite Request required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/AcceptFeedMemberInviteResponse' description: Accept Feed Member Invite Response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Accept a feed member request tags: - product:feeds /api/v2/feeds/feed_groups/{feed_group_id}/feeds/{feed_id}/members/query: post: description: 'Query feed members based on filters with pagination and sorting options ' operationId: QueryFeedMembers parameters: - in: path name: feed_group_id required: true schema: maxLength: 255 type: string writeOnly: true x-stream-index: '001' - in: path name: feed_id required: true schema: maxLength: 255 type: string writeOnly: true x-stream-index: '002' requestBody: content: application/json: schema: $ref: '#/components/schemas/QueryFeedMembersRequest' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/QueryFeedMembersResponse' description: Successful response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Query feed members tags: - product:feeds /api/v2/feeds/feed_groups/{feed_group_id}/feeds/{feed_id}/members/reject: post: description: 'Rejects a pending feed member request ' operationId: RejectFeedMemberInvite parameters: - in: path name: feed_group_id required: true schema: maxLength: 255 type: string writeOnly: true x-stream-index: '001' - in: path name: feed_id required: true schema: maxLength: 255 type: string writeOnly: true x-stream-index: '002' requestBody: content: application/json: schema: $ref: '#/components/schemas/RejectFeedMemberInviteRequest' description: Reject Feed Member Request required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/RejectFeedMemberInviteResponse' description: Reject Feed Member Response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Reject an invite to become a feed member tags: - product:feeds /api/v2/feeds/feed_groups/{feed_group_id}/feeds/{feed_id}/pinned_activities/query: post: description: 'Query pinned activities for a feed with filter query ' operationId: QueryPinnedActivities parameters: - in: path name: feed_group_id required: true schema: maxLength: 255 type: string writeOnly: true x-stream-index: '001' - in: path name: feed_id required: true schema: maxLength: 255 type: string writeOnly: true x-stream-index: '002' requestBody: content: application/json: schema: $ref: '#/components/schemas/QueryPinnedActivitiesRequest' description: Query Pinned Activities Request required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/QueryPinnedActivitiesResponse' description: Query Pinned Activities Response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Query pinned activities tags: - product:feeds /api/v2/feeds/feed_groups/{feed_group_id}/follow_suggestions: get: description: 'Get follow suggestions for a feed group ' operationId: GetFollowSuggestions parameters: - in: path name: feed_group_id required: true schema: description: The ID of the feed group to get suggestions for maxLength: 255 title: Feed Group ID type: string writeOnly: true x-stream-index: '001' - in: query name: limit schema: description: Maximum number of suggestions to return format: int32 maximum: 100 minimum: 1 title: Limit type: integer writeOnly: true x-stream-index: '002' - in: query name: user_id schema: description: The ID of the user requesting suggestions (optional, defaults to current user) title: User ID type: string writeOnly: true x-stream-index: '003.001' responses: '200': content: application/json: schema: $ref: '#/components/schemas/GetFollowSuggestionsResponse' description: Follow Suggestions Response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Get follow suggestions tags: - product:feeds /api/v2/feeds/feed_groups/{feed_group_id}/restore: post: description: 'Restores a soft-deleted feed group by its ID. Only clears DeletedAt in the database; no other fields are updated. ' operationId: RestoreFeedGroup parameters: - in: path name: feed_group_id required: true schema: maxLength: 255 type: string writeOnly: true x-stream-index: '001' responses: '201': content: application/json: schema: $ref: '#/components/schemas/RestoreFeedGroupResponse' description: Restore Feed Group Response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Restore a feed group tags: - product:feeds /api/v2/feeds/feed_groups/{id}: delete: description: 'Delete a feed group by its ID. Can perform a soft delete (default) or hard delete. ' operationId: DeleteFeedGroup parameters: - in: path name: id required: true schema: maxLength: 255 type: string writeOnly: true x-stream-index: '001' - in: query name: hard_delete schema: description: Whether to perform a hard delete (true) or soft delete (false, default) title: Hard Delete type: boolean writeOnly: true x-stream-index: '002' responses: '200': content: application/json: schema: $ref: '#/components/schemas/DeleteFeedGroupResponse' description: Response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Delete a feed group tags: - product:feeds get: description: 'Get a feed group by ID ' operationId: GetFeedGroup parameters: - in: path name: id required: true schema: type: string writeOnly: true x-stream-index: '001' - in: query name: include_soft_deleted schema: type: boolean writeOnly: true x-stream-index: '002' responses: '200': content: application/json: schema: $ref: '#/components/schemas/GetFeedGroupResponse' description: Get Feed Group Response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Get a feed group tags: - product:feeds post: description: 'Get an existing feed group or create a new one if it doesn''t exist ' operationId: GetOrCreateFeedGroup parameters: - in: path name: id required: true schema: description: Unique identifier for the feed group maxLength: 255 title: Feed Group ID type: string writeOnly: true x-stream-index: '001' requestBody: content: application/json: schema: $ref: '#/components/schemas/GetOrCreateFeedGroupRequest' description: Get Or Create Feed Group Request required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/GetOrCreateFeedGroupResponse' description: Get Or Create Feed Group Response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Get or create a feed group tags: - product:feeds put: description: 'Update a feed group by ID ' operationId: UpdateFeedGroup parameters: - in: path name: id required: true schema: type: string writeOnly: true x-stream-index: '001' requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateFeedGroupRequest' description: Update Feed Group Request required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/UpdateFeedGroupResponse' description: Update Feed Group Response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Update a feed group tags: - product:feeds /api/v2/feeds/feed_views: get: description: 'List all feed views for a feed group ' operationId: ListFeedViews responses: '200': content: application/json: schema: $ref: '#/components/schemas/ListFeedViewsResponse' description: List Feed Views Response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: List all feed views tags: - product:feeds post: description: 'Create a custom view for a feed group with specific selectors, ranking, or aggregation options ' operationId: CreateFeedView requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateFeedViewRequest' description: Create Feed View Request required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/CreateFeedViewResponse' description: Create Feed View Response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Create a new feed view tags: - product:feeds /api/v2/feeds/feed_views/{id}: delete: description: 'Delete an existing custom feed view ' operationId: DeleteFeedView parameters: - in: path name: id required: true schema: maxLength: 255 type: string writeOnly: true x-stream-index: '001' responses: '200': content: application/json: schema: $ref: '#/components/schemas/DeleteFeedViewResponse' description: Delete Feed View Response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Delete a feed view tags: - product:feeds get: description: 'Get a feed view by its ID ' operationId: GetFeedView parameters: - in: path name: id required: true schema: maxLength: 255 type: string writeOnly: true x-stream-index: '001' responses: '200': content: application/json: schema: $ref: '#/components/schemas/GetFeedViewResponse' description: Get Feed View Response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Get a feed view tags: - product:feeds post: description: 'Get an existing feed view or create a new one if it doesn''t exist ' operationId: GetOrCreateFeedView parameters: - in: path name: id required: true schema: maxLength: 255 type: string writeOnly: true x-stream-index: '001' requestBody: content: application/json: schema: $ref: '#/components/schemas/GetOrCreateFeedViewRequest' description: Get Or Create Feed View Request required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/GetOrCreateFeedViewResponse' description: Get Or Create Feed View Response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Get or create a feed view tags: - product:feeds put: description: 'Update an existing custom feed view with new selectors, ranking, or aggregation options ' operationId: UpdateFeedView parameters: - in: path name: id required: true schema: maxLength: 255 type: string writeOnly: true x-stream-index: '001' requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateFeedViewRequest' description: Update Feed View Request required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/UpdateFeedViewResponse' description: Update Feed View Response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Update a feed view tags: - product:feeds /api/v2/feeds/feed_visibilities: get: description: 'Gets all available feed visibility configurations and their permissions ' operationId: ListFeedVisibilities responses: '200': content: application/json: schema: $ref: '#/components/schemas/ListFeedVisibilitiesResponse' description: List Feed Visibilities Response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: List feed visibilities tags: - product:feeds /api/v2/feeds/feed_visibilities/{name}: get: description: 'Gets feed visibility configuration and permissions ' operationId: GetFeedVisibility parameters: - in: path name: name required: true schema: description: 'Name of the feed visibility level. One of: public, visible, followers, members, private' enum: - public - visible - followers - members - private title: Visibility Name type: string writeOnly: true x-stream-index: '001' responses: '200': content: application/json: schema: $ref: '#/components/schemas/GetFeedVisibilityResponse' description: Get Feed Visibility Response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Get feed visibility tags: - product:feeds put: description: 'Updates an existing predefined feed visibility configuration ' operationId: UpdateFeedVisibility parameters: - in: path name: name required: true schema: enum: - public - visible - followers - members - private type: string writeOnly: true x-stream-index: '001' requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateFeedVisibilityRequest' description: Update Feed Visibility Request required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/UpdateFeedVisibilityResponse' description: Update Feed Visibility Response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Update Feed Visibility tags: - product:feeds /api/v2/feeds/feeds/batch: post: description: 'Create multiple feeds at once for a given feed group ' operationId: CreateFeedsBatch requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateFeedsBatchRequest' description: Create Feeds Batch Request required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/CreateFeedsBatchResponse' description: Create Feeds Batch Response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Create multiple feeds at once tags: - product:feeds /api/v2/feeds/feeds/delete: post: description: 'Delete multiple feeds by their IDs. All feeds must exist. This endpoint is server-side only. ' operationId: DeleteFeedsBatch requestBody: content: application/json: schema: $ref: '#/components/schemas/DeleteFeedsBatchRequest' description: Delete Feeds Batch Request required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/DeleteFeedsBatchResponse' description: Delete Feeds Batch Response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Delete multiple feeds tags: - product:feeds /api/v2/feeds/feeds/own/batch: post: description: 'Retrieves own_follows, own_capabilities, and/or own_membership for multiple feeds in a single request. If fields are not specified, all three fields are returned. ' operationId: OwnBatch requestBody: content: application/json: schema: $ref: '#/components/schemas/OwnBatchRequest' description: Own Batch Request required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/OwnBatchResponse' description: Own Batch Response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Get own fields for multiple feeds tags: - product:feeds /api/v2/feeds/feeds/query: post: description: 'Query feeds with filter query ' operationId: QueryFeeds requestBody: content: application/json: schema: $ref: '#/components/schemas/QueryFeedsRequest' description: Query Feeds Request required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/QueryFeedsResponse' description: Query Feeds Response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Query feeds tags: - product:feeds /api/v2/feeds/feeds/rate_limits: get: description: 'Retrieve current rate limit status for feeds operations. Returns information about limits, usage, and remaining quota for various feed operations. ' operationId: GetFeedsRateLimits parameters: - in: query name: endpoints schema: description: Comma-separated list of endpoint names to filter (optional, returns all if empty) title: Endpoints type: string writeOnly: true x-stream-index: '001' - in: query name: android schema: description: Include Android platform limits title: Android type: boolean writeOnly: true x-stream-index: '002' - in: query name: ios schema: description: Include iOS platform limits title: iOS type: boolean writeOnly: true x-stream-index: '003' - in: query name: web schema: description: Include Web platform limits title: Web type: boolean writeOnly: true x-stream-index: '004' - in: query name: server_side schema: description: Include server-side platform limits title: Server Side type: boolean writeOnly: true x-stream-index: '005' responses: '200': content: application/json: schema: $ref: '#/components/schemas/GetFeedsRateLimitsResponse' description: Get Feeds Rate Limits Response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Get Feeds Rate Limits tags: - product:feeds /api/v2/feeds/follows: patch: description: 'Updates a follow''s custom data, push preference, and follower role. Source owner can update custom data and push preference. Follower role can only be updated via server-side requests. ' operationId: UpdateFollow requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateFollowRequest' description: Update Follow Request required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/UpdateFollowResponse' description: Update Follow Response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Update a follow tags: - product:feeds post: description: 'Creates a follow and broadcasts FollowAddedEvent ' operationId: Follow requestBody: content: application/json: schema: $ref: '#/components/schemas/FollowRequest' description: Follow Request required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/SingleFollowResponse' description: Follow Response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Create a follow tags: - product:feeds /api/v2/feeds/follows/{source}/{target}: delete: description: 'Removes a follow and broadcasts FollowRemovedEvent ' operationId: Unfollow parameters: - in: path name: source required: true schema: description: Fully qualified ID of the source feed maxLength: 255 title: Source Feed type: string writeOnly: true x-stream-index: '001' - in: path name: target required: true schema: description: Fully qualified ID of the target feed maxLength: 255 title: Target Feed type: string writeOnly: true x-stream-index: '002' - in: query name: delete_notification_activity schema: description: 'Whether to delete the corresponding notification activity (default: false)' title: Delete Notification Activity type: boolean writeOnly: true x-stream-index: '003' - in: query name: keep_history schema: description: 'When true, activities from the unfollowed feed will remain in the source feed''s timeline (default: false)' title: Keep History type: boolean writeOnly: true x-stream-index: '004' - in: query name: enrich_own_fields schema: description: If true, enriches the follow's source_feed and target_feed with own_* fields (own_follows, own_followings, own_capabilities, own_membership). Defaults to false for performance. title: Enrich Own Fields type: boolean writeOnly: true x-stream-index: '005' responses: '200': content: application/json: schema: $ref: '#/components/schemas/UnfollowResponse' description: Unfollow Response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Unfollow a feed tags: - product:feeds /api/v2/feeds/follows/accept: post: description: 'Accepts a pending follow request ' operationId: AcceptFollow requestBody: content: application/json: schema: $ref: '#/components/schemas/AcceptFollowRequest' description: Accept Follow Request required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/AcceptFollowResponse' description: Accept Follow Response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Accept a follow request tags: - product:feeds /api/v2/feeds/follows/batch: post: description: 'Creates multiple follows at once and broadcasts FollowAddedEvent for each follow ' operationId: FollowBatch requestBody: content: application/json: schema: $ref: '#/components/schemas/FollowBatchRequest' description: Follow Batch Request required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/FollowBatchResponse' description: Follow Batch Response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Create multiple follows at once tags: - product:feeds /api/v2/feeds/follows/batch/upsert: post: description: 'Creates or updates multiple follows at once. Does not return an error if follows already exist. Broadcasts FollowAddedEvent only for newly created follows. ' operationId: GetOrCreateFollows requestBody: content: application/json: schema: $ref: '#/components/schemas/FollowBatchRequest' description: Follow Batch Request required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/FollowBatchResponse' description: Follow Batch Response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Upsert multiple follows at once tags: - product:feeds /api/v2/feeds/follows/query: post: description: 'Query follows based on filters with pagination and sorting options ' operationId: QueryFollows requestBody: content: application/json: schema: $ref: '#/components/schemas/QueryFollowsRequest' description: Query Follows Request required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/QueryFollowsResponse' description: Query Follows Response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Query follows tags: - product:feeds /api/v2/feeds/follows/reject: post: description: 'Rejects a pending follow request ' operationId: RejectFollow requestBody: content: application/json: schema: $ref: '#/components/schemas/RejectFollowRequest' description: Reject Follow Request required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/RejectFollowResponse' description: Reject Follow Response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Reject a follow request tags: - product:feeds /api/v2/feeds/membership_levels: post: description: 'Create a new membership level with tag-based access controls ' operationId: CreateMembershipLevel requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateMembershipLevelRequest' description: Create Membership Level Request required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/CreateMembershipLevelResponse' description: Create Membership Level Response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Create membership level tags: - product:feeds /api/v2/feeds/membership_levels/{id}: delete: description: 'Delete a membership level by its UUID. This operation is irreversible. ' operationId: DeleteMembershipLevel parameters: - in: path name: id required: true schema: description: The UUID of the membership level to delete maxLength: 255 title: ID type: string writeOnly: true x-stream-index: '001' responses: '200': content: application/json: schema: $ref: '#/components/schemas/Response' description: Response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Delete membership level tags: - product:feeds patch: description: 'Update a membership level with partial updates. Only specified fields will be updated. ' operationId: UpdateMembershipLevel parameters: - in: path name: id required: true schema: type: string writeOnly: true x-stream-index: '001' requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateMembershipLevelRequest' description: Update Membership Level Request required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/UpdateMembershipLevelResponse' description: Update Membership Level Response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Update membership level tags: - product:feeds /api/v2/feeds/membership_levels/query: post: description: 'Query membership levels with filter query ' operationId: QueryMembershipLevels requestBody: content: application/json: schema: $ref: '#/components/schemas/QueryMembershipLevelsRequest' description: Query Membership Levels Request required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/QueryMembershipLevelsResponse' description: Query Membership Levels Response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Query membership levels tags: - product:feeds /api/v2/feeds/revisions/query: post: description: 'Queries revision history for activities and comments ' operationId: QueryRevisionHistory requestBody: content: application/json: schema: $ref: '#/components/schemas/QueryRevisionHistoryRequest' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/QueryRevisionHistoryResponse' description: Successful response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Query revision history tags: - product:feeds /api/v2/feeds/stats/usage: post: description: 'Retrieve usage statistics for feeds including activity count, follow count, and API request count. Returns data aggregated by day with pagination support via from/to date parameters. This endpoint is server-side only. ' operationId: QueryFeedsUsageStats requestBody: content: application/json: schema: $ref: '#/components/schemas/QueryFeedsUsageStatsRequest' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/QueryFeedsUsageStatsResponse' description: Successful response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Query Feed Usage Statistics tags: - product:feeds /api/v2/feeds/unfollow/batch: post: description: 'Removes multiple follows at once and broadcasts FollowRemovedEvent for each one ' operationId: UnfollowBatch requestBody: content: application/json: schema: $ref: '#/components/schemas/UnfollowBatchRequest' description: Unfollow Batch Request required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/UnfollowBatchResponse' description: Unfollow Batch Response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Unfollow multiple feeds at once tags: - product:feeds /api/v2/feeds/unfollow/batch/upsert: post: description: 'Removes multiple follows and broadcasts FollowRemovedEvent for each. Does not return an error if follows don''t exist. ' operationId: GetOrCreateUnfollows requestBody: content: application/json: schema: $ref: '#/components/schemas/UnfollowBatchRequest' description: Unfollow Batch Request required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/UnfollowBatchResponse' description: Unfollow Batch Response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Unfollow multiple feeds (idempotent) tags: - product:feeds /api/v2/feeds/users/{user_id}/delete: post: description: 'Delete all feed data for a user including: feeds, activities, follows, comments, feed reactions, bookmark folders, bookmarks, and collections owned by the user ' operationId: DeleteFeedUserData parameters: - in: path name: user_id required: true schema: type: string writeOnly: true x-stream-index: '001' requestBody: content: application/json: schema: $ref: '#/components/schemas/DeleteFeedUserDataRequest' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/DeleteFeedUserDataResponse' description: Successful response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Delete all feed data for a user tags: - product:feeds /api/v2/feeds/users/{user_id}/export: post: description: 'Export all feed data for a user including: user profile, feeds, activities, follows, comments, feed reactions, bookmark folders, bookmarks, and collections owned by the user ' operationId: ExportFeedUserData parameters: - in: path name: user_id required: true schema: type: string writeOnly: true x-stream-index: '001' responses: '201': content: application/json: schema: $ref: '#/components/schemas/ExportFeedUserDataResponse' description: Successful response '400': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Bad request '429': content: application/json: schema: $ref: '#/components/schemas/APIError' description: Too many requests summary: Export all feed data for a user tags: - product:feeds components: schemas: FeedVisibilityResponse: properties: grants: additionalProperties: items: type: string type: array description: Permission grants for each role title: Grants type: object x-stream-index: '002' name: description: Name of the feed visibility level title: Name type: string x-stream-index: '001' permissions: description: List of permission policies items: $ref: '#/components/schemas/Permission' title: Permissions type: array x-stream-index: '003' required: - name - grants - permissions title: Feed Visibility Response type: object AggregationConfig: properties: activities_sort: description: 'Order of member activities inside each aggregated group for non-stories feeds: created_at_desc (newest first, default) or created_at_asc (oldest first). Stories feeds ignore this and always use oldest first.' enum: - created_at_asc - created_at_desc title: Activities Sort type: string x-stream-index: '003' format: description: Format for activity aggregation minLength: 1 title: Format type: string x-stream-index: '001' score_strategy: description: 'Strategy for computing aggregated group scores from member activity scores when ranking is enabled. Valid values: sum, max, avg' enum: - sum - max - avg title: Score Strategy type: string x-stream-index: '002' title: Aggregation Configuration type: object UpsertCollectionsResponse: nullable: true properties: collections: description: List of upserted collections items: $ref: '#/components/schemas/CollectionResponse' title: Collections type: array x-stream-index: '001' duration: type: string x-stream-index: '002.001' required: - collections - duration title: Upsert Collections Response type: object ThreadedCommentResponse: description: A comment with an optional, depth‑limited slice of nested replies. properties: attachments: items: $ref: '#/components/schemas/Attachment' type: array x-stream-index: '001.011' bookmark_count: format: int32 type: integer x-stream-index: '001.022' confidence_score: format: float type: number x-stream-index: '001.024' controversy_score: format: float type: number x-stream-index: '001.025' created_at: format: date-time type: number x-stream-index: '001.014' custom: additionalProperties: {} type: object x-stream-index: '001.006' deleted_at: format: date-time type: number x-stream-index: '001.017' downvote_count: format: int32 type: integer x-stream-index: '001.021' edited_at: format: date-time type: number x-stream-index: '001.016' id: type: string x-stream-index: '001.001' latest_reactions: items: $ref: '#/components/schemas/FeedsReactionResponse' type: array x-stream-index: '001.009' mentioned_users: items: $ref: '#/components/schemas/UserResponse' type: array x-stream-index: '001.012' meta: $ref: '#/components/schemas/RepliesMeta' description: Pagination & depth info for this node's direct replies. title: Replies Meta x-stream-index: '002' moderation: $ref: '#/components/schemas/ModerationV2Response' x-stream-index: '001.018' object_id: type: string x-stream-index: '001.002' object_type: type: string x-stream-index: '001.003' own_reactions: items: $ref: '#/components/schemas/FeedsReactionResponse' type: array x-stream-index: '001.026' parent_id: type: string x-stream-index: '001.007' reaction_count: format: int32 type: integer x-stream-index: '001.008' reaction_groups: additionalProperties: $ref: '#/components/schemas/FeedsReactionGroupResponse' type: object x-stream-index: '001.010' replies: description: Slice of nested comments (may be empty). items: $ref: '#/components/schemas/ThreadedCommentResponse' title: Replies type: array x-stream-index: '003' reply_count: format: int32 type: integer x-stream-index: '001.019' score: format: int32 type: integer x-stream-index: '001.023' status: description: 'Status of the comment. One of: active, deleted, removed, hidden' enum: - active - deleted - removed - hidden - shadow_blocked title: Status type: string x-stream-index: '001.013' text: type: string x-stream-index: '001.005' updated_at: format: date-time type: number x-stream-index: '001.015' upvote_count: format: int32 type: integer x-stream-index: '001.020' user: $ref: '#/components/schemas/UserResponse' x-stream-index: '001.004' required: - id - object_id - object_type - user - reaction_count - mentioned_users - status - created_at - updated_at - reply_count - upvote_count - downvote_count - bookmark_count - score - confidence_score - own_reactions title: Threaded Comment Response type: object EnrichedCollectionResponse: properties: created_at: description: When the collection was created format: date-time title: Created At type: number x-stream-index: '001.005' custom: additionalProperties: {} description: Custom data for the collection title: Custom Data type: object x-stream-index: '001.003' id: description: Unique identifier for the collection within its name title: ID type: string x-stream-index: '001.002' name: description: Name/type of the collection title: Name type: string x-stream-index: '001.001' status: description: 'Enrichment status of the collection. One of: ok, notfound' enum: - ok - notfound title: Status type: string x-stream-index: '002' updated_at: description: When the collection was last updated format: date-time title: Updated At type: number x-stream-index: '001.006' user_id: description: ID of the user who owns this collection title: User ID type: string x-stream-index: '001.004' required: - name - id - status title: Enriched Collection Response type: object ActivityPinResponse: properties: activity: $ref: '#/components/schemas/ActivityResponse' description: The pinned activity title: Activity x-stream-index: '002' created_at: description: When the pin was created format: date-time title: Created At type: number x-stream-index: '004' feed: description: ID of the feed where activity is pinned title: Feed ID type: string x-stream-index: '003' updated_at: description: When the pin was last updated format: date-time title: Updated At type: number x-stream-index: '005' user: $ref: '#/components/schemas/UserResponse' description: User who pinned the activity title: User x-stream-index: '001' required: - user - activity - feed - created_at - updated_at title: Activity Pin type: object PinActivityResponse: nullable: true properties: activity: $ref: '#/components/schemas/ActivityResponse' description: The pinned activity title: Activity x-stream-index: '001' created_at: description: When the activity was pinned format: date-time title: Created At type: number x-stream-index: '004' duration: type: string x-stream-index: '005.001' feed: description: Fully qualified ID of the feed the activity was pinned to title: Feed ID type: string x-stream-index: '002' user_id: description: ID of the user who pinned the activity title: User ID type: string x-stream-index: '003' required: - activity - feed - user_id - created_at - duration title: Pin Activity Response type: object RestoreCommentRequest: nullable: true properties: user: $ref: '#/components/schemas/UserRequest' x-stream-index: '003.002' user_id: type: string x-stream-index: '003.001' title: Restore Comment Request type: object QueryActivityReactionsRequest: nullable: true properties: filter: additionalProperties: {} type: object x-stream-index: '002' limit: format: int32 maximum: 100 minimum: 0 type: integer x-stream-index: '004.001' next: type: string x-stream-index: '004.002' prev: type: string x-stream-index: '004.003' sort: items: $ref: '#/components/schemas/SortParamRequest' maxItems: 5 type: array x-stream-index: '003' type: object PinActivityRequest: nullable: true properties: enrich_own_fields: description: If true, enriches the activity's current_feed with own_* fields (own_follows, own_followings, own_capabilities, own_membership). Defaults to false for performance. title: Enrich Own Fields type: boolean x-stream-index: '004' user: $ref: '#/components/schemas/UserRequest' x-stream-index: '006.002' user_id: type: string x-stream-index: '006.001' title: Pin Activity Request type: object UpdateBookmarkResponse: nullable: true properties: bookmark: $ref: '#/components/schemas/BookmarkResponse' description: The updated bookmark title: Bookmark x-stream-index: '001' duration: type: string x-stream-index: '002.001' required: - bookmark - duration title: Update Bookmark Response type: object UpdateCommentRequest: nullable: true properties: attachments: description: Updated media attachments for the comment. Providing this field will replace all existing attachments. items: $ref: '#/components/schemas/Attachment' title: Attachments type: array x-stream-index: '003' comment: description: Updated text content of the comment title: Comment type: string x-stream-index: '002' copy_custom_to_notification: deprecated: true description: 'Whether to copy custom data to the notification activity (only applies when handle_mention_notifications creates notifications) Deprecated: use notification_context.trigger.custom and notification_context.target.custom instead' title: Copy Custom To Notification type: boolean x-stream-index: 009 custom: additionalProperties: {} description: Updated custom data for the comment title: Custom Data type: object x-stream-index: '004' force_moderation: description: If true, forces moderation to run for server-side requests. By default, server-side requests skip moderation. Client-side requests always run moderation regardless of this field. title: Force Moderation type: boolean x-stream-index: '010' handle_mention_notifications: description: If true, creates notification activities for newly mentioned users and deletes notifications for users no longer mentioned title: Handle Mention Notifications type: boolean x-stream-index: 008 mentioned_user_ids: description: List of user IDs mentioned in the comment items: type: string maxItems: 25 title: Mentioned User IDs type: array x-stream-index: '005' skip_enrich_url: description: Whether to skip URL enrichment for this comment title: Skip URL Enrichment type: boolean x-stream-index: '007' skip_push: type: boolean x-stream-index: '006' user: $ref: '#/components/schemas/UserRequest' x-stream-index: '011.002' user_id: type: string x-stream-index: '011.001' title: Update Comment Request type: object DeleteCollectionsResponse: nullable: true properties: duration: type: string x-stream-index: '001.001' required: - duration title: Delete Collections Response type: object UpdateCommentPartialResponse: nullable: true properties: comment: $ref: '#/components/schemas/CommentResponse' description: The updated comment title: CommentResponse x-stream-index: '001' duration: type: string x-stream-index: '002.001' required: - comment - duration type: object NotificationTrigger: properties: comment: $ref: '#/components/schemas/NotificationComment' description: Information about the comment that triggered the notification (for comment and comment_reply types) title: Comment x-stream-index: '003' custom: additionalProperties: {} description: Custom data from the trigger object (comment, reaction, etc.) title: Custom Data type: object x-stream-index: '004' text: description: Human-readable text describing the notification title: Notification Text type: string x-stream-index: '002' type: description: The type of notification (mention, reaction, comment, follow, etc.) title: Notification Type type: string x-stream-index: '001' required: - type - text title: NotificationTrigger type: object CreateMembershipLevelResponse: nullable: true properties: duration: type: string x-stream-index: '002.001' membership_level: $ref: '#/components/schemas/MembershipLevelResponse' description: The created membership level title: Membership Level x-stream-index: '001' required: - membership_level - duration title: Create Membership Level Response type: object APIError: nullable: true properties: StatusCode: description: Response HTTP status code format: int32 title: Status code type: integer x-stream-index: '004' code: description: API error code format: int32 title: Code type: integer x-stream-index: '001' details: description: Additional error-specific information items: type: integer title: Details type: array x-stream-index: '007' duration: description: Request duration title: Duration type: string x-stream-index: '005' exception_fields: additionalProperties: type: string description: Additional error info title: Exception fields type: object x-stream-index: '003' message: description: Message describing an error title: Message type: string x-stream-index: '002' more_info: description: URL with additional information title: More info type: string x-stream-index: '006' unrecoverable: description: Flag that indicates if the error is unrecoverable, requests that return unrecoverable errors should not be retried, this error only applies to the request that caused it title: Unrecoverable type: boolean x-stream-index: 008 required: - code - message - StatusCode - duration - more_info - details title: Error response type: object CreateMembershipLevelRequest: nullable: true properties: custom: additionalProperties: {} description: Custom data for the membership level title: Custom Data type: object x-stream-index: '006' description: description: Optional description of the membership level maxLength: 1000 title: Description type: string x-stream-index: '003' id: description: Unique identifier for the membership level maxLength: 255 title: ID type: string x-stream-index: '001' name: description: Display name for the membership level maxLength: 255 title: Name type: string x-stream-index: '002' priority: description: Priority level (higher numbers = higher priority) format: int32 minimum: 0 title: Priority type: integer x-stream-index: '004' tags: description: Activity tags this membership level gives access to items: type: string title: Tags type: array x-stream-index: '005' required: - id - name title: Create Membership Level Request type: object QueryRevisionHistoryResponse: nullable: true properties: duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: '003.001' next: type: string x-stream-index: '002.001' prev: type: string x-stream-index: '002.002' revisions: description: Revision history entries items: $ref: '#/components/schemas/RevisionHistoryResponse' title: RevisionHistoryResponseList type: array x-stream-index: '001' required: - revisions - duration type: object AcceptFeedMemberInviteResponse: nullable: true properties: duration: type: string x-stream-index: '002.001' member: $ref: '#/components/schemas/FeedMemberResponse' description: The feed member after accepting the invite title: Feed Member x-stream-index: '001' required: - member - duration title: Accept Feed Member Invite Response type: object DeleteBookmarkFolderResponse: nullable: true properties: duration: type: string x-stream-index: '001.001' required: - duration title: Delete Bookmark Folder Response type: object PollResponseData: properties: allow_answers: type: boolean x-stream-index: 008 allow_user_suggested_options: type: boolean x-stream-index: '007' answers_count: format: int32 type: integer x-stream-index: '012' created_at: format: date-time type: number x-stream-index: 019 created_by: $ref: '#/components/schemas/UserResponse' x-stream-index: 018 created_by_id: type: string x-stream-index: '017' custom: additionalProperties: {} type: object x-stream-index: '021' description: type: string x-stream-index: '003' enforce_unique_vote: type: boolean x-stream-index: '005' id: type: string x-stream-index: '001' is_closed: type: boolean x-stream-index: 009 latest_answers: items: $ref: '#/components/schemas/PollVoteResponseData' type: array x-stream-index: '015' latest_votes_by_option: additionalProperties: items: $ref: '#/components/schemas/PollVoteResponseData' type: array type: object x-stream-index: '014' max_votes_allowed: format: int32 type: integer x-stream-index: '006' name: type: string x-stream-index: '002' options: items: $ref: '#/components/schemas/PollOptionResponseData' type: array x-stream-index: '011' own_votes: items: $ref: '#/components/schemas/PollVoteResponseData' type: array x-stream-index: '016' updated_at: format: date-time type: number x-stream-index: '020' vote_count: format: int32 type: integer x-stream-index: '010' vote_counts_by_option: additionalProperties: format: int32 type: integer type: object x-stream-index: '013' voting_visibility: type: string x-stream-index: '004' required: - id - name - description - voting_visibility - enforce_unique_vote - allow_user_suggested_options - allow_answers - vote_count - options - answers_count - vote_counts_by_option - latest_votes_by_option - latest_answers - own_votes - created_by_id - created_at - updated_at - custom type: object AddCommentsBatchResponse: nullable: true properties: comments: description: List of comments added items: $ref: '#/components/schemas/CommentResponse' title: Comments type: array x-stream-index: '001' duration: type: string x-stream-index: '002.001' required: - comments - duration title: Add Comments Batch Response type: object FollowResponse: properties: created_at: description: When the follow relationship was created format: date-time title: Created At type: number x-stream-index: 009 custom: additionalProperties: {} description: Custom data for the follow relationship title: Custom Data type: object x-stream-index: '004' follower_role: description: Role of the follower (source user) in the follow relationship title: Follower Role type: string x-stream-index: 008 push_preference: description: 'Push preference for notifications. One of: all, none' enum: - all - none title: Push Preference type: string x-stream-index: '003' request_accepted_at: description: When the follow request was accepted format: date-time title: Request Accepted At type: number x-stream-index: '005' request_rejected_at: description: When the follow request was rejected format: date-time title: Request Rejected At type: number x-stream-index: '006' source_feed: $ref: '#/components/schemas/FeedResponse' description: Source feed object title: Source Feed x-stream-index: '001' status: description: 'Status of the follow relationship. One of: accepted, pending, rejected' enum: - accepted - pending - rejected title: Status type: string x-stream-index: '007' target_feed: $ref: '#/components/schemas/FeedResponse' description: Target feed object title: Target Feed x-stream-index: '002' updated_at: description: When the follow relationship was last updated format: date-time title: Updated At type: number x-stream-index: '010' required: - source_feed - target_feed - push_preference - status - follower_role - created_at - updated_at title: Follow type: object NotificationConfig: properties: deduplication_window: description: 'Time window for deduplicating notification activities (reactions and follows). Empty or ''0'' = always deduplicate (default). Examples: ''1h'', ''24h'', ''7d'', ''1w''' title: Deduplication Window type: string x-stream-index: '003' track_read: description: Whether to track read status title: Track Read type: boolean x-stream-index: '002' track_seen: description: Whether to track seen status title: Track Seen type: boolean x-stream-index: '001' title: Notification Configuration type: object DeleteBookmarkResponse: nullable: true properties: bookmark: $ref: '#/components/schemas/BookmarkResponse' description: The deleted bookmark title: Bookmark x-stream-index: '001' duration: type: string x-stream-index: '002.001' required: - bookmark - duration title: Delete Bookmark Response type: object BookmarkResponse: properties: activity: $ref: '#/components/schemas/ActivityResponse' description: The bookmarked activity (set when object_type is activity) title: Activity x-stream-index: '004' activity_id: type: string x-stream-index: '010' comment: $ref: '#/components/schemas/CommentResponse' description: The bookmarked comment (set when object_type is comment) title: Comment x-stream-index: '005' created_at: description: When the bookmark was created format: date-time title: Created At type: number x-stream-index: 008 custom: additionalProperties: {} description: Custom data for the bookmark title: Custom Data type: object x-stream-index: '007' folder: $ref: '#/components/schemas/BookmarkFolderResponse' description: Folder containing this bookmark title: Folder x-stream-index: '006' object_id: description: ID of the bookmarked object title: Object ID type: string x-stream-index: '002' object_type: description: Type of the bookmarked object (activity or comment) title: Object Type type: string x-stream-index: '001' updated_at: description: When the bookmark was last updated format: date-time title: Updated At type: number x-stream-index: 009 user: $ref: '#/components/schemas/UserResponse' description: User who created the bookmark title: User x-stream-index: '003' required: - object_type - object_id - user - activity - created_at - updated_at title: Bookmark type: object FeedMemberRequest: properties: custom: additionalProperties: {} description: Custom data for the member title: Custom Data type: object x-stream-index: '004' invite: description: Whether this is an invite to become a member title: Invite type: boolean x-stream-index: '005' membership_level: description: ID of the membership level to assign to the member maxLength: 255 title: Membership Level type: string x-stream-index: '003' role: description: Role of the member in the feed maxLength: 255 title: Role type: string x-stream-index: '002' user_id: description: ID of the user to add as a member maxLength: 255 title: User ID type: string x-stream-index: '001' required: - user_id title: Feed Member Payload type: object ListFeedVisibilitiesResponse: nullable: true properties: duration: type: string x-stream-index: '002.001' feed_visibilities: additionalProperties: $ref: '#/components/schemas/FeedVisibilityResponse' description: Map of feed visibility configurations by name title: Feed Visibilities type: object x-stream-index: '001' required: - feed_visibilities - duration title: List Feed Visibilities Response type: object EMAUStatsResponse: properties: daily: description: Per-day unique engaged user counts items: $ref: '#/components/schemas/DailyMetricResponse' title: Daily type: array x-stream-index: '001' last_30_days: description: Rolling 30-day engaged user count snapshots items: $ref: '#/components/schemas/DailyMetricResponse' title: Last 30 Days type: array x-stream-index: '002' month_to_date: description: Calendar month-to-date engaged user count snapshots items: $ref: '#/components/schemas/DailyMetricResponse' title: Month To Date type: array x-stream-index: '003' required: - daily - last_30_days - month_to_date type: object RejectFeedMemberInviteRequest: nullable: true properties: user: $ref: '#/components/schemas/UserRequest' x-stream-index: '003.002' user_id: type: string x-stream-index: '003.001' title: Reject Feed Member Request type: object CommentResponse: properties: attachments: description: Attachments associated with the comment items: $ref: '#/components/schemas/Attachment' title: Attachments type: array x-stream-index: '011' bookmark_count: format: int32 type: integer x-stream-index: '022' confidence_score: description: Confidence score of the comment format: float title: Confidence Score type: number x-stream-index: '024' controversy_score: description: Controversy score of the comment format: float title: Controversy Score type: number x-stream-index: '025' created_at: description: When the comment was created format: date-time title: Created At type: number x-stream-index: '014' custom: additionalProperties: {} description: Custom data for the comment title: Custom Data type: object x-stream-index: '006' deleted_at: description: When the comment was deleted format: date-time title: Deleted At type: number x-stream-index: '017' downvote_count: description: Number of downvotes for this comment format: int32 title: Downvote Count type: integer x-stream-index: '021' edited_at: description: When the comment was last edited format: date-time title: Edited At type: number x-stream-index: '016' id: description: Unique identifier for the comment title: ID type: string x-stream-index: '001' latest_reactions: description: Recent reactions to the comment items: $ref: '#/components/schemas/FeedsReactionResponse' title: Latest Reactions type: array x-stream-index: 009 mentioned_users: description: Users mentioned in the comment items: $ref: '#/components/schemas/UserResponse' title: Mentioned Users type: array x-stream-index: '012' moderation: $ref: '#/components/schemas/ModerationV2Response' description: Moderation details for the comment title: Moderation x-stream-index: 018 object_id: description: ID of the object this comment is associated with title: Object ID type: string x-stream-index: '002' object_type: description: Type of the object this comment is associated with title: Object Type type: string x-stream-index: '003' own_reactions: description: Current user's reactions to this activity items: $ref: '#/components/schemas/FeedsReactionResponse' title: Own Reactions type: array x-stream-index: '026' parent_id: description: ID of parent comment for nested replies title: Parent ID type: string x-stream-index: '007' reaction_count: description: Number of reactions to this comment format: int32 title: Reaction Count type: integer x-stream-index: 008 reaction_groups: additionalProperties: $ref: '#/components/schemas/FeedsReactionGroupResponse' description: Grouped reactions by type title: Reaction Groups type: object x-stream-index: '010' reply_count: description: Number of replies to this comment format: int32 title: Reply Count type: integer x-stream-index: 019 score: description: Score of the comment based on reactions format: int32 title: Score type: integer x-stream-index: '023' status: description: 'Status of the comment. One of: active, deleted, removed, hidden' enum: - active - deleted - removed - hidden - shadow_blocked title: Status type: string x-stream-index: '013' text: description: Text content of the comment title: Text type: string x-stream-index: '005' updated_at: description: When the comment was last updated format: date-time title: Updated At type: number x-stream-index: '015' upvote_count: description: Number of upvotes for this comment format: int32 title: Upvote Count type: integer x-stream-index: '020' user: $ref: '#/components/schemas/UserResponse' description: User who created the comment title: User x-stream-index: '004' required: - id - object_id - object_type - user - reaction_count - mentioned_users - status - created_at - updated_at - reply_count - upvote_count - downvote_count - bookmark_count - score - confidence_score - own_reactions title: Comment type: object EnrichmentOptions: description: Options to skip specific enrichments to improve performance. Default is false (enrichments are included). Setting a field to true skips that enrichment. properties: enrich_own_followings: description: 'Default: false. When true, includes fetching and enriching own_followings (follows where activity author''s feeds follow current user''s feeds).' title: Enrich Own Followings type: boolean x-stream-index: '016' include_flat_activities: description: Controls the top-level flat 'activities' array for aggregated feeds. For new apps, defaults to false (excluded); set to true to include. For older apps, defaults to true (included) for backward compatibility; set to false to exclude. title: Include Flat Activities type: boolean x-stream-index: '020' include_score_vars: description: 'Default: false. When true, includes score_vars in activity responses containing variable values used at ranking time.' title: Include Score Variables type: boolean x-stream-index: 019 skip_activity: description: 'Default: false. When true, skips all activity enrichments.' title: Skip Activity type: boolean x-stream-index: '001' skip_activity_collections: description: 'Default: false. When true, skips enriching collections on activities.' title: Skip Activity Collections type: boolean x-stream-index: 008 skip_activity_comments: description: 'Default: false. When true, skips enriching comments on activities.' title: Skip Activity Comments type: boolean x-stream-index: '005' skip_activity_current_feed: description: 'Default: false. When true, skips enriching current_feed on activities. Note: CurrentFeed is still computed for permission checks, but enrichment is skipped.' title: Skip Activity Current Feed type: boolean x-stream-index: '010' skip_activity_mentioned_users: description: 'Default: false. When true, skips enriching mentioned users on activities.' title: Skip Activity Mentioned Users type: boolean x-stream-index: '006' skip_activity_own_bookmarks: description: 'Default: false. When true, skips enriching own bookmarks on activities.' title: Skip Activity Own Bookmarks type: boolean x-stream-index: '004' skip_activity_parents: description: 'Default: false. When true, skips enriching parent activities.' title: Skip Activity Parents type: boolean x-stream-index: '002' skip_activity_poll: description: 'Default: false. When true, skips enriching poll data on activities.' title: Skip Activity Poll type: boolean x-stream-index: '007' skip_activity_reactions: description: 'Default: false. When true, skips fetching and enriching latest and own reactions on activities. Note: If reactions are already denormalized in the database, they will still be included.' title: Skip Activity Reactions type: boolean x-stream-index: '003' skip_activity_refresh_image_urls: description: 'Default: false. When true, skips refreshing image URLs on activities.' title: Skip Activity Refresh Image URLs type: boolean x-stream-index: 009 skip_all: description: 'Default: false. When true, skips all enrichments.' title: Skip All type: boolean x-stream-index: 018 skip_feed_member_user: description: 'Default: false. When true, skips enriching user data on feed members.' title: Skip Feed Member User type: boolean x-stream-index: '012' skip_followers: description: 'Default: false. When true, skips fetching and enriching followers. Note: If followers_pagination is explicitly provided, followers will be fetched regardless of this setting.' title: Skip Followers type: boolean x-stream-index: '013' skip_following: description: 'Default: false. When true, skips fetching and enriching following. Note: If following_pagination is explicitly provided, following will be fetched regardless of this setting.' title: Skip Following type: boolean x-stream-index: '014' skip_own_capabilities: description: 'Default: false. When true, skips computing and including capabilities for feeds.' title: Skip Own Capabilities type: boolean x-stream-index: '017' skip_own_follows: description: 'Default: false. When true, skips fetching and enriching own_follows (follows where user''s feeds follow target feeds).' title: Skip Own Follows type: boolean x-stream-index: '015' skip_pins: description: 'Default: false. When true, skips enriching pinned activities.' title: Skip Pins type: boolean x-stream-index: '011' title: Enrichment Options type: object RejectFollowRequest: nullable: true properties: source: description: Fully qualified ID of the source feed maxLength: 255 title: Source Feed ID type: string x-stream-index: '001' target: description: Fully qualified ID of the target feed maxLength: 255 title: Target Feed ID type: string x-stream-index: '002' required: - source - target title: Reject Follow Request type: object NotificationTarget: properties: attachments: description: Attachments on the target activity (for activity targets) items: $ref: '#/components/schemas/Attachment' title: Attachments type: array x-stream-index: '005' comment: $ref: '#/components/schemas/NotificationComment' description: Information about the comment related to the notification (for reactions to comments and comments on comments) title: Comment x-stream-index: '007' custom: additionalProperties: {} description: Custom data from the target activity title: Custom Data type: object x-stream-index: 009 id: description: The ID of the target (activity ID or user ID) title: Target ID type: string x-stream-index: '001' name: description: The name of the target user (for user targets like follows) title: User Name type: string x-stream-index: '006' parent_activity: $ref: '#/components/schemas/NotificationParentActivity' description: The parent of the target activity (e.g. when target is a share/repost with no text) title: Parent Activity x-stream-index: 008 text: description: The text content of the target activity (for activity targets) title: Activity Text type: string x-stream-index: '004' type: description: The type of the target activity (for activity targets) title: Activity Type type: string x-stream-index: '003' user_id: description: The ID of the user who created the target activity (for activity targets) title: User ID type: string x-stream-index: '002' required: - id title: NotificationTarget type: object CreateFeedViewRequest: nullable: true properties: activity_selectors: description: Configuration for selecting activities items: $ref: '#/components/schemas/ActivitySelectorConfig' title: Activity Selectors type: array x-stream-index: '002.001' aggregation: $ref: '#/components/schemas/AggregationConfig' description: Configuration for aggregating activities title: Aggregation x-stream-index: '002.003' id: description: Unique identifier for the feed view maxLength: 255 title: View ID type: string x-stream-index: '001' ranking: $ref: '#/components/schemas/RankingConfig' description: Configuration for ranking activities title: Ranking x-stream-index: '002.002' required: - id title: Create Feed View Request type: object UpdateActivityPartialResponse: nullable: true properties: activity: $ref: '#/components/schemas/ActivityResponse' description: The updated activity title: ActivityResponse x-stream-index: '001' duration: type: string x-stream-index: '002.001' required: - activity - duration type: object QueryCommentReactionsResponse: description: Basic response information nullable: true properties: duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: '003.001' next: type: string x-stream-index: '002.001' prev: type: string x-stream-index: '002.002' reactions: items: $ref: '#/components/schemas/FeedsReactionResponse' type: array x-stream-index: '001' required: - reactions - duration title: Response type: object FollowBatchRequest: nullable: true properties: create_users: description: If true, auto-creates users referenced by source/target FIDs in the batch when they don't already exist. Server-side only. Defaults to false. This top-level field is the only supported batch/upsert create_users control. title: Create Users type: boolean x-stream-index: '003' enrich_own_fields: description: If true, enriches the follow's source_feed and target_feed with own_* fields (own_follows, own_followings, own_capabilities, own_membership). Defaults to false for performance. title: Enrich Own Fields type: boolean x-stream-index: '002' follows: description: List of follow relationships to create items: $ref: '#/components/schemas/FollowRequest' maxItems: 1000 minItems: 1 title: Follows type: array x-stream-index: '001' required: - follows title: Follow Batch Request type: object QueryFeedsResponse: nullable: true properties: duration: type: string x-stream-index: '003.001' feeds: description: List of feeds matching the query items: $ref: '#/components/schemas/FeedResponse' title: Feeds type: array x-stream-index: '001' next: description: Cursor for next page title: Next type: string x-stream-index: '002.001' prev: description: Cursor for previous page title: Previous type: string x-stream-index: '002.002' required: - feeds - duration title: Query Feeds Response type: object GetOrCreateFeedViewRequest: nullable: true properties: activity_selectors: description: Configuration for selecting activities items: $ref: '#/components/schemas/ActivitySelectorConfig' title: Activity Selectors type: array x-stream-index: '002.001' aggregation: $ref: '#/components/schemas/AggregationConfig' description: Configuration for aggregating activities title: Aggregation x-stream-index: '002.003' ranking: $ref: '#/components/schemas/RankingConfig' description: Configuration for ranking activities title: Ranking x-stream-index: '002.002' title: Get Or Create Feed View Request type: object VoteData: properties: answer_text: type: string x-stream-index: '002' option_id: maxLength: 255 type: string x-stream-index: '001' type: object QueryBookmarksResponse: nullable: true properties: bookmarks: description: List of bookmarks matching the query items: $ref: '#/components/schemas/BookmarkResponse' title: Bookmarks type: array x-stream-index: '001' duration: type: string x-stream-index: '003.001' next: description: Cursor for next page title: Next type: string x-stream-index: '002.001' prev: description: Cursor for previous page title: Previous type: string x-stream-index: '002.002' required: - bookmarks - duration title: Query Bookmarks Response type: object ChangeFeedVisibilityRequest: nullable: true properties: pending_follows_action: description: 'What to do with existing pending follows when loosening visibility from ''followers'': auto_approve (default) or reject' enum: - auto_approve - reject title: Pending Follows Action type: string x-stream-index: '004' visibility: description: 'Feed visibility level: public, visible, followers, members, or private' enum: - public - visible - followers - members - private title: Visibility type: string x-stream-index: '003' required: - visibility title: Change Feed Visibility Request type: object UpdateFeedMembersRequest: nullable: true properties: limit: format: int32 maximum: 100 minimum: 0 type: integer x-stream-index: '006.001' members: description: List of members to upsert, remove, or set items: $ref: '#/components/schemas/FeedMemberRequest' title: Members type: array x-stream-index: '004' next: type: string x-stream-index: '006.002' operation: description: 'Type of update operation to perform. One of: upsert, remove, set' enum: - upsert - remove - set title: Operation type: string x-stream-index: '003' prev: type: string x-stream-index: '006.003' required: - operation title: Update Feed Members Request type: object UpdateCollectionsRequest: nullable: true properties: collections: description: List of collections to update (only custom data is updatable) items: $ref: '#/components/schemas/UpdateCollectionRequest' maxItems: 100 minItems: 1 title: Collections type: array x-stream-index: '001' user: $ref: '#/components/schemas/UserRequest' x-stream-index: '002.002' user_id: type: string x-stream-index: '002.001' required: - collections title: Update Collections Request type: object PollVoteResponseData: nullable: true properties: answer_text: type: string x-stream-index: '005' created_at: format: date-time type: number x-stream-index: 008 id: type: string x-stream-index: '002' is_answer: type: boolean x-stream-index: '004' option_id: type: string x-stream-index: '003' poll_id: type: string x-stream-index: '001' updated_at: format: date-time type: number x-stream-index: 009 user: $ref: '#/components/schemas/UserResponse' x-stream-index: '007' user_id: type: string x-stream-index: '006' required: - poll_id - id - option_id - created_at - updated_at type: object SingleFollowResponse: nullable: true properties: duration: type: string x-stream-index: '003.001' follow: $ref: '#/components/schemas/FollowResponse' description: The created follow relationship title: Follow x-stream-index: '001' notification_created: description: Whether a notification activity was successfully created title: Notification Created type: boolean x-stream-index: '002' required: - follow - duration title: Follow Response type: object ActivitySelectorConfigResponse: properties: cutoff_time: description: Time threshold for activity selection (timestamp) format: date-time title: Cutoff Time type: number x-stream-index: '004' cutoff_window: description: Flexible relative time window for activity selection (e.g., '1h', '3d', '1y') title: Cutoff Window type: string x-stream-index: '005' filter: additionalProperties: {} description: Filter for activity selection title: Filter type: object x-stream-index: '002' min_popularity: description: Minimum popularity threshold. For the 'popular' selector, values below 1 are normalized to the default (5) at read time. format: int32 title: Minimum Popularity type: integer x-stream-index: '006' params: additionalProperties: {} description: Generic params for selector-specific configuration title: Params type: object x-stream-index: '007' sort: description: Sort parameters for activity selection items: $ref: '#/components/schemas/SortParamRequest' title: Sort type: array x-stream-index: '003' type: description: Type of selector enum: - popular - proximity - following - current_feed - query - interest - follow_suggestion title: Type type: string x-stream-index: '001' required: - type title: Activity Selector Configuration Response type: object UpdateCommentBookmarkResponse: nullable: true properties: bookmark: $ref: '#/components/schemas/BookmarkResponse' description: The updated comment bookmark title: Bookmark x-stream-index: '001' duration: type: string x-stream-index: '002.001' required: - bookmark - duration title: Update Comment Bookmark Response type: object NotificationComment: properties: attachments: items: $ref: '#/components/schemas/Attachment' type: array x-stream-index: '004' comment: type: string x-stream-index: '003' id: type: string x-stream-index: '001' user_id: type: string x-stream-index: '002' required: - id - user_id - comment type: object CastPollVoteRequest: nullable: true properties: user: $ref: '#/components/schemas/UserRequest' x-stream-index: '005.002' user_id: type: string x-stream-index: '005.001' vote: $ref: '#/components/schemas/VoteData' description: Vote data title: VoteData x-stream-index: '004' type: object UpdateMembershipLevelRequest: description: Partial update request for membership level fields. Only specified fields will be updated. nullable: true properties: custom: additionalProperties: {} description: Custom data for the membership level title: Custom Data type: object x-stream-index: '006' description: description: Optional description of the membership level maxLength: 1000 title: Description type: string x-stream-index: '003' name: description: Display name for the membership level maxLength: 255 title: Name type: string x-stream-index: '002' priority: description: Priority level (higher numbers = higher priority) format: int32 minimum: 0 title: Priority type: integer x-stream-index: '004' tags: description: Activity tags this membership level gives access to items: type: string title: Tags type: array x-stream-index: '005' title: Update Membership Level Request type: object BookmarkFolderResponse: properties: created_at: description: When the folder was created format: date-time title: Created At type: number x-stream-index: '005' custom: additionalProperties: {} description: Custom data for the folder title: Custom Data type: object x-stream-index: '004' id: description: Unique identifier for the folder title: ID type: string x-stream-index: '001' name: description: Name of the folder title: Name type: string x-stream-index: '003' updated_at: description: When the folder was last updated format: date-time title: Updated At type: number x-stream-index: '006' user: $ref: '#/components/schemas/UserResponse' description: User who created the folder title: User x-stream-index: '002' required: - id - user - name - created_at - updated_at title: Bookmark Folder type: object UpdateMembershipLevelResponse: nullable: true properties: duration: type: string x-stream-index: '002.001' membership_level: $ref: '#/components/schemas/MembershipLevelResponse' description: The updated membership level title: Membership Level x-stream-index: '001' required: - membership_level - duration title: Update Membership Level Response type: object AddCommentsBatchRequest: nullable: true properties: comments: description: List of comments to add items: $ref: '#/components/schemas/AddCommentRequest' title: Comments type: array x-stream-index: '001' required: - comments title: Add Comments Batch Request type: object QueryCollectionsResponse: nullable: true properties: collections: description: List of collections matching the query items: $ref: '#/components/schemas/CollectionResponse' title: Collections type: array x-stream-index: '001' duration: type: string x-stream-index: '003.001' next: description: Cursor for next page title: Next type: string x-stream-index: '002.001' prev: description: Cursor for previous page title: Previous type: string x-stream-index: '002.002' required: - collections - duration title: Query Collections Response type: object UpdateFeedGroupResponse: nullable: true properties: duration: type: string x-stream-index: '002.001' feed_group: $ref: '#/components/schemas/FeedGroupResponse' description: The updated feed group title: Feed Group x-stream-index: '001' required: - feed_group - duration title: Update Feed Group Response type: object AddCommentReactionResponse: nullable: true properties: comment: $ref: '#/components/schemas/CommentResponse' description: The comment the reaction was added to title: Comment x-stream-index: '001' duration: description: Duration of the request title: Duration type: string x-stream-index: '004.001' notification_created: description: Whether a notification activity was successfully created title: Notification Created type: boolean x-stream-index: '003' reaction: $ref: '#/components/schemas/FeedsReactionResponse' description: The created or updated reaction title: Reaction x-stream-index: '002' required: - comment - reaction - duration type: object CreateFeedsBatchResponse: nullable: true properties: duration: type: string x-stream-index: '002.001' feeds: description: List of created feeds items: $ref: '#/components/schemas/FeedResponse' title: Feeds type: array x-stream-index: '001' required: - feeds - duration title: Create Feeds Batch Response type: object UpdateCommentResponse: nullable: true properties: comment: $ref: '#/components/schemas/CommentResponse' description: The updated comment title: Comment x-stream-index: '001' duration: type: string x-stream-index: '002.001' required: - comment - duration title: Update Comment Response type: object QueryActivitiesRequest: nullable: true properties: enrich_own_fields: type: boolean x-stream-index: '006' filter: additionalProperties: {} description: Filters to apply to the query. Supports location-based queries with 'near' and 'within_bounds' operators. title: Filter type: object x-stream-index: '001' include_expired_activities: description: When true, include both expired and non-expired activities in the result. title: Include Expired Activities type: boolean x-stream-index: '004' include_private_activities: type: boolean x-stream-index: '003' include_soft_deleted_activities: description: When true, include soft-deleted activities in the result. title: Include Soft Deleted Activities type: boolean x-stream-index: '005' limit: format: int32 maximum: 100 minimum: 0 type: integer x-stream-index: '007.001' next: type: string x-stream-index: '007.002' prev: type: string x-stream-index: '007.003' sort: description: Sorting parameters for the query items: $ref: '#/components/schemas/SortParamRequest' maxItems: 5 title: Sort type: array x-stream-index: '002' user: $ref: '#/components/schemas/UserRequest' x-stream-index: '009.002' user_id: type: string x-stream-index: '009.001' title: Query Activities Request type: object DailyMetricResponse: properties: date: description: Date in YYYY-MM-DD format title: Date type: string x-stream-index: '001' value: description: Metric value for this date format: int64 title: Value type: integer x-stream-index: '002' required: - date - value type: object CreateCollectionsResponse: nullable: true properties: collections: description: List of created collections items: $ref: '#/components/schemas/CollectionResponse' title: Collections type: array x-stream-index: '001' duration: type: string x-stream-index: '002.001' required: - collections - duration title: Create Collections Response type: object GetOrCreateFeedGroupResponse: nullable: true properties: duration: type: string x-stream-index: '003.001' feed_group: $ref: '#/components/schemas/FeedGroupResponse' description: The feed group that was retrieved or created title: Feed Group x-stream-index: '001' was_created: description: Indicates whether the feed group was created (true) or already existed (false) title: Was Created type: boolean x-stream-index: '002' required: - feed_group - was_created - duration title: Get Or Create Feed Group Response type: object ListFeedViewsResponse: nullable: true properties: duration: type: string x-stream-index: '002.001' views: additionalProperties: $ref: '#/components/schemas/FeedViewResponse' description: Map of feed view ID to feed view title: Views type: object x-stream-index: '001' required: - views - duration title: List Feed Views Response type: object UpdateActivityRequest: nullable: true properties: attachments: description: List of attachments for the activity items: $ref: '#/components/schemas/Attachment' title: Attachments type: array x-stream-index: '003' collection_refs: description: Collections that this activity references items: type: string title: Collection Refs type: array x-stream-index: '012' copy_custom_to_notification: deprecated: true description: 'Whether to copy custom data to the notification activity (only applies when handle_mention_notifications creates notifications) Deprecated: use notification_context.trigger.custom and notification_context.target.custom instead' title: Copy Custom To Notification type: boolean x-stream-index: 019 custom: additionalProperties: {} description: Custom data for the activity title: Custom Data type: object x-stream-index: '004' enrich_own_fields: description: If true, enriches the activity's current_feed with own_* fields (own_follows, own_followings, own_capabilities, own_membership). Defaults to false for performance. title: Enrich Own Fields type: boolean x-stream-index: '021' expires_at: description: Time when the activity will expire format: date-time title: Expires At type: number x-stream-index: 009 feeds: description: List of feeds the activity is present in items: type: string title: Feeds type: array x-stream-index: '014' filter_tags: description: Tags used for filtering the activity items: type: string maxItems: 50 title: Filter Tags type: array x-stream-index: '010' force_moderation: description: If true, forces moderation to run for server-side requests. By default, server-side requests skip moderation. Client-side requests always run moderation regardless of this field. title: Force Moderation type: boolean x-stream-index: '022' handle_mention_notifications: description: If true, creates notification activities for newly mentioned users and deletes notifications for users no longer mentioned title: Handle Mention Notifications type: boolean x-stream-index: '017' interest_tags: description: Tags indicating interest categories items: type: string title: Interest Tags type: array x-stream-index: '011' location: $ref: '#/components/schemas/Location' description: Geographic location for the activity title: Location x-stream-index: 008 mentioned_user_ids: description: List of user IDs mentioned in the activity items: type: string maxItems: 25 title: Mentioned User IDs type: array x-stream-index: '016' poll_id: description: Poll ID title: Poll ID type: string x-stream-index: '013' restrict_replies: description: 'Controls who can add comments/replies to this activity. One of: everyone, people_i_follow, nobody' enum: - everyone - people_i_follow - nobody title: Restrict Replies type: string x-stream-index: '007' run_activity_processors: description: If true, runs activity processors on the updated activity. Processors will only run if the activity text and/or attachments are changed. Defaults to false. title: Run Activity Processors type: boolean x-stream-index: 018 search_data: additionalProperties: {} description: Additional data for search indexing title: Search Data type: object x-stream-index: '020' skip_enrich_url: description: Whether to skip URL enrichment for the activity title: Skip URL Enrichment type: boolean x-stream-index: '015' text: description: The text content of the activity title: Text type: string x-stream-index: '002' user: $ref: '#/components/schemas/UserRequest' x-stream-index: '024.002' user_id: type: string x-stream-index: '024.001' visibility: description: Visibility setting for the activity enum: - public - private - tag title: Visibility type: string x-stream-index: '005' visibility_tag: description: If visibility is 'tag', this is the tag name and is required maxLength: 32 title: Visibility Tag type: string x-stream-index: '006' type: object GetCommentResponse: nullable: true properties: comment: $ref: '#/components/schemas/CommentResponse' description: Comment title: Comment x-stream-index: '001' duration: type: string x-stream-index: '002.001' required: - comment - duration title: Get Comment Response type: object TrackActivityMetricsRequest: description: Batch request to track metric events for activities. Rate-limited per user/IP per activity per metric. nullable: true properties: events: description: List of metric events to track (max 100 per request) items: $ref: '#/components/schemas/TrackActivityMetricsEvent' maxItems: 100 minItems: 1 title: Events type: array x-stream-index: '001' user: $ref: '#/components/schemas/UserRequest' x-stream-index: '002.002' user_id: type: string x-stream-index: '002.001' required: - events title: Track Activity Metrics Request type: object FeedRequest: properties: created_by_id: description: ID of the feed creator title: Created By ID type: string x-stream-index: '003' custom: additionalProperties: {} description: Custom data for the feed title: Custom Data type: object x-stream-index: '004.004' description: description: Description of the feed maxLength: 1000 title: Description type: string x-stream-index: '004.002' feed_group_id: description: ID of the feed group maxLength: 255 title: Feed Group ID type: string x-stream-index: '001' feed_id: description: ID of the feed maxLength: 255 title: Feed ID type: string x-stream-index: '002' filter_tags: description: Tags used for filtering feeds items: type: string title: Filter Tags type: array x-stream-index: '004.006' location: $ref: '#/components/schemas/Location' description: Geographic location for the feed title: Location x-stream-index: '004.005' members: description: Initial members for the feed items: $ref: '#/components/schemas/FeedMemberRequest' title: Members type: array x-stream-index: '004.007' name: description: Name of the feed maxLength: 255 title: Name type: string x-stream-index: '004.001' visibility: description: 'Visibility setting for the feed. One of: public, visible, followers, members, private' enum: - public - visible - followers - members - private title: Visibility type: string x-stream-index: '004.003' required: - feed_group_id - feed_id title: Feed Payload type: object AddCommentRequest: nullable: true properties: attachments: description: Media attachments for the reply items: $ref: '#/components/schemas/Attachment' title: Attachments type: array x-stream-index: '005' comment: description: Text content of the comment title: Comment type: string x-stream-index: '004' copy_custom_to_notification: deprecated: true description: 'Whether to copy custom data to the notification activity (only applies when create_notification_activity is true) Deprecated: use notification_context.trigger.custom and notification_context.target.custom instead' title: Copy Custom To Notification type: boolean x-stream-index: '010' create_notification_activity: description: Whether to create a notification activity for this comment title: Create Notification Activity type: boolean x-stream-index: 009 custom: additionalProperties: {} description: Custom data for the comment title: Custom Data type: object x-stream-index: 008 force_moderation: description: If true, forces moderation to run for server-side requests. By default, server-side requests skip moderation. Client-side requests always run moderation regardless of this field. title: Force Moderation type: boolean x-stream-index: '013' id: description: Optional custom ID for the comment (max 255 characters). If not provided, a UUID will be generated. maxLength: 255 title: Comment ID type: string x-stream-index: '001' mentioned_user_ids: description: List of users mentioned in the reply items: type: string title: Mentioned User IDs type: array x-stream-index: '006' object_id: description: ID of the object to comment on. Required for root comments title: Object ID type: string x-stream-index: '002' object_type: description: Type of the object to comment on. Required for root comments title: Object Type type: string x-stream-index: '003' parent_id: description: ID of parent comment for replies. When provided, object_id and object_type are automatically inherited from the parent comment. title: Parent ID type: string x-stream-index: '007' skip_enrich_url: description: Whether to skip URL enrichment for this comment title: Skip URL Enrichment type: boolean x-stream-index: '012' skip_push: type: boolean x-stream-index: '011' user: $ref: '#/components/schemas/UserRequest' x-stream-index: '014.002' user_id: type: string x-stream-index: '014.001' title: Add Comment Request type: object FeedSuggestionResponse: properties: activity_count: format: int32 type: integer x-stream-index: '001.014' algorithm_scores: additionalProperties: format: float type: number type: object x-stream-index: '004' created_at: description: When the feed was created format: date-time title: Created At type: number x-stream-index: '001.020' created_by: $ref: '#/components/schemas/UserResponse' description: User who created the feed title: Created By x-stream-index: '001.010' custom: additionalProperties: {} description: Custom data for the feed title: Custom Data type: object x-stream-index: '001.006' deleted_at: description: When the feed was deleted format: date-time title: Deleted At type: number x-stream-index: '001.022' description: description: Description of the feed title: Description type: string x-stream-index: '001.005' feed: description: Fully qualified feed ID (group_id:id) title: FID type: string x-stream-index: '001.003' filter_tags: description: Tags used for filtering feeds items: type: string title: Filter Tags type: array x-stream-index: '001.008' follower_count: description: Number of followers of this feed format: int32 title: Follower Count type: integer x-stream-index: '001.012' following_count: description: Number of feeds this feed follows format: int32 title: Following Count type: integer x-stream-index: '001.013' group_id: description: Group this feed belongs to title: Group ID type: string x-stream-index: '001.001' id: description: Unique identifier for the feed title: ID type: string x-stream-index: '001.002' location: $ref: '#/components/schemas/Location' description: Geographic location for the feed title: Location x-stream-index: '001.007' member_count: description: Number of members in this feed format: int32 title: Member Count type: integer x-stream-index: '001.011' name: description: Name of the feed title: Name type: string x-stream-index: '001.004' own_capabilities: description: Capabilities the current user has for this feed items: $ref: '#/components/schemas/FeedOwnCapability' title: Own Capabilities type: array x-stream-index: '001.018' own_followings: description: Follow relationships where the feed owner’s feeds are following the current user's feeds items: $ref: '#/components/schemas/FollowResponse' title: Own Followings type: array x-stream-index: '001.017' own_follows: description: Follow relationships where the current user's feeds are following this feed items: $ref: '#/components/schemas/FollowResponse' title: Own Follows type: array x-stream-index: '001.016' own_membership: $ref: '#/components/schemas/FeedMemberResponse' description: Membership information for the current user in this feed title: Own Membership x-stream-index: '001.019' pin_count: description: Number of pinned activities in this feed format: int32 title: Pin Count type: integer x-stream-index: '001.015' reason: type: string x-stream-index: '003' recommendation_score: format: float type: number x-stream-index: '002' updated_at: description: When the feed was last updated format: date-time title: Updated At type: number x-stream-index: '001.021' visibility: description: Visibility setting for the feed enum: - public - visible - followers - members - private title: Visibility type: string x-stream-index: '001.009' required: - group_id - id - feed - name - description - created_by - member_count - follower_count - following_count - activity_count - pin_count - created_at - updated_at title: Feed type: object UnpinActivityResponse: nullable: true properties: activity: $ref: '#/components/schemas/ActivityResponse' description: The unpinned activity title: Activity x-stream-index: '001' duration: type: string x-stream-index: '004.001' feed: description: Fully qualified ID of the feed the activity was unpinned from title: Feed ID type: string x-stream-index: '002' user_id: description: ID of the user who unpinned the activity title: User ID type: string x-stream-index: '003' required: - activity - feed - user_id - duration title: Unpin Activity Response type: object FeedInput: properties: custom: additionalProperties: {} type: object x-stream-index: '004' description: maxLength: 1000 type: string x-stream-index: '002' filter_tags: items: type: string type: array x-stream-index: '006' location: $ref: '#/components/schemas/Location' x-stream-index: '005' members: items: $ref: '#/components/schemas/FeedMemberRequest' type: array x-stream-index: '007' name: maxLength: 255 type: string x-stream-index: '001' visibility: enum: - public - visible - followers - members - private type: string x-stream-index: '003' type: object QueryBookmarksRequest: nullable: true properties: enrich_own_fields: type: boolean x-stream-index: '003' filter: additionalProperties: {} description: Filters to apply to the query title: Filter type: object x-stream-index: '001' limit: format: int32 maximum: 100 minimum: 0 type: integer x-stream-index: '004.001' next: type: string x-stream-index: '004.002' prev: type: string x-stream-index: '004.003' sort: description: Sorting parameters for the query items: $ref: '#/components/schemas/SortParamRequest' maxItems: 5 title: Sort type: array x-stream-index: '002' title: Query Bookmarks Request type: object UnfollowResponse: nullable: true properties: duration: type: string x-stream-index: '002.001' follow: $ref: '#/components/schemas/FollowResponse' description: The deleted follow relationship title: Follow x-stream-index: '001' required: - follow - duration title: Unfollow Response type: object Permission: properties: action: description: Action name this permission is for (e.g. SendMessage) title: Action type: string x-stream-index: '004' condition: additionalProperties: {} description: MongoDB style condition which decides whether or not the permission is granted title: Condition type: object x-stream-index: '007' custom: description: Whether this is a custom permission or built-in title: Custom type: boolean x-stream-index: 009 description: description: Description of the permission title: Description type: string x-stream-index: '003' id: description: Unique permission ID title: ID type: string x-stream-index: '001' level: description: 'Level at which permission could be applied (app or channel). One of: app, channel' title: Level type: string x-stream-index: '010' name: description: Name of the permission title: Name type: string x-stream-index: '002' owner: description: Whether this permission applies to resource owner or not title: Owner type: boolean x-stream-index: '005' same_team: description: Whether this permission applies to teammates (multi-tenancy mode only) title: Same team type: boolean x-stream-index: '006' tags: description: List of tags of the permission items: type: string title: Tags type: array x-stream-index: '011' required: - id - name - description - action - owner - same_team - custom - level - tags type: object DeleteActivitiesRequest: nullable: true properties: delete_notification_activity: description: Whether to also delete any notification activities created from mentions in these activities title: Delete Notification Activity type: boolean x-stream-index: '003' hard_delete: description: Whether to permanently delete the activities title: Hard Delete type: boolean x-stream-index: '002' ids: description: List of activity IDs to delete items: type: string maxItems: 100 minItems: 1 title: Activity IDs type: array x-stream-index: '001' user: $ref: '#/components/schemas/UserRequest' x-stream-index: '005.002' user_id: type: string x-stream-index: '005.001' required: - ids title: Delete Activities Request type: object QueryActivitiesResponse: nullable: true properties: activities: description: List of activities matching the query items: $ref: '#/components/schemas/ActivityResponse' title: Activities type: array x-stream-index: '001' duration: type: string x-stream-index: '003.001' next: description: Cursor for next page title: Next type: string x-stream-index: '002.001' prev: description: Cursor for previous page title: Previous type: string x-stream-index: '002.002' required: - activities - duration title: Query Activities Response type: object ActivityResponse: properties: attachments: description: Media attachments for the activity items: $ref: '#/components/schemas/Attachment' title: Attachments type: array x-stream-index: '010' bookmark_count: description: Number of bookmarks on the activity format: int32 title: Bookmark Count type: integer x-stream-index: '032' collections: additionalProperties: $ref: '#/components/schemas/EnrichedCollectionResponse' description: Enriched collection data referenced by this activity title: Collections type: object x-stream-index: '040' comment_count: description: Number of comments on the activity format: int32 title: Comment Count type: integer x-stream-index: '031' comments: description: Latest 5 comments of this activity (comment replies excluded) items: $ref: '#/components/schemas/CommentResponse' title: Comments type: array x-stream-index: 018 created_at: description: When the activity was created format: date-time title: Created At type: number x-stream-index: 008 current_feed: $ref: '#/components/schemas/FeedResponse' description: Feed context for this activity view. If an activity is added only to one feed, it's always set. If an activity is added to multiple feeds, it's only set when calling the GetOrCreateFeed endpoint. title: Current Feed x-stream-index: '043' custom: additionalProperties: {} description: Custom data for the activity title: Custom Data type: object x-stream-index: '012' deleted_at: description: When the activity was deleted format: date-time title: Deleted At type: number x-stream-index: '024' edited_at: description: When the activity was last edited format: date-time title: Edited At type: number x-stream-index: '023' expires_at: description: When the activity will expire format: date-time title: Expires At type: number x-stream-index: '025' feeds: description: List of feed IDs containing this activity items: type: string title: Feeds type: array x-stream-index: '004' filter_tags: description: Tags for filtering items: type: string title: Filter Tags type: array x-stream-index: '027' friend_reaction_count: description: Total count of reactions from friends on this activity format: int32 title: Friend Reaction Count type: integer x-stream-index: '042' friend_reactions: description: Reactions from users the current user follows or has mutual follows with items: $ref: '#/components/schemas/FeedsReactionResponse' title: Friend Reactions type: array x-stream-index: '041' hidden: description: If this activity is hidden by this user (using activity feedback) title: Hidden type: boolean x-stream-index: '044' id: description: Unique identifier for the activity title: ID type: string x-stream-index: '001' interest_tags: description: Tags for user interests items: type: string title: Interest Tags type: array x-stream-index: 028 is_read: description: Whether this activity has been read. Only set for feed groups with notification config (track_seen/track_read enabled). title: Is Read type: boolean x-stream-index: 048 is_seen: description: Whether this activity has been seen. Only set for feed groups with notification config (track_seen/track_read enabled). title: Is Seen type: boolean x-stream-index: '047' is_watched: type: boolean x-stream-index: '046' latest_reactions: description: Recent reactions to the activity items: $ref: '#/components/schemas/FeedsReactionResponse' title: Latest Reactions type: array x-stream-index: '036' location: $ref: '#/components/schemas/Location' description: Geographic location related to the activity title: Location x-stream-index: '020' mentioned_users: description: Users mentioned in the activity items: $ref: '#/components/schemas/UserResponse' title: Mentioned Users type: array x-stream-index: '011' metrics: additionalProperties: format: int64 type: integer type: object x-stream-index: '035' moderation: $ref: '#/components/schemas/ModerationV2Response' description: Moderation information title: Moderation x-stream-index: 029 moderation_action: type: string x-stream-index: '030' notification_context: $ref: '#/components/schemas/NotificationContext' description: Notification context data for the activity (if this is a reaction, comment, follow, etc.) title: Notification Context x-stream-index: '013' own_bookmarks: description: Current user's bookmarks for this activity items: $ref: '#/components/schemas/BookmarkResponse' title: Own Bookmarks type: array x-stream-index: 039 own_reactions: description: Current user's reactions to this activity items: $ref: '#/components/schemas/FeedsReactionResponse' title: Own Reactions type: array x-stream-index: 038 parent: $ref: '#/components/schemas/ActivityResponse' description: Parent activity (if this is a reply/comment) title: Parent x-stream-index: '021' poll: $ref: '#/components/schemas/PollResponseData' description: Poll attached to this activity title: Poll x-stream-index: '022' popularity: description: Popularity score of the activity format: int32 title: Popularity type: integer x-stream-index: '014' preview: description: If this activity is obfuscated for this user. For premium content where you want to show a preview title: Preview type: boolean x-stream-index: '045' reaction_count: description: Number of reactions to the activity format: int32 title: Reaction Count type: integer x-stream-index: '034' reaction_groups: additionalProperties: $ref: '#/components/schemas/FeedsReactionGroupResponse' description: Grouped reactions by type title: Reaction Groups type: object x-stream-index: '037' restrict_replies: description: 'Controls who can add comments/replies to this activity. One of: everyone, people_i_follow, nobody' enum: - everyone - people_i_follow - nobody title: Restrict Replies type: string x-stream-index: '007' score: description: Ranking score for this activity format: float title: Score type: number x-stream-index: '015' score_vars: additionalProperties: {} description: Variable values used at ranking time. Only included when include_score_vars is enabled in enrichment options. title: Score Variables type: object x-stream-index: '016' search_data: additionalProperties: {} description: Data for search indexing title: Search Data type: object x-stream-index: '026' selector_source: description: Which activity selector provided this activity (e.g., 'following', 'popular', 'interest'). Only set when using multiple activity selectors with ranking. title: Selector Source type: string x-stream-index: '017' share_count: description: Number of times the activity was shared format: int32 title: Share Count type: integer x-stream-index: '033' text: description: Text content of the activity title: Text type: string x-stream-index: 019 type: description: Type of activity title: Type type: string x-stream-index: '002' updated_at: description: When the activity was last updated format: date-time title: Updated At type: number x-stream-index: 009 user: $ref: '#/components/schemas/UserResponse' description: User who created the activity title: User x-stream-index: '003' visibility: description: 'Visibility setting for the activity. One of: public, private, tag' enum: - public - private - tag title: Visibility type: string x-stream-index: '005' visibility_tag: description: If visibility is 'tag', this is the tag name title: Visibility Tag type: string x-stream-index: '006' required: - id - type - user - feeds - visibility - restrict_replies - created_at - updated_at - attachments - mentioned_users - custom - popularity - score - comments - search_data - filter_tags - interest_tags - comment_count - bookmark_count - share_count - reaction_count - latest_reactions - reaction_groups - own_reactions - own_bookmarks - collections - hidden - preview title: Base Activity type: object GetActivityResponse: nullable: true properties: activity: $ref: '#/components/schemas/ActivityResponse' description: The requested activity title: Activity x-stream-index: '001' duration: type: string x-stream-index: '002.001' required: - activity - duration title: Get Activity Response type: object ChangeFeedVisibilityResponse: nullable: true properties: duration: type: string x-stream-index: '002.001' feed: $ref: '#/components/schemas/FeedResponse' description: The feed with the intended new visibility. The DB is updated asynchronously; a subsequent GET may briefly return the previous visibility until the background reconciliation task commits. Numeric fields (follower_count, member_count, pending-follow counts) reflect pre-change state and should be considered stale until reconciliation completes. title: Feed x-stream-index: '001' required: - feed - duration title: Change Feed Visibility Response type: object UpdateCommentPartialRequest: nullable: true properties: copy_custom_to_notification: deprecated: true description: 'Whether to copy custom data to notification activities Deprecated: use notification_context.trigger.custom and notification_context.target.custom instead' title: Copy Custom To Notification type: boolean x-stream-index: '007' force_moderation: description: If true, forces moderation to run for server-side requests. By default, server-side requests skip moderation. Client-side requests always run moderation regardless of this field. title: Force Moderation type: boolean x-stream-index: 008 handle_mention_notifications: description: Whether to handle mention notification changes title: Handle Mention Notifications type: boolean x-stream-index: '006' set: additionalProperties: {} description: 'Map of field names to new values. Supported fields: ''text'', ''attachments'', ''custom'', ''mentioned_user_ids'', ''status''. Use dot-notation for nested custom fields (e.g., ''custom.field_name'')' title: Set type: object x-stream-index: '002' skip_enrich_url: description: Whether to skip URL enrichment title: Skip URL Enrichment type: boolean x-stream-index: '005' skip_push: description: Whether to skip push notifications title: Skip Push type: boolean x-stream-index: '004' unset: description: 'List of field names to remove. Supported fields: ''custom'', ''attachments'', ''mentioned_user_ids'', ''status''. Use dot-notation for nested custom fields (e.g., ''custom.field_name'')' items: type: string title: Unset type: array x-stream-index: '003' user: $ref: '#/components/schemas/UserRequest' x-stream-index: '009.002' user_id: type: string x-stream-index: '009.001' type: object UpdateFeedVisibilityRequest: nullable: true properties: grants: additionalProperties: items: type: string type: array description: Updated permission grants for each role title: Grants type: object x-stream-index: '002' title: Update Feed Visibility Request type: object DeleteActivityReactionResponse: nullable: true properties: activity: $ref: '#/components/schemas/ActivityResponse' x-stream-index: '001' duration: type: string x-stream-index: '003.001' reaction: $ref: '#/components/schemas/FeedsReactionResponse' x-stream-index: '002' required: - activity - reaction - duration title: Delete Activity Reaction Response type: object UpdateCommentBookmarkRequest: nullable: true properties: custom: additionalProperties: {} description: Custom data for the bookmark title: Custom Data type: object x-stream-index: '005' folder_id: description: ID of the folder containing the bookmark maxLength: 255 title: Folder ID type: string x-stream-index: '002' new_folder: $ref: '#/components/schemas/AddFolderRequest' description: Create a new folder and move the bookmark into it title: New Folder x-stream-index: '004' new_folder_id: description: Move the bookmark to this folder (empty string removes the folder) maxLength: 255 title: New Folder ID type: string x-stream-index: '003' user: $ref: '#/components/schemas/UserRequest' x-stream-index: '006.002' user_id: type: string x-stream-index: '006.001' title: Update Comment Bookmark Request type: object AddCommentBookmarkRequest: nullable: true properties: custom: additionalProperties: {} description: Custom data for the bookmark title: Custom Data type: object x-stream-index: '004' folder_id: description: ID of the folder to add the bookmark to maxLength: 255 title: Folder ID type: string x-stream-index: '002' new_folder: $ref: '#/components/schemas/AddFolderRequest' description: Create a new folder for this bookmark title: New Folder x-stream-index: '003' user: $ref: '#/components/schemas/UserRequest' x-stream-index: '005.002' user_id: type: string x-stream-index: '005.001' title: Add Comment Bookmark Request type: object PollOptionResponseData: nullable: true properties: custom: additionalProperties: {} type: object x-stream-index: '003' id: type: string x-stream-index: '001' text: type: string x-stream-index: '002' required: - id - text - custom type: object QueryCollectionsRequest: nullable: true properties: filter: additionalProperties: {} description: Filters to apply to the query title: Filter type: object x-stream-index: '001' limit: format: int32 maximum: 100 minimum: 0 type: integer x-stream-index: '003.001' next: type: string x-stream-index: '003.002' prev: type: string x-stream-index: '003.003' sort: description: Sorting parameters for the query items: $ref: '#/components/schemas/SortParamRequest' title: Sort type: array x-stream-index: '002' user: $ref: '#/components/schemas/UserRequest' x-stream-index: '004.002' user_id: type: string x-stream-index: '004.001' title: Query Collections Request type: object FeedViewResponse: properties: activity_selectors: description: Configured activity selectors items: $ref: '#/components/schemas/ActivitySelectorConfigResponse' title: Activity Selectors type: array x-stream-index: '002' aggregation: $ref: '#/components/schemas/AggregationConfig' description: Configuration for activity aggregation title: Aggregation x-stream-index: '004' id: description: Unique identifier for the custom feed view title: View ID type: string x-stream-index: '001' last_used_at: description: When the feed view was last used format: date-time title: Last Used At type: number x-stream-index: '005' ranking: $ref: '#/components/schemas/RankingConfig' description: Configuration for activity ranking title: Ranking x-stream-index: '003' required: - id title: Feed View type: object GetFollowSuggestionsResponse: nullable: true properties: algorithm_used: type: string x-stream-index: '002' duration: type: string x-stream-index: '003.001' suggestions: description: List of suggested feeds to follow items: $ref: '#/components/schemas/FeedSuggestionResponse' title: Suggestions type: array x-stream-index: '001' required: - suggestions - duration title: Follow Suggestions Response type: object RevisionHistoryResponse: nullable: true properties: action_type: type: string x-stream-index: '004' actor_type: type: string x-stream-index: '005' changed_fields: items: type: string type: array x-stream-index: '006' created_at: format: date-time type: number x-stream-index: 008 object_id: type: string x-stream-index: '001' object_type: type: string x-stream-index: '002' previous_obj_serialized: readOnly: true type: object x-stream-index: '007' user_id: type: string x-stream-index: '003' required: - object_id - object_type - user_id - action_type - actor_type - created_at type: object UpdateBookmarkFolderRequest: nullable: true properties: custom: additionalProperties: {} description: Custom data for the folder title: Custom Data type: object x-stream-index: '003' name: description: Name of the folder maxLength: 255 title: Name type: string x-stream-index: '002' user: $ref: '#/components/schemas/UserRequest' x-stream-index: '004.002' user_id: type: string x-stream-index: '004.001' title: Update Bookmark Folder Request type: object RepliesMeta: description: Cursor & depth information for a comment's direct replies. Mirrors Reddit's 'load more replies' semantics. properties: depth_truncated: description: True if the subtree was cut because the requested depth was reached. title: Depth Truncated type: boolean x-stream-index: '004' has_more: description: True if more siblings exist in the database. title: Has More type: boolean x-stream-index: '001' next_cursor: description: Opaque cursor to request the next page of siblings. title: Next Cursor type: string x-stream-index: '002' remaining: description: Number of unread siblings that match current filters. format: int32 title: Remaining type: integer x-stream-index: '003' required: - has_more - remaining - depth_truncated title: Replies Meta type: object GetOrCreateFeedRequest: description: Client request nullable: true properties: data: $ref: '#/components/schemas/FeedInput' x-stream-index: '003' enrichment_options: $ref: '#/components/schemas/EnrichmentOptions' x-stream-index: '012' external_ranking: additionalProperties: {} type: object x-stream-index: '006' filter: additionalProperties: {} type: object x-stream-index: 008 followers_pagination: $ref: '#/components/schemas/PagerRequest' x-stream-index: '010' following_pagination: $ref: '#/components/schemas/PagerRequest' x-stream-index: '011' friend_reactions_options: $ref: '#/components/schemas/FriendReactionsOptions' x-stream-index: '013' id_around: type: string x-stream-index: '015.004' interest_weights: additionalProperties: format: float type: number type: object x-stream-index: '007' limit: format: int32 maximum: 100 minimum: 0 type: integer x-stream-index: '015.001' member_pagination: $ref: '#/components/schemas/PagerRequest' x-stream-index: 009 next: type: string x-stream-index: '015.002' prev: type: string x-stream-index: '015.003' user: $ref: '#/components/schemas/UserRequest' x-stream-index: '016.002' user_id: type: string x-stream-index: '016.001' view: type: string x-stream-index: '005' watch: type: boolean x-stream-index: '004' title: ClientRequest type: object ActivityRequest: properties: attachments: description: List of attachments for the activity items: $ref: '#/components/schemas/Attachment' title: Attachments type: array x-stream-index: '006' collection_refs: description: Collections that this activity references items: type: string title: Collection References type: array x-stream-index: '016' copy_custom_to_notification: deprecated: true description: 'Whether to copy custom data to the notification activity (only applies when create_notification_activity is true) Deprecated: use notification_context.trigger.custom and notification_context.target.custom instead' title: Copy Custom To Notification type: boolean x-stream-index: '022' create_notification_activity: description: Whether to create notification activities for mentioned users title: Create Notification Activity type: boolean x-stream-index: '021' custom: additionalProperties: {} description: Custom data for the activity title: Custom Data type: object x-stream-index: 019 expires_at: description: Expiration time for the activity title: Expires At type: string x-stream-index: '011' feeds: description: List of feeds to add the activity to with a default max limit of 25 feeds items: type: string minItems: 1 title: Feed IDs type: array x-stream-index: '004' filter_tags: description: Tags for filtering activities items: type: string maxItems: 50 title: Filter Tags type: array x-stream-index: '014' id: description: Optional ID for the activity maxLength: 255 title: Activity ID type: string x-stream-index: '001' interest_tags: description: Tags for indicating user interests items: type: string title: Interest Tags type: array x-stream-index: '015' location: $ref: '#/components/schemas/Location' description: Geographic location related to the activity title: Location x-stream-index: '010' mentioned_user_ids: description: List of users mentioned in the activity items: type: string title: Mentioned User IDs type: array x-stream-index: '012' parent_id: description: ID of parent activity for replies/comments maxLength: 255 title: Parent ID type: string x-stream-index: '017' poll_id: description: ID of a poll to attach to activity title: Poll ID type: string x-stream-index: 018 restrict_replies: description: 'Controls who can add comments/replies to this activity. One of: everyone, people_i_follow, nobody' enum: - everyone - people_i_follow - nobody title: Restrict Replies type: string x-stream-index: 009 search_data: additionalProperties: {} description: Additional data for search indexing title: Search Data type: object x-stream-index: '013' skip_enrich_url: description: Whether to skip URL enrichment for the activity title: Skip URL Enrichment type: boolean x-stream-index: '020' skip_push: description: Whether to skip push notifications title: Skip Push type: boolean x-stream-index: '023' text: description: Text content of the activity title: Text type: string x-stream-index: '005' type: description: Type of activity maxLength: 255 title: Activity Type type: string x-stream-index: '002' user_id: description: ID of the user creating the activity maxLength: 255 title: User ID type: string x-stream-index: '003' visibility: description: 'Visibility setting for the activity. One of: public, private, tag' enum: - public - private - tag title: Visibility type: string x-stream-index: '007' visibility_tag: description: If visibility is 'tag', this is the tag name and is required maxLength: 32 title: Visibility Tag type: string x-stream-index: 008 required: - type - feeds title: Activity Request type: object RankingConfig: properties: defaults: additionalProperties: {} description: Default values for ranking title: Defaults type: object x-stream-index: '003' functions: additionalProperties: $ref: '#/components/schemas/DecayFunctionConfig' description: Decay functions configuration title: Functions type: object x-stream-index: '004' score: description: Scoring formula. Required when type is 'expression' or 'interest' title: Score type: string x-stream-index: '002' type: description: 'Type of ranking algorithm. Required. One of: expression, interest' enum: - expression - interest title: Type type: string x-stream-index: '001' required: - type title: Ranking Configuration type: object DeleteFeedResponse: nullable: true properties: duration: type: string x-stream-index: '002.001' task_id: description: The ID of the async task that will handle feed cleanup and hard deletion title: Task ID type: string x-stream-index: '001' required: - task_id - duration title: Delete Feed Response type: object DeleteCommentBookmarkResponse: nullable: true properties: bookmark: $ref: '#/components/schemas/BookmarkResponse' description: The deleted comment bookmark title: Bookmark x-stream-index: '001' duration: type: string x-stream-index: '002.001' required: - bookmark - duration title: Delete Comment Bookmark Response type: object UpdateActivitiesPartialBatchResponse: nullable: true properties: activities: description: List of successfully updated activities items: $ref: '#/components/schemas/ActivityResponse' title: Activities type: array x-stream-index: '001' duration: type: string x-stream-index: '002.001' required: - activities - duration title: Update Activities Partial Batch Response type: object QueryActivityReactionsResponse: description: Basic response information nullable: true properties: duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: '003.001' next: type: string x-stream-index: '002.001' prev: type: string x-stream-index: '002.002' reactions: items: $ref: '#/components/schemas/FeedsReactionResponse' type: array x-stream-index: '001' required: - reactions - duration title: Response type: object FeedMemberResponse: properties: created_at: description: When the membership was created format: date-time title: Created At type: number x-stream-index: 008 custom: additionalProperties: {} description: Custom data for the membership title: Custom Data type: object x-stream-index: '007' invite_accepted_at: description: When the invite was accepted format: date-time title: Invite Accepted At type: number x-stream-index: '005' invite_rejected_at: description: When the invite was rejected format: date-time title: Invite Rejected At type: number x-stream-index: '006' membership_level: $ref: '#/components/schemas/MembershipLevelResponse' description: Membership level assigned to the member title: Membership Level x-stream-index: '004' role: description: Role of the member in the feed title: Role type: string x-stream-index: '002' status: description: 'Status of the membership. One of: member, pending, rejected' enum: - member - pending - rejected title: Status type: string x-stream-index: '003' updated_at: description: When the membership was last updated format: date-time title: Updated At type: number x-stream-index: 009 user: $ref: '#/components/schemas/UserResponse' description: User who is a member title: User x-stream-index: '001' required: - user - role - status - created_at - updated_at title: Feed Member type: object FollowRequest: nullable: true properties: activity_copy_limit: description: 'Maximum number of historical activities to copy from the target feed when the follow is first materialized. Not set = unlimited (default). 0 = copy nothing. Range: 0-1000.' format: int32 maximum: 1000 minimum: 0 title: Activity Copy Limit type: integer x-stream-index: 008 copy_custom_to_notification: deprecated: true description: 'Whether to copy custom data to the notification activity (only applies when create_notification_activity is true) Deprecated: use notification_context.trigger.custom and notification_context.target.custom instead' title: Copy Custom To Notification type: boolean x-stream-index: '005' create_notification_activity: description: Whether to create a notification activity for this follow title: Create Notification Activity type: boolean x-stream-index: '004' create_users: description: If true, auto-creates users referenced by the source and target FIDs when they don't already exist. Server-side only. Defaults to false. For FollowBatch/GetOrCreateFollows, use the top-level create_users field; per-item follows[i].create_users is rejected. title: Create Users type: boolean x-stream-index: '010' custom: additionalProperties: {} description: Custom data for the follow relationship title: Custom Data type: object x-stream-index: '002' enrich_own_fields: description: If true, enriches the follow's source_feed and target_feed with own_* fields (own_follows, own_followings, own_capabilities, own_membership). Defaults to false for performance. title: Enrich Own Fields type: boolean x-stream-index: 009 push_preference: description: Push preference for the follow relationship enum: - all - none title: Push Preference type: string x-stream-index: '003' skip_push: description: Whether to skip push for this follow title: Skip Push type: boolean x-stream-index: '006' source: description: Fully qualified ID of the source feed maxLength: 255 title: Source Feed type: string x-stream-index: '001.001' status: description: 'Status of the follow relationship. One of: accepted, pending, rejected' enum: - accepted - pending - rejected title: Status type: string x-stream-index: '007' target: description: Fully qualified ID of the target feed maxLength: 255 title: Target Feed type: string x-stream-index: '001.002' required: - source - target title: Follow Request type: object QueryFollowsRequest: nullable: true properties: filter: additionalProperties: {} description: Filters to apply to the query title: Filter type: object x-stream-index: '001' limit: format: int32 maximum: 100 minimum: 0 type: integer x-stream-index: '003.001' next: type: string x-stream-index: '003.002' prev: type: string x-stream-index: '003.003' sort: description: Sorting parameters for the query items: $ref: '#/components/schemas/SortParamRequest' maxItems: 5 title: Sort type: array x-stream-index: '002' title: Query Follows Request type: object FollowBatchResponse: nullable: true properties: created: description: List of newly created follow relationships items: $ref: '#/components/schemas/FollowResponse' title: Created type: array x-stream-index: '002' duration: type: string x-stream-index: '003.001' follows: description: List of current follow relationships items: $ref: '#/components/schemas/FollowResponse' title: Follows type: array x-stream-index: '001' required: - follows - created - duration title: Follow Batch Response type: object NotificationStatusResponse: properties: last_read_at: description: When notifications were last read format: date-time title: Last Read At type: number x-stream-index: '006' last_seen_at: description: When notifications were last seen format: date-time title: Last Seen At type: number x-stream-index: '005' read_activities: description: 'Deprecated: use is_read on each activity/group instead. IDs of activities that have been read. Capped at ~101 entries for aggregated feeds.' items: type: string title: Read Activities type: array x-stream-index: '003' seen_activities: description: 'Deprecated: use is_seen on each activity/group instead. IDs of activities that have been seen. Capped at ~101 entries for aggregated feeds.' items: type: string title: Seen Activities type: array x-stream-index: '004' unread: description: Number of unread notifications format: int32 title: Unread type: integer x-stream-index: '001' unseen: description: Number of unseen notifications format: int32 title: Unseen type: integer x-stream-index: '002' required: - unread - unseen title: Notification Status type: object ReadCollectionsResponse: nullable: true properties: collections: description: List of collections matching the references items: $ref: '#/components/schemas/CollectionResponse' title: Collections type: array x-stream-index: '001' duration: type: string x-stream-index: '002.001' required: - collections - duration title: Read Collections Response type: object NotificationContext: properties: target: $ref: '#/components/schemas/NotificationTarget' description: Information about the target of the notification title: Notification Target x-stream-index: '002' trigger: $ref: '#/components/schemas/NotificationTrigger' description: Information about what triggered the notification title: Notification Trigger x-stream-index: '001' title: NotificationContext type: object Action: nullable: true properties: name: type: string x-stream-index: '001' style: type: string x-stream-index: '003' text: type: string x-stream-index: '002' type: type: string x-stream-index: '004' value: type: string x-stream-index: '005' required: - name - text - type type: object FeedOwnCapability: description: Represents a feed capability value and enumerates all possible capability strings. enum: - add-activity - add-activity-bookmark - add-activity-reaction - add-comment - add-comment-reaction - create-feed - delete-any-activity - delete-any-comment - delete-feed - delete-own-activity - delete-own-activity-bookmark - delete-own-activity-reaction - delete-own-comment - delete-own-comment-reaction - follow - pin-activity - query-feed-members - query-follows - read-activities - read-feed - unfollow - update-any-activity - update-any-comment - update-feed - update-feed-followers - update-feed-members - update-own-activity - update-own-activity-bookmark - update-own-comment title: FeedOwnCapability type: string GetFeedsRateLimitsResponse: nullable: true properties: android: additionalProperties: $ref: '#/components/schemas/LimitInfoResponse' description: Rate limits for Android platform (endpoint name -> limit info) title: Android type: object x-stream-index: '002' duration: type: string x-stream-index: '001.001' ios: additionalProperties: $ref: '#/components/schemas/LimitInfoResponse' description: Rate limits for iOS platform (endpoint name -> limit info) title: iOS type: object x-stream-index: '003' server_side: additionalProperties: $ref: '#/components/schemas/LimitInfoResponse' description: Rate limits for server-side platform (endpoint name -> limit info) title: Server Side type: object x-stream-index: '005' web: additionalProperties: $ref: '#/components/schemas/LimitInfoResponse' description: Rate limits for Web platform (endpoint name -> limit info) title: Web type: object x-stream-index: '004' required: - duration title: Get Feeds Rate Limits Response type: object UpdateFeedRequest: nullable: true properties: clear_location: description: If true, removes the geographic location from the feed title: Clear Location type: boolean x-stream-index: 008 created_by_id: description: ID of the new feed creator (owner) title: Created By ID type: string x-stream-index: '003' custom: additionalProperties: {} description: Custom data for the feed title: Custom Data type: object x-stream-index: '006' description: description: Description of the feed maxLength: 1000 title: Description type: string x-stream-index: '005' enrich_own_fields: description: If true, enriches the feed with own_* fields (own_follows, own_followings, own_capabilities, own_membership). Defaults to false for performance. title: Enrich Own Fields type: boolean x-stream-index: '010' filter_tags: description: Tags used for filtering feeds items: type: string title: Filter Tags type: array x-stream-index: 009 location: $ref: '#/components/schemas/Location' description: Geographic location for the feed title: Location x-stream-index: '007' name: description: Name of the feed maxLength: 255 title: Name type: string x-stream-index: '004' title: Update Feed Request type: object ActivityFilterConfig: properties: exclude_owner_activities: description: When true, activities authored by the feed owner are excluded from feed reads title: Exclude Owner Activities type: boolean x-stream-index: '001' title: Activity Filter Configuration type: object QueryFeedMembersResponse: nullable: true properties: duration: type: string x-stream-index: '003.001' members: description: List of feed members items: $ref: '#/components/schemas/FeedMemberResponse' title: Members type: array x-stream-index: '001' next: description: Cursor for next page title: Next type: string x-stream-index: '002.001' prev: description: Cursor for previous page title: Previous type: string x-stream-index: '002.002' required: - members - duration type: object ModerationV2Response: properties: action: type: string x-stream-index: '001' blocklist_matched: type: string x-stream-index: '005' blocklists_matched: items: type: string type: array x-stream-index: '006' image_harms: items: type: string type: array x-stream-index: '004' original_text: type: string x-stream-index: '002' platform_circumvented: type: boolean x-stream-index: 008 semantic_filter_matched: type: string x-stream-index: '007' text_harms: items: type: string type: array x-stream-index: '003' required: - action - original_text type: object ListFeedGroupsResponse: description: Basic response information nullable: true properties: duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: '002.001' groups: additionalProperties: $ref: '#/components/schemas/FeedGroupResponse' type: object x-stream-index: '001' required: - groups - duration title: Response type: object UpdateFeedViewRequest: nullable: true properties: activity_selectors: description: Updated configuration for selecting activities items: $ref: '#/components/schemas/ActivitySelectorConfig' title: Activity Selectors type: array x-stream-index: '002.001' aggregation: $ref: '#/components/schemas/AggregationConfig' description: Updated configuration for aggregating activities title: Aggregation x-stream-index: '002.003' ranking: $ref: '#/components/schemas/RankingConfig' description: Updated configuration for ranking activities title: Ranking x-stream-index: '002.002' title: Update Feed View Request type: object DeleteActivitiesResponse: nullable: true properties: deleted_ids: description: List of activity IDs that were successfully deleted items: type: string title: Deleted Activity IDs type: array x-stream-index: '001' duration: type: string x-stream-index: '002.001' required: - deleted_ids - duration title: Delete Activities Response type: object AddReactionRequest: nullable: true properties: copy_custom_to_notification: deprecated: true description: 'Whether to copy custom data to the notification activity (only applies when create_notification_activity is true) Deprecated: use notification_context.trigger.custom and notification_context.target.custom instead' title: Copy Custom To Notification type: boolean x-stream-index: '005' create_notification_activity: description: Whether to create a notification activity for this reaction title: Create Notification Activity type: boolean x-stream-index: '004' create_users: description: 'Server-side only. If true, auto-creates the reacting user identified by user_id when they don''t already exist. Default: false.' title: Create Users type: boolean x-stream-index: 008 custom: additionalProperties: {} description: Custom data for the reaction title: Custom Data type: object x-stream-index: '003' enforce_unique: description: Whether to enforce unique reactions per user (remove other reaction types from the user when adding this one) title: Enforce Unique type: boolean x-stream-index: '007' skip_push: type: boolean x-stream-index: '006' type: description: Type of reaction maxLength: 255 title: Reaction Type type: string x-stream-index: '002' user: $ref: '#/components/schemas/UserRequest' x-stream-index: '009.002' user_id: type: string x-stream-index: '009.001' required: - type title: Add Reaction Request type: object CollectionResponse: properties: created_at: description: When the collection was created format: date-time title: Created At type: number x-stream-index: '005' custom: additionalProperties: {} description: Custom data for the collection title: Custom Data type: object x-stream-index: '003' id: description: Unique identifier for the collection within its name title: ID type: string x-stream-index: '002' name: description: Name/type of the collection title: Name type: string x-stream-index: '001' updated_at: description: When the collection was last updated format: date-time title: Updated At type: number x-stream-index: '006' user_id: description: ID of the user who owns this collection title: User ID type: string x-stream-index: '004' required: - name - id title: Collection Response type: object DeleteFeedGroupResponse: description: Basic response information nullable: true properties: duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: '001.001' required: - duration title: Response type: object UserResponse: description: User response object properties: avg_response_time: format: int32 type: integer x-stream-index: '001.018' ban_expires: description: Date when ban expires format: date-time title: Ban expires type: number x-stream-index: '004' banned: description: Whether a user is banned or not title: Banned type: boolean x-stream-index: '001.012' blocked_user_ids: items: type: string type: array x-stream-index: '001.017' bypass_moderation: type: boolean x-stream-index: '003' created_at: description: Date/time of creation format: date-time title: Created at type: number x-stream-index: '001.009' custom: additionalProperties: {} description: Custom data for this object title: Custom data type: object x-stream-index: '001.004' deactivated_at: description: Date of deactivation format: date-time title: Deactivated at type: number x-stream-index: '001.016' deleted_at: description: Date/time of deletion format: date-time title: Deleted at type: number x-stream-index: '001.011' devices: description: List of devices user is using items: $ref: '#/components/schemas/DeviceResponse' title: Devices type: array x-stream-index: '007' id: description: Unique user identifier title: ID type: string x-stream-index: '001.001' image: title: Image type: string x-stream-index: '001.003' invisible: type: boolean x-stream-index: 008 language: description: Preferred language of a user title: Language type: string x-stream-index: '001.005' last_active: description: Date of last activity format: date-time title: Last active type: number x-stream-index: '001.014' name: description: Optional name of user title: Name type: string x-stream-index: '001.002' online: description: Whether a user online or not title: Online type: boolean x-stream-index: '001.013' privacy_settings: $ref: '#/components/schemas/PrivacySettingsResponse' description: User privacy settings title: Privacy settings x-stream-index: '006' push_notifications: $ref: '#/components/schemas/PushNotificationSettingsResponse' description: User push notification settings title: Push notifications x-stream-index: '005' revoke_tokens_issued_before: description: Revocation date for tokens format: date-time title: Revoke tokens issued before type: number x-stream-index: '001.015' role: description: Determines the set of user permissions title: Role type: string x-stream-index: '001.006' shadow_banned: description: Whether a user is shadow banned title: Shadow banned type: boolean x-stream-index: '002' teams: description: List of teams user is a part of items: type: string title: Teams type: array x-stream-index: '001.007' teams_role: additionalProperties: type: string type: object x-stream-index: '001.008' updated_at: description: Date/time of the last update format: date-time title: Updated at type: number x-stream-index: '001.010' required: - id - custom - language - role - teams - created_at - updated_at - banned - online - blocked_user_ids - shadow_banned - invisible title: UserResponse type: object DeviceResponse: description: Response for Device nullable: true properties: created_at: description: Date/time of creation format: date-time title: Created at type: number x-stream-index: '004' disabled: description: Whether device is disabled or not title: Disabled type: boolean x-stream-index: '005' disabled_reason: description: Reason explaining why device had been disabled title: Reason type: string x-stream-index: '006' id: description: Device ID title: ID type: string x-stream-index: '003' push_provider: description: Push provider title: PushProvider type: string x-stream-index: '001' push_provider_name: description: Push provider name title: PushProviderName type: string x-stream-index: '002' user_id: description: User ID title: UserID type: string x-stream-index: 008 voip: description: When true the token is for Apple VoIP push notifications title: Voip type: boolean x-stream-index: '007' required: - push_provider - id - created_at - user_id title: DeviceResponse type: object PrivacySettingsResponse: properties: delivery_receipts: $ref: '#/components/schemas/DeliveryReceiptsResponse' x-stream-index: '003' read_receipts: $ref: '#/components/schemas/ReadReceiptsResponse' x-stream-index: '002' typing_indicators: $ref: '#/components/schemas/TypingIndicatorsResponse' x-stream-index: '001' type: object AddActivityResponse: nullable: true properties: activity: $ref: '#/components/schemas/ActivityResponse' description: The created activity title: Activity x-stream-index: '001' duration: type: string x-stream-index: '003.001' mention_notifications_created: description: Number of mention notification activities created for mentioned users format: int32 title: Mention Notifications Created type: integer x-stream-index: '002' required: - activity - duration title: Add Activity Response type: object GetOrCreateFeedGroupRequest: nullable: true properties: activity_filter: $ref: '#/components/schemas/ActivityFilterConfig' x-stream-index: '002.010' activity_processors: description: Configuration for activity processors items: $ref: '#/components/schemas/ActivityProcessorConfig' maxItems: 10 title: Activity Processors type: array x-stream-index: '002.006' activity_selectors: description: Configuration for activity selectors items: $ref: '#/components/schemas/ActivitySelectorConfig' title: Activity Selectors type: array x-stream-index: '002.007' aggregation: $ref: '#/components/schemas/AggregationConfig' description: Configuration for activity aggregation title: Aggregation x-stream-index: '002.009' custom: additionalProperties: {} description: Custom data for the feed group title: Custom Data type: object x-stream-index: '002.004' default_visibility: description: 'Default visibility for the feed group, can be ''public'', ''visible'', ''followers'', ''members'', or ''private''. Defaults to ''visible'' if not provided. ' enum: - public - visible - followers - members - private title: Default Visibility type: string x-stream-index: '002.005' notification: $ref: '#/components/schemas/NotificationConfig' description: Configuration for notifications title: Notification x-stream-index: '002.001' push_notification: $ref: '#/components/schemas/PushNotificationConfig' x-stream-index: '002.002' ranking: $ref: '#/components/schemas/RankingConfig' description: Configuration for activity ranking title: Ranking x-stream-index: '002.008' stories: $ref: '#/components/schemas/StoriesConfig' description: Configuration for stories functionality title: Stories x-stream-index: '002.003' title: Get Or Create Feed Group Request type: object RejectFeedMemberInviteResponse: nullable: true properties: duration: type: string x-stream-index: '002.001' member: $ref: '#/components/schemas/FeedMemberResponse' description: The feed member after rejecting the invite title: Feed Member x-stream-index: '001' required: - member - duration title: Reject Feed Member Response type: object QueryPinnedActivitiesRequest: nullable: true properties: enrich_own_fields: type: boolean x-stream-index: '005' filter: additionalProperties: {} description: Filters to apply to the query title: Filter type: object x-stream-index: '003' limit: format: int32 maximum: 100 minimum: 0 type: integer x-stream-index: '006.001' next: type: string x-stream-index: '006.002' prev: type: string x-stream-index: '006.003' sort: description: Sorting parameters for the query items: $ref: '#/components/schemas/SortParamRequest' maxItems: 5 title: Sort type: array x-stream-index: '004' title: Query Pinned Activities Request type: object Response: description: Basic response information nullable: true properties: duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: '001' required: - duration title: Response type: object UpsertCollectionsRequest: nullable: true properties: collections: description: List of collections to upsert (insert if new, update if existing) items: $ref: '#/components/schemas/CollectionRequest' maxItems: 100 minItems: 1 title: Collections type: array x-stream-index: '001' required: - collections title: Upsert Collections Request type: object MembershipLevelResponse: properties: created_at: description: When the membership level was created format: date-time title: Created At type: number x-stream-index: '007' custom: additionalProperties: {} description: Custom data for the membership level title: Custom Data type: object x-stream-index: '006' description: description: Description of the membership level title: Description type: string x-stream-index: '003' id: description: Unique identifier for the membership level title: ID type: string x-stream-index: '001' name: description: Display name for the membership level title: Name type: string x-stream-index: '002' priority: description: Priority level format: int32 title: Priority type: integer x-stream-index: '004' tags: description: Activity tags this membership level gives access to items: type: string title: Tags type: array x-stream-index: '005' updated_at: description: When the membership level was last updated format: date-time title: Updated At type: number x-stream-index: 008 required: - id - name - priority - tags - created_at - updated_at title: Membership Level Response type: object QueryFollowsResponse: nullable: true properties: duration: type: string x-stream-index: '003.001' follows: description: List of follow relationships matching the query items: $ref: '#/components/schemas/FollowResponse' title: Follows type: array x-stream-index: '001' next: description: Cursor for next page title: Next type: string x-stream-index: '002.001' prev: description: Cursor for previous page title: Previous type: string x-stream-index: '002.002' required: - follows - duration title: Query Follows Response type: object PagerRequest: properties: limit: format: int32 maximum: 100 minimum: 0 type: integer x-stream-index: '001' next: type: string x-stream-index: '002' prev: type: string x-stream-index: '003' type: object ExportFeedUserDataResponse: description: Response for exporting feed user data nullable: true properties: duration: type: string x-stream-index: '002.001' task_id: description: The task ID for the export task title: Task ID type: string x-stream-index: '001' required: - task_id - duration type: object UpdateCollectionsResponse: nullable: true properties: collections: description: List of updated collections items: $ref: '#/components/schemas/CollectionResponse' title: Collections type: array x-stream-index: '001' duration: type: string x-stream-index: '002.001' required: - collections - duration title: Update Collections Response type: object GetFeedGroupResponse: nullable: true properties: duration: type: string x-stream-index: '002.001' feed_group: $ref: '#/components/schemas/FeedGroupResponse' description: The requested feed group title: Feed Group x-stream-index: '001' required: - feed_group - duration title: Get Feed Group Response type: object DeleteFeedUserDataRequest: description: Request for deleting feed user data nullable: true properties: hard_delete: description: Whether to perform a hard delete instead of a soft delete title: Hard Delete type: boolean x-stream-index: '002' type: object AddBookmarkResponse: nullable: true properties: bookmark: $ref: '#/components/schemas/BookmarkResponse' description: The created bookmark title: Bookmark x-stream-index: '001' duration: type: string x-stream-index: '002.001' required: - bookmark - duration title: Add Bookmark Response type: object CreateCollectionsRequest: nullable: true properties: collections: description: List of collections to create items: $ref: '#/components/schemas/CollectionRequest' maxItems: 100 minItems: 1 title: Collections type: array x-stream-index: '001' user: $ref: '#/components/schemas/UserRequest' x-stream-index: '002.002' user_id: type: string x-stream-index: '002.001' required: - collections title: Create Collections Request type: object Location: properties: lat: description: Latitude coordinate format: float maximum: 90 minimum: 1.8446744073709552e+19 title: Latitude type: number x-stream-index: '001' lng: description: Longitude coordinate format: float maximum: 180 minimum: 1.8446744073709552e+19 title: Longitude type: number x-stream-index: '002' required: - lat - lng title: Activity Location type: object DeleteFeedUserDataResponse: description: Response for deleting feed user data nullable: true properties: duration: type: string x-stream-index: '002.001' task_id: description: The task ID for the deletion task title: Task ID type: string x-stream-index: '001' required: - task_id - duration type: object GetFeedViewResponse: nullable: true properties: duration: type: string x-stream-index: '002.001' feed_view: $ref: '#/components/schemas/FeedViewResponse' description: The requested feed view title: Feed View x-stream-index: '001' required: - feed_view - duration title: Get Feed View Response type: object GetCommentRepliesResponse: nullable: true properties: comments: description: Threaded listing of replies to the comment items: $ref: '#/components/schemas/ThreadedCommentResponse' title: Comments type: array x-stream-index: '001' duration: type: string x-stream-index: '004.001' next: type: string x-stream-index: '003.001' prev: type: string x-stream-index: '003.002' sort: description: Sort order used for the replies (first, last, top, best, controversial) title: Sort Order type: string x-stream-index: '002' required: - comments - sort - duration title: Get Comment Replies Response type: object QueryPinnedActivitiesResponse: nullable: true properties: duration: type: string x-stream-index: '003.001' next: description: Cursor for next page title: Next type: string x-stream-index: '002.001' pinned_activities: description: List of pinned activities matching the query items: $ref: '#/components/schemas/ActivityPinResponse' title: Pinned Activities type: array x-stream-index: '001' prev: description: Cursor for previous page title: Previous type: string x-stream-index: '002.002' required: - pinned_activities - duration title: Query Pinned Activities Response type: object GetCommentsResponse: nullable: true properties: comments: description: Threaded listing for the activity items: $ref: '#/components/schemas/ThreadedCommentResponse' title: Comments type: array x-stream-index: '001' duration: type: string x-stream-index: '004.001' next: type: string x-stream-index: '003.001' prev: type: string x-stream-index: '003.002' sort: description: Sort order used for the comments (first, last, top, best, controversial) title: Sort Order type: string x-stream-index: '002' required: - comments - sort - duration title: Get Comments Response type: object UnfollowBatchResponse: nullable: true properties: duration: type: string x-stream-index: '002.001' follows: description: List of follow relationships that were removed items: $ref: '#/components/schemas/FollowResponse' title: Follows type: array x-stream-index: '001' required: - follows - duration title: Unfollow Batch Response type: object AddBookmarkRequest: nullable: true properties: custom: additionalProperties: {} description: Custom data for the bookmark title: Custom Data type: object x-stream-index: '004' folder_id: description: ID of the folder to add the bookmark to maxLength: 255 title: Folder ID type: string x-stream-index: '002' new_folder: $ref: '#/components/schemas/AddFolderRequest' description: Create a new folder for this bookmark title: New Folder x-stream-index: '003' user: $ref: '#/components/schemas/UserRequest' x-stream-index: '005.002' user_id: type: string x-stream-index: '005.001' title: Add Bookmark Request type: object QueryBookmarkFoldersRequest: nullable: true properties: filter: additionalProperties: {} description: Filters to apply to the query title: Filter type: object x-stream-index: '001' limit: format: int32 maximum: 100 minimum: 0 type: integer x-stream-index: '003.001' next: type: string x-stream-index: '003.002' prev: type: string x-stream-index: '003.003' sort: description: Sorting parameters for the query items: $ref: '#/components/schemas/SortParamRequest' title: Sort type: array x-stream-index: '002' title: Query Bookmark Folders Request type: object StoriesConfig: properties: skip_watched: description: Whether to skip already watched stories title: Skip Watched type: boolean x-stream-index: '001' track_watched: description: Whether to track watched status for stories title: Track Watched type: boolean x-stream-index: '002' title: Stories Configuration type: object QueryFeedsUsageStatsRequest: nullable: true properties: from: description: Start date in YYYY-MM-DD format (optional, defaults to 30 days ago) title: From type: string x-stream-index: '002' to: description: End date in YYYY-MM-DD format (optional, defaults to today) title: To type: string x-stream-index: '003' type: object DeleteCommentResponse: nullable: true properties: activity: $ref: '#/components/schemas/ActivityResponse' description: The parent activity title: Activity x-stream-index: '002' comment: $ref: '#/components/schemas/CommentResponse' description: The deleted comment title: Comment x-stream-index: '001' duration: type: string x-stream-index: '003.001' required: - comment - activity - duration title: Delete Comment Response type: object UpdateFollowResponse: nullable: true properties: duration: type: string x-stream-index: '002.001' follow: $ref: '#/components/schemas/FollowResponse' description: Details of the updated follow relationship title: Follow x-stream-index: '001' required: - follow - duration title: Update Follow Response type: object Field: nullable: true properties: short: type: boolean x-stream-index: '003' title: type: string x-stream-index: '001' value: type: string x-stream-index: '002' required: - title - value - short type: object AddCommentBookmarkResponse: nullable: true properties: bookmark: $ref: '#/components/schemas/BookmarkResponse' description: The created comment bookmark title: Bookmark x-stream-index: '001' duration: type: string x-stream-index: '002.001' required: - bookmark - duration title: Add Comment Bookmark Response type: object DeliveryReceiptsResponse: properties: enabled: type: boolean x-stream-index: '001' type: object FeedsReactionGroupResponse: properties: count: format: int32 type: integer x-stream-index: '001' first_reaction_at: format: date-time type: number x-stream-index: '002' last_reaction_at: format: date-time type: number x-stream-index: '003' required: - count - first_reaction_at - last_reaction_at type: object TrackActivityMetricsResponse: description: Response containing results for each tracked metric event nullable: true properties: duration: type: string x-stream-index: '002.001' results: description: Results for each event in the request, in the same order items: $ref: '#/components/schemas/TrackActivityMetricsEventResult' title: Results type: array x-stream-index: '001' required: - results - duration title: Track Activity Metrics Response type: object UpdateBookmarkFolderResponse: nullable: true properties: bookmark_folder: $ref: '#/components/schemas/BookmarkFolderResponse' description: The updated bookmark folder title: Bookmark Folder x-stream-index: '001' duration: type: string x-stream-index: '002.001' required: - bookmark_folder - duration title: Update Bookmark Folder Response type: object UpdateFeedMembersResponse: description: Basic response information nullable: true properties: added: items: $ref: '#/components/schemas/FeedMemberResponse' type: array x-stream-index: '001' duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: '004.001' removed_ids: items: type: string type: array x-stream-index: '003' updated: items: $ref: '#/components/schemas/FeedMemberResponse' type: array x-stream-index: '002' required: - added - updated - removed_ids - duration title: Response type: object TrackActivityMetricsEventResult: description: Result of tracking a single metric event properties: activity_id: description: The activity ID from the request title: Activity ID type: string x-stream-index: '001' allowed: description: Whether the metric was counted (false if rate-limited) title: Allowed type: boolean x-stream-index: '003' error: description: Error message if processing failed title: Error type: string x-stream-index: '004' metric: description: The metric name from the request title: Metric type: string x-stream-index: '002' required: - activity_id - metric - allowed title: Track Activity Metrics Event Result type: object CollectionRequest: properties: custom: additionalProperties: {} description: Custom data for the collection (required, must contain at least one key) minimum: 1 title: Custom Data type: object x-stream-index: '003' id: description: Unique identifier for the collection within its name (optional, will be auto-generated if not provided) maxLength: 128 title: ID type: string x-stream-index: '002' name: description: Name/type of the collection maxLength: 128 title: Name type: string x-stream-index: '001' user_id: description: ID of the user who owns this collection title: User ID type: string x-stream-index: '004' required: - name - custom title: Collection Request type: object RejectFollowResponse: nullable: true properties: duration: type: string x-stream-index: '002.001' follow: $ref: '#/components/schemas/FollowResponse' description: The rejected follow relationship title: Follow x-stream-index: '001' required: - follow - duration title: Reject Follow Response type: object MarkActivityRequest: nullable: true properties: mark_all_read: description: Whether to mark all activities as read title: Mark All Read type: boolean x-stream-index: '005' mark_all_seen: description: Whether to mark all activities as seen title: Mark All Seen type: boolean x-stream-index: '003' mark_read: description: List of activity IDs to mark as read items: type: string title: Mark Read type: array x-stream-index: '004' mark_seen: description: List of activity IDs to mark as seen items: type: string title: Mark Seen type: array x-stream-index: '006' mark_watched: description: List of activity IDs to mark as watched (for stories) items: type: string title: Mark Watched type: array x-stream-index: '007' user: $ref: '#/components/schemas/UserRequest' x-stream-index: '009.002' user_id: type: string x-stream-index: '009.001' title: Mark Activity Request type: object FeedGroupResponse: properties: activity_filter: $ref: '#/components/schemas/ActivityFilterConfig' description: Activity filter configuration. Controls which activities are included in feed reads. Not supported on the notification, story, or stories built-in groups — those requests are rejected with 400. title: Activity Filter x-stream-index: '014' activity_processors: description: Configuration for activity processors items: $ref: '#/components/schemas/ActivityProcessorConfig' title: Activity Processors type: array x-stream-index: '010' activity_selectors: description: Configuration for activity selectors items: $ref: '#/components/schemas/ActivitySelectorConfigResponse' title: Activity Selectors type: array x-stream-index: '011' aggregation: $ref: '#/components/schemas/AggregationConfig' description: Configuration for activity aggregation title: Aggregation x-stream-index: '013' created_at: description: When the feed group was created format: date-time title: Created At type: number x-stream-index: '006' custom: additionalProperties: {} description: Custom data for the feed group title: Custom Data type: object x-stream-index: '005' default_visibility: description: 'Default visibility for activities. One of: public, visible, followers, members, private' enum: - public - visible - followers - members - private title: Default Visibility type: string x-stream-index: '004' deleted_at: format: date-time type: number x-stream-index: 008 id: description: Identifier within the group title: Feed Group ID type: string x-stream-index: '001' notification: $ref: '#/components/schemas/NotificationConfig' description: Configuration for notifications title: Notification x-stream-index: '002' push_notification: $ref: '#/components/schemas/PushNotificationConfig' description: Configuration for push notifications title: Push Notification x-stream-index: '003' ranking: $ref: '#/components/schemas/RankingConfig' description: Configuration for activity ranking title: Ranking x-stream-index: '012' stories: $ref: '#/components/schemas/StoriesConfig' description: Configuration for stories feature title: Stories x-stream-index: 009 updated_at: description: When the feed group was last updated format: date-time title: Updated At type: number x-stream-index: '007' required: - id - created_at - updated_at title: Feed Group type: object UpdateActivityPartialRequest: nullable: true properties: copy_custom_to_notification: deprecated: true description: 'Whether to copy custom data to the notification activity (only applies when handle_mention_notifications creates notifications) Deprecated: use notification_context.trigger.custom and notification_context.target.custom instead' title: Copy Custom To Notification type: boolean x-stream-index: '005' enrich_own_fields: description: If true, enriches the activity's current_feed with own_* fields (own_follows, own_followings, own_capabilities, own_membership). Defaults to false for performance. title: Enrich Own Fields type: boolean x-stream-index: '007' force_moderation: description: If true, forces moderation to run for server-side requests. By default, server-side requests skip moderation. Client-side requests always run moderation regardless of this field. title: Force Moderation type: boolean x-stream-index: 008 handle_mention_notifications: description: If true, creates notification activities for newly mentioned users and deletes notifications for users no longer mentioned title: Handle Mention Notifications type: boolean x-stream-index: '004' run_activity_processors: description: If true, runs activity processors on the updated activity. Processors will only run if the activity text and/or attachments are changed. Defaults to false. title: Run Activity Processors type: boolean x-stream-index: '006' set: additionalProperties: {} description: 'Map of field names to new values. Supported fields: ''text'', ''attachments'', ''custom'', ''visibility'', ''visibility_tag'', ''restrict_replies'' (values: ''everyone'', ''people_i_follow'', ''nobody''), ''location'', ''expires_at'', ''filter_tags'', ''interest_tags'', ''poll_id'', ''feeds'', ''mentioned_user_ids'', ''search_data''. For custom fields, use dot-notation (e.g., ''custom.field_name'')' title: Set type: object x-stream-index: '002' unset: description: 'List of field names to remove. Supported fields: ''custom'', ''visibility_tag'', ''location'', ''expires_at'', ''filter_tags'', ''interest_tags'', ''attachments'', ''poll_id'', ''mentioned_user_ids'', ''search_data''. Use dot-notation for nested custom fields (e.g., ''custom.field_name'')' items: type: string title: Unset type: array x-stream-index: '003' user: $ref: '#/components/schemas/UserRequest' x-stream-index: '010.002' user_id: type: string x-stream-index: '010.001' type: object AddCommentResponse: nullable: true properties: comment: $ref: '#/components/schemas/CommentResponse' description: The created comment title: Comment x-stream-index: '001' duration: type: string x-stream-index: '004.001' mention_notifications_created: description: Number of mention notification activities created for mentioned users format: int32 title: Mention Notifications Created type: integer x-stream-index: '003' notification_created: description: Whether a notification activity was successfully created title: Notification Created type: boolean x-stream-index: '002' required: - comment - duration title: Add Comment Response type: object UpdateBookmarkRequest: nullable: true properties: custom: additionalProperties: {} description: Custom data for the bookmark title: Custom Data type: object x-stream-index: '005' folder_id: description: ID of the folder containing the bookmark maxLength: 255 title: Folder ID type: string x-stream-index: '002' new_folder: $ref: '#/components/schemas/AddFolderRequest' description: Create a new folder and move the bookmark into it title: New Folder x-stream-index: '004' new_folder_id: description: Move the bookmark to this folder (empty string removes the folder) maxLength: 255 title: New Folder ID type: string x-stream-index: '003' user: $ref: '#/components/schemas/UserRequest' x-stream-index: '006.002' user_id: type: string x-stream-index: '006.001' title: Update Bookmark Request type: object PollVoteResponse: nullable: true properties: duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: '003.001' poll: $ref: '#/components/schemas/PollResponseData' description: Poll title: PollResponseData x-stream-index: '002' vote: $ref: '#/components/schemas/PollVoteResponseData' description: Poll vote title: PollVoteResponseData x-stream-index: '001' required: - duration type: object RestoreActivityRequest: nullable: true properties: user: $ref: '#/components/schemas/UserRequest' x-stream-index: '004.002' user_id: type: string x-stream-index: '004.001' title: Restore Activity Request type: object UpdateFeedViewResponse: nullable: true properties: duration: type: string x-stream-index: '002.001' feed_view: $ref: '#/components/schemas/FeedViewResponse' description: The updated feed view title: Feed View x-stream-index: '001' required: - feed_view - duration title: Update Feed View Response type: object RestoreCommentResponse: nullable: true properties: activity: $ref: '#/components/schemas/ActivityResponse' description: The parent activity with updated counts title: Activity x-stream-index: '002' comment: $ref: '#/components/schemas/CommentResponse' description: The restored comment title: Comment x-stream-index: '001' duration: type: string x-stream-index: '003.001' required: - comment - activity - duration title: Restore Comment Response type: object PagerResponse: properties: next: type: string x-stream-index: '001' prev: type: string x-stream-index: '002' type: object FeedsReactionResponse: properties: activity_id: type: string x-stream-index: '002' comment_id: type: string x-stream-index: '003' created_at: format: date-time type: number x-stream-index: '006' custom: additionalProperties: {} type: object x-stream-index: '005' type: type: string x-stream-index: '004' updated_at: format: date-time type: number x-stream-index: '007' user: $ref: '#/components/schemas/UserResponse' x-stream-index: '001' required: - user - activity_id - type - created_at - updated_at type: object TrackActivityMetricsEvent: description: A single metric event to track for an activity properties: activity_id: description: The ID of the activity to track the metric for maxLength: 255 title: Activity ID type: string x-stream-index: '001' delta: description: The amount to increment (positive) or decrement (negative). Defaults to 1. The absolute value counts against rate limits. format: int64 title: Delta type: integer x-stream-index: '003' metric: description: The metric name (e.g. views, clicks, impressions). Alphanumeric and underscores only. maxLength: 64 title: Metric type: string x-stream-index: '002' required: - activity_id - metric title: Track Activity Metrics Event type: object DailyMetricStatsResponse: properties: daily: description: Array of daily metric values items: $ref: '#/components/schemas/DailyMetricResponse' title: Daily type: array x-stream-index: '001' total: description: Total value across all days in the date range format: int64 title: Total type: integer x-stream-index: '002' required: - daily - total type: object DeleteFeedsBatchResponse: nullable: true properties: duration: type: string x-stream-index: '002.001' task_id: description: The ID of the async task that will handle feed cleanup and hard deletion title: Task ID type: string x-stream-index: '001' required: - task_id - duration title: Delete Feeds Batch Response type: object DeleteCommentReactionResponse: nullable: true properties: comment: $ref: '#/components/schemas/CommentResponse' description: The comment after reaction removal title: Comment x-stream-index: '001' duration: type: string x-stream-index: '003.001' reaction: $ref: '#/components/schemas/FeedsReactionResponse' description: The removed reaction title: Reaction x-stream-index: '002' required: - comment - reaction - duration title: Delete Comment Reaction Response type: object UnfollowPair: properties: keep_history: description: 'When true, activities from the unfollowed feed will remain in the source feed''s timeline (default: false)' title: Keep History type: boolean x-stream-index: '003' source: description: Fully qualified ID of the source feed maxLength: 255 title: Source Feed type: string x-stream-index: '001' target: description: Fully qualified ID of the target feed maxLength: 255 title: Target Feed type: string x-stream-index: '002' required: - source - target title: UnfollowPair type: object DecayFunctionConfig: properties: base: description: Base value for decay function title: Base type: string x-stream-index: '001' decay: description: Decay rate title: Decay type: string x-stream-index: '005' direction: description: Direction of decay title: Direction type: string x-stream-index: '006' offset: description: Offset value for decay function title: Offset type: string x-stream-index: '004' origin: description: Origin value for decay function title: Origin type: string x-stream-index: '002' scale: description: Scale factor for decay function title: Scale type: string x-stream-index: '003' title: Decay Function Configuration type: object UpdateActivityPartialChangeRequest: properties: activity_id: description: ID of the activity to update maxLength: 255 title: Activity ID type: string x-stream-index: '001' copy_custom_to_notification: deprecated: true description: 'Whether to copy custom data to the notification activity (only applies when handle_mention_notifications creates notifications) Deprecated: use notification_context.trigger.custom and notification_context.target.custom instead' title: Copy Custom To Notification type: boolean x-stream-index: '005' handle_mention_notifications: description: When true and 'mentioned_user_ids' is updated, automatically creates or deletes mention notifications for added/removed users. Only applicable for client-side requests (ignored for server-side requests) title: Handle Mention Notifications type: boolean x-stream-index: '004' set: additionalProperties: {} description: 'Map of field names to new values. Supported fields: ''text'', ''attachments'', ''custom'', ''visibility'', ''visibility_tag'', ''restrict_replies'' (values: ''everyone'', ''people_i_follow'', ''nobody''), ''location'', ''expires_at'', ''filter_tags'', ''interest_tags'', ''poll_id'', ''feeds'', ''mentioned_user_ids''. For custom fields, use dot-notation (e.g., ''custom.field_name'')' title: Set type: object x-stream-index: '002' unset: description: 'List of field names to remove. Supported fields: ''custom'', ''location'', ''expires_at'', ''filter_tags'', ''interest_tags'', ''attachments'', ''poll_id'', ''mentioned_user_ids''. Use dot-notation for nested custom fields (e.g., ''custom.field_name'')' items: type: string title: Unset type: array x-stream-index: '003' required: - activity_id type: object Images: properties: fixed_height: $ref: '#/components/schemas/ImageData' x-stream-index: '002' fixed_height_downsampled: $ref: '#/components/schemas/ImageData' x-stream-index: '004' fixed_height_still: $ref: '#/components/schemas/ImageData' x-stream-index: '003' fixed_width: $ref: '#/components/schemas/ImageData' x-stream-index: '005' fixed_width_downsampled: $ref: '#/components/schemas/ImageData' x-stream-index: '007' fixed_width_still: $ref: '#/components/schemas/ImageData' x-stream-index: '006' original: $ref: '#/components/schemas/ImageData' x-stream-index: '001' required: - original - fixed_height - fixed_height_still - fixed_height_downsampled - fixed_width - fixed_width_still - fixed_width_downsampled type: object CreateFeedsBatchRequest: nullable: true properties: enrich_own_fields: description: If true, enriches the created feeds with own_* fields (own_follows, own_followings, own_capabilities, own_membership). Defaults to false for performance. title: Enrich Own Fields type: boolean x-stream-index: '002' feeds: description: List of feeds to create items: $ref: '#/components/schemas/FeedRequest' maxItems: 1000 minItems: 1 title: Feeds type: array x-stream-index: '001' required: - feeds title: Create Feeds Batch Request type: object SortParamRequest: nullable: true properties: direction: description: 'Direction of sorting, 1 for Ascending, -1 for Descending, default is 1. One of: -1, 1' format: int32 title: Direction type: integer x-stream-index: '003' field: description: Name of field to sort by title: Field type: string x-stream-index: '001' type: description: 'Type of field to sort by. Empty string or omitted means string type (default). One of: number, boolean' title: Type type: string x-stream-index: '002' type: object UserRequest: description: User request object properties: custom: additionalProperties: {} description: Custom user data title: Custom type: object x-stream-index: '004' id: description: User ID title: ID type: string x-stream-index: '001' image: description: User's profile image URL title: Image type: string x-stream-index: '003' invisible: type: boolean x-stream-index: '006' language: type: string x-stream-index: '005' name: description: Optional name of user title: Name type: string x-stream-index: '002' privacy_settings: $ref: '#/components/schemas/PrivacySettingsResponse' x-stream-index: '007' role: description: User's global role title: Role type: string x-stream-index: 008 teams: description: List of teams the user belongs to items: type: string title: Teams type: array x-stream-index: '010' teams_role: additionalProperties: type: string description: Map of team-specific roles for the user title: TeamsRole type: object x-stream-index: 009 required: - id title: UserRequest type: object TypingIndicatorsResponse: properties: enabled: type: boolean x-stream-index: '001' type: object CreateFeedGroupRequest: nullable: true properties: activity_filter: $ref: '#/components/schemas/ActivityFilterConfig' description: Activity filter configuration. Controls which activities are included in feed reads. Not supported on the notification, story, or stories built-in groups — those requests are rejected with 400. title: Activity Filter x-stream-index: '002.010' activity_processors: description: Configuration for activity processors items: $ref: '#/components/schemas/ActivityProcessorConfig' maxItems: 10 title: Activity Processors type: array x-stream-index: '002.006' activity_selectors: description: Configuration for activity selectors items: $ref: '#/components/schemas/ActivitySelectorConfig' title: Activity Selectors type: array x-stream-index: '002.007' aggregation: $ref: '#/components/schemas/AggregationConfig' description: Configuration for activity aggregation title: Aggregation x-stream-index: '002.009' custom: additionalProperties: {} description: Custom data for the feed group title: Custom Data type: object x-stream-index: '002.004' default_visibility: description: 'Default visibility for the feed group, can be ''public'', ''visible'', ''followers'', ''members'', or ''private''. Defaults to ''visible'' if not provided. ' enum: - public - visible - followers - members - private title: Default Visibility type: string x-stream-index: '002.005' id: description: Unique identifier for the feed group maxLength: 255 title: Feed Group ID type: string x-stream-index: '001' notification: $ref: '#/components/schemas/NotificationConfig' description: Configuration for notifications title: Notification x-stream-index: '002.001' push_notification: $ref: '#/components/schemas/PushNotificationConfig' x-stream-index: '002.002' ranking: $ref: '#/components/schemas/RankingConfig' description: Configuration for activity ranking title: Ranking x-stream-index: '002.008' stories: $ref: '#/components/schemas/StoriesConfig' description: Configuration for stories functionality title: Stories x-stream-index: '002.003' required: - id title: Create Feed Group Request type: object DeleteFeedsBatchRequest: nullable: true properties: feeds: description: 'List of fully qualified feed IDs (format: group_id:feed_id) to delete' items: type: string maxItems: 100 minItems: 1 title: Feed IDs type: array x-stream-index: '001' hard_delete: description: Whether to permanently delete the feeds instead of soft delete title: Hard Delete type: boolean x-stream-index: '002' required: - feeds title: Delete Feeds Batch Request type: object AcceptFeedMemberInviteRequest: nullable: true properties: user: $ref: '#/components/schemas/UserRequest' x-stream-index: '003.002' user_id: type: string x-stream-index: '003.001' title: Accept Feed Member Invite Request type: object ActivityProcessorConfig: nullable: true properties: type: description: Type of activity processor (required) title: Type type: string x-stream-index: '001' required: - type title: Activity Processor Configuration type: object GetFeedVisibilityResponse: nullable: true properties: duration: type: string x-stream-index: '002.001' feed_visibility: $ref: '#/components/schemas/FeedVisibilityResponse' description: Feed visibility configuration and permissions title: Feed Visibility x-stream-index: '001' required: - feed_visibility - duration title: Get Feed Visibility Response type: object AddActivityRequest: nullable: true properties: attachments: description: List of attachments for the activity items: $ref: '#/components/schemas/Attachment' title: Attachments type: array x-stream-index: '001.006' collection_refs: description: Collections that this activity references items: type: string title: Collection References type: array x-stream-index: '001.016' copy_custom_to_notification: deprecated: true description: 'Whether to copy custom data to the notification activity (only applies when create_notification_activity is true) Deprecated: use notification_context.trigger.custom and notification_context.target.custom instead' title: Copy Custom To Notification type: boolean x-stream-index: '001.022' create_notification_activity: description: Whether to create notification activities for mentioned users title: Create Notification Activity type: boolean x-stream-index: '001.021' create_users: type: boolean x-stream-index: '004' custom: additionalProperties: {} description: Custom data for the activity title: Custom Data type: object x-stream-index: '001.019' enrich_own_fields: type: boolean x-stream-index: '002' expires_at: description: Expiration time for the activity title: Expires At type: string x-stream-index: '001.011' feeds: description: List of feeds to add the activity to with a default max limit of 25 feeds items: type: string minItems: 1 title: Feed IDs type: array x-stream-index: '001.004' filter_tags: description: Tags for filtering activities items: type: string maxItems: 50 title: Filter Tags type: array x-stream-index: '001.014' force_moderation: type: boolean x-stream-index: '003' id: description: Optional ID for the activity maxLength: 255 title: Activity ID type: string x-stream-index: '001.001' interest_tags: description: Tags for indicating user interests items: type: string title: Interest Tags type: array x-stream-index: '001.015' location: $ref: '#/components/schemas/Location' description: Geographic location related to the activity title: Location x-stream-index: '001.010' mentioned_user_ids: description: List of users mentioned in the activity items: type: string title: Mentioned User IDs type: array x-stream-index: '001.012' parent_id: description: ID of parent activity for replies/comments maxLength: 255 title: Parent ID type: string x-stream-index: '001.017' poll_id: description: ID of a poll to attach to activity title: Poll ID type: string x-stream-index: '001.018' restrict_replies: description: 'Controls who can add comments/replies to this activity. One of: everyone, people_i_follow, nobody' enum: - everyone - people_i_follow - nobody title: Restrict Replies type: string x-stream-index: '001.009' search_data: additionalProperties: {} description: Additional data for search indexing title: Search Data type: object x-stream-index: '001.013' skip_enrich_url: description: Whether to skip URL enrichment for the activity title: Skip URL Enrichment type: boolean x-stream-index: '001.020' skip_push: description: Whether to skip push notifications title: Skip Push type: boolean x-stream-index: '001.023' text: description: Text content of the activity title: Text type: string x-stream-index: '001.005' type: description: Type of activity maxLength: 255 title: Activity Type type: string x-stream-index: '001.002' user_id: description: ID of the user creating the activity maxLength: 255 title: User ID type: string x-stream-index: '001.003' visibility: description: 'Visibility setting for the activity. One of: public, private, tag' enum: - public - private - tag title: Visibility type: string x-stream-index: '001.007' visibility_tag: description: If visibility is 'tag', this is the tag name and is required maxLength: 32 title: Visibility Tag type: string x-stream-index: '001.008' required: - type - feeds title: Activity Request type: object AddCommentReactionRequest: nullable: true properties: copy_custom_to_notification: deprecated: true description: 'Whether to copy custom data to the notification activity (only applies when create_notification_activity is true) Deprecated: use notification_context.trigger.custom and notification_context.target.custom instead' title: Copy Custom To Notification type: boolean x-stream-index: '005' create_notification_activity: description: Whether to create a notification activity for this reaction title: Create Notification Activity type: boolean x-stream-index: '004' custom: additionalProperties: {} description: Optional custom data to add to the reaction title: Custom Data type: object x-stream-index: '003' enforce_unique: description: Whether to enforce unique reactions per user (remove other reaction types from the user when adding this one) title: Enforce Unique type: boolean x-stream-index: '007' skip_push: type: boolean x-stream-index: '006' type: description: The type of reaction, eg upvote, like, ... maxLength: 255 title: Type type: string x-stream-index: '002' user: $ref: '#/components/schemas/UserRequest' x-stream-index: '009.002' user_id: type: string x-stream-index: '009.001' required: - type type: object ImageData: properties: frames: type: string x-stream-index: '005' height: type: string x-stream-index: '003' size: type: string x-stream-index: '004' url: type: string x-stream-index: '001' width: type: string x-stream-index: '002' required: - url - width - height - size - frames type: object ReadReceiptsResponse: properties: enabled: type: boolean x-stream-index: '001' type: object DeleteFeedViewResponse: nullable: true properties: duration: type: string x-stream-index: '001.001' required: - duration title: Delete Feed View Response type: object QueryFeedsUsageStatsResponse: nullable: true properties: activities: $ref: '#/components/schemas/DailyMetricStatsResponse' description: Activities statistics with daily breakdown and total title: Activities x-stream-index: '002' api_requests: $ref: '#/components/schemas/DailyMetricStatsResponse' description: API requests statistics with daily breakdown and total title: API Requests x-stream-index: '004' duration: type: string x-stream-index: '001.001' emau: $ref: '#/components/schemas/EMAUStatsResponse' description: Engaged Monthly Active Users snapshots within the requested date range. Omitted when EMAU is not enabled for the app, and also omitted when EMAU is enabled but there are no matching rows in core_feed_daily_usage for the requested date range (JSON omitempty). title: EMAU x-stream-index: '006' follows: $ref: '#/components/schemas/DailyMetricStatsResponse' description: Follows statistics with daily breakdown and total title: Follows x-stream-index: '003' openai_requests: $ref: '#/components/schemas/DailyMetricStatsResponse' description: OpenAI requests statistics with daily breakdown and total title: OpenAI Requests x-stream-index: '005' required: - duration - activities - follows - api_requests - openai_requests type: object PushNotificationConfig: properties: enable_push: description: Whether push notifications are enabled for this feed group title: Enable Push type: boolean x-stream-index: '001' push_types: description: List of notification types that should trigger push notifications (e.g., follow, comment, reaction, comment_reaction, mention) items: type: string title: Push Types type: array x-stream-index: '002' title: Push Notification Configuration type: object AcceptFollowRequest: nullable: true properties: follower_role: description: Optional role for the follower in the follow relationship title: Follower Role type: string x-stream-index: '003' source: description: Fully qualified ID of the source feed maxLength: 255 title: Source Feed ID type: string x-stream-index: '001' target: description: Fully qualified ID of the target feed maxLength: 255 title: Target Feed ID type: string x-stream-index: '002' required: - source - target title: Accept Follow Request type: object UpdateFeedGroupRequest: nullable: true properties: activity_filter: $ref: '#/components/schemas/ActivityFilterConfig' description: Activity filter configuration. Controls which activities are included in feed reads. Not supported on the notification, story, or stories built-in groups — those requests are rejected with 400. title: Activity Filter x-stream-index: '002.010' activity_processors: description: Configuration for activity processors items: $ref: '#/components/schemas/ActivityProcessorConfig' maxItems: 10 title: Activity Processors type: array x-stream-index: '002.006' activity_selectors: description: Configuration for activity selectors items: $ref: '#/components/schemas/ActivitySelectorConfig' title: Activity Selectors type: array x-stream-index: '002.007' aggregation: $ref: '#/components/schemas/AggregationConfig' description: Configuration for activity aggregation title: Aggregation x-stream-index: '002.009' custom: additionalProperties: {} description: Custom data for the feed group title: Custom Data type: object x-stream-index: '002.004' default_visibility: enum: - public - visible - followers - members - private type: string x-stream-index: '002.005' notification: $ref: '#/components/schemas/NotificationConfig' description: Configuration for notifications title: Notification x-stream-index: '002.001' push_notification: $ref: '#/components/schemas/PushNotificationConfig' x-stream-index: '002.002' ranking: $ref: '#/components/schemas/RankingConfig' description: Configuration for activity ranking title: Ranking x-stream-index: '002.008' stories: $ref: '#/components/schemas/StoriesConfig' description: Configuration for stories functionality title: Stories x-stream-index: '002.003' title: Update Feed Group Request type: object FeedResponse: properties: activity_count: format: int32 type: integer x-stream-index: '014' created_at: description: When the feed was created format: date-time title: Created At type: number x-stream-index: '020' created_by: $ref: '#/components/schemas/UserResponse' description: User who created the feed title: Created By x-stream-index: '010' custom: additionalProperties: {} description: Custom data for the feed title: Custom Data type: object x-stream-index: '006' deleted_at: description: When the feed was deleted format: date-time title: Deleted At type: number x-stream-index: '022' description: description: Description of the feed title: Description type: string x-stream-index: '005' feed: description: Fully qualified feed ID (group_id:id) title: FID type: string x-stream-index: '003' filter_tags: description: Tags used for filtering feeds items: type: string title: Filter Tags type: array x-stream-index: 008 follower_count: description: Number of followers of this feed format: int32 title: Follower Count type: integer x-stream-index: '012' following_count: description: Number of feeds this feed follows format: int32 title: Following Count type: integer x-stream-index: '013' group_id: description: Group this feed belongs to title: Group ID type: string x-stream-index: '001' id: description: Unique identifier for the feed title: ID type: string x-stream-index: '002' location: $ref: '#/components/schemas/Location' description: Geographic location for the feed title: Location x-stream-index: '007' member_count: description: Number of members in this feed format: int32 title: Member Count type: integer x-stream-index: '011' name: description: Name of the feed title: Name type: string x-stream-index: '004' own_capabilities: description: Capabilities the current user has for this feed items: $ref: '#/components/schemas/FeedOwnCapability' title: Own Capabilities type: array x-stream-index: 018 own_followings: description: Follow relationships where the feed owner’s feeds are following the current user's feeds items: $ref: '#/components/schemas/FollowResponse' title: Own Followings type: array x-stream-index: '017' own_follows: description: Follow relationships where the current user's feeds are following this feed items: $ref: '#/components/schemas/FollowResponse' title: Own Follows type: array x-stream-index: '016' own_membership: $ref: '#/components/schemas/FeedMemberResponse' description: Membership information for the current user in this feed title: Own Membership x-stream-index: 019 pin_count: description: Number of pinned activities in this feed format: int32 title: Pin Count type: integer x-stream-index: '015' updated_at: description: When the feed was last updated format: date-time title: Updated At type: number x-stream-index: '021' visibility: description: Visibility setting for the feed enum: - public - visible - followers - members - private title: Visibility type: string x-stream-index: 009 required: - group_id - id - feed - name - description - created_by - member_count - follower_count - following_count - activity_count - pin_count - created_at - updated_at title: Feed type: object UpdateFeedResponse: nullable: true properties: duration: type: string x-stream-index: '002.001' feed: $ref: '#/components/schemas/FeedResponse' description: The updated feed title: Feed x-stream-index: '001' required: - feed - duration title: Update Feed Response type: object UpdateFeedVisibilityResponse: nullable: true properties: duration: type: string x-stream-index: '002.001' feed_visibility: $ref: '#/components/schemas/FeedVisibilityResponse' description: Feed visibility configuration and permissions title: Feed Visibility x-stream-index: '001' required: - feed_visibility - duration title: Update Feed Visibility Response type: object GetOrCreateFeedResponse: description: Basic response information nullable: true properties: activities: items: $ref: '#/components/schemas/ActivityResponse' type: array x-stream-index: '002' aggregated_activities: items: $ref: '#/components/schemas/AggregatedActivityResponse' type: array x-stream-index: '003' created: type: boolean x-stream-index: '012' duration: description: Duration of the request in milliseconds title: Duration type: string x-stream-index: '014.001' feed: $ref: '#/components/schemas/FeedResponse' x-stream-index: '001' followers: items: $ref: '#/components/schemas/FollowResponse' type: array x-stream-index: '005' followers_pagination: $ref: '#/components/schemas/PagerResponse' x-stream-index: 009 following: items: $ref: '#/components/schemas/FollowResponse' type: array x-stream-index: '006' following_pagination: $ref: '#/components/schemas/PagerResponse' x-stream-index: '010' member_pagination: $ref: '#/components/schemas/PagerResponse' x-stream-index: 008 members: items: $ref: '#/components/schemas/FeedMemberResponse' type: array x-stream-index: '004' next: type: string x-stream-index: '013.001' notification_status: $ref: '#/components/schemas/NotificationStatusResponse' x-stream-index: '011' pinned_activities: items: $ref: '#/components/schemas/ActivityPinResponse' type: array x-stream-index: '007' prev: type: string x-stream-index: '013.002' required: - feed - activities - aggregated_activities - members - followers - following - pinned_activities - created - duration title: Response type: object UpdateActivitiesPartialBatchRequest: nullable: true properties: changes: description: List of activity changes to apply. Each change specifies an activity ID and the fields to set/unset items: $ref: '#/components/schemas/UpdateActivityPartialChangeRequest' maxItems: 100 minItems: 1 title: Changes type: array x-stream-index: '001' force_moderation: description: If true, forces moderation to run for server-side requests. By default, server-side requests skip moderation. Client-side requests always run moderation regardless of this field. title: Force Moderation type: boolean x-stream-index: '002' required: - changes title: Update Activities Partial Batch Request type: object RestoreFeedGroupResponse: nullable: true properties: duration: type: string x-stream-index: '002.001' feed_group: $ref: '#/components/schemas/FeedGroupResponse' description: The restored feed group title: Feed Group x-stream-index: '001' required: - feed_group - duration title: Restore Feed Group Response type: object UpdateFollowRequest: nullable: true properties: activity_copy_limit: description: 'Maximum number of historical activities to copy from the target feed when the follow is first materialized. Not set = unlimited (default). 0 = copy nothing. Range: 0-1000.' format: int32 maximum: 1000 minimum: 0 title: Activity Copy Limit type: integer x-stream-index: '001.008' copy_custom_to_notification: deprecated: true description: 'Whether to copy custom data to the notification activity (only applies when create_notification_activity is true) Deprecated: use notification_context.trigger.custom and notification_context.target.custom instead' title: Copy Custom To Notification type: boolean x-stream-index: '001.005' create_notification_activity: description: Whether to create a notification activity for this follow title: Create Notification Activity type: boolean x-stream-index: '001.004' create_users: description: If true, auto-creates users referenced by the source and target FIDs when they don't already exist. Server-side only. Defaults to false. For FollowBatch/GetOrCreateFollows, use the top-level create_users field; per-item follows[i].create_users is rejected. title: Create Users type: boolean x-stream-index: '001.010' custom: additionalProperties: {} description: Custom data for the follow relationship title: Custom Data type: object x-stream-index: '001.002' enrich_own_fields: description: If true, enriches the follow's source_feed and target_feed with own_* fields (own_follows, own_followings, own_capabilities, own_membership). Defaults to false for performance. title: Enrich Own Fields type: boolean x-stream-index: '001.009' follower_role: type: string x-stream-index: '002' push_preference: description: Push preference for the follow relationship enum: - all - none title: Push Preference type: string x-stream-index: '001.003' skip_push: description: Whether to skip push for this follow title: Skip Push type: boolean x-stream-index: '001.006' source: description: Fully qualified ID of the source feed maxLength: 255 title: Source Feed type: string x-stream-index: 001.001.001 status: description: 'Status of the follow relationship. One of: accepted, pending, rejected' enum: - accepted - pending - rejected title: Status type: string x-stream-index: '001.007' target: description: Fully qualified ID of the target feed maxLength: 255 title: Target Feed type: string x-stream-index: 001.001.002 required: - source - target title: Update Follow Request type: object QueryFeedMembersRequest: nullable: true properties: filter: additionalProperties: {} description: Filter parameters for the query title: Filter type: object x-stream-index: '003' limit: format: int32 maximum: 100 minimum: 0 type: integer x-stream-index: '005.001' next: type: string x-stream-index: '005.002' prev: type: string x-stream-index: '005.003' sort: description: Sort parameters for the query items: $ref: '#/components/schemas/SortParamRequest' maxItems: 5 title: Sort type: array x-stream-index: '004' type: object UnfollowBatchRequest: nullable: true properties: delete_notification_activity: description: 'Whether to delete the corresponding notification activity (default: false)' title: Delete Notification Activity type: boolean x-stream-index: '002' enrich_own_fields: description: If true, enriches the follow's source_feed and target_feed with own_* fields (own_follows, own_followings, own_capabilities, own_membership). Defaults to false for performance. title: Enrich Own Fields type: boolean x-stream-index: '003' follows: description: List of follow relationships to remove, each with optional keep_history items: $ref: '#/components/schemas/UnfollowPair' maxItems: 100 minItems: 1 title: Follows type: array x-stream-index: '001' required: - follows title: Unfollow Batch Request type: object AddReactionResponse: nullable: true properties: activity: $ref: '#/components/schemas/ActivityResponse' x-stream-index: '001' duration: type: string x-stream-index: '004.001' notification_created: description: Whether a notification activity was successfully created title: Notification Created type: boolean x-stream-index: '003' reaction: $ref: '#/components/schemas/FeedsReactionResponse' description: The created reaction title: Reaction x-stream-index: '002' required: - activity - reaction - duration title: Add Reaction Response type: object QueryMembershipLevelsResponse: nullable: true properties: duration: type: string x-stream-index: '003.001' membership_levels: items: $ref: '#/components/schemas/MembershipLevelResponse' type: array x-stream-index: '001' next: description: Cursor for next page title: Next type: string x-stream-index: '002.001' prev: description: Cursor for previous page title: Previous type: string x-stream-index: '002.002' required: - membership_levels - duration title: Query Membership Levels Response type: object QueryRevisionHistoryRequest: nullable: true properties: filter: additionalProperties: {} description: Filter to apply to the query maximum: 5 minimum: 1 title: Filter type: object x-stream-index: '001' limit: format: int32 maximum: 100 minimum: 0 type: integer x-stream-index: '004.001' next: type: string x-stream-index: '004.002' prev: type: string x-stream-index: '004.003' sort: description: Array of sort parameters items: $ref: '#/components/schemas/SortParamRequest' maxItems: 5 title: Sort type: array x-stream-index: '002' required: - filter type: object LimitInfoResponse: properties: limit: description: The maximum number of API calls allowed per time window format: int64 title: Limit type: integer x-stream-index: '001' remaining: description: The number of remaining calls in the current window format: int64 title: Remaining type: integer x-stream-index: '002' reset: description: The Unix timestamp when the rate limit resets format: int64 title: Reset type: integer x-stream-index: '003' required: - limit - remaining - reset title: LimitInfo type: object x-stream-docs-page-id: rate_limits PushNotificationSettingsResponse: properties: disabled: type: boolean x-stream-index: '001' disabled_until: format: date-time type: number x-stream-index: '002' type: object QueryCommentsRequest: nullable: true properties: filter: additionalProperties: {} description: Filter to apply to the query title: Filter type: object x-stream-filter-fields: comment_text: operators: - $q type: string confidence_score: operators: - $gt - $gte - $lt - $lte type: number controversy_score: operators: - $gt - $gte - $lt - $lte type: number created_at: operators: - $eq - $gt - $gte - $lt - $lte type: date downvote_count: operators: - $gt - $gte - $lt - $lte type: number id: operators: - $eq - $in type: string object_id: operators: - $eq - $in type: string object_type: operators: - $eq - $in type: string parent_id: operators: - $eq - $in type: string reply_count: operators: - $gt - $gte - $lt - $lte type: number score: operators: - $gt - $gte - $lt - $lte type: number status: operators: - $eq - $in type: string upvote_count: operators: - $gt - $gte - $lt - $lte type: number user_id: operators: - $eq - $in type: string x-stream-index: '001' id_around: description: Returns the comment with the specified ID along with surrounding comments for context title: ID Around type: string x-stream-index: '003' limit: description: Maximum number of comments to return format: int32 maximum: 100 minimum: 0 title: Limit type: integer x-stream-index: '004.001' next: type: string x-stream-index: '004.002' prev: type: string x-stream-index: '004.003' sort: description: Array of sort parameters enum: - first - last - top - best - controversial title: Sort type: string x-stream-index: '002' x-stream-sort-combinations: - - created_at - - score - - confidence_score - - upvote_count - - downvote_count - - controversy_score x-stream-sort-fields: - confidence_score - controversy_score - created_at - downvote_count - score - upvote_count user: $ref: '#/components/schemas/UserRequest' x-stream-index: '006.002' user_id: type: string x-stream-index: '006.001' required: - filter title: Query Comments Request type: object DeleteActivityResponse: nullable: true properties: duration: type: string x-stream-index: '001.001' required: - duration title: Delete Activity Response type: object AddFolderRequest: properties: custom: additionalProperties: {} description: Custom data for the folder title: Custom Data type: object x-stream-index: '002' name: description: Name of the folder maxLength: 255 title: Name type: string x-stream-index: '001' required: - name title: Add Folder Request type: object UpsertActivitiesRequest: nullable: true properties: activities: description: List of activities to create or update items: $ref: '#/components/schemas/ActivityRequest' maxItems: 100 minItems: 1 title: Activities type: array x-stream-index: '001' create_users: description: 'Server-side only. If true, auto-creates users referenced by activity user_id values that don''t already exist. Default: false.' title: Create Users type: boolean x-stream-index: '004' enrich_own_fields: description: If true, enriches the activities' current_feed with own_* fields (own_follows, own_followings, own_capabilities, own_membership). Defaults to false for performance. title: Enrich Own Fields type: boolean x-stream-index: '002' force_moderation: description: If true, forces moderation to run for server-side requests. By default, server-side requests skip moderation. Client-side requests always run moderation regardless of this field. title: Force Moderation type: boolean x-stream-index: '003' required: - activities title: Upsert Activities Request type: object FriendReactionsOptions: description: Options to control fetching reactions from friends (users you follow or have mutual follows with). properties: enabled: description: 'Default: false. When true, fetches friend reactions for activities.' title: Enabled type: boolean x-stream-index: '001' limit: description: 'Default: 3, Max: 10. The maximum number of friend reactions to return per activity.' format: int32 maximum: 10 minimum: 1 title: Limit type: integer x-stream-index: '003' type: description: 'Default: ''following''. The type of friend relationship to use. ''following'' = users you follow, ''mutual'' = users with mutual follows. One of: following, mutual' enum: - following - mutual title: Friend Type type: string x-stream-index: '002' title: Friend Reactions Options type: object QueryMembershipLevelsRequest: nullable: true properties: filter: additionalProperties: {} description: Filters to apply to the query title: Filter type: object x-stream-index: '001' limit: format: int32 maximum: 100 minimum: 0 type: integer x-stream-index: '003.001' next: type: string x-stream-index: '003.002' prev: type: string x-stream-index: '003.003' sort: description: Sorting parameters for the query items: $ref: '#/components/schemas/SortParamRequest' maxItems: 5 title: Sort type: array x-stream-index: '002' title: Query Membership Levels Request type: object FeedOwnData: properties: own_capabilities: description: Capabilities the current user has for this feed items: $ref: '#/components/schemas/FeedOwnCapability' title: Own Capabilities type: array x-stream-index: '003' own_followings: description: Follow relationships where the feed owner's feeds are following the current user's feeds (up to 5 total) items: $ref: '#/components/schemas/FollowResponse' title: Own Followings type: array x-stream-index: '002' own_follows: description: Follow relationships where the current user's feeds are following this feed items: $ref: '#/components/schemas/FollowResponse' title: Own Follows type: array x-stream-index: '001' own_membership: $ref: '#/components/schemas/FeedMemberResponse' description: Membership information for the current user in this feed title: Own Membership x-stream-index: '004' title: Feed Own Data type: object RestoreActivityResponse: nullable: true properties: activity: $ref: '#/components/schemas/ActivityResponse' description: The restored activity with full enrichment title: Activity x-stream-index: '001' duration: type: string x-stream-index: '002.001' required: - activity - duration title: Restore Activity Response type: object UpdateCollectionRequest: properties: custom: additionalProperties: {} description: Custom data for the collection (required, must contain at least one key) minimum: 1 title: Custom Data type: object x-stream-index: '003' id: description: Unique identifier for the collection within its name maxLength: 128 title: ID type: string x-stream-index: '002' name: description: Name/type of the collection maxLength: 128 title: Name type: string x-stream-index: '001' required: - name - id - custom title: Update Collection Request type: object NotificationParentActivity: properties: attachments: items: $ref: '#/components/schemas/Attachment' type: array x-stream-index: '005' id: type: string x-stream-index: '001' text: type: string x-stream-index: '004' type: type: string x-stream-index: '003' user_id: type: string x-stream-index: '002' required: - id type: object AcceptFollowResponse: nullable: true properties: duration: type: string x-stream-index: '002.001' follow: $ref: '#/components/schemas/FollowResponse' description: The accepted follow relationship title: Follow x-stream-index: '001' required: - follow - duration title: Accept Follow Response type: object OwnBatchResponse: nullable: true properties: data: additionalProperties: $ref: '#/components/schemas/FeedOwnData' description: Map of feed ID to own fields data title: Data type: object x-stream-index: '001' duration: type: string x-stream-index: '002.001' required: - data - duration title: Own Batch Response type: object QueryCommentsResponse: nullable: true properties: comments: description: List of comments matching the query items: $ref: '#/components/schemas/CommentResponse' title: Comments type: array x-stream-index: '001' duration: type: string x-stream-index: '003.001' next: description: Cursor for next page title: Next type: string x-stream-index: '002.001' prev: description: Cursor for previous page title: Previous type: string x-stream-index: '002.002' required: - comments - duration title: Query Comments Response type: object OwnBatchRequest: description: Request to get own_follows, own_followings, own_capabilities, and/or own_membership for multiple feeds. If fields is not specified, all fields are returned. nullable: true properties: feeds: description: List of feed IDs to get own fields for items: type: string maxItems: 100 minItems: 1 title: Feed IDs type: array x-stream-index: '001' fields: description: Optional list of specific fields to return. If not specified, all fields (own_follows, own_followings, own_capabilities, own_membership) are returned items: type: string title: Fields type: array x-stream-index: '002' user: $ref: '#/components/schemas/UserRequest' x-stream-index: '003.002' user_id: type: string x-stream-index: '003.001' required: - feeds title: Own Batch Request type: object CreateFeedGroupResponse: nullable: true properties: duration: type: string x-stream-index: '002.001' feed_group: $ref: '#/components/schemas/FeedGroupResponse' description: The upserted feed group title: Feed Group x-stream-index: '001' required: - feed_group - duration title: Upsert Feed Group Response type: object QueryCommentReactionsRequest: nullable: true properties: filter: additionalProperties: {} type: object x-stream-index: '002' limit: format: int32 maximum: 100 minimum: 0 type: integer x-stream-index: '004.001' next: type: string x-stream-index: '004.002' prev: type: string x-stream-index: '004.003' sort: items: $ref: '#/components/schemas/SortParamRequest' maxItems: 5 type: array x-stream-index: '003' type: object ActivitySelectorConfig: properties: cutoff_time: description: Time threshold for activity selection (string). Expected RFC3339 format (e.g., 2006-01-02T15:04:05Z07:00). Cannot be used together with cutoff_window title: Cutoff Time type: string x-stream-index: '004' cutoff_window: description: Flexible relative time window for activity selection (e.g., '1h', '3d', '1y'). Activities older than this duration will be filtered out. Cannot be used together with cutoff_time title: Cutoff Window type: string x-stream-index: '006' filter: additionalProperties: {} description: Filter for activity selection title: Filter type: object x-stream-index: '002' min_popularity: description: Minimum popularity threshold. For the 'popular' selector, omit to use the default (5); values below 1 are rejected format: int32 minimum: 0 title: Minimum Popularity type: integer x-stream-index: 008 params: additionalProperties: {} type: object x-stream-index: 009 sort: description: Sort parameters for activity selection items: $ref: '#/components/schemas/SortParamRequest' title: Sort type: array x-stream-index: '003' type: description: 'Type of selector. One of: popular, proximity, following, current_feed, query, interest, follow_suggestion' enum: - popular - proximity - following - current_feed - query - interest - follow_suggestion title: Type type: string x-stream-index: '001' required: - type title: Activity Selector Configuration type: object GetOrCreateFeedViewResponse: nullable: true properties: duration: type: string x-stream-index: '003.001' feed_view: $ref: '#/components/schemas/FeedViewResponse' description: The feed view (either existing or newly created) title: Feed View x-stream-index: '001' was_created: description: Indicates whether the feed view was newly created (true) or already existed (false) title: Was Created type: boolean x-stream-index: '002' required: - feed_view - was_created - duration title: Get Or Create Feed View Response type: object UpdateActivityResponse: nullable: true properties: activity: $ref: '#/components/schemas/ActivityResponse' description: The updated activity title: ActivityResponse x-stream-index: '001' duration: type: string x-stream-index: '002.001' required: - activity - duration type: object ActivityFeedbackResponse: description: Response for activity feedback submission nullable: true properties: activity_id: description: The ID of the activity that received feedback title: Activity ID type: string x-stream-index: '001' duration: type: string x-stream-index: '002.001' required: - activity_id - duration title: Activity Feedback Response type: object Attachment: description: An attachment is a message object that represents a file uploaded by a user. nullable: true properties: actions: items: $ref: '#/components/schemas/Action' type: array x-stream-index: '015' asset_url: type: string x-stream-index: '017' author_icon: type: string x-stream-index: '007' author_link: type: string x-stream-index: '006' author_name: type: string x-stream-index: '005' color: type: string x-stream-index: '003' custom: additionalProperties: {} type: object x-stream-index: 018 fallback: type: string x-stream-index: '002' fields: items: $ref: '#/components/schemas/Field' type: array x-stream-index: '016' footer: type: string x-stream-index: '013' footer_icon: type: string x-stream-index: '014' giphy: $ref: '#/components/schemas/Images' x-stream-index: 019 image_url: type: string x-stream-index: '011' og_scrape_url: type: string x-stream-index: '020' original_height: format: int32 type: integer x-stream-index: '022' original_width: format: int32 type: integer x-stream-index: '021' pretext: type: string x-stream-index: '004' text: type: string x-stream-index: '010' thumb_url: type: string x-stream-index: '012' title: type: string x-stream-index: 008 title_link: type: string x-stream-index: 009 type: description: Attachment type (e.g. image, video, url) title: Type type: string x-stream-index: '001' required: - custom title: Attachment type: object x-stream-docs-page-id: file_uploads CreateFeedViewResponse: nullable: true properties: duration: type: string x-stream-index: '002.001' feed_view: $ref: '#/components/schemas/FeedViewResponse' description: The created feed view title: Feed View x-stream-index: '001' required: - feed_view - duration title: Create Feed View Response type: object ActivityFeedbackRequest: description: Request to provide feedback on an activity nullable: true properties: hide: description: Whether to hide this activity title: bool type: boolean x-stream-index: '003' show_less: description: Whether to show less content like this title: bool type: boolean x-stream-index: '002' show_more: description: Whether to show more content like this title: bool type: boolean x-stream-index: '004' user: $ref: '#/components/schemas/UserRequest' x-stream-index: '005.002' user_id: type: string x-stream-index: '005.001' title: Activity Feedback Request type: object QueryBookmarkFoldersResponse: nullable: true properties: bookmark_folders: description: List of bookmark folders matching the query items: $ref: '#/components/schemas/BookmarkFolderResponse' title: Bookmark Folders type: array x-stream-index: '001' duration: type: string x-stream-index: '003.001' next: description: Cursor for next page title: Next type: string x-stream-index: '002.001' prev: description: Cursor for previous page title: Previous type: string x-stream-index: '002.002' required: - bookmark_folders - duration title: Query Bookmark Folders Response type: object QueryFeedsRequest: nullable: true properties: enrich_own_fields: type: boolean x-stream-index: '004' filter: additionalProperties: {} description: Filters to apply to the query title: Filter type: object x-stream-index: '001' limit: format: int32 maximum: 100 minimum: 0 type: integer x-stream-index: '005.001' next: type: string x-stream-index: '005.002' prev: type: string x-stream-index: '005.003' sort: description: Sorting parameters for the query items: $ref: '#/components/schemas/SortParamRequest' maxItems: 5 title: Sort type: array x-stream-index: '003' watch: description: Whether to subscribe to realtime updates title: Watch type: boolean x-stream-index: '002' title: Query Feeds Request type: object AggregatedActivityResponse: properties: activities: description: List of activities in this aggregation items: $ref: '#/components/schemas/ActivityResponse' title: Activities type: array x-stream-index: '001' activity_count: description: Number of activities in this aggregation format: int32 title: Activity Count type: integer x-stream-index: '002' created_at: description: When the aggregation was created format: date-time title: Created At type: number x-stream-index: '007' group: description: Grouping identifier title: Group type: string x-stream-index: '005' is_read: description: Whether this aggregated group has been read. Only set for feed groups with notification config (track_seen/track_read enabled). title: Is Read type: boolean x-stream-index: '011' is_seen: description: Whether this aggregated group has been seen. Only set for feed groups with notification config (track_seen/track_read enabled). title: Is Seen type: boolean x-stream-index: '010' is_watched: type: boolean x-stream-index: 009 score: description: Ranking score for this aggregation format: float title: Score type: number x-stream-index: '006' updated_at: description: When the aggregation was last updated format: date-time title: Updated At type: number x-stream-index: 008 user_count: description: Number of unique users in this aggregation format: int32 title: User Count type: integer x-stream-index: '003' user_count_truncated: description: Whether this activity group has been truncated due to exceeding the group size limit title: User Count Truncated type: boolean x-stream-index: '004' required: - activities - activity_count - user_count - user_count_truncated - group - score - created_at - updated_at title: Aggregated Activity type: object UpsertActivitiesResponse: nullable: true properties: activities: description: List of created or updated activities items: $ref: '#/components/schemas/ActivityResponse' title: Activities type: array x-stream-index: '001' duration: type: string x-stream-index: '003.001' mention_notifications_created: description: Total number of mention notification activities created for mentioned users across all activities format: int32 title: Mention Notifications Created type: integer x-stream-index: '002' required: - activities - duration title: Upsert Activities Response type: object securitySchemes: JWT: description: 'JWT should be always provided when stream-auth-type=jwt. Using JWT auth request could be authenticated as user or as server-side. When using user authentication permission checking is going to be applied to requests based on the user that is performing a request. The `authorization` header should be a JWT string signed using the secret attached to the API key used to perform requests. **WARNING** all client-side official SDK do not ship with token generation; this is to make sure that the API secret is not shared with an untrusted party such as a browser or a iOS/Android application. Tokens **must** be generated server-side. If you wish, you can configure your application to ignore authentication (see `disable_auth_check`) The JWT string must include only the user_id claim and can include any built-in JWT claim such as iat, exp as well. ' in: header name: Authorization type: apiKey api_key: description: Application API key should be always set in order to authenticate the request. in: query name: api_key type: apiKey stream-auth-type: description: 'Stream-Auth-Type should be always set in order to authenticate the request. Possible values: `jwt` or `anonymous`. `jwt` allows you to authenticate as a user. With this auth type you should also provide valid JWT in Authorization header. `anonymous` allows you to authenticate as anonymous user. Please note that most advanced features are not available to anonymous users.' in: header name: Stream-Auth-Type type: apiKey