Skip to content

List Entries

Get paginated entries for a specific feed.

GET/v1/feeds/{feed_id}/entries

Overview

Retrieve paginated list of entries for a feed with optional filtering by free/paid status and tags.

Authentication

Required: No
Payment: No

Public endpoint.

Request

Path Parameters

ParameterTypeRequired
feed_idstring (UUID)Yes

Query Parameters

ParameterTypeDefaultDescription
page_sizeinteger20Items per page (max 100)
page_tokenstring-Pagination cursor
is_freeboolean-Filter free/paid entries
is_activeboolean-Filter by active status
tagsstring-Filter by tag (repeatable)

Response

Status: 200 OK

{
  "data": [
    {
      "id": "entry-uuid",
      "feed_id": "feed-uuid",
      "cid": "bafkreigxyz...",
      "mime_type": "text/markdown",
      "title": "Article Title",
      "description": "Article description",
      "tags": ["tutorial", "tech"],
      "is_free": false,
      "is_active": true,
      "total_purchases": 25,
      "total_revenue": "25000000",
      "created_at": 1734192000
    }
  ],
  "pagination": {
    "page_size": 20,
    "next_page_token": "cursor",
    "has_more": true
  }
}

Code Examples

cURL

# List all entries
curl https://api.grapevine.fyi/v1/feeds/{feed_id}/entries
 
# Filter free entries
curl "https://api.grapevine.fyi/v1/feeds/{feed_id}/entries?is_free=true"
 
# With pagination
curl "https://api.grapevine.fyi/v1/feeds/{feed_id}/entries?page_size=50&page_token=cursor"

SDK

const entries = await grapevine.entries.list(feedId, {
  is_free: true,
  page_size: 50
});
 
// Paginate all
for await (const batch of grapevine.entries.paginate(feedId)) {
  console.log(`Processing ${batch.length} entries`);
}

CLI

grapevine entry list {feed_id}
grapevine entry list {feed_id} --free --limit 50

Related Endpoints

External Playground

Try this endpoint interactively:
https://api.grapevine.fyi/v1/docs#/Feeds/get_v1_feeds__feed_id__entries