Gymnee

Gymnee API

記録・自己ベスト・体重・パーティの状況を読み、記録を足す REST API です。MCP の道具と同じ定義から作っているので、できることは同じです。

API リファレンス(全操作の入力と出力) ・ openapi.json

はじめかた

  1. アプリの その他 > 連携 > API キーを作る で、名前とできることを選んで作ります。キーは作った直後の 1 回しか表示されません。
  2. キーを Authorization ヘッダーに付けて呼びます。
    curl -s https://api.gymnee.app/v1/summary \
      -H "Authorization: Bearer $GYMNEE_TOKEN"
  3. 返ってくるのは {"data": …} の形の JSON です。

記録を足す

「記録を足す」を付けたキーで呼べます。種目は名前か id で指定します。名前が一つに決まらないときは 422 と候補が返るので、選び直して送り直してください。

curl -s https://api.gymnee.app/v1/workouts \
  -H "Authorization: Bearer $GYMNEE_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: 2026-11-05-morning" \
  -d '{
    "name": "胸の日",
    "durationMinutes": 45,
    "exercises": [
      { "name": "ベンチプレス", "sets": [{ "weightKg": 60, "reps": 10 }, { "weightKg": 62.5, "reps": 8 }] },
      { "name": "腕立て伏せ", "sets": [{ "reps": 20 }] }
    ]
  }'

権限

権限できること
read記録・自己ベスト・体重(アプリで記録した分。ヘルスケアから取り込んだ値は出しません)・パーティの状況を読む(どのキーにも付きます)
workouts:writeワークアウトの記録を足す
coach:writeアプリのコーチ画面にメニューを提案する

権限が足りない操作は 403 で、WWW-Authenticate ヘッダーに要る権限が入ります。

決まりごと

エラーの形

{ "error": { "code": "unresolved", "message": "記録の中身を確かめて", "details": [ … ] } }
400入力の形が違う(知らない項目も受け付けません)
401キーが無い・消された
403権限が足りない
404見つからない
422種目が決まらない・値が足りない(details に理由と候補)
429呼び出しが多すぎる

OAuth で使う

MCP クライアントのように OAuth 2.1 に対応したものは、キーを使わずにつなげます。認可サーバーの情報は https://api.gymnee.app/.well-known/oauth-authorization-server にあります(動的クライアント登録・Client ID Metadata Document・PKCE に対応)。ログインの代わりに、利用者が iPhone の Gymnee で承認します。

キーはパスワードと同じように扱ってください。コードに書き込んで公開しない・人に渡さない。漏れたら その他 > 連携 ですぐに消せます。