認証
Authorization: Bearer <element-token>(または X-Element-Token)。 トークンは管理コンソールで Element ごとに発行します。/api/health 以外で必須。
/api/health認証不要ヘルスチェック — サービスの死活確認。認証不要。
Accept: application/json
curl https://element-api.elc-elements.net/api/health
{
"ok": true,
"service": "elc-elements-credential-api",
"time": "2026-06-13T07:42:55+00:00"
}/api/credentials/metaメタ情報(軽量ポーリング) — 本体を返さず revision / hash のみ。変更検知の高頻度ポーリング用(アクセス台帳には記録されません)。
Authorization: Bearer <element-token>
curl https://element-api.elc-elements.net/api/credentials/meta \ -H "Authorization: Bearer <element-token>"
{
"ok": true,
"exists": true,
"revision": 4,
"updated_at": "2026-06-13T07:39:03+00:00",
"hash": "a9cf5fea705ff696"
}/api/credentials認証情報の取得 — 保存中の認証情報エンベロープを返す。未保存なら 404 not_found。各取得はアクセス台帳に記録。
Authorization: Bearer <element-token>
curl https://element-api.elc-elements.net/api/credentials \ -H "Authorization: Bearer <element-token>"
{
"ok": true,
"revision": 4,
"updated_at": "2026-06-13T07:39:03+00:00",
"hash": "a9cf5fea705ff696",
"credentials": {
"claudeAiOauth": {
"accessToken": "sk-ant-oat01-...",
"refreshToken": "sk-ant-ort01-...",
"expiresAt": 1781234567890,
"scopes": ["user:inference"]
}
}
}/api/credentials/available割当済み認証情報の一覧(選択用) — この Element に割り当てられた認証情報のうち Anthropic(OAuth / API キー両方)を一覧。シークレットは返しません。Element の選択 UI 用。
Authorization: Bearer <element-token>
curl https://element-api.elc-elements.net/api/credentials/available \ -H "Authorization: Bearer <element-token>"
{
"ok": true,
"active_credential_id": 12,
"credentials": [
{ "id": 12, "name": "anthropic-max", "auth_type": "oauth",
"provider": "anthropic", "account_email": "team@example.com",
"revision": 4, "has_payload": true, "is_active": true },
{ "id": 18, "name": "anthropic-api", "auth_type": "api",
"provider": "anthropic", "has_payload": true, "is_active": false }
]
}/api/credentials/select使用する認証情報を指定 — この Element が使う認証情報を選択(active 化)。割当済み かつ Anthropic のみ。以後 GET /api/credentials が選択分を返します。
Authorization: Bearer <element-token> Content-Type: application/json
{ "credential_id": 18 }curl -X POST https://element-api.elc-elements.net/api/credentials/select \
-H "Authorization: Bearer <element-token>" \
-H "Content-Type: application/json" \
-d '{"credential_id":18}'{
"ok": true,
"active_credential_id": 18,
"name": "anthropic-api",
"auth_type": "api"
}/api/credentials認証情報の保存(全置換) — { credentials: {...} } 形式、または claudeAiOauth を含む生オブジェクトを受理。任意 base_revision で楽観ロック(不一致なら 409)。revision は保存ごとに +1。
Authorization: Bearer <element-token> Content-Type: application/json
{
"credentials": {
"claudeAiOauth": {
"accessToken": "sk-ant-oat01-...",
"refreshToken": "sk-ant-ort01-...",
"expiresAt": 1781234567890,
"scopes": ["user:inference"]
}
},
"client": "elc-element/corone-host"
}curl -X PUT https://element-api.elc-elements.net/api/credentials \ -H "Authorization: Bearer <element-token>" \ -H "Content-Type: application/json" \ -d @credentials.json
{
"ok": true,
"revision": 5,
"updated_at": "2026-06-13T08:00:00+00:00",
"hash": "1a2b3c4d5e6f7a8b"
}/api/credentials認証情報の削除 — 保存済みエンベロープを削除する。
Authorization: Bearer <element-token>
curl -X DELETE https://element-api.elc-elements.net/api/credentials \ -H "Authorization: Bearer <element-token>"
{ "ok": true, "deleted": true }/api/usage使用量の自己申告 — Element が累積 Usage を送信。Element 別の最新スナップショットに upsert(冪等)。element はトークンから解決され、ボディでは詐称不可。
Authorization: Bearer <element-token> Content-Type: application/json
{
"client": "elc-element/corone-host",
"totals": { "turns": 412, "inputTokens": 8200000,
"outputTokens": 540000, "cost": 31.77 },
"rate_limit": { "session5hUtilization": 0.42,
"weekly7dUtilization": 0.61 }
}curl -X POST https://element-api.elc-elements.net/api/usage \ -H "Authorization: Bearer <element-token>" \ -H "Content-Type: application/json" \ -d @usage.json
{ "ok": true, "element": "corone", "stored": true }/api/oauth/token認証不要OAuth トークン交換(PKCE) — 認可コード + PKCE verifier を Element 用アクセストークンに交換(認証不要・コードと verifier が証明)。コードは設定画面の OAuth 接続フロー(/oauth/authorize の承認)で発行。発行されるのは通常の Element トークンで、以降の API で使用します。
Content-Type: application/json
{
"grant_type": "authorization_code",
"code": "<authorization-code>",
"redirect_uri": "https://<element>/oauth/callback",
"code_verifier": "<pkce-verifier>",
"client_id": "elc-element"
}curl -X POST https://element-api.elc-elements.net/api/oauth/token \ -H "Content-Type: application/json" \ -d @token-exchange.json
{
"ok": true,
"access_token": "elc-oauth-...",
"token_type": "Bearer",
"element": { "id": 52, "name": "adam", "slug": "adam" },
"scope": ""
}