# Lithe Developer Resources

Lithe exposes a small public API for discovery and safe storefront configuration.

## Documentation

- Interactive OpenAPI docs: https://ni.lithe.team/docs
- OpenAPI JSON: https://ni.lithe.team/openapi.json
- API index: https://ni.lithe.team/api
- Stable version 1 index: https://ni.lithe.team/api/v1
- Machine-readable site guidance: https://ni.lithe.team/llms.txt
- Agent manifest: https://ni.lithe.team/agent-manifest.json
- Read-only CLI usage: https://ni.lithe.team/cli.md

## Public endpoints

| Method | Endpoint | Purpose | Authentication |
|---|---|---|---|
| GET | `/api/v1/health` | Database-backed API health check | None |
| GET | `/api/v1/public-config` | Public support and storefront configuration | None |

The legacy `GET /api/health` and `GET /api/public-config` routes remain available for the current storefront. New integrations should use `/api/v1`. Public order and contact submission routes are protected browser workflows and should not be automated without explicit user consent.

## Versioning

Version 1 is the stable public integration surface. The `/api/v1` prefix is the preferred version signal. Existing unversioned read routes are retained for backward compatibility; any future deprecation will be documented here and signaled with `Deprecation` and `Sunset` response headers before removal.

## Errors and rate limits

API failures return JSON with this shape:

```json
{
  "error": {
    "code": "NOT_FOUND",
    "message": "The requested API endpoint does not exist.",
    "resolution": "Check the URL and consult /openapi.json."
  },
  "detail": "The requested API endpoint does not exist."
}
```

Rate-limited requests include `RateLimit-Limit`, `RateLimit-Remaining`, and `RateLimit-Reset`. A `429` response also includes `Retry-After`.

## Related policies

- Authentication: https://ni.lithe.team/auth.md
- Webhooks: https://ni.lithe.team/webhooks.md
- MCP: https://ni.lithe.team/mcp.md
