Operator/Equipment

APIs for managing Network Operator Settings and Venue equipment.

List Pending Gateway VLAN Disables

post

Returns a list of VLAN disables commands that are pending action for gateway equipment. This endpoint is used by staff or administrators to review VLANs that have not yet been disabled on supported gateways. No values are updated by this endpoint; it is a read-only operation.

Body
AccessTokenstringRequired

The access token for the network operator admin session.

Responses
200
List of pending VLAN disables returned successfully.
application/json
post
POST /preview/networkoperatorconsole/equipment/gateway/listPendingGatewayVLANDisable HTTP/1.1
Host: api.wifikey.io
Content-Type: application/json
Accept: */*
Content-Length: 54

{
  "AccessToken": "{{NetworkOperatorAdmin-AccessToken}}"
}
200

List of pending VLAN disables returned successfully.

{
  "message": "",
  "Subscriptions": [
    {
      "VenueID": "USA.VA.22102.CustomerANAGEDPROPERTIES.City._V3VENUE.USA.TX.75001.Site.ADDISON",
      "UnitID_internal": "USA.VA.22102.CustomerANAGEDPROPERTIES.City._V3VENUE.USA.TX.75001.SITE.ADDISON.264.2.1",
      "vlan": 1513,
      "SubscriberEmail": "[email protected]",
      "StartDateTimeUTC.ISO8601": "2025-06-20T14:18:46.469Z",
      "Status": "VLAN enabled."
    },
    {
      "VenueID": "USA.VA.22102.CustomerANAGEDPROPERTIES.City._V3VENUE.USA.FL.33602.WATERS727.TAMPA",
      "UnitID_internal": "USA.VA.22102.CustomerANAGEDPROPERTIES.City._V3VENUE.USA.FL.33602.WATERS727.TAMPA.ASHER818.1.8",
      "vlan": 1097,
      "SubscriberEmail": "[email protected]",
      "StartDateTimeUTC.ISO8601": "2025-06-20T13:21:02.134Z",
      "EndDateTimeUTC.ISO8601": "2026-07-21T03:59:59.999Z",
      "Status": "VLAN enabled."
    }
  ],
  "SubscriptionCount": 2,
  "errorProcessing": false
}

List Pending Gateway VLAN Enables

post

Returns a list of VLAN Enable commands that are pending action for gateway equipment. This endpoint is used by staff or administrators to review VLANs that have not yet been enabled on supported gateways. No values are updated by this endpoint; it is a read-only operation.

Body
AccessTokenstringRequired

The access token for the network operator admin session.

Responses
200
List of pending VLAN enables returned successfully.
application/json
post
POST /preview/networkoperatorconsole/equipment/gateway/listPendingGatewayVLANEnable HTTP/1.1
Host: api.wifikey.io
Content-Type: application/json
Accept: */*
Content-Length: 54

{
  "AccessToken": "{{NetworkOperatorAdmin-AccessToken}}"
}
200

List of pending VLAN enables returned successfully.

{
  "message": "",
  "Subscriptions": [
    {
      "VenueID": "USA.VA.22102.CustomerANAGEDPROPERTIES.City._V3VENUE.USA.TX.75001.Site.ADDISON",
      "UnitID_internal": "USA.VA.22102.CustomerANAGEDPROPERTIES.City._V3VENUE.USA.TX.75001.Site.ADDISON.264.2.1",
      "vlan": 1513,
      "SubscriberEmail": "[email protected]",
      "StartDateTimeUTC.ISO8601": "2025-06-20T14:18:46.469Z",
      "Status": "VLAN not enabled."
    },
    {
      "VenueID": "USA.VA.22102.CustomerANAGEDPROPERTIES.City._V3VENUE.USA.FL.33602.WATERS727.TAMPA",
      "UnitID_internal": "USA.VA.22102.CustomerANAGEDPROPERTIES.City._V3VENUE.USA.FL.33602.WATERS727.TAMPA.ASHER818.1.8",
      "vlan": 1097,
      "SubscriberEmail": "[email protected]",
      "StartDateTimeUTC.ISO8601": "2025-06-20T13:21:02.134Z",
      "EndDateTimeUTC.ISO8601": "2026-07-21T03:59:59.999Z",
      "Status": "VLAN not enabled."
    }
  ],
  "SubscriptionCount": 2,
  "errorProcessing": false
}

List Service Plans

post

Returns a list of all available service plans for the network operator. This endpoint is used by staff or administrators to review service plans and their details. No values are updated by this endpoint; it is a read-only operation.

Body
AccessTokenstringRequired

The access token for the network operator admin session.

