Qiitaで書いた記事からの転載&少し修正したもの)

(2025/12/01追記)マイネ王関係の仕様も確認してきたよ!

ライノ
ライノ

もう残りパケット全然ないよ~!

あらら、わたし余ったのあるからギフトしよっか~?
アプリから「ギフトを送る」っと……
ギフトコードは○○○○だよ〜

みるこ
みるこ
ライノ
ライノ

わーいありがと!!

(毎月こんな感じだから、
もうちょっとラクしたいかも……)

みるこ
みるこ

はじめに

mineoは「パケットギフト」とか「ゆずるね。」とか、パケットに関する機能が充実してるのが好き!

この便利な機能を自動化したいなって思って、mineoアプリを活用してパケットギフトの通信方法を調べてみることにしたよ!

全体

リクエスト

以下で紹介するAPIはいずれも非公開APIで、予告なく仕様が変更される可能性がある。
個人的な研究・実験目的での利用に留めるほか、過度なアクセスは控えること。

APIは特に記述が無い限り、全て以下のパラメータが必要。

パラメータ
appId(任意の文字列)
appVersion(任意の文字列)
AuthorizationBearer
aid(任意の文字列)

Authorizationの有効期限は24時間

不正なAuthorizationを入力すると次のエラーが返される。

Response_error
{
    "statusCode": 401,
    "message": "Invalid JWT."
}
JSON

また、Get Telnum Listを除いて、custIdform-urlencodedで指定する必要がある。

custId回線毎に固有。

URLEncoded Form
custId: ABC12DE345
Plaintext
リクエスト例(Javascript)
terminal
npm install axios
Bash
Request.js
import 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()
JavaScript

Authorizationの更新

Authorizationの有効期限が切れた場合は、リフレッシュトークンを用いることで更新できる。

リフレッシュトークンは、mineoアプリをログアウト→ログインして、mitmproxyなどのツールで下記URLをパケットキャプチャすると入手できる。

パラメータ
MethodPOST
URLhttps://login.eonet.jp/oidc/v1/token

form-urlencodedで次のように指定する。

URLEncoded Form
grant_type: refresh_token     // 固定値
refresh_token: TOKEN          // 入手したリフレッシュトークン
client_id: 100064798          // 固定値
Plaintext
Response_ok
{
    "access_token": "xxE05YhIxMdoJmY......",
    "expires_in": "86400",
    "id_token": "eyJhbGciOiJSUzI1NiIsImtpZCI6IjNIOURJcUNXZ1R5dzdOdW1ZV1daM3cifQ......",
    "refresh_token": "VEweVyQQCzmTwPmBXd......",
    "token_type": "Bearer"
}
JSON

id_tokenは、ヘッダーのAuthorizationパラメータに、refresh_tokenはトークンの再更新に使用できる。

発行したrefresh_tokenが使えるのは一度きり

