Get details of a proxy rule
const url = 'https://dashboard.quantcdn.io/api/v2/organizations/example/projects/example/rules/proxy/example';const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url https://dashboard.quantcdn.io/api/v2/organizations/example/projects/example/rules/proxy/example \ --header 'Authorization: Bearer <token>'Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”Responses
Section titled “Responses”The request has succeeded.
object
Rule name
Rule UUID
Rule ID
Rule order. Must be 0 or greater; lower weights are processed first. If omitted on create, the rule is placed last. A reorder in the Quant dashboard changes this rule’s weight; if weight is set in configuration, the next plan shows the difference and apply restores the configured order.
URL patterns
Exact hostnames the rule matches, or ‘any’. Wildcards are not supported.
Whether rule is disabled
Only apply with cookie
HTTP method
Allowed HTTP methods
Excluded HTTP methods
IP address
Allowed IP addresses
Excluded IP addresses
ASN condition type (asn_is, asn_is_not, any)
Allowed AS numbers
Excluded AS numbers
User agent condition type (ua_is, ua_is_not, any)
User agent strings to match
User agent strings to exclude
Traffic source condition type (traffic_source_is, traffic_source_is_not, any)
Traffic sources to match (cloud, vpn, tor-exit, abuser, crawler)
Traffic sources to exclude (cloud, vpn, tor-exit, abuser, crawler)
Country code
Allowed countries
Excluded countries
Rule action
Rule ID
object
Target URL to proxy to
Host header override
Basic auth username
Basic auth password
Disable SSL verification
Cache lifetime
Only proxy 404 responses
Headers added to (or replacing headers on) the request sent to the origin. They are not added to the response sent to the visitor.
object
Headers to strip from response
Headers to strip from request
Origin timeout in milliseconds. Defaults to 30000 when omitted on create.
Enable failover mode
Failover TTFB threshold
Status codes for failover (default: 200,404,301,302,304)
Failover cache lifetime
Notification type (none, slack)
Notification configuration (required when notify is slack)
object
Slack webhook URL
WAF enabled
Web Application Firewall configuration
object
WAF operation mode
OWASP paranoia level
WAF rule IDs to allow/whitelist
IP addresses to allow
IP addresses to block
ASN numbers to block
User agent patterns to block
Referer patterns to block
Slack webhook URL for notifications. The deprecated write alias notify_slack_webhook is still accepted
Minimum hits per minute to trigger Slack notification. Send a positive integer. 0, null or an empty string turns it off (reads back null). Other values return 400. The deprecated write alias notify_slack_rpm is still accepted
Email addresses for notifications
Project Honey Pot HTTP:BL configuration
object
Enable HTTP:BL
Block suspicious IPs
Block email harvesters
Block spam sources
Block search engines
HTTP:BL API key. The deprecated write alias api_key is still accepted.
Enable predefined block lists
object
Block known bad user agents
Block known bad referers
Block known bad IPs
Block AI crawlers
Rate limiting thresholds. Entries are merged by type on update: only the listed types change. A request without thresholds keeps the stored ones. To turn a limit off, send its type with mode disabled. rps, hits and minutes are integers of 1 or more; cooldown is 0 or more. Invalid values return 400. An empty list changes nothing. A request that sets notify_slack copies that webhook into every threshold that the same request does not give its own notify_slack. Deprecated write aliases, still accepted: ip_ratelimit_rps, ip_ratelimit_cooldown, ip_ratelimit_mode, header_ratelimit_rps, header_ratelimit_cooldown, header_ratelimit_value, header_ratelimit_mode, hit_ratelimit_hits, hit_ratelimit_minutes, hit_ratelimit_cooldown, hit_ratelimit_mode. When thresholds and an alias set the same value, thresholds wins.
object
Threshold type
Requests per second limit (for ip/header)
Hit count limit (for waf_hit_by_ip)
Time window in minutes (for waf_hit_by_ip)
Cooldown period in seconds
Threshold enforcement mode
Header name (for header type)
Slack webhook for this threshold
Proxy alert enabled
Proxy inline function enabled
Enable Quant Cloud application proxy mode
Quant Cloud application name (required when application_proxy is true)
Quant Cloud application environment (required when application_proxy is true)
Quant Cloud application container (required when application_proxy is true)
Quant Cloud application port (required when application_proxy is true)
Quant Cloud application proxy selection (populated automatically when application_proxy is enabled)
object
Application name
Environment name
Container name
Container port
On/off switch, not page content. Send a string: any non-empty string (for example the text true) turns it on; an empty string or null turns it off. Write the text true to enable and an empty string to disable; do not send the text false, because any non-empty string counts as on. A JSON boolean is rejected on write. A boolean stored by the dashboard reads back as the string true, or an empty string when off. When on, an origin response whose status is in static_error_page_status_codes is replaced by the project’s published /_quant
Origin status codes that serve the published /_quant
Example
{ "name": "Test redirect rule", "uuid": "123e4567-e89b-12d3-a456-426614174000", "rule_id": "rule-001", "weight": 100, "url": [ "/old-path/*", "/legacy/*" ], "domain": [ "test-domain.com", "www.test-domain.com" ], "disabled": false, "only_with_cookie": "session_id", "method": "GET", "method_is": [ "GET", "POST" ], "method_is_not": [ "DELETE", "PUT" ], "ip": "192.168.1.1", "ip_is": [ "192.168.1.0/24", "10.0.0.1" ], "ip_is_not": [ "172.16.0.0/12" ], "asn": "any", "asn_is": [ "15169", "8075" ], "asn_is_not": [ "13335" ], "ua": "any", "ua_is": [ "Googlebot" ], "ua_is_not": [ "curl" ], "traffic_source": "any", "traffic_source_is": [ "tor-exit" ], "traffic_source_is_not": [ "crawler" ], "country": "US", "country_is": [ "US", "CA", "GB" ], "country_is_not": [ "CN", "RU" ], "action": "redirect", "action_config": { "to": "https://backend.test-domain.com", "host": "backend.test-domain.com", "auth_user": "admin", "auth_pass": "secure_password", "disable_ssl_verify": false, "cache_lifetime": "3600", "only_proxy_404": false, "inject_headers": { "X-Custom-Header": "value", "Authorization": "Bearer token" }, "proxy_strip_headers": [ "Set-Cookie", "Server" ], "proxy_strip_request_headers": [ "Cookie", "Authorization" ], "origin_timeout": "30000", "failover_mode": false, "failover_origin_ttfb": "2000", "failover_origin_status_codes": [ "200", "404", "301", "302", "304" ], "failover_lifetime": "300", "notify": "none", "notify_config": { "webhook_url": "https://hooks.slack.com/services/XXXXXX" }, "waf_enabled": false, "waf_config": { "mode": "report", "paranoia_level": 1, "notify_slack": "https://hooks.slack.com/services/XXX", "notify_slack_hits_rpm": 100, "httpbl": { "httpbl_enabled": false, "block_suspicious": false, "block_harvester": false, "block_spam": false, "block_search_engine": false }, "block_lists": { "user_agent": false, "referer": false, "ip": false, "ai": false }, "thresholds": [ { "type": "ip", "rps": 10, "hits": 10, "minutes": 5, "cooldown": 30, "mode": "disabled" } ] }, "proxy_alert_enabled": false, "proxy_inline_fn_enabled": false, "application_proxy": false, "application_name": "my-app", "application_environment": "production", "application_container": "web", "application_port": 80, "quant_cloud_selection": { "app": "my-app", "env": "production", "container": "web", "port": 80 }, "static_error_page": "true", "static_error_page_status_codes": [ "500", "502", "503", "504" ] }}The server could not understand the request due to invalid syntax.
object
Error message
Error flag
Example
{ "message": "The requested resource was not found", "error": true}Access is forbidden.
object
Error message
Error flag
Example
{ "message": "The requested resource was not found", "error": true}