# Feeds

<p>The Feeds API provides access to lists of content similar to how a user
sees them in the Firstup experience application. Feeds are specific to the
authenticated user and a user can only see what the platform gives them
access to. </p>

<p>At their core, feeds are built using filters to find the exact topics
and type of posts your application wishes to expose to its users. One of
the basic filters is the <code>channels.id</code> filter, but there are
additional filters like <code>content_type</code> and
<code>visibility</code>. There are also preset configurations called
<em>named feeds</em>, which uses the <code>name</code> query parameter and
are convenient wrappers around a set of filters. These include things like
<code>"trending"</code> posts, <Code>"following"</code>, and <code>"myfeed"</code>. <br> The full list of feed names
is outlined in the <a
href="/endpoints/openapi/feeds/listfeedposts">listFeedPosts</a>
documentation. </p>
<p>Feeds are paginated, but have no total records as they are an
inherently dynamic list of posts.</p> <p>Actions like liking, bookmarking,
and responding to polls can be taken on individual posts in the same way
they can be taken on the experience applications.</p><br>

{% admonition type="info"%} 
The Feeds API requires <a href="https://developers.firstup.io/authorization/authentication-methods#jwt-bearer-token-grant"> authentication</a> as a user.
{% /admonition %}
<br></br>
<b>Resources</b>
<ul>
<li><a href="https://support.firstup.io/hc/en-us/articles/4415354532759-How-Do-Users-See-Content">Knowledge Base article on Feeds</a></li>
<li><a href="/feeds/feedsoverview">Feeds overview page</a> for contextual guidance, use cases and API Flows.
</li>
</ul>


