API リファレンス
Yurucommuの主要な内部REST APIエンドポイントです。 主にフロントエンドから使用されます。外部クライアントからは参照系APIを利用できます。
認証
APIはセッションベースの認証を使用します。ログイン後、Cookieでセッションが管理されます。
/api/* のうち POST / PUT /
DELETE / PATCH は CSRF 保護の対象です。
リクエストの Origin、または Referer の
origin が
APP_URL
と同一である必要があります。外部クライアントからは
GET 系の参照 API を利用できますが、状態を変更する API は
Yurucommu と同一 origin から送信してください。
POST /api/auth/login
ログイン
{
"password": "string"
}
POST /api/auth/logout
ログアウト
GET /api/auth/me
現在のログインユーザー情報を取得
GET /api/auth/providers
有効な認証プロバイダー一覧を取得
GET /api/auth/accounts
セッションに紐づくアカウント一覧を取得(要認証)
POST /api/auth/accounts
ローカルアカウントを作成(要認証)
{
"username": "string",
"name": "string"
}
POST /api/auth/switch
利用中のアカウントを切り替え(要認証)
{
"ap_id": "string"
}
タイムライン
GET /api/timeline
公開タイムラインを取得
クエリパラメータ:
limit- 取得件数(デフォルト: 20)before- ページネーション用のap_idcommunity- コミュニティのap_idでフィルタ
GET /api/timeline/following
フォロー中ユーザーのタイムラインを取得(要認証)
投稿
GET /api/posts/:id
投稿の詳細を取得
POST /api/posts
投稿を作成(要認証)
{
"content": "string",
"summary": "string", // CW(オプション)
"visibility": "public", // public, unlisted, followers, direct
"in_reply_to": "string", // 返信先ap_id(オプション)
"community_ap_id": "string", // コミュニティ(オプション)
"attachments": [{ // メディア添付(オプション)
"url": "/media/<filename>",
"r2_key": "uploads/<filename>",
"content_type": "string"
}]
}
DELETE /api/posts/:id
投稿を削除(要認証)
GET /api/posts/:id/replies
投稿への返信一覧を取得
POST /api/posts/:id/like
いいねする(要認証)
DELETE /api/posts/:id/like
いいね解除(要認証)
POST /api/posts/:id/bookmark
ブックマーク追加(要認証)
DELETE /api/posts/:id/bookmark
ブックマーク解除(要認証)
GET /api/bookmarks
ブックマーク済み投稿一覧を取得(要認証)
POST /api/posts/:id/repost
リポスト(ブースト)する(要認証)
DELETE /api/posts/:id/repost
リポスト解除(要認証)
ストーリー
GET /api/stories
フォロー中ユーザーのアクティブなストーリーを取得(要認証)
POST /api/stories
ストーリーを作成(要認証)
{
"attachment": { // メディア(必須)
"r2_key": "string",
"content_type": "string"
},
"displayDuration": "PT5S", // ISO 8601 duration(オプション)
"overlays": [{ // インタラクティブオーバーレイ(オプション)
"type": "Question", // AS2オブジェクト型
"position": {
"x": 0.5, // 0.0〜1.0
"y": 0.75,
"width": 0.8,
"height": 0.15
}
}]
}
POST /api/stories/delete
ストーリーを削除(要認証)
{
"ap_id": "string"
}
POST /api/stories/view
ストーリーを閲覧済みにする(要認証)
{
"ap_id": "string"
}
POST /api/stories/:id/share
ストーリーをシェアとして記録(要認証)
既にシェア済みでも成功を返します。
GET /api/stories/:id/shares
ストーリーのシェア数を取得
アクター(ユーザー)
GET /api/actors/:identifier
ユーザー情報を取得
GET /api/actors/:identifier/followers
フォロワー一覧を取得
GET /api/actors/:identifier/following
フォロー中一覧を取得
フォロー
POST /api/follow
フォローする(要認証)
{
"target_ap_id": "string"
}
DELETE /api/follow
フォロー解除(要認証)
POST /api/follow/accept
フォローリクエストを承認(要認証)
メディア
POST /api/media/upload
メディアファイルをアップロード(要認証)
multipart/form-data で
file フィールドにファイルを送信
GET /media/:filename
アップロードされたメディアファイルを取得。アップロードレスポンスの
url を使う。
通知
GET /api/notifications
通知一覧を取得(要認証)
?archived=true
を付けるとアーカイブ済み通知のみを取得できます。
GET /api/notifications/unread/count
未読通知数を取得(要認証)
POST /api/notifications/read
通知を既読にする(要認証)
POST /api/notifications/archive
通知をアーカイブ(要認証)
{
"ids": ["activity_ap_id"]
}
DELETE /api/notifications/archive
通知のアーカイブ解除(要認証)
{
"ids": ["activity_ap_id"]
}
POST /api/notifications/archive/all
通知をすべてアーカイブ(要認証)
ダイレクトメッセージ
GET /api/dm/contacts
DM連絡先と会話一覧を取得(要認証)
GET /api/dm/user/:encodedApId/messages
特定の相手とのメッセージ一覧を取得(要認証)
:encodedApId は相手の ActivityPub ID を URL
エンコードした値です。
POST /api/dm/user/:encodedApId/messages
DMを送信(要認証)
{
"content": "string" // メッセージ本文
}
POST /api/dm/user/:encodedApId/read
会話を既読にする(要認証)
POST /api/dm/user/:encodedApId/typing
タイピング中を通知(要認証)
GET /api/dm/user/:encodedApId/typing
相手のタイピング状態を取得(要認証)
検索・おすすめ
GET /api/search/actors
ローカル actor を検索
GET /api/search/remote
リモート actor を検索
GET /api/search/posts
投稿を検索
GET /api/search/hashtags/trending
トレンド hashtag を取得
GET /api/recommendations/users
おすすめユーザー一覧を取得(要認証)
コミュニティ
GET /api/communities
コミュニティ一覧を取得
POST /api/communities
コミュニティを作成(要認証)
GET /api/communities/:identifier
コミュニティ詳細を取得
POST /api/communities/:identifier/join
コミュニティに参加(要認証)
POST /api/communities/:identifier/leave
コミュニティから退出(要認証)
GET /api/communities/:identifier/messages
コミュニティメッセージ一覧を取得
POST /api/communities/:identifier/messages
コミュニティメッセージを送信(要認証)
アカウント管理
PUT /api/actors/me
プロフィールを更新(要認証)
GET /api/actors/me/blocked
ブロック中のユーザー一覧を取得(要認証)
POST /api/actors/me/blocked
ユーザーをブロック(要認証)
DELETE /api/actors/me/blocked
ユーザーのブロックを解除(要認証)
GET /api/actors/me/muted
ミュート中のユーザー一覧を取得(要認証)
POST /api/actors/me/muted
ユーザーをミュート(要認証)
DELETE /api/actors/me/muted
ユーザーのミュートを解除(要認証)
POST /api/actors/me/delete
アカウントを削除(要認証)
Takos tools
ENABLE_TAKOS_TOOLS=true のときだけ公開されます。
POST /.takos/tools/:name
agent runtime profile 向け tool を実行
{
"input": {},
"context": {
"user_id": "string",
"session_id": "string"
}
}
利用可能な :name:
-
yurucommu_search_users,yurucommu_search_posts,yurucommu_get_trending,yurucommu_get_user_profile -
yurucommu_create_post,yurucommu_delete_post,yurucommu_like_post,yurucommu_bookmark_post -
yurucommu_follow_user,yurucommu_unfollow_user,yurucommu_get_followers,yurucommu_get_following -
yurucommu_send_dm,yurucommu_get_dm_threads,yurucommu_get_dm_messages -
yurucommu_get_timeline,yurucommu_get_notifications
ActivityPubエンドポイント
連合用のActivityPubエンドポイントについては、仕様書を参照してください。