PublishDrive
Api

Update a book

Partially update book metadata and format-specific fields. Only include keys you are changing.

If the book status is not draft (for example published, in_review, withdrawn, or action_needed), a successful update sets status to draft. The 200 response body includes the updated book with attributes.status of draft.

Finish all edits (uploads, file attaches, metadata, chapters, and so on), then call POST /api/books/{bookPublicId}/publish again to resubmit for distribution. One publish at the end of the edit workflow is sufficient.

PATCH
/books/{bookPublicId}
apikey<token>

In: header

Path Parameters

bookPublicId*string
Formatuuid

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

curl -X PATCH "https://api.publishdrive.com/v2/distribution/books/e9e0d147-52cb-11f1-8d0d-aedf0546306a" \  -H "Content-Type: application/json" \  -d '{    "format": "ebook",    "title": "Updated Ebook Title"  }'

{
  "data": {
    "id": "e9e0d147-52cb-11f1-8d0d-aedf0546306a",
    "type": "book",
    "attributes": {
      "format": "ebook",
      "status": "draft",
      "title": "Updated Ebook Title",
      "externalId": null,
      "subtitle": null,
      "series": null,
      "language": [
        "EN"
      ],
      "isbn": null,
      "imprint": {
        "id": "e9e8d15e-52cb-11f1-8d0d-aedf0546306a",
        "name": "Demo Imprint"
      },
      "description": "A sample ebook.",
      "category": [
        "FIC002000"
      ],
      "keyword": [
        "sample"
      ],
      "copyright": "SELF",
      "saleTerritory": [
        "ALL"
      ],
      "publicationDate": "2027-06-15",
      "isFinalVersion": false,
      "contributor": [
        {
          "firstName": "Jane",
          "lastName": "Doe",
          "role": "Author"
        }
      ],
      "price": [
        {
          "currency": "USD",
          "price": 9.99
        }
      ],
      "audience": null,
      "ebookDetails": {
        "pageCount": 200,
        "kdpEnrolled": false,
        "publishedOnAmazon": false
      },
      "podDetails": null,
      "audioDetails": null,
      "files": [],
      "chapters": null
    }
  }
}

Empty
Empty
{
  "message": "Book not found"
}
{
  "title": "Unprocessable Content",
  "status": 422,
  "detail": "Validation failed",
  "instance": "/v2/distribution/books/e9e0d212-52cb-11f1-8d0d-aedf0546306a",
  "invalidParams": [
    {
      "name": "isbn",
      "reason": "This value is not a valid ISBN-13."
    }
  ]
}

On this page