Kenso

Saved searches

Save a search and run it again later.

Search and data7 endpointsKen-Version: 2026-11-02AuthenticationWorkspacesErrors

Your own and the ones shared with you. limit (1-100, default 50) and cursor page the list.

Parameters

Name
In
Type
Required
Description
limit
In: query
integer (int32)
optional
cursor
In: query
string
optional
Ken-Version
In: header
string, one of: 2026-11-02, 1.1
required
The API version: a dated version (YYYY-MM-DD), or 1.1, another name for the first dated version. Without it the request uses your API key's pinned version; an unpinned key reaches the legacy shape of the same path. 1.0 selects the legacy shape explicitly.
X-Ken-Workspace-Id
In: header
integer (int64)
optional
Workspace to act in. Required when your credential can reach more than one workspace (otherwise 400 workspace_required).

Response 200

data is a list of object. Each item has these fields. The response also carries pagination.

Request
curl -X GET "https://api.ken.so/v1/saved-searches?limit=1" \
  -H "Authorization: Bearer $KEN_API_KEY" \
  -H "Ken-Version: 2026-11-02" \
  -H "X-Ken-Workspace-Id: $KEN_WORKSPACE_ID"
Response 200
{
  "success": true,
  "data": [],
  "pagination": {
    "nextCursor": "eyJpZCI6ODE1fQ",
    "hasMore": true,
    "totalCount": 1
  }
}

Save a search

POST/v1/saved-searchessaved-searches.create

Try it on developer.ken.so

Body: name, searchType (people or companies as Search names them), filtersJson and isShared. The saved search belongs to you, in this workspace.

Parameters

Name
In
Type
Required
Description
Ken-Version
In: header
string, one of: 2026-11-02, 1.1
required
The API version: a dated version (YYYY-MM-DD), or 1.1, another name for the first dated version. Without it the request uses your API key's pinned version; an unpinned key reaches the legacy shape of the same path. 1.0 selects the legacy shape explicitly.
X-Ken-Workspace-Id
In: header
integer (int64)
optional
Workspace to act in. Required when your credential can reach more than one workspace (otherwise 400 workspace_required).

Response 201

data is a object.

Request
curl -X POST "https://api.ken.so/v1/saved-searches" \
  -H "Authorization: Bearer $KEN_API_KEY" \
  -H "Ken-Version: 2026-11-02" \
  -H "X-Ken-Workspace-Id: $KEN_WORKSPACE_ID"
Response 201
{
  "success": true,
  "data": null
}

Get one saved search

GET/v1/saved-searches/{savedSearchId}saved-searches.get

Try it on developer.ken.so

Parameters

Name
In
Type
Required
Description
savedSearchId
In: path
integer (int64)
required
Ken-Version
In: header
string, one of: 2026-11-02, 1.1
required
The API version: a dated version (YYYY-MM-DD), or 1.1, another name for the first dated version. Without it the request uses your API key's pinned version; an unpinned key reaches the legacy shape of the same path. 1.0 selects the legacy shape explicitly.
X-Ken-Workspace-Id
In: header
integer (int64)
optional
Workspace to act in. Required when your credential can reach more than one workspace (otherwise 400 workspace_required).

Response 200

data is a object.

Request
curl -X GET "https://api.ken.so/v1/saved-searches/812" \
  -H "Authorization: Bearer $KEN_API_KEY" \
  -H "Ken-Version: 2026-11-02" \
  -H "X-Ken-Workspace-Id: $KEN_WORKSPACE_ID"
Response 200
{
  "success": true,
  "data": null
}

Update a saved search

PATCH/v1/saved-searches/{savedSearchId}saved-searches.update

Try it on developer.ken.so

Body: any of name, filtersJson and isShared. Absent fields stay as they are.

Parameters

Name
In
Type
Required
Description
savedSearchId
In: path
integer (int64)
required
Ken-Version
In: header
string, one of: 2026-11-02, 1.1
required
The API version: a dated version (YYYY-MM-DD), or 1.1, another name for the first dated version. Without it the request uses your API key's pinned version; an unpinned key reaches the legacy shape of the same path. 1.0 selects the legacy shape explicitly.
X-Ken-Workspace-Id
In: header
integer (int64)
optional
Workspace to act in. Required when your credential can reach more than one workspace (otherwise 400 workspace_required).

