developer docs

Guides

Downloading files

Which files a chapter has, which ones a run packages by itself, and how to ask for the rest.

A chapter has a file for each language it is translated into, in each format its project reaches. Some are packaged by the run itself; the rest are packaged when you ask for them. Exports are free.

Formats

formatThe fileProjects that have it
zipThe finished pages, lettered, one JPEG each. The one a run packages also holds a ComicInfo.xmlComics that go through every step
cleanThe pages with their original text erased, no letteringComics that reach page cleaning
txtThe translated script, as plain textEvery project
docxThe translated script, as a Word documentEvery project
sourceThe script as it was read, untranslatedEvery project

A project's steps are set in the dashboard: Text only, Text and translation, Text, translation and cleaned pages, or Full translation. A novel has the three scripts. The CBZ and layered PSD files the dashboard offers are not handed out over the API.

A script has one paragraph for each line of text, in reading order. A line that is not translated yet appears as it was read.

Packaged by the run

When a chapter's run ends, it packages one file for each language, and announces it with export.ready:

  • zip for a comic that goes through every step;
  • txt for a novel, and for a comic project that stops at translation or at cleaning;
  • nothing for a project that only reads its pages: ask for source.

Download it with the language and format:

Shell
curl -s -H "$AUTH" -OJ \
  "https://tinypica.com/api/v1/chapters/$CHAPTER/export/download?language=en&format=zip"

-OJ saves it under the name the answer gives it, such as chapter-1-en.zip.

Asking for any other file

Any other file is packaged by POST /chapters/:id/export/prepare, then downloaded the same way. A page's art takes time to render, so a prepare call works for a few seconds and says how far it got; call it again until it answers done: true. Pages already rendered are kept between calls, so none of the work is lost. A script is ready in one call.

Shell
# Asked for until it is done. Each call builds a few more pages. An error
# answer has no "done", and ends the loop too.
while :; do
  answer=$(curl -s -H "$AUTH" -H "Content-Type: application/json" \
    -d '{"language":"en","format":"clean"}' \
    https://tinypica.com/api/v1/chapters/$CHAPTER/export/prepare)
  [ "$(jq .done <<< "$answer")" = false ] || break
done
echo "$answer"

curl -s -H "$AUTH" -OJ \
  "https://tinypica.com/api/v1/chapters/$CHAPTER/export/download?language=en&format=clean"
Not yet
{ "done": false, "rendered": 9, "total": 24 }
Done
{
  "done": true,
  "languageCode": "en",
  "format": "clean",
  "filename": "chapter-1-clean.zip",
  "byteSize": 45200,
  "pageCount": 24,
  "preparedAt": "2026-09-28T12:46:52.088Z"
}

A file you ask for is announced with export.ready too, so a webhook hears about every file, whichever way it was made.

Languages

language is one of the project's target languages, as its two-letter code: en, es, ja and so on. clean and source are the same in every language, since nothing in them is translated: ask with any of the project's.

After an edit

A file is the chapter as it was when it was packaged. Once a translation is edited in the dashboard, the file is out of date, and a download says so with a 409: This chapter changed since the export was prepared, prepare it again. Prepare it again, and download the new one.

When a file cannot be made

StatusWhy
400The format is not one of the five, or the project stops before the step it needs (This project stops before the clean step, which Clean ZIP needs). A novel has no art formats.
409On download: the file was never prepared, is out of date, or is gone. Prepare it.
413The file would be over 90 MB.
425Nothing is translated into that language yet: the run is still going.