Livros

O livro é o contêiner de nível mais alto — metadados (título, premissa, gênero, cor da capa), estado de geração e uma lista ordenada de capítulos. Todos os endpoints se limitam ao usuário do token que faz a chamada; você só vê os seus próprios livros.

Listar livros

GET/v1/booksescopo: books:read

Retorna todos os livros não excluídos da conta, dos atualizados mais recentemente para os mais antigos.

curl -H "authorization: Bearer $ANTHRA_TOKEN" \
  https://anthra.com/api/v1/books

Resposta

{
  "data": [
    {
      "id": "8f1c…",
      "title": "Walking the Salt Roads",
      "subtitle": "A year on foot through southern Europe",
      "premise": "…",
      "status": "published",
      "visibility": "unlisted",
      "slug": "walking-the-salt-roads",
      "readerUrl": "https://anthra.com/read/walking-the-salt-roads",
      "createdAt": "2026-05-12T18:24:11.000Z",
      "updatedAt": "2026-05-30T09:01:02.000Z"
    }
  ]
}

Criar um livro

POST/v1/booksescopo: books:write

Cria um rascunho de livro a partir de uma premissa. O gerador de esboço não roda automaticamente — chame /outline em seguida.

Corpo

CampoTipoObservações
premisestring (10–4000)Obrigatório. O prompt inicial do livro.
titlestringOpcional. O padrão é “Untitled Book” até o gerador de esboço substituí-lo.
genrestringDica para o gerador de esboço.
audiencestringDica para o gerador de esboço.
authorstringAssinatura pública do autor. O padrão é o nome da sua conta.
modelTierhaiku | sonnet | opusModelo de escrita para a prosa dos capítulos. sonnet é o padrão.

Obter um livro

GET/v1/books/{bookId}escopo: books:read

Retorna o livro e a lista completa de capítulos (com o conteúdo em prosa).

Atualizar um livro

PATCH/v1/books/{bookId}escopo: books:write

Altere qualquer um destes campos: title, subtitle, author, description, coverColor (hex), audience, toneStyle, genre, modelTier.

Excluir um livro

DELETE/v1/books/{bookId}escopo: books:write

Faz a exclusão lógica do livro — ele pode ser recuperado por 30 dias; depois disso, o worker cron noturno o exclui definitivamente.

Extrair texto de um arquivo de manuscrito

POST/v1/books/import/extractescopo: books:write

Envie um arquivo .docx, .epub, .pdf, .md ou .txt (máx. 4 MB) como multipart/form-data com um campo file (e um filename opcional). Retorna o manuscrito em Markdown com um # heading por capítulo detectado, além de title, subtitle e author detectados, wordCount, chapterCount e os warnings do parser. Não grava nada e não custa nada — salve o texto como livro com a ferramenta import_book (POST /v1/tools/import_book). Um arquivo ilegível retorna 400; um grande demais, 413. Um arquivo sem texto legível (um PDF digitalizado, por exemplo) retorna 400 unreadable, e um texto longo demais para uma resposta retorna 413 payload_too_large; arquivos .epub e .docx compactados podem passar do limite ao serem abertos. A resposta também traz looksLikeBrief e looksLikeBible. Passe asBible: true para import_book para começar um livro com a bíblia da história na Bíblia do escritor, e não como capítulos.

curl -X POST "$ANTHRA_BASE/books/import/extract"   -H "authorization: Bearer $ANTHRA_TOKEN"   -F "file=@manuscript.docx"

Pesquisar a biblioteca pública

GET/v1/discoverescopo: none (public)

Livros públicos e publicados de todos os autores: a versão em JSON de /discover. Não precisa de token; as requisições têm limite de taxa por IP. Parâmetros de consulta: q, author, genre, lang, length (short | medium | long), audio, illustrated, sort (newest | title | most-read) e page. meta traz total, page, pageSize, totalPages e a lista de gêneros.

curl "https://anthra.com/api/v1/discover?genre=fantasy&sort=most-read"

Ler um livro publicado

GET/v1/discover/{slug}escopo: none (public)

Um livro público e publicado, com seus capítulos: o que /read/{slug} mostra a qualquer leitor. Livros não publicados e privados retornam 404.