The HTTP endpoint
Answer searches over a loopback port so editors, scripts and launchers read the index the app uses.
The endpoint is off until you turn it on, and when it is on it binds to the loopback interface and nothing else. There is no token, because nothing outside the machine can reach it, and there is no write path: it answers searches and returns nothing else.
Turning it on
Set a port in the settings file, or pass --serve when you start the
daemon. The endpoint binds to 127.0.0.1 only; there is no configuration that makes it
listen elsewhere.
[serve]
port = 7433Making a request
One endpoint, one required parameter. The response is JSON with a ranked hits array.
Parameters
Anything the query syntax accepts can go in q. The rest are optional.
| Parameter | Type | Default | Meaning |
|---|---|---|---|
q | string | required | The query, URL encoded. |
limit | integer | 20 | Hits to return, 1 to 200. |
index | string | all | Name of a single index to search. |
snippet | boolean | true | false skips extraction and roughly halves the response time. |
Wiring an editor to it
- Start the daemon with the app. Enable Launch at login in settings, or run
quarry daemon --servefrom a service file. - Point the plugin at the port. Each plugin takes a base URL. Keep the default port unless something else already holds it.
- Check it answers. A request with no
qreturns400and a one-line reason, which is enough to confirm the wiring.
Errors
Failures come back as JSON with the same shape as a hit list, minus the hits. The status code carries the meaning; see Exit codes for the command line equivalents.
{ "error": "missing_query", "detail": "q is required" }Last updated Sep 12, 2026