0, 'path' => '/', 'domain' => '', 'secure' => true, 'httponly' => true, 'samesite' => 'Lax' ]); session_start(); session_regenerate_id(true); // データベースに接続 try { $option = array( PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::MYSQL_ATTR_MULTI_STATEMENTS => false ); $pdo = new PDO('mysql:charset=utf8mb4;dbname='.DB_NAME.';host='.DB_HOST , DB_USER, DB_PASS, $option); } catch(PDOException $e) { // 接続エラーのときエラー内容を取得する $error_message[] = $e->getMessage(); } //ログイン認証--------------------------------------------------- blockedIP($_SERVER['REMOTE_ADDR']); $is_login = uwuzuUserLogin($_SESSION, $_COOKIE, $_SERVER['REMOTE_ADDR'], "user"); if($is_login === false){ header("Location: ../index.php"); exit; }else{ $userid = safetext($is_login['userid']); $username = safetext($is_login['username']); $loginid = safetext($is_login["loginid"]); $role = safetext($is_login["role"]); $sacinfo = safetext($is_login["sacinfo"]); $myblocklist = safetext($is_login["blocklist"]); $myfollowlist = safetext($is_login["follow"]); $is_Admin = safetext($is_login["admin"]); } $protocol = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off') ? 'https://' : 'http://'; $domain = $_SERVER['HTTP_HOST']; $port = ":" . $_SERVER['REMOTE_PORT']; if ($protocol === "https://" && $port === 443) { $port = ""; } elseif ($protocol === "http://" && $port === 80) { $port = ""; } $origin = $protocol . $domain . $port; $mojisizefile = "../server/textsize.txt"; $max_ueuse_length = (int)safetext(file_get_contents($mojisizefile)); require('../logout/logout.php'); ?> openapi: 3.1.1 info: title: uwuzu API Docs version: 自称v1.6.5 Hapuego license: name: UPUL url: https://docs.uwuzu.com/docs/aboutuwuzu/upul contact: name: uwuzu開発部 url: https://docs.uwuzu.com/docs/others/contact email: daichimarukana@gmail.com description: | # 概要 ## 注意事項など > [!CAUTION] > v1.3.4からの仕様変更されたAPI(bot-api)はv1.4.0にて廃止されました。 > [!WARNING] > 必ずサンプルコード及びタイトルにあるURLに従って使用してください! > 少しでも異なるURLにするとエラーなど正常に使用できないおそれがございます。 ## APIトークン ### 概要 uwuzu APIではほぼ全てのエンドポイントでAPIトークンが必要です。 ### 取得方法 #### 公式クライアント https:///others の最下部にある`APIトークンの発行`を選択してください。 クライアント名と権限を入力し`次へ`を選択します。 仕様上はユーザー認可のページを発行する仕組みです。 そのためユーザー認可と同じ確認ページが表示されます。 `許可`を選択することでAPIトークンを取得できます。 > [!WARNING] > このAPIトークンが表示されるのは1度きりです。 > 紛失した場合は不正利用防止のためトークンを無効化し再生成してください。 #### ユーザー認可 ユーザー認可によるAPIトークンの取得が可能です。 [`/api/auth`](./#tag/auth/get/auth)にユーザーをリダイレクトさせることで確認ページを表示できます。 許可がされた後、[`/api/token/get`](./#tag/token/get/token/get)に [`/api/auth`](./#tag/token/get/token/get)で使用したセッションIDと 同じセッションIDを使用しリクエストすることでAPIトークンが取得できます。 また、[`/api/token/inquiry`](./#tag/token/get/token/inquiry)で APIトークンを使用することで付与された権限を確認できます。 > [!WARNING] > APIトークンが取得できるのは1度きりです。 > 紛失した場合は不正利用防止のためトークンを無効化し再生成してください。 ### 認証方法 Bearer認証が使用されていますが従来の方法でも可能です。 #### Bearer認証(推奨) ヘッダーに`Authorization`を含めてください。 GET・POSTどちらでも使用できます。 内容は`Bearer [APIトークン]`です。 JavaScriptの例: ```javascript fetch('https:///api/me/', { method: 'POST', headers: { Authorization: 'Bearer abcdefg' }, credentials: 'omit' }); ``` #### 従来の方法(body・URLパラメータ) POSTの場合はbody、GETの場合はURLパラメータにAPIトークンを含めてください。 JavaScriptの例: ```javascript // GET fetch('/api/me/?token=abcdefg'); // POST fetch('/api/me/', { method: 'POST', body: JSON.stringify({ token: 'abcdefg' }) }); ``` ## メディアの添付 ### 概要 一部のエンドポイントではメディアを添付することができます。 ### 注意 これはGETのURLパラメータには非対応であり、 POSTのbodyにのみ使用できます。 また、Base64 EncodeはBase64 URLではないためMIMEタイプ等の記述は不要で、 Base64 URLを使用することはできません。 動画、画像どちらにおいてもEXIFが削除されます。 そして、画像においてはアップロードされた全ての画像が`.webp`に変換されます。 ### 対応MIMEタイプ 対応するMIMEタイプは以下の通りです。 #### 画像 - `image/gif` - `image/jpeg` - `image/png` - `image/webp` - `image/bmp` #### 動画 - `video/mpeg` - `video/mp4` - `video/webm` - `video/x-msvideo` servers: - url: https:///api security: - bearerAuth: [] paths: /serverinfo-api: summary: /serverinfo-api get: $ref: "#/components/pathItems/ServerInfoAPI" post: $ref: "#/components/pathItems/ServerInfoAPI" /me/: summary: /me/ get: $ref: "#/components/pathItems/MeAPI" post: $ref: "#/components/pathItems/MeAPI" /me/notification/: summary: /me/notification/ get: tags: - me - notification description: | 自分宛の通知を取得できます。 トークンのみ指定の場合直近25件の通知を取得します。 operationId: me/notification externalDocs: description: ソースコード url: https://github.com/Daichimarukana/uwuzu/blob/main/api/me/notification/index.php security: - bearerAuth: [] parameters: - page: $ref: "#/components/parameters/page" - limit: $ref: "#/components/parameters/limit" responses: 200: $ref: "#/components/responses/NotificationAPI" 400: $ref: "#/components/responses/APIAuthFailed" 401: $ref: "#/components/responses/Unauthorized" 403: $ref: "#/components/responses/Forbidden" 500: description: Internal Server Error content: application/json: schema: type: object properties: error_code: title: エラーコード type: string enum: - notification_not_found success: $ref: "#/components/schemas/Failed" required: - error_code - success post: tags: - me - notification description: | 自分宛の通知を取得できます。 トークンのみ指定の場合直近25件の通知を取得します。 operationId: me/notification externalDocs: description: ソースコード url: https://github.com/Daichimarukana/uwuzu/blob/main/api/me/notification/index.php security: - bearerAuth: [] requestBody: content: application/json: schema: type: object properties: page: $ref: "#/components/schemas/Page" limit: $ref: "#/components/schemas/Limit" responses: 200: $ref: "#/components/responses/NotificationAPI" 400: $ref: "#/components/responses/APIAuthFailed" 401: $ref: "#/components/responses/Unauthorized" 403: $ref: "#/components/responses/Forbidden" 500: description: Internal Server Error content: application/json: schema: type: object properties: error_code: title: エラーコード type: string enum: - notification_not_found success: $ref: "#/components/schemas/Failed" required: - error_code - success /me/notification/read: summary: /me/notification/read get: $ref: "#/components/pathItems/NotificationRead" post: $ref: "#/components/pathItems/NotificationRead" /me/settings/: summary: /me/settings/ get: tags: - me - settings description: | 重要な情報以外の自分のアカウント設定を変更できます。 オプションパラメータをどれか一つ以上含めてください。 operationId: me/settings externalDocs: description: ソースコード url: https://github.com/Daichimarukana/uwuzu/blob/main/api/me/settings/index.php security: - bearerAuth: [] parameters: - name: username in: query schema: title: ユーザー名 type: string maximum: 50 example: あどみん - name: profile in: query schema: title: プロフィール type: string maximum: 1024 example: あどみんです! responses: 200: $ref: "#/components/responses/SuccessOnly" 400: description: Bad Request content: application/json: schema: oneOf: - $ref: "#/components/schemas/APIAuthFailed" - $ref: "#/components/schemas/InputNotFound" - type: object properties: error_code: title: エラーコード type: string enum: - 表示名を入力してください。(USERNAME_INPUT_PLEASE) success: $ref: "#/components/schemas/Failed" required: - error_code - success 413: $ref: "#/components/responses/SettingsCountOver" 401: $ref: "#/components/responses/Unauthorized" 403: $ref: "#/components/responses/Forbidden" 500: description: Internal Server Error content: application/json: schema: type: object properties: error_code: $ref: "#/components/schemas/UpdateFailed" success: $ref: "#/components/schemas/Failed" required: - error_code - success post: tags: - me - settings description: | 重要な情報以外の自分のアカウント設定を変更できます。 オプションパラメータをどれか一つ以上含めてください。 operationId: me/settings externalDocs: description: ソースコード url: https://github.com/Daichimarukana/uwuzu/blob/main/api/me/settings/index.php security: - bearerAuth: [] requestBody: content: application/json: schema: type: object properties: username: title: ユーザー名 type: string maximum: 50 example: あどみん profile: title: プロフィール type: string maximum: 1024 example: あどみんです! icon: title: アイコン画像 type: string format: Base64 Encode Image example: Base64 Data header: title: ヘッダー画像 type: string format: Base64 Encode Image example: Base64 Data responses: 200: $ref: "#/components/responses/SuccessOnly" 400: description: Bad Request content: application/json: schema: oneOf: - $ref: "#/components/schemas/APIAuthFailed" - $ref: "#/components/schemas/InputNotFound" - type: object properties: error_code: title: エラーコード type: string enum: - 使用できない画像形式です。(FILE_UPLOAD_DEKINAKATTA) - 表示名を入力してください。(USERNAME_INPUT_PLEASE) success: $ref: "#/components/schemas/Failed" required: - error_code - success 413: $ref: "#/components/responses/SettingsCountOver" 401: $ref: "#/components/responses/Unauthorized" 403: $ref: "#/components/responses/Forbidden" 500: description: Internal Server Error content: application/json: schema: oneOf: - type: object properties: error_code: title: エラーコード type: string enum: - ERROR - アップロード失敗!(1)エラーコード:FILE_DEKASUGUI_PHP_INI_KAKUNIN - アップロード失敗!(1)エラーコード:FILE_DEKASUGUI_HTML_KAKUNIN - アップロード失敗!(1)エラーコード:FILE_SUKOSHIDAKE_UPLOAD - アップロード失敗!(1)エラーコード:FILE_UPLOAD_DEKINAKATTA - アップロード失敗!(1)エラーコード:TMP_FOLDER_NAI - アップロード失敗!(1)エラーコード:FILE_KAKIKOMI_SIPPAI - アップロード失敗!(1)エラーコード:PHPINFO()_KAKUNIN - アップロード失敗!(1)エラーコード:TMP_FILE_NAI - アップロード失敗!(1)エラーコード:SAVE_FOLDER_KAKIKOMI_KENNAI - アップロード失敗!(1)エラーコード:MOVE_UPLOAD_FILE_SIPPAI - アップロード失敗!(1)エラーコード: S3ERROR success: $ref: "#/components/schemas/Failed" required: - error_code - success - type: object properties: error_code: title: エラーコード type: string enum: - ERROR - アップロード失敗!(2)エラーコード:FILE_DEKASUGUI_PHP_INI_KAKUNIN - アップロード失敗!(2)エラーコード:FILE_DEKASUGUI_HTML_KAKUNIN - アップロード失敗!(2)エラーコード:FILE_SUKOSHIDAKE_UPLOAD - アップロード失敗!(2)エラーコード:FILE_UPLOAD_DEKINAKATTA - アップロード失敗!(2)エラーコード:TMP_FOLDER_NAI - アップロード失敗!(2)エラーコード:FILE_KAKIKOMI_SIPPAI - アップロード失敗!(2)エラーコード:PHPINFO()_KAKUNIN - アップロード失敗!(2)エラーコード:TMP_FILE_NAI - アップロード失敗!(2)エラーコード:SAVE_FOLDER_KAKIKOMI_KENNAI - アップロード失敗!(2)エラーコード:MOVE_UPLOAD_FILE_SIPPAI - アップロード失敗!(2)エラーコード: S3ERROR success: $ref: "#/components/schemas/Failed" required: - error_code - success - type: object properties: error_code: $ref: "#/components/schemas/UpdateFailed" success: $ref: "#/components/schemas/Failed" required: - error_code - success /users/: summary: /users/ get: tags: - users description: 自分以外のユーザー情報を取得できます。 operationId: users externalDocs: description: ソースコード url: https://github.com/Daichimarukana/uwuzu/blob/main/api/users/index.php security: - bearerAuth: [] parameters: - userid: $ref: "#/components/parameters/useridRequired" responses: 200: description: OK content: application/json: schema: $ref: "#/components/schemas/User" 400: description: Bad Request content: application/json: schema: oneOf: - $ref: "#/components/schemas/APIAuthFailed" - $ref: "#/components/schemas/InputNotFound" 401: $ref: "#/components/responses/Unauthorized" 403: $ref: "#/components/responses/Forbidden" post: tags: - users description: 自分以外のユーザー情報を取得できます。 operationId: users externalDocs: description: ソースコード url: https://github.com/Daichimarukana/uwuzu/blob/main/api/users/index.php security: - bearerAuth: [] requestBody: content: application/json: schema: type: object properties: userid: $ref: "#/components/schemas/UserID" required: - userid responses: 200: description: OK content: application/json: schema: $ref: "#/components/schemas/User" 400: description: Bad Request content: application/json: schema: oneOf: - $ref: "#/components/schemas/APIAuthFailed" - $ref: "#/components/schemas/InputNotFound" 401: $ref: "#/components/responses/Unauthorized" 403: $ref: "#/components/responses/Forbidden" /users/follow: summary: /users/follow get: tags: - users - follow description: 自分以外のユーザーをフォローできます。 operationId: users/follow externalDocs: description: ソースコード url: https://github.com/Daichimarukana/uwuzu/blob/main/api/users/follow.php security: - bearerAuth: [] parameters: - name: userid $ref: "#/components/parameters/useridRequired" responses: 200: $ref: "#/components/responses/FollowSuccess" 400: $ref: "#/components/responses/FollowBadReq" 401: $ref: "#/components/responses/Unauthorized" 403: $ref: "#/components/responses/Forbidden" 500: $ref: "#/components/responses/FollowInternalServerError" post: tags: - users - follow description: 自分以外のユーザーをフォローできます。 operationId: users/follow externalDocs: description: ソースコード url: https://github.com/Daichimarukana/uwuzu/blob/main/api/users/follow.php security: - bearerAuth: [] requestBody: content: application/json: schema: type: object properties: userid: $ref: "#/components/schemas/UserID" required: - userid responses: 200: $ref: "#/components/responses/FollowSuccess" 400: $ref: "#/components/responses/FollowBadReq" 401: $ref: "#/components/responses/Unauthorized" 403: $ref: "#/components/responses/Forbidden" 500: $ref: "#/components/responses/FollowInternalServerError" /users/unfollow: summary: /users/unfollow get: tags: - users - follow description: 自分以外のユーザーのフォローを解除できます。 operationId: users/unfollow externalDocs: description: ソースコード url: https://github.com/Daichimarukana/uwuzu/blob/main/api/users/unfollow.php security: - bearerAuth: [] parameters: - name: userid $ref: "#/components/parameters/useridRequired" responses: 200: $ref: "#/components/responses/FollowSuccess" 400: $ref: "#/components/responses/FollowBadReq" 401: $ref: "#/components/responses/Unauthorized" 403: $ref: "#/components/responses/Forbidden" 500: $ref: "#/components/responses/FollowInternalServerError" post: tags: - users - follow description: 自分以外のユーザーのフォローを解除できます。 operationId: users/unfollow externalDocs: description: ソースコード url: https://github.com/Daichimarukana/uwuzu/blob/main/api/users/unfollow.php security: - bearerAuth: [] requestBody: content: application/json: schema: type: object properties: userid: $ref: "#/components/schemas/UserID" required: - userid responses: 200: $ref: "#/components/responses/FollowSuccess" 400: $ref: "#/components/responses/FollowBadReq" 401: $ref: "#/components/responses/Unauthorized" 403: $ref: "#/components/responses/Forbidden" 500: $ref: "#/components/responses/FollowInternalServerError" /ueuse/: summary: /ueuse/ get: tags: - ueuse description: | トークンのみ指定の場合直近25件のユーズを取得します。 operationId: ueuse externalDocs: description: ソースコード url: https://github.com/Daichimarukana/uwuzu/blob/main/api/ueuse/index.php security: - bearerAuth: [] parameters: - page: $ref: "#/components/parameters/page" - limit: $ref: "#/components/parameters/limit" responses: 200: description: OK content: application/json: schema: type: object properties: "0": $ref: "#/components/schemas/ueuse" "1": $ref: "#/components/schemas/ueuse" success: $ref: "#/components/schemas/Success" required: - "0" - "1" - success 400: description: Bad Request content: application/json: schema: $ref: "#/components/schemas/APIAuthFailed" 401: $ref: "#/components/responses/Unauthorized" 403: $ref: "#/components/responses/Forbidden" 500: description: Internal Server Error content: application/json: schema: type: object properties: error_code: title: エラーコード type: string enum: - ueuse_not_found success: $ref: "#/components/schemas/Failed" required: - error_code - success post: tags: - ueuse description: | トークンのみ指定の場合直近25件のユーズを取得します。 operationId: ueuse externalDocs: description: ソースコード url: https://github.com/Daichimarukana/uwuzu/blob/main/api/ueuse/index.php security: - bearerAuth: [] requestBody: content: application/json: schema: type: object properties: page: $ref: "#/components/schemas/Page" limit: $ref: "#/components/schemas/Limit" responses: 200: description: OK content: application/json: schema: type: object properties: "0": $ref: "#/components/schemas/ueuse" "1": $ref: "#/components/schemas/ueuse" success: $ref: "#/components/schemas/Success" required: - "0" - "1" - success 400: description: Bad Request content: application/json: schema: $ref: "#/components/schemas/APIAuthFailed" 401: $ref: "#/components/responses/Unauthorized" 403: $ref: "#/components/responses/Forbidden" 500: description: Internal Server Error content: application/json: schema: type: object properties: error_code: title: エラーコード type: string enum: - ueuse_not_found success: $ref: "#/components/schemas/Failed" required: - error_code - success /ueuse/get: summary: /ueuse/get get: tags: - ueuse description: 特定の投稿を一つだけ取得します。(単一の投稿を取得します。) operationId: ueuse/get externalDocs: description: ソースコード url: https://github.com/Daichimarukana/uwuzu/blob/main/api/ueuse/get.php security: - bearerAuth: [] parameters: - uniqid: $ref: "#/components/parameters/uniqidRequired" responses: 200: description: OK content: application/json: schema: type: object properties: "0": $ref: "#/components/schemas/ueuse" success: $ref: "#/components/schemas/Success" required: - "0" - success 400: description: Bad Request content: application/json: schema: oneOf: - $ref: "#/components/schemas/APIAuthFailed" - $ref: "#/components/schemas/InputNotFound" - type: object properties: error_code: title: エラーコード type: string enum: - ueuse_not_found success: $ref: "#/components/schemas/Failed" required: - error_code - success 401: $ref: "#/components/responses/Unauthorized" 403: $ref: "#/components/responses/Forbidden" post: tags: - ueuse description: 特定の投稿を一つだけ取得します。(単一の投稿を取得します。) operationId: ueuse/get externalDocs: description: ソースコード url: https://github.com/Daichimarukana/uwuzu/blob/main/api/ueuse/get.php security: - bearerAuth: [] requestBody: content: application/json: schema: type: object properties: uniqid: $ref: "#/components/schemas/UniqID" required: - uniqid responses: 200: description: OK content: application/json: schema: type: object properties: "0": $ref: "#/components/schemas/ueuse" success: $ref: "#/components/schemas/Success" required: - "0" - success 400: description: Bad Request content: application/json: schema: oneOf: - $ref: "#/components/schemas/APIAuthFailed" - $ref: "#/components/schemas/InputNotFound" - type: object properties: error_code: title: エラーコード type: string enum: - ueuse_not_found success: $ref: "#/components/schemas/Failed" required: - error_code - success 401: $ref: "#/components/responses/Unauthorized" 403: $ref: "#/components/responses/Forbidden" /ueuse/replies: summary: /ueuse/replies get: tags: - ueuse description: | 特定の投稿とそれにされた返信を取得します。 帰ってきたjsonの一番上の投稿がuniqidにて指定したものになります。 operationId: ueuse/replies externalDocs: description: ソースコード url: https://github.com/Daichimarukana/uwuzu/blob/main/api/ueuse/replies.php security: - bearerAuth: [] parameters: - uniqid: $ref: "#/components/parameters/uniqidRequired" - limit: $ref: "#/components/parameters/limit" - page: $ref: "#/components/parameters/page" responses: 200: description: OK content: application/json: schema: type: object properties: "0": $ref: "#/components/schemas/ueuse" "1": $ref: "#/components/schemas/ueuse" success: $ref: "#/components/schemas/Success" 400: description: Bad Request content: application/json: schema: oneOf: - $ref: "#/components/schemas/APIAuthFailed" - $ref: "#/components/schemas/InputNotFound" - type: object properties: error_code: title: エラーコード type: string enum: - ueuse_not_found success: $ref: "#/components/schemas/Failed" required: - error_code - success 401: $ref: "#/components/responses/Unauthorized" 403: $ref: "#/components/responses/Forbidden" post: tags: - ueuse description: | 特定の投稿とそれにされた返信を取得します。 帰ってきたjsonの一番上の投稿がuniqidにて指定したものになります。 operationId: ueuse/replies externalDocs: description: ソースコード url: https://github.com/Daichimarukana/uwuzu/blob/main/api/ueuse/replies.php security: - bearerAuth: [] requestBody: content: application/json: schema: type: object properties: uniqid: $ref: "#/components/schemas/UniqID" limit: $ref: "#/components/schemas/Limit" page: $ref: "#/components/schemas/Page" required: - uniqid responses: 200: description: OK content: application/json: schema: type: object properties: "0": $ref: "#/components/schemas/ueuse" "1": $ref: "#/components/schemas/ueuse" success: $ref: "#/components/schemas/Success" 400: description: Bad Request content: application/json: schema: oneOf: - $ref: "#/components/schemas/APIAuthFailed" - $ref: "#/components/schemas/InputNotFound" - type: object properties: error_code: title: エラーコード type: string enum: - ueuse_not_found success: $ref: "#/components/schemas/Failed" required: - error_code - success 401: $ref: "#/components/responses/Unauthorized" 403: $ref: "#/components/responses/Forbidden" /ueuse/mentions: summary: /ueuse/mentions get: tags: - ueuse description: | > [!Note] > v1.6.0以前と以後で仕様が異なっており、v1.6.0以前に行われたメンションは取得できません。 > 使用方法は同じです。 自分のメンションされた投稿を取得します。 operationId: ueuse/mentions externalDocs: description: ソースコード url: https://github.com/Daichimarukana/uwuzu/blob/main/api/ueuse/mentions.php security: - bearerAuth: [] parameters: - limit: $ref: "#/components/parameters/limit" - page: $ref: "#/components/parameters/page" responses: 200: description: OK content: application/json: schema: type: object properties: "0": $ref: "#/components/schemas/ueuse" "1": $ref: "#/components/schemas/ueuse" success: $ref: "#/components/schemas/Success" 400: description: Bad Request content: application/json: schema: oneOf: - $ref: "#/components/schemas/APIAuthFailed" - $ref: "#/components/schemas/InputNotFound" - type: object properties: error_code: title: エラーコード type: string enum: - ueuse_not_found success: $ref: "#/components/schemas/Failed" required: - error_code - success 401: $ref: "#/components/responses/Unauthorized" 403: $ref: "#/components/responses/Forbidden" post: tags: - ueuse description: | > [!Note] > v1.6.0以前と以後で仕様が異なっており、v1.6.0以前に行われたメンションは取得できません。 > 使用方法は同じです。 自分のメンションされた投稿を取得します。 operationId: ueuse/mentions externalDocs: description: ソースコード url: https://github.com/Daichimarukana/uwuzu/blob/main/api/ueuse/mentions.php security: - bearerAuth: [] requestBody: content: application/json: schema: type: object properties: limit: $ref: "#/components/schemas/Limit" page: $ref: "#/components/schemas/Page" responses: 200: description: OK content: application/json: schema: type: object properties: "0": $ref: "#/components/schemas/ueuse" "1": $ref: "#/components/schemas/ueuse" success: $ref: "#/components/schemas/Success" 400: description: Bad Request content: application/json: schema: oneOf: - $ref: "#/components/schemas/APIAuthFailed" - $ref: "#/components/schemas/InputNotFound" - type: object properties: error_code: title: エラーコード type: string enum: - ueuse_not_found success: $ref: "#/components/schemas/Failed" required: - error_code - success 401: $ref: "#/components/responses/Unauthorized" 403: $ref: "#/components/responses/Forbidden" /ueuse/search: summary: /ueuse/search get: tags: - ueuse description: keywordに入れた言葉をすべての投稿の中から検索してマッチしたものを返します。 operationId: ueuse/search externalDocs: description: ソースコード url: https://github.com/Daichimarukana/uwuzu/blob/main/api/ueuse/search.php security: - bearerAuth: [] parameters: - keyword: name: keyword in: query schema: title: キーワード type: string example: Test required: true - limit: $ref: "#/components/parameters/limit" - page: $ref: "#/components/parameters/page" responses: 200: description: OK content: application/json: schema: type: object properties: "0": $ref: "#/components/schemas/ueuse" "1": $ref: "#/components/schemas/ueuse" success: $ref: "#/components/schemas/Success" 400: description: Bad Request content: application/json: schema: oneOf: - $ref: "#/components/schemas/APIAuthFailed" - $ref: "#/components/schemas/InputNotFound" - type: object properties: error_code: title: エラーコード type: string enum: - ueuse_not_found success: $ref: "#/components/schemas/Failed" required: - error_code - success 401: $ref: "#/components/responses/Unauthorized" 403: $ref: "#/components/responses/Forbidden" post: tags: - ueuse description: keywordに入れた言葉をすべての投稿の中から検索してマッチしたものを返します。 operationId: ueuse/search externalDocs: description: ソースコード url: https://github.com/Daichimarukana/uwuzu/blob/main/api/ueuse/search.php security: - bearerAuth: [] requestBody: content: application/json: schema: type: object properties: keyword: title: キーワード type: string example: Test limit: $ref: "#/components/schemas/Limit" page: $ref: "#/components/schemas/Page" required: - keyword responses: 200: description: OK content: application/json: schema: type: object properties: "0": $ref: "#/components/schemas/ueuse" "1": $ref: "#/components/schemas/ueuse" success: $ref: "#/components/schemas/Success" 400: description: Bad Request content: application/json: schema: oneOf: - $ref: "#/components/schemas/APIAuthFailed" - $ref: "#/components/schemas/InputNotFound" - type: object properties: error_code: title: エラーコード type: string enum: - ueuse_not_found success: $ref: "#/components/schemas/Failed" required: - error_code - success 401: $ref: "#/components/responses/Unauthorized" 403: $ref: "#/components/responses/Forbidden" /ueuse/create: summary: /ueuse/create get: tags: - ueuse description: | このAPIを使用すると新たに投稿をすることができます。 引用/リユーズと返信は同時に使用できません。 operationId: ueuse/create externalDocs: description: ソースコード url: https://github.com/Daichimarukana/uwuzu/blob/main/api/ueuse/create.php security: - bearerAuth: [] parameters: - text: name: text in: query schema: title: 本文 type: string example: "Text\nText" required: true - nsfw: name: nsfw in: query schema: title: NSFWにするかどうか type: boolean enum: - true - false default: false example: true - replyid: name: replyid in: query schema: title: 返信先ユーズ type: string example: 1vgsg0v3tzv - reuseid: name: reuseid in: query schema: title: 引用/リユーズ先ユーズ type: string example: 1vgsg0v3tzv responses: 200: description: OK content: application/json: schema: type: object properties: uniqid: $ref: "#/components/schemas/UniqID" userid: $ref: "#/components/schemas/UserID" required: - uniqid - userid 400: description: Bad Request content: application/json: schema: oneOf: - $ref: "#/components/schemas/APIAuthFailed" - $ref: "#/components/schemas/InputNotFound" - type: object properties: error_code: title: エラーコード type: string enum: - this_account_has_been_frozen - contains_prohibited_url - could_not_complete success: $ref: "#/components/schemas/Failed" required: - error_code - success 401: $ref: "#/components/responses/Unauthorized" 403: $ref: "#/components/responses/Forbidden" 413: description: Content Too Large content: application/json: schema: type: object properties: error_code: title: エラーコード type: string enum: - content_to__characters success: $ref: "#/components/schemas/Failed" required: - error_code - success 429: description: Too Many Requests content: application/json: schema: type: object properties: error_code: title: エラーコード type: string enum: - over_rate_limit success: $ref: "#/components/schemas/Failed" required: - error_code - success 500: description: Internal Server Error content: application/json: schema: type: object properties: error_code: title: エラーコード type: string enum: - could_not_complete success: $ref: "#/components/schemas/Failed" required: - error_code - success post: tags: - ueuse description: | このAPIを使用すると新たに投稿をすることができます。 引用/リユーズと返信は同時に使用できません。 operationId: ueuse/create externalDocs: description: ソースコード url: https://github.com/Daichimarukana/uwuzu/blob/main/api/ueuse/create.php security: - bearerAuth: [] requestBody: content: application/json: schema: type: object properties: text: title: 本文 type: string maximum: example: "Text\nText" nsfw: title: NSFWにするかどうか type: boolean enum: - true - false default: false example: true image1: title: 画像1 type: string format: Base64 Encode Image example: Base64 Data image2: title: 画像2 type: string format: Base64 Encode Image example: Base64 Data image3: title: 画像3 type: string format: Base64 Encode Image example: Base64 Data image4: title: 画像4 type: string format: Base64 Encode Image example: Base64 Data replyid: title: 返信先ユーズ type: string example: 1vgsg0v3tzv reuseid: title: 引用/リユーズ先ユーズ type: string example: 1vgsg0v3tzv required: - text responses: 200: description: OK content: application/json: schema: type: object properties: uniqid: $ref: "#/components/schemas/UniqID" userid: $ref: "#/components/schemas/UserID" required: - uniqid - userid 400: description: Bad Request content: application/json: schema: oneOf: - $ref: "#/components/schemas/APIAuthFailed" - $ref: "#/components/schemas/InputNotFound" - type: object properties: error_code: title: エラーコード type: string enum: - this_account_has_been_frozen - contains_prohibited_url - upload_error - could_not_complete success: $ref: "#/components/schemas/Failed" required: - error_code - success 401: $ref: "#/components/responses/Unauthorized" 403: $ref: "#/components/responses/Forbidden" 413: description: Content Too Large content: application/json: schema: type: object properties: error_code: title: エラーコード type: string enum: - content_to__characters success: $ref: "#/components/schemas/Failed" required: - error_code - success 429: description: Too Many Requests content: application/json: schema: type: object properties: error_code: title: エラーコード type: string enum: - over_rate_limit success: $ref: "#/components/schemas/Failed" required: - error_code - success 500: description: Internal Server Error content: application/json: schema: type: object properties: error_code: title: エラーコード type: string enum: - upload_error - could_not_complete success: $ref: "#/components/schemas/Failed" required: - error_code - success /ueuse/delete: summary: /ueuse/delete get: tags: - ueuse description: 投稿の削除が可能です。 operationId: ueuse/delete externalDocs: description: ソースコード url: https://github.com/Daichimarukana/uwuzu/blob/main/api/ueuse/delete.php security: - bearerAuth: [] parameters: - uniqid: $ref: "#/components/parameters/uniqidRequest" responses: 200: description: OK content: application/json: schema: type: object properties: uniqid: $ref: "#/components/schemas/UniqID" userid: $ref: "#/components/schemas/UserID" success: $ref: "#/components/schemas/Success" required: - uniqid - userid - success 400: description: Bad Request content: application/json: schema: oneOf: - $ref: "#/components/schemas/APIAuthFailed" - $ref: "#/components/schemas/InputNotFound" 401: $ref: "#/components/responses/Unauthorized" 403: $ref: "#/components/responses/Forbidden" 500: description: Internal Server Error content: application/json: schema: type: object properties: uniqid: $ref: "#/components/schemas/UniqID" userid: $ref: "#/components/schemas/UserID" success: $ref: "#/components/schemas/Failed" required: - uniqid - userid - success post: tags: - ueuse description: 投稿の削除が可能です。 operationId: ueuse/delete externalDocs: description: ソースコード url: https://github.com/Daichimarukana/uwuzu/blob/main/api/ueuse/delete.php security: - bearerAuth: [] requestBody: content: application/json: schema: type: object properties: uniqid: $ref: "#/components/schemas/UniqID" required: - uniqid responses: 200: description: OK content: application/json: schema: type: object properties: uniqid: $ref: "#/components/schemas/UniqID" userid: $ref: "#/components/schemas/UserID" success: $ref: "#/components/schemas/Success" required: - uniqid - userid - success 400: description: Bad Request content: application/json: schema: oneOf: - $ref: "#/components/schemas/APIAuthFailed" - $ref: "#/components/schemas/InputNotFound" 401: $ref: "#/components/responses/Unauthorized" 403: $ref: "#/components/responses/Forbidden" 500: description: Internal Server Error content: application/json: schema: type: object properties: uniqid: $ref: "#/components/schemas/UniqID" userid: $ref: "#/components/schemas/UserID" success: $ref: "#/components/schemas/Failed" required: - uniqid - userid - success /ueuse/bookmark/: summary: /ueuse/bookmark/ get: tags: - ueuse description: ログインしているユーザーのブックマークを取得できます。 operationId: ueuse/bookmark externalDocs: description: ソースコード url: https://github.com/Daichimarukana/uwuzu/blob/main/api/ueuse/bookmark/index.php security: - bearerAuth: [] parameters: - limit: $ref: "#/components/parameters/limit" - page: $ref: "#/components/parameters/page" responses: 200: description: OK content: application/json: schema: type: object properties: "0": $ref: "#/components/schemas/ueuse" "1": $ref: "#/components/schemas/ueuse" success: $ref: "#/components/schemas/Success" required: - success 400: description: Bad Request content: application/json: schema: $ref: "#/components/schemas/APIAuthFailed" 401: $ref: "#/components/responses/Unauthorized" 403: $ref: "#/components/responses/Forbidden" 500: description: Internal Server Error content: application/json: schema: type: object properties: error_code: title: エラーコード type: string enum: - ueuse_not_found success: $ref: "#/components/schemas/Failed" required: - error_code - success post: tags: - ueuse description: ログインしているユーザーのブックマークを取得できます。 operationId: ueuse/bookmark externalDocs: description: ソースコード url: https://github.com/Daichimarukana/uwuzu/blob/main/api/ueuse/bookmark/index.php security: - bearerAuth: [] requestBody: content: application/json: schema: type: object properties: limit: $ref: "#/components/schemas/Limit" page: $ref: "#/components/schemas/Page" responses: 200: description: OK content: application/json: schema: type: object properties: "0": $ref: "#/components/schemas/ueuse" "1": $ref: "#/components/schemas/ueuse" success: $ref: "#/components/schemas/Success" required: - success 400: description: Bad Request content: application/json: schema: $ref: "#/components/schemas/APIAuthFailed" 401: $ref: "#/components/responses/Unauthorized" 403: $ref: "#/components/responses/Forbidden" 500: description: Internal Server Error content: application/json: schema: type: object properties: error_code: title: エラーコード type: string enum: - ueuse_not_found success: $ref: "#/components/schemas/Failed" required: - error_code - success /favorite/change: summary: /favorite/change get: tags: - favorite description: いいねを追加・削除できます。 operationId: favorite/change externalDocs: description: ソースコード url: https://github.com/Daichimarukana/uwuzu/blob/main/api/favorite/change.php security: - bearerAuth: [] parameters: - uniqid: $ref: "#/components/parameters/uniqidRequired" responses: 200: description: OK content: application/json: schema: type: object properties: favorite_list: title: いいねしたユーザー type: string description: 更新後が表示され、`,`区切りの`string`型です。 example: ",admin" success: $ref: "#/components/schemas/Success" required: - favorite_list - success 400: description: Bad Request content: application/json: schema: oneOf: - $ref: "#/components/schemas/APIAuthFailed" - $ref: "#/components/schemas/InputNotFound" 401: $ref: "#/components/responses/Unauthorized" 403: $ref: "#/components/responses/Forbidden" post: tags: - favorite description: いいねを追加・削除できます。 operationId: favorite/change externalDocs: description: ソースコード url: https://github.com/Daichimarukana/uwuzu/blob/main/api/favorite/change.php security: - bearerAuth: [] requestBody: content: application/json: schema: type: object properties: uniqid: $ref: "#/components/schemas/UniqID" required: - uniqid responses: 200: description: OK content: application/json: schema: type: object properties: favorite_list: title: いいねしたユーザー type: string description: 更新後が表示され、`,`区切りの`string`型です。 example: ",admin" success: $ref: "#/components/schemas/Success" required: - favorite_list - success 400: description: Bad Request content: application/json: schema: oneOf: - $ref: "#/components/schemas/APIAuthFailed" - $ref: "#/components/schemas/InputNotFound" 401: $ref: "#/components/responses/Unauthorized" 403: $ref: "#/components/responses/Forbidden" /favorite/get: summary: /favorite/get get: tags: - favorite description: いいねの情報を取得できます。 operationId: favorite/get externalDocs: description: ソースコード url: https://github.com/Daichimarukana/uwuzu/blob/main/api/favorite/get.php security: - bearerAuth: [] parameters: - uniqid: $ref: "#/components/parameters/uniqidRequired" responses: 200: description: OK content: application/json: schema: type: object properties: favorite_list: title: いいねしたユーザー type: string description: "`,`区切りの`string`型です。" example: ",admin" success: $ref: "#/components/schemas/Success" required: - favorite_list - success 400: description: Bad Request content: application/json: schema: oneOf: - $ref: "#/components/schemas/APIAuthFailed" - $ref: "#/components/schemas/InputNotFound" 401: $ref: "#/components/responses/Unauthorized" 403: $ref: "#/components/responses/Forbidden" post: tags: - favorite description: いいねの情報を取得できます。 operationId: favorite/get externalDocs: description: ソースコード url: https://github.com/Daichimarukana/uwuzu/blob/main/api/favorite/get.php security: - bearerAuth: [] requestBody: content: application/json: schema: type: object properties: uniqid: $ref: "#/components/schemas/UniqID" required: - uniqid responses: 200: description: OK content: application/json: schema: type: object properties: favorite_list: title: いいねしたユーザー type: string description: "`,`区切りの`string`型です。" example: ",admin" success: $ref: "#/components/schemas/Success" required: - favorite_list - success 400: description: Bad Request content: application/json: schema: oneOf: - $ref: "#/components/schemas/APIAuthFailed" - $ref: "#/components/schemas/InputNotFound" 401: $ref: "#/components/responses/Unauthorized" 403: $ref: "#/components/responses/Forbidden" /token/get: summary: /token/get get: tags: - token description: APIアクセストークンを1回だけ取得できます。 operationId: token/get externalDocs: description: ソースコード url: https://github.com/Daichimarukana/uwuzu/blob/main/api/token/get.php security: - {} parameters: - session: name: session in: query schema: title: セッションID type: string example: eb774fe1-f826-9d2c-3296-de1db548b290 format: uuid required: true responses: 200: description: OK content: application/json: schema: type: object properties: success: $ref: "#/components/schemas/Success" username: title: ユーザー名 type: string example: あどみん userid: $ref: "#/components/schemas/UserID" token: title: APIトークン type: string example: LLOC2lHPVoPqCqKWmvbdcdo9DmAHyySpBwqxseohtYilob85A8g9Ebd9m9UbERw9 required: - success - username - userid - token 400: description: Bad Request content: application/json: schema: oneOf: - $ref: "#/components/schemas/InputNotFound" - type: object properties: error_code: title: エラーコード type: string enum: - critical_error_userdata_not_found - session_invalid success: $ref: "#/components/schemas/Failed" required: - error_code - success post: tags: - token description: APIアクセストークンを1回だけ取得できます。 operationId: token/get externalDocs: description: ソースコード url: https://github.com/Daichimarukana/uwuzu/blob/main/api/token/get.php security: - {} requestBody: content: application/json: schema: type: object properties: session: title: セッションID type: string example: eb774fe1-f826-9d2c-3296-de1db548b290 required: - session responses: 200: description: OK content: application/json: schema: type: object properties: success: $ref: "#/components/schemas/Success" username: title: ユーザー名 type: string example: あどみん userid: $ref: "#/components/schemas/UserID" token: title: APIトークン type: string example: LLOC2lHPVoPqCqKWmvbdcdo9DmAHyySpBwqxseohtYilob85A8g9Ebd9m9UbERw9 required: - success - username - userid - token 400: description: Bad Request content: application/json: schema: oneOf: - $ref: "#/components/schemas/InputNotFound" - type: object properties: error_code: title: エラーコード type: string enum: - critical_error_userdata_not_found - session_invalid success: $ref: "#/components/schemas/Failed" required: - error_code - success /token/inquiry: summary: /token/inquiry get: tags: - token description: APIアクセストークンの情報を照会できます。 operationId: token/inquiry externalDocs: description: ソースコード url: https://github.com/Daichimarukana/uwuzu/blob/main/api/token/inquiry.php security: - bearerAuth: [] responses: 200: description: OK content: application/json: schema: type: object properties: allow_scopes: title: 付与された権限 type: array items: title: 権限 type: string enum: - read:me - write:me - read:users - read:ueuse - write:ueuse - write:follow - write:favorite - read:notifications - write:notifications - write:bookmark - read:bookmark username: title: ユーザー名 type: string example: あどみん userid: $ref: "#/components/schemas/UserID" success: $ref: "#/components/schemas/Success" required: - allow_scopes - username - userid - success 400: description: Bad Request content: application/json: schema: type: object properties: error_code: title: エラーコード type: string enum: - this_account_has_been_frozen success: $ref: "#/components/schemas/Failed" required: - error_code - success 500: description: Internal Server Error content: application/json: schema: type: object properties: error_code: title: エラーコード type: string enum: - could_not_complete success: $ref: "#/components/schemas/Failed" required: - error_code - success post: tags: - token description: APIアクセストークンの情報を照会できます。 operationId: token/inquiry externalDocs: description: ソースコード url: https://github.com/Daichimarukana/uwuzu/blob/main/api/token/inquiry.php security: - bearerAuth: [] responses: 200: description: OK content: application/json: schema: type: object properties: allow_scopes: title: 付与されている権限 type: array items: title: 権限 type: string enum: - read:me - write:me - read:users - read:ueuse - write:ueuse - write:follow - write:favorite - read:notifications - write:notifications - write:bookmark - read:bookmark username: title: ユーザー名 type: string example: あどみん userid: $ref: "#/components/schemas/UserID" success: $ref: "#/components/schemas/Success" required: - allow_scopes - username - userid - success 400: description: Bad Request content: application/json: schema: type: object properties: error_code: title: エラーコード type: string enum: - this_account_has_been_frozen success: $ref: "#/components/schemas/Failed" required: - error_code - success 500: description: Internal Server Error content: application/json: schema: type: object properties: error_code: title: エラーコード type: string enum: - could_not_complete success: $ref: "#/components/schemas/Failed" required: - error_code - success /auth: summary: /auth get: tags: - token - auth description: | ユーザー認可によるAPIトークン取得方法の確認ページです。 operationId: auth externalDocs: description: ソースコード url: https://github.com/Daichimarukana/uwuzu/blob/main/api/auth.php parameters: - session: name: session description: | UUIDなど、一意さの担保される方法でセッションIDを発行してください! > [!CAUTION] > 発行したセッションIDは絶対に使い回さないでください! > また、絶対に第三者に公開しないでください! in: query schema: title: セッションID type: string example: eb774fe1-f826-9d2c-3296-de1db548b290 required: true - client: name: client in: query schema: title: アプリケーション名 type: string example: uwuzuクライアント required: true - scope: title: 要求する権限 name: scope description: | `,`区切りで以下の表の権限を参考にしてください。 > [!CAUTION] > 権限を0にすることはできません。 > 1つ以上の権限を含めてください。 | 権限名 | 権限の内容 | | - | - | | read:me | 重要な情報以外の自分のアカウントの情報を見る | | write:me | 重要な情報以外の自分のアカウントの情報を変更する | | read:ueuse | ユーズを見る | | read:users | 自分以外のユーザーを見る | | write:ueuse | ユーズの作成・削除をする | | write:follow | フォロー・フォロー解除をする | | write:favorite | いいねをする・解除をする | | read:notifications | 通知を見る | | write:notifications | 通知を既読にする | | write:bookmark | ブックマークにユーズを追加・削除する | | read:bookmark | ブックマークを見る | in: query schema: type: string example: read:account,read:ueuse required: true - icon: name: icon in: query schema: title: アプリケーションアイコン画像 type: string format: URL example: https://example.com/application/icon.png - about: name: about in: query schema: title: アプリケーションの説明 type: string example: uwuzuのクライアントです - callback: name: callback in: query schema: title: コールバック先URL type: string example: https://example.com/application/callback components: securitySchemes: bearerAuth: type: http scheme: bearer pathItems: ServerInfoAPI: tags: - serverinfo-api description: サーバー情報を取得できます。 operationId: serverinfo-api externalDocs: description: ソースコード url: https://github.com/Daichimarukana/uwuzu/blob/main/api/serverinfo-api.php security: - {} responses: 200: description: OK content: application/json: schema: type: object properties: server_info: $ref: "#/components/schemas/ServerInfo" software: title: サーバーソフトウェア type: object properties: name: title: 名称 type: string example: uwuzu version: title: バージョン type: string example: 1.6.5 pattern: \d+\.\d+\.\d+ repository: title: リポジトリ type: string example: https://github.com/Daichimarukana/uwuzu required: - name - version - repository server_notice: $ref: "#/components/schemas/ServerNotice" required: - server_info - software - server_notice MeAPI: tags: - me description: | 自分のユーザー情報を取得できます。 メールアドレスなど一部の情報は取得できません。 operationId: me externalDocs: description: ソースコード url: https://github.com/Daichimarukana/uwuzu/blob/main/api/me/index.php responses: 200: description: OK content: application/json: schema: $ref: "#/components/schemas/User" 400: $ref: "#/components/responses/APIAuthFailed" 401: $ref: "#/components/responses/Unauthorized" 403: $ref: "#/components/responses/Forbidden" 500: description: Internal Server Error content: application/json: schema: type: object properties: error_code: title: エラーコード type: string enum: - critical_error_userdata_not_found success: $ref: "#/components/schemas/Failed" required: - error_code - success NotificationRead: tags: - me - notification description: 自分宛の通知を一括既読できます。 operationId: me/notification/read externalDocs: description: ソースコード url: https://github.com/Daichimarukana/uwuzu/blob/main/api/me/notification/read.php responses: 200: $ref: "#/components/responses/SuccessOnly" 400: $ref: "#/components/responses/APIAuthFailed" 401: $ref: "#/components/responses/Unauthorized" 403: $ref: "#/components/responses/Forbidden" 500: description: Internal Server Error content: application/json: schema: type: object properties: error_code: $ref: "#/components/schemas/UpdateFailed" success: $ref: "#/components/schemas/Failed" required: - error_code - success responses: SuccessOnly: description: OK content: application/json: schema: type: object properties: success: $ref: "#/components/schemas/Success" required: - success InputNotFound: description: Bad Request content: application/json: schema: $ref: "#/components/schemas/InputNotFound" Unauthorized: description: Unauthorized content: application/json: schema: type: object properties: error_code: $ref: "#/components/schemas/InputNotFound" success: $ref: "#/components/schemas/Failed" required: - error_code - success Forbidden: description: Forbidden content: application/json: schema: type: object properties: error_code: title: エラーコード type: string enum: - token_invalid success: $ref: "#/components/schemas/Failed" required: - error_code - success APIAuthFailed: description: Bad Request content: application/json: schema: $ref: "#/components/schemas/APIAuthFailed" UserDataNotFound: description: Internal Server Error content: application/json: schema: type: object properties: error_code: title: エラーコード type: string enum: - critical_error_userdata_not_found success: $ref: "#/components/schemas/Failed" required: - error_code - success NotificationAPI: description: OK content: application/json: schema: type: object properties: "0": $ref: "#/components/schemas/Notification" success: $ref: "#/components/schemas/Success" required: - "0" - success SettingsCountOver: description: Content Too Large content: application/json: schema: type: object properties: error_code: title: エラーコード type: string enum: - ユーザーネームは50文字以内で入力してください。(USERNAME_OVER_MAX_COUNT) - プロフィールは1024文字以内で入力してください。(INPUT_OVER_MAX_COUNT) success: $ref: "#/components/schemas/Failed" required: - error_code - success FollowSuccess: description: OK content: application/json: schema: type: object properties: userid: $ref: "#/components/schemas/UserID" success: $ref: "#/components/schemas/Success" required: - userid - success FollowBadReq: description: Bad Request content: application/json: schema: oneOf: - type: object properties: error_code: title: エラーコード type: string enum: - you_cant_it_to_yourself - input_not_found success: $ref: "#/components/schemas/Failed" required: - error_code - success - $ref: "#/components/schemas/APIAuthFailed" FollowInternalServerError: description: Internal Server Error content: application/json: schema: type: object properties: error_code: title: エラーコード type: string enum: - critical_error_userdata_not_found - could_not_complete success: $ref: "#/components/schemas/Failed" required: - error_code - success schemas: InputNotFound: title: パラメータ不足 type: object properties: error_code: $ref: "#/components/schemas/InputNotFound" success: $ref: "#/components/schemas/Failed" required: - error_code - success APIAuthFailed: title: API認証失敗 type: object properties: error_code: type: string description: エラーコード enum: - this_account_has_been_frozen - token_invalid - not_allow_scope success: $ref: "#/components/schemas/Failed" required: - error_code - success Notification: title: 通知 type: object properties: from: type: object description: 通知元ユーザー properties: username: type: string description: ユーザー名 example: tester userid: $ref: "#/components/schemas/UserID" user_icon: type: string description: アイコン画像 format: URL example: /usericons/XXXXXXXXXX-XXXXX.png user_header: type: string description: ヘッダー画像 format: URL example: /usericons/XXXXXXXXXX-XXXXX.png required: - username - userid - user_icon - user_header category: type: string description: カテゴリ enum: - system - favorite - reply - reuse - ueuse - follow - mention - other - login title: type: string description: タイトル enum: - testerさんが返信しました! - testerさんがメンションしました! - testerさんがリユーズしました! - testerさんがいいねしました! - testerさんが返信しました! - testerさんにフォローされました!🎉 - 🚪ログイン通知🚪 text: type: string description: 本文 example: test1 datetime: type: string description: 通知時刻 format: date example: 2025-08-02 18:12:29 is_checked: type: boolean description: 既読かどうか enum: - true - false required: - from - category - title - text - datetime - is_checked ServerNotice: title: お知らせ type: array items: type: - object - string properties: title: title: タイトル type: string example: お知らせ! note: title: 本文 type: string example: サービスを開始しました! editor: title: 配信者 type: string example: admin datetime: title: 配信時刻 type: string format: date example: 2024-03-29 14:35:06 required: - title - note - editor - datetime required: - server_info - software - server_notice ServerInfo: title: サーバー概要 type: object properties: server_name: title: 名称 type: string example: 新規さば server_icon: title: アイコン画像 type: string format: URL example: /img/uwuzu_icon.png server_description: title: 説明文 type: string example: ようこそ新規さばへ!etc... adminstor: title: 運営者 type: object properties: name: title: 名前 type: string example: あどみん email: title: メールアドレス type: string example: admin@uwuzu.example.com required: - name - email terms_url: title: 利用規約 type: string format: URL example: /rule/terms privacy_policy_url: title: プライバシーポリシー type: string format: URL example: /rule/privacypolicy max_ueuse_length: title: 文字数制限 type: number example: invitation_code: title: 招待制かどうか type: boolean enum: - true - false account_migration: title: アカウント移行が有効かどうか type: boolean enum: - true - false usage: title: カウント数 type: object properties: users: title: ユーザー数 type: number example: 120 ueuse: title: ユーズ数 type: number example: 5000 required: - users - ueuse required: - server_name - server_icon - server_description - adminstor - terms_url - privacy_policy_url - max_ueuse_length - invitation_code - account_migration - usage User: title: ユーザー type: object properties: username: title: ユーザー名 type: string maximum: 50 example: あどみん userid: $ref: "#/components/schemas/UserID" profile: title: プロフィール type: string maximum: 1024 example: あどみんです! user_icon: title: アイコン画像 type: string format: URL example: /usericons/XXXXXXXXXX-XXXXX.png user_header: title: ヘッダー画像 type: string format: URL example: /usericons/XXXXXXXXXX-XXXXX.png registered_date: title: 登録時刻 type: string example: 2024-03-09 02:19:04 format: date followee: title: フォロー type: array items: $ref: "#/components/schemas/UserID" followee_cnt: title: フォロー数 type: number example: 1 follower: title: フォロワー type: array items: $ref: "#/components/schemas/UserID" follower_cnt: title: フォロワー数 type: number example: 1 ueuse_cnt: title: ユーズ数 type: number example: 38 isBot: title: BOTかどうか type: boolean description: enum: - true - false isAdmin: title: 管理者かどうか type: boolean enum: - true - false role: title: ロール type: array items: title: 詳細 type: object properties: name: title: 名称 type: string example: ゆーざー color: title: 色(16進数) type: string example: CCCCCC effect: title: エフェクト type: string enum: - none - shine - rainbow id: title: ロールID type: string example: user required: - name - color - effect - id language: title: 言語 type: string enum: - ja-JP required: - username - userid - profile - user_icon - user_header - registered_date - followee - followee_cnt - follower - follower_cnt - ueuse_cnt - isBot - isAdmin - role - language ueuse: title: ユーズ type: object properties: uniqid: $ref: "#/components/schemas/UniqID" replyid: title: 返信先ユーズ(ユニークID) type: string description: 返信でない場合は`""`が返されます example: 1vgsg0v3tzv reuseid: title: 引用/リユーズ元ユーズ(ユニークID) type: string description: 引用/リユーズでない場合は`""`が返されます example: 1vgsg0v3tzv text: title: 本文 type: string maximum: example: "Test\nTest" account: title: 投稿アカウント type: object properties: username: title: ユーザー名 type: string maximum: 50 example: あどみん userid: $ref: "#/components/schemas/UserID" user_icon: title: アイコン画像 type: string format: URL example: /usericons/XXXXXXXXXX-XXXXX.png user_header: title: ヘッダー画像 type: string format: URL example: /userheads/XXXXXXXXXX-XXXXX.png is_bot: title: BOTかどうか type: boolean enum: - true - false required: - username - userid - user_icon - user_header - is_bot photo1: title: 画像1 type: string description: 添付されていない場合は`""`が返されます format: URL example: /ueuseimages/XXXXXXXXXX-XXXXX.png photo2: title: 画像2 type: string description: 添付されていない場合は`""`が返されます format: URL example: /ueuseimages/XXXXXXXXXX-XXXXX.png photo3: title: 画像3 type: string description: 添付されていない場合は`""`が返されます format: URL example: /ueuseimages/XXXXXXXXXX-XXXXX.png photo4: title: 画像4 type: string description: 添付されていない場合は`""`が返されます format: URL example: /ueuseimages/XXXXXXXXXX-XXXXX.png video1: title: 動画 type: string description: 添付されていない場合は`""`が返されます format: URL example: /ueusevideos/XXXXXXXXXX-XXXXX.mp4 favorite: title: いいね type: array items: $ref: "#/components/schemas/UserID" favorite_cnt: title: いいね数 type: number example: 1 reply_cnt: title: 返信数 type: number example: 1 reuse_cnt: title: 引用/リユーズ数 type: number example: 1 datetime: title: 投稿時刻 type: string example: 2024-04-19 20:33:13 format: date abi: title: 追記 type: string description: 追記がない場合は`""`が返されます example: "" abidatetime: title: 追記時刻 type: string description: 追記がない場合は`0000-00-00 00:00:00`が返されます example: 2024-04-19 20:33:13 format: date nsfw: title: NSFWかどうか type: boolean enum: - true - false required: - uniqid - replyid - reuseid - text - account - photo1 - photo2 - photo3 - photo4 - video1 - favorite - favorite_cnt - reply_cnt - reuse_cnt - datetime - abi - abidatetime - nsfw Failed: title: 成功かどうか type: boolean enum: - false Page: title: ページ数 type: number default: 1 example: 5 Limit: title: 制限数 type: number maximum: 100 default: 25 example: 60 UpdateFailed: title: エラーコード type: string enum: - update_failed UserID: title: ユーザーID type: string maximum: 20 example: admin Success: title: 成功かどうか type: boolean enum: - true UniqID: title: ユニークID type: string example: 1vgsg0v3tzv parameters: page: name: page in: query schema: title: ページ数 type: number default: 1 example: 5 limit: name: limit in: query schema: title: 制限数 type: number maximum: 100 default: 25 example: 60 pageRequired: name: page in: query schema: title: ページ数 type: number default: 1 example: 5 required: true limitRequired: name: limit in: query schema: title: 制限数 type: number maximum: 100 default: 25 example: 60 required: true useridRequired: name: userid in: query schema: title: ユーザーID type: string maximum: 20 example: admin required: true uniqidRequired: name: uniqid in: query schema: title: ユニークID type: string example: 1vgsg0v3tzv required: true