Stream product:feeds API

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

Operations 98

POST /api/v2/feeds/activities Add a single activity #
DELETE /api/v2/feeds/activities/{activity_id}/bookmarks Delete a bookmark #
PATCH /api/v2/feeds/activities/{activity_id}/bookmarks Update bookmark #
POST /api/v2/feeds/activities/{activity_id}/bookmarks Add bookmark #
POST /api/v2/feeds/activities/{activity_id}/feedback Provide feedback on an activity #
POST /api/v2/feeds/activities/{activity_id}/polls/{poll_id}/vote Cast vote #
DELETE /api/v2/feeds/activities/{activity_id}/polls/{poll_id}/vote/{vote_id} Delete vote #
POST /api/v2/feeds/activities/{activity_id}/reactions Add reaction #
DELETE /api/v2/feeds/activities/{activity_id}/reactions/{type} Remove reaction #
POST /api/v2/feeds/activities/{activity_id}/reactions/query Query activity reactions #
DELETE /api/v2/feeds/activities/{id} Delete a single activity #
GET /api/v2/feeds/activities/{id} Get activity #
PATCH /api/v2/feeds/activities/{id} Partial activity update #
PUT /api/v2/feeds/activities/{id} Full activity update #
POST /api/v2/feeds/activities/{id}/restore Restore an activity #
POST /api/v2/feeds/activities/batch Upsert multiple activities #
PATCH /api/v2/feeds/activities/batch/partial Batch partial activity update #
POST /api/v2/feeds/activities/delete Remove multiple activities #
POST /api/v2/feeds/activities/metrics/track Track activity metrics #
POST /api/v2/feeds/activities/query Query activities #
DELETE /api/v2/feeds/bookmark_folders/{folder_id} Delete a bookmark folder #
PATCH /api/v2/feeds/bookmark_folders/{folder_id} Update a bookmark folder #
POST /api/v2/feeds/bookmark_folders/query Query bookmark folders #
POST /api/v2/feeds/bookmarks/query Query bookmarks #
DELETE /api/v2/feeds/collections Delete multiple collections #
GET /api/v2/feeds/collections Read collections #
PATCH /api/v2/feeds/collections Update multiple collections #
POST /api/v2/feeds/collections Create multiple collections #
PUT /api/v2/feeds/collections Upsert multiple collections #
POST /api/v2/feeds/collections/query Query collections #
GET /api/v2/feeds/comments Get comments for an object #
POST /api/v2/feeds/comments Add a comment or reply #
DELETE /api/v2/feeds/comments/{comment_id}/bookmarks Delete a comment bookmark #
PATCH /api/v2/feeds/comments/{comment_id}/bookmarks Update comment bookmark #
POST /api/v2/feeds/comments/{comment_id}/bookmarks Add comment bookmark #
DELETE /api/v2/feeds/comments/{id} Delete a comment #
GET /api/v2/feeds/comments/{id} Get comment #
PATCH /api/v2/feeds/comments/{id} Update a comment #
POST /api/v2/feeds/comments/{id}/partial Partial comment update #
POST /api/v2/feeds/comments/{id}/reactions Add comment reaction #
DELETE /api/v2/feeds/comments/{id}/reactions/{type} Delete comment reaction #
POST /api/v2/feeds/comments/{id}/reactions/query Query comment reactions #
GET /api/v2/feeds/comments/{id}/replies Get replies for a comment #
POST /api/v2/feeds/comments/{id}/restore Restore a comment #
POST /api/v2/feeds/comments/batch Add multiple comments in a batch #
POST /api/v2/feeds/comments/query Query comments #
GET /api/v2/feeds/feed_groups List all feed groups #
POST /api/v2/feeds/feed_groups Create a new feed group #
DELETE /api/v2/feeds/feed_groups/{feed_group_id}/feeds/{feed_id} Delete a single feed #
POST /api/v2/feeds/feed_groups/{feed_group_id}/feeds/{feed_id} Create a new feed #
PUT /api/v2/feeds/feed_groups/{feed_group_id}/feeds/{feed_id} Update a feed #
DELETE /api/v2/feeds/feed_groups/{feed_group_id}/feeds/{feed_id}/activities/{activity_id}/pin Unpin an activity from a feed #
POST /api/v2/feeds/feed_groups/{feed_group_id}/feeds/{feed_id}/activities/{activity_id}/pin Pin an activity to a feed #
POST /api/v2/feeds/feed_groups/{feed_group_id}/feeds/{feed_id}/activities/mark/batch Mark activities as read/seen/watched #
POST /api/v2/feeds/feed_groups/{feed_group_id}/feeds/{feed_id}/change_visibility Change a feed's visibility #
PATCH /api/v2/feeds/feed_groups/{feed_group_id}/feeds/{feed_id}/members Update feed members #
POST /api/v2/feeds/feed_groups/{feed_group_id}/feeds/{feed_id}/members/accept Accept a feed member request #
POST /api/v2/feeds/feed_groups/{feed_group_id}/feeds/{feed_id}/members/query Query feed members #
POST /api/v2/feeds/feed_groups/{feed_group_id}/feeds/{feed_id}/members/reject Reject an invite to become a feed member #
POST /api/v2/feeds/feed_groups/{feed_group_id}/feeds/{feed_id}/pinned_activities/query Query pinned activities #
GET /api/v2/feeds/feed_groups/{feed_group_id}/follow_suggestions Get follow suggestions #
POST /api/v2/feeds/feed_groups/{feed_group_id}/restore Restore a feed group #
DELETE /api/v2/feeds/feed_groups/{id} Delete a feed group #
GET /api/v2/feeds/feed_groups/{id} Get a feed group #
POST /api/v2/feeds/feed_groups/{id} Get or create a feed group #
PUT /api/v2/feeds/feed_groups/{id} Update a feed group #
GET /api/v2/feeds/feed_views List all feed views #
POST /api/v2/feeds/feed_views Create a new feed view #
DELETE /api/v2/feeds/feed_views/{id} Delete a feed view #
GET /api/v2/feeds/feed_views/{id} Get a feed view #
POST /api/v2/feeds/feed_views/{id} Get or create a feed view #
PUT /api/v2/feeds/feed_views/{id} Update a feed view #
GET /api/v2/feeds/feed_visibilities List feed visibilities #
GET /api/v2/feeds/feed_visibilities/{name} Get feed visibility #
PUT /api/v2/feeds/feed_visibilities/{name} Update Feed Visibility #
POST /api/v2/feeds/feeds/batch Create multiple feeds at once #
POST /api/v2/feeds/feeds/delete Delete multiple feeds #
POST /api/v2/feeds/feeds/own/batch Get own fields for multiple feeds #
POST /api/v2/feeds/feeds/query Query feeds #
GET /api/v2/feeds/feeds/rate_limits Get Feeds Rate Limits #
PATCH /api/v2/feeds/follows Update a follow #
POST /api/v2/feeds/follows Create a follow #
DELETE /api/v2/feeds/follows/{source}/{target} Unfollow a feed #
POST /api/v2/feeds/follows/accept Accept a follow request #
POST /api/v2/feeds/follows/batch Create multiple follows at once #
POST /api/v2/feeds/follows/batch/upsert Upsert multiple follows at once #
POST /api/v2/feeds/follows/query Query follows #
POST /api/v2/feeds/follows/reject Reject a follow request #
POST /api/v2/feeds/membership_levels Create membership level #
DELETE /api/v2/feeds/membership_levels/{id} Delete membership level #
PATCH /api/v2/feeds/membership_levels/{id} Update membership level #
POST /api/v2/feeds/membership_levels/query Query membership levels #
POST /api/v2/feeds/revisions/query Query revision history #
POST /api/v2/feeds/stats/usage Query Feed Usage Statistics #
POST /api/v2/feeds/unfollow/batch Unfollow multiple feeds at once #
POST /api/v2/feeds/unfollow/batch/upsert Unfollow multiple feeds (idempotent) #
POST /api/v2/feeds/users/{user_id}/delete Delete all feed data for a user #
POST /api/v2/feeds/users/{user_id}/export Export all feed data for a user #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/stream-io-product-feeds-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

stream-io-product-feeds-api-openapi.yml Raw ↑
openapi: 3.2.0
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/getstream/refs/heads/main/openapi/stream-io-product-feeds-api-openapi.yml