Skip to content

Enable or disable a basic auth rule

PATCH
/domains/{domain}/rules/basic_auth/{ruleId}/toggle
curl --request PATCH \
--url https://api.nsin.ir/domains/example.com/rules/basic_auth/1/toggle \
--header 'Authorization: Bearer <token>'

Flips the rule’s enabled flag. Takes no request body — the new state is always the opposite of the current one, and is returned. Disabling a rule removes the sign-in prompt from the paths it covered. Requires rules.edit.

domain
required
string

The domain name (for example example.com) — not a numeric id.

Example
example.com
ruleId
required
integer

Numeric id of the rule.

The rule in its new state.

Media type application/json
object
id
integer
domain_id
integer
record_id

Deprecated single-record scope. Prefer record_ids. Absent for zone-wide rules.

integer
record_ids

The proxied DNS records this rule applies to. Empty or absent means zone-wide — every proxied record of the domain.

Array<integer>
type
string
Allowed values: cache drop redirect rewrite waf captcha rate_limit bot_route origin_pool origin_route fingerprint error_page
enabled
boolean
priority

Evaluation order; lower runs first. Defaults to 100.

integer
host_pattern

Legacy single-hostname filter, kept for rules written before host_includes existed. It is evaluated as one more entry of host_includes; prefer the lists.

string
host_match_type

How the host filter — host_pattern, host_includes and host_excludes — is matched. One strategy covers all three, exactly as one path_match_type covers both path lists.

The empty string means “no host filter”, and is the only valid value when the pattern and both lists are empty. Set a list without a match type and the API defaults it to wildcard.

A wildcard entry matches subdomains, not the label itself: *.example.com covers shop.example.com but not example.com — the same reading as the DNS wildcard. Add the bare name as its own entry to include it.

string
Allowed values: "" exact wildcard regex
host_includes

Hostnames the rule applies to. Empty or absent means every host the scoped record(s) serve — which on a wildcard-proxied zone (*.example.com) is every subdomain.

Array<string>
host_excludes

Hostnames carved back out of host_includes. An exclude always wins over an include, so “everything except staging” is an empty include list plus one exclude.

Array<string>
action_mode
  • enforce — the rule acts (block, redirect, challenge, …).
  • dry_run — the rule matches and is logged as “would have acted”, but the request reaches the origin unchanged. Use it to test a rule safely.

Not every rule type honours this; cache ignores it.

string
Allowed values: enforce dry_run
created_at
string format: date-time
updated_at
string format: date-time
path_match_type

How path_includes and path_excludes are interpreted.

string
Allowed values: wildcard regex
path_includes

Paths the rule applies to. Defaults to ["/*"] — everything.

Array<string>
path_excludes

Paths carved back out of path_includes.

Array<string>
realm

Shown in the browser’s sign-in prompt. Must not contain ", \, or control characters.

string
default: Restricted <= 128 characters
bypass_cidrs

IPs or CIDRs whose requests skip the prompt entirely — an office network, an uptime monitor. Bare IPs are stored as a full-length prefix (203.0.113.7203.0.113.7/32).

Array<string>
<= 32 items
users
Array<object>

A credential as it is returned — username only.

object
username
string
has_password

Always true for a usable credential. Passwords are never returned.

boolean
Example
{
"type": "cache",
"host_match_type": "",
"action_mode": "enforce",
"path_match_type": "wildcard",
"realm": "Restricted"
}

Missing, malformed, revoked or expired API key — or the owning account is inactive.

Media type application/json

The single error shape used by every endpoint.

object
error
required

Human-readable description of what went wrong.

string
Examples
Example invalidKey
{
"error": "invalid API key"
}

The domain or the rule does not exist, the rule belongs to another domain or another rule type, or your role does not permit this operation.

Media type application/json

The single error shape used by every endpoint.

object
error
required

Human-readable description of what went wrong.

string
Example
{
"error": "read-only API key"
}

The key exceeded its request budget (300 requests per minute by default).

Media type application/json

The single error shape used by every endpoint.

object
error
required

Human-readable description of what went wrong.

string
Examples
Example limited
{
"error": "rate limit exceeded"
}