API Reference

Feeds (RSS)

Subscribe to RSS/Atom feeds, fetch entries, and save articles to notes. Supports OPML import/export.

Type Definitions

bash
type Feed {
  id: ID!
  url: String!                # RSS/Atom URL
  name: String!               # display name (defaults to feed title)
  fetchContent: Boolean!      # when true, the server fetches the full article body
  updatedAt: String!
}

type FeedCount {
  feedId: ID!
  count: Int!                 # total entries
  unreadCount: Int!
}

type FeedEntry {
  id: ID!
  feedId: ID!
  title: String!
  description: String!        # short summary
  content: String!            # full article body (may be empty until fetched)
  url: String!                # canonical article URL
  publishedAt: String!        # ISO 8601
  read: Boolean!
  favorite: Boolean!
  tags: [Tag!]!
}

Operations

query

feeds

List all subscribed feeds.

bash
query GetFeeds {
  feeds { id url name fetchContent updatedAt }
}
query

feedsCount

Per-feed total and unread entry counts.

bash
query GetFeedsCount {
  feedsCount { feedId count unreadCount }
}
query

feedEntries

Search feed entries (title + description). Leave query empty to list all.

bash
query GetFeedEntries($offset: Int!, $limit: Int!, $query: String!) {
  feedEntries(offset: $offset, limit: $limit, query: $query) {
    id feedId title description content url publishedAt read favorite
    tags { id name }
  }
}
query

feedEntryCount

Count feed entries matching a query.

bash
query GetFeedEntryCount($query: String!) {
  feedEntryCount(query: $query)
}
query

feedEntry

Fetch a single feed entry by ID.

bash
query GetFeedEntry($id: ID!) {
  feedEntry(id: $id) { id feedId title description content url publishedAt read favorite }
}
mutation

createFeed

Subscribe to a new feed. The server fetches the RSS channel to populate the name, then kicks off a one-time sync.

bash
mutation CreateFeed($url: String!, $fetchContent: Boolean!) {
  createFeed(url: $url, fetchContent: $fetchContent) { id url name fetchContent updatedAt }
}
mutation

updateFeed

Update a feed's display name or fetchContent flag.

bash
mutation UpdateFeed($id: ID!, $name: String!, $fetchContent: Boolean!) {
  updateFeed(id: $id, name: $name, fetchContent: $fetchContent) { id url name fetchContent updatedAt }
}
mutation

deleteFeed

Unsubscribe from a feed and delete all its entries (and their tag relations).

bash
mutation DeleteFeed($id: ID!) {
  deleteFeed(id: $id)
}
mutation

syncFeeds

Trigger a one-time feed sync worker. Pass an id to sync a single feed; pass null or empty to sync all.

bash
mutation SyncFeeds($id: ID) {
  syncFeeds(id: $id)
}
mutation

fetchFeedContent

Fetch the full article body for a single feed entry. Returns the updated entry.

bash
mutation FetchFeedContent($id: ID!) {
  fetchFeedContent(id: $id) { id content }
}
mutation

syncFeedContent

Alias of fetchFeedContent. Kept for backward compatibility.

bash
mutation SyncFeedContent($id: ID!) {
  syncFeedContent(id: $id) { id content }
}
mutation

deleteFeedEntries

Delete feed entries matching a query (and their tag relations).

bash
mutation DeleteFeedEntries($query: String!) {
  deleteFeedEntries(query: $query)
}
mutation

importFeeds

Import an OPML document (as a string) into the feeds database.

bash
mutation ImportFeeds($content: String!) {
  importFeeds(content: $content)
}
mutation

exportFeeds

Export all subscribed feeds as an OPML string.

bash
mutation ExportFeeds {
  exportFeeds
}