Bookmarks
Bookmarks — saving, listing, importing, exporting.
On this page
- getList bookmarks (API key)/api/v1/bookmarks
- postCreate bookmark (API key)/api/v1/bookmarks
- deleteDelete bookmark (API key)/api/v1/bookmarks/{bookmark_id}
- getGet bookmark (API key)/api/v1/bookmarks/{bookmark_id}
- patchUpdate bookmark (API key)/api/v1/bookmarks/{bookmark_id}
- postImport bookmarks (API key)/api/v1/bookmarks/imports
- getList bookmarks/workspaces/{workspaceId}/bookmarks
- postCreate bookmark/workspaces/{workspaceId}/bookmarks
- deleteDelete bookmark/workspaces/{workspaceId}/bookmarks/{id}
- getGet bookmark/workspaces/{workspaceId}/bookmarks/{id}
- patchUpdate bookmark/workspaces/{workspaceId}/bookmarks/{id}
- postCheck bookmark link/workspaces/{workspaceId}/bookmarks/{id}/check-link
- postEnrich bookmark metadata/workspaces/{workspaceId}/bookmarks/{id}/enrich-metadata
- getGet reader payload/workspaces/{workspaceId}/bookmarks/{id}/reader
- postBulk delete bookmarks/workspaces/{workspaceId}/bookmarks/bulk-delete
- postBulk check link health/workspaces/{workspaceId}/bookmarks/check-links
- getCount bookmarks/workspaces/{workspaceId}/bookmarks/count
- postDelete bookmarks by scope/workspaces/{workspaceId}/bookmarks/delete-by-scope
- getExport bookmarks JSON/workspaces/{workspaceId}/bookmarks/export
- postImport bookmarks/workspaces/{workspaceId}/bookmarks/import
- postPreview URL metadata/workspaces/{workspaceId}/bookmarks/preview-url
- getSearch bookmarks/workspaces/{workspaceId}/bookmarks/search
- getSearch archived snapshots/workspaces/{workspaceId}/bookmarks/snapshot-search
- getExport bookmarks HTML/workspaces/{workspaceId}/export/bookmarks.html
List bookmarks (API key)
Lists bookmarks in the workspace scope using API key authentication. Supports pagination and filters.
Technical details
Exact HTTP method and path your client calls
/api/v1/bookmarksQuery parameters
| Name | Type | Required | Description |
|---|---|---|---|
| limit | number | optional | |
| offset | number | optional | |
| tag | string | optional | |
| folderId | string | optional | |
| q | string | optional |
Headers
| Name | Type | Required | Description |
|---|---|---|---|
| X-Workspace-ID | string | optional | Target workspace when the API key is tenant-wide or to disambiguate scope. |
Responses
List bookmarks
| Field | Type | Description |
|---|---|---|
| Bookmark[] | ||
| object | Bookmark in a workspace (serialized API shape). |
[
{
"id": "string",
"tenantId": "string",
"workspaceId": "string",
"url": "string",
"title": "string",
"description": "string",
"tags": [
"string"
],
"folderId": "string",
"sortOrder": 0,
"createdAt": "2026-01-01T00:00:00.000Z",
"updatedAt": "2026-01-01T00:00:00.000Z",
"linkStatus": "ok",
"lastLinkCheckedAt": "2026-01-01T00:00:00.000Z",
"snapshotEnabled": false,
"readerExcerpt": "string",
"videoEmbedUrl": "string",
"archive": {
"status": "none",
"retentionExpiresAt": "2026-01-01T00:00:00.000Z",
"metadataId": "string"
}
}
]Errors return the standard envelope. See error reference.
Code samples
curl --request GET \
--url 'https://api.not24get.me/api/v1/bookmarks' \
--header 'Authorization: Bearer <your-api-key>' \
--header 'Content-Type: application/json' \
--header 'X-Workspace-ID: <workspace-id>'Try it
Create bookmark (API key)
Creates a bookmark in the workspace identified by the API key or X-Workspace-ID header.
Technical details
Exact HTTP method and path your client calls
/api/v1/bookmarksHeaders
| Name | Type | Required | Description |
|---|---|---|---|
| X-Workspace-ID | string | optional | Target workspace when the API key is tenant-wide or to disambiguate scope. |
Request body
| Field | Type | Description |
|---|---|---|
| url | string | |
| title | string | |
| description | string | |
| tags | string[] | |
| folderId | string | |
| archiveCapture | boolean | |
| noticeVersion | string | |
| snapshotEnabled | boolean | |
| readerExcerpt | string | |
| videoEmbedUrl | string |
Responses
Create bookmark
| Field | Type | Description |
|---|---|---|
| id | string | |
| tenantId | string | |
| workspaceId | string | |
| url | string | |
| title | string | |
| description | string | |
| tags | string[] | |
| folderId | string | |
| sortOrder | integer | |
| createdAt | string<date-time> · date-time | |
| updatedAt | string<date-time> · date-time | |
| linkStatus | string | enum: okdeadunknown |
| lastLinkCheckedAt | string<date-time> · date-time | |
| snapshotEnabled | boolean | |
| readerExcerpt | string | |
| videoEmbedUrl | string | |
| object |
{
"id": "string",
"tenantId": "string",
"workspaceId": "string",
"url": "string",
"title": "string",
"description": "string",
"tags": [
"string"
],
"folderId": "string",
"sortOrder": 0,
"createdAt": "2026-01-01T00:00:00.000Z",
"updatedAt": "2026-01-01T00:00:00.000Z",
"linkStatus": "ok",
"lastLinkCheckedAt": "2026-01-01T00:00:00.000Z",
"snapshotEnabled": false,
"readerExcerpt": "string",
"videoEmbedUrl": "string",
"archive": {
"status": "none",
"retentionExpiresAt": "2026-01-01T00:00:00.000Z",
"metadataId": "string"
}
}Errors return the standard envelope. See error reference.
Code samples
curl --request POST \
--url 'https://api.not24get.me/api/v1/bookmarks' \
--header 'Authorization: Bearer <your-api-key>' \
--header 'Content-Type: application/json' \
--header 'X-Workspace-ID: <workspace-id>' \
--data '{
"url": "string",
"title": "string",
"description": "string",
"tags": [
"string"
],
"folderId": "string",
"archiveCapture": false,
"noticeVersion": "string",
"snapshotEnabled": false,
"readerExcerpt": "string",
"videoEmbedUrl": "string"
}'Try it
Delete bookmark (API key)
Soft-deletes a bookmark. Returns no body on success.
Technical details
Exact HTTP method and path your client calls
/api/v1/bookmarks/{bookmark_id}Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
| bookmark_id | string | required |
Headers
| Name | Type | Required | Description |
|---|---|---|---|
| X-Workspace-ID | string | optional | Target workspace when the API key is tenant-wide or to disambiguate scope. |
Responses
No Content
| Field | Type | Description |
|---|---|---|
| (value) | EmptyResponsePart |
nullErrors return the standard envelope. See error reference.
Code samples
curl --request DELETE \
--url 'https://api.not24get.me/api/v1/bookmarks/%3Abookmark_id' \
--header 'Authorization: Bearer <your-api-key>' \
--header 'Content-Type: application/json' \
--header 'X-Workspace-ID: <workspace-id>'Try it
Get bookmark (API key)
Returns a single bookmark by id using API key authentication.
Technical details
Exact HTTP method and path your client calls
/api/v1/bookmarks/{bookmark_id}Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
| bookmark_id | string | required |
Headers
| Name | Type | Required | Description |
|---|---|---|---|
| X-Workspace-ID | string | optional | Target workspace when the API key is tenant-wide or to disambiguate scope. |
Responses
Get bookmark
| Field | Type | Description |
|---|---|---|
| id | string | |
| tenantId | string | |
| workspaceId | string | |
| url | string | |
| title | string | |
| description | string | |
| tags | string[] | |
| folderId | string | |
| sortOrder | integer | |
| createdAt | string<date-time> · date-time | |
| updatedAt | string<date-time> · date-time | |
| linkStatus | string | enum: okdeadunknown |
| lastLinkCheckedAt | string<date-time> · date-time | |
| snapshotEnabled | boolean | |
| readerExcerpt | string | |
| videoEmbedUrl | string | |
| object |
{
"id": "string",
"tenantId": "string",
"workspaceId": "string",
"url": "string",
"title": "string",
"description": "string",
"tags": [
"string"
],
"folderId": "string",
"sortOrder": 0,
"createdAt": "2026-01-01T00:00:00.000Z",
"updatedAt": "2026-01-01T00:00:00.000Z",
"linkStatus": "ok",
"lastLinkCheckedAt": "2026-01-01T00:00:00.000Z",
"snapshotEnabled": false,
"readerExcerpt": "string",
"videoEmbedUrl": "string",
"archive": {
"status": "none",
"retentionExpiresAt": "2026-01-01T00:00:00.000Z",
"metadataId": "string"
}
}Errors return the standard envelope. See error reference.
Code samples
curl --request GET \
--url 'https://api.not24get.me/api/v1/bookmarks/%3Abookmark_id' \
--header 'Authorization: Bearer <your-api-key>' \
--header 'Content-Type: application/json' \
--header 'X-Workspace-ID: <workspace-id>'Try it
Update bookmark (API key)
Partially updates bookmark fields such as title, tags, folder, or archive settings.
Technical details
Exact HTTP method and path your client calls
/api/v1/bookmarks/{bookmark_id}Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
| bookmark_id | string | required |
Headers
| Name | Type | Required | Description |
|---|---|---|---|
| X-Workspace-ID | string | optional | Target workspace when the API key is tenant-wide or to disambiguate scope. |
Request body
| Field | Type | Description |
|---|---|---|
| url | string | |
| title | string | |
| description | string | |
| tags | string[] | |
| folderId | string | |
| archiveCapture | boolean | |
| noticeVersion | string | |
| sortOrder | integer | |
| snapshotEnabled | boolean | |
| readerExcerpt | string | |
| videoEmbedUrl | string |
Responses
Update bookmark
| Field | Type | Description |
|---|---|---|
| id | string | |
| tenantId | string | |
| workspaceId | string | |
| url | string | |
| title | string | |
| description | string | |
| tags | string[] | |
| folderId | string | |
| sortOrder | integer | |
| createdAt | string<date-time> · date-time | |
| updatedAt | string<date-time> · date-time | |
| linkStatus | string | enum: okdeadunknown |
| lastLinkCheckedAt | string<date-time> · date-time | |
| snapshotEnabled | boolean | |
| readerExcerpt | string | |
| videoEmbedUrl | string | |
| object |
{
"id": "string",
"tenantId": "string",
"workspaceId": "string",
"url": "string",
"title": "string",
"description": "string",
"tags": [
"string"
],
"folderId": "string",
"sortOrder": 0,
"createdAt": "2026-01-01T00:00:00.000Z",
"updatedAt": "2026-01-01T00:00:00.000Z",
"linkStatus": "ok",
"lastLinkCheckedAt": "2026-01-01T00:00:00.000Z",
"snapshotEnabled": false,
"readerExcerpt": "string",
"videoEmbedUrl": "string",
"archive": {
"status": "none",
"retentionExpiresAt": "2026-01-01T00:00:00.000Z",
"metadataId": "string"
}
}Errors return the standard envelope. See error reference.
Code samples
curl --request PATCH \
--url 'https://api.not24get.me/api/v1/bookmarks/%3Abookmark_id' \
--header 'Authorization: Bearer <your-api-key>' \
--header 'Content-Type: application/json' \
--header 'X-Workspace-ID: <workspace-id>' \
--data '{
"url": "string",
"title": "string",
"description": "string",
"tags": [
"string"
],
"folderId": "string",
"archiveCapture": false,
"noticeVersion": "string",
"sortOrder": 0,
"snapshotEnabled": false,
"readerExcerpt": "string",
"videoEmbedUrl": "string"
}'Try it
Import bookmarks (API key)
Imports bookmarks from an uploaded HTML or JSON file into the target workspace.
Technical details
Exact HTTP method and path your client calls
/api/v1/bookmarks/importsHeaders
| Name | Type | Required | Description |
|---|---|---|---|
| X-Workspace-ID | string | optional | Target workspace when the API key is tenant-wide or to disambiguate scope. |
Responses
Import bookmarks
| Field | Type | Description |
|---|---|---|
| imported | integer | |
| skipped | integer | |
| duplicatesSkipped | integer | |
| errors | ImportSummaryIssue[] | |
| issues | ImportSummaryIssue[] |
{
"imported": 0,
"skipped": 0,
"duplicatesSkipped": 0,
"errors": [
null
],
"issues": [
null
]
}Errors return the standard envelope. See error reference.
Code samples
curl --request POST \
--url 'https://api.not24get.me/api/v1/bookmarks/imports' \
--header 'Authorization: Bearer <your-api-key>' \
--header 'Content-Type: application/json' \
--header 'X-Workspace-ID: <workspace-id>'Try it
List bookmarks
Lists bookmarks in the workspace with optional folder and tag filters.
Technical details
Exact HTTP method and path your client calls
/workspaces/{workspaceId}/bookmarksPath parameters
| Name | Type | Required | Description |
|---|---|---|---|
| workspaceId | string | required |
Query parameters
| Name | Type | Required | Description |
|---|---|---|---|
| limit | number | optional | |
| offset | number | optional | |
| tag | string | optional | |
| folderId | string | optional | |
| sortBy | string | optional | |
| filterStatus | string | optional |
Headers
| Name | Type | Required | Description |
|---|---|---|---|
| X-Workspace-ID | string | optional | Target workspace when the API key is tenant-wide or to disambiguate scope. |
Responses
List bookmarks in workspace
| Field | Type | Description |
|---|---|---|
| Bookmark[] | ||
| object | Bookmark in a workspace (serialized API shape). |
[
{
"id": "string",
"tenantId": "string",
"workspaceId": "string",
"url": "string",
"title": "string",
"description": "string",
"tags": [
"string"
],
"folderId": "string",
"sortOrder": 0,
"createdAt": "2026-01-01T00:00:00.000Z",
"updatedAt": "2026-01-01T00:00:00.000Z",
"linkStatus": "ok",
"lastLinkCheckedAt": "2026-01-01T00:00:00.000Z",
"snapshotEnabled": false,
"readerExcerpt": "string",
"videoEmbedUrl": "string",
"archive": {
"status": "none",
"retentionExpiresAt": "2026-01-01T00:00:00.000Z",
"metadataId": "string"
}
}
]Errors return the standard envelope. See error reference.
Code samples
curl --request GET \
--url 'https://api.not24get.me/workspaces/%3AworkspaceId/bookmarks' \
--header 'Authorization: Bearer <your-api-key>' \
--header 'Content-Type: application/json' \
--header 'X-Workspace-ID: <workspace-id>'Try it
Create bookmark
Creates a bookmark in the workspace, optionally capturing archive metadata.
Technical details
Exact HTTP method and path your client calls
/workspaces/{workspaceId}/bookmarksPath parameters
| Name | Type | Required | Description |
|---|---|---|---|
| workspaceId | string | required |
Headers
| Name | Type | Required | Description |
|---|---|---|---|
| X-Workspace-ID | string | optional | Target workspace when the API key is tenant-wide or to disambiguate scope. |
Request body
| Field | Type | Description |
|---|---|---|
| url | string | |
| title | string | |
| description | string | |
| tags | string[] | |
| folderId | string | |
| archiveCapture | boolean | |
| noticeVersion | string | |
| snapshotEnabled | boolean | |
| readerExcerpt | string | |
| videoEmbedUrl | string |
Responses
Create bookmark
| Field | Type | Description |
|---|---|---|
| id | string | |
| tenantId | string | |
| workspaceId | string | |
| url | string | |
| title | string | |
| description | string | |
| tags | string[] | |
| folderId | string | |
| sortOrder | integer | |
| createdAt | string<date-time> · date-time | |
| updatedAt | string<date-time> · date-time | |
| linkStatus | string | enum: okdeadunknown |
| lastLinkCheckedAt | string<date-time> · date-time | |
| snapshotEnabled | boolean | |
| readerExcerpt | string | |
| videoEmbedUrl | string | |
| object |
{
"id": "string",
"tenantId": "string",
"workspaceId": "string",
"url": "string",
"title": "string",
"description": "string",
"tags": [
"string"
],
"folderId": "string",
"sortOrder": 0,
"createdAt": "2026-01-01T00:00:00.000Z",
"updatedAt": "2026-01-01T00:00:00.000Z",
"linkStatus": "ok",
"lastLinkCheckedAt": "2026-01-01T00:00:00.000Z",
"snapshotEnabled": false,
"readerExcerpt": "string",
"videoEmbedUrl": "string",
"archive": {
"status": "none",
"retentionExpiresAt": "2026-01-01T00:00:00.000Z",
"metadataId": "string"
}
}Errors return the standard envelope. See error reference.
Code samples
curl --request POST \
--url 'https://api.not24get.me/workspaces/%3AworkspaceId/bookmarks' \
--header 'Authorization: Bearer <your-api-key>' \
--header 'Content-Type: application/json' \
--header 'X-Workspace-ID: <workspace-id>' \
--data '{
"url": "string",
"title": "string",
"description": "string",
"tags": [
"string"
],
"folderId": "string",
"archiveCapture": false,
"noticeVersion": "string",
"snapshotEnabled": false,
"readerExcerpt": "string",
"videoEmbedUrl": "string"
}'Try it
Delete bookmark
Soft-deletes a bookmark. Returns no body on success.
Technical details
Exact HTTP method and path your client calls
/workspaces/{workspaceId}/bookmarks/{id}Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
| workspaceId | string | required | |
| id | string | required |
Headers
| Name | Type | Required | Description |
|---|---|---|---|
| X-Workspace-ID | string | optional | Target workspace when the API key is tenant-wide or to disambiguate scope. |
Responses
No Content
| Field | Type | Description |
|---|---|---|
| (value) | EmptyResponsePart |
nullErrors return the standard envelope. See error reference.
Code samples
curl --request DELETE \
--url 'https://api.not24get.me/workspaces/%3AworkspaceId/bookmarks/%3Aid' \
--header 'Authorization: Bearer <your-api-key>' \
--header 'Content-Type: application/json' \
--header 'X-Workspace-ID: <workspace-id>'Try it
Get bookmark
Returns a bookmark by id within the workspace.
Technical details
Exact HTTP method and path your client calls
/workspaces/{workspaceId}/bookmarks/{id}Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
| workspaceId | string | required | |
| id | string | required |
Headers
| Name | Type | Required | Description |
|---|---|---|---|
| X-Workspace-ID | string | optional | Target workspace when the API key is tenant-wide or to disambiguate scope. |
Responses
Get bookmark by id
| Field | Type | Description |
|---|---|---|
| id | string | |
| tenantId | string | |
| workspaceId | string | |
| url | string | |
| title | string | |
| description | string | |
| tags | string[] | |
| folderId | string | |
| sortOrder | integer | |
| createdAt | string<date-time> · date-time | |
| updatedAt | string<date-time> · date-time | |
| linkStatus | string | enum: okdeadunknown |
| lastLinkCheckedAt | string<date-time> · date-time | |
| snapshotEnabled | boolean | |
| readerExcerpt | string | |
| videoEmbedUrl | string | |
| object |
{
"id": "string",
"tenantId": "string",
"workspaceId": "string",
"url": "string",
"title": "string",
"description": "string",
"tags": [
"string"
],
"folderId": "string",
"sortOrder": 0,
"createdAt": "2026-01-01T00:00:00.000Z",
"updatedAt": "2026-01-01T00:00:00.000Z",
"linkStatus": "ok",
"lastLinkCheckedAt": "2026-01-01T00:00:00.000Z",
"snapshotEnabled": false,
"readerExcerpt": "string",
"videoEmbedUrl": "string",
"archive": {
"status": "none",
"retentionExpiresAt": "2026-01-01T00:00:00.000Z",
"metadataId": "string"
}
}Errors return the standard envelope. See error reference.
Code samples
curl --request GET \
--url 'https://api.not24get.me/workspaces/%3AworkspaceId/bookmarks/%3Aid' \
--header 'Authorization: Bearer <your-api-key>' \
--header 'Content-Type: application/json' \
--header 'X-Workspace-ID: <workspace-id>'Try it
Update bookmark
Partially updates bookmark fields such as title, tags, folder, or reader excerpt.
Technical details
Exact HTTP method and path your client calls
/workspaces/{workspaceId}/bookmarks/{id}Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
| workspaceId | string | required | |
| id | string | required |
Headers
| Name | Type | Required | Description |
|---|---|---|---|
| X-Workspace-ID | string | optional | Target workspace when the API key is tenant-wide or to disambiguate scope. |
Request body
| Field | Type | Description |
|---|---|---|
| url | string | |
| title | string | |
| description | string | |
| tags | string[] | |
| folderId | string | |
| archiveCapture | boolean | |
| noticeVersion | string | |
| sortOrder | integer | |
| snapshotEnabled | boolean | |
| readerExcerpt | string | |
| videoEmbedUrl | string |
Responses
Update bookmark
| Field | Type | Description |
|---|---|---|
| id | string | |
| tenantId | string | |
| workspaceId | string | |
| url | string | |
| title | string | |
| description | string | |
| tags | string[] | |
| folderId | string | |
| sortOrder | integer | |
| createdAt | string<date-time> · date-time | |
| updatedAt | string<date-time> · date-time | |
| linkStatus | string | enum: okdeadunknown |
| lastLinkCheckedAt | string<date-time> · date-time | |
| snapshotEnabled | boolean | |
| readerExcerpt | string | |
| videoEmbedUrl | string | |
| object |
{
"id": "string",
"tenantId": "string",
"workspaceId": "string",
"url": "string",
"title": "string",
"description": "string",
"tags": [
"string"
],
"folderId": "string",
"sortOrder": 0,
"createdAt": "2026-01-01T00:00:00.000Z",
"updatedAt": "2026-01-01T00:00:00.000Z",
"linkStatus": "ok",
"lastLinkCheckedAt": "2026-01-01T00:00:00.000Z",
"snapshotEnabled": false,
"readerExcerpt": "string",
"videoEmbedUrl": "string",
"archive": {
"status": "none",
"retentionExpiresAt": "2026-01-01T00:00:00.000Z",
"metadataId": "string"
}
}Errors return the standard envelope. See error reference.
Code samples
curl --request PATCH \
--url 'https://api.not24get.me/workspaces/%3AworkspaceId/bookmarks/%3Aid' \
--header 'Authorization: Bearer <your-api-key>' \
--header 'Content-Type: application/json' \
--header 'X-Workspace-ID: <workspace-id>' \
--data '{
"url": "string",
"title": "string",
"description": "string",
"tags": [
"string"
],
"folderId": "string",
"archiveCapture": false,
"noticeVersion": "string",
"sortOrder": 0,
"snapshotEnabled": false,
"readerExcerpt": "string",
"videoEmbedUrl": "string"
}'Try it
Check bookmark link
Checks HTTP reachability for a single bookmark URL.
Technical details
Exact HTTP method and path your client calls
/workspaces/{workspaceId}/bookmarks/{id}/check-linkPath parameters
| Name | Type | Required | Description |
|---|---|---|---|
| workspaceId | string | required | |
| id | string | required |
Headers
| Name | Type | Required | Description |
|---|---|---|---|
| X-Workspace-ID | string | optional | Target workspace when the API key is tenant-wide or to disambiguate scope. |
Responses
Check single bookmark link health (SL-378)
| Field | Type | Description |
|---|---|---|
| linkStatus | string | enum: okdeadunknown |
| lastLinkCheckedAt | string<date-time> · date-time | |
| queued | boolean |
{
"linkStatus": "ok",
"lastLinkCheckedAt": "2026-01-01T00:00:00.000Z",
"queued": false
}Errors return the standard envelope. See error reference.
Code samples
curl --request POST \
--url 'https://api.not24get.me/workspaces/%3AworkspaceId/bookmarks/%3Aid/check-link' \
--header 'Authorization: Bearer <your-api-key>' \
--header 'Content-Type: application/json' \
--header 'X-Workspace-ID: <workspace-id>'Try it
Enrich bookmark metadata
Fills blank title, description, and tags from link preview when available.
Technical details
Exact HTTP method and path your client calls
/workspaces/{workspaceId}/bookmarks/{id}/enrich-metadataPath parameters
| Name | Type | Required | Description |
|---|---|---|---|
| workspaceId | string | required | |
| id | string | required |
Headers
| Name | Type | Required | Description |
|---|---|---|---|
| X-Workspace-ID | string | optional | Target workspace when the API key is tenant-wide or to disambiguate scope. |
Responses
Fill blank bookmark title, description, and tags from LinkPreview when configured
| Field | Type | Description |
|---|---|---|
| id | string | |
| tenantId | string | |
| workspaceId | string | |
| url | string | |
| title | string | |
| description | string | |
| tags | string[] | |
| folderId | string | |
| sortOrder | integer | |
| createdAt | string<date-time> · date-time | |
| updatedAt | string<date-time> · date-time | |
| linkStatus | string | enum: okdeadunknown |
| lastLinkCheckedAt | string<date-time> · date-time | |
| snapshotEnabled | boolean | |
| readerExcerpt | string | |
| videoEmbedUrl | string | |
| object |
{
"id": "string",
"tenantId": "string",
"workspaceId": "string",
"url": "string",
"title": "string",
"description": "string",
"tags": [
"string"
],
"folderId": "string",
"sortOrder": 0,
"createdAt": "2026-01-01T00:00:00.000Z",
"updatedAt": "2026-01-01T00:00:00.000Z",
"linkStatus": "ok",
"lastLinkCheckedAt": "2026-01-01T00:00:00.000Z",
"snapshotEnabled": false,
"readerExcerpt": "string",
"videoEmbedUrl": "string",
"archive": {
"status": "none",
"retentionExpiresAt": "2026-01-01T00:00:00.000Z",
"metadataId": "string"
}
}Errors return the standard envelope. See error reference.
Code samples
curl --request POST \
--url 'https://api.not24get.me/workspaces/%3AworkspaceId/bookmarks/%3Aid/enrich-metadata' \
--header 'Authorization: Bearer <your-api-key>' \
--header 'Content-Type: application/json' \
--header 'X-Workspace-ID: <workspace-id>'Try it
Get reader payload
Returns reader-mode HTML or excerpt content for a bookmark.
Technical details
Exact HTTP method and path your client calls
/workspaces/{workspaceId}/bookmarks/{id}/readerPath parameters
| Name | Type | Required | Description |
|---|---|---|---|
| workspaceId | string | required | |
| id | string | required |
Headers
| Name | Type | Required | Description |
|---|---|---|---|
| X-Workspace-ID | string | optional | Target workspace when the API key is tenant-wide or to disambiguate scope. |
Responses
Reader preview payload (SL-378)
| Field | Type | Description |
|---|---|---|
| mode | string | |
| title | string | |
| domain | string | |
| savedAt | string<date-time> · date-time | |
| linkStatus | string | enum: okdeadunknown |
| snapshotEnabled | boolean | |
| ReaderParagraph[] | ||
| object |
{
"mode": "string",
"title": "string",
"domain": "string",
"savedAt": "2026-01-01T00:00:00.000Z",
"linkStatus": "ok",
"snapshotEnabled": false,
"paragraphs": [
{
"text": "string",
"kind": "string"
}
],
"media": {
"videoEmbedUrl": "string"
}
}Errors return the standard envelope. See error reference.
Code samples
curl --request GET \
--url 'https://api.not24get.me/workspaces/%3AworkspaceId/bookmarks/%3Aid/reader' \
--header 'Authorization: Bearer <your-api-key>' \
--header 'Content-Type: application/json' \
--header 'X-Workspace-ID: <workspace-id>'Try it
Bulk delete bookmarks
Deletes multiple bookmarks by id in one request.
Technical details
Exact HTTP method and path your client calls
/workspaces/{workspaceId}/bookmarks/bulk-deletePath parameters
| Name | Type | Required | Description |
|---|---|---|---|
| workspaceId | string | required |
Headers
| Name | Type | Required | Description |
|---|---|---|---|
| X-Workspace-ID | string | optional | Target workspace when the API key is tenant-wide or to disambiguate scope. |
Request body
| Field | Type | Description |
|---|---|---|
| idsrequired | string[] |
Responses
Bulk delete bookmarks by id (SL-15)
| Field | Type | Description |
|---|---|---|
| deleted | number | |
| notFoundInScope | number |
{
"deleted": 0,
"notFoundInScope": 0
}Errors return the standard envelope. See error reference.
Code samples
curl --request POST \
--url 'https://api.not24get.me/workspaces/%3AworkspaceId/bookmarks/bulk-delete' \
--header 'Authorization: Bearer <your-api-key>' \
--header 'Content-Type: application/json' \
--header 'X-Workspace-ID: <workspace-id>' \
--data '{
"ids": [
"string"
]
}'Try it
Bulk check link health
Checks HTTP reachability for bookmarks in the workspace or a folder.
Technical details
Exact HTTP method and path your client calls
/workspaces/{workspaceId}/bookmarks/check-linksPath parameters
| Name | Type | Required | Description |
|---|---|---|---|
| workspaceId | string | required |
Query parameters
| Name | Type | Required | Description |
|---|---|---|---|
| folderId | string | optional | |
| limit | number | optional |
Headers
| Name | Type | Required | Description |
|---|---|---|---|
| X-Workspace-ID | string | optional | Target workspace when the API key is tenant-wide or to disambiguate scope. |
Responses
Bulk link health check in workspace scope (SL-378)
| Field | Type | Description |
|---|---|---|
| queued | number | |
| accepted | number |
{
"queued": 0,
"accepted": 0
}Errors return the standard envelope. See error reference.
Code samples
curl --request POST \
--url 'https://api.not24get.me/workspaces/%3AworkspaceId/bookmarks/check-links' \
--header 'Authorization: Bearer <your-api-key>' \
--header 'Content-Type: application/json' \
--header 'X-Workspace-ID: <workspace-id>'Try it
Count bookmarks
Returns bookmark counts optionally filtered by folder or tag.
Technical details
Exact HTTP method and path your client calls
/workspaces/{workspaceId}/bookmarks/countPath parameters
| Name | Type | Required | Description |
|---|---|---|---|
| workspaceId | string | required |
Query parameters
| Name | Type | Required | Description |
|---|---|---|---|
| tag | string | optional | |
| folderId | string | optional |
Headers
| Name | Type | Required | Description |
|---|---|---|---|
| X-Workspace-ID | string | optional | Target workspace when the API key is tenant-wide or to disambiguate scope. |
Responses
Count bookmarks in workspace (optionally by folder or tag)
| Field | Type | Description |
|---|---|---|
| total | number |
{
"total": 0
}Errors return the standard envelope. See error reference.
Code samples
curl --request GET \
--url 'https://api.not24get.me/workspaces/%3AworkspaceId/bookmarks/count' \
--header 'Authorization: Bearer <your-api-key>' \
--header 'Content-Type: application/json' \
--header 'X-Workspace-ID: <workspace-id>'Try it
Delete bookmarks by scope
Deletes bookmarks matching folder, tag, or search scope rules.
Technical details
Exact HTTP method and path your client calls
/workspaces/{workspaceId}/bookmarks/delete-by-scopePath parameters
| Name | Type | Required | Description |
|---|---|---|---|
| workspaceId | string | required |
Headers
| Name | Type | Required | Description |
|---|---|---|---|
| X-Workspace-ID | string | optional | Target workspace when the API key is tenant-wide or to disambiguate scope. |
Request body
| Field | Type | Description |
|---|---|---|
| (union) | DeleteBookmarksByScopeAllRequest | DeleteBookmarksByScopeFolderRequest |
Responses
Delete all bookmarks in workspace or folder scope (SL-15)
| Field | Type | Description |
|---|---|---|
| deleted | number |
{
"deleted": 0
}Errors return the standard envelope. See error reference.
Code samples
curl --request POST \
--url 'https://api.not24get.me/workspaces/%3AworkspaceId/bookmarks/delete-by-scope' \
--header 'Authorization: Bearer <your-api-key>' \
--header 'Content-Type: application/json' \
--header 'X-Workspace-ID: <workspace-id>' \
--data 'null'Try it
Export bookmarks JSON
Downloads a JSON export of bookmarks in the workspace.
Technical details
Exact HTTP method and path your client calls
/workspaces/{workspaceId}/bookmarks/exportPath parameters
| Name | Type | Required | Description |
|---|---|---|---|
| workspaceId | string | required |
Query parameters
| Name | Type | Required | Description |
|---|---|---|---|
| format | string | optional | |
| tag | string | optional | |
| folderId | string | optional | |
| sortBy | string | optional | |
| filterStatus | string | optional |
Headers
| Name | Type | Required | Description |
|---|---|---|---|
| X-Workspace-ID | string | optional | Target workspace when the API key is tenant-wide or to disambiguate scope. |
Responses
Export filtered bookmarks as JSON or CSV (SL-378)
| Field | Type | Description |
|---|---|---|
| (value) | string | JSON bookmark export payload. |
"string"Errors return the standard envelope. See error reference.
Code samples
curl --request GET \
--url 'https://api.not24get.me/workspaces/%3AworkspaceId/bookmarks/export' \
--header 'Authorization: Bearer <your-api-key>' \
--header 'Content-Type: application/json' \
--header 'X-Workspace-ID: <workspace-id>'Try it
Import bookmarks
Imports bookmarks from an uploaded HTML or JSON file.
Technical details
Exact HTTP method and path your client calls
/workspaces/{workspaceId}/bookmarks/importPath parameters
| Name | Type | Required | Description |
|---|---|---|---|
| workspaceId | string | required |
Headers
| Name | Type | Required | Description |
|---|---|---|---|
| X-Workspace-ID | string | optional | Target workspace when the API key is tenant-wide or to disambiguate scope. |
Responses
Import bookmarks from Netscape HTML export
| Field | Type | Description |
|---|---|---|
| imported | integer | |
| skipped | integer | |
| duplicatesSkipped | integer | |
| errors | ImportSummaryIssue[] | |
| issues | ImportSummaryIssue[] |
{
"imported": 0,
"skipped": 0,
"duplicatesSkipped": 0,
"errors": [
null
],
"issues": [
null
]
}Errors return the standard envelope. See error reference.
Code samples
curl --request POST \
--url 'https://api.not24get.me/workspaces/%3AworkspaceId/bookmarks/import' \
--header 'Authorization: Bearer <your-api-key>' \
--header 'Content-Type: application/json' \
--header 'X-Workspace-ID: <workspace-id>'Try it
Preview URL metadata
Fetches link preview title, description, and image for a URL before saving a bookmark.
Technical details
Exact HTTP method and path your client calls
/workspaces/{workspaceId}/bookmarks/preview-urlPath parameters
| Name | Type | Required | Description |
|---|---|---|---|
| workspaceId | string | required |
Headers
| Name | Type | Required | Description |
|---|---|---|---|
| X-Workspace-ID | string | optional | Target workspace when the API key is tenant-wide or to disambiguate scope. |
Request body
| Field | Type | Description |
|---|---|---|
| url | string |
Responses
Fetch title, description, and image for a URL via LinkPreview (client Save link form)
| Field | Type | Description |
|---|---|---|
| title | string | |
| description | string | |
| image | string | |
| url | string | |
| suggestedTag | string |
{
"title": "string",
"description": "string",
"image": "string",
"url": "string",
"suggestedTag": "string"
}Errors return the standard envelope. See error reference.
Code samples
curl --request POST \
--url 'https://api.not24get.me/workspaces/%3AworkspaceId/bookmarks/preview-url' \
--header 'Authorization: Bearer <your-api-key>' \
--header 'Content-Type: application/json' \
--header 'X-Workspace-ID: <workspace-id>' \
--data '{
"url": "string"
}'Try it
Search bookmarks
Full-text search over bookmark titles, URLs, tags, and descriptions.
Technical details
Exact HTTP method and path your client calls
/workspaces/{workspaceId}/bookmarks/searchPath parameters
| Name | Type | Required | Description |
|---|---|---|---|
| workspaceId | string | required |
Query parameters
| Name | Type | Required | Description |
|---|---|---|---|
| q | string | optional | |
| limit | number | optional | |
| offset | number | optional |
Headers
| Name | Type | Required | Description |
|---|---|---|---|
| X-Workspace-ID | string | optional | Target workspace when the API key is tenant-wide or to disambiguate scope. |
Responses
Search bookmarks
| Field | Type | Description |
|---|---|---|
| Bookmark[] | ||
| object | Bookmark in a workspace (serialized API shape). |
[
{
"id": "string",
"tenantId": "string",
"workspaceId": "string",
"url": "string",
"title": "string",
"description": "string",
"tags": [
"string"
],
"folderId": "string",
"sortOrder": 0,
"createdAt": "2026-01-01T00:00:00.000Z",
"updatedAt": "2026-01-01T00:00:00.000Z",
"linkStatus": "ok",
"lastLinkCheckedAt": "2026-01-01T00:00:00.000Z",
"snapshotEnabled": false,
"readerExcerpt": "string",
"videoEmbedUrl": "string",
"archive": {
"status": "none",
"retentionExpiresAt": "2026-01-01T00:00:00.000Z",
"metadataId": "string"
}
}
]Errors return the standard envelope. See error reference.
Code samples
curl --request GET \
--url 'https://api.not24get.me/workspaces/%3AworkspaceId/bookmarks/search' \
--header 'Authorization: Bearer <your-api-key>' \
--header 'Content-Type: application/json' \
--header 'X-Workspace-ID: <workspace-id>'Try it
Search archived snapshots
Searches text extracted from archived page snapshots.
Technical details
Exact HTTP method and path your client calls
/workspaces/{workspaceId}/bookmarks/snapshot-searchPath parameters
| Name | Type | Required | Description |
|---|---|---|---|
| workspaceId | string | required |
Query parameters
| Name | Type | Required | Description |
|---|---|---|---|
| q | string | optional | |
| limit | number | optional | |
| offset | number | optional |
Headers
| Name | Type | Required | Description |
|---|---|---|---|
| X-Workspace-ID | string | optional | Target workspace when the API key is tenant-wide or to disambiguate scope. |
Responses
Search within snapshot text index (SL-378)
| Field | Type | Description |
|---|---|---|
| SnapshotSearchHit[] | ||
| object |
[
{
"bookmarkId": "string",
"excerpt": "string"
}
]Errors return the standard envelope. See error reference.
Code samples
curl --request GET \
--url 'https://api.not24get.me/workspaces/%3AworkspaceId/bookmarks/snapshot-search' \
--header 'Authorization: Bearer <your-api-key>' \
--header 'Content-Type: application/json' \
--header 'X-Workspace-ID: <workspace-id>'Try it
Export bookmarks HTML
Downloads a Netscape bookmark HTML export for the workspace.
Technical details
Exact HTTP method and path your client calls
/workspaces/{workspaceId}/export/bookmarks.htmlPath parameters
| Name | Type | Required | Description |
|---|---|---|---|
| workspaceId | string | required |
Headers
| Name | Type | Required | Description |
|---|---|---|---|
| X-Workspace-ID | string | optional | Target workspace when the API key is tenant-wide or to disambiguate scope. |
Responses
Netscape bookmark file for the workspace (SL-24)
Errors return the standard envelope. See error reference.
Code samples
curl --request GET \
--url 'https://api.not24get.me/workspaces/%3AworkspaceId/export/bookmarks.html' \
--header 'Authorization: Bearer <your-api-key>' \
--header 'Content-Type: application/json' \
--header 'X-Workspace-ID: <workspace-id>'