博山科技
關於博山+ 關於博山 組織架構
最新消息
量化微服務平台+ 平台總覽 大數據資訊平台企業金融財富管理都更創新客製化服務
建學聯盟平台+ 前往建學聯盟平台 →
  • 空間規劃顧問
  • 建築設計管理顧問
ESG專區與AI客製化+ 前往 ESG 專區與 AI 客製化 →
  • 商業淨零路徑規劃
  • 碳盤查與碳預測系統
  • AI 串接與客製化系統
  • WordPress 網頁建置
  • WP 客製化
  • HubSpot 網頁設計
  • 網頁 UI/UX 優化
教育版專區+ 教育版專區總覽 住宅不動產鑑價 統計運算平台(線上試算) 量化模組設計
聯絡我們 登入 註冊
首頁 / API 文件

API 文件

博山分析模組 REST API。Base URL:https://boshanweb.com · 所有請求與回傳皆為 JSON

POST /api/analytics/arithmetic 分析模組

基本運算

示範用的最基本運算,驗證資料從前端送入、由分析引擎計算、再回傳的完整流程。

權限:免驗證(可附 API Key 以記錄用量)

輸入參數

欄位型別必填說明
a number 是 數字 A
op string 是 運算:add / subtract / multiply / divide
b number 是 數字 B(op=divide 時不可為 0)

請求範例

curl -X POST https://boshanweb.com/api/analytics/arithmetic \
  -H 'Content-Type: application/json' \
  -d '{"a":12.5,"op":"divide","b":4}'

成功回傳

{
    "ok": true,
    "id": "...",
    "type": "arithmetic",
    "result": {
        "operation": "divide",
        "a": 12.5,
        "b": 4,
        "result": 3.125
    },
    "duration_ms": 92
}
POST /api/analytics/statistics 分析模組

敘述統計

輸入一組數字,回傳平均數、變異數、標準差、最大最小值、偏態與峰態。

權限:免驗證(可附 API Key 以記錄用量)

輸入參數

欄位型別必填說明
data number[] 是 數值陣列,長度 3 至 100000

請求範例

curl -X POST https://boshanweb.com/api/analytics/statistics \
  -H 'Content-Type: application/json' \
  -d '{"data":[4,8,15,16,23,42]}'

成功回傳

{
    "ok": true,
    "id": "...",
    "type": "statistics",
    "result": {
        "mean": 18,
        "variance": 182,
        "stddev": 13.49074,
        "min": 4,
        "max": 42,
        "skewness": 1.24261,
        "kurtosis": 1.79975,
        "nobs": 6
    },
    "duration_ms": 88
}
POST /api/analytics/correlation 分析模組

相關分析

輸入兩組等長數列,回傳相關係數 r(−1 ~ 1)與判定係數 R²。

權限:免驗證(可附 API Key 以記錄用量)

輸入參數

欄位型別必填說明
x number[] 是 自變數數列
y number[] 是 依變數數列(長度需與 x 相同)

請求範例

curl -X POST https://boshanweb.com/api/analytics/correlation \
  -H 'Content-Type: application/json' \
  -d '{"x":[1,2,3,4,5],"y":[2,4.1,5.9,8.2,9.8]}'

成功回傳

{
    "ok": true,
    "id": "...",
    "type": "correlation",
    "result": {
        "correlation": 0.99883,
        "rsquared": 0.99766,
        "nobs": 5
    },
    "duration_ms": 101
}
POST /api/analytics/regression 分析模組

線性迴歸(同步)

以最小平方法配適簡單線性迴歸,即時回傳截距、斜率與 R²。適合小量資料。

權限:免驗證(可附 API Key 以記錄用量)

輸入參數

欄位型別必填說明
x number[] 是 自變數數列
y number[] 是 依變數數列(長度需與 x 相同)

請求範例

curl -X POST https://boshanweb.com/api/analytics/regression \
  -H 'Content-Type: application/json' \
  -d '{"x":[1,2,3,4,5],"y":[3,5,7,9,11]}'

成功回傳

{
    "ok": true,
    "id": "...",
    "type": "regression",
    "result": {
        "intercept": 1,
        "slope": 2,
        "rsquared": 1,
        "nobs": 5
    },
    "duration_ms": 83
}
POST /api/analytics/regression/async 背景任務

線性迴歸(背景)

把迴歸任務送入佇列,立即回傳查詢識別碼。適合大量資料或長時間運算,避免前端久等。

權限:免驗證(可附 API Key 以記錄用量)

輸入參數

欄位型別必填說明
x number[] 是 自變數數列
y number[] 是 依變數數列

請求範例

curl -X POST https://boshanweb.com/api/analytics/regression/async \
  -H 'Content-Type: application/json' \
  -d '{"x":[1,2,3,4,5],"y":[3,5,7,9,11]}'

成功回傳

{
    "ok": true,
    "id": "uuid",
    "status": "queued",
    "status_url": "/api/analytics/runs/{uuid}"
}
POST /api/analytics/optivar 背景任務

