Skip to content

feat(api): API Endpoints for lists of unread entry IDs and starred entry IDs#4372

Merged
fguillot merged 8 commits into
miniflux:mainfrom
jbrayton:entry-id-lists-take-2
Jun 12, 2026
Merged

feat(api): API Endpoints for lists of unread entry IDs and starred entry IDs#4372
fguillot merged 8 commits into
miniflux:mainfrom
jbrayton:entry-id-lists-take-2

Conversation

@jbrayton

@jbrayton jbrayton commented May 30, 2026

Copy link
Copy Markdown
Contributor

Description: This pull request adds two API endpoints: /v1/unread-entry-ids returns a list of IDs of all entries that are marked unread. /v1/starred-entry-ids returns a list of IDs of all entries that are marked starred.
Motivation: I develop Unread and am seriously considering adding support for syncing with Miniflux via its API. Unread can sync with Miniflux now using the Fever API, but that has some limitations. Unread would need an ability to quickly determine what read/unread changes and what starred/unstarred changes have happened on articles that it is already storing locally. These endpoints provide that.
Testing: I added unit tests and integration tests. I also tested against real accounts on an instance of Miniflux running on my computer. I ran all unit tests and integration tests, and the linter.
Breaking Changes: There are no breaking changes.
Related Issues: Issue #2194 requests this.

Have you followed these guidelines?

BTW I am happy to also contribute an associated documentation pull request to the website repository. I figured I would wait to see if this was accepted, but let me know if you want that right away.

jbrayton added 2 commits May 29, 2026 20:54
…a list of all entry IDs for entries that are unread for that user.
…a list of all entry IDs for entries that are starred.
@jbrayton jbrayton changed the title Entry id lists take 2 API Endpoints for lists of unread entry IDs and starred entry IDs May 30, 2026
@jbrayton jbrayton changed the title API Endpoints for lists of unread entry IDs and starred entry IDs feat(api): API Endpoints for lists of unread entry IDs and starred entry IDs May 31, 2026

@fguillot fguillot left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The new endpoints look good overall. However, there doesn't appear to be any pagination or limit on the number of results returned. For users with a large number of unread or starred entries, this could generate very large responses and potentially overwhelm smaller Miniflux instances.

jbrayton added 2 commits June 9, 2026 13:53
…y-ids API endpoints

This limits the responses to 10,000 ID values. The response has a total number of records, and the individual entry ID values based on the limit and offset. With 10,000 ID values per response, the maximum response size should be just under 100KB (assuming 9-digit ID values).

The MaxEntryIDsLimit value is higher than MaxEntryLimit (100) because ID values are so much smaller than entire entries.
@jbrayton

jbrayton commented Jun 9, 2026

Copy link
Copy Markdown
Contributor Author

I added pagination to both API endpoints, with 10,000 ID values per response. Let me know what you think.

Thank you!

@fguillot

Copy link
Copy Markdown
Member

For consistency with the rest, it would be preferable to move the new endpoints under /entries. For example, it could be:

  • GET /v1/entries/ids?status=unread
  • GET /v1/entries/ids?starred=true

Instead of

  • GET /v1/unread-entry-ids
  • GET /v1/starred-entry-ids

In the future, more filters could be added. Similar to the findEntries function.

@jbrayton

Copy link
Copy Markdown
Contributor Author

I combined the API endpoints into one, with status and starred as optional query parameters.

Thank you.

@fguillot fguillot linked an issue Jun 12, 2026 that may be closed by this pull request
1 task
@fguillot fguillot merged commit 7d8ffd2 into miniflux:main Jun 12, 2026
10 of 11 checks passed
dsh2dsh added a commit to dsh2dsh/miniflux that referenced this pull request Jun 12, 2026
dsh2dsh added a commit to dsh2dsh/miniflux that referenced this pull request Jun 12, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

Request for Unread and Saved Item IDs Like Fever API

2 participants