Responses
200
List of service plans returned successfully.
application/json
post
POST /preview/networkoperatorconsole/equipment/listServicePlans HTTP/1.1
Host: api.wifikey.io
Content-Type: application/json
Accept: */*
Content-Length: 54

{
  "AccessToken": "{{NetworkOperatorAdmin-AccessToken}}"
}
200

List of service plans returned successfully.

[
  {
    "ServicePlanID": "USA.MA.12345.ROAMINIQDEMO.SAMPLETOWN3._V3SERVICEPLAN_.1GBPS",
    "ServicePlanName": "1 Gbps (Retail)",
    "DownloadKbps": 1000000,
    "UploadKbps": 1000000,
    "ConcurrentDevices": 100,
    "GloballyAvailablePlan": false,
    "AllowSelfSignup": true,
    "ServicePlanDescription": "1Gbps billed monthly",
    "externalServicePlanID": "",
    "FCCLabel": {
      "PlanID": "FABCDE1234567898",
      "TypicalUploadKbps": 1000000,
      "TypicalDownloadKbps": 1000000,
      "PrivacyPolicyURL": "https://www.testprivacypol.com",
      "NetworkMgmtPolicyURL": "https://www.testnetworkmgtpol.com",
      "DataPolicyURL": "https://www.testdatapol.com",
      "BundleDiscountURL": "https://www.testbundledisc.com",
      "SupportURL": "http://www.test.com/customerservice"
    },
    "SMSCode": "",
    "ServicePlanImageURL": "https://example.com/sample-images/serviceplan-sample.png",
    "TrialCycles": 0,
    "BillingCycleHours": 730.5,
    "Currencies": [
      "USD",
      "GBP"
    ],
    "BillingCyclePrice.USD": 1600,
    "BillingCyclePrice.GBP": 0,
    "MaximumTrialCyclesPerSubscriberPerVenue": 0,
    "MaximumFreeEnrollmentsPerSubscriberPerVenue": 0,
    "SessionTimeoutSecondsPerDevice": 3600
  },
  {
    "ServicePlanID": "USA.MA.12345.ROAMINIQDEMO.SAMPLETOWN3._V3SERVICEPLAN_.1GBPSBULK",
    "ServicePlanName": "1 Gbps (Bulk)",
    "DownloadKbps": 1000000,
    "UploadKbps": 1000000,
    "ConcurrentDevices": 100,
    "GloballyAvailablePlan": true,
    "AllowSelfSignup": true,
    "ServicePlanDescription": "1 Gbps (Bulk)",
    "externalServicePlanID": "",
    "FCCLabel": {
      "PlanID": "",
      "TypicalUploadKbps": 1000000,
      "TypicalDownloadKbps": 1000000,
      "PrivacyPolicyURL": "",
      "NetworkMgmtPolicyURL": "",
      "DataPolicyURL": "",
      "BundleDiscountURL": "",
      "SupportURL": ""
    },
    "SMSCode": "",
    "ServicePlanImageURL": "https://domain/moreURLroamingiq/speed3.png",
    "TrialCycles": 0,
    "BillingCycleHours": 730.5,
    "Currencies": [
      "USD",
      "GBP"
    ],
    "BillingCyclePrice.USD": 0,
    "BillingCyclePrice.GBP": 0,
    "MaximumTrialCyclesPerSubscriberPerVenue": 0,
    "MaximumFreeEnrollmentsPerSubscriberPerVenue": 0,
    "SessionTimeoutSecondsPerDevice": 3600
  }
]

Add Service Plan

post

Adds a new service plan for the network operator. This endpoint is used by staff or administrators to create a new service plan. Only allowed fields are accepted; some fields are required, others are optional. Returns the new ServicePlanID on success.

Body
AccessTokenstringRequired

The access token for the network operator admin session.

ServicePlanNamestringRequired

Name of the service plan.

DownloadKbpsintegerRequired

Download speed in Kbps.

UploadKbpsintegerRequired

Upload speed in Kbps.

ConcurrentDevicesintegerRequired

Number of concurrent devices allowed.

GloballyAvailablePlanbooleanRequired

Whether the plan is globally available.

ServicePlanDescriptionstringRequired

Description of the service plan.

externalServicePlanIDstringOptional

External service plan identifier (if any).

FCCLabelobjectOptional

FCC label information (optional).

SMSCodestringOptional

SMS code for the plan (if any).

ServicePlanImageURLstringOptional

Image URL for the service plan.

TrialCyclesintegerRequired

Number of trial cycles allowed.

BillingCycleHoursnumberRequired

Number of hours in the billing cycle.

Currenciesstring[]Optional

Supported currencies for the plan.

BillingCyclePrice.USDnumberOptional

Billing cycle price in USD.

BillingCyclePrice.GBPnumberOptional

Billing cycle price in GBP.

MaximumTrialCyclesPerSubscriberPerVenueintegerOptional

Maximum trial cycles per subscriber per venue.

MaximumFreeEnrollmentsPerSubscriberPerVenueintegerOptional

Maximum free enrollments per subscriber per venue.

SessionTimeoutSecondsPerDeviceintegerRequired

Session timeout in seconds per device.

Responses
200
Service plan added successfully.
application/json
post
POST /preview/networkoperatorconsole/equipment/addServicePlan HTTP/1.1
Host: api.wifikey.io
Content-Type: application/json
Accept: */*
Content-Length: 425

