自由計算機API
ここにあるすべての計算機は、 無料の JSON API でもあります。 登録も API キーもなく、 CORS をサポートしています。サーバから呼び出すこともできますし、ブラウザから直接呼び出すこともできます。
概要
計算機のフィールド値をクエリパラメータまたは JSON として送信し、計算結果を JSON として返します。計算機が生成する amortization schedule や chart data を含む。
- 198+ それぞれのエンドポイントを持つ計算機を
- API キーなし — 匿名アクセス IPによる速度制限
- CORS —
Access-Control-Allow-Origin: *(クライアント側で使える) - 速度制限: 60 要求/IPあたりの時間 (HTTP 429 を超えると)
- エラーは自由 — 成功した (2xx) 応答のみが 月額割当の 1 回のコールを使います。400、401、404、429、500 は 無料です。
ベース URL
https://calculator.free/api/v1/
インデックス — すべての計算機をリストします
GET https://calculator.free/api/v1/
クライアントを動的に構築するには十分なフィールド (キー、ラベル、タイプ、デフォルト、単位) と結果キーを含む、すべての計算機の機械読み取れるリストを返します。 各フィールドには必要なフラグが含まれています。デフォルトのないフィールド (大抵日付) はtrueです。これを送信すると、数台の計算機が一つを推定します。残りはそれを無視して 400 を返します。
Compute — 計算機を一つ実行
GET https://calculator.free/api/v1/<slug>/?field=value&field=value
POST https://calculator.free/api/v1/<slug>/ (JSON or form body)
応答形状:
{
"ok": true,
"slug": "mortgage",
"country": "us",
"inputs": { ... the values actually computed with ... },
"results": { ... computed result keys ... },
"schedule": { "columns": [...], "rows": [...] } | null,
"chart": { "type": "pie", "slices": [...] } | null,
"defaults_applied": ["tax", "insurance"]
}
国別計算機(住宅ローン、貸付、所得税、売上税など)を受け入れる ?country=us|uk|ca|au|in|ie|nz|za. 未知のスラグは404を返します。サポートされていない国や入力が間違っている場合は、400を返します。
パラメータ、デフォルト、エラー
重要なフィールドのみを送信します。 省略したフィールドは、そのフィールドの公開デフォルト値で埋め込まれます。これは、計算機ページが予め埋め込んだ値と同じです。APIとウェブサイトは、同じ入力に対して常に同じ数字を返します。各応答は、それが埋め込んだ内容を下にリストします。 defaults_applied.
クライアントは、API が正直に解決できないものは、ゼロではなくエラーである。 これは、スペルミスしたパラメータ、間違ったタイプの値、未知のドロップダウンオプション、デフォルトのない欠けているフィールド (日付フィールド - 誕生日は推測できません) です。 400回ごとに、パラメータの名前を指定し、クライアントが自分で修正できるように、フィールドのスペックを完全にエコーします。
$ curl "https://calculator.free/api/v1/mortgage/?price=350000&rate=6.5&term=30"
{
"ok": false,
"error": "unknown_parameter",
"message": "Unknown parameter 'term' for calculator 'mortgage'. Did you mean 'years'? ...",
"unknown_parameters": ["term"],
"did_you_mean": { "term": "years" },
"valid_parameters": ["down", "extra", "extra_onetime", "extra_yearly", "hoa",
"insurance", "other", "pmi", "price", "rate", "tax", "years"],
"fields": [ ... ]
}
| エラー | HTTP | いつ |
|---|---|---|
unknown_parameter | 400 | この計算機のフィールドでないパラメータ (意味のあるヒントを含む) |
invalid_value | 400 | 数字ではない数字フィールド、オプションの外のドロップダウン値、解析できない日付、または未知の_モード |
missing_parameter | 400 | 計算機は結果を出せませんでした デフォルトのないフィールドが空になったからです |
unsupported_country | 400 | ?country=は この計算機のデータにない |
bad_json | 400 | POST ボディは有効な JSON ではありません |
unknown_calculator | 404 | 計算機は使えない |
invalid_key | 401 | API キーが送信されましたが、未知か非アクティブです |
rate_limited / quota_exceeded | 429 | 匿名IPの時間制限か キーの月額割当が使い切れ |
too_many_invalid_requests | 429 | このキーに対して1時間で拒否された要求が多すぎます。拒否された呼び出しは無料で、代わりに速度制限がかかります。毎時間リセットします。成功した呼び出しは計算されません。 |
あの /api/v1/ indexは フィールドのキー、タイプ、単位、デフォルト、必要かどうかを公開します
認証とプラン
匿名リクエストは IP によって速度制限されます。 月額割当が高く予測可能な場合 (商用利用)、アカウントページでキーを作成し、次の3つの方法のいずれかで送信してください。
GET https://calculator.free/api/v1/mortgage/?price=350000&key=YOUR_KEY
curl -H "Authorization: Bearer YOUR_KEY" "https://calculator.free/api/v1/bmi/?units=metric&height=180&weight=80"
curl -H "X-Api-Key: YOUR_KEY" "https://calculator.free/api/v1/bmi/?units=metric&height=180&weight=80"
- フリー — 匿名(IP速度制限)または月額割当の無料キー 非商用
- 開発者 — 月1万通話 商用利用
- ビジネス — 月10万件の通話 優先スループット
割り当てに入るものは
成功した応答のみが有効です。 1 つの 2xx = 1 つのコール。 すべてのエラーは無料です。400 はパラメータのスペルミス、不正な値、必要なフィールドが欠けている、404 は未知のスラグ、401 は不正なキー、429 は我々の側で何かが間違っている。 契約を調べて、必要な限り繰り返して要求を修正してください。 修正は料金を請求されますが、答えは請求されません。
キーの数が 1 つ以上の場合は、 キーの数を 1 つ増やすことで キーの数を減らすことができます。 200 1時間以内に拒否された場合、HTTP 429 "too_many_invalid_requests" が返されます。成功した呼び出しはその数値に含まれません。 つまり、実行中の統合はこれを見ることはありません。 クライアントが再試行ループに 閉じ込められただけです。
キーの月間割当が使われたとき、APIはHTTP 429とエラー "quota_exceeded" を返します。未知または非アクティブなキーはHTTP 401を返します。 完全なプランを見て 登録して 価格 ページ.
例
curl
curl "https://calculator.free/api/v1/mortgage/?price=350000&down=70000&rate=6.9&years=30"
JavaScript fetch()
const r = await fetch(
"https://calculator.free/api/v1/bmi/?" + new URLSearchParams({
units: "metric", height: "180", weight: "80"
}));
const { results } = await r.json();
console.log(results.bmi, results.category);
Python
import requests
r = requests.get("https://calculator.free/api/v1/mortgage/",
params={"price": 350000, "down": 70000,
"rate": 6.9, "years": 30},
headers={"Authorization": "Bearer YOUR_KEY"})
print(r.json()["results"])
POST JSON
curl -X POST "https://calculator.free/api/v1/income-tax/?country=uk" \
-H "Content-Type: application/json" \
-d '{"income": 60000}'
すべてのエンドポイント
計算機ごとに1つのエンドポイントを設定します。各エンドポイントのフィールドキーと結果キーは次のとおりです。 /api/v1/ インデックス.
金融 (41)
税金と給与 (2)
| 計算機 | エンドポイント |
|---|---|
| 所得税計算機 | /api/v1/income-tax/ |
| 売上税 | /api/v1/sales-tax/ |
健康・フィットネス (28)
タイプ (26)
統計学 (15)
単位変換器 (17)
科学技術 (27)
日付と時間 (15)
毎日 (27)
結果は一般的な指導のための推定であり,財務的,医療的または税務的なアドバイスではない。