Skip to main content

Search

frappe.search is on the core client. Every method accepts trailing RequestOptions.

searchLink normalizes both Frappe 14 ({ results: [...] }) and Frappe 15+ (bare array) to LinkSearchResult[] (value, description, optional label). Unrecognized bodies reject with ResponseError.

searchWidget normalizes Frappe 14 ({ values: [...] }, no return value) and Frappe 15+ (returned array, v2 { data } / classic { message }) to the same array payload.

Methods

MethodReturnsServer
searchLink(doctype, txt, args?)LinkSearchResult[]frappe.desk.search.search_link
searchWidget(doctype, txt, args?)T (default unknown)frappe.desk.search.search_widget
getLinkTitle(doctype, name)stringfrappe.desk.search.get_link_title (docname on the wire)
await frappe.search.searchLink('User', 'Admin', {
query: undefined,
filters: { enabled: 1 },
pageLength: 10,
searchField: 'full_name',
referenceDoctype: 'ToDo',
ignoreUserPermissions: false,
linkFieldname: 'user',
})

await frappe.search.searchWidget('User', 'Ad', {
start: 0,
asDict: true,
filterFields: ['email'],
pageLength: 20,
})

await frappe.search.getLinkTitle('User', 'Administrator')

SearchLinkArgs / SearchWidgetArgs

FieldWire
queryquery
filtersfilters (Record or array)
pageLengthpage_length
searchFieldsearchfield
referenceDoctypereference_doctype
ignoreUserPermissionsignore_user_permissions
linkFieldnamelink_fieldname
startstart (widget only)
filterFieldsfilter_fields (widget only)
asDictas_dict (widget only)