Content rating

How the data and the API work, and why.

Every series has a content rating that measures sexual explicitness and nothing else. The API applies no rating filter unless you ask for one.

The levels#↑

content_rating is the highest level of sexual content shown in the series:

Rating Generally means
safe No nudity or sex
suggestive Can have nudity, but no sex
erotica Has sex, but censored
pornographic Uncensored sex, or a censored work marked 18+

What it does not cover#↑

Violence, gore and abuse are not on this axis. Attack on Titan is safe. Do not read safe as suitable for every reader. For that, look at the series tags. See Tags.

Filtering#↑

Search for series and Match a series by full title take two filters. Repeat a parameter to pass several values.

  • content_rating: only these ratings.
  • not_content_rating: everything except these ratings.

There is no server-side default. Leave the filter out, or send it empty, and you get every rating. Sending all four ratings is the same as sending none.

curl -G "https://api.mangabaka.org/v2/series/search" \
  -d q=berserk \
  -d content_rating=safe \
  -d content_rating=suggestive

If your app should hide adult titles, send the ratings you want on every request.

Counting what the filter hid#↑

On search, add with_ignore_content_rating_count=true and the response gets an excluded_count: how many matches the content rating filter removed. The match endpoint does not accept this parameter.

curl -G "https://api.mangabaka.org/v2/series/search" \
  -d q=berserk \
  -d content_rating=safe \
  -d with_ignore_content_rating_count=true

pagination.count is the matches you can page through, and excluded_count is the matches the rating filter held back. Use it to tell your user that results were hidden, rather than showing an empty or short list with no explanation.

Tags have ratings too#↑

Each tag carries its own content_rating. The content_rating parameter on Get all tags filters tags by that rating, not series.