Kitsu Anime Manga Scraper
Pricing
from $2.99 / 1,000 results
Kitsu Anime Manga Scraper
Search the Kitsu catalog for any anime or manga and get one clean row per title — slug, synopsis, rating, popularity rank, dates, and more. Search by title, pull trending anime, or look up titles by id. Export to JSON, CSV, or Excel. Auto-retries, skips duplicates, and runs without an account
Pricing
from $2.99 / 1,000 results
Rating
0.0
(0)
Developer
B2B Lead Generation
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
10 days ago
Last modified
Categories
Share
Kitsu Anime & Manga Scraper: Anime and manga search
Kitsu Anime & Manga Scraper searches the public Kitsu catalog and saves one dataset row per anime or manga title. Export the run as JSON, CSV, or Excel.
Use cases
- Watchlist research: search a few titles and keep slug, rating, and rank in one table
- Catalog export: pull trending anime on a schedule and download CSV
- Manga lookup: search Berserk, or request manga id 8, and keep the synopsis with the rest of the attributes
- Id check: pass a list of numeric ids and get either the title or a single error row when Kitsu returns 404
- Shared dataset: hand the Apify export to someone who does not want to page through Kitsu
Input
| Parameter | Type | Default | Description |
|---|---|---|---|
searchQueries | array | ["naruto"] | Title text, one per line. Used when trending is off and record ids are empty. |
type | string | anime | anime or manga. Trending only requests anime. |
trending | boolean | false | Load trending anime and skip search and ids. |
recordIds | array | empty | Numeric Kitsu ids. Non-numeric values become error rows and are not requested. |
maxItems | integer | 100 | Cap on successful rows. Maximum 1000. |
requestDelaySecs | number | 0.5 | Pause between requests. Minimum 0.5 seconds. |
timeoutSecs | integer | 300 | Stop the run after this many seconds and keep rows already saved. |
requestTimeoutSecs | integer | 30 | Per-request timeout. |
proxyConfiguration | object | {"useApifyProxy": false} | Optional. Leave the proxy off unless you need one. |
{"searchQueries": ["naruto"],"type": "anime","trending": false,"recordIds": [],"maxItems": 100,"requestDelaySecs": 0.5,"timeoutSecs": 300,"requestTimeoutSecs": 30,"proxyConfiguration": { "useApifyProxy": false }}
What data does this actor extract?
Each successful row is one Kitsu resource. The JSON:API type field is stored as mediaType so the dataset schema stays valid. attributes still holds the full object from Kitsu, including the long synopsis.
{"id": "1555","mediaType": "anime","slug": "naruto-shippuden","canonicalTitle": "Naruto: Shippuuden","averageRating": "84.06","popularityRank": 28,"startDate": "2007-02-15","mode": "anime_search","source_url": "https://kitsu.io/api/edge/anime?filter[text]=naruto&page[limit]=2&page[offset]=0","scraped_at": "2026-10-12T00:00:00+00:00"}
| Field | Type | Description |
|---|---|---|
id | string | Resource id from Kitsu. |
mediaType | string | anime or manga. |
slug | string | Slug from attributes. |
canonicalTitle | string | Canonical title from attributes. |
synopsis | string | Synopsis from attributes. |
averageRating | string | Rating string from the source. |
popularityRank | integer | Popularity rank, or null. |
links | object | Links object. Relative API paths are made absolute. |
attributes | object | Full attributes object. |
relationships | object | Relationship links. Those URLs are not fetched. |
mode | string | anime_search, manga_search, trending, or detail. |
source_url | string | Request URL for the row. |
scraped_at | string | UTC time the row was saved. |
error | string | Set on a failed input, with input and status. |
A failed id or a bad response is one error row (error, input, status). The run continues with the next input.
How it works
- Read the input and pick one mode: trending anime, numeric ids, or title search.
- Request only the public anime, manga, and trending anime catalog pages, plus a single title looked up by its numeric id.
- Identify the client politely and wait at least
requestDelaySecsbetween calls. - On 429, 5xx, or a timeout, wait using Retry-After when it is present, otherwise
2^attemptseconds (cap 60), up to 5 tries. If a rate-limit remaining header is0, wait for the reset value too. - Follow
links.nextonly when the next page stays within the same anime or manga catalog. List pages request at most 20 rows. Duplicate ids are dropped. The run stops atmaxItemsortimeoutSecs.
FAQ
How fresh is the data?
Each run calls Kitsu at request time. scraped_at is when that row was saved, not when Kitsu last edited the title. attributes.updatedAt is Kitsu's own timestamp when the payload includes it.
What happens if the search is empty? An empty query list, with trending off and no ids, finishes successfully and saves nothing. A search that returns no titles logs a warning and moves on.
What if an id is wrong? A 404 becomes one error row with that id and status. Later ids still run. A slug is not requested, because only numeric ids are supported. It is saved as an error row instead.
Can I export CSV? Yes. Apify datasets export to JSON, CSV, and Excel.
Trademark Notice
Kitsu Anime & Manga and related names, logos, and trademarks belong to their respective owners. Their use in this documentation is solely to identify the source of the data and does not imply affiliation, sponsorship, endorsement, or partnership.
Disclaimer
Disclaimer: This Actor is an independent tool and is not affiliated with, endorsed by, sponsored by, or otherwise officially associated with Kitsu Anime & Manga or its owners. All data is collected from publicly available sources. Users are responsible for complying with the source's terms of use, rate limits, and attribution or licensing requirements.
Is web scraping legal?
This Actor only collects publicly available data from Kitsu Anime & Manga, mostly through its public API or feed, without logging in or bypassing any access controls. Scraping public data is generally legal, but how you use it matters:
- Personal data: If the results include personal data (for example names, emails, or profile details), laws such as the GDPR in the EU and the CCPA in California may apply. Only collect and store personal data when you have a legitimate reason.
- Copyright: Some content (articles, images, descriptions) may be protected by copyright. Do not republish full copyrighted content without permission.
- Terms of use: Respect the source terms, stated rate limits, and any attribution or non-commercial-use requirements listed in Limits and terms.
- Legal advice: This is general information, not legal advice. If you're unsure, consult a lawyer.
To learn more, read Apify's guide: Is web scraping legal?