Skip to content

Get the domain's advisory checklist

GET
/recommendations
curl --request GET \
--url 'https://api.nsin.ir/recommendations?domain=example.com' \
--header 'Authorization: Bearer <token>'

Per-domain advice derived from analytics, configuration and live probes. Items with status: ok are passing checks; warn items suggest an action. Dismissed items are still returned, flagged dismissed: true.

domain
required
string

The domain name (for example example.com). These endpoints take the domain as a query parameter rather than a path segment.

Example
example.com

Checklist items.

Media type application/json
object
data
Array<object>
object
key

Stable identifier — pass it to the dismiss endpoints. New checks are added over time, so treat this as an open set rather than a closed enum.

string
Allowed values: cache_off slow_response errors_5xx images_not_webp ssl_expiring no_robots no_sitemap no_https_redirect www_unreachable www_redirect_bypassed
status

ok is a passing check; warn needs action.

string
Allowed values: ok warn
severity
string
Allowed values: high medium low
category
string
Allowed values: speed seo reachability security
title
string
detail
string
stats

Supporting figures behind the finding.

object
key
additional properties
any
action

Where to go to act on the recommendation.

object
label
string
feature

Logical target, e.g. cache.

string
query

Parameters that pre-filter the target view.

object
key
additional properties
string
dismissed

Dismissed by the calling user. Dismissals are per user, not per domain.

boolean
Example
{
"data": [
{
"key": "cache_off",
"status": "ok",
"severity": "high",
"category": "speed"
}
]
}

The domain query parameter is missing.

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 missing
{
"error": "domain is required"
}

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

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