Response_error
// リフレッシュトークンが存在しない
{
    "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が不要

パラメータ
MethodPOST
URLhttps://api.eonet.jp/mineo/v1/get_telnum_list
Response_ok
{
    "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
Response_error
// パラメータ不足
{
    "resultCode": "0098",
    "messages": [
        "システムエラー。\n時間をおいてから再度お試しください。"
    ],
    "telNumList": null
}
JSON

Get Line Name

契約回線に設定した回線名称を取得する。

パラメータ
MethodPOST
URLhttps://api.eonet.jp/mineo/v1/get_line_name
Response_ok
{
    "lineName": "iPhone",  // 回線名称
    "messages": [
        null
    ],
    "resultCode": "00"
}
JSON
Response_error
// パラメータ不足
{
    "resultCode": "0098",
    "messages": [
        "システムエラー。\n時間をおいてから再度お試しください。"
    ],
    "lineName": null
}

// 存在しないcustId
{
    "resultCode": "0022",
    "messages": [
        "認証エラー。\nログアウト後、再ログインしてください。"
    ],
    "lineName": null
}
JSON

パケット関係

Get Capacity

契約回線のパケット使用量、残量を確認するために使用。

パラメータ
MethodPOST
URLhttps://api.eonet.jp/mineo/v1/get_capacity
Response_ok
{
    "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
Response_error
// パラメータ不足
{
    "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
}
JSON

Get Capacity For Gift

パケットギフトのギフト可能容量を確認できる。

パラメータ
MethodPOST
URLhttps://api.eonet.jp/mineo/v1/get_capacity_for_gift
Response_ok
{
    "capacityForGift": 40918,  // ギフト可能容量(MB)
    "messages": [
        null
    ],
    "resultCode": "00"
}
JSON
Response_error
// パラメータ不足
{
    "resultCode": "0098",
    "messages": [
        "システムエラー。\n時間をおいてから再度お試しください。"
    ],
    "capacityForGift": null
}

// 存在しないcustId
{
    "resultCode": "0022",
    "messages": [
        "認証エラー。\nログアウト後、再ログインしてください。"
    ],
    "capacityForGift": null
}
JSON

Change Gift

発行済みパケットギフトを受け取る。

パラメータ
MethodPOST
URLhttps://api.eonet.jp/mineo/v1/change_gift

受け取りたいパケットギフトのコードは、form-urlencodedで指定できる。

URLEncoded Form
giftCode: ABCD1234
Plaintext
Response_ok
{
    "resultCode": "00",
    "messages": [
      null
    ],
    "giftCapacity": 10  // 受け取ったパケット容量(MB)
}
JSON
Response_error
// パラメータ不足
{
    "resultCode": "0098",
    "messages": [
      "システムエラー。\n時間をおいてから再度お試しください。"
    ],
    "giftCapacity": null
}

// 存在しないcustId
{
    "resultCode": "0022",
    "messages": [
        "認証エラー。\nログアウト後、再ログインしてください。"
    ],
    "giftCapacity": null
}

// ギフト発行した回線と同一回線でパケットギフトを受け取ろうとした
{
    "resultCode": "0056",
    "messages": [
      "発行元と受取先が同一のため、受け取りできません。"
    ],
    "giftCapacity": null
}

// 存在しないパケットギフトを受け取ろうとした
{
    "resultCode": "0051",
    "messages": [
      "このギフトコードは存在しません。"
    ],
    "giftCapacity": null
}
JSON

Issue Gift

パケットギフトを発行する。

パラメータ
MethodPOST
URLhttps://api.eonet.jp/mineo/v1/issue_gift

ギフト容量は、form-urlencodedで指定できる。
giftCapacityはmineoアプリと同様、10以上9999以下で指定する必要がある。

URLEncoded Form
giftCapacity: 1000
Plaintext
Response_ok
{
    "expireDate": "20240727",      // 有効期限(yyyyMMdd)
    "giftCapacity": 1000,          // ギフト容量(MB)
    "giftCode": "ABCD1234",        // ギフトコード
    "messages": [
        null
    ],
    "resultCode": "00"
}
JSON
Response_error
// パラメータ不足、または範囲外の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
}
JSON

Get Packetcharge Info

パケットチャージに関する情報を取得する。

パラメータ
MethodPOST
URLhttps://api.eonet.jp/mineo/v1/get_packetcharge_info
Response_ok
{
    "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
Response_error
// パラメータ不足
{
    "resultCode": "0098",
    "messages": [
        "システムエラー。\n時間をおいてから再度お試しください。"
    ],
    "packetChargeInfo": null,
    "packetChargeKanryoHistList": null
}

// 存在しないcustId
{
    "resultCode": "0022",
    "messages": [
        "認証エラー。\nログアウト後、再ログインしてください。"
    ],
    "packetChargeInfo": null,
    "packetChargeKanryoHistList": null
}
JSON

Charge Packet

パケットチャージを実行する。

実行すると、チャージ分の料金が実際に請求されるので使用は非推奨。

パラメータ
MethodPOST
URLhttps://api.eonet.jp/mineo/v1/charge_packet

チャージ口数をform-urlencodedで、1~10の範囲で指定する(1口=100MB, 55円)。

URLEncoded Form
chargeCount: 1
Plaintext
Response_ok
{
    "resultCode": "00",
    "messages": [
        null
    ]
}
JSON
Response_error
// 上限チャージした時のエラーも用意されてるはず(費用の関係で未検証)

// パラメータ不足
{
    "resultCode": "0098",
    "messages": [
        "システムエラー。\n時間をおいてから再度お試しください。"
    ]
}

// 範囲外のchargeCount
{
    "resultCode": "0099",
    "messages": [
        "システムエラー。\n時間をおいてから再度お試しください。"
    ]
}


// 存在しないcustId
{
    "resultCode": "0022",
    "messages": [
        "認証エラー。\nログアウト後、再ログインしてください。"
    ]
}
JSON

Get Packetshare Info

パケットシェアメンバー情報を取得する。

パラメータ
MethodPOST
URLhttps://api.eonet.jp/mineo/v1/get_packetshare_info
Response_ok
// (調査中)

{
    "resultCode": "03",
    "messages": [
        null
    ],
    "packetshareList": null
}
JSON
Response_error
// パラメータ不足
{
    "resultCode": "0098",
    "messages": [
        "システムエラー。\n時間をおいてから再度お試しください。"
    ],
    "packetshareList": null
}

// 存在しないcustId
{
    "resultCode": "0022",
    "messages": [
        "認証エラー。\nログアウト後、再ログインしてください。"
    ],
    "packetshareList": null
}
JSON

ゆずるね。関係

Declare Devolve

ゆずるね。」宣言を行う。

パラメータ
MethodPOST
URLhttps://api.eonet.jp/mineo/v1/declare_devolve
Response_ok
// 宣言完了
{
    "resultCode": "00",
    "messages": [
        null
    ]
}

// 既に宣言済み
{
    "resultCode": "05",
    "messages": [
        null
    ]
}
JSON
Response_error
// 存在しないcustId
{
    "resultCode": "0022",
    "messages": [
        "認証エラー。\nログアウト後、再ログインしてください。"
    ]
}

// 宣言受付時間外(11:30~12:59)
{
    "resultCode": "0061",
    "messages": [
        "現在、ゆずるね。宣言いただけません。次回分のゆずるね。宣言は13時以降に可能です。"
    ]
}
JSON

Get Devolve Declare Stat

「ゆずるね。」の宣言状況を取得する。

パラメータ
MethodPOST
URLhttps://api.eonet.jp/mineo/v1/get_devolve_declare_stat
Response_ok
{
    "resultCode": "00",
    "messages": [
        null
    ],
    "devolveDeclareStat": "1",          // 宣言状態(0 -> 宣言待ち, 1 -> 宣言済み)
    "devolveDeclareAcceptability": "1"  // 宣言結果(0 -> 未宣言, 1 -> 宣言済み, 2 -> 宣言受付時間外)
}
JSON
Response_error
// 存在しないcustId
{
    "resultCode": "0022",
    "messages": [
        "認証エラー。\nログアウト後、再ログインしてください。"
    ],
    "devolveDeclareStat": null,
    "devolveDeclareAcceptability": null
}
JSON

Get Devolve Declare Hist Thismonth

ゆずるね。の達成状況・特典状況を取得する。

パラメータ
MethodPOST
URLhttps://api.eonet.jp/mineo/v1/get_devolve_declare_hist_thismonth
Response_ok
{
    "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
Response_error
// 存在しないcustId
{
    "resultCode": "0022",
    "messages": [
        "認証エラー。\nログアウト後、再ログインしてください。"
    ],
    "nengetsu": null,
    "successCntAmount": null,
    "devolveDeclareHistList": null,
    "devolveTokutenMstList": null
}
JSON

パスケット関係

Get My Tank

パスケットの残容量などの情報を取得する。

パラメータ
MethodPOST
URLhttps://api.eonet.jp/mineo/v1/get_my_tank
Response_ok
{
    "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
Response_error
// パラメータ不足
{
    "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
}
JSON

Get My Tank History

パスケットの過去3か月の明細を確認する。

パラメータ
MethodPOST
URLhttps://api.eonet.jp/mineo/v1/get_my_tank_history
Response_ok
{
    "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
Response_error
// パラメータ不足
{
    "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
}
JSON

My Tank In

パスケットにパケットを入れる。

パラメータ
MethodPOST
URLhttps://api.eonet.jp/mineo/v1/my_tank_in

パスケットに入れるパケット量は、form-urlencoded10~102400の範囲で指定する。

URLEncoded Form
inCapacity: 100
Plaintext
Response_ok
{
    "resultCode": "00",
    "messages": [
        null
    ],
    "myTankCapacity": 1124,  // 実行後のパスケット残量(MB)
    "completionNotes": "反映までに時間がかかる場合があります"  // 注意事項
}
JSON
Response_error
// パラメータ不足、または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
}
JSON

My Tank Out

パスケットからパケットを引き出す。

パラメータ
MethodPOST
URLhttps://api.eonet.jp/mineo/v1/my_tank_out

パスケットに入れるパケット量は、form-urlencoded10~1048576の範囲で指定する。

URLEncoded Form
outCapacity: 100
Plaintext
Response_ok
{
    "resultCode": "00",
    "messages": [
        null
    ],
    "myTankCapacity": 1024,  // 実行後のパスケット残量(MB)
    "completionNotes": "反映までに時間がかかる場合があります"  // 注意事項
}
JSON
Response_error
// パラメータ不足、または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
}
JSON

Get Pasket Auto Out

パスケットのオートOUT1設定を取得する。

パラメータ
MethodPOST
URLhttps://api.eonet.jp/mineo/v1/get_pasket_auto_out
Response_ok
{
    "resultCode": "00",
    "messages": [
        null
    ],
    "autoOutSize": 100,  // オートOUTするパケット(MB)
    "displayAttentionWordList": [
        {
            "attentionWord": "※現在の設定から上書きされます。"
        },
        {
            "attentionWord": "※100MB~1,048,576MBの範囲で設定してください。"
        },
        {
            "attentionWord": "※パスケットの残容量が、設定されたオートOUT容量以下の場合、オートOUTは実施されません。"
        },
        {
            "attentionWord": "※障害、メンテナンス時、または残容量の計算タイミングによってはオートOUTが実施されない場合があります。"
        }
    ]
}
JSON
Response_error
// パラメータ不足
{
    "resultCode": "0098",
    "messages": [
        "システムエラー。\n時間をおいてから再度お試しください。"
    ],
    "autoOutSize": null,
    "displayAttentionWordList": null
}

// 存在しないcustId
{
    "resultCode": "0022",
    "messages": [
        "認証エラー。\nログアウト後、再ログインしてください。"
    ],
    "autoOutSize": null,
    "displayAttentionWordList": null
}

// パスケット未契約
{
    "resultCode": "0086",
    "messages": [
        "パスケットのご契約がないため、ご利用いただけない状態です。"
    ],
    "autoOutSize": null,
    "displayAttentionWordList": null
}
JSON

Set Pasket Auto Out

パスケットのオートOUTを設定する。

パラメータ
MethodPOST
URLhttps://api.eonet.jp/mineo/v1/set_pasket_auto_out

オートOUTの設定内容は、form-urlencoded100~1048576の範囲で指定する。

autoOutSetを0,1以外の値に設定すると、レスポンスのautoOutSizeがnullと表示されるほか、本来エラーとなるはずの範囲外のautoOutSizeでも設定できてしまう問題がある(この状態でオートOUTすると想定外の動作になる可能性がある)。

URLEncoded Form
autoOutSet: 1     // オートOUT設定(0 -> 無効, 0以外 -> 有効)
autoOutSize: 100  // オートOUTする容量(MB)
Plaintext
Response_ok
{
    "resultCode": "00",
    "messages": [
        null
    ],
    "autoOutSize": 100  // オートOUTする容量(MB)
}
JSON
Response_error
// パラメータ不足、または範囲外のautoOutSize
{
    "resultCode": "0098",
    "messages": [
        "システムエラー。\n時間をおいてから再度お試しください。"
    ],
    "autoOutSize": null
}

// 存在しないcustId
{
    "resultCode": "0022",
    "messages": [
        "認証エラー。\nログアウト後、再ログインしてください。"
    ],
    "autoOutSize": null
}

// パスケット未契約
{
    "resultCode": "0086",
    "messages": [
        "パスケットのご契約がないため、ご利用いただけない状態です。"
    ],
    "autoOutSize": null
}
JSON
Response_error
<!-- 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を切り替える。

パラメータ
MethodPOST
URLhttps://api.eonet.jp/mineo/v1/change_speed

mineoスイッチの設定は、form-urlencodedで指定する。

URLEncoded Form
speedFlg: 0  // 0 -> スイッチON, 1-> スイッチOFF
Plaintext
Response_ok
{
    "messages": [
        null
    ],
    "resultCode": "00"
}
JSON
Response_error
// パラメータ不足、または範囲外のspeedFlg
{
    "resultCode": "0098",
    "messages": [
        "システムエラー。\n時間をおいてから再度お試しください。"
    ]
}

// 存在しないcustId
{
    "resultCode": "0022",
    "messages": [
        "認証エラー。\nログアウト後、再ログインしてください。"
    ]
}

// mineoスイッチのクールダウン(1分間)中に実行した
{
    "resultCode": "0025",
    "messages": [
        "エラーが発生しております。\n時間をおいてから再度お試しください。"
    ]
}
JSON

Get Speed Info

mienoスイッチ自動節約設定のスケジュールを取得する。

パラメータ
MethodPOST
URLhttps://api.eonet.jp/mineo/v1/get_speed_info
Response_ok
{
    "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
Response_error
// パラメータ不足
{
    "resultCode": "0098",
    "messages": [
        "システムエラー。\n時間をおいてから再度お試しください。"
    ],
    "speedChangeSettingList": null
}

// 存在しないcustId
{
    "resultCode": "0022",
    "messages": [
        "認証エラー。\nログアウト後、再ログインしてください。"
    ],
    "speedChangeSettingList": null
}
JSON

Get Traffic History

過去3ヶ月分のデータ通信量、パケットギフト、マイネ王からのパケットの出入りを確認できる。

パラメータ
MethodPOST
URLhttps://api.eonet.jp/mineo/v1/get_traffic_history
Response_ok
{
    "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
Response_error
// パラメータ不足
{
    "resultCode": "0098",
    "messages": [
      "システムエラー。\n時間をおいてから再度お試しください。"
    ],
    "monthlyTrafficHistoryList": null
}

// 存在しないcustId
{
    "resultCode": "0022",
    "messages": [
        "認証エラー。\nログアウト後、再ログインしてください。"
    ],
    "monthlyTrafficHistoryList": null
}
JSON

Login Stamp

ログインスタンプの獲得、特典内容を確認する。

パラメータ
MethodPOST
URLhttps://api.eonet.jp/mineo/v1/login_stamp

form-urlencodedでログインスタンプを獲得するか指定する。
ちなみにログイン済みで1にしても特にエラーは出ない。

URLEncoded Form
// 0 -> スタンプを獲得しない, 1-> 日初ログインの場合、スタンプを獲得する
updateMode: 1
Plaintext
Response_ok
{
    "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
Response_error
// パラメータ不足、または範囲外のupdateMode
{
    "resultCode": "0098",
    "messages": [
        "システムエラー。\n時間をおいてから再度お試しください。"
    ],
    "stampCnt": null,
    "updateFlg": null,
    "tokutenList": null
}

// 存在しないcustId
{
    "resultCode": "0022",
    "messages": [
        "認証エラー。\nログアウト後、再ログインしてください。"
    ],
    "stampCnt": null,
    "updateFlg": null,
    "tokutenList": null
}
JSON

Get Video Ad Info

広告視聴パケットの獲得状況を確認する。

パラメータ
MethodPOST
URLhttps://api.eonet.jp/mineo/v1/get_video_ad_info
Response_ok
{
    "resultCode": "00",
    "messages": [
        null
    ],
    "viewCount": 2,           // 視聴回数
    "rewardPacketAmount": 1,  // 広告視聴によるパケット報酬(MB)
    "limitViewCount": 15      // 日あたり視聴上限
}
JSON
Response_error
// 存在しないcustId
{
    "resultCode": "0022",
    "messages": [
        "認証エラー。\nログアウト後、再ログインしてください。"
    ],
    "viewCount": null,
    "rewardPacketAmount": null,
    "limitViewCount": null
}
JSON

Get Syokai Info

紹介アンバサダー制度」の情報を取得する。

パラメータ
MethodPOST
URLhttps://api.eonet.jp/mineo/v1/get_syokai_info
Response_ok
{
    "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
Response_error
// 存在しないcustId
{
    "resultCode": "0022",
    "messages": [
        "認証エラー。\nログアウト後、再ログインしてください。"
    ],
    "syokaiCnt": null,
    "syokaiTokutenCompleteCnt": null,
    "syokaiTokutenWaitCnt": null,
    "syokaiTokutenExpiredCnt": null,
    "syokaiUrl": null,
    "syokaiAmbassadorRank": null,
    "syokaiAmbassadorRankName": null,
    "cntToNextRank": null
}
JSON

おわりに

mineoのAPIは公開されてないものだけど、かなり扱いやすいね!!

パケットギフトを自動化するサンプルプログラムも作れたよ〜

owner avatar
yuzune27 / APGifter GitHub
Automate mineo gift packets

もしほかにmineoの「こんな機能おしえて!」とかあったら、ぜひコメントで教えてくれると嬉しいな~♪

ライノ
ライノ

ねぇねぇ、今月もおねがい!!

ふふっ、やっぱりそうなるよねぇ
じゃあプログラムで送っちゃお〜

みるこ
みるこ
ライノ
ライノ

ギフトコードなに
って、パケットもう増えた!?

自動化してみた〜
スマホでコピペしなくて良いから楽ちん♪

みるこ
みるこ
ライノ
ライノ

よく分かんないけどすごーい!!

もし良ければ、Like!をお願いします。記事執筆のモチベーションになります!
Like 0

投稿者 みぃるん

うさぎさんとかちっちゃいのが好き。 プログラミング勉強中~

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です