curl --request POST \
--url https://api.ngrok.com/ip_restrictions \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'ngrok-version: <ngrok-version>' \
--data '
{
"type": "<string>",
"ip_policy_ids": [
"<string>"
],
"description": "<string>",
"metadata": "<string>",
"enforced": true
}
'import requests
url = "https://api.ngrok.com/ip_restrictions"
payload = {
"type": "<string>",
"ip_policy_ids": ["<string>"],
"description": "<string>",
"metadata": "<string>",
"enforced": True
}
headers = {
"ngrok-version": "<ngrok-version>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'ngrok-version': '<ngrok-version>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
type: '<string>',
ip_policy_ids: ['<string>'],
description: '<string>',
metadata: '<string>',
enforced: true
})
};
fetch('https://api.ngrok.com/ip_restrictions', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.ngrok.com/ip_restrictions",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'type' => '<string>',
'ip_policy_ids' => [
'<string>'
],
'description' => '<string>',
'metadata' => '<string>',
'enforced' => true
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json",
"ngrok-version: <ngrok-version>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.ngrok.com/ip_restrictions"
payload := strings.NewReader("{\n \"type\": \"<string>\",\n \"ip_policy_ids\": [\n \"<string>\"\n ],\n \"description\": \"<string>\",\n \"metadata\": \"<string>\",\n \"enforced\": true\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("ngrok-version", "<ngrok-version>")
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.ngrok.com/ip_restrictions")
.header("ngrok-version", "<ngrok-version>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"type\": \"<string>\",\n \"ip_policy_ids\": [\n \"<string>\"\n ],\n \"description\": \"<string>\",\n \"metadata\": \"<string>\",\n \"enforced\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.ngrok.com/ip_restrictions")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["ngrok-version"] = '<ngrok-version>'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"type\": \"<string>\",\n \"ip_policy_ids\": [\n \"<string>\"\n ],\n \"description\": \"<string>\",\n \"metadata\": \"<string>\",\n \"enforced\": true\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"uri": "<string>",
"created_at": "<string>",
"description": "<string>",
"metadata": "<string>",
"enforced": true,
"type": "<string>",
"ip_policies": [
{
"id": "<string>",
"uri": "<string>"
}
]
}{
"status_code": 123,
"msg": "<string>",
"error_code": "<string>",
"details": {}
}{
"status_code": 123,
"msg": "<string>",
"error_code": "<string>",
"details": {}
}Create
Create a new IP restriction
curl --request POST \
--url https://api.ngrok.com/ip_restrictions \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'ngrok-version: <ngrok-version>' \
--data '
{
"type": "<string>",
"ip_policy_ids": [
"<string>"
],
"description": "<string>",
"metadata": "<string>",
"enforced": true
}
'import requests
url = "https://api.ngrok.com/ip_restrictions"
payload = {
"type": "<string>",
"ip_policy_ids": ["<string>"],
"description": "<string>",
"metadata": "<string>",
"enforced": True
}
headers = {
"ngrok-version": "<ngrok-version>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'ngrok-version': '<ngrok-version>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
type: '<string>',
ip_policy_ids: ['<string>'],
description: '<string>',
metadata: '<string>',
enforced: true
})
};
fetch('https://api.ngrok.com/ip_restrictions', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.ngrok.com/ip_restrictions",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'type' => '<string>',
'ip_policy_ids' => [
'<string>'
],
'description' => '<string>',
'metadata' => '<string>',
'enforced' => true
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json",
"ngrok-version: <ngrok-version>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.ngrok.com/ip_restrictions"
payload := strings.NewReader("{\n \"type\": \"<string>\",\n \"ip_policy_ids\": [\n \"<string>\"\n ],\n \"description\": \"<string>\",\n \"metadata\": \"<string>\",\n \"enforced\": true\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("ngrok-version", "<ngrok-version>")
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.ngrok.com/ip_restrictions")
.header("ngrok-version", "<ngrok-version>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"type\": \"<string>\",\n \"ip_policy_ids\": [\n \"<string>\"\n ],\n \"description\": \"<string>\",\n \"metadata\": \"<string>\",\n \"enforced\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.ngrok.com/ip_restrictions")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["ngrok-version"] = '<ngrok-version>'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"type\": \"<string>\",\n \"ip_policy_ids\": [\n \"<string>\"\n ],\n \"description\": \"<string>\",\n \"metadata\": \"<string>\",\n \"enforced\": true\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"uri": "<string>",
"created_at": "<string>",
"description": "<string>",
"metadata": "<string>",
"enforced": true,
"type": "<string>",
"ip_policies": [
{
"id": "<string>",
"uri": "<string>"
}
]
}{
"status_code": 123,
"msg": "<string>",
"error_code": "<string>",
"details": {}
}{
"status_code": 123,
"msg": "<string>",
"error_code": "<string>",
"details": {}
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Headers
Body
the type of IP restriction. this defines what traffic will be restricted with the attached policies. four values are currently supported: dashboard, api, agent, and endpoints
the set of IP policy identifiers that are used to enforce the restriction
human-readable description of this IP restriction. optional, max 255 bytes.
arbitrary user-defined machine-readable data of this IP restriction. optional, max 4096 bytes.
true if the IP restriction will be enforced. if false, only warnings will be issued
Response
Create a new IP restriction
unique identifier for this IP restriction
URI of the IP restriction API resource
timestamp when the IP restriction was created, RFC 3339 format
human-readable description of this IP restriction. optional, max 255 bytes.
arbitrary user-defined machine-readable data of this IP restriction. optional, max 4096 bytes.
true if the IP restriction will be enforced. if false, only warnings will be issued
the type of IP restriction. this defines what traffic will be restricted with the attached policies. four values are currently supported: dashboard, api, agent, and endpoints
the set of IP policies that are used to enforce the restriction
Show child attributes
Show child attributes
Was this page helpful?