{"openapi":"3.1.0","info":{"title":"Node Status API","description":"","contact":{"name":"Nym Technologies SA"},"license":{"name":"Apache-2.0","identifier":"Apache-2.0"},"version":"4.2.0"},"paths":{"/dvpn/v1/directory/gateways":{"get":{"tags":["dVPN Directory Cache"],"summary":"Gets available entry and exit gateways from the Nym network directory","operationId":"getGateways","parameters":[{"name":"min_node_version","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DVpnGateway"}}}}}}}},"/dvpn/v1/directory/gateways/countries":{"get":{"tags":["dVPN Directory Cache"],"summary":"Gets available exit gateway countries as two-letter ISO country codes from the Nym network directory","operationId":"getGatewayCountries","responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"type":"string"}}}}}}}},"/dvpn/v1/directory/gateways/country/{two_letter_country_code}":{"get":{"tags":["dVPN Directory Cache"],"summary":"Gets available gateways from the Nym network directory by country","operationId":"getGatewaysByCountry","parameters":[{"name":"two_letter_country_code","in":"path","required":true,"schema":{"type":"string","maxLength":2,"minLength":2}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DVpnGateway"}}}}}}}},"/dvpn/v1/directory/gateways/entry":{"get":{"tags":["dVPN Directory Cache"],"summary":"Gets available entry gateways from the Nym network directory","operationId":"getEntryGateways","responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DVpnGateway"}}}}}}}},"/dvpn/v1/directory/gateways/entry/countries":{"get":{"tags":["dVPN Directory Cache"],"summary":"Gets available entry gateway countries as two-letter ISO country codes from the Nym network directory","operationId":"getEntryGatewayCountries","responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"type":"string"}}}}}}}},"/dvpn/v1/directory/gateways/entry/country/{two_letter_country_code}":{"get":{"tags":["dVPN Directory Cache"],"summary":"Gets available entry gateways from the Nym network directory by country","operationId":"getEntryGatewaysByCountry","parameters":[{"name":"two_letter_country_code","in":"path","required":true,"schema":{"type":"string","maxLength":2,"minLength":2}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DVpnGateway"}}}}}}}},"/dvpn/v1/directory/gateways/exit":{"get":{"tags":["dVPN Directory Cache"],"summary":"Gets available exit gateways from the Nym network directory","operationId":"getExitGateways","responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DVpnGateway"}}}}}}}},"/dvpn/v1/directory/gateways/exit/countries":{"get":{"tags":["dVPN Directory Cache"],"summary":"Gets available exit gateway countries as two-letter ISO country codes from the Nym network directory","operationId":"getExitGatewayCountries","responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"type":"string"}}}}}}}},"/dvpn/v1/directory/gateways/exit/country/{two_letter_country_code}":{"get":{"tags":["dVPN Directory Cache"],"summary":"Gets available exit gateways from the Nym network directory by country","operationId":"getExitGatewaysByCountry","parameters":[{"name":"two_letter_country_code","in":"path","required":true,"schema":{"type":"string","maxLength":2,"minLength":2}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DVpnGateway"}}}}}}}},"/dvpn/v1/directory/gateways/exit/ips":{"get":{"tags":["dVPN Directory Cache"],"summary":"Gets IP addresses of all exit gateways currently on the network","operationId":"getExitGatewayIps","responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"type":"string"}}}}}}}},"/explorer/v3/nym-nodes":{"get":{"tags":["Nym Explorer"],"operationId":"nym_nodes","parameters":[{"name":"size","in":"query","required":false,"schema":{"type":"integer","minimum":0}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":0}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PagedResult_ExtendedNymNode"}}}}}}},"/explorer/v3/nym-nodes/{node_id}/delegations":{"get":{"tags":["Nym Explorer"],"operationId":"node_delegations","parameters":[{"name":"node_id","in":"path","required":true,"schema":{"$ref":"#/components/schemas/u32"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NodeDelegation"}}}}}}},"/v2/gateways":{"get":{"tags":["Gateways"],"operationId":"gateways","parameters":[{"name":"size","in":"query","required":false,"schema":{"type":"integer","minimum":0}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":0}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PagedResult_Gateway"}}}}}}},"/v2/gateways/skinny":{"get":{"tags":["Gateways"],"operationId":"gateways_skinny","parameters":[{"name":"size","in":"query","required":false,"schema":{"type":"integer","minimum":0}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":0}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PagedResult_GatewaySkinny"}}}}}}},"/v2/gateways/{identity_key}":{"get":{"tags":["Gateways"],"operationId":"get_gateway","parameters":[{"name":"identity_key","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Gateway"}}}}}}},"/v2/metrics/sessions":{"get":{"tags":["Sessions"],"operationId":"get_all_sessions","parameters":[{"name":"size","in":"query","required":false,"schema":{"type":"integer","minimum":0}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":0}},{"name":"node_id","in":"query","required":false,"schema":{"type":"string"}},{"name":"day","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PagedResult_SessionStats"}}}}}}},"/v2/mixnodes/stats":{"get":{"tags":["Mixnodes"],"operationId":"get_stats","parameters":[{"name":"offset","in":"query","required":false,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DailyStats"}}}}}}}},"/v2/services":{"get":{"tags":["Services"],"operationId":"mixnodes","parameters":[{"name":"size","in":"query","required":false,"schema":{"type":"integer","minimum":0}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":0}},{"name":"wss","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"hostname","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"entry","in":"query","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PagedResult_Service"}}}}}}},"/v2/status/build_information":{"get":{"tags":["Status"],"operationId":"build_information","responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BinaryBuildInformationOwned"}}}}}}},"/v2/status/health":{"get":{"tags":["Status"],"operationId":"health","responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HealthInfo"}}}}}}},"/v2/summary":{"get":{"tags":["Summary"],"operationId":"summary","responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NetworkSummary"}}}}}}},"/v2/summary/history":{"get":{"tags":["Summary"],"operationId":"summary_history","responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/SummaryHistory"}}}}}}}}},"components":{"schemas":{"AnnouncePortsV1":{"type":"object","properties":{"mix_port":{"type":["integer","null"],"format":"int32","minimum":0},"verloc_port":{"type":["integer","null"],"format":"int32","minimum":0}}},"Asn":{"type":"object","required":["asn","name","domain","route","kind"],"properties":{"asn":{"type":"string"},"domain":{"type":"string"},"kind":{"$ref":"#/components/schemas/AsnKind"},"name":{"type":"string"},"route":{"type":"string"}}},"AsnKind":{"type":"string","enum":["residential","other"]},"AuthenticatorDetailsV1":{"type":"object","required":["address"],"properties":{"address":{"type":"string","description":"address of the embedded authenticator"}}},"AuxiliaryDetailsV1":{"type":"object","properties":{"accepted_operator_terms_and_conditions":{"type":"boolean","description":"Specifies whether this node operator has agreed to the terms and conditions\nas defined at <https://nymtech.net/terms-and-conditions/operators/v1.0.0>"},"announce_ports":{"$ref":"#/components/schemas/AnnouncePortsV1"},"location":{"type":["string","null"],"description":"Optional ISO 3166 alpha-2 two-letter country code of the node's **physical** location","example":"PL"}}},"BasicEntryInformation":{"type":"object","required":["ws_port"],"properties":{"hostname":{"type":["string","null"]},"ws_port":{"type":"integer","format":"int32","minimum":0},"wss_port":{"type":["integer","null"],"format":"int32","minimum":0}}},"BinaryBuildInformationOwned":{"type":"object","required":["binary_name","build_timestamp","build_version","commit_sha","commit_timestamp","commit_branch","rustc_version","rustc_channel","cargo_profile"],"properties":{"binary_name":{"type":"string","description":"Provides the name of the binary, i.e. the content of `CARGO_PKG_NAME` environmental variable."},"build_timestamp":{"type":"string","description":"Provides the build timestamp, for example `2021-02-23T20:14:46.558472672+00:00`."},"build_version":{"type":"string","description":"Provides the build version, for example `0.1.0-9-g46f83e1`."},"cargo_profile":{"type":"string","description":"Provides the cargo debug mode that was used for the build."},"cargo_triple":{"type":"string","description":"Provides the cargo target triple that was used for the build."},"commit_branch":{"type":"string","description":"Provides the name of the git branch that was used for the build, for example `master`."},"commit_sha":{"type":"string","description":"Provides the hash of the commit that was used for the build, for example `46f83e112520533338245862d366f6a02cef07d4`."},"commit_timestamp":{"type":"string","description":"Provides the timestamp of the commit that was used for the build, for example `2021-02-23T08:08:02-05:00`."},"rustc_channel":{"type":"string","description":"Provides the rustc channel that was used for the build, for example `nightly`."},"rustc_version":{"type":"string","description":"Provides the rustc version that was used for the build, for example `1.52.0-nightly`."}}},"BridgeInformation":{"type":"object","required":["version","transports"],"properties":{"transports":{"type":"array","items":{"$ref":"#/components/schemas/BridgeParameters"}},"version":{"type":"string"}}},"BridgeParameters":{"oneOf":[{"type":"object","required":["args","transport_type"],"properties":{"args":{"$ref":"#/components/schemas/QuicClientOptions"},"transport_type":{"type":"string","enum":["quic_plain"]}}}]},"BuildInformation":{"type":"object","required":["build_version","commit_branch","commit_sha"],"properties":{"build_version":{"type":"string"},"commit_branch":{"type":"string"},"commit_sha":{"type":"string"}}},"CoinSchema":{"type":"object","title":"Coin","required":["denom","amount"],"properties":{"amount":{"type":"string"},"denom":{"type":"string"}}},"DVpnGateway":{"type":"object","required":["identity_key","name","location","ip_addresses","mix_port","role","performance","build_information"],"properties":{"authenticator":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/AuthenticatorDetailsV1"}]},"bridges":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/BridgeInformation"}]},"build_information":{"$ref":"#/components/schemas/BinaryBuildInformationOwned"},"description":{"type":["string","null"]},"entry":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/BasicEntryInformation"}]},"identity_key":{"type":"string"},"ip_addresses":{"type":"array","items":{"type":"string"}},"ip_packet_router":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/IpPacketRouterDetailsV1"}]},"last_probe":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/DvpnGwProbe"}]},"lewes_protocol_details":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/LewesProtocolDetailsV1"}]},"location":{"$ref":"#/components/schemas/Location"},"mix_port":{"type":"integer","format":"int32","minimum":0},"name":{"type":"string"},"performance":{"type":"string"},"performance_v2":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/DVpnGatewayPerformance"}]},"role":{"$ref":"#/components/schemas/NodeRole"}}},"DVpnGatewayPerformance":{"type":"object","required":["last_updated_utc","score","mixnet_score","load","uptime_percentage_last_24_hours"],"properties":{"last_updated_utc":{"type":"string"},"load":{"$ref":"#/components/schemas/ScoreValue"},"mixnet_score":{"$ref":"#/components/schemas/ScoreValue"},"score":{"$ref":"#/components/schemas/ScoreValue"},"uptime_percentage_last_24_hours":{"type":"number","format":"float"}}},"DailyStats":{"type":"object","required":["date_utc","total_packets_received","total_packets_sent","total_packets_dropped","total_stake"],"properties":{"date_utc":{"type":"string"},"total_packets_dropped":{"type":"integer","format":"int64"},"total_packets_received":{"type":"integer","format":"int64"},"total_packets_sent":{"type":"integer","format":"int64"},"total_stake":{"type":"integer","format":"int64"}}},"DeclaredRolesV1":{"type":"object","required":["mixnode","entry","exit_nr","exit_ipr"],"properties":{"entry":{"type":"boolean"},"exit_ipr":{"type":"boolean"},"exit_nr":{"type":"boolean"},"mixnode":{"type":"boolean"}}},"DescribedNodeTypeV1":{"type":"string","enum":["legacy_mixnode","legacy_gateway","nym_node"]},"DvpnGwProbe":{"type":"object","description":"gateway probe output returned on the API","required":["last_updated_utc","outcome"],"properties":{"last_updated_utc":{"type":"string"},"outcome":{"$ref":"#/components/schemas/DvpnProbeOutcome"}}},"DvpnProbeOutcome":{"type":"object","description":"this structure is parsed on VPN API so it has some fields which must not be changed","required":["as_entry"],"properties":{"as_entry":{"$ref":"#/components/schemas/Entry"},"as_exit":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/Exit"}]},"lp":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/LpProbeResults"}]},"socks5":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/Socks5"}]},"wg":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/WgProbeResults"}]}}},"Entry":{"oneOf":[{"$ref":"#/components/schemas/EntryTestResult"},{"type":"null","default":null},{"type":"null","default":null}]},"EntryTestResult":{"type":"object","required":["can_connect","can_route"],"properties":{"can_connect":{"type":"boolean"},"can_route":{"type":"boolean"}}},"Exit":{"type":"object","required":["can_connect","can_route_ip_v4","can_route_ip_external_v4","can_route_ip_v6","can_route_ip_external_v6"],"properties":{"can_connect":{"type":"boolean"},"can_route_ip_external_v4":{"type":"boolean"},"can_route_ip_external_v6":{"type":"boolean"},"can_route_ip_v4":{"type":"boolean"},"can_route_ip_v6":{"type":"boolean"}}},"ExtendedNymNode":{"type":"object","required":["node_id","identity_key","uptime","total_stake","original_pledge","bonded","node_type","ip_address","accepted_tnc","self_description","description"],"properties":{"accepted_tnc":{"type":"boolean"},"bonded":{"type":"boolean"},"bonding_address":{"type":["string","null"]},"description":{"$ref":"#/components/schemas/NodeDescription"},"geoip":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/NodeGeoData"}]},"identity_key":{"type":"string"},"ip_address":{"type":"string"},"node_id":{"$ref":"#/components/schemas/u32"},"node_type":{"$ref":"#/components/schemas/DescribedNodeTypeV1"},"original_pledge":{"type":"integer","minimum":0},"rewarding_details":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/NodeRewarding"}]},"self_description":{"$ref":"#/components/schemas/NymNodeDataV2"},"total_stake":{"type":"string"},"uptime":{"type":"number","format":"double"}}},"Gateway":{"type":"object","required":["gateway_identity_key","bonded","performance","description","last_updated_utc","routing_score","config_score"],"properties":{"bonded":{"type":"boolean"},"bridges":{},"config_score":{"type":"integer","format":"int32","minimum":0},"description":{"$ref":"#/components/schemas/NodeDescription"},"explorer_pretty_bond":{},"gateway_identity_key":{"type":"string"},"last_probe_log":{"type":["string","null"]},"last_probe_result":{},"last_testrun_utc":{"type":["string","null"]},"last_updated_utc":{"type":"string"},"performance":{"type":"integer","format":"int32","minimum":0},"routing_score":{"type":"number","format":"float"},"self_described":{}}},"GatewaySkinny":{"type":"object","required":["gateway_identity_key","last_updated_utc","routing_score","config_score","performance"],"properties":{"config_score":{"type":"integer","format":"int32","minimum":0},"explorer_pretty_bond":{},"gateway_identity_key":{"type":"string"},"last_probe_result":{},"last_testrun_utc":{"type":["string","null"]},"last_updated_utc":{"type":"string"},"performance":{"type":"integer","format":"int32","minimum":0},"routing_score":{"type":"number","format":"float"},"self_described":{}}},"GatewaySummary":{"type":"object","required":["bonded","historical"],"properties":{"bonded":{"$ref":"#/components/schemas/GatewaySummaryBonded"},"historical":{"$ref":"#/components/schemas/GatewaySummaryHistorical"}}},"GatewaySummaryBonded":{"type":"object","required":["count","entry","exit","last_updated_utc"],"properties":{"count":{"type":"integer","format":"int32"},"entry":{"type":"integer","format":"int32"},"exit":{"type":"integer","format":"int32"},"last_updated_utc":{"type":"string"}}},"GatewaySummaryHistorical":{"type":"object","required":["count","last_updated_utc"],"properties":{"count":{"type":"integer","format":"int32"},"last_updated_utc":{"type":"string"}}},"HealthInfo":{"type":"object","required":["uptime"],"properties":{"uptime":{"type":"integer","format":"int64"}}},"HostInformationV1":{"type":"object","required":["ip_address","keys"],"properties":{"hostname":{"type":["string","null"]},"ip_address":{"type":"array","items":{"type":"string"}},"keys":{"$ref":"#/components/schemas/HostKeysV1"}}},"HostKeysV1":{"type":"object","required":["ed25519","x25519","current_x25519_sphinx_key"],"properties":{"current_x25519_sphinx_key":{"$ref":"#/components/schemas/SphinxKeyV1"},"ed25519":{"type":"string"},"pre_announced_x25519_sphinx_key":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/SphinxKeyV1"}]},"x25519":{"type":"string","deprecated":true},"x25519_versioned_noise":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/VersionedNoiseKeyV1"}]}}},"HttpsConnectivityResult":{"type":"object","required":["https_success"],"properties":{"endpoint_used":{"type":["string","null"],"description":"among multiple endpoints available, list the one actually used"},"errors":{"type":["array","null"],"items":{"type":"string"},"description":"error message(s) (if any)"},"https_latency_ms":{"type":["integer","null"],"format":"int64","description":"average HTTPS request latency in milliseconds","minimum":0},"https_status_code":{"type":["integer","null"],"format":"int32","description":"HTTPS status code received","minimum":0},"https_success":{"type":"boolean","description":"successfully completed HTTPS request"}}},"IpPacketRouterDetailsV1":{"type":"object","required":["address"],"properties":{"address":{"type":"string","description":"address of the embedded ip packet router"}}},"LastProbeResult":{"type":"object","required":["node","used_entry","outcome"],"properties":{"node":{"type":"string"},"outcome":{"$ref":"#/components/schemas/ProbeOutcome"},"used_entry":{"type":"string"}}},"LewesProtocolDetailsDataV1":{"type":"object","required":["enabled","control_port","data_port","x25519","kem_keys"],"properties":{"control_port":{"type":"integer","format":"int32","description":"LP TCP control address (default: 41264) for establishing LP sessions","minimum":0},"data_port":{"type":"integer","format":"int32","description":"LP UDP data address (default: 51264) for Sphinx packets wrapped in LP","minimum":0},"enabled":{"type":"boolean","description":"Helper field that specifies whether the LP listener(s) is enabled on this node.\nIt is directly controlled by the node's role (i.e. it is enabled if it supports 'entry' mode)"},"kem_keys":{"type":"object","description":"Digests of the KEM keys available to this node alongside hashing algorithms used\nfor their computation.\nnote: digests are hex encoded","additionalProperties":{"type":"object","additionalProperties":{"type":"string"},"propertyNames":{"type":"string"}},"propertyNames":{"type":"string"}},"x25519":{"type":"string","description":"LP public key"}}},"LewesProtocolDetailsV1":{"type":"object","required":["content","signature"],"properties":{"content":{"$ref":"#/components/schemas/LewesProtocolDetailsDataV1"},"signature":{"type":"string"}}},"Location":{"type":"object","required":["two_letter_iso_country_code","latitude","longitude","city","region","org","postal","timezone"],"properties":{"asn":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/Asn"}]},"city":{"type":"string"},"latitude":{"type":"number","format":"double"},"longitude":{"type":"number","format":"double"},"org":{"type":"string"},"postal":{"type":"string"},"region":{"type":"string"},"timezone":{"type":"string"},"two_letter_iso_country_code":{"type":"string"}}},"LpProbeResults":{"type":"object","required":["can_connect","can_handshake","can_register"],"properties":{"can_connect":{"type":"boolean"},"can_handshake":{"type":"boolean"},"can_register":{"type":"boolean"},"error":{"type":["string","null"]}}},"MixingNodesSummary":{"type":"object","required":["count","self_described","last_updated_utc"],"properties":{"count":{"type":"integer","format":"int32"},"last_updated_utc":{"type":"string"},"self_described":{"type":"integer","format":"int32"}}},"Mixnode":{"type":"object","required":["mix_id","bonded","is_dp_delegatee","total_stake","description","last_updated_utc"],"properties":{"bonded":{"type":"boolean"},"description":{"$ref":"#/components/schemas/NodeDescription"},"full_details":{},"is_dp_delegatee":{"type":"boolean"},"last_updated_utc":{"type":"string"},"mix_id":{"type":"integer","format":"int32","minimum":0},"self_described":{},"total_stake":{"type":"integer","format":"int64"}}},"MixnodeSummary":{"type":"object","required":["bonded","historical"],"properties":{"bonded":{"$ref":"#/components/schemas/MixingNodesSummary"},"historical":{"$ref":"#/components/schemas/MixnodeSummaryHistorical"}}},"MixnodeSummaryHistorical":{"type":"object","required":["count","last_updated_utc"],"properties":{"count":{"type":"integer","format":"int32"},"last_updated_utc":{"type":"string"}}},"NetworkRequesterDetailsV1":{"type":"object","required":["address","uses_exit_policy"],"properties":{"address":{"type":"string","description":"address of the embedded network requester"},"uses_exit_policy":{"type":"boolean","description":"flag indicating whether this network requester uses the exit policy rather than the deprecated allow list"}}},"NetworkSummary":{"type":"object","required":["total_nodes","mixnodes","gateways"],"properties":{"gateways":{"$ref":"#/components/schemas/GatewaySummary"},"mixnodes":{"$ref":"#/components/schemas/MixnodeSummary"},"total_nodes":{"type":"integer","format":"int32"}}},"NodeCostParams":{"type":"object","description":"The cost parameters, or the cost function, defined for the particular mixnode that influences\nhow the rewards should be split between the node operator and its delegators.","required":["profit_margin_percent","interval_operating_cost"],"properties":{"interval_operating_cost":{"$ref":"#/components/schemas/CoinSchema","description":"Operating cost of the associated node per the entire interval."},"profit_margin_percent":{"type":"string","description":"The profit margin of the associated node, i.e. the desired percent of the reward to be distributed to the operator."}}},"NodeDelegation":{"type":"object","required":["amount","cumulative_reward_ratio","block_height","owner"],"properties":{"amount":{"$ref":"#/components/schemas/CoinSchema"},"block_height":{"type":"integer","format":"int64","minimum":0},"cumulative_reward_ratio":{"type":"string"},"owner":{"type":"string"},"proxy":{"type":["string","null"]}}},"NodeDescription":{"type":"object","required":["moniker","website","security_contact","details"],"properties":{"details":{"type":"string","description":"details define other optional details."},"moniker":{"type":"string","description":"moniker defines a human-readable name for the node."},"security_contact":{"type":"string","description":"security contact defines an optional email for security contact."},"website":{"type":"string","description":"website defines an optional website link."}}},"NodeGeoData":{"type":"object","required":["city","country","ip_address","latitude","longitude","org","postal","region","timezone"],"properties":{"city":{"type":"string"},"country":{"type":"string"},"ip_address":{"type":"string"},"latitude":{"type":"string"},"longitude":{"type":"string"},"org":{"type":"string"},"postal":{"type":"string"},"region":{"type":"string"},"timezone":{"type":"string"}}},"NodeRewarding":{"type":"object","required":["cost_params","operator","delegates","total_unit_reward","unit_delegation","last_rewarded_epoch","unique_delegations"],"properties":{"cost_params":{"$ref":"#/components/schemas/NodeCostParams","description":"Information provided by the operator that influence the cost function."},"delegates":{"type":"string","description":"Total delegation and compounded reward earned by all node delegators."},"last_rewarded_epoch":{"$ref":"#/components/schemas/u32","description":"Marks the epoch when this node was last rewarded so that we wouldn't accidentally attempt\nto reward it multiple times in the same epoch."},"operator":{"type":"string","description":"Total pledge and compounded reward earned by the node operator."},"total_unit_reward":{"type":"string","description":"Cumulative reward earned by the \"unit delegation\" since the block 0."},"unique_delegations":{"type":"integer","format":"int32","minimum":0},"unit_delegation":{"type":"string","description":"Value of the theoretical \"unit delegation\" that has delegated to this node at block 0."}}},"NodeRole":{"oneOf":[{"type":"object","required":["Mixnode"],"properties":{"Mixnode":{"type":"object","required":["layer"],"properties":{"layer":{"type":"integer","format":"int32","minimum":0}}}}},{"type":"string","enum":["EntryGateway"]},{"type":"string","enum":["ExitGateway"]},{"type":"string","enum":["Standby"]},{"type":"string","enum":["Inactive"]}]},"NymNodeDataV2":{"type":"object","required":["host_information","build_information","mixnet_websockets"],"properties":{"authenticator":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/AuthenticatorDetailsV1"}]},"auxiliary_details":{"$ref":"#/components/schemas/AuxiliaryDetailsV1"},"build_information":{"$ref":"#/components/schemas/BinaryBuildInformationOwned"},"declared_role":{"$ref":"#/components/schemas/DeclaredRolesV1"},"host_information":{"$ref":"#/components/schemas/HostInformationV1"},"ip_packet_router":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/IpPacketRouterDetailsV1"}]},"last_polled":{"$ref":"#/components/schemas/OffsetDateTimeJsonSchemaWrapper"},"lewes_protocol":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/LewesProtocolDetailsV1"}]},"mixnet_websockets":{"$ref":"#/components/schemas/WebSocketsV1"},"network_requester":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/NetworkRequesterDetailsV1"}]},"wireguard":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/WireguardDetailsV1"}]}}},"OffsetDateTimeJsonSchemaWrapper":{"type":"string","format":"date-time"},"PagedResult_ExtendedNymNode":{"type":"object","required":["page","size","total","items"],"properties":{"items":{"type":"array","items":{"type":"object","required":["node_id","identity_key","uptime","total_stake","original_pledge","bonded","node_type","ip_address","accepted_tnc","self_description","description"],"properties":{"accepted_tnc":{"type":"boolean"},"bonded":{"type":"boolean"},"bonding_address":{"type":["string","null"]},"description":{"$ref":"#/components/schemas/NodeDescription"},"geoip":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/NodeGeoData"}]},"identity_key":{"type":"string"},"ip_address":{"type":"string"},"node_id":{"$ref":"#/components/schemas/u32"},"node_type":{"$ref":"#/components/schemas/DescribedNodeTypeV1"},"original_pledge":{"type":"integer","minimum":0},"rewarding_details":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/NodeRewarding"}]},"self_description":{"$ref":"#/components/schemas/NymNodeDataV2"},"total_stake":{"type":"string"},"uptime":{"type":"number","format":"double"}}}},"page":{"type":"integer","minimum":0},"size":{"type":"integer","minimum":0},"total":{"type":"integer","minimum":0}}},"PagedResult_Gateway":{"type":"object","required":["page","size","total","items"],"properties":{"items":{"type":"array","items":{"type":"object","required":["gateway_identity_key","bonded","performance","description","last_updated_utc","routing_score","config_score"],"properties":{"bonded":{"type":"boolean"},"bridges":{},"config_score":{"type":"integer","format":"int32","minimum":0},"description":{"$ref":"#/components/schemas/NodeDescription"},"explorer_pretty_bond":{},"gateway_identity_key":{"type":"string"},"last_probe_log":{"type":["string","null"]},"last_probe_result":{},"last_testrun_utc":{"type":["string","null"]},"last_updated_utc":{"type":"string"},"performance":{"type":"integer","format":"int32","minimum":0},"routing_score":{"type":"number","format":"float"},"self_described":{}}}},"page":{"type":"integer","minimum":0},"size":{"type":"integer","minimum":0},"total":{"type":"integer","minimum":0}}},"PagedResult_GatewaySkinny":{"type":"object","required":["page","size","total","items"],"properties":{"items":{"type":"array","items":{"type":"object","required":["gateway_identity_key","last_updated_utc","routing_score","config_score","performance"],"properties":{"config_score":{"type":"integer","format":"int32","minimum":0},"explorer_pretty_bond":{},"gateway_identity_key":{"type":"string"},"last_probe_result":{},"last_testrun_utc":{"type":["string","null"]},"last_updated_utc":{"type":"string"},"performance":{"type":"integer","format":"int32","minimum":0},"routing_score":{"type":"number","format":"float"},"self_described":{}}}},"page":{"type":"integer","minimum":0},"size":{"type":"integer","minimum":0},"total":{"type":"integer","minimum":0}}},"PagedResult_Service":{"type":"object","required":["page","size","total","items"],"properties":{"items":{"type":"array","items":{"type":"object","required":["gateway_identity_key","last_updated_utc","routing_score"],"properties":{"gateway_identity_key":{"type":"string"},"hostname":{"type":["string","null"]},"ip_address":{"type":["string","null"]},"last_successful_ping_utc":{"type":["string","null"]},"last_updated_utc":{"type":"string"},"mixnet_websockets":{},"routing_score":{"type":"number","format":"float"},"service_provider_client_id":{"type":["string","null"]}}}},"page":{"type":"integer","minimum":0},"size":{"type":"integer","minimum":0},"total":{"type":"integer","minimum":0}}},"PagedResult_SessionStats":{"type":"object","required":["page","size","total","items"],"properties":{"items":{"type":"array","items":{"type":"object","required":["gateway_identity_key","node_id","day","unique_active_clients","session_started"],"properties":{"day":{"type":"string","format":"date"},"gateway_identity_key":{"type":"string"},"mixnet_sessions":{},"node_id":{"type":"integer","format":"int32","minimum":0},"session_started":{"type":"integer","format":"int64"},"unique_active_clients":{"type":"integer","format":"int64"},"unknown_sessions":{},"users_hashes":{},"vpn_sessions":{}}}},"page":{"type":"integer","minimum":0},"size":{"type":"integer","minimum":0},"total":{"type":"integer","minimum":0}}},"ProbeOutcome":{"type":"object","required":["as_entry"],"properties":{"as_entry":{"$ref":"#/components/schemas/Entry"},"as_exit":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/Exit"}]},"lp":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/LpProbeResults"}]},"socks5":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/Socks5ProbeResults"}]},"wg":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/WgProbeResults"}]}}},"QuicClientOptions":{"type":"object","required":["addresses","id_pubkey"],"properties":{"addresses":{"type":"array","items":{"type":"string"}},"host":{"type":["string","null"]},"id_pubkey":{"type":"string"}}},"ScoreValue":{"type":"string","enum":["offline","low","medium","high"]},"Service":{"type":"object","required":["gateway_identity_key","last_updated_utc","routing_score"],"properties":{"gateway_identity_key":{"type":"string"},"hostname":{"type":["string","null"]},"ip_address":{"type":["string","null"]},"last_successful_ping_utc":{"type":["string","null"]},"last_updated_utc":{"type":"string"},"mixnet_websockets":{},"routing_score":{"type":"number","format":"float"},"service_provider_client_id":{"type":["string","null"]}}},"SessionStats":{"type":"object","required":["gateway_identity_key","node_id","day","unique_active_clients","session_started"],"properties":{"day":{"type":"string","format":"date"},"gateway_identity_key":{"type":"string"},"mixnet_sessions":{},"node_id":{"type":"integer","format":"int32","minimum":0},"session_started":{"type":"integer","format":"int64"},"unique_active_clients":{"type":"integer","format":"int64"},"unknown_sessions":{},"users_hashes":{},"vpn_sessions":{}}},"Socks5":{"type":"object","required":["can_proxy_https","score"],"properties":{"can_proxy_https":{"type":"boolean"},"errors":{"type":["array","null"],"items":{"type":"string"}},"score":{"$ref":"#/components/schemas/ScoreValue"}}},"Socks5ProbeResults":{"type":"object","required":["can_connect_socks5","https_connectivity"],"properties":{"can_connect_socks5":{"type":"boolean","description":"whether we could establish a SOCKS5 proxy connection"},"https_connectivity":{"$ref":"#/components/schemas/HttpsConnectivityResult","description":"HTTPS connectivity test"}}},"SphinxKeyV1":{"type":"object","required":["rotation_id","public_key"],"properties":{"public_key":{"type":"string"},"rotation_id":{"type":"integer","format":"int32","minimum":0}}},"SummaryHistory":{"type":"object","required":["date","value_json","timestamp_utc"],"properties":{"date":{"type":"string"},"timestamp_utc":{"type":"string"},"value_json":{}}},"TestRun":{"type":"object","required":["id","identity_key","status","log"],"properties":{"id":{"type":"integer","format":"int32"},"identity_key":{"type":"string"},"log":{"type":"string"},"status":{"type":"string"}}},"VersionedNoiseKeyV1":{"type":"object","required":["supported_version","x25519_pubkey"],"properties":{"supported_version":{"type":"integer","format":"int32","minimum":0},"x25519_pubkey":{"type":"string"}}},"WebSocketsV1":{"type":"object","required":["ws_port"],"properties":{"ws_port":{"type":"integer","format":"int32","minimum":0},"wss_port":{"type":["integer","null"],"format":"int32","minimum":0}}},"WgProbeResults":{"type":"object","required":["can_register","can_handshake_v4","can_resolve_dns_v4","ping_hosts_performance_v4","ping_ips_performance_v4","can_handshake_v6","can_resolve_dns_v6","ping_hosts_performance_v6","ping_ips_performance_v6","download_duration_sec_v4","downloaded_file_v4","download_error_v4","download_duration_sec_v6","downloaded_file_v6","download_error_v6"],"properties":{"can_handshake":{"type":["boolean","null"]},"can_handshake_v4":{"type":"boolean"},"can_handshake_v6":{"type":"boolean"},"can_query_metadata_v4":{"type":["boolean","null"]},"can_register":{"type":"boolean"},"can_resolve_dns":{"type":["boolean","null"]},"can_resolve_dns_v4":{"type":"boolean"},"can_resolve_dns_v6":{"type":"boolean"},"download_duration_milliseconds_v4":{"type":["integer","null"],"format":"int64","minimum":0},"download_duration_milliseconds_v6":{"type":["integer","null"],"format":"int64","minimum":0},"download_duration_sec_v4":{"type":"integer","format":"int64","minimum":0},"download_duration_sec_v6":{"type":"integer","format":"int64","minimum":0},"download_error_v4":{"type":"string"},"download_error_v6":{"type":"string"},"downloaded_file_size_bytes_v4":{"type":["integer","null"],"format":"int64","minimum":0},"downloaded_file_size_bytes_v6":{"type":["integer","null"],"format":"int64","minimum":0},"downloaded_file_v4":{"type":"string"},"downloaded_file_v6":{"type":"string"},"ping_hosts_performance":{"type":["number","null"],"format":"float"},"ping_hosts_performance_v4":{"type":"number","format":"float"},"ping_hosts_performance_v6":{"type":"number","format":"float"},"ping_ips_performance":{"type":["number","null"],"format":"float"},"ping_ips_performance_v4":{"type":"number","format":"float"},"ping_ips_performance_v6":{"type":"number","format":"float"}}},"WireguardDetailsV1":{"type":"object","required":["port","public_key"],"properties":{"metadata_port":{"type":"integer","format":"int32","minimum":0},"port":{"type":"integer","format":"int32","minimum":0},"public_key":{"type":"string"},"tunnel_port":{"type":"integer","format":"int32","minimum":0}}},"u32":{"type":"integer","format":"int32","minimum":0}}},"tags":[]}