{
  "AccessToken": "{{NetworkOperatorAdmin-AccessToken}}",
  "ServicePlanName": "Test Plan",
  "DownloadKbps": 100000,
  "UploadKbps": 100000,
  "ConcurrentDevices": 100,
  "GloballyAvailablePlan": false,
  "ServicePlanDescription": "This is a test Pllan",
  "externalServicePlanID": "ID",
  "FCCLabel": {},
  "TrialCycles": 0,
  "BillingCycleHours": 730.5,
  "BillingCyclePrice.USD": 0,
  "MaximumFreeEnrollmentsPerSubscriberPerVenue": 0,
  "SessionTimeoutSecondsPerDevice": 3600
}
200

Service plan added successfully.

{
  "message": "Plan added: USA.MA.12345.ROAMINIQDEMO.SAMPLETOWN3._V3SERVICEPLAN_.TESTPLAN - 100000 UP / 100000 DOWN - 100 concurrent devices per subscriber. ",
  "ServicePlanID": "USA.MA.12345.ROAMINIQDEMO.SAMPLETOWN3._V3SERVICEPLAN_.TESTPLAN",
  "errorProcessing": false
}

Configure Service Plan

post

Updates an existing service plan for the network operator. This endpoint is used by staff or administrators to update allowed fields of a service plan. Only allowed fields are accepted; some fields are required, others are optional. Returns a status message on success.

Body
AccessTokenstringRequired

The access token for the network operator admin session.

ServicePlanIDstringRequired

The unique identifier for the service plan to update.

ServicePlanNamestringOptional

Name of the service plan.

DownloadKbpsintegerOptional

Download speed in Kbps.

UploadKbpsintegerOptional

Upload speed in Kbps.

ConcurrentDevicesintegerOptional

Number of concurrent devices allowed.

GloballyAvailablePlanbooleanOptional

Whether the plan is globally available.

ServicePlanDescriptionstringOptional

Description of the service plan.

externalServicePlanIDstringOptional

External service plan identifier (if any).

FCCLabelobjectOptional

FCC label information (optional).

SMSCodestringOptional

SMS code for the plan (if any).

ServicePlanImageURLstringOptional

Image URL for the service plan.

TrialCyclesintegerOptional

Number of trial cycles allowed.

BillingCycleHoursnumberOptional

Number of hours in the billing cycle.

Currenciesstring[]Optional

Supported currencies for the plan.

BillingCyclePrice.USDnumberOptional

Billing cycle price in USD.

BillingCyclePrice.GBPnumberOptional

Billing cycle price in GBP.

MaximumTrialCyclesPerSubscriberPerVenueintegerOptional

Maximum trial cycles per subscriber per venue.

MaximumFreeEnrollmentsPerSubscriberPerVenueintegerOptional

Maximum free enrollments per subscriber per venue.

SessionTimeoutSecondsPerDeviceintegerOptional

Session timeout in seconds per device.

Responses
200
Service plan updated successfully.
application/json
post
POST /preview/networkoperatorconsole/equipment/configureServicePlan HTTP/1.1
Host: api.wifikey.io
Content-Type: application/json
Accept: */*
Content-Length: 516

{
  "AccessToken": "{{NetworkOperatorAdmin-AccessToken}}",
  "ServicePlanID": "USA.MA.12345.ROAMINIQDEMO.SAMPLETOWN3._V3SERVICEPLAN_.TESTPLAN",
  "ServicePlanName": "Test Plan",
  "DownloadKbps": 250000,
  "UploadKbps": 250000,
  "ConcurrentDevices": 100,
  "GloballyAvailablePlan": false,
  "ServicePlanDescription": "This is a test Pllan -  billed monthly",
  "externalServicePlanID": "IDchange",
  "TrialCycles": 0,
  "BillingCycleHours": 730.5,
  "BillingCyclePrice.USD": 0,
  "MaximumFreeEnrollmentsPerSubscriberPerVenue": 0,
  "SessionTimeoutSecondsPerDevice": 3600
}
200

Service plan updated successfully.

{
  "message": "Updated externalServicePlanID  = IDchange. Updating UploadKbps to 250000. Updating DownloadKbps to 250000. Updating BillingCyclePrice.USD to 0. ",
  "errorProcessing": false
}

List Operator Details

post

Returns the full configuration and details for the current network operator, including branding, roles, service plans, notification settings, network configuration, and more. This endpoint is read-only: no values are updated by this endpoint. Use this to review all operator-level settings and configuration objects.

Body
AccessTokenstringRequired

The access token for the network operator admin session.

Responses
200
Operator details returned successfully.
application/json
post
POST /preview/networkoperatorconsole/equipment/listOperatorDetails HTTP/1.1
Host: api.wifikey.io
Content-Type: application/json
Accept: */*
Content-Length: 54

