Files
commafeed-podcasts/docs/CommaFeed API.md
2026-04-24 14:03:17 +02:00

38 KiB

created, tags, source
created tags source
2026-04-01T10:04:33 (UTC +02:00)
https://rss.jaandrle.cz/api-documentation/

CommaFeed API (OpenAPI UI, powered by Quarkus 3.31.4)


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

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

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

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

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

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

  • integerint64

  • string

  • string

  • string

  • boolean

  • boolean

object