OptiVaR 最適配置與風險值

第一組正式統計演算法(合作研究團隊提供)。輸入台股、那斯達克、原油三資產的每日收盤價,透過博山分析模組的計量引擎,以滾動估計與二次規劃求解最適投資組合權重(權重總和為 1;正值為做多部位、負值為放空部位,數值大於 1 則為融資部位);風險值(VaR)部分對非線性模型進行雙重收斂估計,配合前瞻式模擬方法,在給定信賴區間下預估未來特定交易日的最大可能損失。資料提供方式三選一:(1) dates/twn/nas/crude 四個 JSON 陣列;(2) data_file 直接上傳資料檔(multipart/form-data);(3) data_text 放資料檔的原始文字內容。三者都未提供時,自動使用內建範例資料(研究團隊提供的歷史日資料);參數未填則採用預設值。運算量大(預設參數約 1 分鐘),一律以背景任務執行,回傳查詢識別碼後以 GET /runs/{uuid} 輪詢結果。

權限:需要 API Key(後台「API 金鑰」頁建立,以請求標頭 X-API-Key 傳入);登入狀態下同源呼叫可免

輸入參數

欄位型別必填說明
dates int[] 否 日期陣列(yyyymmdd 數字),長度 3 至 100000;實際需 ≥ est + hold + 1。未提供資料時自動使用內建範例
twn number[] 否 台股加權指數收盤價(長度需與 dates 相同;估計視窗內須為正數)
nas number[] 否 那斯達克指數收盤價(長度需與 dates 相同;估計視窗內須為正數)
crude number[] 否 原油價格(長度需與 dates 相同;估計視窗內須為正數)
data_file file 否 改用檔案上傳時放這裡:multipart/form-data 的檔案欄位(.prn / .txt / .csv,上限 10MB)。每列四欄「日期 台股收盤 那斯達克收盤 原油價格」,空白或逗號分隔;格式不符的列自動略過
data_text string 否 同上格式的資料原始文字,直接放在 JSON 字串欄位(適合不方便用 multipart 的環境)
est int 不可傳入 估計期間(滾動重估天數)。系統固定參數,由管理員於後台設定(目前 100);API 傳入會回 422
hold int 不可傳入 權重估計視窗(回看天數)。系統固定參數,由管理員於後台設定(目前 500);API 傳入會回 422
span int 否 預測天數,1 至 30,預設 3
ndraws int 否 模擬次數,100 至 100000,預設 10000
lower number 否 信賴下分位,0 至 0.5(不含),預設 0.025
upper number 否 信賴上分位,0.5 至 1(不含),預設 0.975

請求範例

curl https://boshanweb.com/api/analytics/optivar \
  -H 'Accept: application/json'

成功回傳

{
    "ok": true,
    "id": "uuid",
    "status": "queued",
    "params": {
        "est": 100,
        "hold": 500,
        "span": 3,
        "ndraws": 10000,
        "lower": 0.025,
        "upper": 0.975
    },
    "status_url": "/api/analytics/runs/{uuid}"
}
POST /api/analytics/enterfi 分析模組

EnterFI 中小企業授信評分與最適利率

第二組正式統計演算法(合作研究團隊提供)。輸入申貸企業的基本資料、負責人與公司的銀行往來紀錄及貸款條件,博山分析模組以研究團隊的中小企業資料庫為基準完成評分,依評分級距決定可貸金額,再依往來紀錄調整級距或不予核貸(票據兌現/本息繳納異常降一級,退補、逾月、延遲、退票則不予核貸);最適公平利率依評分在資料庫中的排名,從歷史放款利率模擬出的 1 萬筆利率中取對應百分位(評分越高利率越低),並計算本息平均攤還的每月應付金額與違約風險機率。同步執行(約 3 秒),結果直接回傳。欄位代碼與研究團隊規格書相同,大小寫皆可(例如 BAGE 或 bage)。不予核貸時 approved 為 false,lamount 為 0,optrate / payment / defrisk 為 null。

權限:需要 API Key(後台「API 金鑰」頁建立,以請求標頭 X-API-Key 傳入);登入狀態下同源呼叫可免

輸入參數

