Kitsumon

A fox-powered Kitsu.io API wrapper for Dart & Flutter.

Pub Version Dart SDK Kitsu API License: MIT


Meaning

From Kitsu, the anime discovery platform, and Kitsumon (詰問), which means questioning or asking in Japanese.

If you love Kitsu.io and want a clean, typed way of querying their API for anime, manga, and characters, Kitsumon is made for you!


Installation

Add kitsumon to your pubspec.yaml:

dependencies:
  kitsumon: ^0.2.0

Or via terminal:

dart pub add kitsumon

Usage

1. Basic Initialization

import 'package:kitsumon/kitsumon.dart';

void main() async {
  // Unauthenticated client
  final kitsumon = Kitsumon(kitsu: Kitsu.noAuth());

  // Or with credentials (when supported)
  // final kitsumon = Kitsumon(kitsu: Kitsu(auth: KitsuAuth(...)));
}

2. Fetching Anime Collections with Filters

import 'package:kitsumon/kitsumon.dart';

void main() async {
  final kitsumon = Kitsumon(kitsu: Kitsu.noAuth());

  // Fetch anime by text search, season, or category
  final result = await kitsumon.media.anime.fetchCollection(
    text: 'Cowboy Bebop',
    pageLimit: 10,
    sort: [Sort.popularityRankAscending],
  );

  for (final anime in result.data ?? []) {
    print('${anime.attributes?.canonicalTitle} (Rating: ${anime.attributes?.averageRating})');
  }
}

3. Fetching Anime Characters & Details

import 'package:kitsumon/kitsumon.dart';

void main() async {
  final kitsumon = Kitsumon(kitsu: Kitsu.noAuth());

  // Fetch anime character details
  final characterResponse = await kitsumon.charactersAndPeople.animeCharacters.fetchResource(
    11614,
    includes: Includes(['anime']),
    sparseFieldSets: SparseFieldSets('anime', ['canonicalTitle', 'createdAt']),
  );

  print('Role: ${characterResponse.data?.attributes?.role}');
}

Building from Source

To regenerate .g.dart serialization code:

sh ./build.sh

Or directly via build_runner:

dart run build_runner build

Features and Bugs

Please file feature requests and bug reports on the GitHub Issue Tracker.


License

This project is licensed under the MIT License.

Libraries

kitsu
Kitsu Library. It contains different types you can find using KitsuAPI.
kitsu_methods
It contains and group up all the methods.
kitsumon
Kitsumon Library.
kitsumon_exceptions
Kitsumon Exception Library. It contains some of the exceptions of my library.