Response 200

data is a object.

Request
curl -X PATCH "https://api.ken.so/v1/saved-searches/812" \
  -H "Authorization: Bearer $KEN_API_KEY" \
  -H "Ken-Version: 2026-11-02" \
  -H "X-Ken-Workspace-Id: $KEN_WORKSPACE_ID"
Response 200
{
  "success": true,
  "data": null
}

Delete a saved search

DELETE/v1/saved-searches/{savedSearchId}saved-searches.delete

Try it on developer.ken.so

Parameters

Name
In
Type
Required
Description
savedSearchId
In: path
integer (int64)
required
Ken-Version
In: header
string, one of: 2026-11-02, 1.1
required
The API version: a dated version (YYYY-MM-DD), or 1.1, another name for the first dated version. Without it the request uses your API key's pinned version; an unpinned key reaches the legacy shape of the same path. 1.0 selects the legacy shape explicitly.
X-Ken-Workspace-Id
In: header
integer (int64)
optional
Workspace to act in. Required when your credential can reach more than one workspace (otherwise 400 workspace_required).

Response 204

Request
curl -X DELETE "https://api.ken.so/v1/saved-searches/812" \
  -H "Authorization: Bearer $KEN_API_KEY" \
  -H "Ken-Version: 2026-11-02" \
  -H "X-Ken-Workspace-Id: $KEN_WORKSPACE_ID"
Response 204
HTTP/1.1 204 No Content

Run a saved search

POST/v1/saved-searches/{savedSearchId}/runsaved-searches.run

Try it on developer.ken.so

Runs the saved filters and returns { savedSearchId, searchType, totalResults, results }. Each profile on the page counts one row of the workspace's searchBrowseRows quota; past it, 429 quota_exceeded.

Parameters

Name
In
Type
Required
Description
savedSearchId
In: path
integer (int64)
required
Ken-Version
In: header
string, one of: 2026-11-02, 1.1
required
The API version: a dated version (YYYY-MM-DD), or 1.1, another name for the first dated version. Without it the request uses your API key's pinned version; an unpinned key reaches the legacy shape of the same path. 1.0 selects the legacy shape explicitly.
X-Ken-Workspace-Id
In: header
integer (int64)
optional
Workspace to act in. Required when your credential can reach more than one workspace (otherwise 400 workspace_required).

Response 200

data is a object.

Request
curl -X POST "https://api.ken.so/v1/saved-searches/812/run" \
  -H "Authorization: Bearer $KEN_API_KEY" \
  -H "Ken-Version: 2026-11-02" \
  -H "X-Ken-Workspace-Id: $KEN_WORKSPACE_ID"
Response 200
{
  "success": true,
  "data": null
}

Share a saved search, or stop sharing it

POST/v1/saved-searches/{savedSearchId}/sharesaved-searches.share

Try it on developer.ken.so

Body: action (grant or revoke), targetType, targetId and permission, as Kenso Search defines them.

Parameters

Name
In
Type
Required
Description
savedSearchId
In: path
integer (int64)
required
Ken-Version
In: header
string, one of: 2026-11-02, 1.1
required
The API version: a dated version (YYYY-MM-DD), or 1.1, another name for the first dated version. Without it the request uses your API key's pinned version; an unpinned key reaches the legacy shape of the same path. 1.0 selects the legacy shape explicitly.
X-Ken-Workspace-Id
In: header
integer (int64)
optional
Workspace to act in. Required when your credential can reach more than one workspace (otherwise 400 workspace_required).

Response 200

data is a object.

Request
curl -X POST "https://api.ken.so/v1/saved-searches/812/share" \
  -H "Authorization: Bearer $KEN_API_KEY" \
  -H "Ken-Version: 2026-11-02" \
  -H "X-Ken-Workspace-Id: $KEN_WORKSPACE_ID"
Response 200
{
  "success": true,
  "data": null
}