API documentation for Queso services.
| title required | string <= 500 characters |
| link | string <uri> <= 2048 characters |
| author | string <= 255 characters Default: "" |
| estimated_time | integer [ -2147483648 .. 2147483647 ] Default: 0 |
| is_quote | boolean Default: false |
| is_til | boolean Default: false |
| is_note | boolean Default: false |
| tags | Array of strings |
| read | boolean Default: false |
| notes | string Default: "" |
| snapshot | string Default: "" |
| meta_image | string <uri> <= 2048 characters Default: "" |
| published_date | string or null <date-time> |
| source_type | string Default: "manual" Enum: "manual" "rss" "import"
|
| source_id | integer or null [ -2147483648 .. 2147483647 ] |
| is_favorite | boolean Default: false |
{- "title": "string",
- "author": "",
- "estimated_time": 0,
- "is_quote": false,
- "is_til": false,
- "is_note": false,
- "tags": [
- "string"
], - "read": false,
- "notes": "",
- "snapshot": "",
- "meta_image": "",
- "published_date": "2019-08-24T14:15:22Z",
- "source_type": "manual",
- "source_id": -2147483648,
- "is_favorite": false
}{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "date_created": "2019-08-24T14:15:22Z",
- "date_updated": "2019-08-24T14:15:22Z",
- "title": "string",
- "author": "string",
- "estimated_time": -2147483648,
- "is_quote": true,
- "is_til": true,
- "is_note": true,
- "tags": null,
- "read": true,
- "notes": "string",
- "snapshot": "string",
- "snapshot_audio_status": "",
- "has_snapshot": true,
- "has_snapshot_audio": true,
- "has_notes": true,
- "published_date": "2019-08-24T14:15:22Z",
- "source_type": "manual",
- "source_id": -2147483648,
- "is_favorite": true
}
}{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "date_created": "2019-08-24T14:15:22Z",
- "date_updated": "2019-08-24T14:15:22Z",
- "title": "string",
- "author": "string",
- "estimated_time": -2147483648,
- "is_quote": true,
- "is_til": true,
- "is_note": true,
- "tags": null,
- "read": true,
- "notes": "string",
- "snapshot": "string",
- "snapshot_audio_status": "",
- "has_snapshot": true,
- "has_snapshot_audio": true,
- "has_notes": true,
- "published_date": "2019-08-24T14:15:22Z",
- "source_type": "manual",
- "source_id": -2147483648,
- "is_favorite": true
}
}| id required | string <uuid> |
| title | string <= 500 characters |
| link | string <uri> <= 2048 characters |
| author | string <= 255 characters |
| estimated_time | integer [ -2147483648 .. 2147483647 ] |
| is_quote | boolean |
| is_til | boolean |
| is_note | boolean |
| tags | Array of strings |
| read | boolean |
| notes | string |
| snapshot | string |
| meta_image | string <uri> <= 2048 characters |
| published_date | string or null <date-time> |
| source_type | string Enum: "manual" "rss" "import"
|
| source_id | integer or null [ -2147483648 .. 2147483647 ] |
| is_favorite | boolean |
{- "title": "string",
- "author": "string",
- "estimated_time": -2147483648,
- "is_quote": true,
- "is_til": true,
- "is_note": true,
- "tags": [
- "string"
], - "read": true,
- "notes": "string",
- "snapshot": "string",
- "published_date": "2019-08-24T14:15:22Z",
- "source_type": "manual",
- "source_id": -2147483648,
- "is_favorite": true
}{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "date_created": "2019-08-24T14:15:22Z",
- "date_updated": "2019-08-24T14:15:22Z",
- "title": "string",
- "author": "string",
- "estimated_time": -2147483648,
- "is_quote": true,
- "is_til": true,
- "is_note": true,
- "tags": null,
- "read": true,
- "notes": "string",
- "snapshot": "string",
- "snapshot_audio_status": "",
- "has_snapshot": true,
- "has_snapshot_audio": true,
- "has_notes": true,
- "published_date": "2019-08-24T14:15:22Z",
- "source_type": "manual",
- "source_id": -2147483648,
- "is_favorite": true
}
}Creates a personalized newsletter from unread bookmarks.Pass read_time to control how long the newsletter takes to read
| limit | integer Candidate pool size to consider (default 100, max 100). |
| read_time | integer Optional reading-time target in minutes (default 30). Returns unread bookmarks with total estimated time close to this value. |
| tags | string Optional comma-separated tag list. Matches any provided tag. |
{- "markdown": "string",
- "target_read_time": 0,
- "total_estimated_time": 0,
- "article_count": 0,
- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "title": "string",
- "author": "string",
- "estimated_time": 0,
- "tags": [
- "string"
], - "meta_image": "string",
- "teaser": "string"
}
]
}Returns only bookmarks tagged with "public". Useful to share bookmarks and notes publicly. Rate limit: 10/hour.
| limit | integer Maximum results per page (default 10, max 100). |
| page | integer Page number to return (default 1). |
| user_profile_id required | string Profile ID of the bookmark owner (8-digit string). |
{- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "date_created": "2019-08-24T14:15:22Z",
- "date_updated": "2019-08-24T14:15:22Z",
- "title": "string",
- "author": "string",
- "estimated_time": -2147483648,
- "is_quote": true,
- "is_til": true,
- "is_note": true,
- "tags": null,
- "read": true,
- "notes": "string",
- "snapshot": "string",
- "snapshot_audio_status": "",
- "has_snapshot": true,
- "has_snapshot_audio": true,
- "has_notes": true,
- "published_date": "2019-08-24T14:15:22Z",
- "source_type": "manual",
- "source_id": -2147483648,
- "is_favorite": true
}
], - "meta": {
- "total_count": 0,
- "filter_count": 0
}
}Returns all bookmark tags and the count of bookmarks that use the tag. Tags are formatted to lowercase with excess whitespace removed
| filter | string Optional bookmark filter expression using bracket notation (e.g. filter[read][_eq]=false). |
| search | string Optional bookmark search query before tag counting. |
| tag | string Single included tag filter. Equivalent to tags[]. |
| tags | string Comma-separated included tags filter. Equivalent to tags[]. |
| tags[] | string Repeatable included tags filter. Counts are computed from bookmarks that contain all provided tags. |
{- "data": [
- {
- "tag": "string",
- "display": "string",
- "count": 0
}
], - "meta": {
- "total_count": 0
}
}Cursor-paginated bookmarks list. Returns lightweight bookmark records (notes and snapshot are excluded) and tag facets for the currently filtered result set.
| bookmark_type | string Bookmark type filter: all, is_unread, is_quote, is_til, is_note, is_read, bookmarks. |
| cursor | string Opaque cursor token from the previous response. |
| filter | string Optional advanced filter expression using bracket notation. |
| limit | integer Maximum results per request (default 20, max 100). |
| search | string Search query applied to bookmark title/link/author/notes. |
| sort[] | string Sort field for cursor pagination. Allowed values: -date_created, date_created, -date_updated, date_updated, -estimated_time, estimated_time, -published_date, published_date. |
| tags[] | string Repeatable tag filter with AND semantics. |
[- {
- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "date_created": "2019-08-24T14:15:22Z",
- "date_updated": "2019-08-24T14:15:22Z",
- "title": "string",
- "author": "string",
- "estimated_time": -2147483648,
- "is_quote": true,
- "is_til": true,
- "is_note": true,
- "tags": null,
- "read": true,
- "has_snapshot": true,
- "has_snapshot_audio": true,
- "has_notes": true,
- "published_date": "2019-08-24T14:15:22Z",
- "source_type": "manual",
- "source_id": -2147483648,
- "is_favorite": true
}
], - "meta": {
- "next_cursor": "string",
- "has_more": true,
- "total_count": 0,
- "available_tags": [
- {
- "tag": "string",
- "count": 0
}
]
}
}
]Returns only the snapshot field for a bookmark.
| id required | string <uuid> |
{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "snapshot": "string",
- "snapshot_audio_status": "string",
- "has_snapshot_audio": true
}
}Returns a short-lived, pre-signed URL to the bookmark's snapshot audio in the file vault. The URL is valid for QUESO_BOOKMARK_AUDIO_URL_EXPIRY_SECONDS seconds. Returns 404 if audio has not yet been synthesized (snapshot_audio_status != 'ready').
| id required | string <uuid> |
{
}Creates an audio version of the saved article or blog post so you can listen to it. Generation continues in the background when the response status is pending. Check the bookmark snapshot for its current audio status, then use the snapshot audio endpoint to get a playback URL when it is ready. If audio is already available, this returns ready without generating it again.
| id required | string <uuid> |
{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "snapshot_audio_status": "pending",
- "has_snapshot_audio": true
}
}[- {
- "data": [
- {
- "id": 0,
- "title": "string",
- "description": "string",
- "date_created": "2019-08-24T14:15:22Z",
- "last_fetched": "2019-08-24T14:15:22Z",
- "active": true,
- "date_subscribed": "2019-08-24T14:15:22Z"
}
]
}
]| url required | string <uri> <= 2000 characters |
{
}{- "data": {
- "id": 0,
- "title": "string",
- "description": "string",
- "date_created": "2019-08-24T14:15:22Z",
- "last_fetched": "2019-08-24T14:15:22Z",
- "active": true,
- "date_subscribed": "2019-08-24T14:15:22Z"
}
}| rssFeedId required | integer |
{- "data": {
- "id": 0,
- "title": "string",
- "description": "string",
- "date_created": "2019-08-24T14:15:22Z",
- "last_fetched": "2019-08-24T14:15:22Z",
- "active": true,
- "date_subscribed": "2019-08-24T14:15:22Z"
}
}| rssFeedId required | integer |
| active required | boolean |
{- "active": true
}{- "data": {
- "id": 0,
- "title": "string",
- "description": "string",
- "date_created": "2019-08-24T14:15:22Z",
- "last_fetched": "2019-08-24T14:15:22Z",
- "active": true,
- "date_subscribed": "2019-08-24T14:15:22Z"
}
}| rssFeedId required | integer |
| limit | integer Maximum results per page (default 50). |
| page | integer Page number to return (default 1). |
{- "data": [
- {
- "id": 0,
- "feed_id": 0,
- "title": "string",
- "description": "string",
- "pub_date": "2019-08-24T14:15:22Z",
- "updated_date": "2019-08-24T14:15:22Z",
- "author": "string",
- "guid": "string",
- "read": true,
- "meta_author": "string",
- "content": "string",
- "content_type": "html",
- "feed_title": "string",
- "feed_url": "string"
}
], - "meta": {
- "total_count": 0,
- "page": 0,
- "limit": 0
}
}| rssItemId required | integer |
{- "data": {
- "id": 0,
- "feed_id": 0,
- "title": "string",
- "description": "string",
- "pub_date": "2019-08-24T14:15:22Z",
- "updated_date": "2019-08-24T14:15:22Z",
- "author": "string",
- "guid": "string",
- "read": true,
- "meta_author": "string",
- "content": "string",
- "content_type": "html",
- "feed_title": "string",
- "feed_url": "string"
}
}| limit | integer Maximum results per page (default 50). |
| page | integer Page number to return (default 1). |
{- "data": [
- {
- "id": 0,
- "feed_id": 0,
- "title": "string",
- "description": "string",
- "pub_date": "2019-08-24T14:15:22Z",
- "updated_date": "2019-08-24T14:15:22Z",
- "author": "string",
- "guid": "string",
- "read": true,
- "meta_author": "string",
- "content": "string",
- "content_type": "html",
- "feed_title": "string",
- "feed_url": "string"
}
], - "meta": {
- "total_count": 0,
- "page": 0,
- "limit": 0,
- "days": 0
}
}