v1

latestOpenAPI 3.1.02026-07-13143194365.4 KB
feed

Get creator's persistent feed

Get a specific creator's content feed from the persistent creator_feed_items table.

Returns discovered and tipped content for the creator, with tip signal overlays and content metadata from content_item.

How content enters this feed:

  • Tipped content appears automatically when the creator receives a tip with a source_post_url.
  • Discovered content enters the table when GET /v1/feed/creators/{handle} is called (fan-out discovery across linked platforms). No background discovery cron exists yet.

Pinned items appear first when sorting by 'recent'. Creators can hide items via is_hidden (excluded from all queries).

This is a public endpoint — no authentication required. Returns 404 if the handle is not found or the profile is private.

get/v1/feed/items/{handle}

Path parameters

handlestring required

Creator's Grove handle (case-insensitive).

Creator's Grove handle (case-insensitive).

Query parameters

sort'recent' | 'tipped' | 'published'

Sort: recent (pinned on top), tipped, published (content date).

Sort: recent (pinned on top), tipped, published (content date).

platformstring nullable

Filter by platform (youtube, reddit, bluesky, medium, substack, github, x, etc.).

Filter by platform (youtube, reddit, bluesky, medium, substack, github, x, etc.).

tagsstring nullable

Comma-separated tags to filter by (e.g., 'defi,ethereum'). Items must match ALL tags.

Comma-separated tags to filter by (e.g., 'defi,ethereum'). Items must match ALL tags.

limitinteger

Items per page.

Items per page.

cursorstring nullable

Opaque pagination cursor.

Opaque pagination cursor.

Response

Creator's feed items

cursorstring nullable

Opaque cursor for fetching the next page. Null if no more results.

has_moreboolean

Whether more results exist beyond this page.

total_countinteger required

Total number of unique tipped URLs matching the filter.

Example response

{
  "items": [
    {
      "url": "https://www.youtube.com/watch?v=abc123",
      "platform": "youtube",
      "tip_count": 42,
      "total_amount_usd": "125.50",
      "unique_tippers": 18,
      "last_tipped_at": "2026-03-22T14:30:00Z",
      "content": {
        "title": "The Bull Case for Ethereum in 2026",
        "description": "Ryan and David break down why ETH could outperform...",
        "image_url": "https://i.ytimg.com/vi/abc123/hqdefault.jpg",
        "author_name": "Bankless",
        "published_at": "2026-03-22T08:15:00Z"
      },
      "enrichment_status": "cached",
      "source": "discovered",
      "creator_handle": "alice",
      "creator_avatar_url": "https://pbs.twimg.com/profile_images/abc/photo.jpg",
      "embed_id": "dQw4w9WgXcQ"
    }
  ],
  "total_count": 1234
}