PlainMote

HTTP API

スクリプトは個人用アクセストークンを付けて /api/v1 を呼び出します。トークンは plainmote login と同じくデバイス認可で取得します。

トークンの取得
  1. コードを発行します。scope は read または write、device は承認時と「認可済みアプリ」に表示される名前です。

    $ curl -X POST -H 'Content-Type: application/json' \ -d '{"scope": "read", "device": "my-script"}' https://plainmote.link/api/v1/device/code
  2. サインイン済みのブラウザで https://plainmote.link/cli/device を開き、レスポンスの user_code を入力して許可します。

  3. interval 秒ごとに device_code でポーリングします。許可されるまでは 400 authorization_pending が返り、許可されると access_token が返ります。

    $ curl -X POST -H 'Content-Type: application/json' \ -d '{"device_code": "…"}' https://plainmote.link/api/v1/device/token
  4. トークンは Authorization ヘッダーで送ります。アドレスや Cookie に入れたトークンは受け付けません。

    $ curl -H "Authorization: Bearer $PLAINMOTE_TOKEN" https://plainmote.link/api/v1/resources
エンドポイント
リクエスト権限用途
POST /api/v1/device/codeトークン不要コードを発行
POST /api/v1/device/tokenトークン不要コードをトークンと交換
GET /api/v1/meread使用中のアカウントとトークン
GET /api/v1/keyringread暗号化リソース用の、アカウントのキーリング
GET /api/v1/resourcesreadリソースを一覧表示(q で名前、tag でタグを絞り込み)
GET /api/v1/resources/{id}readリソースの詳細
GET /api/v1/resources/{id}/contentread内容をそのままのバイト列で読み取り
PUT /api/v1/resources/{id}/contentwrite新しいバージョンとして保存(If-Match に編集元のバージョンを指定)
POST /api/v1/resourceswritemultipart の content ファイルからリソースを作成(tag フィールドでタグ付け)
PATCH /api/v1/resources/{id}/tagswriteリソースのタグを追加・削除
GET /api/v1/tagsreadアカウントのタグと件数を一覧表示
POST /api/v1/quick-shareswriteクイック共有を作成してリンクを返す
DELETE /api/v1/tokenread使用中のトークンを取り消す
規約
形式JSON。ただし内容の読み取りと保存はそのままのバイト列です。時刻は UTC の RFC 3339 形式です。
エラー{"error": "<code>", "message": "…"}
トークンサインインから 90 日間有効です。読み取り専用のトークンで書き込み系を呼ぶと 403 が返ります。
レート制限トークンごとに毎分 300 回まで。超えると 429 rate_limited が返ります。
暗号化された内容暗号文のまま返され、クライアントがマスターパスワードで復号します。
対象外リソースの削除、共有リンクの管理、アクセス履歴の閲覧。

リクエストとレスポンスの形式を含む完全なリファレンスはソースコードにあります: docs/api.md