Bookmarks
Create, list, search, import, export, and update not24get bookmarks, including tags, folders, archives, and link health checks.
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}
- postMint in-app browser stream session/workspaces/{workspaceId}/bookmarks/{id}/browser-session
- 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
- getList bookmark snapshots/workspaces/{workspaceId}/bookmarks/{id}/snapshots
- postCapture bookmark snapshot/workspaces/{workspaceId}/bookmarks/{id}/snapshots
- getCompare bookmark snapshots/workspaces/{workspaceId}/bookmarks/{id}/snapshots/{snapshotId}/diff
- getList failed bookmark snapshot captures/workspaces/{workspaceId}/bookmarks/{id}/snapshots/failed
- getGet bookmark Web-capture status/workspaces/{workspaceId}/bookmarks/{id}/web-capture
- getDownload Web-capture PNG/workspaces/{workspaceId}/bookmarks/{id}/web-capture/{viewport}/image
- postRefresh bookmark Web captures/workspaces/{workspaceId}/bookmarks/{id}/web-capture/refresh
- putUpload extension Web captures/workspaces/{workspaceId}/bookmarks/{id}/web-capture/upload
- 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 (cached)/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",
"isHeadlessPreviewBlocked": false,
"headlessPreviewBlockedAt": "2026-01-01T00:00:00.000Z",
"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 | |
| isHeadlessPreviewBlocked | boolean | |
| headlessPreviewBlockedAt | string<date-time> · date-time | |
| 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",
"isHeadlessPreviewBlocked": false,
"headlessPreviewBlockedAt": "2026-01-01T00:00:00.000Z",
"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 | |
| isHeadlessPreviewBlocked | boolean | |
| headlessPreviewBlockedAt | string<date-time> · date-time | |
| 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",
"isHeadlessPreviewBlocked": false,
"headlessPreviewBlockedAt": "2026-01-01T00:00:00.000Z",
"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 | |
| isHeadlessPreviewBlocked | boolean | |
| headlessPreviewBlockedAt | string<date-time> · date-time | |
| 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",
"isHeadlessPreviewBlocked": false,
"headlessPreviewBlockedAt": "2026-01-01T00:00:00.000Z",
"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 file into the target workspace. Optional folderId places bookmarks under that destination folder.
Technical details
Exact HTTP method and path your client calls
/api/v1/bookmarks/importsQuery parameters
| Name | Type | Required | Description |
|---|---|---|---|
| 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
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",
"isHeadlessPreviewBlocked": false,
"headlessPreviewBlockedAt": "2026-01-01T00:00:00.000Z",
"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 | |
| isHeadlessPreviewBlocked | boolean | |
| headlessPreviewBlockedAt | string<date-time> · date-time | |
| 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",
"isHeadlessPreviewBlocked": false,
"headlessPreviewBlockedAt": "2026-01-01T00:00:00.000Z",
"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 | |
| isHeadlessPreviewBlocked | boolean | |
| headlessPreviewBlockedAt | string<date-time> · date-time | |
| 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",
"isHeadlessPreviewBlocked": false,
"headlessPreviewBlockedAt": "2026-01-01T00:00:00.000Z",
"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 | |
| isHeadlessPreviewBlocked | boolean | |
| headlessPreviewBlockedAt | string<date-time> · date-time | |
| 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",
"isHeadlessPreviewBlocked": false,
"headlessPreviewBlockedAt": "2026-01-01T00:00:00.000Z",
"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
Mint in-app browser stream session
Returns a short-lived page-stream JWT and WebSocket URL for Live (mode live or legacy web) or snapshot playback. Snapshot mode requires permanentArchive.
Technical details
Exact HTTP method and path your client calls
/workspaces/{workspaceId}/bookmarks/{id}/browser-sessionPath 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 |
|---|---|---|
| moderequired | string | enum: livewebsnapshot |
| snapshotId | string |
Responses
Mint page-stream JWT for Live or snapshot playback (SL-492/SL-590)
| Field | Type | Description |
|---|---|---|
| streamUrl | string | |
| token | string | |
| expiresAt | string<date-time> · date-time | |
| mode | string | enum: livewebsnapshot |
| jti | string |
{
"streamUrl": "string",
"token": "string",
"expiresAt": "2026-01-01T00:00:00.000Z",
"mode": "live",
"jti": "string"
}Errors return the standard envelope. See error reference.
Code samples
curl --request POST \
--url 'https://api.not24get.me/workspaces/%3AworkspaceId/bookmarks/%3Aid/browser-session' \
--header 'Authorization: Bearer <your-api-key>' \
--header 'Content-Type: application/json' \
--header 'X-Workspace-ID: <workspace-id>' \
--data '{
"mode": "live",
"snapshotId": "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 | |
| isHeadlessPreviewBlocked | boolean | |
| headlessPreviewBlockedAt | string<date-time> · date-time | |
| 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",
"isHeadlessPreviewBlocked": false,
"headlessPreviewBlockedAt": "2026-01-01T00:00:00.000Z",
"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
List bookmark snapshots
Lists active FIFO snapshots for a bookmark (Pro+ permanentArchive). Free plans receive 403.
Technical details
Exact HTTP method and path your client calls
/workspaces/{workspaceId}/bookmarks/{id}/snapshotsPath 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
List bookmark snapshots (Pro+ permanentArchive)
| Field | Type | Description |
|---|---|---|
| BookmarkSnapshotSummary[] | ||
| object |
[
{
"id": "string",
"trigger": "auto",
"schemaVersion": 0,
"capturedAt": "2026-01-01T00:00:00.000Z",
"sizeBytes": 0,
"paragraphCount": 0,
"latest": false
}
]Errors return the standard envelope. See error reference.
Code samples
curl --request GET \
--url 'https://api.not24get.me/workspaces/%3AworkspaceId/bookmarks/%3Aid/snapshots' \
--header 'Authorization: Bearer <your-api-key>' \
--header 'Content-Type: application/json' \
--header 'X-Workspace-ID: <workspace-id>'Try it
Capture bookmark snapshot
Manually captures an archive v3 snapshot and enforces ≤5 FIFO retention (Pro+ permanentArchive).
Technical details
Exact HTTP method and path your client calls
/workspaces/{workspaceId}/bookmarks/{id}/snapshotsPath 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
Manual snapshot capture (Pro+)
| Field | Type | Description |
|---|---|---|
| id | string | |
| trigger | string | enum: automanual |
| schemaVersion | integer | |
| capturedAt | string<date-time> · date-time | |
| sizeBytes | integer | |
| paragraphCount | integer | |
| latest | boolean |
{
"id": "string",
"trigger": "auto",
"schemaVersion": 0,
"capturedAt": "2026-01-01T00:00:00.000Z",
"sizeBytes": 0,
"paragraphCount": 0,
"latest": false
}Errors return the standard envelope. See error reference.
Code samples
curl --request POST \
--url 'https://api.not24get.me/workspaces/%3AworkspaceId/bookmarks/%3Aid/snapshots' \
--header 'Authorization: Bearer <your-api-key>' \
--header 'Content-Type: application/json' \
--header 'X-Workspace-ID: <workspace-id>'Try it
Compare bookmark snapshots
Returns text or visual diff between a snapshot and live page or another snapshot (Pro+ permanentArchive).
Technical details
Exact HTTP method and path your client calls
/workspaces/{workspaceId}/bookmarks/{id}/snapshots/{snapshotId}/diffPath parameters
| Name | Type | Required | Description |
|---|---|---|---|
| workspaceId | string | required | |
| id | string | required | |
| snapshotId | string | required |
Query parameters
| Name | Type | Required | Description |
|---|---|---|---|
| vs | string | optional | |
| kind | 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
Text or visual diff vs live or another snapshot (Pro+)
| Field | Type | Description |
|---|---|---|
| (value) | SnapshotDiffResultPart |
nullErrors return the standard envelope. See error reference.
Code samples
curl --request GET \
--url 'https://api.not24get.me/workspaces/%3AworkspaceId/bookmarks/%3Aid/snapshots/%3AsnapshotId/diff' \
--header 'Authorization: Bearer <your-api-key>' \
--header 'Content-Type: application/json' \
--header 'X-Workspace-ID: <workspace-id>'Try it
List failed bookmark snapshot captures
Lists captures that could not produce a copy, with the reason and the next scheduled retry. Sites that block automated access report `bot-challenge`.
Technical details
Exact HTTP method and path your client calls
/workspaces/{workspaceId}/bookmarks/{id}/snapshots/failedPath 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
List failed snapshot captures (Pro+ permanentArchive)
| Field | Type | Description |
|---|---|---|
| (value) | array |
[]Errors return the standard envelope. See error reference.
Code samples
curl --request GET \
--url 'https://api.not24get.me/workspaces/%3AworkspaceId/bookmarks/%3Aid/snapshots/failed' \
--header 'Authorization: Bearer <your-api-key>' \
--header 'Content-Type: application/json' \
--header 'X-Workspace-ID: <workspace-id>'Try it
Get bookmark Web-capture status
Returns per-device Web-capture status and image paths (Pro+ permanentArchive). Free plans receive 403.
Technical details
Exact HTTP method and path your client calls
/workspaces/{workspaceId}/bookmarks/{id}/web-capturePath 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
Web-capture view (SL-590)
| Field | Type | Description |
|---|---|---|
| (value) | WebCaptureViewPart |
nullErrors return the standard envelope. See error reference.
Code samples
curl --request GET \
--url 'https://api.not24get.me/workspaces/%3AworkspaceId/bookmarks/%3Aid/web-capture' \
--header 'Authorization: Bearer <your-api-key>' \
--header 'Content-Type: application/json' \
--header 'X-Workspace-ID: <workspace-id>'Try it
Download Web-capture PNG
Streams a stored Web-capture viewport PNG (Pro+ permanentArchive).
Technical details
Exact HTTP method and path your client calls
/workspaces/{workspaceId}/bookmarks/{id}/web-capture/{viewport}/imagePath parameters
| Name | Type | Required | Description |
|---|---|---|---|
| workspaceId | string | required | |
| id | string | required | |
| viewport | 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
PNG image bytes
Errors return the standard envelope. See error reference.
Code samples
curl --request GET \
--url 'https://api.not24get.me/workspaces/%3AworkspaceId/bookmarks/%3Aid/web-capture/%3Aviewport/image' \
--header 'Authorization: Bearer <your-api-key>' \
--header 'Content-Type: application/json' \
--header 'X-Workspace-ID: <workspace-id>'Try it
Refresh bookmark Web captures
Re-renders desktop/tablet/mobile above-the-fold PNGs and overwrites Web-capture keys (Pro+).
Technical details
Exact HTTP method and path your client calls
/workspaces/{workspaceId}/bookmarks/{id}/web-capture/refreshPath 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
Web-capture refresh result (SL-590)
| Field | Type | Description |
|---|---|---|
| (value) | WebCaptureViewPart |
nullErrors return the standard envelope. See error reference.
Code samples
curl --request POST \
--url 'https://api.not24get.me/workspaces/%3AworkspaceId/bookmarks/%3Aid/web-capture/refresh' \
--header 'Authorization: Bearer <your-api-key>' \
--header 'Content-Type: application/json' \
--header 'X-Workspace-ID: <workspace-id>'Try it
Upload extension Web captures
Accepts base64 PNG payloads for desktop/tablet/mobile from the browser extension (Pro+).
Technical details
Exact HTTP method and path your client calls
/workspaces/{workspaceId}/bookmarks/{id}/web-capture/uploadPath 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 |
|---|---|---|
| desktop | string | Base64 PNG |
| tablet | string | Base64 PNG |
| mobile | string | Base64 PNG |
Responses
Web-capture upload result (SL-590)
| Field | Type | Description |
|---|---|---|
| (value) | WebCaptureViewPart |
nullErrors return the standard envelope. See error reference.
Code samples
curl --request PUT \
--url 'https://api.not24get.me/workspaces/%3AworkspaceId/bookmarks/%3Aid/web-capture/upload' \
--header 'Authorization: Bearer <your-api-key>' \
--header 'Content-Type: application/json' \
--header 'X-Workspace-ID: <workspace-id>' \
--data '{
"desktop": "string",
"tablet": "string",
"mobile": "string"
}'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 file. Optional folderId places every imported bookmark directly in that destination folder (HTML folder paths are ignored). Omit folderId to import at workspace root and preserve HTML folder structure.
Technical details
Exact HTTP method and path your client calls
/workspaces/{workspaceId}/bookmarks/importPath parameters
| Name | Type | Required | Description |
|---|---|---|---|
| workspaceId | string | required |
Query parameters
| Name | Type | Required | Description |
|---|---|---|---|
| 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
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 (cached)
Returns link preview title, description, and image for a URL (Save form and gallery). Serves the platform Mongo cache when fresh (14-day TTL, cross-tenant); calls URLPreview.com only on miss or expiry (NFR-378-009).
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 cached URLPreview (Save form / gallery)
| 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",
"isHeadlessPreviewBlocked": false,
"headlessPreviewBlockedAt": "2026-01-01T00:00:00.000Z",
"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>'