Search
Full text search runs across every resource type the caller can see. The same body works at the global scope and at the scoped endpoints mounted on each parent resource.
Free Text Search
POST /search
{
"q": "meeting room"
}GET /search?q=meeting+room works the same way for clients that prefer query strings.
Response:
{
"data": [
{
"id": "c3d4e5f6-a7b8-9012-cdef-345678901234",
"object_type": "public.bookable",
"name": "Meeting Room 1",
"description": "Glass walled room on the second floor, seats six.",
"owner_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"location_id": "b2c3d4e5-f6a7-8901-bcde-f23456789012",
"link": "/bookable/c3d4e5f6-a7b8-9012-cdef-345678901234",
"access": 7,
"is_direct_grant": false,
"user_claim_id": "e992bfc1-0336-42c5-bd0a-4f4804a9fd24",
"rank": 0.812
}
],
"count": 1
}Each hit carries enough context to render a result row without a follow-up call. access is the numeric access level the caller holds on the result. link is the canonical path to the resource. rank is a relevance score from the full text engine.
Filtering by Type
Pass object_types to limit results to specific resource types.
{
"q": "marketing",
"object_types": ["public.bookable", "claimius.location"]
}exclude_object_types does the inverse. The accepted types are the schema-qualified strings used throughout the API. See Bookable for the type names.
Filtering by Scope
org_ids, loc_ids, and usr_ids narrow results to a set of organizations, locations, or users. Each has an exclude_ counterpart.
{
"q": "studio",
"loc_ids": ["b2c3d4e5-f6a7-8901-bcde-f23456789012"]
}Additional Filters
| Field | Effect |
|---|---|
ids | Return only results whose id is in the list. |
exclude_ids | Exclude specific ids from results. |
exclude_query | Exclude results matching this additional text query. |
claim_id | Scope results to resources reachable through a specific claim. |
limit | Cap the number of results returned. |
Scoped Search
The same body works at scoped endpoints: POST /organization/{id}/search, POST /location/{id}/search, POST /me/search, POST /user/{id}/search, POST /claim/{id}/search. The scope id replaces the corresponding filter automatically, so a search at /location/{id}/search constrains to that location and below without setting loc_ids.
Image Search
GET /search/image/{id} returns the rendered image for a result that carries a logo or photo. Use it as the src of an <img> tag in the result list.
API
See the Search tag for the full request body and response shape.