Skip to content

Search Records

These eight operations use the dedicated publicapi.v1.RecordSearch service, not the individual CRUD services. Required scopes by resource are customer:read, problem:read, work_order:read, catalog:read, member:read, team:read, role:read, and inventory:read, respectively.

Every path below is a POST under /public-api/publicapi.v1.RecordSearch/. All accept the same request shape and return the indicated collection plus nextCursor.

MethodMatched fields, in addition to the resource UUIDResponse collection
SearchCustomersTitle, reference number; never contacts or custom fieldscustomers
SearchProblemsNon-archived problem titleproblems
SearchWorkOrdersOwner-workspace work-order titleworkOrders
SearchProductsProduct name and SKU, including inactive productsproducts
SearchMembersWorkspace member names and account email, not global accountsmembers
SearchTeamsTeam nameteams
SearchRolesRole nameroles
SearchInventoryLocationsLocation name and code, including inactive locationslocations
{
"query": "Inspection",
"match": "RECORD_SEARCH_MATCH_CONTAINS",
"pageSize": 25
}
  • query: at most 200 characters of valid text, without NUL characters. Leading and trailing whitespace is trimmed. Empty or whitespace-only input browses a bounded page; it does not return the whole workspace.
  • match: RECORD_SEARCH_MATCH_EXACT, RECORD_SEARCH_MATCH_PREFIX, or RECORD_SEARCH_MATCH_CONTAINS. Omitted or unspecified means contains.
  • Matching is literal, generally case-insensitive. Exact customer reference, SKU, and location code comparisons are case-sensitive. %, _, backslashes, and regex-like text are literal input, not wildcard or regex syntax. There is no full-text engine, stemming, accent folding, arbitrary SQL, or JSON-path search.
  • A complete standard UUID looks up the resource ID exactly regardless of match mode. For members, this means the member ID, not the account ID.
  • pageSize: omitted or zero means 25; maximum 50. Larger or negative values fail validation. Results are bounded in SQL, with at most one extra row read to determine whether a next page exists.
  • cursor: opaque continuation, at most 2048 bytes. Pass the returned nextCursor with the same resource, workspace, actor, query, and match mode. Malformed or mismatched cursors fail rather than restarting the search.

Results are ordered by resource UUID ascending, not relevance. Continue until nextCursor is absent or empty. Pages observe current records and authorization, not a historical snapshot. Never interpret a timeout or authorization failure as an empty result. Search has a two-second execution/SQL timeout; narrow the query or use an exact record ID after deadline_exceeded.

Customer access is applied before pagination. Problem discovery additionally uses reporter/assignee visibility; work orders are restricted to readable customers in the owner workspace, not partner or executor records. Each search also enforces the actor’s corresponding workspace permission. Product search requires settings or inventory read access. A key scope alone is insufficient.

Summaries return stable IDs and bounded core fields, not descriptions, task bodies, or arbitrary JSON. Text is bounded to 200 characters, email to 254. Member id is the workspace member ID; accountId is the assignment identity used by problem creation. accessExpired does not confer active membership. Role discovery is not permission to assign or delegate that role. Inventory location discovery is not a stock read or mutation API.

Contract

Generated Reference
POST /public-api/publicapi.v1.RecordSearch/SearchCustomers

Searches customer title and reference only; never contacts or custom fields.

Request SearchRecordsRequest
Response SearchCustomersResponse

SearchRecordsRequest

Field Type Description
query string Empty/whitespace means bounded browse. Otherwise literal, case-insensitive text matching: no regex, wildcard syntax, stemming, or accent folding. A complete UUID looks up that resource ID exactly, regardless of match. Customer reference, SKU, and location code EXACT matches are case-sensitive.
match RecordSearchMatch
page_size int32 Defaults to 25. Results are ordered by stable resource UUID ascending, not relevance. Search may time out; an error is not an empty result.
cursor string Opaque continuation bound to resource, workspace, actor, query, and match. Pages observe current data and authorization, not a historical snapshot.

SearchCustomersResponse

Field Type
customers repeated CustomerSearchSummary
next_cursor string

Contract

Generated Reference
POST /public-api/publicapi.v1.RecordSearch/SearchProblems

Searches non-archived problem titles using customer/reporter/assignee access.

Request SearchRecordsRequest
Response SearchProblemsResponse

SearchRecordsRequest

Field Type Description
query string Empty/whitespace means bounded browse. Otherwise literal, case-insensitive text matching: no regex, wildcard syntax, stemming, or accent folding. A complete UUID looks up that resource ID exactly, regardless of match. Customer reference, SKU, and location code EXACT matches are case-sensitive.
match RecordSearchMatch
page_size int32 Defaults to 25. Results are ordered by stable resource UUID ascending, not relevance. Search may time out; an error is not an empty result.
cursor string Opaque continuation bound to resource, workspace, actor, query, and match. Pages observe current data and authorization, not a historical snapshot.

SearchProblemsResponse

Field Type
problems repeated ProblemSearchSummary
next_cursor string

Contract

Generated Reference
POST /public-api/publicapi.v1.RecordSearch/SearchWorkOrders

Searches titles of readable, workspace-owned work orders.

Request SearchRecordsRequest
Response SearchWorkOrdersResponse

SearchRecordsRequest

