Search
DayZero provides two search modes: structured search with filters and natural language search powered by AI.
Full-Text Search
Search across all entity types in a single query:
curl "https://api.ondayzero.com/api/v1/search?search_term=acme&limit=20" \
-H "Authorization: Bearer dz_your_token_here" \
-H "x-business-id: YOUR_BUSINESS_ID"Parameters
| Parameter | Type | Description |
|---|---|---|
search_term |
string | Search query, 1–200 characters (required) |
entity_type |
string | Limit to a single type (see below); omit to search everything |
date_from / date_to |
date | Restrict to records dated in this range |
limit |
integer | Max results per entity type (1–1000) |
cursor, direction, sort_by, descending, include_total_count |
Standard pagination parameters |
Response
Results are grouped by type:
{
"success": true,
"data": {
"results": {
"customers": [ { "id": "…", "name": "Acme Corp", "email": "billing@acme.com" } ],
"invoices": [ { "id": "…", "number": "INV-1042", "customer_name": "Acme Corp", "total": 125000 } ],
"transactions": [],
"metadata": { "search_term": "acme", "total_count": 2 }
}
}
}Types with no matches come back as empty arrays.
Searchable Entity Types
entity_type |
What's searched |
|---|---|
transactions |
Bank transactions (description, counterparty) |
invoices |
Invoice numbers and descriptions |
bills |
Bill numbers and descriptions |
journal_entries |
Entry descriptions |
customers |
Customer names and emails |
vendors |
Vendor names and emails |
ledgers |
Account names and descriptions |
products |
Product names and types |
variants |
Variant names, SKUs and manufacturer SKUs |
projects / contracts |
Project names and codes; contract numbers |
emails |
Inbox email subjects, senders and descriptions |
inventory_orders |
Purchase order names, PO numbers and descriptions |
shipments |
Shipment tracking numbers and descriptions |
An unknown entity_type returns a 200 with no result groups and metadata.error set to Invalid entity_type: … — check for it rather than assuming an empty result means no matches.
Natural Language Search
Use AI to interpret a question and search across the appropriate entities:
curl -X POST "https://api.ondayzero.com/api/v1/search/natural" \
-H "Authorization: Bearer dz_your_token_here" \
-H "x-business-id: YOUR_BUSINESS_ID" \
-H "Content-Type: application/json" \
-d '{"query": "What did we spend on software last month?"}'The AI interprets the intent, selects the right entity types and date range, and returns a flat, ranked list:
{
"success": true,
"data": {
"interpreted_query": "transactions categorized as software expenses between 2026-08-01 and 2026-08-31",
"results": [
{ "entity_type": "transaction", "entity_id": "…", "title": "GitHub", "subtitle": "-$210.00 · 2026-08-04", "score": 0.94 }
],
"total": 1
}
}Fetch full records with the entity's own endpoint (e.g. GET /api/v1/transactions/{entity_id}).
Searching the documentation
To find the right endpoint rather than your own data, use the docs search at https://www.ondayzero.com/docs/search?q=void+invoice — see Using DayZero from an AI Agent.