{"type":"api","title":"Create Network Appliance Vlan","meta":{"id":"/apps/pubhub/media/Meraki-Dashboard-API-v1-Documentation/4a73587b50c21afbda73cffb32f23c0279bf8383/5c63a5d4-9452-397a-85eb-8b6fec45147e","info":{"title":"Meraki Dashboard API","description":"A RESTful API to programmatically manage and monitor Cisco Meraki networks at scale.\n\n\u003e Date: 04 December, 2024\n\u003e\n\u003e [Recent Updates](https://meraki.io/whats-new/)\n\n---\n\n[API Documentation](https://meraki.io/api)\n\n[Community Support](https://meraki.io/community)\n\n[Meraki Homepage](https://www.meraki.com)\n","contact":{"name":"Meraki Developer Community","url":"https://meraki.io/community"},"version":"1.53.0"},"security":[{"meraki_api_key":[]},{"bearerAuth":[]}],"tags":[{"name":"organizations"},{"name":"networks"},{"name":"devices"},{"name":"insight"},{"name":"wireless"},{"name":"camera"},{"name":"appliance"},{"name":"switch"},{"name":"cellularGateway"},{"name":"sm"},{"name":"sensor"},{"name":"administered"},{"name":"wirelessController"},{"name":"accessControlLists"},{"name":"accessPolicies"},{"name":"accounts"},{"name":"acls"},{"name":"actionBatches"},{"name":"adaptivePolicy"},{"name":"addresses"},{"name":"admins"},{"name":"airMarshal"},{"name":"alertTypes"},{"name":"alerts"},{"name":"alternateManagementInterface"},{"name":"analytics"},{"name":"api"},{"name":"apiRequests"},{"name":"apnsCert"},{"name":"appliances"},{"name":"applicationCategories"},{"name":"applicationUsage"},{"name":"applications"},{"name":"areas"},{"name":"arpInspection"},{"name":"arpTable"},{"name":"artifacts"},{"name":"assets"},{"name":"assignments"},{"name":"authenticationToken"},{"name":"autoLocate"},{"name":"autoRf"},{"name":"availabilities"},{"name":"bandwidthUsageHistory"},{"name":"bgp"},{"name":"billing"},{"name":"blink"},{"name":"bluetooth"},{"name":"bluetoothClients"},{"name":"bonjourForwarding"},{"name":"boundaries"},{"name":"brandingPolicies"},{"name":"bulk"},{"name":"bulkUpdate"},{"name":"byBoundary"},{"name":"byClient"},{"name":"byDevice"},{"name":"byEnergyUsage"},{"name":"byInterval"},{"name":"byMetric"},{"name":"byModel"},{"name":"byNetwork"},{"name":"byStatus"},{"name":"bySwitch"},{"name":"byType"},{"name":"byUsage"},{"name":"byUtilization"},{"name":"bypassActivationLockAttempts"},{"name":"cableTest"},{"name":"callbacks"},{"name":"categories"},{"name":"cellular"},{"name":"cellularFirewallRules"},{"name":"cellularUsageHistory"},{"name":"certs"},{"name":"changeHistory"},{"name":"channelUtilization"},{"name":"channelUtilizationHistory"},{"name":"channels"},{"name":"claim"},{"name":"claimKey"},{"name":"clientCountHistory"},{"name":"clients"},{"name":"cloudMonitoring"},{"name":"commands"},{"name":"communicationPlans"},{"name":"compliance"},{"name":"configTemplates"},{"name":"configurationChanges"},{"name":"configure"},{"name":"configuredDevices"},{"name":"connectionStats"},{"name":"connections"},{"name":"connectivity"},{"name":"connectivityEvents"},{"name":"connectivityMonitoringDestinations"},{"name":"contentFiltering"},{"name":"coterm"},{"name":"current"},{"name":"customAnalytics"},{"name":"customPerformanceClasses"},{"name":"dataRateHistory"},{"name":"delegated"},{"name":"desktopLogs"},{"name":"details"},{"name":"detections"},{"name":"deviceCommandLogs"},{"name":"deviceProfiles"},{"name":"deviceTypeGroupPolicies"},{"name":"dhcp"},{"name":"dhcpServerPolicy"},{"name":"discovery"},{"name":"dscpTaggingOptions"},{"name":"dscpToCosMappings"},{"name":"eapOverride"},{"name":"earlyAccess"},{"name":"electronicShelfLabel"},{"name":"entitlements"},{"name":"esims"},{"name":"ethernet"},{"name":"eventTypes"},{"name":"events"},{"name":"exportEvents"},{"name":"failedConnections"},{"name":"failover"},{"name":"features"},{"name":"fields"},{"name":"firewall"},{"name":"firewalledServices"},{"name":"firmware"},{"name":"firmwareUpgrades"},{"name":"floorPlans"},{"name":"groupPolicies"},{"name":"groups"},{"name":"health"},{"name":"healthByTime"},{"name":"historical"},{"name":"history"},{"name":"hotspot20"},{"name":"httpServers"},{"name":"identities"},{"name":"identityPsks"},{"name":"idps"},{"name":"imports"},{"name":"inboundCellularFirewallRules"},{"name":"inboundFirewallRules"},{"name":"interfaces"},{"name":"internetPolicies"},{"name":"intrusion"},{"name":"inventory"},{"name":"ipv6"},{"name":"jobs"},{"name":"keys"},{"name":"l2"},{"name":"l3"},{"name":"l3FirewallRules"},{"name":"l7FirewallRules"},{"name":"lan"},{"name":"latencyHistory"},{"name":"latencyStats"},{"name":"latest"},{"name":"leds"},{"name":"licenses"},{"name":"licensing"},{"name":"lines"},{"name":"linkAggregations"},{"name":"linkLayer"},{"name":"live"},{"name":"liveTools"},{"name":"lldpCdp"},{"name":"loginSecurity"},{"name":"logs"},{"name":"lossAndLatencyHistory"},{"name":"malware"},{"name":"managementInterface"},{"name":"manufacturers"},{"name":"me"},{"name":"merakiAuthUsers"},{"name":"meshStatuses"},{"name":"models"},{"name":"monitor"},{"name":"monitoredMediaServers"},{"name":"mqttBrokers"},{"name":"mtu"},{"name":"multicast"},{"name":"netflow"},{"name":"networkAdapters"},{"name":"networkHealth"},{"name":"objectDetectionModels"},{"name":"onboarding"},{"name":"oneToManyNatRules"},{"name":"oneToOneNatRules"},{"name":"openapiSpec"},{"name":"optIns"},{"name":"order"},{"name":"ospf"},{"name":"overview"},{"name":"packetLoss"},{"name":"packets"},{"name":"payloadTemplates"},{"name":"performance"},{"name":"performanceHistory"},{"name":"permissions"},{"name":"pii"},{"name":"piiKeys"},{"name":"ping"},{"name":"pingDevice"},{"name":"policies"},{"name":"policy"},{"name":"policyObjects"},{"name":"portForwardingRules"},{"name":"portSchedules"},{"name":"ports"},{"name":"power"},{"name":"powerModules"},{"name":"prefixes"},{"name":"prepare"},{"name":"priorities"},{"name":"profiles"},{"name":"provisioning"},{"name":"qosRules"},{"name":"qualityAndRetention"},{"name":"qualityRetentionProfiles"},{"name":"radio"},{"name":"ratePlans"},{"name":"readings"},{"name":"recent"},{"name":"redundancy"},{"name":"relationships"},{"name":"rendezvousPoints"},{"name":"requests"},{"name":"responseCodes"},{"name":"restrictions"},{"name":"rfProfiles"},{"name":"roles"},{"name":"rollbacks"},{"name":"routing"},{"name":"rules"},{"name":"saml"},{"name":"samlRoles"},{"name":"schedules"},{"name":"sdwan"},{"name":"search"},{"name":"security"},{"name":"securityCenters"},{"name":"seen"},{"name":"sense"},{"name":"sentry"},{"name":"servers"},{"name":"serviceProviders"},{"name":"settings"},{"name":"signalQualityHistory"},{"name":"sims"},{"name":"singleLan"},{"name":"siteToSiteVpn"},{"name":"smDevicesForKey"},{"name":"smOwnersForKey"},{"name":"snmp"},{"name":"softwares"},{"name":"splash"},{"name":"splashAuthorizationStatus"},{"name":"splashLoginAttempts"},{"name":"ssids"},{"name":"stacks"},{"name":"staged"},{"name":"stages"},{"name":"staticRoutes"},{"name":"statics"},{"name":"stats"},{"name":"status"},{"name":"statuses"},{"name":"stormControl"},{"name":"stp"},{"name":"subnetPool"},{"name":"subnets"},{"name":"subscription"},{"name":"subscriptions"},{"name":"summary"},{"name":"swap"},{"name":"swaps"},{"name":"switches"},{"name":"syslogServers"},{"name":"system"},{"name":"targetGroups"},{"name":"themes"},{"name":"thirdPartyVPNPeers"},{"name":"throughputTest"},{"name":"top"},{"name":"topology"},{"name":"traffic"},{"name":"trafficAnalysis"},{"name":"trafficHistory"},{"name":"trafficShaping"},{"name":"trustedAccessConfigs"},{"name":"trustedServers"},{"name":"upgrades"},{"name":"uplink"},{"name":"uplinkBandwidth"},{"name":"uplinkSelection"},{"name":"uplinks"},{"name":"uplinksLossAndLatency"},{"name":"usage"},{"name":"usageHistories"},{"name":"usageHistory"},{"name":"userAccessDevices"},{"name":"utilization"},{"name":"v4"},{"name":"video"},{"name":"videoLink"},{"name":"vlanAssignments"},{"name":"vlanProfiles"},{"name":"vlans"},{"name":"vmx"},{"name":"vpn"},{"name":"vpnExclusions"},{"name":"vpnFirewallRules"},{"name":"vppAccounts"},{"name":"wakeOnLan"},{"name":"warmSpare"},{"name":"warnings"},{"name":"webhookTests"},{"name":"webhooks"},{"name":"wirelessControllers"},{"name":"wirelessProfiles"},{"name":"wlanLists"},{"name":"zones"}],"x-parser-conf":{"overview":{"markdownPath":"docs/overview.md"},"theme":"meraki","serverConfig":true,"meta":{"useProxy":true},"httpBearer":{"bearerToken":"75dd5334bef4d2bc96f26138c163c0a3fa0b5ca6"},"labelConfig":{"endpoint":{"field":"operationId","format":"startCase"}},"groupBy":{"$remoteModule":"config/group_platform.js"},"sortBy":{"$remoteModule":"config/sort_by.js"},"exampleAsDefault":true,"expand":3,"sampleCode":{"python":{"folder":"meraki/sdk/python","name":"Meraki Python Library","highlight":"python"}},"variables":{"organizationId":"1215707","networkId":"N_784752235069315754","serial":"QBSB-VQ3J-XZ54"}},"openapi":"3.0.1","servers":[{"url":"https://api.meraki.com/{basePath}","variables":{"basePath":{"default":"api/v1"}}}],"securitySchemes":{"meraki_api_key":{"type":"apiKey","name":"X-Cisco-Meraki-API-Key","in":"header"},"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"API Key"}}},"spec":{"description":"Add a VLAN","operationId":"createNetworkApplianceVlan","parameters":[{"name":"networkId","in":"path","description":"Network ID","schema":{"type":"string"},"required":true}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"The VLAN ID of the new VLAN (must be between 1 and 4094)"},"name":{"type":"string","description":"The name of the new VLAN"},"subnet":{"type":"string","description":"The subnet of the VLAN"},"applianceIp":{"type":"string","description":"The local IP of the appliance on the VLAN"},"groupPolicyId":{"type":"string","description":"The id of the desired group policy to apply to the VLAN"},"templateVlanType":{"type":"string","enum":["same","unique"],"description":"Type of subnetting of the VLAN. Applicable only for template network.","default":"same"},"cidr":{"type":"string","description":"CIDR of the pool of subnets. Applicable only for template network. Each network bound to the template will automatically pick a subnet from this pool to build its own VLAN."},"mask":{"type":"integer","description":"Mask used for the subnet of all bound to the template networks. Applicable only for template network."},"ipv6":{"type":"object","properties":{"enabled":{"type":"boolean","description":"Enable IPv6 on VLAN."},"prefixAssignments":{"type":"array","items":{"type":"object","properties":{"autonomous":{"type":"boolean","description":"Auto assign a /64 prefix from the origin to the VLAN"},"staticPrefix":{"type":"string","description":"Manual configuration of a /64 prefix on the VLAN"},"staticApplianceIp6":{"type":"string","description":"Manual configuration of the IPv6 Appliance IP"},"origin":{"type":"object","properties":{"type":{"type":"string","enum":["independent","internet"],"description":"Type of the origin"},"interfaces":{"type":"array","items":{"type":"string"},"description":"Interfaces associated with the prefix"}},"required":["type"],"description":"The origin of the prefix"}}},"description":"Prefix assignments on the VLAN"}},"description":"IPv6 configuration on the VLAN"},"dhcpHandling":{"type":"string","enum":["Do not respond to DHCP requests","Relay DHCP to another server","Run a DHCP server"],"description":"The appliance's handling of DHCP requests on this VLAN. One of: 'Run a DHCP server', 'Relay DHCP to another server' or 'Do not respond to DHCP requests'"},"dhcpLeaseTime":{"type":"string","enum":["1 day","1 hour","1 week","12 hours","30 minutes","4 hours"],"description":"The term of DHCP leases if the appliance is running a DHCP server on this VLAN. One of: '30 minutes', '1 hour', '4 hours', '12 hours', '1 day' or '1 week'"},"mandatoryDhcp":{"type":"object","properties":{"enabled":{"type":"boolean","description":"Enable Mandatory DHCP on VLAN."}},"description":"Mandatory DHCP will enforce that clients connecting to this VLAN must use the IP address assigned by the DHCP server. Clients who use a static IP address won't be able to associate. Only available on firmware versions 17.0 and above"},"dhcpBootOptionsEnabled":{"type":"boolean","description":"Use DHCP boot options specified in other properties"},"dhcpOptions":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","description":"The code for the DHCP option. This should be an integer between 2 and 254."},"type":{"type":"string","enum":["hex","integer","ip","text"],"description":"The type for the DHCP option. One of: 'text', 'ip', 'hex' or 'integer'"},"value":{"type":"string","description":"The value for the DHCP option"}},"required":["code","type","value"]},"description":"The list of DHCP options that will be included in DHCP responses. Each object in the list should have \"code\", \"type\", and \"value\" properties."}},"example":{"id":"1234","name":"My VLAN","subnet":"192.168.1.0/24","applianceIp":"192.168.1.2","groupPolicyId":"101","templateVlanType":"same","cidr":"192.168.1.0/24","mask":28,"ipv6":{"enabled":true,"prefixAssignments":[{"autonomous":false,"staticPrefix":"2001:db8:3c4d:15::/64","staticApplianceIp6":"2001:db8:3c4d:15::1","origin":{"type":"internet","interfaces":["wan0"]}}]},"dhcpHandling":"Run a DHCP server","dhcpLeaseTime":"30 minutes","mandatoryDhcp":{"enabled":true},"dhcpBootOptionsEnabled":true,"dhcpOptions":[{"code":"3","type":"text","value":"five"}]},"required":["id","name"]}}},"required":true},"responses":{"201":{"description":"Successful operation","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"The VLAN ID of the VLAN"},"interfaceId":{"type":"string","description":"The interface ID of the VLAN"},"name":{"type":"string","description":"The name of the VLAN"},"subnet":{"type":"string","description":"The subnet of the VLAN"},"applianceIp":{"type":"string","description":"The local IP of the appliance on the VLAN"},"groupPolicyId":{"type":"string","description":"The id of the desired group policy to apply to the VLAN"},"templateVlanType":{"type":"string","enum":["same","unique"],"description":"Type of subnetting of the VLAN. Applicable only for template network.","default":"same"},"cidr":{"type":"string","description":"CIDR of the pool of subnets. Applicable only for template network. Each network bound to the template will automatically pick a subnet from this pool to build its own VLAN."},"mask":{"type":"integer","description":"Mask used for the subnet of all bound to the template networks. Applicable only for template network."},"mandatoryDhcp":{"type":"object","properties":{"enabled":{"type":"boolean","description":"Enable Mandatory DHCP on VLAN."}},"description":"Mandatory DHCP will enforce that clients connecting to this VLAN must use the IP address assigned by the DHCP server. Clients who use a static IP address won't be able to associate. Only available on firmware versions 17.0 and above"},"ipv6":{"type":"object","properties":{"enabled":{"type":"boolean","description":"Enable IPv6 on VLAN"},"prefixAssignments":{"type":"array","items":{"type":"object","properties":{"autonomous":{"type":"boolean","description":"Auto assign a /64 prefix from the origin to the VLAN"},"staticPrefix":{"type":"string","description":"Manual configuration of a /64 prefix on the VLAN"},"staticApplianceIp6":{"type":"string","description":"Manual configuration of the IPv6 Appliance IP"},"origin":{"type":"object","properties":{"type":{"type":"string","enum":["independent","internet"],"description":"Type of the origin"},"interfaces":{"type":"array","items":{"type":"string"},"description":"Interfaces associated with the prefix"}},"description":"The origin of the prefix"}}},"description":"Prefix assignments on the VLAN"}},"description":"IPv6 configuration on the VLAN"}}},"example":{"id":"1234","interfaceId":"1284392014819","name":"My VLAN","subnet":"192.168.1.0/24","applianceIp":"192.168.1.2","groupPolicyId":"101","templateVlanType":"same","cidr":"192.168.1.0/24","mask":28,"mandatoryDhcp":{"enabled":true},"ipv6":{"enabled":true,"prefixAssignments":[{"autonomous":false,"staticPrefix":"2001:db8:3c4d:15::/64","staticApplianceIp6":"2001:db8:3c4d:15::1","origin":{"type":"internet","interfaces":["wan0"]}}]}}}}}},"summary":"Add a VLAN","tags":["appliance","configure","vlans"],"__originalOperationId":"createNetworkApplianceVlan","security":[{"meraki_api_key":[]},{"bearerAuth":[]}],"method":"post","path":"/networks/{networkId}/appliance/vlans","sampleCode":{"Meraki Python Library":{"code":"import meraki\n\n# Defining your API key as a variable in source code is discouraged.\n# This API key is for a read-only docs-specific environment.\n# In your own code, use an environment variable as shown under the Usage section\n# @ https://github.com/meraki/dashboard-api-python/\n\nAPI_KEY = '75dd5334bef4d2bc96f26138c163c0a3fa0b5ca6'\n\ndashboard = meraki.DashboardAPI(API_KEY)\n\nnetwork_id = 'L_646829496481105433'\nid_ = '1234'\nname = 'My VLAN'\n\nresponse = dashboard.appliance.createNetworkApplianceVlan(\n network_id, id_, name, \n subnet='192.168.1.0/24', \n applianceIp='192.168.1.2', \n groupPolicyId='101', \n templateVlanType='same', \n cidr='192.168.1.0/24', \n mask=28, \n ipv6={'enabled': True, 'prefixAssignments': [{'autonomous': False, 'staticPrefix': '2001:db8:3c4d:15::/64', 'staticApplianceIp6': '2001:db8:3c4d:15::1', 'origin': {'type': 'internet', 'interfaces': ['wan0']}}]}, \n dhcpHandling='Run a DHCP server', \n dhcpLeaseTime='30 minutes', \n mandatoryDhcp={'enabled': True}, \n dhcpBootOptionsEnabled=True, \n dhcpOptions=[{'code': '3', 'type': 'text', 'value': 'five'}]\n)\n\nprint(response)","highlight":"python"}}}}