llms.txt
This site publishes itself as plain text, following the llms.txt convention. If you are building an integration with an AI assistant beside you, point it at one of these files instead of asking it to crawl the site — it gets the same words, without the navigation, the CSS and the guesswork.
Nothing here needs an API key. All three files are public.
What is published
Section titled “What is published”| File | What is in it | Roughly |
|---|---|---|
/llms.txt |
A short index that names the other two files and links to them. | Under 1 KB |
/llms-full.txt |
Every guide on this site, in full, as one Markdown document. | ~130 KB |
/llms-small.txt |
The same pages with the blank lines collapsed — same words, fewer tokens. | ~115 KB |
Two things to know about the scope:
- English only. The Thai pages under
/th/are not included, so an assistant reading these files will not see the same page twice in two languages. - Guides only. The generated API Reference section is not part of these
files, because it already has a machine-readable original: the OpenAPI document
at
https://api.scanfood.co/ext/v1/openapi.json. Give your assistant that for endpoint shapes, andllms-full.txtfor everything else.
llms.txt
Section titled “llms.txt”https://api.scanfood.co/llms.txt is the entry point. It is deliberately tiny —
a title, one line about what this API is, and links to the two full documents:
# ScanFood API
> Read-only HTTP API for transactions, shops and members recorded by ScanFood POS.
## Documentation Sets
- [Abridged documentation](https://api.scanfood.co/llms-small.txt): a compact version …- [Complete documentation](https://api.scanfood.co/llms-full.txt): the full documentation …Tools that support the convention read this file first and follow the link they need. If you are wiring something up by hand, skip it and fetch one of the two below directly.
llms-full.txt and llms-small.txt
Section titled “llms-full.txt and llms-small.txt”Both contain the same set of pages, in the same order, starting with a one-line header that tells the model what it is reading.
llms-full.txtkeeps the original formatting: headings, tables, lists and every code sample, with the paragraph breaks intact. Use it when the assistant has room and you want the text to read naturally.llms-small.txtis the same content with the whitespace squeezed out. Use it when you are pasting into a context window you are trying not to fill — tables and code fences survive, the prose just runs together.
Both are rebuilt every time this site is published, so they never drift from the pages you are reading.
How to use it
Section titled “How to use it”In a coding assistant or an AI-enabled editor. Add the URL as documentation context. Most tools accept a link and fetch it themselves:
https://api.scanfood.co/llms-full.txtIn a prompt. Fetch the file and paste it in, or hand your agent both sources at once:
# The whole documentation set as one filecurl -s https://api.scanfood.co/llms-full.txt -o scanfood-docs.md
# The compact variant, when context is tightcurl -s https://api.scanfood.co/llms-small.txt -o scanfood-docs-small.md
# The endpoint contract itself (public, no key needed)curl -s https://api.scanfood.co/ext/v1/openapi.json -o scanfood-openapi.jsonconst [docs, spec] = await Promise.all([ fetch('https://api.scanfood.co/llms-small.txt').then((r) => r.text()), fetch('https://api.scanfood.co/ext/v1/openapi.json').then((r) => r.json()),]);
const prompt = [ 'You are helping me integrate with the ScanFood API.', 'Documentation follows. Treat the OpenAPI document as authoritative', 'for endpoints, parameters and response fields.', '--- GUIDES ---', docs, '--- OPENAPI ---', JSON.stringify(spec),].join('\n');import json, requests
docs = requests.get("https://api.scanfood.co/llms-small.txt", timeout=30).textspec = requests.get("https://api.scanfood.co/ext/v1/openapi.json", timeout=30).json()
prompt = "\n".join([ "You are helping me integrate with the ScanFood API.", "Documentation follows. Treat the OpenAPI document as authoritative", "for endpoints, parameters and response fields.", "--- GUIDES ---", docs, "--- OPENAPI ---", json.dumps(spec),])For one page only. If the question is about a single topic, a whole documentation set is overkill — every page here has a Markdown twin of its own. See Copy page.