GitHub

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

公開タイムラインを取得

クエリパラメータ:

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-datafile フィールドにファイルを送信

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:

ActivityPubエンドポイント

連合用のActivityPubエンドポイントについては、仕様書を参照してください。