description |
---|
Description of endpoints used to get data related to posts on the DeSo blockchain |
Please make sure you've read . so you are familiar with the following types referenced in this documentation:
- #profileentryresponse
- #postentryresponse
- #balanceentryresponse
- #nftentryresponse
- #nftcollectionresponse
POST
/api/v0/get-posts-stateless
Get Posts Stateless returns an array of posts based on the request body. This endpoint is used to fetch posts for many different kinds of feeds.
To fetch the global feed, set GetPostsForGlobalWhitelist
to true
To fetch the following feed for a user, set GetPostsforFollowFeed
to true
To fetch the admin view of posts ordered by creator coin price, set GetPostsByDeSo
to true
and provide a value for PostsByDESOMinutesLookback
Endpoint implementation in backend.
Example usages in frontend:
- Make request to Get Posts Stateless
- Use Get Posts Stateless to get the global feed
- Use Get Posts Stateless to get the following feed for a user
- Use Get Posts Stateless to get posts ordered by time for an admin to curate the global feed
- Use Get Posts Stateless to get posts from user's with the high coin prices in the last hour
Name | Type | Description |
---|---|---|
GetPostsForFollowFeed | Boolean | If true, get posts from creators that the reader follows |
OrderBy | String | Order the posts by certain attributes |
NumToFetch* | int | Maximum Number of posts to return |
ReaderPublicKeyBase58Check | String | Public key of the reader |
PostHashHex | String | Start paginated look-up of posts after this post hash |
GetPostsForGlobalWhitelist | Boolean | If true, get posts for the global feed - these are posts that have been manually selected for the global feed |
PostContent | String | Filters out posts that do not match the text provided in PostContent (case-insensitive) |
StartTstampSecs | uint64 | deprecated |
FetchSubcomments | Boolean | If true, fetches comments on comments of each post. Note: not implemented for the following feed |
GetPostsByDESO | Boolean | Get posts from the creators with the highest DESO locked within a certain timeframe |
GetPostsByClout | Boolean | deprecated - use GetPostsByDESO instead |
MediaRequired | Boolean | If true, filter out posts that do not have images or video in them |
PostsByDESOMinutesLookback | uint64 | If GetPostsByDESO is true, get all posts within PostsByDESOMinutesLookback, order them by the creator's DESO locked, and take the top NumToFetch posts. Must be 60 or less |
AddGlobalFeedBool | Boolean | If set to true, then the posts in the response will contain a boolean about whether they're in the global feed |
{% tabs %} {% tab title="200: OK Successfully retrieved posts requested" %} {% tabs %} {% tab title="Sample Response" %}
{
"PostsFound": [<PostEntryResponse>, <PostEntryResponse>], // Array of PostEntryResponses that were found for the provided request body.
}
{% endtab %}
{% tab title="Response Field Descriptions" %} ...coming soon! See comments in sample response for descriptions for now. {% endtab %} {% endtabs %} {% endtab %}
{% tab title="400: Bad Request " %}
{
// Response
}
{% endtab %} {% endtabs %}
POST
/api/v0/get-single-post
Gets a single post, optionally including parents and children. This endpoint is used to display a thread view of a post.
Endpoint implementation in backend.
Example usages in frontend:
- Make request to Get Single Post
- Use GetSinglePost to get a thread view of a post
Name | Type | Description |
---|---|---|
PostHashHex* | String | Hex of Post Hash to fetch |
FetchParents | Boolean | if true, fetch all parents of this post, up to 100 parents. |
CommentOffset | uint32 | Offset at which to begin result set of comments returned. |
CommentLimit* | uint32 | number of comments to return, starting at CommentOffset |
ReaderPublicKeyBase58Check | String | public key of the user reading this single post |
AddGlobalFeedBool | Boolean | if set to true, then the posts in the response will contain a boolean indicating if they're in the global feed |
{% tabs %} {% tab title="200: OK Successfully retrieved the single post and any parents or comments" %} {% tabs %} {% tab title="Sample Response" %}
{
"PostFound": <PostEntryResponse>, // A single PostEntryResponse that optionally contains all children and parent of itself.
}
{% endtab %}
{% tab title="Response Field Descriptions" %} ...coming soon! See comments in sample response for descriptions for now. {% endtab %} {% endtabs %} {% endtab %}
{% tab title="400: Bad Request " %}
{
// Response
}
{% endtab %} {% endtabs %}
POST
/api/v0/get-posts-for-public-key
Get posts created by a public key or username. This endpoint is used to populate the posts on a user's profile page.
Endpoint implementation in backend.
Example usages in frontend:
- Make request to Get Posts For Public Key
- Use GetPostsForPublicKey to get posts to display on a user's profile
Name | Type | Description |
---|---|---|
PublicKeyBase58Check | String | Public key of the user whose posts we will fetch |
Username | String | Username of the user whose posts we will fetch |
ReaderPublicKeyBase58Check | String | public key of the user reading the posts |
LastPostHashHex | String | Hex of the Post Hash that ended the previous page of results |
NumToFetch* | uint64 | Number of posts to fetch |
MediaRequired | Boolean | if true, only return posts that have images, videos, or embed video URLs. |
{% tabs %} {% tab title="200: OK Successfully retrieved posts for a given public key or username" %} {% tabs %} {% tab title="Sample Response" %}
{
"Posts": [<PostEntryResponse>, <PostEntryResponse>], // Array of PostEntryResponses representing a page of results for posts created by the provided public key.
"LastPostHashHex": "21285bd8c0ed74125cd82a65a74606d8fcb84e309f58bb44b6cb0b76489897b5", //Hex of the last Post Hash in the array of Posts above.
}
{% endtab %}
{% tab title="Response Field Descriptions" %} ...coming soon! See comments in sample response for descriptions for now. {% endtab %} {% endtabs %} {% endtab %}
{% tab title="400: Bad Request " %}
{
// Response
}
{% endtab %} {% endtabs %}
POST
/api/v0/get-hot-feed
Get Hot Feed returns a page of Posts that are currently "hot". A post's hotness is determined by the time since the post was created and the number of likes, diamonds, comments, reposts, and quote reposts.
Endpoint implementation in backend.
Example usages in diamondapp.com's frontend:
- Make request to Get Hot Feed
- Use GetHotFeed to get posts to display to the user in the Hot Feed tab
Name | Type | Description |
---|---|---|
ReaderPublicKeyBase58Check | String | public key of the user reading the posts |
SeenPosts | String[] | A list of posts that have already been seen by the reader |
ResponseLimit | uint64 | Number of posts to fetch |
{% tabs %} {% tab title="200: OK Successfully retrieved posts from the hot feed" %} {% tabs %} {% tab title="Sample Response" %}
{
"HotFeedPage": [<PostEntryResponse>, <PostEntryResponse>,...] // Array of PostEntryResponses that represent the next page of the hot feed for the reader
}
{% endtab %}
{% tab title="Response Field Descriptions" %} ...coming soon! See comments in sample response for descriptions for now. {% endtab %} {% endtabs %} {% endtab %}
{% tab title="400: Bad Request " %}
{
// Response
}
{% endtab %} {% endtabs %}
POST
/api/v0/get-diamonded-posts
Get all posts on which sender sent diamonds to the receiver. Posts are sorted by the number of diamonds given from the sender to the receiver and then by timestamp.
Endpoint implementation in backend.
Example usages in frontend:
- Make request to Get Diamonded Posts
- Use GetDiamondedPosts to get posts in which a specific user received diamonds from another specific user. Example on node.deso.org
Name | Type | Description |
---|---|---|
ReceiverPublicKeyBase58Check | String | Public key of the user who received diamonds from sender |
ReceiverUsername | String | Username of the user who received diamonds from sender |
SenderPublicKeyBase58Check | String | Public key of the user who sent diamonds to the receiver |
SenderUsername | String | Username of the user who sent diamonds to the receiver |
ReaderPublicKeyBase58Check | String | public key of the user reading the posts |
StartPostHashHex | String | Hex of the first Post Hash to include in this page of results |
NumToFetch* | uint64 | Number of posts to fetch |
MediaRequired | Boolean | if true, only return posts that have images, videos, or embed video URLs. |
{% tabs %} {% tab title="200: OK Successfully retrieved the requested diamonded posts between sender and receiver" %} {% tabs %} {% tab title="Sample Response" %}
{
"DiamondedPosts": [<PostEntryResponse>, <PostEntryResponse>] // Array of PostEntryResponses. Each post is a post created by the receiver AND received diamonds from the sender. The DiamondsFromSender attribute is populated in each PostEntryResponse. Posts are ordered by DiamondsFromSender and then by timestamp.
}
{% endtab %}
{% tab title="Response Field Descriptions" %} ...coming soon! See comments in sample response for descriptions for now. {% endtab %} {% endtabs %} {% endtab %}
{% tab title="400: Bad Request " %}
{
// Response
}
{% endtab %} {% endtabs %}
POST
/api/v0/get-likes-for-post
Get Profiles of users who liked a given post.
Endpoint implementation in backend.
Example usages in frontend:
- Make request to Get Likes For Post
- Use GetLikesForPosts to show all users who have liked a po
Name | Type | Description |
---|---|---|
PostHashHex* | String | Hex of Post hash for which we want to retrieve likes |
Offset* | uint32 | Position at which to return this page of results |
Limit* | uint32 | Number of profiles to return in this page of results |
ReaderPublicKeyBase58Check | String | Public key of the reader |
{% tabs %} {% tab title="200: OK Successfully retrieved profiles of users who liked a given post" %} {% tabs %} {% tab title="Sample Response" %}
{
"Likers": [<ProfileEntryResponse>, <ProfileEntryResponse>] // ProfileEntryResponses for users who liked this post.
}
{% endtab %}
{% tab title="Response Field Descriptions" %} ...coming soon! See comments in sample response for descriptions for now. {% endtab %} {% endtabs %} {% endtab %}
{% tab title="400: Bad Request " %}
{
// Response
}
{% endtab %} {% endtabs %}
POST
/api/v0/get-diamonds-for-post
Get Profiles and number of diamonds for users who gave diamonds to a given post
Endpoint implementation in backend.
Example usages in frontend:
- Make request to Get Diamonds For Post
- Use GetDiamondsForPosts to show all users who have diamonded a post and how many diamonds the user gave
Name | Type | Description |
---|---|---|
PostHashHex* | String | Hex of Post hash for which we want to retrieve profiles and diamonds |
Offset* | uint32 | Position at which to return this page of results |
Limit* | uint32 | Number of profiles to return in this page of results |
ReaderPublicKeyBase58Check | String | Public key of the reader |
{% tabs %} {% tab title="200: OK Successfully retrieved profiles and diamond levels of users who gave diamonds the given post" %} {% tabs %} {% tab title="Sample Response" %}
{
"DiamondSenders": [
{
"DiamondSenderProfile": <ProfileEntryResponse>, // Profile of the user who gave diamonds to this post
"DiamondLevel": 2 // Number of diamonds this user gave to this post
}
]
}
{% endtab %}
{% tab title="Response Field Descriptions" %} ...coming soon! See comments in sample response for descriptions for now. {% endtab %} {% endtabs %} {% endtab %}
{% tab title="400: Bad Request " %}
{
// Response
}
{% endtab %} {% endtabs %}
POST
/api/v0/get-reposts-for-post
Get Profiles of users who reposted (without a quote) a given post
Endpoint implementation in backend.
Example usages in frontend:
- Make request to Get Reposts For Post
- Use GetRepostsForPosts to show all users who have reposted a post
Name | Type | Description |
---|---|---|
PostHashHex* | String | Hex of Post hash for which we want to retrieve reposters |
Offset* | uint32 | Position at which to return this page of results |
Limit* | uint32 | Number of profiles to return in this page of results |
ReaderPublicKeyBase58Check | String | Public key of the reader |
{% tabs %} {% tab title="200: OK Successfully retrieved profiles of users who reposted (without a quote) the provided post" %} {% tabs %} {% tab title="Sample Response" %}
{
"Reposters": [<ProfileEntryResponse>, <ProfileEntryResponse>] // Profiles of users who reposted (without a quote) this post.
}
{% endtab %}
{% tab title="Response Field Descriptions" %} ...coming soon! See comments in sample response for descriptions for now. {% endtab %} {% endtabs %} {% endtab %}
{% tab title="400: Bad Request " %}
{
// Response
}
{% endtab %} {% endtabs %}
POST
/api/v0/get-quote-reposts-for-post
Get profiles of users who quote reposted a given post and the content of the quote repost
Endpoint implementation in backend.
Example usages in frontend:
- Make request to Get Quote Reposts For Post
- Use GetQuoteRepostsForPost to show all users who have quoted reposted a post and what the quote said
Name | Type | Description |
---|---|---|
PostHashHex* | String | Hex of Post hash for which we want to retrieve quote reposters |
Offset* | uint32 | Position at which to return this page of results |
Limit* | uint32 | Number of profiles to return in this page of results |
ReaderPublicKeyBase58Check | String | Public key of the reader |
{% tabs %} {% tab title="200: OK Successfully retrieved the profiles that quote reposted a given post and the post that is quote reposting" %} {% tabs %} {% tab title="Sample Response" %}
{
"QuoteReposts": [<PostEntryResponse>, <PostEntryResponse>] // Post that quote reposted this quote. Each PostEntryResponse will have a ProfileEntryResponse in it.
}
{% endtab %}
{% tab title="Response Field Descriptions" %} ...coming soon! See comments in sample response for descriptions for now.{
"QuoteReposts": [<PostEntryResponse>, <PostEntryResponse>] // Post that quote reposted this quote. Each PostEntryResponse will have a ProfileEntryResponse in it.
}{
"QuoteReposts": [<PostEntryResponse>, <PostEntryResponse>] // Post that quote reposted this quote. Each PostEntryResponse will have a ProfileEntryResponse in it.
}{
"QuoteReposts": [<PostEntryResponse>, <PostEntryResponse>] // Post that quote reposted this quote. Each PostEntryResponse will have a ProfileEntryResponse in it.
}{
"QuoteReposts": [<PostEntryResponse>, <PostEntryResponse>] // Post that quote reposted this quote. Each PostEntryResponse will have a ProfileEntryResponse in it.
}
{% endtab %} {% endtabs %} {% endtab %}
{% tab title="400: Bad Request " %}
{
// Response
}
{% endtab %} {% endtabs %}