{
  "AccessToken": "{{NetworkOperatorAdmin-AccessToken}}"
}
200

Operator details returned successfully.

{
  "OperatorID": "ANON_OPERATOR_ID",
  "NetworkOperatorName": "Anon Operator",
  "OperatorName": "Anon Operator",
  "Domain": "anon-operator.example.com",
  "EmailDomain": "anon.example.com",
  "DomainAlias": "*.anon.example.com",
  "AddressLine1": "123 Anon St",
  "AddressLine2": "Suite 100",
  "City": "Anontown",
  "State": "AN",
  "PostalCode": "00000",
  "Country": "ANON",
  "Country.ISO3166A3": "ANON",
  "PhoneNumber": "",
  "EmailAddress": "[email protected]",
  "DomainAdministrators": [
    "[email protected]"
  ],
  "SIEMAdministrators": [],
  "AccountManagers": [
    "[email protected]"
  ],
  "CustomerSupport": [
    "[email protected]"
  ],
  "LogoPNG": "https://example.com/anon-logo.png",
  "LogoPNG.URL": "https://example.com/anon-logo.png",
  "Roles": {
    "DomainAdministrators": [
      "[email protected]"
    ],
    "SIEMAdministrators": [],
    "AccountManagers": [
      "[email protected]"
    ],
    "CustomerSupport": [
      "[email protected]"
    ]
  },
  "WebhookURL": "https://webhook.example.com/anon",
  "SignOn": {
    "Cognito": {
      "CognitoPool": "us-east-numbers",
      "CognitoPool_Domain": "",
      "CognitoPool_appclientid": "idgoeshere",
      "CognitoPool_appclientsecret": "idgoeshere",
      "CognitoPool_IdentityProviders": {
        "SAML": {
          "okta": "",
          "office365": ""
        }
      }
    }
  },
  "PMS": {
    "RealPage": {
      "RealPageURL": "urlhere",
      "RealPageAPIKey": "keyhere",
      "enableRealPageSync": false
    }
  },
  "ServicePlanConfiguration": {
    "DefaultServicePlanID_GlobalWirelessPlusLocalWiredAccess": "USA.MA.12345.ROAMINIQDEMO.SAMPLETOWN3._V3SERVICEPLAN_.1GBPSBULK",
    "DefaultServicePlanID_LocalWirelessAccess": "USA.MA.12345.ROAMINIQDEMO.SAMPLETOWN3._V3SERVICEPLAN_.100MBPS"
  },
  "NetworkConfiguration": {
    "MinimumAutoGeneratedVLAN_GlobalWirelessPlusLocalWiredAccess": 1,
    "MaximumAutoGeneratedVLAN_GlobalWirelessPlusLocalWiredAccess": 4095,
    "MinimumAutoGeneratedVLAN_LocalWirelessAccess": 1,
    "MaximumAutoGeneratedVLAN_LocalWirelessAccess": 4095,
    "MinimumAutoGeneratedVLAN_GlobalWirelessRoaming": 1,
    "MaximumAutoGeneratedVLAN_GlobalWirelessRoaming": 4095,
    "CustomPSK": true,
    "allowOverlappingSubscriptionWiredUnit": false,
    "SourceIPRangeWhiteList": [
      "203.0.113.42/0"
    ],
    "Radius": {
      "RadiusServerIP": "",
      "AuthenticationPort": "",
      "AccountingPort": "",
      "RadiusSecret": "secrethere"
    },
    "DefaultVenueConfiguration": {
      "DefaultServicePlanID_GlobalWirelessPlusLocalWiredAccess": "USA.MA.12345.ROAMINIQDEMO.SAMPLETOWN3._V3SERVICEPLAN_.1GBPSBULK",
      "DefaultServicePlanID_LocalWirelessAccess": "USA.MA.12345.ROAMINIQDEMO.SAMPLETOWN3._V3SERVICEPLAN_.100MBPS"
    },
    "GlobalSSID": [
      "VAULT",
      "RoamingIQ Demo"
    ],
    "RoamingSSID": []
  },
  "Notifications": {
    "WelcomeEmail_countdown_hours": 0,
    "sendSubscriptionAddedEmail": true,
    "sendSubscriptionEndEmail": true,
    "supressSubscriberNotifications": false,
    "Pinpoint": {
      "PinpointID": "05ee060001824faa9e5aa0ed879b1fcc"
    },
    "SES": {
      "EmailFrom": "[email protected]",
      "DomainAliasMailboxVerified": true
    },
    "SNS": {
      "SMSConsolePhoneNumber": "+10000000009"
    }
  },
  "Reporting": {
    "ReportingSubscriptionEnd_lookahead_hours": 720,
    "ReportingSubscriptionEnd_frequency_hours": 720
  },
  "ShoppingCart": {
    "enableShoppingCart": true,
    "ShoppingCartShortURL": "",
    "Stripe": {
      "StripePublishableKey": "pk_test_SAMPLEPUBLISHABLEKEY123456789012345678901234567890123456789012345678901234567890",
      "StripeWebHookURL": "www.url.com",
      "Stripe_Webhook_signingsecret": "whsec_SAMPLEWEBHOOKSIGNINGSECRET1234567890",
      "Stripe_allowrefund": true
    },
    "MaximumTrialCyclesPerSubscriber": -1,
    "MaximumFreeEnrollmentsPerSubscriber": -1
  },
  "TandC": {
    "en-us": "HTML HERE",
    "es-xl": "HTML HERE "
  },
  "DisplayOptionID": "USA.MA.12345.ROAMINIQDEMO.SAMPLETOWN3._V3DISPLAY_.default",
  "DisplayConfiguration": {
    "type": "object",
    "properties": {
      "ThemeLight": {
        "type": "object",
        "additionalProperties": {
          "type": "string"
        }
      },
      "ThemeDark": {
        "type": "object",
        "additionalProperties": {
          "type": "string"
        }
      },
      "MetaData": {
        "type": "object",
        "additionalProperties": {
          "type": "string"
        }
      },
      "Behavior": {
        "type": "object",
        "additionalProperties": {
          "type": "string"
        }
      },
      "ShoppingCart": {
        "type": "object",
        "additionalProperties": {
          "type": "boolean"
        }
      },
      "Support": {
        "type": "object",
        "additionalProperties": {
          "type": "string"
        }
      }
    }
  },
  "PMG": {
    "type": "object",
    "properties": null,
    "PropertyManagementGroupID": "USA.SAMPLE.12345.SAMPLEPROPERTY.SAMPLECITY",
    "PropertyManagementGroupName": "RoamingIQ Demo Managed Properties",
    "ServicePlans": [
      {
        "ServicePlanID": "USA.MA.12345.ROAMINIQDEMO.SAMPLETOWN3._V3SERVICEPLAN_.1GBPS",
        "ServicePlanName": "1 Gbps (Retail)",
        "DownloadKbps": 1000000,
        "UploadKbps": 1000000,
        "ConcurrentDevices": 100,
        "GloballyAvailablePlan": false,
        "AllowSelfSignup": true,
        "ServicePlanDescription": "1Gbps billed monthly",
        "externalServicePlanID": "",
        "FCCLabel": {
          "PlanID": "FABCDE1234567898",
          "TypicalUploadKbps": 1000000,
          "TypicalDownloadKbps": 1000000,
          "PrivacyPolicyURL": "https://www.testprivacypol.com",
          "NetworkMgmtPolicyURL": "https://www.testnetworkmgtpol.com",
          "DataPolicyURL": "https://www.testdatapol.com",
          "BundleDiscountURL": "https://www.testbundledisc.com",
          "SupportURL": "http://www.test.com/customerservice"
        },
        "SMSCode": "",
        "ServicePlanImageURL": "https://example.com/sample-images/serviceplan-sample.png",
        "TrialCycles": 0,
        "BillingCycleHours": 730.5,
        "Currencies": [
          "USD",
          "GBP"
        ],
        "BillingCyclePrice.USD": 1600,
        "BillingCyclePrice.GBP": 0,
        "MaximumTrialCyclesPerSubscriberPerVenue": 0,
        "MaximumFreeEnrollmentsPerSubscriberPerVenue": 0,
        "SessionTimeoutSecondsPerDevice": 3600
      },
      {
        "ServicePlanID": "USA.MA.12345.ROAMINIQDEMO.SAMPLETOWN3._V3SERVICEPLAN_.1GBPSBULK",
        "ServicePlanName": "1 Gbps (Bulk)",
        "DownloadKbps": 1000000,
        "UploadKbps": 1000000,
        "ConcurrentDevices": 100,
        "GloballyAvailablePlan": true,
        "AllowSelfSignup": true,
        "ServicePlanDescription": "1 Gbps (Bulk)",
        "externalServicePlanID": "",
        "FCCLabel": {
          "PlanID": "",
          "TypicalUploadKbps": 1000000,
          "TypicalDownloadKbps": 1000000,
          "PrivacyPolicyURL": "",
          "NetworkMgmtPolicyURL": "",
          "DataPolicyURL": "",
          "BundleDiscountURL": "",
          "SupportURL": ""
        },
        "SMSCode": "",
        "ServicePlanImageURL": "https://domain/moreURLroamingiq/speed3.png",
        "TrialCycles": 0,
        "BillingCycleHours": 730.5,
        "Currencies": [
          "USD",
          "GBP"
        ],
        "BillingCyclePrice.USD": 0,
        "BillingCyclePrice.GBP": 0,
        "MaximumTrialCyclesPerSubscriberPerVenue": 0,
        "MaximumFreeEnrollmentsPerSubscriberPerVenue": 0,
        "SessionTimeoutSecondsPerDevice": 3600
      }
    ]
  },
  "Certificates": [
    {
      "Domain": "anon-operator1.example.com",
      "Name": "_anoncert1.anon-operator1.example.com.",
      "ValidationStatus": "SUCCESS"
    },
    {
      "Domain": "*.anon.example.com",
      "Name": "_anoncert2.anon.example.com.",
      "ValidationStatus": "SUCCESS"
    }
  ],
  "SupportedLocales": {
    "en-us": "English (US)",
    "es-xl": "Spanish (Latin America)"
  },
  "APIEndPoint": "https://api.wifikey.io/preview",
  "APIDoc": {
    "OperatorConsole": "https://documenter.getpostman.com/view/10711528/2sA2r9UNPo",
    "NetworkOperatorConsole": "https://documenter.getpostman.com/view/10711528/2sA35HXgLx",
    "SubscriberConsole": "https://documenter.getpostman.com/view/10711528/UVsEX9pk",
    "VenueManagementConsole": "https://documenter.getpostman.com/view/10711528/UVsEX9kT"
  },
  "errorProcessing": false
}

