こんな流れ。
/api/v1/accounts/verify_credentials
で自分自身の ID を得る/api/v1/accounts/:id/statuses
で投稿のリストを得る/api/v1/statuses/:id
で一件ずつ削除する
Mastodon インスタンスのポリシーによるのかもしれないが、投稿削除 API エンドポイントの rate limit がかなり少なくて、 30 分に 30 回しかアクセスできなかった。 curl で GET なエンドポイントを叩いたときは rate limit が 5 分?で 300 回くらいだったので User-Agent 偽装してみたけど見当はずれだった。投稿削除の rate limit は Web 版から操作したときと共通らしく、ブラウザからも削除できなくなったりした。
一度に削除できる件数が少ない、かつ時間を置かないといけないので、 crontab に追加するなり Jenkins job を作るなりして毎時実行させ、一日がかりで全部消した。
参考 documentation/API.md at master · tootsuite/documentation · GitHub