Collection files (our export, CLZ Comics, League of Comic Geeks, any sheet) matched to the catalog and added in the background: send one, follow it, see what became of each row, and undo it.
/collection/importsSigned inYour last 30 imports sent to the API, newest first, each with where it is and its counts.
/collection/importsSigned inSend a collection file (our own export, CLZ Comics, League of Comic Geeks, or any sheet with a series or title column) as CSV text or as rows, up to 10,000 rows. It’s matched to the catalog and its copies added in the background, the way the import screen does it: poll GET /collection/imports/{id} until it’s complete, then GET /collection/imports/{id}/rows for what became of each row. Copies are keyed by what each row says, so sending the same file again, or a newer export of the same collection, adds only what’s new. Rows more than one series could match are held back unless needsReview is import; books the catalog doesn’t have yet are left out. Undo the whole import with POST /collection/imports/{id}/undo. Counts against the daily bulk quota.
/collection/imports/{id}Signed inPoll it after POST /collection/imports: queued, then matching (progress counts rows), then importing (progress counts the matched rows written), then complete, or failed with an error. The counts grow as it goes. Once it has added copies, undo says where to take them back.
/collection/imports/{id}/rowsSigned inAn import’s rows by number (1 is the first row after the header), each with its outcome, the issue it matched and how many copies it added. filter[outcome]=needs_review lists the rows held back, with the issues each could be: add the right one with POST /collection/items.
/collection/imports/{id}/undoSigned inRemoves the copies an import created that haven’t been edited since, with their photos, on every plan: one from the import screen, or one sent to POST /collection/imports (the job’s id is the import’s). Copies you added photos to stay unless includePhotographed is true. The body is optional. A very large import may answer done: false: call again to continue.