Restore the previous saved-search bytes only while the unpinned file is unchanged.
const url = 'https://example.com/api/v1/search/saved/example/unpin/undo';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"expected_hash":"example","version_name":"example"}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://example.com/api/v1/search/saved/example/unpin/undo \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "expected_hash": "example", "version_name": "example" }'Route: /api/v1/search/saved/{id}/unpin/undo. Inputs: id. Do not automatically replay this operation after an uncertain result.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”Saved search id
Request Bodyrequired
Section titled “Request Bodyrequired”The only client input needed to restore an Unpin; the old bytes stay in Files Versions.
object
Examplegenerated
{ "expected_hash": "example", "version_name": "example"}Responses
Section titled “Responses”The restored saved search
A saved search: a named query that works like a smart folder (DESIGN §32
S10). It is user data, stored as one JSON file per search in
<home>/.calternal/saved-searches/<id>.json.
object
Creation time (RFC 3339, UTC).
Stable identifier (a lowercase UUID). Links use it, so a rename never breaks them.
Display name chosen by the user.
True when the search shows in the sidebar.
The raw query, operators included, exactly as the search field shows it.
Last change time (RFC 3339, UTC).
Examplegenerated
{ "created": "example", "id": "example", "name": "example", "pinned": true, "query": "example", "updated": "example"}Invalid version identity or hash
The standard API error response: { "error": { ... } }.
object
Example
{ "error": { "code": "bad_request" }}The saved search or its previous version is missing
The standard API error response: { "error": { ... } }.
object
Example
{ "error": { "code": "bad_request" }}The saved search changed after it was unpinned
The standard API error response: { "error": { ... } }.
object
Example
{ "error": { "code": "bad_request" }}