Karotter の全 API リファレンスと、Python / TypeScript クライアントの実装ガイド(ライブラリ実装は WIP)。
Karotter の非公式 API リファレンスとセルフ Bot 用クライアントライブラリ。JS バンドル解析と実 API テストから作成。
- これは非公式プロジェクトです。Karotter / KaronNetWork とは一切関係ありません。
- APIの情報は独自に調査・解析したものです。最新のAPI仕様とは異なる可能性があります。 エンドポイントやリクエスト/レスポンスの形式は予告なく変更されることがあります。
- このリポジトリは都度更新していきますが、常に最新とは限りません。 実際のAPIの挙動と照らし合わせて確認してください。
- 利用は自己責任でお願いします。このライブラリの使用によるアカウントBANやデータ損失等について、作者は一切責任を負いません。
- Karotterの API・Bot利用規約 を守ってください。スパム、大量投稿、無差別DM、レート制限回避、無断データ収集、AI学習利用等は禁止されています。
Karotterの全APIエンドポイントを機能ごとにまとめたドキュメントです。
| ドキュメント | 内容 |
|---|---|
| 認証 | ログイン、新規登録、CSRF、トークンリフレッシュ、セッション、マルチアカウント |
| ユーザー | プロフィール、設定、アバター/ヘッダー画像、アカウント管理 |
| 投稿 | 投稿の作成/編集/削除、いいね、リカロット、ブックマーク、リアクション、投票、アナリティクス |
| タイムライン | タイムライン、おすすめアルゴリズム、A/Bテストバリアント |
| 検索 | 投稿・ユーザー・ハッシュタグ検索、トレンド、ディスカバー |
| フォロー | フォロー/アンフォロー、ブロック、ミュート、フォローリクエスト |
| DM | ダイレクトメッセージ、グループチャット、添付ファイル、投票、通話 |
| 通知 | 通知タイプ、プッシュ通知 (FCM)、未読数 |
| ソーシャル | サークル、リスト、ストーリー、匿名質問、リンクプレビュー |
| ラジオ | スペース (音声通話)、WebRTC、スピーカー管理 |
| 絵チャ | 絵チャ (共同お絵かき)、レイヤー、ストローク |
| 掲示板 | 掲示板、スレッド、リプライ、SSE |
| Socket.IO | リアルタイムイベント (DM、通話、絵チャ、スペース、通知) |
| データモデル | 全オブジェクトの型定義 |
| 管理 | 管理パネル、モデレーション、アナリティクス |
| 定数 | Enum、フラグ、localStorageキー一覧 |
httpx + python-socketio を使った非同期クライアント。
cd python
pip install -e .import asyncio
from karotter import KarotterClient
async def main():
client = KarotterClient(username="ユーザー名", password="パスワード")
await client.login()
# 投稿
post = await client.create_post(content="Pythonから投稿!")
# タイムライン取得
timeline = await client.get_timeline(mode="latest", page=1)
# いいね
await client.like(post.id)
# DM送信
await client.send_message(group_id=123, content="やっほー!")
# 検索
results = await client.search("karotter")
await client.close()
asyncio.run(main())fetch + socket.io-client を使ったクライアント。
cd typescript
npm install
npm run buildimport { KarotterClient } from "./src/client";
const client = new KarotterClient({
username: "ユーザー名",
password: "パスワード",
});
await client.login();
// 投稿
const post = await client.posts.create({ content: "TypeScriptから投稿!" });
// タイムライン
const timeline = await client.posts.getTimeline({ mode: "latest" });
// いいね
await client.posts.like(post.id);
// DM
await client.dm.sendMessage(123, { content: "やっほー!" });
// 検索
const results = await client.search.search("karotter");https://api.karotter.com/api
フェイルオーバー: api.karotter.jp, api.karotter.net, apikarotter.karon.jp
新しいエンドポイントを見つけた場合や、仕様が変わっていた場合はPRお願いします。ネットワークログやJSバンドルの参照箇所など、根拠を添えてもらえると助かります。
MIT