欄位型別必填說明
bage number 是 公司基本資料 · 公司設立年數:0 至 80(年)。以放款日為基礎試算,可由客戶自填
bchairacc number 是 公司基本資料 · 負責人任職年限:1 至 80(年)
bceoacc number 是 公司基本資料 · 主要經營者任職年限:1 至 80(年)
baccage number 是 公司基本資料 · 負責人年紀:18 至 100(歲)。以放款日為基礎試算,可由客戶自填
bcap number 是 公司基本資料 · 資本額:1 至 5000(萬元)
boperationrev number 是 公司基本資料 · 年營業收入:10 至 100000(千元)
bfirst int 是 公司基本資料 · 初次往來客戶:1=是、2=否
bchild int 是 公司基本資料 · 負責人子女數:0=0、1=1、2=2、3=3、4=4、5=5
bsecurity number 是 公司基本資料 · 擔保品金額(A):0 至 8000(千元)。無擔保填 0
bsavings number 是 公司基本資料 · 受信活存最近六個月實績:0 至 5000(千元)
bjoincreditscore int 是 公司基本資料 · 負責人聯徵 J10 個人信用評分:整數 0 至 25
bpcheckrisk int 是 負責人銀行往來狀況 · 負責人過去票據兌現情形:0=無資料、1=順利、2=電催紀錄、3=退補紀錄
bploanpay int 是 負責人銀行往來狀況 · 負責人放款本息繳納情形:0=無資料、1=按時、2=稍拖、3=逾月
bpdelay int 是 負責人銀行往來狀況 · 負責人過去償還借款情形:1=無、2=有延遲
bpcheckreturn int 是 負責人銀行往來狀況 · 負責人票交所退票紀錄:0=無資料、1=無、2=有
bccheckrisk int 是 公司銀行往來狀況 · 公司過去票據兌現情形:0=無資料、1=順利、2=電催紀錄、3=退補紀錄
bcloanpay int 是 公司銀行往來狀況 · 公司放款本息繳納情形:0=無資料、1=按時、2=稍拖、3=逾月
bcdelay int 是 公司銀行往來狀況 · 公司過去償還借款情形:1=無、2=有延遲
bccheckreturn int 是 公司銀行往來狀況 · 公司票交所退票紀錄:0=無資料、1=無、2=有
mr number 否 貸款條件與市場資料 · 市場當前利率:0.015 至 0.05(年利率)。以小數表示,0.02 = 2%,預設 0.02
rr number 否 貸款條件與市場資料 · 貸款開辦費:1000 至 15000(元),預設 7000
re number 否 貸款條件與市場資料 · 申貸保證乘數:5 至 100,預設 90
nn int 否 貸款條件與市場資料 · 貸款總月份:整數 6 至 120(月),預設 36

請求範例

curl https://boshanweb.com/api/analytics/enterfi \
  -H 'Accept: application/json'

成功回傳

{
    "ok": true,
    "id": "uuid",
    "type": "enterfi",
    "result": {
        "score": 86.573268,
        "lamount": 80,
        "optrate": 0.027765,
        "payment": 23186.252586,
        "defrisk": 0.020683,
        "approved": true,
        "tier": 2,
        "score_tier": 1,
        "score_percentile": 0.918389,
        "params": {
            "mr": 0.02,
            "rr": 7000,
            "re": 90,
            "nn": 36
        },
        "summary": "本案評分 86.57 分,依評分屬第一級(可貸 100 萬元)。經負責人與公司銀行往來紀錄調整為第二級,核定可貸金額 80 萬元。評分贏過資料庫中 91.8% 的企業,對應 1 萬筆模擬利率的第 8.2 百分位,最適公平利率為 2.78%;以 36 期本息平均攤還,每月應付約 23,186 元;依市場利率 2.00% 與保證乘數 90 估計違約風險 2.07%。本結果為統計模型試算,僅供授信參考,不構成核貸承諾。"
    },
    "duration_ms": 2656
}
GET /api/analytics/runs/{uuid} 背景任務

查詢任務結果

輪詢任務狀態。status 為 queued / running / success / failed,完成後 result 即為分析結果。OptiVaR 任務成功時 result 欄位為:weight_twn / weight_nas / weight_crude(三資產最適權重)、ew_return / mve_return(等權重與最適組合最近一日報酬 %)、var_lower / var_upper(未來 span 日累積報酬信賴區間 %)、as_of(計算依據的最後一筆資料日期)、summary(一段完整的中文操作參考結論)、nobs、params。EnterFI 為同步端點,結果已隨呼叫直接回傳;如需事後調閱,也可用回傳的 id 以此端點查詢。

權限:免驗證(可附 API Key 以記錄用量)

輸入參數

欄位型別必填說明
uuid string 是 建立任務時回傳的識別碼(路徑參數)

請求範例

curl https://boshanweb.com/api/analytics/runs/{uuid} \
  -H 'Accept: application/json'

成功回傳

{
    "ok": true,
    "id": "uuid",
    "type": "regression",
    "status": "success",
    "result": {
        "intercept": 1,
        "slope": 2,
        "rsquared": 1,
        "nobs": 5
    },
    "duration_ms": 95
}

錯誤回傳格式

當輸入未通過驗證或運算發生錯誤時,API 會回傳對應的錯誤訊息。

驗證失敗(HTTP 422)

{
    "message": "The x.2 field must be a number.",
    "errors": {
        "x.2": [
            "The x.2 field must be a number."
        ]
    }
}

運算錯誤(HTTP 422)

{
    "ok": false,
    "id": "...",
    "error": "除數不可為 0"
}