List Email Templates

post

Returns the current set of email templates and configuration for the network operator, including all supported locales and template types (WelcomeEmail, SubscriberEvents, etc). This endpoint is read-only: no values are updated by this endpoint. Use this to review all operator-level email template settings and dynamic variables available for customization.

Body
AccessTokenstringRequired

The access token for the network operator admin session.

Responses
200
Email templates and configuration returned successfully.
application/json
post
POST /preview/networkoperatorconsole/equipment/listEmailTemplates HTTP/1.1
Host: api.wifikey.io
Content-Type: application/json
Accept: */*
Content-Length: 54

{
  "AccessToken": "{{NetworkOperatorAdmin-AccessToken}}"
}
200

Email templates and configuration returned successfully.

{
  "OperatorID": "ANON_OPERATOR_ID",
  "NetworkOperatorName": "Anon Operator",
  "OperatorName": "Anon Operator",
  "Domain": "anon-operator.example.com",
  "EmailDomain": "anon.example.com",
  "DomainAlias": "*.anon.example.com",
  "AddressLine1": "123 Anon St",
  "AddressLine2": "Suite 100",
  "City": "Anontown",
  "State": "AN",
  "PostalCode": "00000",
  "Country": "ANON",
  "Country.ISO3166A3": "ANON",
  "PhoneNumber": "",
  "EmailAddress": "[email protected]",
  "LogoPNG": "https://example.com/anon-logo.png",
  "LogoPNG.URL": "https://example.com/anon-logo.png",
  "Notifications": {
    "WelcomeEmail_countdown_hours": 0,
    "sendSubscriptionAddedEmail": true,
    "sendSubscriptionEndEmail": true,
    "supressSubscriberNotifications": false,
    "SES": null,
    "EmailFrom": "[email protected]",
    "EmailFromARN": "arn:aws:ses:us-east-1:000000000000:identity/[email protected]",
    "supressSubscriberEmails": false,
    "DomainAliasDkimStatus": "SUCCESS",
    "DkimLastKeyGenerationTimestamp": "2024-01-01T00:00:00.000Z",
    "DkimAttributes": [
      "abc123._domainkey.anon.example.com CNAME abc123.dkim.amazonses.com",
      "def456._domainkey.anon.example.com CNAME def456.dkim.amazonses.com",
      "ghi789._domainkey.anon.example.com CNAME ghi789.dkim.amazonses.com"
    ],
    "DomainAliasMailboxVerified": true,
    "TandC": null,
    "en-us": "<h1>...terms omitted for brevity...</h1>",
    "es-xl": "Revise y acepte los términos de uso para habilitar su acceso a Wi-Fi. "
  },
  "EmailConfiguration": {
    "brandcolor": "#000000",
    "en-us": {
      "WelcomeEmail": {
        "NewSubscriber": {
          "Subject": "Welcome to {venuename} {operatorname} WiFi service"
        }
      }
    },
    "es-xl": {
      "WelcomeEmail": {
        "NewSubscriber": {
          "Subject": "!Bienvenido al servicio Wi-Fi de {venuename} {operatorname}"
        }
      }
    }
  },
  "SupportedLocales": {
    "en-us": "English (US)",
    "es-xl": "Spanish (Latin America)"
  },
  "DynamicVariables": "{operatorname}, {operatoraddress}, ...",
  "errorProcessing": false
}

List Operator Log

post

Returns a list of recent operator-level log entries for the network operator, including equipment configuration, staff actions, and other administrative events. This endpoint is read-only: no values are updated by this endpoint. Use this to review operator and equipment-related activity logs. Supports filtering by date window.

Body
AccessTokenstringRequired

The access token for the network operator admin session.

MinViewWindowDateUTC.ISO8601string · date-timeOptional

Optional. The earliest log entry date/time to include (UTC, ISO8601). Defaults to 15 days before MaxViewWindowDateUTC.ISO8601 if not provided.

MaxViewWindowDateUTC.ISO8601string · date-timeOptional

Optional. The latest log entry date/time to include (UTC, ISO8601). Defaults to now if not provided.

Responses
200
Operator log entries returned successfully.
application/json
post
POST /preview/networkoperatorconsole/equipment/listOperatorLog HTTP/1.1
Host: api.wifikey.io
Content-Type: application/json
Accept: */*
Content-Length: 54

