Citrix NetScaler Virtual Server
A virtual server (vserver) object from the Citrix NetScaler NITRO API, representing either a load balancing or content switching virtual server that accepts incoming client traffic and distributes or routes it to backend services.
Properties
| Name | Type | Description |
|---|---|---|
| name | string | Name for the virtual server. Must begin with a letter, number, or underscore character and must contain only alphanumeric, hyphen, period, hash, space, at, equals, colon, and underscore characters. |
| servicetype | string | Protocol of the service running on the virtual server. |
| ipv46 | string | IPv4 or IPv6 address to assign to the virtual server. This is typically a Virtual IP (VIP) address on the NetScaler used as the entry point for client traffic. |
| port | integer | Port number on which the virtual server listens for client connections. |
| td | integer | Traffic domain identifier to isolate traffic for this virtual server from other traffic domains on the appliance. |
| ipset | string | Name of the IP set to bind to the virtual server, providing multiple IP addresses for the virtual server. |
| range | integer | Number of consecutive IP addresses that the appliance must generate beginning from the VIP address. |
| ippattern | string | IP address pattern for identifying packets to be accepted by the virtual server. Used together with ipmask. |
| ipmask | string | IP address mask applied with the IP pattern to form an IP address range for packet matching. |
| lbmethod | string | Load balancing method used to select the backend service for each client request. Applicable only to load balancing virtual servers. |
| backuplbmethod | string | Backup load balancing method used when the primary method fails to select a service. |
| persistencetype | string | Type of persistence for the virtual server. Ensures requests from the same client are directed to the same backend service. |
| persistencebackup | string | Backup persistence type for the virtual server. |
| timeout | integer | Persistence timeout in minutes. Duration for which persistence sessions are maintained after the last matching request. |
| clttimeout | integer | Client idle timeout in seconds. Time the NetScaler waits before closing an idle client connection. |
| cookiename | string | Name of the HTTP cookie generated by the NetScaler for cookie-insert persistence. |
| comment | string | Informational description or comments about the virtual server. |
| state | string | Administrative state of the virtual server. |
| curstate | string | Current operational state of the virtual server. This is a read-only property reflecting the runtime status. |
| effectivestate | string | Effective state of the virtual server considering all contributing factors. |
| status | integer | Current status code of the virtual server. A value of 1 indicates the virtual server is UP. |
| statechangetimesec | string | Timestamp of the last state change for the virtual server. |
| tickssincelaststatechange | integer | Number of system ticks elapsed since the last state change. |
| totalservices | integer | Total number of services bound to this virtual server. |
| activeservices | integer | Number of currently active (UP) services bound to this virtual server. |
| health | integer | Health of the virtual server expressed as a percentage of UP services relative to total bound services. |
| somethod | string | Spillover method that defines the condition under which traffic overflows to the backup virtual server. |
| sothreshold | integer | Threshold value for the spillover method. The meaning varies based on the spillover method selected. |
| sopersistence | string | Whether to maintain persistence sessions when spillover occurs. |
| sopersistencetimeout | integer | Persistence timeout in minutes during spillover conditions. |
| healththreshold | integer | Minimum percentage of UP services required for the virtual server to be considered UP. |
| redirecturl | string | URL to which client requests are redirected when all bound services are DOWN. |
| downstateflush | string | Whether to flush all active transactions on all bound services when the virtual server transitions to DOWN. |
| insertvserveripport | string | Whether to insert the virtual server VIP address and port number into the HTTP request header. |
| vipheader | string | Name of the HTTP header in which the VIP address and port are inserted. |
| disableprimaryondown | string | Whether to continue directing traffic to the virtual server when it is DOWN in an HA deployment. |
| authentication | string | Whether authentication is enabled for the virtual server. |
| authenticationhost | string | Fully qualified domain name of the authentication virtual server to which users are redirected for authentication. |
| authn401 | string | Whether to use HTTP 401-based authentication instead of redirect-based authentication. |
| authnvsname | string | Name of the authentication virtual server to use for 401-based authentication. |
| push | string | Whether to process traffic with the push virtual server bound to this virtual server. |
| pushlabel | string | Expression for extracting a label from the incoming request for push functionality. |
| pushmulticlients | string | Whether to allow multiple clients to connect to the push virtual server. |
| icmpvsrresponse | string | How the NetScaler appliance responds to ICMP ping requests directed at the VIP address. |
| rhistate | string | Route Health Injection state. Controls whether the route to the VIP is advertised via dynamic routing protocols when the server is UP. |
| appflowlog | string | Whether to enable AppFlow logging for the virtual server to capture traffic analytics. |
| connfailover | string | Connection failover mode for the virtual server in HA deployments. |
| precedence | string | Type of precedence to apply for content switching policy evaluation. Applicable only to content switching virtual servers. |
| casesensitive | string | Whether URL-based content switching is case sensitive. Applicable only to content switching virtual servers. |
| lbvserver | string | Name of the default load balancing virtual server bound to this content switching virtual server. |
| targetlbvserver | string | Name of the target load balancing virtual server to which matching content is switched. |
| cachetype | string | Cache type for integrated caching on the virtual server. |
| isgslb | boolean | Whether this virtual server is a GSLB (Global Server Load Balancing) virtual server. |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://raw.githubusercontent.com/api-evangelist/citrix-netscaler/refs/heads/main/json-schema/citrix-netscaler-vserver-schema.json",
"title": "Citrix NetScaler Virtual Server",
"description": "A virtual server (vserver) object from the Citrix NetScaler NITRO API, representing either a load balancing or content switching virtual server that accepts incoming client traffic and distributes or routes it to backend services.",
"type": "object",
"required": ["name", "servicetype"],
"properties": {
"name": {
"type": "string",
"description": "Name for the virtual server. Must begin with a letter, number, or underscore character and must contain only alphanumeric, hyphen, period, hash, space, at, equals, colon, and underscore characters.",
"minLength": 1,
"maxLength": 127
},
"servicetype": {
"type": "string",
"description": "Protocol of the service running on the virtual server.",
"enum": [
"HTTP",
"FTP",
"TCP",
"UDP",
"SSL",
"SSL_BRIDGE",
"SSL_TCP",
"DTLS",
"NNTP",
"DNS",
"DHCPRA",
"ANY",
"SIP_UDP",
"SIP_TCP",
"SIP_SSL",
"DNS_TCP",
"RTSP",
"PUSH",
"SSL_PUSH",
"RADIUS",
"RDP",
"MYSQL",
"MSSQL",
"DIAMETER",
"SSL_DIAMETER",
"TFTP",
"ORACLE",
"SMPP",
"SYSLOGTCP",
"SYSLOGUDP",
"FIX",
"SSL_FIX",
"PROXY",
"USER_TCP",
"USER_SSL_TCP",
"QUIC",
"IPFIX",
"LOGSTREAM",
"MONGO",
"MONGO_TLS",
"MQTT",
"MQTT_TLS",
"QUIC_BRIDGE",
"HTTP_QUIC"
]
},
"ipv46": {
"type": "string",
"description": "IPv4 or IPv6 address to assign to the virtual server. This is typically a Virtual IP (VIP) address on the NetScaler used as the entry point for client traffic."
},
"port": {
"type": "integer",
"description": "Port number on which the virtual server listens for client connections.",
"minimum": 0,
"maximum": 65535
},
"td": {
"type": "integer",
"description": "Traffic domain identifier to isolate traffic for this virtual server from other traffic domains on the appliance.",
"minimum": 0,
"maximum": 4094
},
"ipset": {
"type": "string",
"description": "Name of the IP set to bind to the virtual server, providing multiple IP addresses for the virtual server."
},
"range": {
"type": "integer",
"description": "Number of consecutive IP addresses that the appliance must generate beginning from the VIP address.",
"minimum": 2,
"maximum": 254
},
"ippattern": {
"type": "string",
"description": "IP address pattern for identifying packets to be accepted by the virtual server. Used together with ipmask."
},
"ipmask": {
"type": "string",
"description": "IP address mask applied with the IP pattern to form an IP address range for packet matching."
},
"lbmethod": {
"type": "string",
"description": "Load balancing method used to select the backend service for each client request. Applicable only to load balancing virtual servers.",
"enum": [
"ROUNDROBIN",
"LEASTCONNECTION",
"LEASTRESPONSETIME",
"URLHASH",
"DOMAINHASH",
"DESTINATIONIPHASH",
"SOURCEIPHASH",
"SRCIPDESTIPHASH",
"LEASTBANDWIDTH",
"LEASTPACKETS",
"TOKEN",
"SRCIPSRCPORTHASH",
"LRTM",
"CALLIDHASH",
"CUSTOMLOAD",
"LEASTREQUEST",
"AUDITLOGHASH",
"STATICPROXIMITY"
],
"default": "LEASTCONNECTION"
},
"backuplbmethod": {
"type": "string",
"description": "Backup load balancing method used when the primary method fails to select a service.",
"enum": [
"ROUNDROBIN",
"LEASTCONNECTION",
"LEASTRESPONSETIME",
"SOURCEIPHASH",
"CUSTOMLOAD"
],
"default": "ROUNDROBIN"
},
"persistencetype": {
"type": "string",
"description": "Type of persistence for the virtual server. Ensures requests from the same client are directed to the same backend service.",
"enum": [
"SOURCEIP",
"COOKIEINSERT",
"SSLSESSION",
"RULE",
"URLPASSIVE",
"CUSTOMSERVERID",
"DESTIP",
"SRCIPDESTIP",
"CALLID",
"RTSPSID",
"DIAMETER",
"FIXSESSION",
"USERSESSION",
"NONE"
]
},
"persistencebackup": {
"type": "string",
"description": "Backup persistence type for the virtual server.",
"enum": ["SOURCEIP", "NONE"]
},
"timeout": {
"type": "integer",
"description": "Persistence timeout in minutes. Duration for which persistence sessions are maintained after the last matching request.",
"minimum": 0,
"maximum": 1440,
"default": 2
},
"clttimeout": {
"type": "integer",
"description": "Client idle timeout in seconds. Time the NetScaler waits before closing an idle client connection.",
"minimum": 0,
"maximum": 31536000
},
"cookiename": {
"type": "string",
"description": "Name of the HTTP cookie generated by the NetScaler for cookie-insert persistence."
},
"comment": {
"type": "string",
"description": "Informational description or comments about the virtual server."
},
"state": {
"type": "string",
"description": "Administrative state of the virtual server.",
"enum": ["ENABLED", "DISABLED"],
"default": "ENABLED"
},
"curstate": {
"type": "string",
"description": "Current operational state of the virtual server. This is a read-only property reflecting the runtime status.",
"enum": [
"UP",
"DOWN",
"UNKNOWN",
"BUSY",
"OUT OF SERVICE",
"GOING OUT OF SERVICE",
"DOWN WHEN GOING OUT OF SERVICE",
"NS_EMPTY_STR"
],
"readOnly": true
},
"effectivestate": {
"type": "string",
"description": "Effective state of the virtual server considering all contributing factors.",
"enum": [
"UP",
"DOWN",
"UNKNOWN",
"BUSY",
"OUT OF SERVICE",
"GOING OUT OF SERVICE",
"DOWN WHEN GOING OUT OF SERVICE",
"NS_EMPTY_STR"
],
"readOnly": true
},
"status": {
"type": "integer",
"description": "Current status code of the virtual server. A value of 1 indicates the virtual server is UP.",
"readOnly": true
},
"statechangetimesec": {
"type": "string",
"description": "Timestamp of the last state change for the virtual server.",
"readOnly": true
},
"tickssincelaststatechange": {
"type": "integer",
"description": "Number of system ticks elapsed since the last state change.",
"readOnly": true
},
"totalservices": {
"type": "integer",
"description": "Total number of services bound to this virtual server.",
"readOnly": true
},
"activeservices": {
"type": "integer",
"description": "Number of currently active (UP) services bound to this virtual server.",
"readOnly": true
},
"health": {
"type": "integer",
"description": "Health of the virtual server expressed as a percentage of UP services relative to total bound services.",
"readOnly": true,
"minimum": 0,
"maximum": 100
},
"somethod": {
"type": "string",
"description": "Spillover method that defines the condition under which traffic overflows to the backup virtual server.",
"enum": [
"CONNECTION",
"DYNAMICCONNECTION",
"BANDWIDTH",
"HEALTH",
"NONE"
]
},
"sothreshold": {
"type": "integer",
"description": "Threshold value for the spillover method. The meaning varies based on the spillover method selected.",
"minimum": 1
},
"sopersistence": {
"type": "string",
"description": "Whether to maintain persistence sessions when spillover occurs.",
"enum": ["ENABLED", "DISABLED"],
"default": "DISABLED"
},
"sopersistencetimeout": {
"type": "integer",
"description": "Persistence timeout in minutes during spillover conditions.",
"minimum": 2,
"maximum": 1440,
"default": 2
},
"healththreshold": {
"type": "integer",
"description": "Minimum percentage of UP services required for the virtual server to be considered UP.",
"minimum": 0,
"maximum": 100,
"default": 0
},
"redirecturl": {
"type": "string",
"description": "URL to which client requests are redirected when all bound services are DOWN.",
"format": "uri"
},
"downstateflush": {
"type": "string",
"description": "Whether to flush all active transactions on all bound services when the virtual server transitions to DOWN.",
"enum": ["ENABLED", "DISABLED"],
"default": "ENABLED"
},
"insertvserveripport": {
"type": "string",
"description": "Whether to insert the virtual server VIP address and port number into the HTTP request header.",
"enum": ["OFF", "VIPADDR", "V6TOV4MAPPING"]
},
"vipheader": {
"type": "string",
"description": "Name of the HTTP header in which the VIP address and port are inserted."
},
"disableprimaryondown": {
"type": "string",
"description": "Whether to continue directing traffic to the virtual server when it is DOWN in an HA deployment.",
"enum": ["ENABLED", "DISABLED"],
"default": "DISABLED"
},
"authentication": {
"type": "string",
"description": "Whether authentication is enabled for the virtual server.",
"enum": ["ON", "OFF"],
"default": "OFF"
},
"authenticationhost": {
"type": "string",
"description": "Fully qualified domain name of the authentication virtual server to which users are redirected for authentication.",
"format": "hostname"
},
"authn401": {
"type": "string",
"description": "Whether to use HTTP 401-based authentication instead of redirect-based authentication.",
"enum": ["ON", "OFF"],
"default": "OFF"
},
"authnvsname": {
"type": "string",
"description": "Name of the authentication virtual server to use for 401-based authentication."
},
"push": {
"type": "string",
"description": "Whether to process traffic with the push virtual server bound to this virtual server.",
"enum": ["ENABLED", "DISABLED"],
"default": "DISABLED"
},
"pushlabel": {
"type": "string",
"description": "Expression for extracting a label from the incoming request for push functionality."
},
"pushmulticlients": {
"type": "string",
"description": "Whether to allow multiple clients to connect to the push virtual server.",
"enum": ["YES", "NO"],
"default": "NO"
},
"icmpvsrresponse": {
"type": "string",
"description": "How the NetScaler appliance responds to ICMP ping requests directed at the VIP address.",
"enum": ["PASSIVE", "ACTIVE"],
"default": "PASSIVE"
},
"rhistate": {
"type": "string",
"description": "Route Health Injection state. Controls whether the route to the VIP is advertised via dynamic routing protocols when the server is UP.",
"enum": ["PASSIVE", "ACTIVE"],
"default": "PASSIVE"
},
"appflowlog": {
"type": "string",
"description": "Whether to enable AppFlow logging for the virtual server to capture traffic analytics.",
"enum": ["ENABLED", "DISABLED"],
"default": "ENABLED"
},
"connfailover": {
"type": "string",
"description": "Connection failover mode for the virtual server in HA deployments.",
"enum": ["DISABLED", "STATEFUL", "STATELESS"],
"default": "DISABLED"
},
"precedence": {
"type": "string",
"description": "Type of precedence to apply for content switching policy evaluation. Applicable only to content switching virtual servers.",
"enum": ["RULE", "URL"]
},
"casesensitive": {
"type": "string",
"description": "Whether URL-based content switching is case sensitive. Applicable only to content switching virtual servers.",
"enum": ["ON", "OFF"],
"default": "ON"
},
"lbvserver": {
"type": "string",
"description": "Name of the default load balancing virtual server bound to this content switching virtual server."
},
"targetlbvserver": {
"type": "string",
"description": "Name of the target load balancing virtual server to which matching content is switched."
},
"cachetype": {
"type": "string",
"description": "Cache type for integrated caching on the virtual server.",
"enum": ["TRANSPARENT", "REVERSE", "FORWARD"]
},
"isgslb": {
"type": "boolean",
"description": "Whether this virtual server is a GSLB (Global Server Load Balancing) virtual server.",
"readOnly": true
}
},
"additionalProperties": true
}
Work with this as data
Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
curl "https://apis.io/api/v1/json-schemas/citrix-netscaler-vserver"
curl "https://apis.io/api/v1/json-schemas?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.