Private preview of the new site. Not live.

search.global

Search one shop for customers (name, email, phone), properties (address), jobs (summary) and requests (title). Case-insensitive substring match; you see only what your role can read.

WhoAgents can call this
RESTGET /v1/search
MCP toolsearch_global
Writesno
AreaImports, custom fields, tags and search

When to use it

Search across customers, jobs, quotes, invoices and requests in one call, or look in one place when you know where it is.

What to tell the owner

Tell them what you found in plain words. Don't read back raw fields.

Input

FieldTypeRequired
shop_idstring (uuid)yes
qstringyes
limitintegerno

Example

GET https://doingwork.work/v1/search?shop_id=00000000-0000-4000-8000-000000000000&q=...

Output

FieldTypeAlways there
customersarrayyes
customers[].customer_idstring (uuid)yes
customers[].namestringyes
customers[].email['string', 'null']yes
customers[].phone['string', 'null']yes
propertiesarrayyes
properties[].property_idstring (uuid)yes
properties[].customer_idstring (uuid)yes
properties[].label['string', 'null']yes
properties[].address_line1stringyes
jobsarrayyes
jobs[].job_idstring (uuid)yes
jobs[].customer_id['string', 'null', ' ', '(', 'u', 'u', 'i', 'd', ')']yes
jobs[].statusstringyes
jobs[].summary['string', 'null']yes
requestsarrayyes
requests[].request_idstring (uuid)yes
requests[].customer_id['string', 'null', ' ', '(', 'u', 'u', 'i', 'd', ')']yes
requests[].titlestringyes
{
  "customers": [
    {
      "customer_id": "00000000-0000-4000-8000-000000000000",
      "name": "Ruiz Plumbing",
      "email": "owner@example.com",
      "phone": "..."
    }
  ],
  "properties": [
    {
      "property_id": "00000000-0000-4000-8000-000000000000",
      "customer_id": "00000000-0000-4000-8000-000000000000",
      "label": "...",
      "address_line1": "..."
    }
  ],
  "jobs": [
    {
      "job_id": "00000000-0000-4000-8000-000000000000",
      "customer_id": "00000000-0000-4000-8000-000000000000",
      "status": "...",
      "summary": "..."
    }
  ],
  "requests": [
    {
      "request_id": "00000000-0000-4000-8000-000000000000",
      "customer_id": "00000000-0000-4000-8000-000000000000",
      "title": "..."
    }
  ]
}

Errors

CodeStatusWhat to do
invalid_input, invalid_token, rate_limitedCan happen on any call. See errors.