Full-text search across all indexed business records (tickets, clients, contacts, projects, assets, invoices, contracts, documents, knowledge-base articles, and more) backed by the shared app_search_index. Results are tenant-scoped and filtered by the API key user's permissions: a coarse per-type permission gate plus a per-row access-control check, so only records the user could see in-app are returned. No dedicated search permission is required — any valid API key may call this endpoint. Client-portal API keys are automatically scoped to their own client.
Query parameters
querystringRequired
Full-text query. A concise expression of likely record words, identifiers, names, or quoted phrases — not a full sentence. Supports OR for alternatives (e.g. "laptop OR workstation").
typesstringOptional
Comma-separated list of object types to restrict the search (e.g. "ticket,project"). Omit to search every type the API key's user is permitted to read. Allowed values: client, contact, user, ticket, ticket_comment, project, project_phase, project_task, project_task_comment, asset, invoice, invoice_item, invoice_annotation, contract, client_contract, document, kb_article, service_catalog, service_request_submission, service_request_definition, workflow_task, interaction, schedule_entry, time_entry, board, category, tag, status.
limitintegerOptional
Maximum number of results to return. Defaults to 30; capped at 100.
cursorstringOptional
Opaque pagination cursor copied from a prior response's nextCursor.
sortstringOptional
Result ordering. "relevance" (default) ranks by full-text score; "recent" orders by last update.
Response body
Success response 200 · schema SearchResponse
dataobjectRequired
resultsarray of SearchResultRowRequired
Matching records for this page, ordered by the requested sort.