Douban Scraper API – 豆瓣 Movies, Books, Reviews & Comments
Pricing
from $2.00 / 1,000 subject / list rows
Douban Scraper API – 豆瓣 Movies, Books, Reviews & Comments
Douban scraper API, no login: Douban movie, TV, book & music search, ratings & details (IMDb id, star distribution), short comments (短评), full reviews (影评), cast, photos, Top 250 & hot charts, group topics. Arrays, filters, only-new delta, lean JSON for AI agents. $0.002/row, $0.01/detail.
Pricing
from $2.00 / 1,000 subject / list rows
Rating
0.0
(0)
Developer
AsiaData
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
1
Monthly active users
22 days ago
Last modified
Categories
Security
Limited permissionsShare
Scrape Douban (豆瓣) without login: Douban movie, TV, book and music search, ratings and full details (5-star distribution, cast, IMDb id, ISBN), short comments (短评), full reviews (影评/书评), cast & crew, photos, Douban Top 250 and hot charts, explore by tag, Douban groups (小组), group topics with replies and discussion search, plus a one-call research workflow (title → details + comments + reviews + free insights row). One Actor, array inputs, flat JSON rows, free error rows with a fix, and a lean mode for AI agents.
- No login, no cookies, no proxy needed – uses Douban's public mobile JSON endpoints; if Douban rate-limits an IP, the Actor slows down and switches to Apify Proxy by itself.
- Fast at volume (measured on Apify, 256 MB): full Top 250 in one request (~4.6 s), 150 short comments in ~2.6 s, 10 full subject details in ~3.6 s, 100 full details in ~24 s.
- 14 operations in one Actor, chosen automatically from your input (
operation: "auto"); v2 addssubject_researchandtopic_search. - Batch everything: many keywords, URLs, ids, charts or tags in one run.
- Agent controls:
fields,include,outputMode(compact / lean / full),minRating/maxRating/stars/dateFromfilters,maxItems,maxItemsPerInput,maxCostUsd, freedryRunandcapabilities,deltaKey+onlyNewmonitoring. - Trust fields on every row (v2):
isPartial,unavailableFields,collectionWarnings; the summary row lists per input how many rows were requested, returned and available on Douban. - Pay per result: $0.002 per list row or short comment, $0.01 per full subject detail, $0.006 per full review or group topic. Error, plan and summary rows are free.
Unofficial; not affiliated with or endorsed by Douban.
Quick start
{ "keywords": ["流浪地球", "三体"] }
returns Douban search rows (id, type, title, year, rating, rating count, one-line summary). Leave the input empty to get the real-time hottest movies chart.
| You give | Operation (auto) | You get |
|---|---|---|
keywords | search | movie/TV (default), book, music subject rows |
urls / ids of subjects | subject_details | full movie/TV/book/music page |
| review URLs | review_details | full review as Markdown |
| group URLs / ids | group_topics | topic list of the group |
| topic URLs | group_topic_details | topic text + images |
charts | charts | Top 250 / hot lists in rank order |
tags | explore | movies or TV by tag |
Douban movie & book search
{"operation":"search","keywords":["哈利波特"],"subjectType":"movie"} – subjectType: movie (movies and TV series, default), tv (TV only), book, music, all. English titles in the dictionary are translated automatically (The Wandering Earth → 流浪地球; queryUsed shows it). Up to 500 rows per keyword. If Douban asks for login on a search, the Actor falls back to Douban's public suggest endpoint; if that is empty you get a free LOGIN_REQUIRED row whose fix says to pass subject ids/URLs, or use charts/explore.
Douban ratings & details
{"operation":"subject_details","urls":["https://movie.douban.com/subject/26266893/","https://book.douban.com/subject/1084336/"]}
Movies/TV: title, original title, aka, year, Douban rating, rating count, rating distribution (1–5 stars, %), wish/watched counts, genres, countries, languages, directors, writers, actors, durations, release dates, episodes, intro, IMDb id, honors, comment and review counts, trailers. Books: authors, translators, publisher, pages, price, ISBN, binding, series, author intro, catalog. Music: singers, tracks, label, medium, barcode. Ids alone work too – movie/TV/book/music is detected without extra requests. Each detail is 3 small requests sent together (data + rating distribution + info table); with fields the unneeded ones are skipped.
Add include: ["details"] to search, charts or explore to get these full rows instead of list rows. Tip: {"charts":["movie_top250"],"maxItemsPerInput":250,"include":["details"],"fields":["title","rating","imdbId","ratingDistribution"]} maps the Top 250 to IMDb ids and star distributions with 2 tiny requests per film.
Douban research in one call (subject_research, v2)
{"operation":"subject_research","keywords":["流浪地球2"],"maxCommentsPerItem":50,"maxReviewsPerItem":10,"matchTerms":["特效"]} – finds the title, then returns 1 full subject detail row, the hot short comments, the reviews, and one free insights row per subject. Controls: maxSubjects (top hits per keyword, 1–10), maxCommentsPerItem (0–150), maxReviewsPerItem (0–40), include: ["fullText"] for review bodies (+ "replies" to embed review replies), minRatingCount, matchTerms, maxCostUsd. Ids/URLs work too ("ids":["1292052"]).
The insights row is computed from the rows returned in that run, with no LLM: author star mix, a heuristic sentiment split (author stars first, else a small Chinese/English word list), top Chinese 2–4 character terms, top IP provinces, per-term counts for matchTerms, and the most-voted positive and negative opinion. It also carries Douban's official rating and star distribution, so you can compare the sample with all ratings. matchTerms filters after fetching and before billing: rows that do not mention a term are not billed, but the fetch work is the same.
Measured on Apify (build 2.0.1, 256 MB): 1 detail + 20 comments + 5 reviews + insights in 5.9 s wall time (8 Douban requests), cost $0.06 (1 × $0.01 + 25 × $0.002).
Douban short comments (短评)
{"operation":"comments","ids":["26266893"],"maxItemsPerInput":50,"maxRating":2} – star rating (1–5), text, useful votes, time, province, user name + id. Filters minRating, maxRating, stars, dateFrom, textContains run before billing. Douban shows guests the ~150 hottest comments per subject.
Douban reviews (影评 / 书评)
{"operation":"reviews","ids":["26266893"],"include":["fullText"],"maxItemsPerInput":10} – title, abstract, stars, useful/useless votes, replies, reshares, time, user. With include: ["fullText"] each row carries the full review body as Markdown (+ images, read count, spoiler flag). Single reviews: {"operation":"review_details","urls":["https://movie.douban.com/review/9943996/"]}. Douban shows guests ~40 reviews per subject.
Douban cast & photos
{"operation":"celebrities","ids":["26266893"]} – directors and actors with character, roles, Latin name, avatar, celebrity id.
{"operation":"photos","ids":["26266893"],"maxItemsPerInput":20} – stills and posters with image URL, size, caption, likes.
Douban Top 250 & charts
{"operation":"charts","charts":["movie_top250"],"maxItemsPerInput":250}
Chart ids: movie_top250, movie_showing (now showing), movie_soon, movie_real_time_hotest, movie_weekly_best, movie_hot_gaia, movie_latest, tv_real_time_hotest, tv_hot, tv_domestic, tv_american, tv_korean, tv_japanese, tv_animation, tv_variety_show, show_domestic, tv_chinese_best_weekly, tv_global_best_weekly, book_top250, book_fiction, book_nonfiction, book_bestseller, book_hot, book_latest, music_single, music_chinese, music_hot, movie_scifi, movie_comedy, movie_love. Aliases like top250, now_showing, kdrama work, and so does any subject_collection id. With deltaKey every row gets isNew, previousRank and rankChange.
Explore Douban by tag
{"operation":"explore","tags":["科幻"],"subjectType":"movie","sortBy":"rating","minRating":8} – movies or TV (subjectType: "tv") by Douban tag (科幻, 喜剧, 美国, 韩剧, 豆瓣高分…; combine as "科幻,美国"), sorted by recommend, hot, time or rating.
Douban groups (小组)
- Find groups:
{"operation":"group_search","keywords":["租房"]} - Topic list:
{"operation":"group_topics","ids":["beijingzufang"],"maxItemsPerInput":50,"sortBy":"latest"}(default order = latest activity; alsohot,elite) - Topic text:
{"operation":"group_topic_details","urls":["https://www.douban.com/group/topic/502396963/"]}– body as Markdown, images, reply count, likes, province. - Topic replies (v2): add
"include":["replies"](andmaxRepliesPerItem, default 20, max 200) – the topic row gets arepliesarray (text, votes, time, province, user, quoted reply-to) andrepliesTotal. Replies are embedded in the topic row and cost nothing extra (the topic stays $0.006). Same for full reviews:review_detailsorreviews+fullTextwithinclude: ["replies"]embeds the review's replies (nested replies flattened,replyToId/replyToNameset). - Discussion search across all groups (v2):
{"operation":"topic_search","keywords":["小米SU7"],"sortBy":"latest"}– topic id, full title, reply count, last activity time, group id + name ($0.002 per row, up to 500 per keyword). Douban's search is fuzzy: results can include topics that only match part of the keyword; usetextContainsto keep exact matches.
For AI agents
- One call, many inputs: every primary field is an array. Nothing is required.
- Cheap first look:
{"operation":"capabilities"}(free manifest: operations, chart ids, fields, prices, limits) and"dryRun": true(free cost/row estimate per input). - Token-lean output:
"outputMode":"lean"drops null/empty keys and the envelope (kept once in the summary row), cuts long texts to 300 chars, keeps the first 10 actors (askfields:["actors"]for all);"leanFormat":"table"also returns one TSV table.fieldskeeps only what you need and skips requests for fields you did not ask for. - Never silent: a failed input returns a free
type: "error"row witherrorCode(MISSING_INPUT,INVALID_INPUT,INVALID_URL,NOT_FOUND,NO_RESULTS,LOGIN_REQUIRED,UNSUPPORTED_OPERATION,BUDGET_REACHED,PARTIAL,BLOCKED,UPSTREAM_ERROR),messageandfix. The run still succeeds; the last row is alwaystype: "summary"(rows, billed events, cost, warnings, next steps) and the status message repeats the first fix. - Budget:
maxItems(default 100),maxItemsPerInput(default 20),maxCostUsd. - Trust & completeness (v2): every data row has
isPartial,unavailableFields(e.g.ratingDistributionwhen that request failed) andcollectionWarnings. Rule:0= Douban reported zero,null= Douban does not provide the value. A list that stops on a failed page returns the rows before it plus a freePARTIALrow. The summary hasrequestedRows,returnedRowsandperInput(requested, returned, availableOnDouban, stopReason). - Computed fields (v2, documented in capabilities): subject details get
positivePct/negativePct(share of 4–5 / 1–2 star ratings),wishToDoneRatio,commentsPer1kRatings,reviewsPer1kRatings; reviews gethelpfulRatio; topics getlikesPerReply. Null when an input is missing. - Titles instead of ids:
comments,reviews,subject_details,celebritiesandphotosacceptkeywords– each is resolved to its top search hit for free.
Copy-paste inputs:
{"operation":"search","keywords":["流浪地球","三体"]}{"operation":"search","keywords":["三体"],"subjectType":"book","outputMode":"lean"}{"operation":"subject_details","ids":["26266893","1084336"],"fields":["title","rating","ratingCount","ratingDistribution","imdbId","isbn"]}{"operation":"comments","ids":["26266893"],"maxItemsPerInput":100,"stars":["1","2"],"outputMode":"lean"}{"operation":"reviews","keywords":["流浪地球"],"include":["fullText"],"maxItemsPerInput":5}{"operation":"review_details","urls":["https://movie.douban.com/review/9943996/"]}{"operation":"celebrities","ids":["26266893"]}{"operation":"photos","ids":["26266893"],"maxItemsPerInput":20}{"operation":"charts","charts":["movie_top250","book_top250"],"maxItemsPerInput":250,"maxItems":500,"deltaKey":"top250"}{"operation":"explore","tags":["韩剧"],"subjectType":"tv","sortBy":"hot"}{"operation":"group_search","keywords":["租房"]}{"operation":"group_topics","ids":["beijingzufang"],"maxItemsPerInput":50,"onlyNew":true,"deltaKey":"bj-rent"}{"operation":"group_topic_details","ids":["502396963"]}{"operation":"subject_research","keywords":["流浪地球2"],"maxCommentsPerItem":50,"maxReviewsPerItem":10}{"operation":"subject_research","ids":["1292052","2567698"],"include":["fullText","replies"],"maxReviewsPerItem":5,"outputMode":"lean"}{"operation":"comments","ids":["26266893"],"maxItemsPerInput":100,"include":["insights"]}{"operation":"group_topic_details","urls":["https://www.douban.com/group/topic/502224433/"],"include":["replies"],"maxRepliesPerItem":100}{"operation":"topic_search","keywords":["小米SU7"],"sortBy":"latest","maxItemsPerInput":50}{"operation":"capabilities"}
Output example
Compact comment row:
{"type":"comment","operation":"comments","input":"26266893","queryUsed":"26266893","id":"1656169114","url":"https://movie.douban.com/subject/26266893/comments","fetchedAt":"2026-10-13T06:00:00.000Z","rank":1,"commentId":"1656169114","subjectId":"26266893","rating":3,"text":"1.从特效和技术上讲,这应该是迄今为止此类中国电影的巅峰了…","voteCount":6511,"createdAt":"2019-02-05T16:29:48+08:00","region":null,"userName":"frozenmoon","userId":"1233038"}
Lean subject row (charts):
{"type":"subject","id":"1292052","rank":1,"subjectType":"movie","title":"肖申克的救赎","year":1994,"rating":9.7,"ratingCount":3350087,"cardSubtitle":"1994 / 美国 / 剧情 犯罪 / 弗兰克·德拉邦特 / 蒂姆·罗宾斯 摩根·弗里曼","chart":"movie_top250"}
Times are ISO 8601 with Beijing offset (+08:00); lean rows use compact UTC (2019-02-05T08:29Z).
Pricing (pay per event)
| Event | Price | What |
|---|---|---|
subject-row | $0.002 | search / chart / explore row, cast member, photo, group, group-topic list row |
subject | $0.01 | full subject detail (subject_details or include details) |
comment | $0.002 | short comment or review list row |
review | $0.006 | review with full Markdown body |
group-topic | $0.006 | group topic with full text |
| Actor start | $0.00005 | per run |
Error, plan, capabilities, insights and summary rows are free; replies embedded with include: ["replies"] cost nothing extra. Rows dropped by filters or onlyNew are not billed.
Limits
- Douban shows guests ~150 hot short comments and ~40 reviews per subject, and ~300 topics per group; deeper pages need a Douban account and are not scraped.
- Newest-first comments/reviews require login on Douban;
sortBy: "latest"returns the visible hot pool sorted by time (stated in the summary warnings). - Replies are capped at 200 per review/topic row (
maxRepliesPerItem). If a replies request fails (e.g. Douban asks for login on a locked thread), the row is still returned withisPartial: trueandunavailableFields: ["replies"]. - Insights are heuristic: the sample is the hot comments/reviews Douban shows guests (biased toward popular opinions); sentiment uses stars or a small word list, not a model.
- Some searches may get Douban's
need_loginanswer; you then get suggest-endpoint rows or a freeLOGIN_REQUIREDrow with a fix. - Privacy: only user display name, user id and province are returned for comment/review/topic authors.
- Cast and photos exist for movies and TV only (books/music return a free
UNSUPPORTED_OPERATIONrow).
FAQ
Do I need a Douban account or cookies? No. Nothing in the input asks for credentials.
Can I monitor a chart or a group? Yes: schedule the Actor with the same deltaKey; set onlyNew: true to receive (and pay for) only new rows. Chart rows show rank changes.
What does 1,000 rows cost? Search, chart or explore rows: $2. Short comments: $2. Full subject details: $10. Full reviews: $6. Example: Top 250 + full details for all 250 films = $2.50; 150 comments on one film = $0.30. Platform usage is included in these prices.
How fast is it? One request to Douban takes ~0.4–1.7 s from Apify's servers; the Actor keeps up to 8 in flight. Typical runs finish in 2–5 s; 100 full subject details in ~15–25 s.
Is this the official Douban API? No. It is an unofficial scraper of public pages. Unofficial; not affiliated with Douban.