## Return a user's feed of posts

 - [GET /v2/feed/posts](https://developers.firstup.io/endpoints/openapi/feeds/listfeedposts.md): Provides a list of posts in the user’s feed. Accepts pagination and filtering parameters. Upon enabling expanded reactions types, the response will include the additional reaction types.
 Resources
 
 Knowledge Base article on Feeds
 Feeds overview page
 Pagination
 Filtering

## Return a user profile's bookmarked posts

 - [GET /v2/feed/profile/bookmarked](https://developers.firstup.io/endpoints/openapi/feeds/listfeedprofilebookmarked.md)

## Return a user profile's submitted content

 - [GET /v2/feed/profile/submitted](https://developers.firstup.io/endpoints/openapi/feeds/listfeedprofilesubmitted.md)

## Return channels followed by a user profile

 - [GET /v2/feed/profile/channels](https://developers.firstup.io/endpoints/openapi/feeds/listfeedprofilechannels.md)

## Return the details of a single post within a feed

 - [GET /v2/feed/posts/{content_id}](https://developers.firstup.io/endpoints/openapi/feeds/detailfeedpost.md): Provides the data for a single post in a user’s feed. The post must be visible to the user or a 404 Not Found response will be returned. Upon enabling expanded reactions types, the response will include the additional reaction types.

## Return the engagement details of a single post within a feed

 - [GET /v2/feed/posts/{content_id}/engagement](https://developers.firstup.io/endpoints/openapi/feeds/detailfeedpostengagement.md): Displays the user’s engagements related to a single feed post, including a timestamp for each type of engagement; for example, a liked_at timestamp is present if the user has liked the post and a bookmarked_at is present if the user has bookmarked the post. The post must be visible to the user or a 404 Not Found response will be returned. Upon enabling expanded reactions types, the response will include a reaction_type_id which is associated with a reaction type.

## Like a post in the feed

 - [PUT /v2/feed/posts/{content_id}/like](https://developers.firstup.io/endpoints/openapi/feeds/likepost.md): Creates a "like" engagement of a specific feed post for a scoped user. The post must be visible to the user or a 404 Not Found response will be returned; for example, this would happen if the content is published to a targeted topic that does not target the user. Upon enabling expanded reactions types, the user can like the post with a specific reaction type by providing a reaction_type_id in the request body.

## Unlike a post in the feed

 - [PUT /v2/feed/posts/{content_id}/unlike](https://developers.firstup.io/endpoints/openapi/feeds/unlikepost.md): Unlikes a feed post for a scoped user. Unliking effectively removes an existing “like” engagement. The post must be visible to the user or a 404 Not Found response will be returned; for example, this would happen if the content is published to a targeted topic that does not target the user.

## Bookmark a post in the feed

 - [PUT /v2/feed/posts/{content_id}/bookmark](https://developers.firstup.io/endpoints/openapi/feeds/bookmarkpost.md): Creates a “bookmark” engagement of a specific feed post for a scoped user. The post must be visible to the user or a 404 Not Found response will be returned; for example, this would happen if the content is published to a targeted topic that does not target the user.

## Unbookmark a post in the feed

 - [PUT /v2/feed/posts/{content_id}/unbookmark](https://developers.firstup.io/endpoints/openapi/feeds/unbookmarkpost.md): Unbookmarks a feed post for a scoped user. Unbookmarking effectively removes an existing “bookmark” engagement. The post must be visible to the user or a 404 Not Found response will be returned; for example, if the content is published to a targeted topic that does not target the user.

## Get the trackable URL for a post in the feed

 - [GET /v2/feed/posts/{content_id}/share/trackable_url](https://developers.firstup.io/endpoints/openapi/feeds/generatetrackableurl.md): Get the trackable URL for a feed post for a scoped user. The post must be visible to the user or a 400 bas request will be returned.

## Share a post in the feed

 - [PUT /v2/feed/posts/{content_id}/share](https://developers.firstup.io/endpoints/openapi/feeds/sharepost.md): Indicates that the post has been shared by a scoped user. The post must be visible to the user or a 400 bas request will be returned. `share_url can be retrieved using GET`  the trackable URL for a post in the feed.

## View a post in the feed

 - [PUT /v2/feed/posts/{content_id}/view](https://developers.firstup.io/endpoints/openapi/feeds/viewpost.md): Marks a specific feed post as viewed for a scoped user. Viewing is considered as the user having interacted with the content enough to qualify as at least partial consumption. The post must be visible to the user or a 404 Not Found response will be returned.

## Unview a post in the feed

 - [PUT /v2/feed/posts/{content_id}/unview](https://developers.firstup.io/endpoints/openapi/feeds/unviewpost.md): Reverses a view operation on a feed post for a scoped user. Unviewing is used in cases where a view was mistakenly recorded. The post must be visible to the user or a 404 Not Found response will be returned.

## List the comments on a content post

 - [GET /v2/feed/posts/{content_id}/comments](https://developers.firstup.io/endpoints/openapi/feeds/listfeedpostcomments.md): List the comments on a content post. Only top-level comments are returned. Comments which are replies to other comments are not currently available through this endpoint. Upon enabling expanded reactions types, the response will include the additional reaction types.
When a comment with user mentions is returned, it will be returned with those mentions in the format of either `{ref:user:} or {ref:user::id:}`. You can parse out the user_id and then look up the user and transform the mention metadata to the display_name/name of the referenced user.

## Comment on a post in the feed

 - [POST /v2/feed/posts/{content_id}/comments](https://developers.firstup.io/endpoints/openapi/feeds/createfeedpostcomment.md): Creates a new comment record for the content post.
You may indicate a mention of a specific user by providing their `user_id in the format of either {ref:user:} or {ref:user::id:}`.

## List the replies to a comment on a content post

 - [GET /v2/feed/posts/{content_id}/comments/{comment_id}/replies](https://developers.firstup.io/endpoints/openapi/feeds/listfeedpostcommentreplies.md): List the replies to a comment on a content post. Upon enabling expanded reactions types, the response will include the additional reaction types.
When a comment with user mentions is returned, it will be returned with those mentions in the format of either `{ref:user:} or {ref:user::id:}`. You can parse out the user_id and then look up the user and transform the mention metadata to the display_name/name of the referenced user.

## Reply to a comment on a post in the feed

 - [POST /v2/feed/posts/{content_id}/comments/{comment_id}/{post_number}/replies](https://developers.firstup.io/endpoints/openapi/feeds/createfeedpostcommentreply.md): Upon enabling expanded reactions types, the response will include the additional reaction types. When a comment with user mentions is returned, it will be returned with those mentions in the format of either `{ref:user:} or {ref:user::id:}`. You can parse out the user_id and then look up the user and transform the mention metadata to the display_name/name of the referenced user.

## Report a Comment or Reply for a given post in the feed

 - [PUT /v2/feed/posts/{content_id}/comments/{comment_id}/report](https://developers.firstup.io/endpoints/openapi/feeds/reportfeedpostcomment.md): Creates a Report for a specific comment (or reply) to a post for a scoped user. The comment must be visible to the user or a 404 Not Found response will be returned; for example, this would happen if the comment is published to a post in a targeted topic that does not target the user.

## Query for users that are able to be mentioned.

 - [GET /v2/feed/users/suggest](https://developers.firstup.io/endpoints/openapi/feeds/suggestuser.md): Query for users that are able to be mentioned.

## Update a comment on a post in the feed

 - [PUT /v2/feed/posts/{content_id}/comments/{comment_id}](https://developers.firstup.io/endpoints/openapi/feeds/updatefeedpostcomment.md): Update an existing comment record. The body attribute can be provided and only those provided will be updated.  Response body data will be the updated record. Upon enabling expanded reactions types, the response will include the additional reaction types.
You may indicate a mention of a specific user by providing their `user_id in the format of either {ref:user:} or {ref:user::id:}`.

## Delete a comment or reply on a post in the feed

 - [DELETE /v2/feed/posts/{content_id}/comments/{comment_id}](https://developers.firstup.io/endpoints/openapi/feeds/deletefeedpostcomment.md): Allows an authenticated user to delete a comment or reply they authored.
The comment is soft deleted and will no longer appear in feed views.

## Return the rendered content of a single post within the feed

 - [GET /v2/feed/posts/{content_id}/rendered](https://developers.firstup.io/endpoints/openapi/feeds/renderfeedpost.md): Provides the rendered content for a single post in a user’s feed. The post must be visible to the user or a 404 Not Found response will be returned.

## Report a post in the feed

 - [PUT /v2/feed/posts/{content_id}/report](https://developers.firstup.io/endpoints/openapi/feeds/reportfeedpost.md): Creates a Report for a specific feed post for a scoped user. The post must be visible to the user or a 404 Not Found response will be returned; for example, this would happen if the content is published to a targeted topic that does not target the user.

## Acknowledge a post in the feed.

 - [POST /v2/feed/posts/{content_id}/acknowledge](https://developers.firstup.io/endpoints/openapi/feeds/acknowledgefeedpost.md): Acknowledges a feed post for a scoped user. The post must be visible to the user or a 404 Not Found response will be returned; for example, if the content is published to a targeted channel that does not target the user.

## Returns the details of a single poll.

 - [GET /v2/feed/polls/{poll_id}](https://developers.firstup.io/endpoints/openapi/feeds/showfeedpoll.md): Provides data for a single poll.

## Respond to a poll.

 - [POST /v2/feed/polls/{poll_id}](https://developers.firstup.io/endpoints/openapi/feeds/respondfeedpoll.md): Respond to a poll.

## Returns a user's feed of polls.

 - [GET /v2/feed/polls](https://developers.firstup.io/endpoints/openapi/feeds/listfeedpolls.md): Provides a list of polls in the user's feed.

## Experimental and undocumented video access

 - [GET /v2/feed/video/{video_id}](https://developers.firstup.io/endpoints/openapi/feeds/showfeedvideo.md): Experimental internal API

## Experimental and undocumented attachment access

 - [GET /v2/feed/attachments/{uuid}/status](https://developers.firstup.io/endpoints/openapi/feeds/getattachmentstatus.md): Experimental internal API

