aboutsummaryrefslogtreecommitdiffstats
path: root/packages/open-api/hoarder-openapi-spec.json
diff options
context:
space:
mode:
authoradripo <26493496+adripo@users.noreply.github.com>2025-04-21 19:59:40 +0200
committerGitHub <noreply@github.com>2025-04-21 18:59:40 +0100
commit4296e7f4d8de64a62dbf5e5d152b19ae25df489e (patch)
treea976ea13ec1396078de2047fdcb125bb086c6a17 /packages/open-api/hoarder-openapi-spec.json
parent86728d7f0e48e5cf8fbd1977240909302b2d8ad9 (diff)
downloadkarakeep-4296e7f4d8de64a62dbf5e5d152b19ae25df489e.tar.zst
chore: rename missing files/conf from Hoarder to Karakeep (#1280)
* refactor: Rename remaining project configuration from Hoarder to Karakeep * some fixes --------- Co-authored-by: Mohamed Bassem <me@mbassem.com>
Diffstat (limited to 'packages/open-api/hoarder-openapi-spec.json')
-rw-r--r--packages/open-api/hoarder-openapi-spec.json2901
1 files changed, 0 insertions, 2901 deletions
diff --git a/packages/open-api/hoarder-openapi-spec.json b/packages/open-api/hoarder-openapi-spec.json
deleted file mode 100644
index 9a1d8634..00000000
--- a/packages/open-api/hoarder-openapi-spec.json
+++ /dev/null
@@ -1,2901 +0,0 @@
-{
- "openapi": "3.0.0",
- "info": {
- "version": "1.0.0",
- "title": "Hoarder API",
- "description": "The API for the Hoarder app"
- },
- "servers": [
- {
- "url": "{address}/api/v1",
- "variables": {
- "address": {
- "default": "https://try.hoarder.app",
- "description": "The address of the hoarder server"
- }
- }
- }
- ],
- "components": {
- "securitySchemes": {
- "bearerAuth": {
- "type": "http",
- "scheme": "bearer",
- "bearerFormat": "JWT"
- }
- },
- "schemas": {
- "AssetId": {
- "type": "string",
- "example": "ieidlxygmwj87oxz5hxttoc8"
- },
- "BookmarkId": {
- "type": "string",
- "example": "ieidlxygmwj87oxz5hxttoc8"
- },
- "ListId": {
- "type": "string",
- "example": "ieidlxygmwj87oxz5hxttoc8"
- },
- "TagId": {
- "type": "string",
- "example": "ieidlxygmwj87oxz5hxttoc8"
- },
- "HighlightId": {
- "type": "string",
- "example": "ieidlxygmwj87oxz5hxttoc8"
- },
- "Bookmark": {
- "type": "object",
- "properties": {
- "id": {
- "type": "string"
- },
- "createdAt": {
- "type": "string"
- },
- "modifiedAt": {
- "type": "string",
- "nullable": true
- },
- "title": {
- "type": "string",
- "nullable": true
- },
- "archived": {
- "type": "boolean"
- },
- "favourited": {
- "type": "boolean"
- },
- "taggingStatus": {
- "type": "string",
- "nullable": true,
- "enum": [
- "success",
- "failure",
- "pending"
- ]
- },
- "note": {
- "type": "string",
- "nullable": true
- },
- "summary": {
- "type": "string",
- "nullable": true
- },
- "tags": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "id": {
- "type": "string"
- },
- "name": {
- "type": "string"
- },
- "attachedBy": {
- "type": "string",
- "enum": [
- "ai",
- "human"
- ]
- }
- },
- "required": [
- "id",
- "name",
- "attachedBy"
- ]
- }
- },
- "content": {
- "oneOf": [
- {
- "type": "object",
- "properties": {
- "type": {
- "type": "string",
- "enum": [
- "link"
- ]
- },
- "url": {
- "type": "string"
- },
- "title": {
- "type": "string",
- "nullable": true
- },
- "description": {
- "type": "string",
- "nullable": true
- },
- "imageUrl": {
- "type": "string",
- "nullable": true
- },
- "imageAssetId": {
- "type": "string",
- "nullable": true
- },
- "screenshotAssetId": {
- "type": "string",
- "nullable": true
- },
- "fullPageArchiveAssetId": {
- "type": "string",
- "nullable": true
- },
- "precrawledArchiveAssetId": {
- "type": "string",
- "nullable": true
- },
- "videoAssetId": {
- "type": "string",
- "nullable": true
- },
- "favicon": {
- "type": "string",
- "nullable": true
- },
- "htmlContent": {
- "type": "string",
- "nullable": true
- },
- "crawledAt": {
- "type": "string",
- "nullable": true
- },
- "author": {
- "type": "string",
- "nullable": true
- },
- "publisher": {
- "type": "string",
- "nullable": true
- },
- "datePublished": {
- "type": "string",
- "nullable": true
- },
- "dateModified": {
- "type": "string",
- "nullable": true
- }
- },
- "required": [
- "type",
- "url"
- ]
- },
- {
- "type": "object",
- "properties": {
- "type": {
- "type": "string",
- "enum": [
- "text"
- ]
- },
- "text": {
- "type": "string"
- },
- "sourceUrl": {
- "type": "string",
- "nullable": true
- }
- },
- "required": [
- "type",
- "text"
- ]
- },
- {
- "type": "object",
- "properties": {
- "type": {
- "type": "string",
- "enum": [
- "asset"
- ]
- },
- "assetType": {
- "type": "string",
- "enum": [
- "image",
- "pdf"
- ]
- },
- "assetId": {
- "type": "string"
- },
- "fileName": {
- "type": "string",
- "nullable": true
- },
- "sourceUrl": {
- "type": "string",
- "nullable": true
- },
- "size": {
- "type": "number",
- "nullable": true
- },
- "content": {
- "type": "string",
- "nullable": true
- }
- },
- "required": [
- "type",
- "assetType",
- "assetId"
- ]
- },
- {
- "type": "object",
- "properties": {
- "type": {
- "type": "string",
- "enum": [
- "unknown"
- ]
- }
- },
- "required": [
- "type"
- ]
- }
- ]
- },
- "assets": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "id": {
- "type": "string"
- },
- "assetType": {
- "type": "string",
- "enum": [
- "screenshot",
- "assetScreenshot",
- "bannerImage",
- "fullPageArchive",
- "video",
- "bookmarkAsset",
- "precrawledArchive",
- "unknown"
- ]
- }
- },
- "required": [
- "id",
- "assetType"
- ]
- }
- }
- },
- "required": [
- "id",
- "createdAt",
- "modifiedAt",
- "archived",
- "favourited",
- "taggingStatus",
- "tags",
- "content",
- "assets"
- ]
- },
- "PaginatedBookmarks": {
- "type": "object",
- "properties": {
- "bookmarks": {
- "type": "array",
- "items": {
- "$ref": "#/components/schemas/Bookmark"
- }
- },
- "nextCursor": {
- "type": "string",
- "nullable": true
- }
- },
- "required": [
- "bookmarks",
- "nextCursor"
- ]
- },
- "Cursor": {
- "type": "string"
- },
- "Highlight": {
- "type": "object",
- "properties": {
- "bookmarkId": {
- "type": "string"
- },
- "startOffset": {
- "type": "number"
- },
- "endOffset": {
- "type": "number"
- },
- "color": {
- "type": "string",
- "enum": [
- "yellow",
- "red",
- "green",
- "blue"
- ],
- "default": "yellow"
- },
- "text": {
- "type": "string",
- "nullable": true
- },
- "note": {
- "type": "string",
- "nullable": true
- },
- "id": {
- "type": "string"
- },
- "userId": {
- "type": "string"
- },
- "createdAt": {
- "type": "string"
- }
- },
- "required": [
- "bookmarkId",
- "startOffset",
- "endOffset",
- "text",
- "note",
- "id",
- "userId",
- "createdAt"
- ]
- },
- "List": {
- "type": "object",
- "properties": {
- "id": {
- "type": "string"
- },
- "name": {
- "type": "string"
- },
- "description": {
- "type": "string",
- "nullable": true
- },
- "icon": {
- "type": "string"
- },
- "parentId": {
- "type": "string",
- "nullable": true
- },
- "type": {
- "type": "string",
- "enum": [
- "manual",
- "smart"
- ],
- "default": "manual"
- },
- "query": {
- "type": "string",
- "nullable": true
- }
- },
- "required": [
- "id",
- "name",
- "icon",
- "parentId"
- ]
- },
- "Tag": {
- "type": "object",
- "properties": {
- "id": {
- "type": "string"
- },
- "name": {
- "type": "string"
- },
- "numBookmarks": {
- "type": "number"
- },
- "numBookmarksByAttachedType": {
- "type": "object",
- "properties": {
- "ai": {
- "type": "number"
- },
- "human": {
- "type": "number"
- }
- }
- }
- },
- "required": [
- "id",
- "name",
- "numBookmarks",
- "numBookmarksByAttachedType"
- ]
- },
- "PaginatedHighlights": {
- "type": "object",
- "properties": {
- "highlights": {
- "type": "array",
- "items": {
- "$ref": "#/components/schemas/Highlight"
- }
- },
- "nextCursor": {
- "type": "string",
- "nullable": true
- }
- },
- "required": [
- "highlights",
- "nextCursor"
- ]
- }
- },
- "parameters": {
- "AssetId": {
- "schema": {
- "$ref": "#/components/schemas/AssetId"
- },
- "required": true,
- "name": "assetId",
- "in": "path"
- },
- "BookmarkId": {
- "schema": {
- "$ref": "#/components/schemas/BookmarkId"
- },
- "required": true,
- "name": "bookmarkId",
- "in": "path"
- },
- "ListId": {
- "schema": {
- "$ref": "#/components/schemas/ListId"
- },
- "required": true,
- "name": "listId",
- "in": "path"
- },
- "TagId": {
- "schema": {
- "$ref": "#/components/schemas/TagId"
- },
- "required": true,
- "name": "tagId",
- "in": "path"
- },
- "HighlightId": {
- "schema": {
- "$ref": "#/components/schemas/HighlightId"
- },
- "required": true,
- "name": "highlightId",
- "in": "path"
- }
- }
- },
- "paths": {
- "/bookmarks": {
- "get": {
- "description": "Get all bookmarks",
- "summary": "Get all bookmarks",
- "tags": [
- "Bookmarks"
- ],
- "security": [
- {
- "bearerAuth": []
- }
- ],
- "parameters": [
- {
- "schema": {
- "type": "boolean"
- },
- "required": false,
- "name": "archived",
- "in": "query"
- },
- {
- "schema": {
- "type": "boolean"
- },
- "required": false,
- "name": "favourited",
- "in": "query"
- },
- {
- "schema": {
- "type": "number"
- },
- "required": false,
- "name": "limit",
- "in": "query"
- },
- {
- "schema": {
- "$ref": "#/components/schemas/Cursor"
- },
- "required": false,
- "name": "cursor",
- "in": "query"
- },
- {
- "schema": {
- "type": "boolean",
- "default": true,
- "description": "If set to true, bookmark's content will be included in the response. Note, this content can be large for some bookmarks."
- },
- "required": false,
- "description": "If set to true, bookmark's content will be included in the response. Note, this content can be large for some bookmarks.",
- "name": "includeContent",
- "in": "query"
- }
- ],
- "responses": {
- "200": {
- "description": "Object with all bookmarks data.",
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/PaginatedBookmarks"
- }
- }
- }
- }
- }
- },
- "post": {
- "description": "Create a new bookmark",
- "summary": "Create a new bookmark",
- "tags": [
- "Bookmarks"
- ],
- "security": [
- {
- "bearerAuth": []
- }
- ],
- "requestBody": {
- "description": "The bookmark to create",
- "content": {
- "application/json": {
- "schema": {
- "allOf": [
- {
- "type": "object",
- "properties": {
- "title": {
- "type": "string",
- "nullable": true,
- "maxLength": 1000
- },
- "archived": {
- "type": "boolean"
- },
- "favourited": {
- "type": "boolean"
- },
- "note": {
- "type": "string"
- },
- "summary": {
- "type": "string"
- },
- "createdAt": {
- "type": "string",
- "nullable": true
- }
- }
- },
- {
- "oneOf": [
- {
- "type": "object",
- "properties": {
- "type": {
- "type": "string",
- "enum": [
- "link"
- ]
- },
- "url": {
- "type": "string",
- "format": "uri"
- },
- "precrawledArchiveId": {
- "type": "string"
- }
- },
- "required": [
- "type",
- "url"
- ]
- },
- {
- "type": "object",
- "properties": {
- "type": {
- "type": "string",
- "enum": [
- "text"
- ]
- },
- "text": {
- "type": "string"
- },
- "sourceUrl": {
- "type": "string"
- }
- },
- "required": [
- "type",
- "text"
- ]
- },
- {
- "type": "object",
- "properties": {
- "type": {
- "type": "string",
- "enum": [
- "asset"
- ]
- },
- "assetType": {
- "type": "string",
- "enum": [
- "image",
- "pdf"
- ]
- },
- "assetId": {
- "type": "string"
- },
- "fileName": {
- "type": "string"
- },
- "sourceUrl": {
- "type": "string"
- }
- },
- "required": [
- "type",
- "assetType",
- "assetId"
- ]
- }
- ]
- }
- ]
- }
- }
- }
- },
- "responses": {
- "201": {
- "description": "The created bookmark",
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/Bookmark"
- }
- }
- }
- },
- "400": {
- "description": "Bad request",
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "code": {
- "type": "string"
- },
- "message": {
- "type": "string"
- }
- },
- "required": [
- "code",
- "message"
- ]
- }
- }
- }
- }
- }
- }
- },
- "/bookmarks/search": {
- "get": {
- "description": "Search bookmarks",
- "summary": "Search bookmarks",
- "tags": [
- "Bookmarks"
- ],
- "security": [
- {
- "bearerAuth": []
- }
- ],
- "parameters": [
- {
- "schema": {
- "type": "string"
- },
- "required": true,
- "name": "q",
- "in": "query"
- },
- {
- "schema": {
- "type": "number"
- },
- "required": false,
- "name": "limit",
- "in": "query"
- },
- {
- "schema": {
- "$ref": "#/components/schemas/Cursor"
- },
- "required": false,
- "name": "cursor",
- "in": "query"
- },
- {
- "schema": {
- "type": "boolean",
- "default": true,
- "description": "If set to true, bookmark's content will be included in the response. Note, this content can be large for some bookmarks."
- },
- "required": false,
- "description": "If set to true, bookmark's content will be included in the response. Note, this content can be large for some bookmarks.",
- "name": "includeContent",
- "in": "query"
- }
- ],
- "responses": {
- "200": {
- "description": "Object with the search results.",
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/PaginatedBookmarks"
- }
- }
- }
- }
- }
- }
- },
- "/bookmarks/{bookmarkId}": {
- "get": {
- "description": "Get bookmark by its id",
- "summary": "Get a single bookmark",
- "tags": [
- "Bookmarks"
- ],
- "security": [
- {
- "bearerAuth": []
- }
- ],
- "parameters": [
- {
- "$ref": "#/components/parameters/BookmarkId"
- },
- {
- "schema": {
- "type": "boolean",
- "default": true,
- "description": "If set to true, bookmark's content will be included in the response. Note, this content can be large for some bookmarks."
- },
- "required": false,
- "description": "If set to true, bookmark's content will be included in the response. Note, this content can be large for some bookmarks.",
- "name": "includeContent",
- "in": "query"
- }
- ],
- "responses": {
- "200": {
- "description": "Object with bookmark data.",
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/Bookmark"
- }
- }
- }
- },
- "404": {
- "description": "Bookmark not found",
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "code": {
- "type": "string"
- },
- "message": {
- "type": "string"
- }
- },
- "required": [
- "code",
- "message"
- ]
- }
- }
- }
- }
- }
- },
- "delete": {
- "description": "Delete bookmark by its id",
- "summary": "Delete a bookmark",
- "tags": [
- "Bookmarks"
- ],
- "security": [
- {
- "bearerAuth": []
- }
- ],
- "parameters": [
- {
- "$ref": "#/components/parameters/BookmarkId"
- }
- ],
- "responses": {
- "204": {
- "description": "No content - the bookmark was deleted"
- },
- "404": {
- "description": "Bookmark not found",
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "code": {
- "type": "string"
- },
- "message": {
- "type": "string"
- }
- },
- "required": [
- "code",
- "message"
- ]
- }
- }
- }
- }
- }
- },
- "patch": {
- "description": "Update bookmark by its id",
- "summary": "Update a bookmark",
- "tags": [
- "Bookmarks"
- ],
- "security": [
- {
- "bearerAuth": []
- }
- ],
- "parameters": [
- {
- "$ref": "#/components/parameters/BookmarkId"
- }
- ],
- "requestBody": {
- "description": "The data to update. Only the fields you want to update need to be provided.",
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "archived": {
- "type": "boolean"
- },
- "favourited": {
- "type": "boolean"
- },
- "summary": {
- "type": "string",
- "nullable": true
- },
- "note": {
- "type": "string"
- },
- "title": {
- "type": "string",
- "nullable": true,
- "maxLength": 1000
- },
- "createdAt": {
- "type": "string",
- "nullable": true
- },
- "url": {
- "type": "string",
- "format": "uri"
- },
- "description": {
- "type": "string",
- "nullable": true
- },
- "author": {
- "type": "string",
- "nullable": true
- },
- "publisher": {
- "type": "string",
- "nullable": true
- },
- "datePublished": {
- "type": "string",
- "nullable": true
- },
- "dateModified": {
- "type": "string",
- "nullable": true
- },
- "text": {
- "type": "string",
- "nullable": true
- },
- "assetContent": {
- "type": "string",
- "nullable": true
- }
- }
- }
- }
- }
- },
- "responses": {
- "200": {
- "description": "The updated bookmark",
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "id": {
- "type": "string"
- },
- "createdAt": {
- "type": "string"
- },
- "modifiedAt": {
- "type": "string",
- "nullable": true
- },
- "title": {
- "type": "string",
- "nullable": true
- },
- "archived": {
- "type": "boolean"
- },
- "favourited": {
- "type": "boolean"
- },
- "taggingStatus": {
- "type": "string",
- "nullable": true,
- "enum": [
- "success",
- "failure",
- "pending"
- ]
- },
- "note": {
- "type": "string",
- "nullable": true
- },
- "summary": {
- "type": "string",
- "nullable": true
- }
- },
- "required": [
- "id",
- "createdAt",
- "modifiedAt",
- "archived",
- "favourited",
- "taggingStatus"
- ]
- }
- }
- }
- },
- "404": {
- "description": "Bookmark not found",
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "code": {
- "type": "string"
- },
- "message": {
- "type": "string"
- }
- },
- "required": [
- "code",
- "message"
- ]
- }
- }
- }
- }
- }
- }
- },
- "/bookmarks/{bookmarkId}/summarize": {
- "post": {
- "description": "Attaches a summary to the bookmark and returns the updated record.",
- "summary": "Summarize a bookmark",
- "tags": [
- "Bookmarks"
- ],
- "security": [
- {
- "bearerAuth": []
- }
- ],
- "parameters": [
- {
- "$ref": "#/components/parameters/BookmarkId"
- }
- ],
- "responses": {
- "200": {
- "description": "The updated bookmark with summary",
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "id": {
- "type": "string"
- },
- "createdAt": {
- "type": "string"
- },
- "modifiedAt": {
- "type": "string",
- "nullable": true
- },
- "title": {
- "type": "string",
- "nullable": true
- },
- "archived": {
- "type": "boolean"
- },
- "favourited": {
- "type": "boolean"
- },
- "taggingStatus": {
- "type": "string",
- "nullable": true,
- "enum": [
- "success",
- "failure",
- "pending"
- ]
- },
- "note": {
- "type": "string",
- "nullable": true
- },
- "summary": {
- "type": "string",
- "nullable": true
- }
- },
- "required": [
- "id",
- "createdAt",
- "modifiedAt",
- "archived",
- "favourited",
- "taggingStatus"
- ]
- }
- }
- }
- },
- "404": {
- "description": "Bookmark not found",
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "code": {
- "type": "string"
- },
- "message": {
- "type": "string"
- }
- },
- "required": [
- "code",
- "message"
- ]
- }
- }
- }
- }
- }
- }
- },
- "/bookmarks/{bookmarkId}/tags": {
- "post": {
- "description": "Attach tags to a bookmark",
- "summary": "Attach tags to a bookmark",
- "tags": [
- "Bookmarks"
- ],
- "security": [
- {
- "bearerAuth": []
- }
- ],
- "parameters": [
- {
- "$ref": "#/components/parameters/BookmarkId"
- }
- ],
- "requestBody": {
- "description": "The tags to attach.",
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "tags": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "tagId": {
- "type": "string"
- },
- "tagName": {
- "type": "string"
- }
- }
- }
- }
- },
- "required": [
- "tags"
- ]
- }
- }
- }
- },
- "responses": {
- "200": {
- "description": "The list of attached tag ids",
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "attached": {
- "type": "array",
- "items": {
- "$ref": "#/components/schemas/TagId"
- }
- }
- },
- "required": [
- "attached"
- ]
- }
- }
- }
- },
- "404": {
- "description": "Bookmark not found",
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "code": {
- "type": "string"
- },
- "message": {
- "type": "string"
- }
- },
- "required": [
- "code",
- "message"
- ]
- }
- }
- }
- }
- }
- },
- "delete": {
- "description": "Detach tags from a bookmark",
- "summary": "Detach tags from a bookmark",
- "tags": [
- "Bookmarks"
- ],
- "security": [
- {
- "bearerAuth": []
- }
- ],
- "parameters": [
- {
- "$ref": "#/components/parameters/BookmarkId"
- }
- ],
- "requestBody": {
- "description": "The tags to detach.",
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "tags": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "tagId": {
- "type": "string"
- },
- "tagName": {
- "type": "string"
- }
- }
- }
- }
- },
- "required": [
- "tags"
- ]
- }
- }
- }
- },
- "responses": {
- "200": {
- "description": "The list of detached tag ids",
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "detached": {
- "type": "array",
- "items": {
- "$ref": "#/components/schemas/TagId"
- }
- }
- },
- "required": [
- "detached"
- ]
- }
- }
- }
- },
- "404": {
- "description": "Bookmark not found",
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "code": {
- "type": "string"
- },
- "message": {
- "type": "string"
- }
- },
- "required": [
- "code",
- "message"
- ]
- }
- }
- }
- }
- }
- }
- },
- "/bookmarks/{bookmarkId}/highlights": {
- "get": {
- "description": "Get highlights of a bookmark",
- "summary": "Get highlights of a bookmark",
- "tags": [
- "Bookmarks"
- ],
- "security": [
- {
- "bearerAuth": []
- }
- ],
- "parameters": [
- {
- "$ref": "#/components/parameters/BookmarkId"
- }
- ],
- "responses": {
- "200": {
- "description": "The list of highlights",
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "highlights": {
- "type": "array",
- "items": {
- "$ref": "#/components/schemas/Highlight"
- }
- }
- },
- "required": [
- "highlights"
- ]
- }
- }
- }
- },
- "404": {
- "description": "Bookmark not found",
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "code": {
- "type": "string"
- },
- "message": {
- "type": "string"
- }
- },
- "required": [
- "code",
- "message"
- ]
- }
- }
- }
- }
- }
- }
- },
- "/bookmarks/{bookmarkId}/assets": {
- "post": {
- "description": "Attach a new asset to a bookmark",
- "summary": "Attach asset",
- "tags": [
- "Bookmarks"
- ],
- "security": [
- {
- "bearerAuth": []
- }
- ],
- "parameters": [
- {
- "$ref": "#/components/parameters/BookmarkId"
- }
- ],
- "requestBody": {
- "description": "The asset to attach",
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "id": {
- "type": "string"
- },
- "assetType": {
- "type": "string",
- "enum": [
- "screenshot",
- "assetScreenshot",
- "bannerImage",
- "fullPageArchive",
- "video",
- "bookmarkAsset",
- "precrawledArchive",
- "unknown"
- ]
- }
- },
- "required": [
- "id",
- "assetType"
- ]
- }
- }
- }
- },
- "responses": {
- "201": {
- "description": "The attached asset",
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "id": {
- "type": "string"
- },
- "assetType": {
- "type": "string",
- "enum": [
- "screenshot",
- "assetScreenshot",
- "bannerImage",
- "fullPageArchive",
- "video",
- "bookmarkAsset",
- "precrawledArchive",
- "unknown"
- ]
- }
- },
- "required": [
- "id",
- "assetType"
- ]
- }
- }
- }
- },
- "404": {
- "description": "Bookmark not found",
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "code": {
- "type": "string"
- },
- "message": {
- "type": "string"
- }
- },
- "required": [
- "code",
- "message"
- ]
- }
- }
- }
- }
- }
- }
- },
- "/bookmarks/{bookmarkId}/assets/{assetId}": {
- "put": {
- "description": "Replace an existing asset with a new one",
- "summary": "Replace asset",
- "tags": [
- "Bookmarks"
- ],
- "security": [
- {
- "bearerAuth": []
- }
- ],
- "parameters": [
- {
- "$ref": "#/components/parameters/BookmarkId"
- },
- {
- "$ref": "#/components/parameters/AssetId"
- }
- ],
- "requestBody": {
- "description": "The new asset to replace with",
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "assetId": {
- "type": "string"
- }
- },
- "required": [
- "assetId"
- ]
- }
- }
- }
- },
- "responses": {
- "204": {
- "description": "No content - asset was replaced successfully"
- },
- "404": {
- "description": "Bookmark not found",
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "code": {
- "type": "string"
- },
- "message": {
- "type": "string"
- }
- },
- "required": [
- "code",
- "message"
- ]
- }
- }
- }
- }
- }
- },
- "delete": {
- "description": "Detach an asset from a bookmark",
- "summary": "Detach asset",
- "tags": [
- "Bookmarks"
- ],
- "security": [
- {
- "bearerAuth": []
- }
- ],
- "parameters": [
- {
- "$ref": "#/components/parameters/BookmarkId"
- },
- {
- "$ref": "#/components/parameters/AssetId"
- }
- ],
- "responses": {
- "204": {
- "description": "No content - asset was detached successfully"
- },
- "404": {
- "description": "Bookmark not found",
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "code": {
- "type": "string"
- },
- "message": {
- "type": "string"
- }
- },
- "required": [
- "code",
- "message"
- ]
- }
- }
- }
- }
- }
- }
- },
- "/lists": {
- "get": {
- "description": "Get all lists",
- "summary": "Get all lists",
- "tags": [
- "Lists"
- ],
- "security": [
- {
- "bearerAuth": []
- }
- ],
- "responses": {
- "200": {
- "description": "Object with all lists data.",
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "lists": {
- "type": "array",
- "items": {
- "$ref": "#/components/schemas/List"
- }
- }
- },
- "required": [
- "lists"
- ]
- }
- }
- }
- }
- }
- },
- "post": {
- "description": "Create a new list",
- "summary": "Create a new list",
- "tags": [
- "Lists"
- ],
- "security": [
- {
- "bearerAuth": []
- }
- ],
- "requestBody": {
- "description": "The list to create",
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "name": {
- "type": "string",
- "minLength": 1,
- "maxLength": 40
- },
- "description": {
- "type": "string",
- "minLength": 0,
- "maxLength": 100
- },
- "icon": {
- "type": "string"
- },
- "type": {
- "type": "string",
- "enum": [
- "manual",
- "smart"
- ],
- "default": "manual"
- },
- "query": {
- "type": "string",
- "minLength": 1
- },
- "parentId": {
- "type": "string",
- "nullable": true
- }
- },
- "required": [
- "name",
- "icon"
- ]
- }
- }
- }
- },
- "responses": {
- "201": {
- "description": "The created list",
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/List"
- }
- }
- }
- },
- "400": {
- "description": "Bad request",
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "code": {
- "type": "string"
- },
- "message": {
- "type": "string"
- }
- },
- "required": [
- "code",
- "message"
- ]
- }
- }
- }
- }
- }
- }
- },
- "/lists/{listId}": {
- "get": {
- "description": "Get list by its id",
- "summary": "Get a single list",
- "tags": [
- "Lists"
- ],
- "security": [
- {
- "bearerAuth": []
- }
- ],
- "parameters": [
- {
- "$ref": "#/components/parameters/ListId"
- }
- ],
- "responses": {
- "200": {
- "description": "Object with list data.",
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/List"
- }
- }
- }
- },
- "404": {
- "description": "List not found",
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "code": {
- "type": "string"
- },
- "message": {
- "type": "string"
- }
- },
- "required": [
- "code",
- "message"
- ]
- }
- }
- }
- }
- }
- },
- "delete": {
- "description": "Delete list by its id",
- "summary": "Delete a list",
- "tags": [
- "Lists"
- ],
- "security": [
- {
- "bearerAuth": []
- }
- ],
- "parameters": [
- {
- "$ref": "#/components/parameters/ListId"
- }
- ],
- "responses": {
- "204": {
- "description": "No content - the bookmark was deleted"
- },
- "404": {
- "description": "List not found",
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "code": {
- "type": "string"
- },
- "message": {
- "type": "string"
- }
- },
- "required": [
- "code",
- "message"
- ]
- }
- }
- }
- }
- }
- },
- "patch": {
- "description": "Update list by its id",
- "summary": "Update a list",
- "tags": [
- "Lists"
- ],
- "security": [
- {
- "bearerAuth": []
- }
- ],
- "parameters": [
- {
- "$ref": "#/components/parameters/ListId"
- }
- ],
- "requestBody": {
- "description": "The data to update. Only the fields you want to update need to be provided.",
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "name": {
- "type": "string",
- "minLength": 1,
- "maxLength": 40
- },
- "description": {
- "type": "string",
- "nullable": true,
- "minLength": 0,
- "maxLength": 100
- },
- "icon": {
- "type": "string"
- },
- "parentId": {
- "type": "string",
- "nullable": true
- },
- "query": {
- "type": "string",
- "minLength": 1
- }
- }
- }
- }
- }
- },
- "responses": {
- "200": {
- "description": "The updated list",
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/List"
- }
- }
- }
- },
- "404": {
- "description": "List not found",
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "code": {
- "type": "string"
- },
- "message": {
- "type": "string"
- }
- },
- "required": [
- "code",
- "message"
- ]
- }
- }
- }
- }
- }
- }
- },
- "/lists/{listId}/bookmarks": {
- "get": {
- "description": "Get the bookmarks in a list",
- "summary": "Get a bookmarks in a list",
- "tags": [
- "Lists"
- ],
- "security": [
- {
- "bearerAuth": []
- }
- ],
- "parameters": [
- {
- "$ref": "#/components/parameters/ListId"
- },
- {
- "schema": {
- "type": "number"
- },
- "required": false,
- "name": "limit",
- "in": "query"
- },
- {
- "schema": {
- "$ref": "#/components/schemas/Cursor"
- },
- "required": false,
- "name": "cursor",
- "in": "query"
- },
- {
- "schema": {
- "type": "boolean",
- "default": true,
- "description": "If set to true, bookmark's content will be included in the response. Note, this content can be large for some bookmarks."
- },
- "required": false,
- "description": "If set to true, bookmark's content will be included in the response. Note, this content can be large for some bookmarks.",
- "name": "includeContent",
- "in": "query"
- }
- ],
- "responses": {
- "200": {
- "description": "Object with list data.",
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/PaginatedBookmarks"
- }
- }
- }
- },
- "404": {
- "description": "List not found",
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "code": {
- "type": "string"
- },
- "message": {
- "type": "string"
- }
- },
- "required": [
- "code",
- "message"
- ]
- }
- }
- }
- }
- }
- }
- },
- "/lists/{listId}/bookmarks/{bookmarkId}": {
- "put": {
- "description": "Add the bookmarks to a list",
- "summary": "Add a bookmark to a list",
- "tags": [
- "Lists"
- ],
- "security": [
- {
- "bearerAuth": []
- }
- ],
- "parameters": [
- {
- "$ref": "#/components/parameters/ListId"
- },
- {
- "$ref": "#/components/parameters/BookmarkId"
- }
- ],
- "responses": {
- "204": {
- "description": "No content - the bookmark was added"
- },
- "400": {
- "description": "Bookmark already in list",
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "code": {
- "type": "string"
- },
- "message": {
- "type": "string"
- }
- },
- "required": [
- "code",
- "message"
- ]
- }
- }
- }
- },
- "404": {
- "description": "List or bookmark not found",
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "code": {
- "type": "string"
- },
- "message": {
- "type": "string"
- }
- },
- "required": [
- "code",
- "message"
- ]
- }
- }
- }
- }
- }
- },
- "delete": {
- "description": "Remove the bookmarks from a list",
- "summary": "Remove a bookmark from a list",
- "tags": [
- "Lists"
- ],
- "security": [
- {
- "bearerAuth": []
- }
- ],
- "parameters": [
- {
- "$ref": "#/components/parameters/ListId"
- },
- {
- "$ref": "#/components/parameters/BookmarkId"
- }
- ],
- "responses": {
- "204": {
- "description": "No content - the bookmark was added"
- },
- "400": {
- "description": "Bookmark already not in list",
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "code": {
- "type": "string"
- },
- "message": {
- "type": "string"
- }
- },
- "required": [
- "code",
- "message"
- ]
- }
- }
- }
- },
- "404": {
- "description": "List or bookmark not found",
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "code": {
- "type": "string"
- },
- "message": {
- "type": "string"
- }
- },
- "required": [
- "code",
- "message"
- ]
- }
- }
- }
- }
- }
- }
- },
- "/tags": {
- "get": {
- "description": "Get all tags",
- "summary": "Get all tags",
- "tags": [
- "Tags"
- ],
- "security": [
- {
- "bearerAuth": []
- }
- ],
- "responses": {
- "200": {
- "description": "Object with all tags data.",
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "tags": {
- "type": "array",
- "items": {
- "$ref": "#/components/schemas/Tag"
- }
- }
- },
- "required": [
- "tags"
- ]
- }
- }
- }
- }
- }
- }
- },
- "/tags/{tagId}": {
- "get": {
- "description": "Get tag by its id",
- "summary": "Get a single tag",
- "tags": [
- "Tags"
- ],
- "security": [
- {
- "bearerAuth": []
- }
- ],
- "parameters": [
- {
- "$ref": "#/components/parameters/TagId"
- }
- ],
- "responses": {
- "200": {
- "description": "Object with list data.",
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/Tag"
- }
- }
- }
- },
- "404": {
- "description": "Tag not found",
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "code": {
- "type": "string"
- },
- "message": {
- "type": "string"
- }
- },
- "required": [
- "code",
- "message"
- ]
- }
- }
- }
- }
- }
- },
- "delete": {
- "description": "Delete tag by its id",
- "summary": "Delete a tag",
- "tags": [
- "Tags"
- ],
- "security": [
- {
- "bearerAuth": []
- }
- ],
- "parameters": [
- {
- "$ref": "#/components/parameters/TagId"
- }
- ],
- "responses": {
- "204": {
- "description": "No content - the bookmark was deleted"
- },
- "404": {
- "description": "Tag not found",
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "code": {
- "type": "string"
- },
- "message": {
- "type": "string"
- }
- },
- "required": [
- "code",
- "message"
- ]
- }
- }
- }
- }
- }
- },
- "patch": {
- "description": "Update tag by its id",
- "summary": "Update a tag",
- "tags": [
- "Tags"
- ],
- "security": [
- {
- "bearerAuth": []
- }
- ],
- "parameters": [
- {
- "$ref": "#/components/parameters/TagId"
- }
- ],
- "requestBody": {
- "description": "The data to update. Only the fields you want to update need to be provided.",
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "name": {
- "type": "string"
- }
- }
- }
- }
- }
- },
- "responses": {
- "200": {
- "description": "The updated tag",
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/Tag"
- }
- }
- }
- },
- "404": {
- "description": "Tag not found",
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "code": {
- "type": "string"
- },
- "message": {
- "type": "string"
- }
- },
- "required": [
- "code",
- "message"
- ]
- }
- }
- }
- }
- }
- }
- },
- "/tags/{tagId}/bookmarks": {
- "get": {
- "description": "Get the bookmarks with the tag",
- "summary": "Get a bookmarks with the tag",
- "tags": [
- "Tags"
- ],
- "security": [
- {
- "bearerAuth": []
- }
- ],
- "parameters": [
- {
- "$ref": "#/components/parameters/TagId"
- },
- {
- "schema": {
- "type": "number"
- },
- "required": false,
- "name": "limit",
- "in": "query"
- },
- {
- "schema": {
- "$ref": "#/components/schemas/Cursor"
- },
- "required": false,
- "name": "cursor",
- "in": "query"
- },
- {
- "schema": {
- "type": "boolean",
- "default": true,
- "description": "If set to true, bookmark's content will be included in the response. Note, this content can be large for some bookmarks."
- },
- "required": false,
- "description": "If set to true, bookmark's content will be included in the response. Note, this content can be large for some bookmarks.",
- "name": "includeContent",
- "in": "query"
- }
- ],
- "responses": {
- "200": {
- "description": "Object with list data.",
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/PaginatedBookmarks"
- }
- }
- }
- },
- "404": {
- "description": "Tag not found",
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "code": {
- "type": "string"
- },
- "message": {
- "type": "string"
- }
- },
- "required": [
- "code",
- "message"
- ]
- }
- }
- }
- }
- }
- }
- },
- "/highlights": {
- "get": {
- "description": "Get all highlights",
- "summary": "Get all highlights",
- "tags": [
- "Highlights"
- ],
- "security": [
- {
- "bearerAuth": []
- }
- ],
- "parameters": [
- {
- "schema": {
- "type": "number"
- },
- "required": false,
- "name": "limit",
- "in": "query"
- },
- {
- "schema": {
- "$ref": "#/components/schemas/Cursor"
- },
- "required": false,
- "name": "cursor",
- "in": "query"
- }
- ],
- "responses": {
- "200": {
- "description": "Object with all highlights data.",
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/PaginatedHighlights"
- }
- }
- }
- }
- }
- },
- "post": {
- "description": "Create a new highlight",
- "summary": "Create a new highlight",
- "tags": [
- "Highlights"
- ],
- "security": [
- {
- "bearerAuth": []
- }
- ],
- "requestBody": {
- "description": "The highlight to create",
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "bookmarkId": {
- "type": "string"
- },
- "startOffset": {
- "type": "number"
- },
- "endOffset": {
- "type": "number"
- },
- "color": {
- "type": "string",
- "enum": [
- "yellow",
- "red",
- "green",
- "blue"
- ],
- "default": "yellow"
- },
- "text": {
- "type": "string",
- "nullable": true
- },
- "note": {
- "type": "string",
- "nullable": true
- }
- },
- "required": [
- "bookmarkId",
- "startOffset",
- "endOffset",
- "text",
- "note"
- ]
- }
- }
- }
- },
- "responses": {
- "201": {
- "description": "The created highlight",
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/Highlight"
- }
- }
- }
- },
- "400": {
- "description": "Bad highlight request",
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "code": {
- "type": "string"
- },
- "message": {
- "type": "string"
- }
- },
- "required": [
- "code",
- "message"
- ]
- }
- }
- }
- },
- "404": {
- "description": "Bookmark not found",
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "code": {
- "type": "string"
- },
- "message": {
- "type": "string"
- }
- },
- "required": [
- "code",
- "message"
- ]
- }
- }
- }
- }
- }
- }
- },
- "/highlights/{highlightId}": {
- "get": {
- "description": "Get highlight by its id",
- "summary": "Get a single highlight",
- "tags": [
- "Highlights"
- ],
- "security": [
- {
- "bearerAuth": []
- }
- ],
- "parameters": [
- {
- "$ref": "#/components/parameters/HighlightId"
- }
- ],
- "responses": {
- "200": {
- "description": "Object with highlight data.",
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/Highlight"
- }
- }
- }
- },
- "404": {
- "description": "Highlight not found",
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "code": {
- "type": "string"
- },
- "message": {
- "type": "string"
- }
- },
- "required": [
- "code",
- "message"
- ]
- }
- }
- }
- }
- }
- },
- "delete": {
- "description": "Delete highlight by its id",
- "summary": "Delete a highlight",
- "tags": [
- "Highlights"
- ],
- "security": [
- {
- "bearerAuth": []
- }
- ],
- "parameters": [
- {
- "$ref": "#/components/parameters/HighlightId"
- }
- ],
- "responses": {
- "200": {
- "description": "The deleted highlight",
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/Highlight"
- }
- }
- }
- },
- "404": {
- "description": "Highlight not found",
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "code": {
- "type": "string"
- },
- "message": {
- "type": "string"
- }
- },
- "required": [
- "code",
- "message"
- ]
- }
- }
- }
- }
- }
- },
- "patch": {
- "description": "Update highlight by its id",
- "summary": "Update a highlight",
- "tags": [
- "Highlights"
- ],
- "security": [
- {
- "bearerAuth": []
- }
- ],
- "parameters": [
- {
- "$ref": "#/components/parameters/HighlightId"
- }
- ],
- "requestBody": {
- "description": "The data to update. Only the fields you want to update need to be provided.",
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "color": {
- "type": "string",
- "enum": [
- "yellow",
- "red",
- "green",
- "blue"
- ]
- }
- }
- }
- }
- }
- },
- "responses": {
- "200": {
- "description": "The updated highlight",
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/Highlight"
- }
- }
- }
- },
- "404": {
- "description": "Highlight not found",
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "code": {
- "type": "string"
- },
- "message": {
- "type": "string"
- }
- },
- "required": [
- "code",
- "message"
- ]
- }
- }
- }
- }
- }
- }
- },
- "/users/me": {
- "get": {
- "description": "Returns info about the current user",
- "summary": "Get current user info",
- "tags": [
- "Users"
- ],
- "security": [
- {
- "bearerAuth": []
- }
- ],
- "responses": {
- "200": {
- "description": "Object with user data.",
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "id": {
- "type": "string"
- },
- "name": {
- "type": "string",
- "nullable": true
- },
- "email": {
- "type": "string",
- "nullable": true
- }
- },
- "required": [
- "id"
- ]
- }
- }
- }
- }
- }
- }
- },
- "/users/me/stats": {
- "get": {
- "description": "Returns stats about the current user",
- "summary": "Get current user stats",
- "tags": [
- "Users"
- ],
- "security": [
- {
- "bearerAuth": []
- }
- ],
- "responses": {
- "200": {
- "description": "Object with user stats.",
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "numBookmarks": {
- "type": "number"
- },
- "numFavorites": {
- "type": "number"
- },
- "numArchived": {
- "type": "number"
- },
- "numTags": {
- "type": "number"
- },
- "numLists": {
- "type": "number"
- },
- "numHighlights": {
- "type": "number"
- }
- },
- "required": [
- "numBookmarks",
- "numFavorites",
- "numArchived",
- "numTags",
- "numLists",
- "numHighlights"
- ]
- }
- }
- }
- }
- }
- }
- }
- }
-} \ No newline at end of file