# Arlez developer documentation

Plain-text mirror of https://arlez.app/developers, for anything that reads
documents rather than pages: agents, scripts, and terminals. The pages are
rendered in the browser, so fetching them returns an application shell and no
content. These files carry the same instructions.

- Native Apple integration: https://arlez.app/developers/swift.md
- Websites: https://arlez.app/developers/web.md
- Custom clients: https://arlez.app/developers/api.md
- Founder automation and agents: https://arlez.app/developers/agents.md
- Agent instructions: https://arlez.app/llms.txt
- Public client contract: https://arlez.app/openapi.json
- Founder automation contract: https://arlez.app/openapi-automation.json

Base URL for every API call: https://api.arlez.app

## Choosing an integration

| You are building | Use |
| --- | --- |
| An iOS or macOS app | ArlezKit for Swift |
| A website | The web SDK, as a custom element or over your own button |
| A client Arlez does not ship | The public client API |
| An agent or automation over your own inbox | The founder automation API and an Arlez API key |

## Three rules the whole platform follows

1. **Public product IDs are identifiers, not credentials.** A product ID routes
   reports to a project. It grants no founder or workspace access, and it is
   safe to ship in an application or a web page.
2. **The server validates.** Categories, required fields, registered origins,
   reporter capabilities, and deletion windows are all decided server-side. A
   client that skips a check is corrected, not trusted.
3. **Collection is deliberate.** No Arlez SDK sends an adoption or analytics
   request merely because it loaded.

An Arlez API key (`arlez_key_…`) is the opposite of a product ID: it is a
founder credential. It belongs in a server-side secret store or an agent
runtime, never in a mobile app, a web page, a prompt, or a repository.
