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Поповнення, покупки, продовження й бонуси — від нових до старих.
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": -95,
"balanceAfter": 283.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",
"tiers": [
{
"from": 1,
"price": 2.3
},
{
"from": 10,
"price": 2
},
{
"from": 1000,
"price": 1.2
}
],
"countries": []
},
{
"id": "isp",
"name": "ISP",
"kind": "ip",
"unit": "IP",
"udp": true,
"tiers": [
{
"from": 1,
"price": 3.5
},
{
"from": 100,
"price": 2.8
}
],
"periods": [
{
"days": 1,
"label": "1 день"
},
{
"days": 30,
"label": "1 місяць"
}
],
"countries": [
"us",
"gb",
"de"
]
}
]
}Розрахунок вартості
/orders/quoteРахує ціну замовлення без покупки. Параметри ті самі, що й для створення замовлення.
Тіло запиту (JSON)
| Параметр | Тип | Опис |
|---|---|---|
productобов’язково | string | Тип проксі: residential, premium, mobile, isp, datacenter. |
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": 1.9,
"basePrice": 1.95,
"subtotal": 19.5,
"savings": 0.5,
"total": 19
}
}Створити замовлення
/ordersКупує проксі й списує суму з балансу. Доступи з’являються одразу — заберіть їх через «Список проксі». Якщо грошей не вистачає, повернеться 402 з полем needed.
Тіло запиту (JSON)
| Параметр | Тип | Опис |
|---|---|---|
productобов’язково | string | Тип проксі: residential, premium, mobile, isp, datacenter. |
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": 95,
"createdAt": "2026-10-21T09:15:00Z"
},
"balance": 153.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": 1.95,
"balance": 246.65
}Автопродовження 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": []
}