はじめての方は次の手順で
- 1メールアドレスとパスワード、またはトークンで登録し、ダッシュボードを開きます。
- 2接続タブでAPIキーを発行します。キー全体は発行した時に一度だけ表示されるので、その場で保存してください。
- 3キーが必要なリクエストでは、毎回Authorizationヘッダーにキーを入れてください。
- 4まず/accountを呼び出してキーが通ることを確認し、その後/ordersで注文します。
認証の仕組み
ご自身のアカウントに関わるリクエスト (account、orders、proxy-user) にはAPIキーが必要です。ヘッダーにAuthorization: Bearer pwk_...として送ってください。料金、国、見積もりは誰でも利用でき、キーなしで呼び出せます。
ProxyWorldのサーバーはキーそのものを保存せず、ハッシュのみを保存します。キーを紛失した場合はダッシュボードで新しいキーを作成してください。古いキーはすぐに無効になります。キーはサーバー側のコードにのみ置いてください。ブラウザで動くコードや公開リポジトリにキーが入ると、第三者に使われるおそれがあります。
Authorization: Bearer pwk_your_api_key
ベースURLとデータ形式
- ベースURL
- https://proxyworld.shop/api/v1
- リクエストとレスポンスの本文
- application/json
- 金額
- USDの数値 (例: 1058.50)
- タイムスタンプ
- ISO 8601 (UTC)
呼び出し回数の上限
APIキーごとに1分あたり60回まで呼び出せます。キーなしで呼び出す公開エンドポイントは、IPごとに1分あたり60回までです。上限を超えるとHTTP 429が返ります。1分ほど待ってからもう一度お試しください。
失敗したときのレスポンス
HTTPステータスコードと、短いエラーコードと説明を含むJSON本文が返ります。
{
"error": {
"code": "insufficient_balance",
"message": "Your balance is too low for this order. Top up in the dashboard."
}
}| HTTP | code | 意味 |
|---|---|---|
| bad_requestHTTP 400必須の値がないか、この製品では受け付けない値が送られました。 | 必須の値がないか、この製品では受け付けない値が送られました。 | |
| unauthorizedHTTP 401APIキーがないか、有効なキーではありません。 | APIキーがないか、有効なキーではありません。 | |
| insufficient_balanceHTTP 402残高が注文の合計額より少なくなっています。残高は差し引かれていません。 | 残高が注文の合計額より少なくなっています。残高は差し引かれていません。 | |
| not_foundHTTP 404お客様のアカウントにこの番号の注文はありません。 | お客様のアカウントにこの番号の注文はありません。 | |
| rate_limitedHTTP 4291分あたりの呼び出し回数の上限を超えました。 | 1分あたりの呼び出し回数の上限を超えました。 | |
| server_errorHTTP 500サーバーがリクエストを完了できませんでした。残高は差し引かれていません。 | サーバーがリクエストを完了できませんでした。残高は差し引かれていません。 |
エンドポイント
アカウント情報を見る
GET/api/v1/accountAPIキーが必要
ログイン方法 (login: email または token)、メールアドレス、残高、プロキシのホストとポート、プロキシユーザー名とパスワード、許可IPを返します。トークンで作成したアカウントではemailはnullになります。
curl https://proxyworld.shop/api/v1/account \ -H "Authorization: Bearer pwk_your_api_key"
{
"login": "email",
"email": "you@example.com",
"balance_usd": 1300,
"proxy": {
"host": "gate.proxyworld.shop",
"http_port": 6100,
"socks5_port": 6200,
"username": "pwexample1",
"password": "your_password"
},
"allowed_ips": [
"203.0.113.10"
]
}製品と料金を見る
GET/api/v1/productsキーなしで利用可能
製品ごとの注文範囲、数量段階ごとの単価、期間割引を返します。料金ページと同じ料金表を使っています。
curl https://proxyworld.shop/api/v1/products
{
"currency": "USD",
"prices_as_of": "2026-10-31",
"products": [
{
"id": "unlimited",
"unit": "day",
"quantity": {
"meaning": "days",
"min": 1,
"max": 365
},
"...": "..."
},
{
"id": "residential",
"unit": "gb",
"...": "..."
}
]
}国と都市
GET/api/v1/countriesキーなしで利用可能
製品ごとに選べる国と、ユーザー名オプション-city-で使う都市の値を返します。
| 名前 | 型 | 意味 |
|---|---|---|
product任意 | string | unlimited、residential、isp、datacenterのいずれか。省略するとresidentialになります。 |
curl "https://proxyworld.shop/api/v1/countries?product=datacenter"
{
"product": "datacenter",
"countries": [
{
"code": "us",
"name": "United States",
"region": "americas",
"datacenter": true,
"cities": [
{
"name": "New York",
"value": "new_york"
},
{
"name": "Los Angeles",
"value": "los_angeles"
}
]
}
]
}見積もりを取得
POST/api/v1/quoteキーなしで利用可能
残高を変更せずに注文の合計額を計算します。注文時と同じ本文を送ってください。
| 名前 | 型 | 意味 |
|---|---|---|
product必須 | string | unlimited、residential、isp、datacenterのいずれか。 |
quantity必須 | integer | 注文数量: unlimitedは日数 (1~365)、residentialはGB (5~5,000)、ispはIP数 (1~1,000)、datacenterはIP数 (5~5,000)。 |
concurrency任意 | integer | unlimitedのみ。200、500、1000、2000のいずれか。 |
bandwidth任意 | integer | unlimitedのみ、単位はMbps。100、200、500、1000のいずれか。 |
months任意 | integer | ispとdatacenterのみ。1、3、6、12のいずれか。 |
country任意 | string | ispとdatacenterのみ。jpのような2文字の国コード。使える値は/countriesに載っています。 |
curl -X POST https://proxyworld.shop/api/v1/quote \
-H "Content-Type: application/json" \
-d '{"product":"unlimited","quantity":30,"concurrency":1000,"bandwidth":200}'{
"product": "unlimited",
"quantity": 30,
"unit_price_usd": 8.05,
"unit": "day",
"total_usd": 241.5
}注文する
POST/api/v1/ordersAPIキーが必要
合計額を残高から差し引き、注文を作成します。最初はpending (準備中) で、準備ができるとactiveになります。開通できない注文はrefundedになり、お支払い額の全額が残高に戻ります。残高が足りない場合は402が返ります。
| 名前 | 型 | 意味 |
|---|---|---|
product必須 | string | unlimited、residential、isp、datacenterのいずれか。 |
quantity必須 | integer | 注文数量: unlimitedは日数 (1~365)、residentialはGB (5~5,000)、ispはIP数 (1~1,000)、datacenterはIP数 (5~5,000)。 |
concurrency任意 | integer | unlimitedのみ。200、500、1000、2000のいずれか。 |
bandwidth任意 | integer | unlimitedのみ、単位はMbps。100、200、500、1000のいずれか。 |
months任意 | integer | ispとdatacenterのみ。1、3、6、12のいずれか。 |
country任意 | string | ispとdatacenterのみ。jpのような2文字の国コード。使える値は/countriesに載っています。 |
curl -X POST https://proxyworld.shop/api/v1/orders \
-H "Authorization: Bearer pwk_your_api_key" \
-H "Content-Type: application/json" \
-d '{"product":"unlimited","quantity":30,"concurrency":1000,"bandwidth":200}'{
"order": {
"id": "PW-7KQ2M-X4HTD",
"product": "unlimited",
"quantity": 30,
"months": null,
"concurrency": 1000,
"bandwidth_mbps": 200,
"country": null,
"unit_price_usd": 8.05,
"total_usd": 241.5,
"status": "pending",
"created_at": "2026-10-31T09:12:44.120Z",
"updated_at": "2026-10-31T09:12:44.120Z"
},
"balance_usd": 1058.5
}注文一覧を見る
GET/api/v1/ordersAPIキーが必要
新しい順に最大100件の注文を表示します。
| 名前 | 型 | 意味 |
|---|---|---|
status任意 | string | pending、active、refundedのいずれか。省略するとすべての状態の注文を返します。 |
curl "https://proxyworld.shop/api/v1/orders?status=pending" \ -H "Authorization: Bearer pwk_your_api_key"
{
"orders": [
{
"id": "PW-7KQ2M-X4HTD",
"product": "unlimited",
"quantity": 30,
"months": null,
"concurrency": 1000,
"bandwidth_mbps": 200,
"country": null,
"unit_price_usd": 8.05,
"total_usd": 241.5,
"status": "pending",
"created_at": "2026-10-31T09:12:44.120Z",
"updated_at": "2026-10-31T09:12:44.120Z"
}
]
}1件の注文を見る
GET/api/v1/orders/{id}APIキーが必要
注文番号に一致する注文を返します。開通が完了したかの確認に便利です。
| 名前 | 型 | 意味 |
|---|---|---|
id必須 | string | 注文番号 (例: PW-7KQ2M-X4HTD)。 |
curl https://proxyworld.shop/api/v1/orders/PW-7KQ2M-X4HTD \ -H "Authorization: Bearer pwk_your_api_key"
{
"order": {
"id": "PW-7KQ2M-X4HTD",
"product": "unlimited",
"quantity": 30,
"months": null,
"concurrency": 1000,
"bandwidth_mbps": 200,
"country": null,
"unit_price_usd": 8.05,
"total_usd": 241.5,
"status": "active",
"created_at": "2026-10-31T09:12:44.120Z",
"updated_at": "2026-10-31T09:40:02.511Z"
}
}プロキシユーザー名を作成
GET/api/v1/proxy-userAPIキーが必要
オプションを付けたプロキシユーザー名と、そのまま貼り付けられるHTTPとSOCKS5のURLを返します。sessionを送らない場合、リクエストごとにIPが変わります。
| 名前 | 型 | 意味 |
|---|---|---|
product任意 | string | unlimited、residential、isp、datacenterのいずれか。省略するとunlimitedになります。 |
country任意 | string | 2文字の国コード (例: jp)。 |
city任意 | string | /countriesに載っている都市の値 (例: tokyo)。countryと一緒に送ってください。 |
session任意 | string | 英数字1~32文字。同じsessionのリクエストは同じIPを使います。 |
ttl任意 | integer | セッションがIPを維持する時間、1~60分。省略すると30分です。 |
curl "https://proxyworld.shop/api/v1/proxy-user?product=residential&country=jp&city=tokyo&session=job42&ttl=30" \ -H "Authorization: Bearer pwk_your_api_key"
{
"username": "pwexample1-zone-res-cc-jp-city-tokyo-sid-job42-ttl-30",
"password": "your_password",
"http": "http://pwexample1-zone-res-cc-jp-city-tokyo-sid-job42-ttl-30:your_password@gate.proxyworld.shop:6100",
"socks5": "socks5h://pwexample1-zone-res-cc-jp-city-tokyo-sid-job42-ttl-30:your_password@gate.proxyworld.shop:6200"
}一連の流れの例
見積もりを取得し、残高から注文して、日本のIP経由で接続するまでを1つのスクリプトで行う例です。
import requests
API = "https://proxyworld.shop/api/v1"
HEAD = {"Authorization": "Bearer pwk_your_api_key"}
# 1) Check the price first
plan = {"product": "residential", "quantity": 100}
print(requests.post(f"{API}/quote", json=plan).json())
# 2) Order from your balance
r = requests.post(f"{API}/orders", json=plan, headers=HEAD)
order = r.json()["order"]
print(order["id"], order["status"])
# 3) Get a username for Japanese IPs
u = requests.get(f"{API}/proxy-user", headers=HEAD,
params={"product": "residential", "country": "jp"}).json()
proxies = {"http": u["http"], "https": u["http"]}
print(requests.get("https://ipinfo.io/json", proxies=proxies, timeout=30).json())const API = "https://proxyworld.shop/api/v1";
const HEAD = { Authorization: "Bearer pwk_your_api_key", "Content-Type": "application/json" };
// Check the balance
const acc = await fetch(`${API}/account`, { headers: HEAD }).then((r) => r.json());
console.log(acc.balance_usd);
// Order 7 days of unlimited
const res = await fetch(`${API}/orders`, {
method: "POST",
headers: HEAD,
body: JSON.stringify({ product: "unlimited", quantity: 7, concurrency: 500, bandwidth: 100 }),
});
if (res.status === 402) console.log("Top up first");
else console.log((await res.json()).order.id);APIからの注文はダッシュボードからの注文と同じように処理され、履歴タブにほかの注文と一緒に表示されます。例にあるpwk_your_api_keyはご自身のAPIキーに置き換えてください。