{
  "AccessToken": "{{NetworkOperatorAdmin-AccessToken}}"
}
200

Operator log entries returned successfully.

{
  "message": "",
  "log": [
    {
      "dateAddedUTC.ISO8601": "2025-06-20T15:31:08.938Z",
      "function_name": "vault_networkoperator_equipmentConfigurator",
      "event": {
        "Command": "modify",
        "PORT": 1,
        "ChangeAuthStatus": "FAIL",
        "ERROR": "Error setting Hotspot State.",
        "statusCode": 401,
        "Request": "Enable port ..."
      },
      "SourceIP": "",
      "UnitID_internal": "",
      "VenueID": "USA.SAMPLE.12345.SAMPLEPROPERTY.SAMPLECITY._V3VENUE.USA.MA.12345.ROAMINGIQ.SAMPLETOWN3"
    },
    {
      "dateAddedUTC.ISO8601": "2025-06-20T14:45:05.830Z",
      "function_name": "/equipment/configureServicePlan",
      "event": {
        "message": "Updated externalServicePlanID  = IDchange. Updating UploadKbps to 250000. Updating DownloadKbps to 250000. Updating BillingCyclePrice.USD to 0. "
      },
      "Administrator": "Admin User ([email protected])",
      "SourceIP": "203.0.113.42",
      "SourceLocale": "en-us",
      "UnitID_internal": "",
      "VenueID": ""
    }
  ],
  "log_count": 32,
  "log_returned": 32,
  "errorProcessing": false
}

