Skip to main content
An AI coding agent integrates best when it reads the real documentation instead of guessing from memory. This page lists the files an agent should be given, how to hand it a key it cannot misuse, and a few prompts to copy that each name the pages the agent has to read first.

Files made for agents

Every address below is spelled in full: the root files are on api.listo.delivery, the documentation files are on docs.listo.delivery.
  • Root index: https://api.listo.delivery/llms.txt. The first file an agent looks for. It only points at the files below.
  • Agent instructions: https://api.listo.delivery/AGENTS.md. The short rules for an agent working on an integration, as markdown.
  • Documentation index: https://docs.listo.delivery/llms.txt. Every guide and concept page with a one-line description.
  • All guides in one file: https://docs.listo.delivery/llms-full.txt. One download with the full text of every guide, for an agent that cannot browse.
  • OpenAPI document: https://api.listo.delivery/docs/openapi.yaml. The complete reference for /v1/, in the format code generators and agents read best.
  • Any page as markdown: the page URL with .md added. For example https://docs.listo.delivery/en/guides/webhooks.md.
The generated reference pages have a markdown copy too, at the same address with .md added, for example https://docs.listo.delivery/api-reference/deliveries/create-a-delivery.md. For the whole reference in one document, give the agent the OpenAPI document.

Give an agent a read-only key

An agent that only has to read, list or debug should never hold a key that can create or cancel anything. In the partner dashboard, issue the key with Read-only key ticked. A read-only key can call GET and HEAD endpoints (balance, ledger, deliveries, request logs, events) and every other call, including resending an event or sending a test webhook, answers 403 read_only_key. A key is read-only or full access from the moment it is issued and never changes, so to give an agent more power you issue another key and revoke the first. Start with a test key in either case: it acts in test mode, where nothing real happens. Test mode explains what the simulated courier does, and Go live covers keys for production.
Keys are shown once. Put the key in an environment variable or a secret store the agent can read, never in the prompt, the repository or a chat.

Errors point at their fix

Every error response carries two fields an agent can use without guessing:
  • doc_url: the page that explains that exact error.code, what causes it and whether retrying can help. There is one page per code, all listed in the error pages index.
  • request_id: the same value as the X-Request-Id header on the response. Quote it when you ask a person for help. GET /v1/request_logs lists the calls your keys made with what was sent and what was answered, and takes a request_id filter.
Debugging your integration describes the request logs, the events and the webhook deliveries an agent can read on its own.

Connect an AI client over MCP

If your assistant is Claude, Cursor or Codex, you can connect it to Listo’s MCP server instead of having it write HTTP calls. Connect Claude, Cursor or Codex has the server address and the setup for each client. A read-only key works there too: the assistant can read, and every tool that creates, changes or cancels anything in your account is refused with read_only_key, because each tool runs the matching /v1/ endpoint. A tool that asks to confirm is refused at its first step, so the assistant is never shown a preview it could not confirm. Sending feedback to Listo (submit_feedback) still works.

Prompts to copy

Each prompt names the pages to read. Paste it as it is, or add your own details (your language, your framework, where the code lives). The agent should open the pages before it writes anything.

Integrate quote and create

Verify webhook signatures

Debug a failed call by its request id

Reconcile my balance

These prompts work in any agent that can fetch a URL or read a file. If yours cannot browse, download llms-full.txt and openapi.yaml once and put them in the project, then replace the URLs in the prompt with the file paths.