POST /api/zenn/books
Price: 1 credit
Get Zenn Book
Get a Zenn technical book by slug or URL. Returns the cover, price in JPY, summary, topics, like count, the badges readers awarded it, the scrap threads linked to it as reader forums, the GitHub repository it is synced from, the author profile, and the full chapter list with each chapter's title, position, length and whether it is free to read. Use zenn/books/chapters to read a chapter body.
access-token string requiredtimeout integer — Max scrapping execution timeout (in seconds) (default: 300; min: 20; max: 1500)book string required — Book slug or book URL (examples: "nextjs-basic-principle", "https://zenn.dev/akfm/books/nextjs-basic-principle")@type string (default: "ZennBook")id integer requiredalias string requiredbook_title string nullableurl string nullableimage string nullableog_image string nullablesummary string nullablesummary_html string nullableprice integer nullableis_bestseller boolean (default: false)is_toc_enabled boolean (default: false)can_read_all_chapters boolean (default: false)requires_additional_settings boolean (default: false)toc_depth integer nullableletter_count integer nullablelike_count integer nullablepublished_at integer nullablebody_updated_at integer nullablesource_repo_updated_at integer nullabledraft_reveal_scope string nullablegithub_url string nullablegithub_commits_url string nullablegithub_dev_url string nullablegithub_repository object nullable@type string (default: "ZennGithubRepository")id integer requiredname string nullablefull_name string nullablebranch_name string nullableurl string nullableis_public boolean (default: false)is_link_shown boolean (default: false)topics array (default: [])@type string (default: "ZennTopic")id integer requiredalias string requiredname string nullableimage string nullableurl string nullabletagging_count integer nullablechapters array (default: [])@type string (default: "ZennChapterRef")id integer requiredalias string requiredchapter_title string nullableurl string nullableposition integer nullableis_free boolean (default: false)letter_count integer nullablefilename string nullablebody_updated_at integer nullablesource_repo_updated_at integer nullablebadges array (default: [])@type string (default: "ZennBadge")badge_type string requiredrank string nullablecreated_at integer nullablecross_references array (default: [])@type string (default: "ZennCrossReference")id integer requiredreference_type string nullablereference_type_name string nullablesource_id integer nullablesource_type string nullablesource_user_id integer nullabletarget_id integer nullabletarget_type string nullabletarget_user_id integer nullablecreated_at integer nullabletarget object nullable@type string (default: "ZennCrossReferenceTarget")id integer requiredalias string nullablepost_type string nullabletarget_title string nullableurl string nullableemoji string nullableimage string nullablelike_count integer nullablepublished_at integer nullableuser object nullable@type string (default: "ZennUserSummary")id integer requiredalias string requiredname string nullablebio string nullablebio_html string nullableimage string nullableurl string nullablegithub_url string nullabletwitter_url string nullablehatena_id string nullablewebsite_url string nullabletotal_liked_count integer nullableis_support_open boolean (default: false)analytics_id string nullableseller_name string nullableseller_contact string nullableawards array (default: [])@type string (default: "ZennAward")event_alias string requiredevent_title string nullableevent_type string nullableprize_name string nullableprize_rank string nullablearticle object nullable@type string (default: "ZennArticleRef")id integer requiredalias string requiredarticle_title string nullablearticle_type object nullable (see schema ZennArticleType)emoji string nullableurl string nullablepublished_at integer nullablebody_updated_at integer nullablesource_repo_updated_at integer nullablelike_count integer nullablecomment_count integer nullablebookmark_count integer nullableletter_count integer nullableis_pinned boolean (default: false)principal_type object nullable (see schema ZennPrincipalType)user object nullable (see schema ZennUserRef)publication object nullable (see schema ZennPublicationRef)422 — The request body did not validate Check the fields against this schema. A URN with the wrong prefix is the most common cause.408 — The request ran past its time limit Raise `timeout` in the request body, up to the maximum this endpoint documents. Lowering `count` or turning off the `with_*` flags also helps, because less work finishes sooner.412 — Book not found. Verify the book slug or URL. Retrying will not help: either the entity does not exist, or the input points at a different one.429 — Too many requests: a rate limit or a usage window is exhausted When the response carries an X-Retry-After header, wait that many seconds and retry: the same number is in the body as `detail.retry_after`, and the limit clears once that window passes. The message in the body names the limit that was hit.500 — Something broke on our side Retrying will not help. If it keeps happening, send us the X-Request-ID from the response headers.529 — Rate limit reached, or the endpoint is overloaded Wait at least 30 seconds, then retry.X-Error — Error message text (present only on error)X-Request-ID — Unique request identifierX-Execution-Time — Execution time in secondsX-Result-Count — How many records the body carries. 0 means an empty result, which is a normal answer and not by itself an error. A non-zero count can come back together with X-Error when the failure happened partway through — read this header and X-Error independently.X-Total-Available-Results — How many records exist for this query, when the endpoint can say. On a `dry_run` request this is the answer and the body is empty. It saturates: the endpoint's documented maximum means 'at least that many', any smaller number is exact.X-Warning — Present when the request body carried keys this endpoint does not document. They were ignored, so any filter you meant to apply through them did not apply. Check the spelling against this schema and retry.X-Retry-After — Seconds to wait before retrying. Present only on 429.