Configure Terms and Conditions (TandC)

post

Updates the Terms and Conditions (TandC) text for the network operator for a specific locale. Only users with sufficient administrative privileges can update the TandC. The locale must be one of the supported values (typically 'en-us' or 'es-xl').

The TandC text is validated to prevent script injection. This endpoint updates only the TandC for the specified locale; all other values are read-only or ignored.

Body
AccessTokenstringRequired

The access token for the network operator admin session.

localestringRequired

The locale for which to update the TandC (e.g., 'en-us', 'es-xl').

TandCstringRequired

The Terms and Conditions text to set for the specified locale.

Responses
200
TandC updated successfully for the specified locale.
application/json
post
POST /preview/networkoperatorconsole/equipment/configureTandC HTTP/1.1
Host: api.wifikey.io
Content-Type: application/json
Accept: */*
Content-Length: 153

{
  "AccessToken": "{{NetworkOperatorAdmin-AccessToken}}",
  "locale": "en-us",
  "TandC": "Please review and accept the terms of use to enable your Wi-Fi access. "
}
200

TandC updated successfully for the specified locale.

{
  "message": "",
  "TandC.en-us": "Please review and accept the terms of use to enable your Wi-Fi access. ",
  "errorProcessing": false
}

List Equipment Log

post

Returns equipment details and a list of log entries for the specified EquipmentID. This endpoint is read-only: no values are updated by this endpoint. Use this to review equipment status, configuration, and recent log events for a given piece of equipment.

Body
AccessTokenstringRequired

The access token for the network operator admin session.

EquipmentIDstringRequired

The unique identifier for the equipment whose log is being requested.

Responses
200
Equipment details and log entries returned successfully.
application/json
post
POST /preview/networkoperatorconsole/equipment/listEquipmentLog HTTP/1.1
Host: api.wifikey.io
Content-Type: application/json
Accept: */*
Content-Length: 153

{
  "AccessToken": "<AccessToken>",
  "EquipmentID": "USA.VA.22102.CustomerMANAGEDPROPERTIES.City._V3VENUE.USA.NY.10005.Site.NEWYORK._V3EQUIPMENT.NYC-THAN-GTWY"
}
200

Equipment details and log entries returned successfully.