Field Type Description
query string Empty/whitespace means bounded browse. Otherwise literal, case-insensitive text matching: no regex, wildcard syntax, stemming, or accent folding. A complete UUID looks up that resource ID exactly, regardless of match. Customer reference, SKU, and location code EXACT matches are case-sensitive.
match RecordSearchMatch
page_size int32 Defaults to 25. Results are ordered by stable resource UUID ascending, not relevance. Search may time out; an error is not an empty result.
cursor string Opaque continuation bound to resource, workspace, actor, query, and match. Pages observe current data and authorization, not a historical snapshot.

SearchWorkOrdersResponse

Field Type
work_orders repeated WorkOrderSearchSummary
next_cursor string

Contract

Generated Reference
POST /public-api/publicapi.v1.RecordSearch/SearchProducts

Searches product names and SKUs, including inactive products.

Request SearchRecordsRequest
Response SearchProductsResponse

SearchRecordsRequest

Field Type Description
query string Empty/whitespace means bounded browse. Otherwise literal, case-insensitive text matching: no regex, wildcard syntax, stemming, or accent folding. A complete UUID looks up that resource ID exactly, regardless of match. Customer reference, SKU, and location code EXACT matches are case-sensitive.
match RecordSearchMatch
page_size int32 Defaults to 25. Results are ordered by stable resource UUID ascending, not relevance. Search may time out; an error is not an empty result.
cursor string Opaque continuation bound to resource, workspace, actor, query, and match. Pages observe current data and authorization, not a historical snapshot.

SearchProductsResponse

Field Type
products repeated ProductSearchSummary
next_cursor string

Contract

Generated Reference
POST /public-api/publicapi.v1.RecordSearch/SearchMembers

Searches effective workspace member names and account email, not global users.

Request SearchRecordsRequest
Response SearchMembersResponse

SearchRecordsRequest

Field Type Description
query string Empty/whitespace means bounded browse. Otherwise literal, case-insensitive text matching: no regex, wildcard syntax, stemming, or accent folding. A complete UUID looks up that resource ID exactly, regardless of match. Customer reference, SKU, and location code EXACT matches are case-sensitive.
match RecordSearchMatch
page_size int32 Defaults to 25. Results are ordered by stable resource UUID ascending, not relevance. Search may time out; an error is not an empty result.
cursor string Opaque continuation bound to resource, workspace, actor, query, and match. Pages observe current data and authorization, not a historical snapshot.

SearchMembersResponse

Field Type
members repeated MemberSearchSummary
next_cursor string

Contract

Generated Reference
POST /public-api/publicapi.v1.RecordSearch/SearchTeams
Request SearchRecordsRequest
Response SearchTeamsResponse

SearchRecordsRequest

Field Type Description
query string Empty/whitespace means bounded browse. Otherwise literal, case-insensitive text matching: no regex, wildcard syntax, stemming, or accent folding. A complete UUID looks up that resource ID exactly, regardless of match. Customer reference, SKU, and location code EXACT matches are case-sensitive.
match RecordSearchMatch
page_size int32 Defaults to 25. Results are ordered by stable resource UUID ascending, not relevance. Search may time out; an error is not an empty result.
cursor string Opaque continuation bound to resource, workspace, actor, query, and match. Pages observe current data and authorization, not a historical snapshot.

SearchTeamsResponse

Field Type
teams repeated TeamSearchSummary
next_cursor string

Contract

Generated Reference
POST /public-api/publicapi.v1.RecordSearch/SearchRoles

Discovery does not imply permission to delegate or assign a role.

Request SearchRecordsRequest
Response SearchRolesResponse

SearchRecordsRequest

Field Type Description
query string Empty/whitespace means bounded browse. Otherwise literal, case-insensitive text matching: no regex, wildcard syntax, stemming, or accent folding. A complete UUID looks up that resource ID exactly, regardless of match. Customer reference, SKU, and location code EXACT matches are case-sensitive.
match RecordSearchMatch
page_size int32 Defaults to 25. Results are ordered by stable resource UUID ascending, not relevance. Search may time out; an error is not an empty result.
cursor string Opaque continuation bound to resource, workspace, actor, query, and match. Pages observe current data and authorization, not a historical snapshot.

SearchRolesResponse

Field Type
roles repeated RoleSearchSummary
next_cursor string

Contract

Generated Reference
POST /public-api/publicapi.v1.RecordSearch/SearchInventoryLocations

Searches location names and codes, including inactive locations.

Request SearchRecordsRequest
Response SearchInventoryLocationsResponse

SearchRecordsRequest

Field Type Description
query string Empty/whitespace means bounded browse. Otherwise literal, case-insensitive text matching: no regex, wildcard syntax, stemming, or accent folding. A complete UUID looks up that resource ID exactly, regardless of match. Customer reference, SKU, and location code EXACT matches are case-sensitive.
match RecordSearchMatch
page_size int32 Defaults to 25. Results are ordered by stable resource UUID ascending, not relevance. Search may time out; an error is not an empty result.
cursor string Opaque continuation bound to resource, workspace, actor, query, and match. Pages observe current data and authorization, not a historical snapshot.

SearchInventoryLocationsResponse

Field Type
locations repeated InventoryLocationSearchSummary
next_cursor string