Get the domain's effective plan entitlements
const url = 'https://api.nsin.ir/domains/example.com/features';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://api.nsin.ir/domains/example.com/features \ --header 'Authorization: Bearer <token>'What this domain’s plan actually allows — the resolved values after any per-subscription overrides, so this is the authority on whether a feature is available.
A limit of null means unlimited. Use this before calling a gated
endpoint rather than inferring capability from the plan name. Readable
by shared members.
Authorizations
Section titled “Authorizations ”Parameters
Section titled “ Parameters ”Path Parameters
Section titled “Path Parameters ”The domain name (for example example.com) — not a numeric id.
Example
example.comResponses
Section titled “ Responses ”Effective entitlements.
The domain’s effective entitlements, after per-subscription overrides.
A null limit means unlimited.
object
Null means unlimited.
Null means unlimited.
Rules allowed per rule type. Null means unlimited.
Requests this domain’s gateway records may serve in a rolling 30-day window. Null means unlimited. See the gateway list endpoint for usage against it.
Ceiling for the domain’s cache_cap_mb — the largest response body cached.
Ceiling for the domain’s cache_l2_max_gb — the size of its cache pool.
Ceiling for the domain’s cache_l2_ttl_days — how long a cached entry may live.
Rule types this plan may NOT create, by rule type string (for
example origin_pool, origin_route, optimize). A DENY list: any
type not listed is available. Rules of a blocked type that already
exist keep working.
Gates the Gateways feature.
Gates the raw-log and top-N analytics endpoints.
Gates most analytics sections.
Gates the cache purge endpoints.
Gates custom certificate upload.
WebSocket support.
Whether uptime outage/recovery alerts may be delivered by SMS. When false they still go out by email and to the panel — uptime monitoring itself is not gated.
Direct support when true; ticket support when false.
Current usage against the limits above.
object
Example generated
{ "plan_id": 1, "plan_name": "example", "plan_slug": "example", "has_active_plan": true, "max_records": 1, "max_traffic_gb": 1, "max_rules_per_set": 1, "max_gateway_requests_30d": 1, "max_cache_cap_mb": 1, "max_cache_disk_gb": 1, "max_cache_ttl_days": 1, "disabled_rule_types": [ "example" ], "gateways_enabled": true, "logs_enabled": true, "monitoring_enabled": true, "rules_enabled": true, "cache_purge_enabled": true, "custom_ssl_enabled": true, "ws_enabled": true, "host_header_edit_enabled": true, "uptime_sms_enabled": true, "dedicated_support_enabled": true, "domain_usage": [ {} ], "plan_term_id": 1, "billing_duration_days": 1, "quota_reset_days": 1, "quota_period_start": "2026-04-15T12:00:00Z", "quota_period_end": "2026-04-15T12:00:00Z"}Missing domain.
The single error shape used by every endpoint.
object
Human-readable description of what went wrong.
Example
{ "error": "read-only API key"}Missing, malformed, revoked or expired API key — or the owning account is inactive.
The single error shape used by every endpoint.
object
Human-readable description of what went wrong.
Examples
{ "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.
The single error shape used by every endpoint.
object
Human-readable description of what went wrong.
Example
{ "error": "read-only API key"}The key exceeded its request budget (300 requests per minute by default).
The single error shape used by every endpoint.
object
Human-readable description of what went wrong.
Examples
{ "error": "rate limit exceeded"}