Stream product:feeds API

The product:feeds API from Stream — 69 operation(s) for product:feeds.

OpenAPI Specification

stream-io-product-feeds-api-openapi.yml Raw ↑
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 co

# --- truncated at 32 KB (379 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/stream-io/refs/heads/main/openapi/stream-io-product-feeds-api-openapi.yml