--- created: 2026-04-01T10:04:33 (UTC +02:00) tags: [] source: https://rss.jaandrle.cz/api-documentation/ --- # CommaFeed API (OpenAPI UI, powered by Quarkus 3.31.4) --- ### [Admin](https://rss.jaandrle.cz/api-documentation/#/Admin) GET/rest/admin/metrics | Code | Description | Links | | --- | --- | --- | | 200 | OK Media type Controls `Accept` header. ``` "string" ``` | _No links_ | | 401 | Not Authorized | _No links_ | | 403 | Not Allowed | _No links_ | POST/rest/admin/user/delete Delete a user, and all his subscriptions | Code | Description | Links | | --- | --- | --- | | 200 | OK Media type Controls `Accept` header. ``` "string" ``` | _No links_ | | 400 | Bad Request | _No links_ | | 401 | Not Authorized | _No links_ | | 403 | Not Allowed | _No links_ | GET/rest/admin/user/get/{id} | Name | Description | | --- | --- | | id \* integer($int64) (path) | user id | | Code | Description | Links | | --- | --- | --- | | 200 | OK Media type Controls `Accept` header. ``` { "id": 0, "name": "string", "email": "string", "apiKey": "string", "password": "string", "enabled": true, "created": "string", "lastLogin": "string", "admin": true, "lastForceRefresh": "string" } ``` | _No links_ | | 401 | Not Authorized | _No links_ | | 403 | Not Allowed | _No links_ | GET/rest/admin/user/getAll | Code | Description | Links | | --- | --- | --- | | 200 | OK Media type Controls `Accept` header. ``` [ { "id": 0, "name": "string", "email": "string", "apiKey": "string", "password": "string", "enabled": true, "created": "string", "lastLogin": "string", "admin": true, "lastForceRefresh": "string" } ] ``` | _No links_ | | 401 | Not Authorized | _No links_ | | 403 | Not Allowed | _No links_ | POST/rest/admin/user/save Save or update a user. If the id is not specified, a new user will be created ``` { "id": 0, "name": "string", "email": "string", "password": "string", "enabled": true, "admin": true } ``` | Code | Description | Links | | --- | --- | --- | | 200 | OK Media type Controls `Accept` header. ``` "string" ``` | _No links_ | | 400 | Bad Request | _No links_ | | 401 | Not Authorized | _No links_ | | 403 | Not Allowed | _No links_ | ### [Feed categories](https://rss.jaandrle.cz/api-documentation/#/Feed%20categories) POST/rest/category/add ``` { "name": "string", "parentId": "string" } ``` | Code | Description | Links | | --- | --- | --- | | 200 | OK Media type Controls `Accept` header. ``` 0 ``` | _No links_ | | 400 | Bad Request | _No links_ | | 401 | Not Authorized | _No links_ | | 403 | Not Allowed | _No links_ | POST/rest/category/collapse Save collapsed or expanded status for a category ``` { "id": 0, "collapse": true } ``` | Code | Description | Links | | --- | --- | --- | | 200 | OK Media type Controls `Accept` header. ``` "string" ``` | _No links_ | | 400 | Bad Request | _No links_ | | 401 | Not Authorized | _No links_ | | 403 | Not Allowed | _No links_ | POST/rest/category/delete Delete an existing feed category | Code | Description | Links | | --- | --- | --- | | 200 | OK Media type Controls `Accept` header. ``` "string" ``` | _No links_ | | 400 | Bad Request | _No links_ | | 401 | Not Authorized | _No links_ | | 403 | Not Allowed | _No links_ | GET/rest/category/entries Get a list of category entries | Name | Description | | --- | --- | | excludedSubscriptionIds string (query) | comma-separated list of excluded subscription ids | | id \* string (query) | id of the category, 'all' or 'starred' | | keywords string (query) | search for keywords in either the title or the content of the entries, separated by spaces | | limit integer($int32) (query) | limit for paging, default 20, maximum 1000 _Default value_ : 20 | | newerThan integer($int64) (query) | only entries newer than this | | offset integer($int32) (query) | offset for paging _Default value_ : 0 | | order string (query) | ordering _Available values_ : asc, desc _Default value_ : desc | | readType \* string (query) | all entries or only unread ones _Available values_ : all, unread _Default value_ : unread | | tag string (query) | keep only entries tagged with this tag | | Code | Description | Links | | --- | --- | --- | | 200 | OK Media type Controls `Accept` header. ``` { "name": "string", "message": "string", "errorCount": 0, "feedLink": "string", "timestamp": 0, "hasMore": true, "offset": 0, "limit": 0, "entries": [ { "id": "string", "guid": "string", "title": "string", "content": "string", "categories": "string", "rtl": true, "author": "string", "enclosureUrl": "string", "enclosureType": "string", "mediaDescription": "string", "mediaThumbnailUrl": "string", "mediaThumbnailWidth": 0, "mediaThumbnailHeight": 0, "date": "string", "insertedDate": "string", "feedId": "string", "feedName": "string", "feedUrl": "string", "feedLink": "string", "iconUrl": "string", "url": "string", "read": true, "starred": true, "markable": true, "tags": [ "string" ] } ], "ignoredReadStatus": true } ``` | _No links_ | | 401 | Not Authorized | _No links_ | | 403 | Not Allowed | _No links_ | | 404 | category not found | _No links_ | GET/rest/category/entriesAsFeed Get a feed of category entries | Name | Description | | --- | --- | | excludedSubscriptionIds string (query) | comma-separated list of excluded subscription ids | | id \* string (query) | id of the category, 'all' or 'starred' | | keywords string (query) | search for keywords in either the title or the content of the entries, separated by spaces | | limit integer($int32) (query) | limit for paging, default 20, maximum 1000 _Default value_ : 20 | | newerThan integer($int64) (query) | only entries newer than this | | offset integer($int32) (query) | offset for paging _Default value_ : 0 | | order string (query) | date ordering _Available values_ : asc, desc _Default value_ : desc | | readType \* string (query) | all entries or only unread ones _Available values_ : all, unread _Default value_ : all | | tag string (query) | keep only entries tagged with this tag | | Code | Description | Links | | --- | --- | --- | | 200 | OK Media type Controls `Accept` header. | _No links_ | | 401 | Not Authorized | _No links_ | | 403 | Not Allowed | _No links_ | GET/rest/category/get Get all categories and subscriptions of the user | Code | Description | Links | | --- | --- | --- | | 200 | OK Media type Controls `Accept` header. ``` { "id": "string", "parentId": "string", "parentName": "string", "name": "string", "children": [ "string" ], "feeds": [ { "id": 0, "name": "string", "message": "string", "errorCount": 0, "lastRefresh": "string", "nextRefresh": "string", "feedUrl": "string", "feedLink": "string", "iconUrl": "string", "unread": 0, "categoryId": "string", "position": 0, "newestItemTime": "string", "filter": "string", "filterLegacy": "string", "pushNotificationsEnabled": true, "autoMarkAsReadAfterDays": 0 } ], "expanded": true, "position": 0 } ``` | _No links_ | | 401 | Not Authorized | _No links_ | | 403 | Not Allowed | _No links_ | POST/rest/category/mark Mark feed entries of this category as read ``` { "id": "string", "read": true, "olderThan": 0, "insertedBefore": 0, "keywords": "string", "excludedSubscriptions": [ 0 ] } ``` | Code | Description | Links | | --- | --- | --- | | 200 | OK Media type Controls `Accept` header. ``` "string" ``` | _No links_ | | 400 | Bad Request | _No links_ | | 401 | Not Authorized | _No links_ | | 403 | Not Allowed | _No links_ | POST/rest/category/modify Modify an existing feed category ``` { "id": 0, "name": "string", "parentId": "string", "position": 0 } ``` | Code | Description | Links | | --- | --- | --- | | 200 | OK Media type Controls `Accept` header. ``` "string" ``` | _No links_ | | 400 | Bad Request | _No links_ | | 401 | Not Authorized | _No links_ | | 403 | Not Allowed | _No links_ | GET/rest/category/unreadCount | Code | Description | Links | | --- | --- | --- | | 200 | OK Media type Controls `Accept` header. ``` [ { "feedId": 0, "unreadCount": 0, "newestItemTime": "string" } ] ``` | _No links_ | | 401 | Not Authorized | _No links_ | | 403 | Not Allowed | _No links_ | ### [Feed entries](https://rss.jaandrle.cz/api-documentation/#/Feed%20entries) POST/rest/entry/mark Mark a feed entry as read/unread ``` { "id": "string", "read": true, "olderThan": 0, "insertedBefore": 0, "keywords": "string", "excludedSubscriptions": [ 0 ] } ``` | Code | Description | Links | | --- | --- | --- | | 200 | OK Media type Controls `Accept` header. ``` "string" ``` | _No links_ | | 400 | Bad Request | _No links_ | | 401 | Not Authorized | _No links_ | | 403 | Not Allowed | _No links_ | POST/rest/entry/markMultiple Mark feed entries as read/unread ``` { "requests": [ { "id": "string", "read": true, "olderThan": 0, "insertedBefore": 0, "keywords": "string", "excludedSubscriptions": [ 0 ] } ] } ``` | Code | Description | Links | | --- | --- | --- | | 200 | OK Media type Controls `Accept` header. ``` "string" ``` | _No links_ | | 400 | Bad Request | _No links_ | | 401 | Not Authorized | _No links_ | | 403 | Not Allowed | _No links_ | POST/rest/entry/star Mark a feed entry as read/unread ``` { "id": "string", "feedId": 0, "starred": true } ``` | Code | Description | Links | | --- | --- | --- | | 200 | OK Media type Controls `Accept` header. ``` "string" ``` | _No links_ | | 400 | Bad Request | _No links_ | | 401 | Not Authorized | _No links_ | | 403 | Not Allowed | _No links_ | POST/rest/entry/tag ``` { "entryId": 0, "tags": [ "string" ] } ``` | Code | Description | Links | | --- | --- | --- | | 200 | OK Media type Controls `Accept` header. ``` "string" ``` | _No links_ | | 400 | Bad Request | _No links_ | | 401 | Not Authorized | _No links_ | | 403 | Not Allowed | _No links_ | GET/rest/entry/tags Get list of tags for the user | Code | Description | Links | | --- | --- | --- | | 200 | OK Media type Controls `Accept` header. ``` "string" ``` | _No links_ | | 401 | Not Authorized | _No links_ | | 403 | Not Allowed | _No links_ | ### [Feeds](https://rss.jaandrle.cz/api-documentation/#/Feeds) GET/rest/feed/entries Get a list of feed entries | Name | Description | | --- | --- | | id \* string (query) | id of the feed | | keywords string (query) | search for keywords in either the title or the content of the entries, separated by spaces | | limit integer($int32) (query) | limit for paging, default 20, maximum 1000 _Default value_ : 20 | | newerThan integer($int64) (query) | only entries newer than this | | offset integer($int32) (query) | offset for paging _Default value_ : 0 | | order string (query) | ordering _Available values_ : asc, desc _Default value_ : desc | | readType \* string (query) | all entries or only unread ones _Available values_ : all, unread _Default value_ : unread | | Code | Description | Links | | --- | --- | --- | | 200 | OK Media type Controls `Accept` header. ``` { "name": "string", "message": "string", "errorCount": 0, "feedLink": "string", "timestamp": 0, "hasMore": true, "offset": 0, "limit": 0, "entries": [ { "id": "string", "guid": "string", "title": "string", "content": "string", "categories": "string", "rtl": true, "author": "string", "enclosureUrl": "string", "enclosureType": "string", "mediaDescription": "string", "mediaThumbnailUrl": "string", "mediaThumbnailWidth": 0, "mediaThumbnailHeight": 0, "date": "string", "insertedDate": "string", "feedId": "string", "feedName": "string", "feedUrl": "string", "feedLink": "string", "iconUrl": "string", "url": "string", "read": true, "starred": true, "markable": true, "tags": [ "string" ] } ], "ignoredReadStatus": true } ``` | _No links_ | | 401 | Not Authorized | _No links_ | | 403 | Not Allowed | _No links_ | | 404 | feed not found | _No links_ | GET/rest/feed/entriesAsFeed Get a feed of feed entries | Name | Description | | --- | --- | | id \* string (query) | id of the feed | | keywords string (query) | search for keywords in either the title or the content of the entries, separated by spaces | | limit integer($int32) (query) | limit for paging, default 20, maximum 1000 _Default value_ : 20 | | newerThan integer($int64) (query) | only entries newer than this | | offset integer($int32) (query) | offset for paging _Default value_ : 0 | | order string (query) | date ordering _Available values_ : asc, desc _Default value_ : desc | | readType \* string (query) | all entries or only unread ones _Available values_ : all, unread _Default value_ : all | | Code | Description | Links | | --- | --- | --- | | 200 | OK Media type Controls `Accept` header. | _No links_ | | 401 | Not Authorized | _No links_ | | 403 | Not Allowed | _No links_ | GET/rest/feed/export Export an OPML file of the user's subscriptions | Code | Description | Links | | --- | --- | --- | | 200 | OK Media type Controls `Accept` header. | _No links_ | | 401 | Not Authorized | _No links_ | | 403 | Not Allowed | _No links_ | GET/rest/feed/favicon/{id} | Name | Description | | --- | --- | | id \* integer($int64) (path) | subscription id | | Code | Description | Links | | --- | --- | --- | | 200 | OK Media type Controls `Accept` header. ``` "string" ``` | _No links_ | | 401 | Not Authorized | _No links_ | | 403 | Not Allowed | _No links_ | POST/rest/feed/fetch | Code | Description | Links | | --- | --- | --- | | 200 | OK Media type Controls `Accept` header. ``` { "url": "string", "title": "string" } ``` | _No links_ | | 400 | Bad Request | _No links_ | | 401 | Not Authorized | _No links_ | | 403 | Not Allowed | _No links_ | | 404 | feed not found | _No links_ | GET/rest/feed/get/{id} | Name | Description | | --- | --- | | id \* integer($int64) (path) | user id | | Code | Description | Links | | --- | --- | --- | | 200 | OK Media type Controls `Accept` header. ``` { "id": 0, "name": "string", "message": "string", "errorCount": 0, "lastRefresh": "string", "nextRefresh": "string", "feedUrl": "string", "feedLink": "string", "iconUrl": "string", "unread": 0, "categoryId": "string", "position": 0, "newestItemTime": "string", "filter": "string", "filterLegacy": "string", "pushNotificationsEnabled": true, "autoMarkAsReadAfterDays": 0 } ``` | _No links_ | | 401 | Not Authorized | _No links_ | | 403 | Not Allowed | _No links_ | | 404 | feed not found | _No links_ | POST/rest/feed/import Import an OPML file, posted as a FORM with the 'file' name | Code | Description | Links | | --- | --- | --- | | 200 | OK Media type Controls `Accept` header. ``` "string" ``` | _No links_ | | 400 | Bad Request | _No links_ | | 401 | Not Authorized | _No links_ | | 403 | Not Allowed | _No links_ | POST/rest/feed/mark Mark feed entries as read (unread is not supported) ``` { "id": "string", "read": true, "olderThan": 0, "insertedBefore": 0, "keywords": "string", "excludedSubscriptions": [ 0 ] } ``` | Code | Description | Links | | --- | --- | --- | | 200 | OK Media type Controls `Accept` header. ``` "string" ``` | _No links_ | | 400 | Bad Request | _No links_ | | 401 | Not Authorized | _No links_ | | 403 | Not Allowed | _No links_ | POST/rest/feed/modify Modify a feed subscription ``` { "id": 0, "name": "string", "categoryId": "string", "position": 0, "filter": "string", "pushNotificationsEnabled": true, "autoMarkAsReadAfterDays": 0 } ``` | Code | Description | Links | | --- | --- | --- | | 200 | OK Media type Controls `Accept` header. ``` "string" ``` | _No links_ | | 400 | Bad Request | _No links_ | | 401 | Not Authorized | _No links_ | | 403 | Not Allowed | _No links_ | GET/rest/feed/refreshAll Manually add all feeds of the user to the refresh queue | Code | Description | Links | | --- | --- | --- | | 200 | OK Media type Controls `Accept` header. ``` "string" ``` | _No links_ | | 401 | Not Authorized | _No links_ | | 403 | Not Allowed | _No links_ | GET/rest/feed/subscribe | Name | Description | | --- | --- | | url \* string (query) | feed url | | Code | Description | Links | | --- | --- | --- | | 200 | OK Media type Controls `Accept` header. ``` "string" ``` | _No links_ | | 401 | Not Authorized | _No links_ | | 403 | Not Allowed | _No links_ | POST/rest/feed/subscribe ``` { "url": "string", "title": "string", "categoryId": "string" } ``` | Code | Description | Links | | --- | --- | --- | | 200 | OK Media type Controls `Accept` header. ``` 0 ``` | _No links_ | | 400 | Bad Request | _No links_ | | 401 | Not Authorized | _No links_ | | 403 | Not Allowed | _No links_ | POST/rest/feed/unsubscribe | Code | Description | Links | | --- | --- | --- | | 200 | OK Media type Controls `Accept` header. ``` "string" ``` | _No links_ | | 400 | Bad Request | _No links_ | | 401 | Not Authorized | _No links_ | | 403 | Not Allowed | _No links_ | ### [Server](https://rss.jaandrle.cz/api-documentation/#/Server) GET/rest/server/get | Code | Description | Links | | --- | --- | --- | | 200 | OK Media type Controls `Accept` header. ``` { "announcement": "string", "version": "string", "gitCommit": "string", "allowRegistrations": true, "emailAddressRequired": true, "smtpEnabled": true, "demoAccountEnabled": true, "websocketEnabled": true, "websocketPingInterval": 0, "treeReloadInterval": 0, "forceRefreshCooldownDuration": 0, "initialSetupRequired": true, "minimumPasswordLength": 0, "pushNotificationsEnabled": true } ``` | _No links_ | GET/rest/server/proxy | Name | Description | | --- | --- | | u \* string (query) | image url | | Code | Description | Links | | --- | --- | --- | | 200 | OK Media type Controls `Accept` header. | _No links_ | | 401 | Not Authorized | _No links_ | | 403 | Not Allowed | _No links_ | ### [Users](https://rss.jaandrle.cz/api-documentation/#/Users) POST/rest/user/initialSetup This endpoint is only available when no users exist in the database ``` { "name": "string", "password": "string", "email": "string" } ``` | Code | Description | Links | | --- | --- | --- | | 200 | OK Media type Controls `Accept` header. ``` "string" ``` | _No links_ | | 400 | Bad Request | _No links_ | | 401 | Not Authorized | _No links_ | | 403 | Not Allowed | _No links_ | POST/rest/user/passwordReset | Code | Description | Links | | --- | --- | --- | | 200 | OK Media type Controls `Accept` header. ``` "string" ``` | _No links_ | | 400 | Bad Request | _No links_ | | 401 | Not Authorized | _No links_ | | 403 | Not Allowed | _No links_ | POST/rest/user/passwordResetCallback ``` { "email": "string", "token": "string", "password": "string" } ``` | Code | Description | Links | | --- | --- | --- | | 200 | OK Media type Controls `Accept` header. ``` "string" ``` | _No links_ | | 400 | Bad Request | _No links_ | | 401 | Not Authorized | _No links_ | | 403 | Not Allowed | _No links_ | POST/rest/user/profile ``` { "currentPassword": "string", "email": "string", "newPassword": "string", "newApiKey": true } ``` | Code | Description | Links | | --- | --- | --- | | 200 | OK Media type Controls `Accept` header. ``` "string" ``` | _No links_ | | 400 | Bad Request | _No links_ | | 401 | Not Authorized | _No links_ | | 403 | Not Allowed | _No links_ | GET/rest/user/profile | Code | Description | Links | | --- | --- | --- | | 200 | OK Media type Controls `Accept` header. ``` { "id": 0, "name": "string", "email": "string", "apiKey": "string", "password": "string", "enabled": true, "created": "string", "lastLogin": "string", "admin": true, "lastForceRefresh": "string" } ``` | _No links_ | | 401 | Not Authorized | _No links_ | | 403 | Not Allowed | _No links_ | POST/rest/user/profile/deleteAccount | Code | Description | Links | | --- | --- | --- | | 200 | OK Media type Controls `Accept` header. ``` "string" ``` | _No links_ | | 401 | Not Authorized | _No links_ | | 403 | Not Allowed | _No links_ | POST/rest/user/pushNotificationTest ``` { "type": "ntfy", "serverUrl": "string", "userId": "string", "userSecret": "string", "topic": "string" } ``` | Code | Description | Links | | --- | --- | --- | | 200 | OK Media type Controls `Accept` header. ``` "string" ``` | _No links_ | | 400 | Bad Request | _No links_ | | 401 | Not Authorized | _No links_ | | 403 | Not Allowed | _No links_ | POST/rest/user/register ``` { "name": "string", "password": "string", "email": "string" } ``` | Code | Description | Links | | --- | --- | --- | | 200 | OK Media type Controls `Accept` header. ``` "string" ``` | _No links_ | | 400 | Bad Request | _No links_ | | 401 | Not Authorized | _No links_ | | 403 | Not Allowed | _No links_ | POST/rest/user/settings ``` { "language": "string", "readingMode": "all", "readingOrder": "asc", "showRead": true, "scrollMarks": true, "customCss": "string", "customJs": "string", "scrollSpeed": 0, "scrollMode": "always", "entriesToKeepOnTopWhenScrolling": 0, "starIconDisplayMode": "always", "externalLinkIconDisplayMode": "always", "markAllAsReadConfirmation": true, "markAllAsReadNavigateToNextUnread": true, "customContextMenu": true, "mobileFooter": true, "unreadCountTitle": true, "unreadCountFavicon": true, "disablePullToRefresh": true, "primaryColor": "string", "sharingSettings": { "email": true, "gmail": true, "facebook": true, "twitter": true, "tumblr": true, "pocket": true, "instapaper": true, "buffer": true }, "pushNotificationSettings": { "type": "ntfy", "serverUrl": "string", "userId": "string", "userSecret": "string", "topic": "string" } } ``` | Code | Description | Links | | --- | --- | --- | | 200 | OK Media type Controls `Accept` header. ``` "string" ``` | _No links_ | | 400 | Bad Request | _No links_ | | 401 | Not Authorized | _No links_ | | 403 | Not Allowed | _No links_ | GET/rest/user/settings | Code | Description | Links | | --- | --- | --- | | 200 | OK Media type Controls `Accept` header. ``` { "language": "string", "readingMode": "all", "readingOrder": "asc", "showRead": true, "scrollMarks": true, "customCss": "string", "customJs": "string", "scrollSpeed": 0, "scrollMode": "always", "entriesToKeepOnTopWhenScrolling": 0, "starIconDisplayMode": "always", "externalLinkIconDisplayMode": "always", "markAllAsReadConfirmation": true, "markAllAsReadNavigateToNextUnread": true, "customContextMenu": true, "mobileFooter": true, "unreadCountTitle": true, "unreadCountFavicon": true, "disablePullToRefresh": true, "primaryColor": "string", "sharingSettings": { "email": true, "gmail": true, "facebook": true, "twitter": true, "tumblr": true, "pocket": true, "instapaper": true, "buffer": true }, "pushNotificationSettings": { "type": "ntfy", "serverUrl": "string", "userId": "string", "userSecret": "string", "topic": "string" } } ``` | _No links_ | | 401 | Not Authorized | _No links_ | | 403 | Not Allowed | _No links_ | #### Schemas **object** - **string**\[1, 128\] characters - **string**≤ 128 characters parent category id, if any **object** - **integer**int64 - **string** - **string** - **string** - **boolean** - **boolean** **object** - **string** - **string** - **string** - **string** - **array** category children categories **any** $refhttps://rss.jaandrle.cz/openapi#/components/schemas/Category - **array** **object** - **integer**int64 - **string** - **string** error message while fetching the feed - **integer**int32 - **any** last time the feed was refreshed - **any** next time the feed refresh is planned, null if refresh is already queued - **string** this subscription's feed url - **string** this subscription's website url - **string** The favicon url to use for this feed - **integer**int64 - **string** - **integer**int32 position of the subscription's in the list - **any** - **string** CEL string evaluated on new entries to mark them as read if they do not match - **string** - **boolean** whether to send push notifications for new entries of this feed - **integer**int32 automatically mark entries as read after this many days (null to disable) - **boolean** whether the category is expanded or collapsed - **integer**int32 position of the category in the list **object** Category modification request - **integer**int64 - **string**≤ 128 characters new name, null if not changed - **string**≤ 128 characters - **integer**int32 new display position, null if not changed **object** - **integer**int64 - **boolean** **object** List of entries with some metadata - **string** name of the feed or the category requested - **string** - **integer**int32 times the server tried to refresh the feed and failed - **string** URL of the website, extracted from the feed, only filled if querying for feed entries, not category entries - **integer**int64 list generation timestamp - **boolean** if the query has more elements - **integer**int32 - **integer**int32 - **array** **object** - **string** - **string** - **string** - **string** - **string** comma-separated list of categories - **boolean** whether entry content and title are rtl - **string** - **string** entry enclosure url, if any - **string** entry enclosure mime type, if any - **string** entry media description, if any - **string** entry media thumbnail url, if any - **integer**int32 entry media thumbnail width, if any - **integer**int32 entry media thumbnail height, if any - **any** - **any** entry insertion date in the database - **string** - **string** - **string** - **string** - **string** The favicon url to use for this feed - **string** - **boolean** - **boolean** - **boolean** whether the entry is still markable (old entry statuses are discarded) - **array** - **boolean** if true, the unread flag was ignored in the request, all entries are returned regardless of their read status **object** - **string** - **string** - **string** - **string** - **string** comma-separated list of categories - **boolean** whether entry content and title are rtl - **string** - **string** entry enclosure url, if any - **string** entry enclosure mime type, if any - **string** entry media description, if any - **string** entry media thumbnail url, if any - **integer**int32 entry media thumbnail width, if any - **integer**int32 entry media thumbnail height, if any - **any** - **any** entry insertion date in the database - **string** - **string** - **string** - **string** - **string** The favicon url to use for this feed - **string** - **boolean** - **boolean** - **boolean** whether the entry is still markable (old entry statuses are discarded) - **array** **object** - **string** - **string** **object** - **string**\[1, 4096\] characters **object** Feed modification request - **integer**int64 - **string**≤ 128 characters new name, null if not changed - **string**≤ 128 characters - **integer**int32 new display position, null if not changed - **string**≤ 4096 characters CEL string evaluated on new entries to mark them as read if they do not match - **boolean** whether to send push notifications for new entries of this feed - **integer**int32 automatically mark entries as read after this many days (null to disable) **object** **string** **array** - #0"always" - #1"never" - #2"on\_desktop" - #3"on\_mobile" **object** Initial admin account setup request - **string** - **string** - **string** **object** - **string**\[1, 128\] characters entry id, category id, 'all' or 'starred' - **boolean** - **integer**int64 mark only entries older than this - **integer**int64 pass the timestamp you got from the entry list to avoid marking entries that may have been fetched in the mean time and never displayed - **string**≤ 128 characters only mark read if a feed has these keywords in the title or rss content - **array** if marking a category or 'all', exclude those subscriptions from the marking **object** - **array** **object** - **string**\[1, 128\] characters entry id, category id, 'all' or 'starred' - **boolean** - **integer**int64 mark only entries older than this - **integer**int64 pass the timestamp you got from the entry list to avoid marking entries that may have been fetched in the mean time and never displayed - **string**≤ 128 characters only mark read if a feed has these keywords in the title or rss content - **array** if marking a category or 'all', exclude those subscriptions from the marking **object** - **string**\[1, 255\] characters email address for password recovery - **string**≥ 1 characters - **string**≥ 1 characters **object** - **string**\[1, 255\] characters email address for password recovery **object** Profile modification request - **string**\[1, 128\] characters current user password, required to change profile data - **string**≤ 255 characters changes email of the user, if specified - **string** changes password of the user, if specified - **boolean** **object** User notification settings - **string** notification provider type **array** - #0"ntfy" - #1"gotify" - #2"pushover" - **string** server URL for ntfy or gotify - **string** - **string** user secret for authentication with the service - **string** **string** **array** - #0"ntfy" - #1"gotify" - #2"pushover" **string** **string** **object** - **string**\[3, 32\] characters username, between 3 and 32 characters - **string**≥ 1 characters - **string**\[1, 255\] characters email address for password recovery **string** **array** - #0"always" - #1"never" - #2"if\_needed" **object** - allowRegistrations **boolean** - emailAddressRequired **boolean** - demoAccountEnabled **boolean** - websocketPingInterval **integer**int64 - treeReloadInterval **integer**int64 - forceRefreshCooldownDuration **integer**int64 - initialSetupRequired **boolean** - minimumPasswordLength **integer**int32 - pushNotificationsEnabled **boolean** **object** - **string** user's preferred language, english if none - **string** user reads all entries or unread entries only - **string** user reads entries in ascending or descending order - **boolean** user wants category and feeds with no unread entries shown - **boolean** In expanded view, scroll through entries mark them as read - **string** user's custom css for the website - **string** user's custom js for the website - **integer**int32 user's preferred scroll speed when navigating between entries - **string** whether to scroll to the selected entry **array** - #0"always" - #1"never" - #2"if\_needed" - **integer**int32 number of entries to keep above the selected entry when scrolling - **string** whether to show the star icon in the header of entries **array** - #0"always" - #1"never" - #2"on\_desktop" - #3"on\_mobile" - **string** whether to show the external link icon in the header of entries **array** - #0"always" - #1"never" - #2"on\_desktop" - #3"on\_mobile" - **boolean** ask for confirmation when marking all entries as read - **boolean** navigate to the next unread category or feed after marking all entries as read - **boolean** show commafeed's own context menu on right click - **boolean** on mobile, show action buttons at the bottom of the screen - **boolean** show unread count in the title - **boolean** show unread count in the favicon - **boolean** - **string** primary theme color to use in the UI - **object** - **object** push notification settings - **string** notification provider type **array** - #0"ntfy" - #1"gotify" - #2"pushover" - **string** server URL for ntfy or gotify - **string** - **string** user secret for authentication with the service - **string** **object** **object** - **string**\[1, 128\] characters - **integer**int64 - **boolean** **object** - **string**\[1, 4096\] characters - **string**\[1, 128\] characters name of the feed for the user - **string**≤ 128 characters id of the user category to place the feed in **object** - **integer**int64 - **string** - **string** error message while fetching the feed - **integer**int32 - **any** last time the feed was refreshed - **any** next time the feed refresh is planned, null if refresh is already queued - **string** this subscription's feed url - **string** this subscription's website url - **string** The favicon url to use for this feed - **integer**int64 - **string** - **integer**int32 position of the subscription's in the list - **any** - **string** CEL string evaluated on new entries to mark them as read if they do not match - **string** - **boolean** whether to send push notifications for new entries of this feed - **integer**int32 automatically mark entries as read after this many days (null to disable) **object** - **integer**int64 - **array** **object** - **any** **object** - **integer**int64 - **string** - **string** - **string** - **string** user password, never returned by the api - **boolean** - **any** - **any** - **boolean** - **any**