{
  "message": "",
  "Status": "In Service",
  "EquipmentID": "USA.VA.22102.CustomerANAGEDPROPERTIES.City._V3VENUE.USA.NY.10005.Site.NEWYORK._V3EQUIPMENT.NYC-THAN-GTWY",
  "EquipmentName": "NYC-THAN-GTWY",
  "EquipmentType": "Gateway",
  "Manufacturer": "Mikrotik",
  "Model": "1036",
  "ConnectionProtocol": "https",
  "IPAddress": "203.0.113.42",
  "log": [
    {
      "dateAddedUTC.ISO8601": "2025-06-20T04:07:22.101Z",
      "function_name": "vault_networkoperator_equipmentConfigurator",
      "event": {
        "Command": "modify",
        "PORT": 979,
        "ChangeAuthStatus": "SUCCESS",
        "PortSpeedStatus": "SUCCESS",
        "Request": "Enable port ..."
      },
      "SourceIP": "",
      "FirewallSourceIP": "",
      "Administrator": null,
      "SourceLocale": null,
      "SourceUA": null
    },
    {
      "dateAddedUTC.ISO8601": "2025-06-20T04:07:21.376Z",
      "function_name": "vault_networkoperator_equipmentConfigurator",
      "event": {
        "Command": "modify",
        "PORT": 979,
        "ChangeAuthStatus": "SUCCESS",
        "PortSpeedStatus": "SUCCESS",
        "Request": "Enable port ..."
      },
      "SourceIP": "",
      "FirewallSourceIP": "",
      "Administrator": null,
      "SourceLocale": null,
      "SourceUA": null
    },
    {
      "dateAddedUTC.ISO8601": "2025-06-20T02:09:10.666Z",
      "function_name": "vault_networkoperator_equipmentConfigurator",
      "event": {
        "Command": "modify",
        "PORT": 1489,
        "ChangeAuthStatus": "SUCCESS",
        "PortSpeedStatus": "SUCCESS",
        "Request": "Enable port ..."
      },
      "SourceIP": "",
      "FirewallSourceIP": "",
      "Administrator": null,
      "SourceLocale": null,
      "SourceUA": null
    }
  ],
  "errorProcessing": false
}

List Webhook Log

post

Returns a list of webhook log entries for the network operator, filtered by the specified date window. This endpoint is read-only: no values are updated by this endpoint. Use this to review webhook events, payloads, and responses for the operator.

Body
AccessTokenstringRequired

The access token for the network operator admin session.

MinViewWindowDateUTC.ISO8601stringOptional

Optional. The earliest log entry date/time to include (UTC, ISO8601).

MaxViewWindowDateUTC.ISO8601stringOptional

Optional. The latest log entry date/time to include (UTC, ISO8601).

Responses
200
Webhook log entries returned successfully.
application/json
post
POST /preview/networkoperatorconsole/equipment/listWebhookLog HTTP/1.1
Host: api.wifikey.io
Content-Type: application/json
Accept: */*
Content-Length: 170

{
  "AccessToken": "{{NetworkOperatorAdmin-AccessToken}}",
  "MinViewWindowDateUTC.ISO8601": "2025-06-05T04:52:00.000Z",
  "MaxViewWindowDateUTC.ISO8601": "2025-06-05T04:54:00.000Z"
}
200

Webhook log entries returned successfully.

{
  "Webhooks": [
    {
      "dateAddedUTC.ISO8601": "2025-06-05T04:53:54.801Z",
      "Type": "LoginPasswordCreated",
      "WebhookURL": "https://webhook.example.com/anon",
      "Payload": {
        "Type": "LoginPasswordCreated",
        "dateAddedUTC.ISO8601": "2025-06-05T04:53:54.801Z",
        "SourceIP": "203.0.113.42",
        "AdministratorOS": "iOS 18.2.0",
        "AdministratorBrowser": "Chrome 136.0.7103.91",
        "SourceLocale": "en-us",
        "EmailAddress": "[email protected]",
        "SubscriberToken": "AnonToken",
        "GivenName": "AnonGiven",
        "FamilyName": "AnonFamily",
        "locale": "en-us",
        "contactpref_sms": false,
        "contactpref_email": true,
        "event": "Subscriber accepted TandC. ",
        "PhoneNumber.E164": ""
      },
      "webhookresponse": [
        "Accepted"
      ]
    },
    {
      "dateAddedUTC.ISO8601": "2025-06-05T04:52:01.805Z",
      "Type": "SubscriptionStarted",
      "WebhookURL": "https://webhook.example.com/anon",
      "Payload": {
        "Type": "SubscriptionStarted",
        "dateAddedUTC.ISO8601": "2025-06-05T04:52:01.805Z",
        "VenueID": "USA.VA.22102.CustomerANAGEDPROPERTIES.City._V3VENUE.USA.CA.92647.Site.City",
        "purpose": "wiredunit",
        "NAS-Identifier": "USA.CA.92647.Site.City",
        "externalVenueID": "",
        "VenueName": "Anon Venue",
        "AddressLine1": "123 Anon St",
        "AddressLine2": "Suite 100",
        "City": "Anontown",
        "State": "AN",
        "Country.ISO3166A3": "ANON",
        "PostalCode": "00000",
        "UnitID_internal": "ANON_UNIT_ID",
        "UnitID": "0000",
        "UnitBuilding": "0",
        "UnitFloor": "4",
        "vlan": 1427,
        "externalVenueUnitID": "2880779-427",
        "RealPageUnitID": "",
        "SubscriberToken": "AnonToken2",
        "ServicePlanID": "ANON_SERVICEPLAN_ID",
        "psk": "anonpsk.AnonToken2",
        "ssid": "AnonSSID"
      },
      "webhookresponse": [
        "Accepted"
      ]
    }
  ],
  "errorProcessing": false
}

Was this helpful?