Skip to content

Re-check that proxied records point to NSIN (external DNS)

POST
/domains/{domain}/records/edge-check
curl --request POST \
--url https://api.nsin.ir/domains/example.com/records/edge-check \
--header 'Authorization: Bearer <token>'

For a domain whose DNS is hosted outside NSIN, resolves every proxied record right now and stores the verdict on each one (edge_status / edge_via / edge_detail / edge_checked_at).

A background sweep does the same every 5 minutes (hourly once a record is confirmed), and a record is checked as soon as it is created or updated, so this is for “I just fixed my DNS, look again”. Limited to once a minute per domain. A managed-DNS domain answers 400 with error_code: managed_dns — its proxied records always point here.

domain
required
string

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

Example
example.com

The fresh verdicts.

Media type application/json
object
checked

Proxied records looked up.

integer
ok

Records that resolve to NSIN.

integer
miss

Records that resolve elsewhere or not at all.

integer
records
Array<object>
object
id
integer
name

Record name relative to the domain. @ is the apex.

string
original_name

The fully-qualified name, with trailing dot.

string
type
string
Allowed values: A AAAA CNAME ANAME NS TXT MX SRV PTR CAA TLSA SSHFP URI
destination

The record’s value. For a proxied record this is the origin the edge connects to, and the published DNS answer is the NSIN proxy IP instead — see dns_content.

string
dns_content

What is actually published in DNS. Equals the proxy IP for proxied records.

string
ttl

TTL in seconds.

integer
proxied

Route this hostname through the NSIN edge. Only A, AAAA, CNAME and ANAME may be proxied.

boolean
captcha

Challenge visitors before passing them to the origin.

boolean
editable

False for records NSIN manages on your behalf.

boolean
managed_by

The platform feature that owns this record, or empty for a record you created. email_routing marks the MX, SPF and DKIM rows Email Routing publishes; they are removed by disabling routing, never through the record endpoints (which refuse them while locked).

string
user_id
integer
domain_id
integer
scheme

Protocol the edge uses to reach the origin for a proxied record. Default follows the request’s own scheme; Auto probes.

string
Allowed values: Http Https Auto Default
port

Origin port for proxied records. Default: 443.

integer
host_header

Overrides the Host header (and SNI) sent to the origin.

string
monitor

Include this record in uptime monitoring.

boolean
dest_country

ISO country code of the destination, detected by NSIN.

string
timeout

How long an edge node waits for the origin to start responding before returning 504, in seconds. Default 15, maximum 1800 (30 minutes). Only applies to proxied records.

integer
default: 15 >= 1 <= 1800
mx_priority

Only meaningful for MX.

integer
<= 65535
comment

Free-form note.

string
<= 1024 characters
created_at
string format: date-time
updated_at
string format: date-time
edge_status

External-DNS domains, proxied records only. Whether the name resolves to NSIN’s edge, as last checked: ok — every address it resolves to is ours; miss — it resolves elsewhere, only partly to us, or not at all; error — the first lookup failed and nothing is known yet. Absent until the first check, and always absent on a managed-DNS domain.

string
Allowed values: ok miss error
edge_via

How an ok record reaches NSIN: through the CNAME target (cname), by publishing our address directly (a), or proxy — DNS points at another CDN or proxy, but that service forwards to NSIN and the edge is serving the host (judged from the last 24h of request logs). A CNAME keeps working when our addresses change; an A record does not.

string
Allowed values: cname a proxy
edge_detail

What the name actually resolves to, for display.

string
edge_checked_at
string format: date-time
next_manual_check_at

When this endpoint accepts the next call for this domain.

string format: date-time
Example
{
"records": [
{
"name": "www",
"original_name": "www.example.com.",
"type": "A",
"scheme": "Http",
"timeout": 15,
"edge_status": "ok",
"edge_via": "cname"
}
]
}

The domain uses NSIN-managed DNS.

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"
}

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"
}

No such domain, or it is not visible to this account. Domains you cannot access are reported as not found rather than forbidden.

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"
}

Checked less than a minute ago. retry_after_seconds says how long to wait.

Media type application/json
object
error
string
retry_after_seconds
integer
Example generated
{
"error": "example",
"retry_after_seconds": 1
}