.. _Broadband Map API: Broadband Map ============= Broadband Map APIs ------------------ The Broadband Map availability API provides a simplified programmatic access to details of the availability of broadband access technologies at a specified map location. Also providers API returns a list of data providers with some details about them. Version 1.0 *********** **The Broadband Map API Version 1.0 is deprecated now and is not available to use anymore. Please see Version 2.0 section.** .. _Version 2.0: Version 2.0 *********** Availability API ++++++++++++++++ Returns the details of the availability of broadband access technologies at a specified map location. Resource URLs ~~~~~~~~~~~~~ .. csv-table:: :header: "Environment", "URL" :delim: | production | \https://api.broadbandmap.nz/api/2.0/availability// Authentication ~~~~~~~~~~~~~~ Your API key must be provided as the value to the 'x-api-key' header in the request. Parameters ~~~~~~~~~~ +--------------+--------------+--------------+--------------+----------------+--------------+ | Parameter | Data Type | Presence | Rules | Description | Examples | +==============+==============+==============+==============+================+==============+ | | numeric | required | - Must be a | The latitude | -36.9026834 | | | | in url | number | of the point | | | | | | between | at which | | | | | | -47.5 and | network | | | | | | -34.2 | availability | | | | | | - Can be | should be | | | | | | integer | calculated. | | | | | | or | | | | | | | decimal | | | | | | | up to 7 | | | | | | | digits to | | | | | | | the right | | | | | | | of | | | | | | | decimal | | | | | | | point | | | +--------------+--------------+--------------+--------------+----------------+--------------+ | | numeric | required | - Must be a | The | 174.8075834 | | | | in url | number | longitude of | | | | | | between | the point at | | | | | | 166.2 and | which | | | | | | 178.6 | network | | | | | | - Can be | availability | | | | | | integer | should be | | | | | | or | calculated. | | | | | | decimal | | | | | | | up to 7 | | | | | | | digits to | | | | | | | the right | | | | | | | of | | | | | | | decimal | | | | | | | point | | | +--------------+--------------+--------------+--------------+----------------+--------------+ | | alphanumeric | required | Individually | Each user | abc123 | | | | in header | assigned per | gets one or | | | | | | user | multiple | | | | | | | assigned api | | | | | | | tokens to be | | | | | | | used with | | | | | | | each query | | | | | | | as a way of | | | | | | | identification | | | | | | | / | | | | | | | access | | | | | | | control. | | +--------------+--------------+--------------+--------------+----------------+--------------+ Response details ~~~~~~~~~~~~~~~~ The response is a JSON encoded object. .. csv-table:: :header: "Field", "Presence", "Data Type", "Valid Response Data" :delim: | results | required | list of objects | A list of objects ordered by max download speed descending "fastest first". technology | required | text | The underlying technology of this layer. Currently either: "fibre", "cable", "vdsl", "wireless" or "adsl". availability | required | text | Of the form "unavailable", "available" or "planned". planned_date | optional | text | Completion date, if known and if availability is "planned". providers | optional | list of objects | This list is provided for all availability statuses except "Not Available". name | required | text | The name of this network provider. wholesale_network | required | text | """Yes"" if this network is only available as a wholesale product otherwise ""No"", or ""Both""" url | required | text | URL of this provider. bandwidth_min_mbps | required | numeric | The lowest downstream speed that can be expected. bandwidth_max_mbps | required | numeric | The highest downstream speed that can be expected. bandwidth_up_min_mbps | required | numeric | The lowest upstream speed that can be expected. bandwidth_up_max_mbps | required | numeric | The highest upstream speed that can be expected. location | required | object of numerics | Object with two numeric values, the latitude (value of "lat") and longitude (value of "lng") of the request. last_update_date | required | text | The last date the layer was updated, if known. .. _apiv2-examples: Examples ~~~~~~~~ Request: :: curl --location \ --request GET 'https://api.broadbandmap.nz/api/2.0/availability/-41.2908663/174.7703795' \ --header 'x-api-key: abc123' Response: .. code-block:: json { "location": { "lat": "-41.29101543421946", "lng": "174.77047069510462" }, "results": [ { "availability": "available", "providers": [ { "availability": "planned", "providers": [ { "bandwidth_max_mbps": 1000.0, "bandwidth_min_mbps": 50.0, "bandwidth_up_max_mbps": 1000.0, "bandwidth_up_min_mbps": 10.0, "last_update_date": null, "name": "Chorus", "planned_date": "Fri, 30 Dec 2022 00:00:00 GMT", "url": "https://www.chorus.co.nz/network-upgrade-map", "wholesale_network": "Yes" } ], "technology": "fibre" }, { "availability": "available", "providers": [ { "bandwidth_max_mbps": 1000.0, "bandwidth_min_mbps": 200.0, "bandwidth_up_max_mbps": 100.0, "bandwidth_up_min_mbps": 20.0, "last_update_date": null, "memberOf": [], "name": "One NZ", "planned_date": null, "url": "https://one.nz/broadband/", "wholesale_network": "No" } ], "technology": "cable" }, { "availability": "unavailable", "technology": "vdsl" }, { "availability": "available", "providers": [ { "bandwidth_max_mbps": 100.0, "bandwidth_min_mbps": 5.0, "bandwidth_up_max_mbps": 40.0, "bandwidth_up_min_mbps": 5.0, "last_update_date": "Wed, 26 Jul 2023 00:00:00 GMT", "memberOf": [], "name": "One NZ", "planned_date": null, "url": "https://one.nz/broadband/", "wholesale_network": "Both" }, { "bandwidth_max_mbps": 100.0, "bandwidth_min_mbps": 10.0, "bandwidth_up_max_mbps": 40.0, "bandwidth_up_min_mbps": 5.0, "last_update_date": null, "memberOf": [], "name": "Spark", "planned_date": null, "url": "https://www.spark.co.nz/shop/internet/wirelessbroadband/", "wholesale_network": "No" } ], "technology": "wireless" }, { "availability": "available", "providers": [ { "bandwidth_max_mbps": 21.0, "bandwidth_min_mbps": 10.0, "bandwidth_up_max_mbps": 1.4, "bandwidth_up_min_mbps": 1.0, "last_update_date": null, "memberOf": [], "name": "Chorus", "planned_date": null, "url": "https://www.chorus.co.nz/network-upgrade-map", "wholesale_network": "Yes" } ], "technology": "adsl" } ] } .. _apiv2-errorcodes: Error codes ~~~~~~~~~~~ The broadband map API returns both HTTP status codes and a simplified JSON response on errors. .. csv-table:: :header: "HTTP status code", "Application error code", "Comments" :delim: | 400 BAD REQUEST | 400 | The request was invalid. For example you may have provided coordinates outside of New Zealand. 403 FORBIDDEN | 401 | Your API key is invalid or missing in the "x-api-key" header. 500 INTERNAL SERVER ERROR | 500 | The server encountered an error processing your request. This may be a transient error, however if problems persist please contact registry@internetnz.net.nz Examples: :: HTTP/1.1 400 BAD REQUEST Content-Type: application/json { "code": 400, "error": "Given coordinates are not valid." } :: HTTP/1.1 403 FORBIDDEN Content-Type: application/json { "message": "Forbidden" } :: HTTP/1.0 500 INTERNAL SERVER ERROR Content-Type: application/json { "code": 500, "error": "Internal Server Error" } | Data Providers list API +++++++++++++++++++++++ This API returns a list of Broadband Map data providers with some details about them. Resource URLs ~~~~~~~~~~~~~ .. csv-table:: :header: "Environment", "URL" :delim: | production | \https://api.broadbandmap.nz/api/2.0/providers Response details ~~~~~~~~~~~~~~~~ The response is a JSON encoded object. Each provider presents as an object. .. csv-table:: :header: "Field", "Presence", "Data Type", "Valid Response Data" :delim: | results | required | list of objects | A list of objects contain providers details. name | required | text | Data provider's organization name description | required | text | A short description about the provider. areaServed | required | list of text | List of regions served by the provider. technologies | required | list of text | List of broadband technologies offered by the provider. url | required | text | An URL to the provider's website. Examples ~~~~~~~~ Request: :: curl --location \ --request GET 'https://api.broadbandmap.nz/api/2.0/providers' \ --header 'x-api-key: abc123' Response (shortened): .. code-block:: json { "results": [ { "areaServed": [ "Canterbury" ], "description": "", "name": "Amuri.net", "technologies": [ "Wireless" ], "url": "https://www.amuri.net/" }, { "areaServed": [ "Canterbury" ], "description": "", "name": "WiFi Guys", "technologies": [ "Wireless" ], "url": "http://www.wifiguys.co.nz/" }, { "areaServed": [ "Gisborne", "Hawke's Bay" ], "description": "", "name": "Gisborne.net", "technologies": [ "Wireless" ], "url": "http://gisborne.net/" }, { "areaServed": [ "Canterbury" ], "description": "", "name": "Altra Internet", "technologies": [ "Wireless" ], "url": "https://www.altra.co.nz/" } ] } Error codes ~~~~~~~~~~~ The broadband map API returns both HTTP status codes and a simplified JSON response on errors. .. csv-table:: :header: "HTTP status code", "Application error code", "Comments" :delim: | 403 FORBIDDEN | \- | Your API key is invalid or missing in the "x-api-key" header. 500 INTERNAL SERVER ERROR | 500 | The server encountered an error processing your request. This may be a transient error, however if problems persist please contact registry@internetnz.net.nz Examples: :: HTTP/1.1 403 FORBIDDEN Content-Type: application/json { "message": "Forbidden" } :: HTTP/1.0 500 INTERNAL SERVER ERROR Content-Type: application/json { "code": 500, "error": "Internal Server Error" } | Broadband Map Availability API Plans and Prices ----------------------------------------------- The Availability API of the National Broadband Map is intended for the following purpose: To enable current owners and occupiers or potential owners and occupiers to find out what broadband is available at that location. This purpose enables a wide range of uses both for companies looking at their own locations and for those looking for information on behalf of their customers. Unfortunately, due to licensing restrictions this API cannot be used for any form of research whether market research or more general public benefit research. Monthly Plans ------------- We have three simple plans for organisations with a sustained query load and the flexibility of a monthly contract. * Dedicated API Key * Access to customer support during office hours * Lookup data can be cached for up to 10 business days * 1000 free queries for initial testing and integration * Billed monthly in advance. Cancel with one month’s notice. * Over plan usage billed monthly in arrears .. csv-table:: :header: "Plan", "Bundled queries", "Price" :delim: | Low usage plan | 75,000 per month (Additional queries charged at 1c per query) | $500 month Medium usage plan | 150,000 per month (Additional queries charged at 1c per query) | $750 month High usage plan | 300,000 per month (Additional queries charged at 1c per query) | $1,500 month All prices are exclusive of GST. Query rate limits apply | **What counts as a query?** Any call made to the Availability API, which receives a complete (non-error) response. **How can I track my usage?** We send out monthly invoices with your usage. **What are your standard office hours?** 9am to 5pm Monday to Friday. Out of hours support is 24x7x365 initially through an answer service who escalate to our on call team of engineers. **What happens if I exceed my chosen volume of queries?** For Monthly Plans we bill you the overage in the following month at the equivalent cost per query for your plan. **What is the maximum query rate?** For Monthly Plans it’s 2 queries per second with bursts up to 20 queries per second. **Where do I find documentation on the API?** Visit our documentation site https://docs.nzrs.net.nz/broadbandmap/ **How do I purchase API access?** Contact us at bbmap@nzrs.net.nz and we’ll be happy to help. .. note:: For further information contact: Sonya Trompetter bbmap@internetnz.net.nz | Guide to generate radio prediction outputs ------------------------------------------ What file formats are accepted for the Broadband Map A GIS format such as shapefile or Geodatabase of the radio prediction output. A KML with an embedded raster of the radio prediction output A KML with a polygon of the radio prediction output For reference here is the powerpoint slides from the breakfast session DIY - Radio Prediction Modelling -------------------------------- The following steps are for organisations that wish to generate their own coverage maps using the CloudRF.com web interface. **Step 1:** * Use this `template spreadsheet `_ to help you get the right data in one place. Fill out the data for each of your towers (note this is also the format we use if you would like us to do the work for you). * If you need help working out or converting the the coordinates of your tower, this LINZ website may be of use. **Step 2:** * For this step visit CloudRF.com and complete the following steps: * Create a free account at https://cloudrf.com Get familiar with the web interface with online support on the interface here Upload your data Magic happens ;-) **Step 3:** * Export coverage as files for the BBMap - preference for KML or Shapefile **Step 4:** * Submit coverage files to bbmap@internetnz.net.nz InternetNZ Processed - Radio Prediction Modelling ------------------------------------------------- If your preference is to have someone else do the work, InternetNZ are happy to process your tower data on a cost recovery basis. These are the steps required for this process. **Step 1:** * Use this `template spreadsheet `_ to help you get the right data in one place. Fill out the data for each of your towers. * Submit the data to bbmap@internetnz.net.nz **Step 2:** * InternetNZ use Cloud RF’s API to process the data and setup FME (Feature Manipulation Engine) to automate the data transformation. **Step 3:** * InternetNZ generated coverage maps are confirmed with you to make sure the coverage files represent reality. **Step 4:** * InternetNZ loads coverage maps onto the BBMap * This process is charged on a cost recovery basis with two parts. * First time setup for your organisation. Fixed setup fee of $1,000 + GST Subsequent coverage updates. Fixed fee of $250 +GST per update Support ------- Should you need any support or guidance please do not hesitate to contact the team at bbmap@internetnz.net.nz