(Qiitaで書いた記事からの転載&少し修正したもの)
(2025/12/01追記)マイネ王関係の仕様も確認してきたよ!
もう残りパケット全然ないよ~!
あらら、わたし余ったのあるからギフトしよっか~?
アプリから「ギフトを送る」っと……
ギフトコードは○○○○だよ〜
わーいありがと!!
(毎月こんな感じだから、
もうちょっとラクしたいかも……)
はじめに
mineoは「パケットギフト」とか「ゆずるね。」とか、パケットに関する機能が充実してるのが好き!
この便利な機能を自動化したいなって思って、mineoアプリを活用してパケットギフトの通信方法を調べてみることにしたよ!
全体
リクエスト
以下で紹介するAPIはいずれも非公開APIで、予告なく仕様が変更される可能性がある。
個人的な研究・実験目的での利用に留めるほか、過度なアクセスは控えること。
APIは特に記述が無い限り、全て以下のパラメータが必要。
| パラメータ | 値 |
|---|---|
| appId | (任意の文字列) |
| appVersion | (任意の文字列) |
| Authorization | Bearer |
| aid | (任意の文字列) |
Authorizationの有効期限は24時間。
不正なAuthorizationを入力すると次のエラーが返される。
{
"statusCode": 401,
"message": "Invalid JWT."
}JSONまた、Get Telnum Listを除いて、custIdをform-urlencodedで指定する必要がある。
custIdは回線毎に固有。
custId: ABC12DE345Plaintextリクエスト例(Javascript)
npm install axiosBashimport axios from "axios";
// リクエストインスタンスを作成
function GetInstance(appId, appVersion, authorization, aid) {
return axios.create({
baseURL: "https://api.eonet.jp/mineo/v1/",
headers: {
"appId": appId,
"appVersion": appVersion,
"Authorization": "Bearer " + authorization,
"aid": aid,
}
});
}
// APIにHTTPリクエストを送ってデータ取得
function mineoRequest(appId, appVersion, authorization, aid, type, custId) {
const axiosInstance = GetInstance(appId, appVersion, authorization, aid);
let params = new URLSearchParams();
params.append("custId", custId)
return axiosInstance.post(type, params).then(res => res.data);
}
// 実行関数
async function main() {
const appId = "TEST"
const appVersion = "1.0.0"
const authorization = auth // 各自置き換え
const aid = "TEST"
const custId = custId // 各自置き換え
let resp = await mineoRequest(
appId,
appVersion,
authorization,
aid,
"declare_devolve",
"ABC12DE345", // 各自置き換え
)
const resultCode = resp.resultCode;
if (resultCode === "00") {
console.log("ゆずるね。宣言したよ!")
} else if (resultCode === "05") {
console.log("ゆずるね。宣言済みだよ")
} else {
console.log("認証エラー (ó﹏ò。)")
}
}
await main()
JavaScriptAuthorizationの更新
Authorizationの有効期限が切れた場合は、リフレッシュトークンを用いることで更新できる。
リフレッシュトークンは、mineoアプリをログアウト→ログインして、mitmproxyなどのツールで下記URLをパケットキャプチャすると入手できる。
| パラメータ | 値 |
|---|---|
| Method | POST |
| URL | https://login.eonet.jp/oidc/v1/token |
form-urlencodedで次のように指定する。
grant_type: refresh_token // 固定値
refresh_token: TOKEN // 入手したリフレッシュトークン
client_id: 100064798 // 固定値Plaintext{
"access_token": "xxE05YhIxMdoJmY......",
"expires_in": "86400",
"id_token": "eyJhbGciOiJSUzI1NiIsImtpZCI6IjNIOURJcUNXZ1R5dzdOdW1ZV1daM3cifQ......",
"refresh_token": "VEweVyQQCzmTwPmBXd......",
"token_type": "Bearer"
}
JSONid_tokenは、ヘッダーのAuthorizationパラメータに、refresh_tokenはトークンの再更新に使用できる。
発行したrefresh_tokenが使えるのは一度きり。
// リフレッシュトークンが存在しない
{
"error" : "invalid_token",
"error_description" : "refresh token is not exists"
}JSON
refresh_tokenの有効期限はid_tokenより長いので、id_tokenが切れてしまっても上記APIを実行すれば、問題なく更新可能。
また、リフレッシュした後でも古いトークンは期限が来るまで引き続き使用可能。
回線関係
Get Telnum List
eoIDで契約している回線の一覧を取得。
他のAPIで必要になるcustIdもここで取得できる。
このURLではcustIdが不要。
| パラメータ | 値 |
|---|---|
| Method | POST |
| URL | https://api.eonet.jp/mineo/v1/get_telnum_list |
{
"messages": [
null
],
"resultCode": "00",
"telNumList": [
{
"custId": "ABC12DE345",
"lineName": "iPhone", // 回線名称
"telNum": "080XXXXXXXX" // 電話番号
},
{
"custId": "ABC12DE345",
"lineName": "iPhone_sub",
"telNum": "080XXXXXXXX"
},
{
"custId": "ABC12DE345",
"lineName": "iPad",
"telNum": "090XXXXXXXX"
}
]
}JSON// パラメータ不足
{
"resultCode": "0098",
"messages": [
"システムエラー。\n時間をおいてから再度お試しください。"
],
"telNumList": null
}JSONGet Line Name
契約回線に設定した回線名称を取得する。
| パラメータ | 値 |
|---|---|
| Method | POST |
| URL | https://api.eonet.jp/mineo/v1/get_line_name |
{
"lineName": "iPhone", // 回線名称
"messages": [
null
],
"resultCode": "00"
}JSON// パラメータ不足
{
"resultCode": "0098",
"messages": [
"システムエラー。\n時間をおいてから再度お試しください。"
],
"lineName": null
}
// 存在しないcustId
{
"resultCode": "0022",
"messages": [
"認証エラー。\nログアウト後、再ログインしてください。"
],
"lineName": null
}JSONパケット関係
Get Capacity
契約回線のパケット使用量、残量を確認するために使用。
| パラメータ | 値 |
|---|---|
| Method | POST |
| URL | https://api.eonet.jp/mineo/v1/get_capacity |
{
"lowSpeedDisp": null, // mineoスイッチON時 -> "通信速度最大200kbps適用中"
"messages": [
null
],
"mySokuFlg": "0", // 0 -> マイそくOFF, 1 -> マイそくON
"packetInfo": {
"baseCapacity": 5120, // 基本データ容量(MB)
"baseRemainingCapacity": 5120, // 残り基本データ容量(MB)
"chargeCapacity": 0, // チャージ容量(MB)
"chargeRemainingCapacity": 0, // 残りチャージ容量(MB)
"forwardCapacity": 67254, // 前月繰り越し容量(MB)
"forwardRemainingCapacity": 33563, // 残り前月繰り越し容量(MB)
"giftCapacity": 0, // ギフト容量(MB)
"giftRemainingCapacity": 0 // 残りギフト容量(MB)
},
"resultCode": "00",
"serviceName": "Dプラン デュアルタイプ (5GB)",
"speedFlg": "1", // 0 -> mineoスイッチON, 1 -> mineoスイッチOFF
"tushinSettingStatusCode": "00" // 00 -> mineoスイッチOFF, 01 -> mineoスイッチON
}JSON// パラメータ不足
{
"resultCode": "0098",
"messages": [
"システムエラー。\n時間をおいてから再度お試しください。"
],
"packetInfo": null,
"speedFlg": null,
"tushinSettingStatusCode": null,
"mySokuFlg": null,
"serviceName": null,
"lowSpeedDisp": null
}
// 存在しないcustId
{
"resultCode": "0022",
"messages": [
"認証エラー。\nログアウト後、再ログインしてください。"
],
"packetInfo": null,
"speedFlg": null,
"tushinSettingStatusCode": null,
"mySokuFlg": null,
"serviceName": null,
"lowSpeedDisp": null
}JSONGet Capacity For Gift
パケットギフトのギフト可能容量を確認できる。
| パラメータ | 値 |
|---|---|
| Method | POST |
| URL | https://api.eonet.jp/mineo/v1/get_capacity_for_gift |
{
"capacityForGift": 40918, // ギフト可能容量(MB)
"messages": [
null
],
"resultCode": "00"
}
JSON// パラメータ不足
{
"resultCode": "0098",
"messages": [
"システムエラー。\n時間をおいてから再度お試しください。"
],
"capacityForGift": null
}
// 存在しないcustId
{
"resultCode": "0022",
"messages": [
"認証エラー。\nログアウト後、再ログインしてください。"
],
"capacityForGift": null
}
JSONChange Gift
発行済みパケットギフトを受け取る。
| パラメータ | 値 |
|---|---|
| Method | POST |
| URL | https://api.eonet.jp/mineo/v1/change_gift |
受け取りたいパケットギフトのコードは、form-urlencodedで指定できる。
giftCode: ABCD1234Plaintext{
"resultCode": "00",
"messages": [
null
],
"giftCapacity": 10 // 受け取ったパケット容量(MB)
}
JSON// パラメータ不足
{
"resultCode": "0098",
"messages": [
"システムエラー。\n時間をおいてから再度お試しください。"
],
"giftCapacity": null
}
// 存在しないcustId
{
"resultCode": "0022",
"messages": [
"認証エラー。\nログアウト後、再ログインしてください。"
],
"giftCapacity": null
}
// ギフト発行した回線と同一回線でパケットギフトを受け取ろうとした
{
"resultCode": "0056",
"messages": [
"発行元と受取先が同一のため、受け取りできません。"
],
"giftCapacity": null
}
// 存在しないパケットギフトを受け取ろうとした
{
"resultCode": "0051",
"messages": [
"このギフトコードは存在しません。"
],
"giftCapacity": null
}
JSONIssue Gift
パケットギフトを発行する。
| パラメータ | 値 |
|---|---|
| Method | POST |
| URL | https://api.eonet.jp/mineo/v1/issue_gift |
ギフト容量は、form-urlencodedで指定できる。giftCapacityはmineoアプリと同様、10以上9999以下で指定する必要がある。
giftCapacity: 1000Plaintext{
"expireDate": "20240727", // 有効期限(yyyyMMdd)
"giftCapacity": 1000, // ギフト容量(MB)
"giftCode": "ABCD1234", // ギフトコード
"messages": [
null
],
"resultCode": "00"
}
JSON// パラメータ不足、または範囲外のgiftCapacity
{
"resultCode": "0098",
"messages": [
"システムエラー。\n時間をおいてから再度お試しください。"
],
"giftCode": null,
"giftCapacity": null,
"expireDate": null
}
// 存在しないcustId
{
"resultCode": "0022",
"messages": [
"認証エラー。\nログアウト後、再ログインしてください。"
],
"giftCode": null,
"giftCapacity": null,
"expireDate": null
}
// giftCapacityがギフト可能容量を上回っている
{
"resultCode": "0064",
"messages": [
"今月のパケットギフト可能容量を超過しているため、ギフト発行はできません。"
],
"giftCode": null,
"giftCapacity": null,
"expireDate": null
}
JSONGet Packetcharge Info
パケットチャージに関する情報を取得する。
| パラメータ | 値 |
|---|---|
| Method | POST |
| URL | https://api.eonet.jp/mineo/v1/get_packetcharge_info |
{
"resultCode": "00",
"messages": [
null
],
"packetChargeInfo": {
"chargeCapacity": 100, // チャージ容量残量(MB)
"chargeUnitCapacity": 100, // チャージ単位(MB)
"chargeUnitPriceYen": 55, // チャージ単位料金(円)
"chargeLimitCapacity": 15000, // 月チャージ容量上限(MB)
"chargeTotalCapacity": 100, // 月チャージ総量(MB)
"chargeExpireDate": "20251231" // チャージしたパケットの有効期限
},
"packetChargeKanryoHistList": [ // チャージ完了履歴(直近3件)
{
"compTime": "202511300247", // チャージ完了日時(yyyyMMddHHmm)
"chargeAmount": "100" // チャージ容量
}
]
}
JSON// パラメータ不足
{
"resultCode": "0098",
"messages": [
"システムエラー。\n時間をおいてから再度お試しください。"
],
"packetChargeInfo": null,
"packetChargeKanryoHistList": null
}
// 存在しないcustId
{
"resultCode": "0022",
"messages": [
"認証エラー。\nログアウト後、再ログインしてください。"
],
"packetChargeInfo": null,
"packetChargeKanryoHistList": null
}
JSONCharge Packet
パケットチャージを実行する。
実行すると、チャージ分の料金が実際に請求されるので使用は非推奨。
| パラメータ | 値 |
|---|---|
| Method | POST |
| URL | https://api.eonet.jp/mineo/v1/charge_packet |
チャージ口数をform-urlencodedで、1~10の範囲で指定する(1口=100MB, 55円)。
chargeCount: 1Plaintext{
"resultCode": "00",
"messages": [
null
]
}JSON// 上限チャージした時のエラーも用意されてるはず(費用の関係で未検証)
// パラメータ不足
{
"resultCode": "0098",
"messages": [
"システムエラー。\n時間をおいてから再度お試しください。"
]
}
// 範囲外のchargeCount
{
"resultCode": "0099",
"messages": [
"システムエラー。\n時間をおいてから再度お試しください。"
]
}
// 存在しないcustId
{
"resultCode": "0022",
"messages": [
"認証エラー。\nログアウト後、再ログインしてください。"
]
}
JSONパケットシェアメンバー情報を取得する。
| パラメータ | 値 |
|---|---|
| Method | POST |
| URL | https://api.eonet.jp/mineo/v1/get_packetshare_info |
// (調査中)
{
"resultCode": "03",
"messages": [
null
],
"packetshareList": null
}JSON// パラメータ不足
{
"resultCode": "0098",
"messages": [
"システムエラー。\n時間をおいてから再度お試しください。"
],
"packetshareList": null
}
// 存在しないcustId
{
"resultCode": "0022",
"messages": [
"認証エラー。\nログアウト後、再ログインしてください。"
],
"packetshareList": null
}
JSONゆずるね。関係
Declare Devolve
「ゆずるね。」宣言を行う。
| パラメータ | 値 |
|---|---|
| Method | POST |
| URL | https://api.eonet.jp/mineo/v1/declare_devolve |
// 宣言完了
{
"resultCode": "00",
"messages": [
null
]
}
// 既に宣言済み
{
"resultCode": "05",
"messages": [
null
]
}
JSON// 存在しないcustId
{
"resultCode": "0022",
"messages": [
"認証エラー。\nログアウト後、再ログインしてください。"
]
}
// 宣言受付時間外(11:30~12:59)
{
"resultCode": "0061",
"messages": [
"現在、ゆずるね。宣言いただけません。次回分のゆずるね。宣言は13時以降に可能です。"
]
}
JSONGet Devolve Declare Stat
「ゆずるね。」の宣言状況を取得する。
| パラメータ | 値 |
|---|---|
| Method | POST |
| URL | https://api.eonet.jp/mineo/v1/get_devolve_declare_stat |
{
"resultCode": "00",
"messages": [
null
],
"devolveDeclareStat": "1", // 宣言状態(0 -> 宣言待ち, 1 -> 宣言済み)
"devolveDeclareAcceptability": "1" // 宣言結果(0 -> 未宣言, 1 -> 宣言済み, 2 -> 宣言受付時間外)
}
JSON// 存在しないcustId
{
"resultCode": "0022",
"messages": [
"認証エラー。\nログアウト後、再ログインしてください。"
],
"devolveDeclareStat": null,
"devolveDeclareAcceptability": null
}
JSONGet Devolve Declare Hist Thismonth
ゆずるね。の達成状況・特典状況を取得する。
| パラメータ | 値 |
|---|---|
| Method | POST |
| URL | https://api.eonet.jp/mineo/v1/get_devolve_declare_hist_thismonth |
{
"resultCode": "00",
"messages": [
null
],
"nengetsu": "202512", // 対象年月
"successCntAmount": 2, // 達成回数
"devolveDeclareHistList": [ // 達成状況
{
"histDate": "20251201", // 日付
"devolveSeihiStat": "1", // 0->ゆずるね。宣言のみ, 1->ゆずるね。達成
"packetTraffic": 389, // ゆずるね。時間中の通信量(KB)
"devolveStampFlg": "1" // ゆずるね。スタンプが押されたかどうか
},
{
"histDate": "20251202",
"devolveSeihiStat": "1",
"packetTraffic": 135,
"devolveStampFlg": "1"
},
{
"histDate": "20251208",
"devolveSeihiStat": "0",
"packetTraffic": 35100,
"devolveStampFlg": "1"
}
],
"devolveTokutenMstList": [ // 特典状況
{
"devolveTokutenName": "100MB", // 特典内容
"requiredStamps": 5 // 必要スタンプ数
},
{
"devolveTokutenName": "ゆずるね。深夜フリー特典",
"requiredStamps": 10
},
{
"devolveTokutenName": "200MB",
"requiredStamps": 15
},
{
"devolveTokutenName": "契約容量パケット",
"requiredStamps": 20
}
]
}
JSON// 存在しないcustId
{
"resultCode": "0022",
"messages": [
"認証エラー。\nログアウト後、再ログインしてください。"
],
"nengetsu": null,
"successCntAmount": null,
"devolveDeclareHistList": null,
"devolveTokutenMstList": null
}
JSONパスケット関係
Get My Tank
パスケットの残容量などの情報を取得する。
| パラメータ | 値 |
|---|---|
| Method | POST |
| URL | https://api.eonet.jp/mineo/v1/get_my_tank |
{
"resultCode": "00",
"messages": [
null
],
"myTankCapacity": 1024,
"pasketInRemainingCapacity": 101376,
"pasketInMonthlyLimitCapacity": 102400,
"displayMessages1": null,
"displayMessages2": "10~102,400MBの範囲で入力してください。",
"displayMessages3": "10~1,048,576MBの範囲で入力してください。",
"displayMessages4": "1か月でパスケットに入れられるパケットの合計は102,400MBまでとなります。"
}
JSON// パラメータ不足
{
"resultCode": "0098",
"messages": [
"システムエラー。\n時間をおいてから再度お試しください。"
],
"myTankCapacity": null,
"pasketInRemainingCapacity": null,
"pasketInMonthlyLimitCapacity": null,
"displayMessages1": null,
"displayMessages2": null,
"displayMessages3": null,
"displayMessages4": null
}
// 存在しないcustId
{
"resultCode": "0022",
"messages": [
"認証エラー。\nログアウト後、再ログインしてください。"
],
"myTankCapacity": null,
"pasketInRemainingCapacity": null,
"pasketInMonthlyLimitCapacity": null,
"displayMessages1": null,
"displayMessages2": null,
"displayMessages3": null,
"displayMessages4": null
}
// パスケット未契約
{
"resultCode": "0086",
"messages": [
"パスケットのご契約がないため、ご利用いただけない状態です。"
],
"myTankCapacity": null,
"pasketInRemainingCapacity": null,
"pasketInMonthlyLimitCapacity": null,
"displayMessages1": null,
"displayMessages2": null,
"displayMessages3": null,
"displayMessages4": null
}
JSONGet My Tank History
パスケットの過去3か月の明細を確認する。
| パラメータ | 値 |
|---|---|
| Method | POST |
| URL | https://api.eonet.jp/mineo/v1/get_my_tank_history |
{
"resultCode": "00",
"messages": [
null
],
"monthlyMyTankHistoryList": [ // 月集計
{
"targetMonth": "12", // 対象月
"sumInfo": {
"targetDay": null, // 日にち(常にnull)
"inPacketCapacity": null, // IN(MB)
"outPacketCapacity": null // OUT(MB)
},
"dailyMyTankHistoryList": [ // 日集計
{
"targetDay": "1", // 日にち
"inPacketCapacity": null, // IN(MB)
"outPacketCapacity": null // OUT(MB)
}
]
},
{
"targetMonth": "11",
"sumInfo": {
"targetDay": null,
"inPacketCapacity": 0,
"outPacketCapacity": 0
},
"dailyMyTankHistoryList": [
{
"targetDay": "1",
"inPacketCapacity": 0,
"outPacketCapacity": 0
},
{
"targetDay": "2",
"inPacketCapacity": 0,
"outPacketCapacity": 0
},
{
"targetDay": "3",
"inPacketCapacity": 0,
"outPacketCapacity": 0
},
// 省略
{
"targetDay": "30",
"inPacketCapacity": 0,
"outPacketCapacity": 0
}
]
},
{
"targetMonth": "10",
"sumInfo": {
"targetDay": null,
"inPacketCapacity": 0,
"outPacketCapacity": 0
},
"dailyMyTankHistoryList": [
{
"targetDay": "1",
"inPacketCapacity": 0,
"outPacketCapacity": 0
},
{
"targetDay": "2",
"inPacketCapacity": 0,
"outPacketCapacity": 0
},
{
"targetDay": "3",
"inPacketCapacity": 0,
"outPacketCapacity": 0
},
// 省略
{
"targetDay": "31",
"inPacketCapacity": 0,
"outPacketCapacity": 0
}
]
}
],
"notes": null // ノート(詳細調査中)
}
// パスケット未契約時(参考)
{
"resultCode": "00",
"messages": [
null
],
"monthlyMyTankHistoryList": [
{
"targetMonth": "12",
"sumInfo": {
"targetDay": null,
"inPacketCapacity": null,
"outPacketCapacity": null
},
"dailyMyTankHistoryList": [
{
"targetDay": "1",
"inPacketCapacity": null,
"outPacketCapacity": null
}
]
},
{
"targetMonth": "11",
"sumInfo": {
"targetDay": null,
"inPacketCapacity": 0,
"outPacketCapacity": 0
},
"dailyMyTankHistoryList": [
{
"targetDay": "24",
"inPacketCapacity": 0,
"outPacketCapacity": 0
},
{
"targetDay": "25",
"inPacketCapacity": 0,
"outPacketCapacity": 0
},
{
"targetDay": "26",
"inPacketCapacity": 0,
"outPacketCapacity": 0
},
{
"targetDay": "27",
"inPacketCapacity": 0,
"outPacketCapacity": 0
},
{
"targetDay": "28",
"inPacketCapacity": 0,
"outPacketCapacity": 0
},
{
"targetDay": "29",
"inPacketCapacity": 0,
"outPacketCapacity": 0
},
{
"targetDay": "30",
"inPacketCapacity": 0,
"outPacketCapacity": 0
}
]
}
],
"notes": null
}
JSON// パラメータ不足
{
"resultCode": "0098",
"messages": [
"システムエラー。\n時間をおいてから再度お試しください。"
],
"myTankCapacity": null,
"pasketInRemainingCapacity": null,
"pasketInMonthlyLimitCapacity": null,
"displayMessages1": null,
"displayMessages2": null,
"displayMessages3": null,
"displayMessages4": null
}
// 存在しないcustId
{
"resultCode": "0098",
"messages": [
"システムエラー。\n時間をおいてから再度お試しください。"
],
"monthlyMyTankHistoryList": null,
"notes": null
}
JSONMy Tank In
パスケットにパケットを入れる。
| パラメータ | 値 |
|---|---|
| Method | POST |
| URL | https://api.eonet.jp/mineo/v1/my_tank_in |
パスケットに入れるパケット量は、form-urlencodedで10~102400の範囲で指定する。
inCapacity: 100Plaintext{
"resultCode": "00",
"messages": [
null
],
"myTankCapacity": 1124, // 実行後のパスケット残量(MB)
"completionNotes": "反映までに時間がかかる場合があります" // 注意事項
}
JSON// パラメータ不足、またはinCapacityの値が大きすぎる
{
"resultCode": "0098",
"messages": [
"システムエラー。\n時間をおいてから再度お試しください。"
],
"myTankCapacity": null,
"completionNotes": null
}
// 存在しないcustId
{
"resultCode": "0022",
"messages": [
"認証エラー。\nログアウト後、再ログインしてください。"
],
"myTankCapacity": null,
"completionNotes": null
}
// inCapacityが10より小さい
{
"resultCode": "0080",
"messages": [
"10MB以上で入力してください。"
],
"myTankCapacity": null,
"completionNotes": null
}
// inCapacityが102400より大きい
{
"resultCode": "0081",
"messages": [
"パスケットへの出し入れができる最大容量を超えています。"
],
"myTankCapacity": null,
"completionNotes": null
}
// inCapacityがパケット残容量より大きい
{
"resultCode": "0082",
"messages": [
"お手持ちの残容量以下で入力してください。"
],
"myTankCapacity": null,
"completionNotes": null
}
// パスケット未契約
{
"resultCode": "0086",
"messages": [
"パスケットのご契約がないため、ご利用いただけない状態です。"
],
"myTankCapacity": null,
"completionNotes": null
}
JSONMy Tank Out
パスケットからパケットを引き出す。
| パラメータ | 値 |
|---|---|
| Method | POST |
| URL | https://api.eonet.jp/mineo/v1/my_tank_out |
パスケットに入れるパケット量は、form-urlencodedで10~1048576の範囲で指定する。
outCapacity: 100Plaintext{
"resultCode": "00",
"messages": [
null
],
"myTankCapacity": 1024, // 実行後のパスケット残量(MB)
"completionNotes": "反映までに時間がかかる場合があります" // 注意事項
}
JSON// パラメータ不足、またはoutCapacityの値が大きすぎる
{
"resultCode": "0098",
"messages": [
"システムエラー。\n時間をおいてから再度お試しください。"
],
"myTankCapacity": null,
"completionNotes": null
}
// 存在しないcustId
{
"resultCode": "0022",
"messages": [
"認証エラー。\nログアウト後、再ログインしてください。"
],
"myTankCapacity": null,
"completionNotes": null
}
// outCapacityが10より小さい
{
"resultCode": "0080",
"messages": [
"10MB以上で入力してください。"
],
"myTankCapacity": null,
"completionNotes": null
}
// outCapacityが1048576より大きい
{
"resultCode": "0081",
"messages": [
"パスケットへの出し入れができる最大容量を超えています。"
],
"myTankCapacity": null,
"completionNotes": null
}
// outCapacityがパスケットの残容量より大きい
{
"resultCode": "0083",
"messages": [
"パスケット内の容量以下で入力してください。"
],
"myTankCapacity": null,
"completionNotes": null
}
// パスケット未契約
{
"resultCode": "0086",
"messages": [
"パスケットのご契約がないため、ご利用いただけない状態です。"
],
"myTankCapacity": null,
"completionNotes": null
}
JSONGet Pasket Auto Out
パスケットのオートOUT1設定を取得する。
| パラメータ | 値 |
|---|---|
| Method | POST |
| URL | https://api.eonet.jp/mineo/v1/get_pasket_auto_out |
{
"resultCode": "00",
"messages": [
null
],
"autoOutSize": 100, // オートOUTするパケット(MB)
"displayAttentionWordList": [
{
"attentionWord": "※現在の設定から上書きされます。"
},
{
"attentionWord": "※100MB~1,048,576MBの範囲で設定してください。"
},
{
"attentionWord": "※パスケットの残容量が、設定されたオートOUT容量以下の場合、オートOUTは実施されません。"
},
{
"attentionWord": "※障害、メンテナンス時、または残容量の計算タイミングによってはオートOUTが実施されない場合があります。"
}
]
}
JSON// パラメータ不足
{
"resultCode": "0098",
"messages": [
"システムエラー。\n時間をおいてから再度お試しください。"
],
"autoOutSize": null,
"displayAttentionWordList": null
}
// 存在しないcustId
{
"resultCode": "0022",
"messages": [
"認証エラー。\nログアウト後、再ログインしてください。"
],
"autoOutSize": null,
"displayAttentionWordList": null
}
// パスケット未契約
{
"resultCode": "0086",
"messages": [
"パスケットのご契約がないため、ご利用いただけない状態です。"
],
"autoOutSize": null,
"displayAttentionWordList": null
}
JSONSet Pasket Auto Out
パスケットのオートOUTを設定する。
| パラメータ | 値 |
|---|---|
| Method | POST |
| URL | https://api.eonet.jp/mineo/v1/set_pasket_auto_out |
オートOUTの設定内容は、form-urlencodedで100~1048576の範囲で指定する。
autoOutSetを0,1以外の値に設定すると、レスポンスのautoOutSizeがnullと表示されるほか、本来エラーとなるはずの範囲外のautoOutSizeでも設定できてしまう問題がある(この状態でオートOUTすると想定外の動作になる可能性がある)。
autoOutSet: 1 // オートOUT設定(0 -> 無効, 0以外 -> 有効)
autoOutSize: 100 // オートOUTする容量(MB)Plaintext{
"resultCode": "00",
"messages": [
null
],
"autoOutSize": 100 // オートOUTする容量(MB)
}
JSON// パラメータ不足、または範囲外のautoOutSize
{
"resultCode": "0098",
"messages": [
"システムエラー。\n時間をおいてから再度お試しください。"
],
"autoOutSize": null
}
// 存在しないcustId
{
"resultCode": "0022",
"messages": [
"認証エラー。\nログアウト後、再ログインしてください。"
],
"autoOutSize": null
}
// パスケット未契約
{
"resultCode": "0086",
"messages": [
"パスケットのご契約がないため、ご利用いただけない状態です。"
],
"autoOutSize": null
}
JSON<!-- form-urlencodedが不足している(400エラー) -->
<!doctype html><html lang="ja"><head><title>HTTPステータス 400 – Bad Request</title><style type="text/css">body {font-family:Tahoma,Arial,sans-serif;} h1, h2, h3, b {color:white;background-color:#525D76;} h1 {font-size:22px;} h2 {font-size:16px;} h3 {font-size:14px;} p {font-size:12px;} a {color:black;} .line {height:1px;background-color:#525D76;border:none;}</style></head><body><h1>HTTPステータス 400 – Bad Request</h1><hr class="line" /><p><b>タイプ</b> ステータスレポート</p><p><b>メッセージ</b> Bad Request</p><p><b>説明</b> サーバは、クライアントエラー(例えば、不正なリクエスト構文、無効なリクエストメッセージフレーミング、または不正なリクエストルーティング)であ ると考えられるために、リクエストを処理できない、または処理しません。</p><hr class="line" /><h3>Apache Tomcat/9.0.35</h3></body></html>HTMLその他機能
Change Speed
mineoスイッチのON/OFFを切り替える。
| パラメータ | 値 |
|---|---|
| Method | POST |
| URL | https://api.eonet.jp/mineo/v1/change_speed |
mineoスイッチの設定は、form-urlencodedで指定する。
speedFlg: 0 // 0 -> スイッチON, 1-> スイッチOFFPlaintext{
"messages": [
null
],
"resultCode": "00"
}JSON// パラメータ不足、または範囲外のspeedFlg
{
"resultCode": "0098",
"messages": [
"システムエラー。\n時間をおいてから再度お試しください。"
]
}
// 存在しないcustId
{
"resultCode": "0022",
"messages": [
"認証エラー。\nログアウト後、再ログインしてください。"
]
}
// mineoスイッチのクールダウン(1分間)中に実行した
{
"resultCode": "0025",
"messages": [
"エラーが発生しております。\n時間をおいてから再度お試しください。"
]
}
JSONGet Speed Info
mienoスイッチ自動節約設定のスケジュールを取得する。
| パラメータ | 値 |
|---|---|
| Method | POST |
| URL | https://api.eonet.jp/mineo/v1/get_speed_info |
{
"resultCode": "00",
"messages": [
null
],
"speedChangeSettingList": [ // 設定無い場合は null
{
"execYobiKbn": "2", // 設定曜日(1~7 -> 日~土)
"execTime": "0400", // 設定時刻(HHmm)
"changeOnOffKbn": "0" // 0 -> 節約ON, 1-> 節約OFF
},
{
"execYobiKbn": "2",
"execTime": "0415",
"changeOnOffKbn": "1"
},
{
"execYobiKbn": "3",
"execTime": "2100",
"changeOnOffKbn": "0"
},
{
"execYobiKbn": "5",
"execTime": "2330",
"changeOnOffKbn": "1"
}
]
}
JSON// パラメータ不足
{
"resultCode": "0098",
"messages": [
"システムエラー。\n時間をおいてから再度お試しください。"
],
"speedChangeSettingList": null
}
// 存在しないcustId
{
"resultCode": "0022",
"messages": [
"認証エラー。\nログアウト後、再ログインしてください。"
],
"speedChangeSettingList": null
}
JSONGet Traffic History
過去3ヶ月分のデータ通信量、パケットギフト、マイネ王からのパケットの出入りを確認できる。
| パラメータ | 値 |
|---|---|
| Method | POST |
| URL | https://api.eonet.jp/mineo/v1/get_traffic_history |
{
"messages": [
null
],
"monthlyTrafficHistoryList": [
{
"averageInfo": { // 一日あたりの平均通信量
"dataTraffic": 242, // データ通信量(合計)
"dataTrafficAdCountFree": 0, // データ通信量(広告フリー)
"dataTrafficHighSpeed": 242, // データ通信量(高速)
"dataTrafficLowSpeed": 0, // データ通信量(低速・mineoスイッチON)
"decreaseFreeTank": 0, // フリータンクに入れた通信量・贈ったチップなど
"decreasePacketGift": 955, // 発行したパケットギフト
"increaseFreeTank": 0, // フリータンクから引き出した通信量・受け取ったチップなど
"increasePacketGift": 1458, // 受け取ったパケットギフト
"targetDay": null
},
"dailyTrafficHistoryList": [ // 一日ごとのデータ通信量を集計
{
"dataTraffic": 143,
"dataTrafficAdCountFree": 0,
"dataTrafficHighSpeed": 143,
"dataTrafficLowSpeed": 0,
"decreaseFreeTank": 0,
"decreasePacketGift": 0,
"increaseFreeTank": 0,
"increasePacketGift": 0,
"targetDay": "1" // 日にち(ここでは5月1日を表す)
},
{
"dataTraffic": 4,
"dataTrafficAdCountFree": 0,
"dataTrafficHighSpeed": 4,
"dataTrafficLowSpeed": 0,
"decreaseFreeTank": 0,
"decreasePacketGift": 0,
"increaseFreeTank": 0,
"increasePacketGift": 0,
"targetDay": "2"
},
{
"dataTraffic": 1,
"dataTrafficAdCountFree": 0,
"dataTrafficHighSpeed": 1,
"dataTrafficLowSpeed": 0,
"decreaseFreeTank": 0,
"decreasePacketGift": 0,
"increaseFreeTank": 0,
"increasePacketGift": 0,
"targetDay": "3"
},
// 以下、月最終日(targetDay->31)まで省略
],
"sumInfo": { // データ通信量の月合計
"dataTraffic": 7501,
"dataTrafficAdCountFree": 0,
"dataTrafficHighSpeed": 7501,
"dataTrafficLowSpeed": 0,
"decreaseFreeTank": 0,
"decreasePacketGift": 29598,
"increaseFreeTank": 0,
"increasePacketGift": 45196,
"targetDay": null
},
"targetMonth": "5" // 集計月
},
{
"averageInfo": { // 6月分
"dataTraffic": 277,
"dataTrafficAdCountFree": 0,
"dataTrafficHighSpeed": 277,
"dataTrafficLowSpeed": 0,
"decreaseFreeTank": 0,
"decreasePacketGift": 2309,
"increaseFreeTank": 0,
"increasePacketGift": 2242,
"targetDay": null
},
// 省略
"sumInfo": {
"dataTraffic": 3696,
"dataTrafficAdCountFree": 0,
"dataTrafficHighSpeed": 3696,
"dataTrafficLowSpeed": 0,
"decreaseFreeTank": 0,
"decreasePacketGift": 0,
"increaseFreeTank": 0,
"increasePacketGift": 0,
"targetDay": null
},
"targetMonth": "7"
}
],
"resultCode": "00"
}
JSON// パラメータ不足
{
"resultCode": "0098",
"messages": [
"システムエラー。\n時間をおいてから再度お試しください。"
],
"monthlyTrafficHistoryList": null
}
// 存在しないcustId
{
"resultCode": "0022",
"messages": [
"認証エラー。\nログアウト後、再ログインしてください。"
],
"monthlyTrafficHistoryList": null
}
JSONLogin Stamp
ログインスタンプの獲得、特典内容を確認する。
| パラメータ | 値 |
|---|---|
| Method | POST |
| URL | https://api.eonet.jp/mineo/v1/login_stamp |
form-urlencodedでログインスタンプを獲得するか指定する。
ちなみにログイン済みで1にしても特にエラーは出ない。
// 0 -> スタンプを獲得しない, 1-> 日初ログインの場合、スタンプを獲得する
updateMode: 1Plaintext{
"resultCode": "00",
"messages": [
null
],
"stampCnt": 155, // 累計スタンプカウント
"updateFlg": "0", // 0 -> 何もしない, 1 -> スタンプを獲得した
"tokutenList": [
{
"id": "LS00000001", // 特典ID
"name": "100MB", // 特典内容
"requiredStamps": 20, // 必要スタンプ数
"getFlg": "0" // 0 -> 何もしない, 1 -> 特典を獲得した
},
{
"id": "LS00000002",
"name": "王国コイン",
"requiredStamps": 100,
"getFlg": "0"
}
]
}
JSON// パラメータ不足、または範囲外のupdateMode
{
"resultCode": "0098",
"messages": [
"システムエラー。\n時間をおいてから再度お試しください。"
],
"stampCnt": null,
"updateFlg": null,
"tokutenList": null
}
// 存在しないcustId
{
"resultCode": "0022",
"messages": [
"認証エラー。\nログアウト後、再ログインしてください。"
],
"stampCnt": null,
"updateFlg": null,
"tokutenList": null
}
JSONGet Video Ad Info
広告視聴パケットの獲得状況を確認する。
| パラメータ | 値 |
|---|---|
| Method | POST |
| URL | https://api.eonet.jp/mineo/v1/get_video_ad_info |
{
"resultCode": "00",
"messages": [
null
],
"viewCount": 2, // 視聴回数
"rewardPacketAmount": 1, // 広告視聴によるパケット報酬(MB)
"limitViewCount": 15 // 日あたり視聴上限
}
JSON// 存在しないcustId
{
"resultCode": "0022",
"messages": [
"認証エラー。\nログアウト後、再ログインしてください。"
],
"viewCount": null,
"rewardPacketAmount": null,
"limitViewCount": null
}
JSONGet Syokai Info
「紹介アンバサダー制度」の情報を取得する。
| パラメータ | 値 |
|---|---|
| Method | POST |
| URL | https://api.eonet.jp/mineo/v1/get_syokai_info |
{
"resultCode": "00",
"messages": [
null
],
"syokaiCnt": 0, // 紹介件数
"syokaiTokutenCompleteCnt": 0, // 特典付与済
"syokaiTokutenWaitCnt": 0, // 適用待ち
"syokaiTokutenExpiredCnt": 0, // 適用外
"syokaiUrl": "https://mineo.jp/syokai/?jrp=syokai&kyb=Y3Y3C0W1D0", // 紹介用URL
"syokaiAmbassadorRank": "01", // アンバサダーランク
"syokaiAmbassadorRankName": "ブロンズ", // アンバサダーランク名称
"cntToNextRank": 1 // ランクアップに必要な紹介件数
}
JSON// 存在しないcustId
{
"resultCode": "0022",
"messages": [
"認証エラー。\nログアウト後、再ログインしてください。"
],
"syokaiCnt": null,
"syokaiTokutenCompleteCnt": null,
"syokaiTokutenWaitCnt": null,
"syokaiTokutenExpiredCnt": null,
"syokaiUrl": null,
"syokaiAmbassadorRank": null,
"syokaiAmbassadorRankName": null,
"cntToNextRank": null
}
JSONおわりに
mineoのAPIは公開されてないものだけど、かなり扱いやすいね!!
パケットギフトを自動化するサンプルプログラムも作れたよ〜
もしほかにmineoの「こんな機能おしえて!」とかあったら、ぜひコメントで教えてくれると嬉しいな~♪
ねぇねぇ、今月もおねがい!!
ふふっ、やっぱりそうなるよねぇ
じゃあプログラムで送っちゃお〜
ギフトコードなに―
って、パケットもう増えた!?
自動化してみた〜
スマホでコピペしなくて良いから楽ちん♪
よく分かんないけどすごーい!!

0