Distribution API
PublishDrive public Distribution API — production and staging base URLs, publish and manage books programmatically across global stores and libraries.
Production base URL: https://api.publishdrive.com/v2/distribution. Staging (sandbox): https://api.sandbox.dev.publishdrive.com/v2/distribution. On each API operation page, use the server selector so generated examples and the playground use the environment you want. Send your API key in the apikey header on every request.
Endpoint reference is under API in the sidebar.
PublishDrive
Self-Publishing Platform for Global Book Distribution
Self-publishing made simple with tools for every step of your journey. Publish ebooks, print, and audiobooks, and reach readers worldwide through 50+ stores and 240,000+ libraries, including Amazon, Apple Books, Google Play, Kobo, and more — the widest distribution network in the industry.
This API is part of that platform: you integrate your systems with PublishDrive to create and update titles, move files through our upload pipeline, and control publication to the channels you enable for your account.
How publishing works with the API
Every book follows the same five-step pattern: authenticate, create the book record, upload and register files, then publish when you are ready.
Authenticate every call
Request an API key from PublishDrive support and send it on each request as the apikey header against the distribution base URL for the environment you use (production or staging).
Create the book record
Call Create Book with metadata (title, contributors, formats, pricing, territories, and other fields required for your edition). The response gives you a book identifier to use in later steps.
Request upload URLs and upload your files
For each manuscript, cover, audio asset, or other binary, call Request upload URLs. The response contains a presigned URL and a fileId for each file. Upload the bytes with HTTP PUT to the presigned URL before it expires.
Complete each upload and attach the file to the book
After PUT-ing the bytes to the presigned URL, call Attach file to confirm the transfer, trigger processing, and link the file to the book. This call is required for every file — the book will not reference the asset until it succeeds.
Publish or update distribution
When metadata and files are valid for your channels, call Publish book to send the title to stores and libraries. Use Update book for changes, Unpublish book to pull from distribution, and Get book (or Get book by external id) to read current state. List books helps you sync your catalog.
For request and response shapes, open the operation pages under API; they are generated from the same OpenAPI contract as the live service.
Audiobooks: file uploads and chapters
Use the same upload flow as for other formats: call Request upload URLs for each audio asset (role audio_content) and the cover (role audio_cover), PUT the bytes to the presigned URLs, then Attach file for every file. Save the fileId returned by each upload — you will need it when defining chapters.
Chapters are not created by the upload or attach calls alone. After each audio content file is registered for the book, run Update book and send a chapters array. Each item ties one content file to a chapter:
sequence— chapter order; this is the upsert key (if no chapter exists for that sequence it is created; if it exists it is updated).fileId— UUID of the attached audio content file for that chapter (required when defining or changing which file backs the chapter).title— required when creating a new chapter row.titleAscii— use when the title contains characters outside ASCII (see the schema on Update book).
Each audio content file should belong to exactly one chapter; assign every chapter a content file through this mechanism.
Print on demand (POD)
Print titles use the same upload pipeline with file roles pod_content (interior) and pod_cover (cover). See Example: Print on demand upload for a focused walkthrough after you create the book with format: "print" and a valid ISBN.
