You are reading the docs for Lettrove 1.0.1. Every 1.0.x release (1.0.0, 1.0.1) works as these pages describe; what each one fixed is in the changelog.
API overview
| Reference | For |
|---|---|
@lettrove/embed | Opening the editor in a page: createEditor, every option, method and event |
@lettrove/react | The <LettroveEditor /> React component |
@lettrove/vue | The same component for Vue 3 |
@lettrove/node | Your server: tokens, designs, exports, rendering, erasure, webhook verification |
| REST API | What @lettrove/node calls underneath, for a server that is not on Node. Also an OpenAPI 3.1 document |
| Webhook events | What Lettrove sends your server |
| Error codes | Every code, what it means, what to do |
| The design document | What you may rely on in a stored design |
| Glossary | One word for each idea |
The four packages on npm, MIT licensed and released together at one version number: @lettrove/embed @lettrove/react @lettrove/vue @lettrove/node
Conventions
- Base address:
https://api.lettrove.com. Server routes are under/embed/v1/. - Authentication: your secret key, as
Authorization: Bearer lt_sk_test_…orlt_sk_live_…. Only from your server. - JSON in and out, UTF-8. Request bodies are strict: an unknown field is refused, naming it.
- Ids are strings. Design ids are 26-character ids such as
01J9ZQ3W8D2K7M5T1V4XG6HB0R; your own ids for people are whatever you chose, up to 256 characters. - Times are ISO 8601 in UTC:
2026-10-07T16:03:10.000Z. - Lists come newest first, a page at a time:
{ "items…": […], "nextCursor": "…" }; passcursorfor the next page;nextCursorisnullon the last. - Errors:
{ "error": "…", "code": "…", "requestId": "…" }with an HTTP status; quoterequestIdto support. - Rate limits per key, per minute; over one,
429withRetry-Afterin seconds. See Limits. - Versioning: within 1.x, fields are only ever added. Ignore fields you do not know. Anything added after 1.0 says Added in 1.y.