Norly API
REST API для работы с прокси из кода: баланс, заказ, списки доступов, продление и белый список IP. Всё, что делается в кабинете, можно сделать запросом.
Начало работы
- Ключ
- Создайте ключ в кабинете: Настройки → API. Ключ показывается один раз, сохраните его в секретах.
- Авторизация
- Передавайте ключ в заголовке Authorization: Bearer nrl_live_… в каждом запросе.
- Формат
- Запросы и ответы — JSON в UTF-8. Даты — ISO 8601 в UTC, суммы — доллары США числом.
- Деньги
- Заказы и продления оплачиваются с баланса. Пополнение баланса — только в кабинете.
https://api.norlyproxy.com/v1curl https://api.norlyproxy.com/v1/balance \
-H "Authorization: Bearer $NORLY_API_KEY"Ошибки
При ошибке API возвращает HTTP-код и объект error с машинным кодом и текстом для человека.
| HTTP | code | Когда |
|---|---|---|
400 | BAD_REQUEST | Не удалось разобрать запрос. |
401 | UNAUTHORIZED | Нет ключа, ключ отозван или неверный. |
402 | INSUFFICIENT_FUNDS | Не хватает денег на балансе. В ответе поле needed — сколько доплатить. |
404 | NOT_FOUND | Пакет, IP или запись не найдены. |
422 | VALIDATION | Ошибка в параметрах. В fields — что именно не так. |
429 | TOO_MANY_REQUESTS | Слишком часто. Подождите retryAfter секунд. |
{
"error": {
"code": "INSUFFICIENT_FUNDS",
"message": "Не хватает $12.40",
"needed": 12.4
}
}Баланс
Баланс
/balanceТекущий баланс аккаунта.
curl -X GET "https://api.norlyproxy.com/v1/balance" \
-H "Authorization: Bearer $NORLY_API_KEY"import os, requests
KEY = os.environ["NORLY_API_KEY"]
r = requests.get(
"https://api.norlyproxy.com/v1/balance",
headers={"Authorization": f"Bearer {KEY}"}
)
print(r.json())const r = await fetch('https://api.norlyproxy.com/v1/balance', {
headers: { Authorization: `Bearer ${process.env.NORLY_API_KEY}` }
})
console.log(await r.json()){
"balance": 248.6,
"currency": "USD"
}История баланса
/transactionsПополнения, покупки, продления, бонусы и расход Pay as you go — от новых к старым.
Query-параметры
| Параметр | Тип | Описание |
|---|---|---|
limit | integer | Сколько записей вернуть, от 1 до 200. По умолчанию 50. |
before | string | ID записи: вернуть операции старше неё. Для постраничной загрузки. |
curl -X GET "https://api.norlyproxy.com/v1/transactions?limit=2" \
-H "Authorization: Bearer $NORLY_API_KEY"import os, requests
KEY = os.environ["NORLY_API_KEY"]
r = requests.get(
"https://api.norlyproxy.com/v1/transactions?limit=2",
headers={"Authorization": f"Bearer {KEY}"}
)
print(r.json())const r = await fetch('https://api.norlyproxy.com/v1/transactions?limit=2', {
headers: { Authorization: `Bearer ${process.env.NORLY_API_KEY}` }
})
console.log(await r.json()){
"items": [
{
"id": "t_9qk2",
"kind": "purchase",
"title": "Residential · 50 GB",
"amount": -130,
"balanceAfter": 248.6,
"createdAt": "2026-10-20T14:03:11Z"
},
{
"id": "t_9qk1",
"kind": "topup",
"title": "Пополнение · USDT",
"amount": 300,
"balanceAfter": 378.6,
"createdAt": "2026-10-20T13:58:40Z"
}
]
}Заказы
Справочник продуктов
/productsТипы прокси с ценами по объёму, странами и сроками. Нужен, чтобы собрать заказ.
curl -X GET "https://api.norlyproxy.com/v1/products" \
-H "Authorization: Bearer $NORLY_API_KEY"import os, requests
KEY = os.environ["NORLY_API_KEY"]
r = requests.get(
"https://api.norlyproxy.com/v1/products",
headers={"Authorization": f"Bearer {KEY}"}
)
print(r.json())const r = await fetch('https://api.norlyproxy.com/v1/products', {
headers: { Authorization: `Bearer ${process.env.NORLY_API_KEY}` }
})
console.log(await r.json()){
"products": [
{
"id": "residential",
"name": "Residential",
"kind": "traffic",
"unit": "GB",
"validityDays": 90,
"tiers": [
{
"from": 1,
"price": 3.5
},
{
"from": 10,
"price": 3
},
{
"from": 1000,
"price": 1.5
}
],
"countries": []
},
{
"id": "isp",
"name": "ISP",
"kind": "ip",
"unit": "IP",
"udp": true,
"tiers": [
{
"from": 1,
"price": 2.5
},
{
"from": 100,
"price": 1.7
}
],
"periods": [
{
"days": 1,
"label": "1 день"
},
{
"days": 30,
"label": "1 месяц"
}
],
"countries": [
"us",
"gb",
"de"
]
}
]
}Расчёт стоимости
/orders/quoteСчитает цену заказа без покупки. Параметры те же, что у создания заказа.
Тело запроса (JSON)
| Параметр | Тип | Описание |
|---|---|---|
productобязательно | string | Тип прокси: residential, premium, mobile, isp, datacenter. |
mode | string | package — пакет (по умолчанию), payg — Pay as you go (Residential, Premium). |
qtyобязательно | integer | Гигабайты для трафиковых продуктов или количество IP. |
days | integer | Срок аренды для ISP и Datacenter: 1, 7, 30, 60 или 90. |
country | string | Код страны (ISO 3166-1 alpha-2) для ISP и Datacenter. |
city | string | Город для ISP — необязательно. |
udp | boolean | Включить UDP для ISP. |
curl -X POST "https://api.norlyproxy.com/v1/orders/quote" \
-H "Authorization: Bearer $NORLY_API_KEY" \
-H "Content-Type: application/json" \
-d '{"product": "isp", "qty": 10, "days": 30, "country": "us"}'import os, requests
KEY = os.environ["NORLY_API_KEY"]
r = requests.post(
"https://api.norlyproxy.com/v1/orders/quote",
headers={"Authorization": f"Bearer {KEY}"},
json={"product": "isp", "qty": 10, "days": 30, "country": "us"}
)
print(r.json())const r = await fetch('https://api.norlyproxy.com/v1/orders/quote', {
method: 'POST',
headers: { Authorization: `Bearer ${process.env.NORLY_API_KEY}`, 'Content-Type': 'application/json' },
body: JSON.stringify({"product": "isp", "qty": 10, "days": 30, "country": "us"})
})
console.log(await r.json()){
"quote": {
"unitPrice": 2.2,
"basePrice": 2.5,
"subtotal": 25,
"savings": 3,
"total": 22
}
}Создать заказ
/ordersПокупает прокси и списывает сумму с баланса. Доступы появляются сразу — заберите их через «Список прокси». Если денег не хватает, вернётся 402 с полем needed.
Тело запроса (JSON)
| Параметр | Тип | Описание |
|---|---|---|
productобязательно | string | Тип прокси: residential, premium, mobile, isp, datacenter. |
mode | string | package — пакет (по умолчанию), payg — Pay as you go (Residential, Premium). |
qtyобязательно | integer | Гигабайты для трафиковых продуктов или количество IP. |
days | integer | Срок аренды для ISP и Datacenter: 1, 7, 30, 60 или 90. |
country | string | Код страны (ISO 3166-1 alpha-2) для ISP и Datacenter. |
city | string | Город для ISP — необязательно. |
udp | boolean | Включить UDP для ISP. |
curl -X POST "https://api.norlyproxy.com/v1/orders" \
-H "Authorization: Bearer $NORLY_API_KEY" \
-H "Content-Type: application/json" \
-d '{"product": "residential", "qty": 50}'import os, requests
KEY = os.environ["NORLY_API_KEY"]
r = requests.post(
"https://api.norlyproxy.com/v1/orders",
headers={"Authorization": f"Bearer {KEY}"},
json={"product": "residential", "qty": 50}
)
print(r.json())const r = await fetch('https://api.norlyproxy.com/v1/orders', {
method: 'POST',
headers: { Authorization: `Bearer ${process.env.NORLY_API_KEY}`, 'Content-Type': 'application/json' },
body: JSON.stringify({"product": "residential", "qty": 50})
})
console.log(await r.json()){
"order": {
"id": "o_4kd82m",
"product": "residential",
"mode": "package",
"qty": 50,
"days": 90,
"total": 130,
"createdAt": "2026-10-21T09:15:00Z"
},
"balance": 118.6
}Прокси
Список прокси
/proxiesПакеты трафика (Residential, Premium, Mobile) и выделенные IP (ISP, Datacenter) с данными для подключения.
Query-параметры
| Параметр | Тип | Описание |
|---|---|---|
type | string | Только один тип: residential, premium, mobile, isp, datacenter. |
status | string | active, depleted или expired. |
tag | string | Только IP с этим тегом. |
curl -X GET "https://api.norlyproxy.com/v1/proxies?type=isp" \
-H "Authorization: Bearer $NORLY_API_KEY"import os, requests
KEY = os.environ["NORLY_API_KEY"]
r = requests.get(
"https://api.norlyproxy.com/v1/proxies?type=isp",
headers={"Authorization": f"Bearer {KEY}"}
)
print(r.json())const r = await fetch('https://api.norlyproxy.com/v1/proxies?type=isp', {
headers: { Authorization: `Bearer ${process.env.NORLY_API_KEY}` }
})
console.log(await r.json()){
"packages": [
{
"id": "pk_8f2k1x9a",
"product": "residential",
"mode": "package",
"gbTotal": 50,
"gbUsed": 38.4,
"host": "gate.norly.io",
"httpPort": 7000,
"socksPort": 7001,
"username": "nr6vczyd",
"password": "ewyfuzngcy4t",
"autoRenew": true,
"status": "active",
"createdAt": "2026-09-30T10:12:00Z",
"expiresAt": "2026-12-29T10:12:00Z"
}
],
"ips": [
{
"id": "ip_3m7qz2kd",
"product": "isp",
"ip": "73.162.18.204",
"httpPort": 8412,
"socksPort": 9412,
"username": "nrk2m8pq",
"password": "q7hx2mfa9c4e",
"country": "us",
"city": "Нью-Йорк",
"udp": true,
"tags": [
"fb-farm"
],
"autoRenew": false,
"status": "active",
"createdAt": "2026-10-01T08:00:00Z",
"expiresAt": "2026-10-31T08:00:00Z"
}
]
}Строки подключения
/proxies/linesГотовые строки в формате вашего софта — то же, что генератор в кабинете. Ответ — text/plain, одна строка на прокси.
Query-параметры
| Параметр | Тип | Описание |
|---|---|---|
sourceобязательно | string | ID пакета (pk_…) или isp / datacenter — все активные IP этого типа. |
format | string | hpup — host:port:user:pass (по умолчанию), upah — user:pass@host:port, url — протокол://user:pass@host:port. |
protocol | string | http (по умолчанию) или socks5. |
count | integer | Сколько строк для пакета, от 1 до 1000. Для IP игнорируется. |
country | string | Код страны. Для пакетов. |
city | string | Город латиницей, например new_york. Для пакетов. |
os | string | windows, macos, linux, android или ios. Для пакетов. |
pool | string | standard (по умолчанию), performance или ultra. Для пакетов. |
ttl | integer | Sticky-сессия в минутах, от 1 до 1440. Без ttl — новый IP на каждый запрос. |
curl -X GET "https://api.norlyproxy.com/v1/proxies/lines?source=pk_8f2k1x9a&count=3&country=us&ttl=30" \
-H "Authorization: Bearer $NORLY_API_KEY"import os, requests
KEY = os.environ["NORLY_API_KEY"]
r = requests.get(
"https://api.norlyproxy.com/v1/proxies/lines?source=pk_8f2k1x9a&count=3&country=us&ttl=30",
headers={"Authorization": f"Bearer {KEY}"}
)
print(r.text)const r = await fetch('https://api.norlyproxy.com/v1/proxies/lines?source=pk_8f2k1x9a&count=3&country=us&ttl=30', {
headers: { Authorization: `Bearer ${process.env.NORLY_API_KEY}` }
})
console.log(await r.text())gate.norly.io:7000:nr6vczyd-country-us-session-x8k2qa-ttl-30:ewyfuzngcy4t
gate.norly.io:7000:nr6vczyd-country-us-session-m4pz7d-ttl-30:ewyfuzngcy4t
gate.norly.io:7000:nr6vczyd-country-us-session-q2hn5c-ttl-30:ewyfuzngcy4tТеги на IP
/proxies/ips/tagsДобавляет и снимает теги у выделенных IP. У одного IP до 10 тегов, каждый от 2 до 32 символов.
Тело запроса (JSON)
| Параметр | Тип | Описание |
|---|---|---|
idsобязательно | string[] | ID адресов (ip_…). |
add | string[] | Какие теги добавить. |
remove | string[] | Какие теги снять. |
curl -X PATCH "https://api.norlyproxy.com/v1/proxies/ips/tags" \
-H "Authorization: Bearer $NORLY_API_KEY" \
-H "Content-Type: application/json" \
-d '{"ids": ["ip_3m7qz2kd"], "add": ["client-a"], "remove": ["fb-farm"]}'import os, requests
KEY = os.environ["NORLY_API_KEY"]
r = requests.patch(
"https://api.norlyproxy.com/v1/proxies/ips/tags",
headers={"Authorization": f"Bearer {KEY}"},
json={"ids": ["ip_3m7qz2kd"], "add": ["client-a"], "remove": ["fb-farm"]}
)
print(r.json())const r = await fetch('https://api.norlyproxy.com/v1/proxies/ips/tags', {
method: 'PATCH',
headers: { Authorization: `Bearer ${process.env.NORLY_API_KEY}`, 'Content-Type': 'application/json' },
body: JSON.stringify({"ids": ["ip_3m7qz2kd"], "add": ["client-a"], "remove": ["fb-farm"]})
})
console.log(await r.json()){
"ips": [
{
"id": "ip_3m7qz2kd",
"product": "isp",
"ip": "73.162.18.204",
"httpPort": 8412,
"socksPort": 9412,
"username": "nrk2m8pq",
"password": "q7hx2mfa9c4e",
"country": "us",
"city": "Нью-Йорк",
"udp": true,
"tags": [
"client-a"
],
"autoRenew": false,
"status": "active",
"createdAt": "2026-10-01T08:00:00Z",
"expiresAt": "2026-10-31T08:00:00Z"
}
]
}Новый пароль пакета
/proxies/packages/{id}/passwordВыпускает новый пароль для пакета трафика. Старые строки подключения перестают работать сразу.
Параметры пути
| Параметр | Тип | Описание |
|---|---|---|
idобязательно | string | ID пакета (pk_…). |
curl -X POST "https://api.norlyproxy.com/v1/proxies/packages/pk_8f2k1x9a/password" \
-H "Authorization: Bearer $NORLY_API_KEY"import os, requests
KEY = os.environ["NORLY_API_KEY"]
r = requests.post(
"https://api.norlyproxy.com/v1/proxies/packages/pk_8f2k1x9a/password",
headers={"Authorization": f"Bearer {KEY}"}
)
print(r.json())const r = await fetch('https://api.norlyproxy.com/v1/proxies/packages/pk_8f2k1x9a/password', {
method: 'POST',
headers: { Authorization: `Bearer ${process.env.NORLY_API_KEY}` }
})
console.log(await r.json()){
"package": {
"id": "pk_8f2k1x9a",
"product": "residential",
"mode": "package",
"gbTotal": 50,
"gbUsed": 38.4,
"host": "gate.norly.io",
"httpPort": 7000,
"socksPort": 7001,
"username": "nr6vczyd",
"password": "k3v9xq2mh7ra",
"autoRenew": true,
"status": "active",
"createdAt": "2026-09-30T10:12:00Z",
"expiresAt": "2026-12-29T10:12:00Z"
}
}Проверка прокси
/proxies/checkПодключается через прокси и возвращает внешний IP, страну, город и задержку.
Тело запроса (JSON)
| Параметр | Тип | Описание |
|---|---|---|
hostобязательно | string | Хост прокси. |
portобязательно | integer | Порт. |
username | string | Логин, если доступ не по IP. |
password | string | Пароль. |
curl -X POST "https://api.norlyproxy.com/v1/proxies/check" \
-H "Authorization: Bearer $NORLY_API_KEY" \
-H "Content-Type: application/json" \
-d '{"host": "gate.norly.io", "port": 7000, "username": "nr6vczyd-country-de", "password": "ewyfuzngcy4t"}'import os, requests
KEY = os.environ["NORLY_API_KEY"]
r = requests.post(
"https://api.norlyproxy.com/v1/proxies/check",
headers={"Authorization": f"Bearer {KEY}"},
json={"host": "gate.norly.io", "port": 7000, "username": "nr6vczyd-country-de", "password": "ewyfuzngcy4t"}
)
print(r.json())const r = await fetch('https://api.norlyproxy.com/v1/proxies/check', {
method: 'POST',
headers: { Authorization: `Bearer ${process.env.NORLY_API_KEY}`, 'Content-Type': 'application/json' },
body: JSON.stringify({"host": "gate.norly.io", "port": 7000, "username": "nr6vczyd-country-de", "password": "ewyfuzngcy4t"})
})
console.log(await r.json()){
"ok": true,
"ip": "91.64.112.37",
"country": "de",
"city": "Франкфурт",
"isp": "Deutsche Telekom",
"latencyMs": 212
}Продление
Продлить IP
/proxies/ips/renewПродлевает выделенные IP на выбранный срок и списывает сумму с баланса. Скидка за количество считается по каждому типу отдельно.
Тело запроса (JSON)
| Параметр | Тип | Описание |
|---|---|---|
idsобязательно | string[] | ID адресов (ip_…). |
daysобязательно | integer | Срок: 1, 7, 30, 60 или 90. |
curl -X POST "https://api.norlyproxy.com/v1/proxies/ips/renew" \
-H "Authorization: Bearer $NORLY_API_KEY" \
-H "Content-Type: application/json" \
-d '{"ids": ["ip_3m7qz2kd"], "days": 30}'import os, requests
KEY = os.environ["NORLY_API_KEY"]
r = requests.post(
"https://api.norlyproxy.com/v1/proxies/ips/renew",
headers={"Authorization": f"Bearer {KEY}"},
json={"ids": ["ip_3m7qz2kd"], "days": 30}
)
print(r.json())const r = await fetch('https://api.norlyproxy.com/v1/proxies/ips/renew', {
method: 'POST',
headers: { Authorization: `Bearer ${process.env.NORLY_API_KEY}`, 'Content-Type': 'application/json' },
body: JSON.stringify({"ids": ["ip_3m7qz2kd"], "days": 30})
})
console.log(await r.json()){
"ips": [
{
"id": "ip_3m7qz2kd",
"product": "isp",
"ip": "73.162.18.204",
"httpPort": 8412,
"socksPort": 9412,
"username": "nrk2m8pq",
"password": "q7hx2mfa9c4e",
"country": "us",
"city": "Нью-Йорк",
"udp": true,
"tags": [
"fb-farm"
],
"autoRenew": false,
"status": "active",
"createdAt": "2026-10-01T08:00:00Z",
"expiresAt": "2026-11-30T08:00:00Z"
}
],
"total": 2.5,
"balance": 246.1
}Автопродление IP
/proxies/ipsВключает или выключает автопродление. Деньги спишутся с баланса в день окончания срока.
Тело запроса (JSON)
| Параметр | Тип | Описание |
|---|---|---|
idsобязательно | string[] | ID адресов (ip_…). |
autoRenewобязательно | boolean | true — включить, false — выключить. |
curl -X PATCH "https://api.norlyproxy.com/v1/proxies/ips" \
-H "Authorization: Bearer $NORLY_API_KEY" \
-H "Content-Type: application/json" \
-d '{"ids": ["ip_3m7qz2kd"], "autoRenew": true}'import os, requests
KEY = os.environ["NORLY_API_KEY"]
r = requests.patch(
"https://api.norlyproxy.com/v1/proxies/ips",
headers={"Authorization": f"Bearer {KEY}"},
json={"ids": ["ip_3m7qz2kd"], "autoRenew": True}
)
print(r.json())const r = await fetch('https://api.norlyproxy.com/v1/proxies/ips', {
method: 'PATCH',
headers: { Authorization: `Bearer ${process.env.NORLY_API_KEY}`, 'Content-Type': 'application/json' },
body: JSON.stringify({"ids": ["ip_3m7qz2kd"], "autoRenew": true})
})
console.log(await r.json()){
"ips": [
{
"id": "ip_3m7qz2kd",
"product": "isp",
"ip": "73.162.18.204",
"httpPort": 8412,
"socksPort": 9412,
"username": "nrk2m8pq",
"password": "q7hx2mfa9c4e",
"country": "us",
"city": "Нью-Йорк",
"udp": true,
"tags": [
"fb-farm"
],
"autoRenew": true,
"status": "active",
"createdAt": "2026-10-01T08:00:00Z",
"expiresAt": "2026-10-31T08:00:00Z"
}
]
}Автопродление пакета
/proxies/packages/{id}Когда трафик пакета закончится, такой же пакет купится заново с баланса.
Параметры пути
| Параметр | Тип | Описание |
|---|---|---|
idобязательно | string | ID пакета (pk_…). |
Тело запроса (JSON)
| Параметр | Тип | Описание |
|---|---|---|
autoRenewобязательно | boolean | true — включить, false — выключить. |
curl -X PATCH "https://api.norlyproxy.com/v1/proxies/packages/pk_8f2k1x9a" \
-H "Authorization: Bearer $NORLY_API_KEY" \
-H "Content-Type: application/json" \
-d '{"autoRenew": false}'import os, requests
KEY = os.environ["NORLY_API_KEY"]
r = requests.patch(
"https://api.norlyproxy.com/v1/proxies/packages/pk_8f2k1x9a",
headers={"Authorization": f"Bearer {KEY}"},
json={"autoRenew": False}
)
print(r.json())const r = await fetch('https://api.norlyproxy.com/v1/proxies/packages/pk_8f2k1x9a', {
method: 'PATCH',
headers: { Authorization: `Bearer ${process.env.NORLY_API_KEY}`, 'Content-Type': 'application/json' },
body: JSON.stringify({"autoRenew": false})
})
console.log(await r.json()){
"package": {
"id": "pk_8f2k1x9a",
"product": "residential",
"mode": "package",
"gbTotal": 50,
"gbUsed": 38.4,
"host": "gate.norly.io",
"httpPort": 7000,
"socksPort": 7001,
"username": "nr6vczyd",
"password": "ewyfuzngcy4t",
"autoRenew": false,
"status": "active",
"createdAt": "2026-09-30T10:12:00Z",
"expiresAt": "2026-12-29T10:12:00Z"
}
}Доступ по IP
Белый список
/whitelistАдреса и подсети, с которых прокси работают без логина и пароля.
curl -X GET "https://api.norlyproxy.com/v1/whitelist" \
-H "Authorization: Bearer $NORLY_API_KEY"import os, requests
KEY = os.environ["NORLY_API_KEY"]
r = requests.get(
"https://api.norlyproxy.com/v1/whitelist",
headers={"Authorization": f"Bearer {KEY}"}
)
print(r.json())const r = await fetch('https://api.norlyproxy.com/v1/whitelist', {
headers: { Authorization: `Bearer ${process.env.NORLY_API_KEY}` }
})
console.log(await r.json()){
"entries": [
{
"id": "wl_7d2k",
"ip": "91.203.12.44",
"note": "Сервер парсинга",
"createdAt": "2026-10-12T11:00:00Z"
}
],
"currentIp": "188.162.74.51",
"limit": 20
}Добавить адрес
/whitelistДобавляет IPv4-адрес или подсеть в формате CIDR. Максимум 20 записей.
Тело запроса (JSON)
| Параметр | Тип | Описание |
|---|---|---|
ipобязательно | string | Адрес или подсеть: 91.203.12.44 или 91.203.12.0/24. |
note | string | Подпись, до 40 символов. |
curl -X POST "https://api.norlyproxy.com/v1/whitelist" \
-H "Authorization: Bearer $NORLY_API_KEY" \
-H "Content-Type: application/json" \
-d '{"ip": "91.203.12.44", "note": "Сервер парсинга"}'import os, requests
KEY = os.environ["NORLY_API_KEY"]
r = requests.post(
"https://api.norlyproxy.com/v1/whitelist",
headers={"Authorization": f"Bearer {KEY}"},
json={"ip": "91.203.12.44", "note": "Сервер парсинга"}
)
print(r.json())const r = await fetch('https://api.norlyproxy.com/v1/whitelist', {
method: 'POST',
headers: { Authorization: `Bearer ${process.env.NORLY_API_KEY}`, 'Content-Type': 'application/json' },
body: JSON.stringify({"ip": "91.203.12.44", "note": "Сервер парсинга"})
})
console.log(await r.json()){
"entries": [
{
"id": "wl_7d2k",
"ip": "91.203.12.44",
"note": "Сервер парсинга",
"createdAt": "2026-10-21T09:20:00Z"
}
]
}Удалить адрес
/whitelist/{id}Убирает запись из белого списка. Подключения с этого адреса снова потребуют логин и пароль.
Параметры пути
| Параметр | Тип | Описание |
|---|---|---|
idобязательно | string | ID записи (wl_…). |
curl -X DELETE "https://api.norlyproxy.com/v1/whitelist/wl_7d2k" \
-H "Authorization: Bearer $NORLY_API_KEY"import os, requests
KEY = os.environ["NORLY_API_KEY"]
r = requests.delete(
"https://api.norlyproxy.com/v1/whitelist/wl_7d2k",
headers={"Authorization": f"Bearer {KEY}"}
)
print(r.json())const r = await fetch('https://api.norlyproxy.com/v1/whitelist/wl_7d2k', {
method: 'DELETE',
headers: { Authorization: `Bearer ${process.env.NORLY_API_KEY}` }
})
console.log(await r.json()){
"entries": []
}