The complete, always-current contract (request bodies, response shapes, every field) lives in the interactive OpenAPI docs served by the API itself:
- Interactive docs:
https://api.lanes.sh/docs - OpenAPI schema:
https://api.lanes.sh/openapi.json
This page is the map. The base URLs:
| Surface | URL |
|---|---|
| API (production) | https://api.lanes.sh |
| Frontend (claim, dashboard) | https://lanes.sh |
| API (local) | http://localhost:8000 |
Public endpoints
No signup. Safe to call from an agent or curl.
| Method | Path | Purpose |
|---|---|---|
POST | /v1/forms | Provision a form. Anonymous, or lfk_ key for born-claimed. |
POST | /v1/f/{form_id} | Submit to a form. |
OPTIONS | /v1/f/{form_id} | Per-form CORS preflight. |
Form management
Claimed forms only. Authorize with a workspace API key or a signed-in owner.
| Method | Path | Purpose |
|---|---|---|
GET | /v1/forms/{form_id} | Form config, counters, unverified recipients. |
PATCH | /v1/forms/{form_id} | Update name, origins, schema, submission_auth, recipients, workflow. |
POST | /v1/forms/{form_id}/recipients/resend-verification | Resend a recipient confirmation email. |
Claim and verification
| Method | Path | Purpose |
|---|---|---|
GET | /v1/claim/{token} | Redirects to the frontend claim page. |
GET | /v1/claim/{token}/preview | Public, non-consuming status of a claim link. |
POST | /v1/claim/{token} | Redeem the claim (signed in). |
GET | /v1/verify-email/{token} | Confirm a forwarding recipient. |
Dashboard
Authorized by your signed-in session, not by API keys.
| Method | Path | Purpose |
|---|---|---|
GET | /v1/me | Current user. |
GET | /v1/workspaces | Your workspaces. |
GET | /v1/workspaces/{id}/forms | Forms in a workspace. |
POST | /v1/workspaces/{id}/forms | Create a form (born claimed). |
GET | /v1/forms/{id}/submissions | Paginated submissions. ?format=csv exports. |
DELETE | /v1/forms/{id} | Soft-delete a form. |
POST GET DELETE | /v1/workspaces/{id}/api-keys | Manage API keys (owner only). |
Health and pages
| Method | Path | Purpose |
|---|---|---|
GET | /health | Liveness check. |
GET | /thanks/{form_id} | Hosted thank-you page for browser posts. |
Every error uses the shared envelope documented in Errors.