Instant answers
Compute an instant answer — calculator, unit and currency conversion, world time, dictionary definitions, hashes, QR codes, and two dozen more families — entirely on Neuji: zero upstream calls, and the query never reaches a third party.
GET /v1/answers?q=100+usd+to+eur
Authorization: Bearer neuji_live_…Included with membership by default: calls appear in /v1/usage under
requests with 0 billable_units and draw no credits. (The platform can switch answers to
metered billing — 1 unit per call, like search — in which case the X-Credits-* headers and
insufficient_credits semantics apply.)
Parameters
| Param | Required | Meaning |
|---|---|---|
q |
yes | The question. Up to 512 characters. |
hl |
no | The parsing language: en, ar, de, es, fr, ja. Unknown values fall back to en. 12 fuß in meter parses under hl=de; number formats follow the language (3,5 km is three and a half in German). |
gl |
no | Region bias for region-dependent answers. |
The response
answered: false (with HTTP 200) is the common, successful outcome — most queries are web
searches, not answerable questions. When answered is true, answer carries:
kind— the family (calculator,currency,time_zone,definitions, …). New kinds may be added without a version bump: treat unknown kinds as a generic card and parse defensively.primary,expression,secondary,items[]— the card content, invariant formatting.- Stable identifiers —
primary_label,items[].label,disclosure.key(andprimaryitself whenprimary_is_keyis true) are stable machine-readableanswers.*identifiers. They are never renamed; new ones may appear. Map them to your own display strings, or show the values as-is. copy_text— the machine-format payload (bare number, ISO instant, digest); null ⇒ useprimary.svg— inline SVG for visual kinds (QR, color swatch). Sandbox it as an untrusted image.is_error— an error card (division by zero): the engine answered, with a diagnosis inprimary_label(answers.err.*).timezone— the full world-clock model forkind: time_zone: per-place rows (zone id, local time/date, UTC offset, DST flag, day/night, day shift, next DST change) plus a 24-charactermeeting_stripper row (nnight,dday,bbusiness hours, indexed by the first row's local hours — overlay rows to find meeting overlap).definitions— the dictionary model forkind: definitions: headword, IPA, senses grouped by part of speech, andsource_url+license(CC BY-SA 4.0 — display or link the source when you show this content). Definitions come from each language's own Wiktionary edition; Arabic entries currently carry English glosses (gloss_lang: "en").
Worth knowing:
client_infoanswers (what is my ip) describe the API caller — your server's egress, not your end user's.- Currency uses the ECB daily reference rates;
disclosurecarries the rate date, and a stale snapshot is labeled (answers.currency.stale). Informational only. - Timers are a web-client widget and never answer over the API.
Examples
GET /v1/answers?q=define+serendipity →
{
"query": "define serendipity",
"answered": true,
"answer": {
"kind": "definitions",
"primary": "serendipity",
"definitions": {
"headword": "serendipity",
"ipa": "/ˌsɛɹ.ənˈdɪp.ɪ.ti/",
"gloss_lang": "en",
"source_url": "https://en.wiktionary.org/wiki/serendipity",
"license": "CC BY-SA 4.0",
"pos": [ { "pos": "noun", "senses": [ { "gloss": "An unsought, unexpected, fortunate discovery.", "example": null } ] } ]
}
}
}
GET /v1/answers?q=best+pizza+in+naples → { "query": "…", "answered": false, "answer": null }
Standard rate limits apply. The full schema lives in the OpenAPI document.