# The Search â€” API surface

> The REST surface only. GET /v1/answer?q={anything}&lang={xx}. Keyless, open CORS, JSON. An agent on a lookup task should not pay for the rest of the site.

## Endpoints

- [OpenAPI](https://thesearch.aplusz.app/openapi.json): the spec; every summary is the question the call answers
- [Worked call](https://thesearch.aplusz.app/v1/answer?q=photosynthesis&lang=en): live
- [Autocomplete](https://thesearch.aplusz.app/v1/suggest?q=photo&lang=en): what the user could have meant
- [Languages](https://thesearch.aplusz.app/v1/languages): the 61 shells
- [Status](https://thesearch.aplusz.app/status.json): distinguishes down from does-not-exist

## Rules

- [Constraints](https://thesearch.aplusz.app/llms-full.txt#fields): `q` is required and is sent as the user typed it â€” do not translate it, do not clean the typo, the resolver handles both; `lang` is a 2-letter shell code, default en; `status` is ok | no_data | invalid_argument â€” never rephrase no_data as "that does not exist"
