Skip to main content
The search endpoint returns results across multiple resource types in a single request. Results are automatically filtered to the data the authenticated user is permitted to see — a contractor only sees their own jobs, an agent only sees their branch’s data.
GET /api/search Searches across branches, users, jobs, and settings pages simultaneously. Required permission: api.search.global.manage
Method: GET only
q
string
required
Search term (minimum 2 characters). Matched against names, references, addresses, email addresses, and descriptions.
types
string
Comma-separated list of resource types to search: jobs, users, branches, settings. Defaults to all types accessible by the caller.
limit
integer
default:"10"
Maximum results per resource type (max 50).
curl -X GET "https://propops.yourcompany.com/api/search?q=boiler+repair" \
  -H "Authorization: Bearer <token>"
{
  "success": true,
  "data": {
    "jobs": [
      {
        "ID": 1042,
        "uuid": "550e8400-e29b-41d4-a716-446655440042",
        "job_ref": "JOB-1042",
        "job_title": "Boiler repair — 14 Elm Close",
        "status_name": "In Progress",
        "full_address": "14 Elm Close, Leeds, LS1 2AB",
        "highlight": "...annual <mark>boiler repair</mark> required..."
      }
    ],
    "users": [
      {
        "id": 32,
        "name": "John Boiler",
        "email": "john.boiler@example.com",
        "account_type": "contractor"
      }
    ],
    "branches": [],
    "settings": []
  },
  "query": "boiler repair",
  "elapsed_ms": 18
}

Code examples

curl -X GET "https://propops.yourcompany.com/api/search?q=oak+road&types=jobs,users&limit=5" \
  -H "Authorization: Bearer <token>"

GET /api/system/search An alternative search endpoint that returns only settings pages and configuration items. Useful for building admin navigation autocomplete. Required permission: api.search.global.manage
q
string
required
Search term.
curl -X GET "https://propops.yourcompany.com/api/system/search?q=smtp" \
  -H "Authorization: Bearer <token>"
{
  "success": true,
  "data": [
    {
      "page": "Email Settings",
      "path": "/admin/settings/email",
      "description": "Configure SMTP server, sender address, and email templates"
    }
  ]
}