電気料金比較シミュレーションAPI
ブラウザでリクエストを送ってレスポンスを確認できます:
https://npc-share.com/api-tester.html
基本情報
API名: 電気料金比較シミュレーションAPI
説明: 地域コード、契約容量(AまたはkVA)、検針月、月間電気使用量(kWh)、およびカスタムURLを基に、電気料金の計算および各種の情報提供を行うAPIです。
認証
タイプ: Bearer Token (APIキー)
使用方法: APIリクエストのヘッダーに Authorization: Bearer <あなたのAPIキー> を追加して認証情報を提供します。
エンドポイント情報
エンドポイントURL: https://npc-share.com/api/ec-estimator/calculate
メソッド: POST
Content-Type: application/json
リクエストパラメータ
area (必須): 地域コード
型: string(例: "1")
- 1 = "北海道"
- 2 = "東北"
- 3 = "北陸"
- 4 = "中部"
- 5 = "東京(関東)"
- 6 = "関西"
- 7 = "中国"
- 8 = "四国"
- 9 = "九州"
- 10 = "沖縄"
amp (必須): アンペア/契約容量
型: string(例: "amp10" / "kva6")
- amp0 = "関西・中国・四国の6kVA未満のプランと沖縄が対象"
- amp10 = "10A"
- amp15 = "15A"
- amp20 = "20A"
- amp30 = "30A"
- amp40 = "40A"
- amp50 = "50A"
- amp60 = "60A"
- kva6 = "6kVA"
- kva7 = "7kVA"
- kva8 = "8kVA"
- kva9 = "9kVA"
- kva10 = "10kVA"
- kva11 = "11kVA"
- kva12 = "12kVA"
- kva13 = "13kVA"
- kva14 = "14kVA"
- kva15 = "15kVA"
- kva16 = "16kVA"
- kva17 = "17kVA"
- kva18 = "18kVA"
- kva19 = "19kVA"
- kva20 = "20kVA"
- kva21 = "21kVA"
- kva22 = "22kVA"
- kva23 = "23kVA"
- kva24 = "24kVA"
- kva25 = "25kVA"
- kva26 = "26kVA"
- kva27 = "27kVA"
- kva28 = "28kVA"
- kva29 = "29kVA"
- kva30 = "30kVA"
- kva31 = "31kVA"
- kva32 = "32kVA"
- kva33 = "33kVA"
- kva34 = "34kVA"
- kva35 = "35kVA"
- kva36 = "36kVA"
- kva37 = "37kVA"
- kva38 = "38kVA"
- kva39 = "39kVA"
- kva40 = "40kVA"
- kva41 = "41kVA"
- kva42 = "42kVA"
- kva43 = "43kVA"
- kva44 = "44kVA"
- kva45 = "45kVA"
- kva46 = "46kVA"
- kva47 = "47kVA"
- kva48 = "48kVA"
- kva49 = "49kVA"
selectedMonth (必須): 検針月
型: string(例: "month1")
※指定値は month1 ~ month12 のいずれかです(month1=1月 … month12=12月)。
実際に採用された年月は、レスポンスの commonData.realyear(例: "2026年3月")および
commonData.realmonth(例: 3)に入ります。
realmonth は数値(月番号)です。
※「何年の◯月が採用されるか」は、毎月の更新タイミングで切り替わります。
翌月分への切り替えは毎月10~15日頃を目途に反映されます。
例:2026年2月時点で month3 を指定した場合、切替前後で採用年(commonData.realyear)が変わる可能性があります。
※下記は例であり、実際の採用年はレスポンスの commonData.realyear を参照してください。
- month1 = "(採用年の)1月"
- month2 = "(採用年の)2月"
- month3 = "(採用年の)3月"
- month4 = "(採用年の)4月"
- month5 = "(採用年の)5月"
- month6 = "(採用年の)6月"
- month7 = "(採用年の)7月"
- month8 = "(採用年の)8月"
- month9 = "(採用年の)9月"
- month10 = "(採用年の)10月"
- month11 = "(採用年の)11月"
- month12 = "(採用年の)12月"
※切替タイミング(毎月10~15日頃)直後は、キャッシュや反映順により見え方が変わる場合があります。最終的な採用年月は常に
commonData.realyear/commonData.realmonth を参照してください。
kWh (必須): 電気使用量
型: number または number文字列(例: 1000 / "1000")
0以上の整数(最大 9,999,999)
customUrl (必須): 専用URLの末尾
型: string(例: "55555")
basePlanId(任意): CO2差分算出の基準プランID
型: string(例: "101")
指定した場合、各プランの CO2 に co2.diff(基準との差分)が付きます。未指定の場合は差分は付きません。
例のレスポンスでは basePlanId: "101" が採用されています。
privateKey(任意): APIキー(ボディ送信用)
型: string
通常は Authorization ヘッダーに指定してください。ボディ指定は互換用途です。
数値の丸めについて(重要)
※/api/ec-estimator/calculate は計算精度を優先するため、金額などが小数で返ることがあります(表示側で適宜丸めてください)。
※Webフォーム(画面表示)では、表示安定のために 整数に丸めた値 を返す実装になっている場合があります。
レスポンス構造
success: 処理の成功または失敗(true/false)
data: 計算結果のオブジェクト。planData と commonData を含みます。
data.planData(オブジェクト)
キーが「プランID」、値が「計算結果+カスタムプラン情報+CO2情報+単価情報」を持つオブジェクトです。
- ans: 月額料金
- amp: 基本料金
- nencho: 調整額(燃料費調整等)
- yoryo: 容量拠出金相当額
- yoryoall: 年間の容量拠出金相当額(プランによって存在)
- custom_plan_name: プラン名称(カスタム設定由来)※存在する場合
- custom_plan_description: プラン説明(カスタム設定由来)※存在する場合
- custom_plan_url: プランURL(カスタム設定由来)※存在する場合
- co2: CO2情報オブジェクト(後述)
- unit: kWh単価(円/kWh)をまとめたオブジェクト(後述)
※金額(ans等)は小数が返る場合があります(例: 36541.600000000006)。表示時に丸める場合はフロント側で整形してください。
data.commonData(共通データ)
- monthsaienefukakin: 再エネ賦課金(月額)
- saienefukakinall: 再エネ賦課金(年間)
- realyear: 実際の年月(例:
"2026年3月") - realmonth: 実際の月(数値)(例:
3) - co2Dataset: CO2係数データセット情報(後述)
- inputKwh: CO2算出に使った入力kWh(month/year)
- basePlanId: 差分算出に使った基準プランID
- unit: kWh単価(円/kWh)をまとめたオブジェクト(後述)
※inputKwh.year は month * 12 の固定ではなく、内部の算出ロジックにより小数になる場合があります(例:
10546.679072386763)。
kWh単価(unit)
一部の金額項目は、入力kWhで割った「kWh単価(円/kWh)」を unit として返します。
planData[planId].unit
unit.nencho_yen_per_kwh: nencho の円/kWh(kWhが0の場合はnull/または計算不能扱いの可能性)unit.monthsaienefukakin_yen_per_kwh: monthsaienefukakin の円/kWh(kWhが0の場合はnull/または計算不能扱いの可能性)
commonData.unit
unit.monthsaienefukakin_yen_per_kwh: 再エネ賦課金(月額)の円/kWh
CO2情報(co2)
CO2は「係数(t-CO2/kWh)」を解決し、月/年の排出量をkg整数で確定した上で、表示安定化のためtもkgから再生成します。 また、基準プランがある場合は差分(kg整数)も付与します。
係数の採用ルール(resolverの優先順位)
providerKey / menuKey / overrideAdjusted_t_per_kwh を元に、採用する係数(adjusted_t_per_kwh)を決定します。
- override(最優先):
overrideAdjusted_t_per_kwhが number なら採用(0 も明示overrideとして採用) - menu:
providers[providerKey].menus[menuKey].adjusted_t_per_kwhが number なら採用(残差メニューもOK) - provider_reference:
providers[providerKey].provider_reference.adjusted_t_per_kwhが number なら採用(最後の代替) - 上記すべて無ければ no_factor(CO2算出不可)
co2(成功時)
- ok: true
- factorType: "adjusted"
- factorSource: 採用元(
"menu"/"provider_reference"/"override") - adjusted_t_per_kwh: 採用された係数(t-CO2/kWh)
- month:
- kg: 月間排出量(kg、整数)
- t: 月間排出量(t、少数。既定は小数3桁)
- year:
- kg: 年間排出量(kg、整数)
- t: 年間排出量(t、少数。既定は小数3桁)
- gasoline:
- month_liters_equiv: 月間排出量のガソリン換算(L、既定は小数1桁)
- year_liters_equiv: 年間排出量のガソリン換算(L、既定は小数1桁)
- meta: 係数解決に使ったメタ情報(provider/menu、データセット情報等)
co2(失敗時)
- ok: false
- reason: 失敗理由(例:
"no_plan_master"/"unknown_provider"/"no_factor"等) - factor: 失敗時のメタ情報(nullまたはmetaオブジェクト)
co2.diff(差分:基準プランがある場合のみ)
- basePlanId: 基準プランID(文字列)
- month_kg: 月間差分(kg、整数)
- year_kg: 年間差分(kg、整数)
- gasoline_year_liters_equiv: 年間差分のガソリン換算(L、既定は小数1桁)
CO2係数データセット(commonData.co2Dataset)
CO2係数はサーバー内のデータセット(例:data/co2_factors/r08_2026.json)から読み込まれます。
- id:
env_r08_denki_coefficient - label:
環境省 電気事業者別排出係数(令和8年度提出用) - unit:
t-CO2/kWh - updatedAt:
2026-02-13 - sourceUrl: PDF URL
custom_plan_description について(重要)
custom_plan_description は、ログインユーザーが管理画面で HTML/CSS(<style>含む) を文字列として自由に設定できます。
そのため、フロントでそのままHTMLとして描画する場合は、XSS対策(許可タグ制限・サニタイズ等)を必ず行ってください。
レスポンス例(実データ準拠:北海道エリア・10アンペア・1000kWh)
{
"success": true,
"data": {
"planData": {
"101": {
"ans": 36541.600000000006,
"amp": 418,
"nencho": -11760,
"yoryo": 0,
"yoryoall": 0,
"co2": {
"ok": true,
"factorType": "adjusted",
"factorSource": "menu",
"adjusted_t_per_kwh": 0.000526,
"month": { "kg": 526, "t": 0.526 },
"year": { "kg": 5548, "t": 5.548 },
"gasoline": { "month_liters_equiv": 228.7, "year_liters_equiv": 2412.2 },
"meta": {
"providerKey": "hokkaido_ep",
"providerLabel": "北海道電力",
"menuKey": "F_residual",
"menuLabel": "メニューF(残差)",
"isResidual": true,
"planLabel": "北海道電力(従量電灯B/C)",
"datasetId": "env_r08_denki_coefficient",
"datasetUpdatedAt": "2026-02-13",
"sourceUrl": "https://policies.env.go.jp/earth/ghg-santeikohyo/files/calc/r08_denki_coefficient.pdf"
},
"diff": { "basePlanId": "101", "month_kg": 0, "year_kg": 0, "gasoline_year_liters_equiv": 0 }
},
"custom_plan_name": "ほくでん 従量電灯B/C",
"custom_plan_url": "URLなし",
"unit": {
"nencho_yen_per_kwh": -11.76,
"monthsaienefukakin_yen_per_kwh": 3.98
}
}
},
"commonData": {
"monthsaienefukakin": 3980,
"saienefukakinall": 41975.78270809932,
"realyear": "2026年3月",
"realmonth": 3,
"co2Dataset": {
"id": "env_r08_denki_coefficient",
"label": "環境省 電気事業者別排出係数(令和8年度提出用)",
"unit": "t-CO2/kWh",
"updatedAt": "2026-02-13",
"sourceUrl": "https://policies.env.go.jp/earth/ghg-santeikohyo/files/calc/r08_denki_coefficient.pdf"
},
"inputKwh": {
"month": 1000,
"year": 10546.679072386763
},
"basePlanId": "101",
"unit": { "monthsaienefukakin_yen_per_kwh": 3.98 }
}
}
}
使用例 (JavaScript fetch API)
fetch('https://npc-share.com/api/ec-estimator/calculate', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer ここにあなたのAPIキー'
},
body: JSON.stringify({
area: "1",
amp: "amp10",
selectedMonth: "month1",
kWh: 1000,
customUrl: "55555",
basePlanId: "101"
})
})
.then(function (response) { return response.json(); })
.then(function (data) { console.log(data); })
.catch(function (error) { console.error('Error:', error); });
エラー(代表例)
- 400 Content-Type が application/json ではない
- 400 必須パラメータ不足(area / amp / selectedMonth / kWh / customUrl)
- 400 kWh が不正(0以上の整数、最大 9,999,999)
- 401 APIキー不足(Authorization/ privateKey がない)
- 403 利用不可(status やキー不一致等)
- 404 無効な地域コード / customUrl 不一致
- 500 サーバー内部エラー