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
| format | The file | Projects that have it |
|---|---|---|
zip | The finished pages, lettered, one JPEG each. The one a run packages also holds a ComicInfo.xml | Comics that go through every step |
clean | The pages with their original text erased, no lettering | Comics that reach page cleaning |
txt | The translated script, as plain text | Every project |
docx | The translated script, as a Word document | Every project |
source | The script as it was read, untranslated | Every 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:
zipfor a comic that goes through every step;txtfor 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:
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.
# 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"{ "done": false, "rendered": 9, "total": 24 }{
"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
| Status | Why |
|---|---|
400 | The 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. |
409 | On download: the file was never prepared, is out of date, or is gone. Prepare it. |
413 | The file would be over 90 MB. |
425 | Nothing is translated into that language yet: the run is still going. |