UK Broadband Availability API
Tracking UK broadband coverage
thinkbroadband has been tracking broadband coverage across the UK since 2012 and to help the public when searching for broadband in our package search we have been developed our own API to filter the packages offered to people based on their postcode.
Other data services are described on our UK Broadband Data page.
The broadband availability API is available on a commercial basis to sites that offer broadband availability and related searches and is part of our desire to ensure that the public get accurate and up-to-date information (e.g. are not offered FTTC services when in reality FTTP is available) as available. The API does not control what retail broadband packages are shown to consumers, but provides the information those offering package recommendations can use to determine these. Please contact us for pricing – [email protected].
The RESTful API returns a JSON object describing wholesale services available along with speed estimates where relevant, so that for example, you can decided to only show 40/10 FTTC services, where the user would not benefit from a faster but more expensive 80/20 FTTC package which may technically still be available, because their line is too long to get speeds above 40Mbps.
Key API features
- Restful API / JSON data output
- Designed for server-to-server communication
- Available on a commercial basis; prices on application but dependent on query volume
- One single call provides information about multiple services e.g. Openreach, Virgin Media, Hyperoptic, OFNL, KCom, Gigaclear, etc.
- Highlight availability of G.fast with minimum 100 Mbps speeds
- “Full fibre” (FTTH) provider availability
- Version control such that new fields/providers and methods to call are provided in a structured way
- Intended for single look-ups; for those wanting to visualise UK broadband infrastructure, contact us for details on our joint work with Point-Topic under the ThinkPoint brand for data which can be ingested into mapping/BI systems.
Latest API version: 2.86 released 11th August 2025
Added a new field avail_infra_cityfibre_any that can be used to see if CityFibre has a presence, irrespective of what the various retailers actually sell.
Calling the API
It is only possible to use the API when you have been issued with an authentication token (guid) and your IP addresses have been added to our systems. Once these are in place, you can access it via a simple HTTP GET request.
Example on how to access the API using PHP and curl function:
$html = curl_get_contents('https://api.thinkbroadband.com/inquiry.php?postcode='.$postcode.'&version=2.20&guid=[site_unique_guid]');
$data = json_decode($html);
Typical Response
The full response from a typical call is reproduced here:
{
"api_version":2.2,
"postcode":"L1 9DW",
"latlng":"53.401277000000000,-2.974188000000000",
"lat":"53.401277000000000",
"lng":"-2.974188000000000",
"exchange_code":"LVROY",
"exchange_name":"ROYAL",
"exchange_distance":219,
"exchange_code_near_1":"LVCEN",
"exchange_name_near_1":"LANCASTER HOUSE",
"exchange_distance_near_1":1810,
"exchange_code_near_2":"LVNOR",
"exchange_name_near_2":"NORTH",
"exchange_distance_near_2":1919,
"exchange_code_near_3":"LVANF",
"exchange_name_near_3":"ANFIELD",
"exchange_distance_near_3":2609,
"exchange_code_near_4":"LVSEF",
"exchange_name_near_4":"SEFTON PARK",
"exchange_distance_near_4":2806,
"avail_retail_virginmedia":"NOT_AVAILABLE",
"avail_infra_virginmedia_cable":"NOT_AVAILABLE",
"avail_infra_openreach_fttc":"NOT_AVAILABLE",
"avail_infra_openreach_fttp":"NOT_AVAILABLE",
"avail_infra_openreach_gfast":"NOT_AVAILABLE",
"avail_retail_bt_consumer":"AVAILABLE",
"avail_retail_ee":"AVAILABLE",
"avail_retail_plusnet":"AVAILABLE",
"avail_infra_btwholesale_ipstream_max":"AVAILABLE",
"avail_infra_btwholesale_adsl2plus_wbc":"AVAILABLE",
"avail_retail_sky":"AVAILABLE",
"avail_infra_sky_llu_adsl2plus":"AVAILABLE",
"avail_retail_talktalk":"AVAILABLE",
"avail_infra_talktalk_llu_adsl2plus":"AVAILABLE",
"exchange_market":"B",
"avail_infra_kc_adsl2plus":"NOT_AVAILABLE",
"avail_infra_kc_fttp":"NOT_AVAILABLE",
"avail_infra_hyperoptic_fttp":"NOT_AVAILABLE",
"avail_infra_gigaclear_fttp":"NOT_AVAILABLE",
"avail_infra_ifnl_fttp":"NOT_AVAILABLE",
"avail_infra_b4rn_fttp":"NOT_AVAILABLE",
"avail_infra_airband_wireless":"NOT_AVAILABLE",
"avail_infra_vodafone_gigafast":"NOT_AVAILABLE",
"avail_infra_community_fibre":"NOT_AVAILABLE",
"avail_infra_truespeed":"NOT_AVAILABLE",
"avail_infra_trooli":"NOT_AVAILABLE",
"best_download_sub_24":"YES",
"best_download_sub_10":"NO",
"best_download_sub_2":"NO",
"est_adsl2plus_download_postcode":"15 to 24 Mbps",
"est_fttcp_download_postcode":"over 40 Mbps",
"est_adsl2plus_download_within500m":"15 to 24 Mbps",
"est_fttcp_download_within500m":"over 40 Mbps",
"est_adsl2plus_download_within1000m":"10 to 20 Mbps",
"est_fttcp_download_within1000m":"20 to 40 Mbps",
"est_gfast_download_postcode":"UNKNOWN",
"est_fttp_download_postcode":"UNKNOWN",
"openreach_postcode_split":"SINGLE",
"openreach_postcode_split_technology":"SAME",
"est_raw_adsl2plus_download_postcode":24,
"est_raw_fttcp_download_postcode":80,
"est_raw_gfast_download_postcode":-1,
"fastest":"15 to 24 Mbps",
"tech":"ADSL2+",
"openreach_waiter":"UNKNOWN"
}
This tells us that ADSL2+ is available, but no faster services appear to be available. The speed ranges are provided for FTTC services, even though it is not available at this time. This is to help you understand the likely speeds when cabinets serving the location are upgraded to FTTC. You should therefore filter such speed ranges by observing the “avail_infra_openreach_fttc” field.
Important: The order of fields while usually repeatable is not guaranteed, therefore when coding access to the API do not assume that for example exchange_code is always the fifth array element.
Understanding and interpreting results
Broadband availability and ensuring you present the most appropriate products to users is more complicated than an an API lookup on postcode. Our aim is to provide you with as much information as possible, so that you can make the best decision for your user base. As such, you may see a DSL-based broadband service deliver a sub-2Mbps service, and wish to recommend satellite services as an option, even if we do not have information on that.
Some key considerations in building your logic are highlighted below.
Split Postcodes
The fields openreach_postcode_split and openreach_postcode_split_technology (available since v 2.1) are designed to help boost confidence in the result or allow a site to add a caution that a postcode-level search may not provide the full picture on availability to a particular premises. The majority of postcodes are served by a single Openreach cabinet (covering around 22 million premises), but some are split across multiple cabinets. We call these ‘split postcodes’ where some premises will get different ranges of services from others.
‘Waiter List’
The openreach_waiter field (from v 2.3) indicates a postcode where we think FTTC based services are subject to capacity limirations (i.e. there is a waiting list). This field is not real-time as availability can change frequently as lines are provisioned and cancelled, so the purpose if to add a cautionary note which you may display, or use when selecting the recommended product based on other options available to the user.
The ‘waiting’ problem also impacts those looking to migrate between providers, which may seem illogical given an active VDSL2 line is already connected to a port, but it is thought that the equivalence of input rules have led to this scenario to avoid large wholesalers gaining an advantage over switching between two LLU operators.
Example postcodes
These few examples you may wish to consider using for testing and are correct at the time of writing. These are not a full set of permutations but should allow you to test the most common cases and how they should be interpreted.
- SM2 6BU — A location with G.fast, Virgin Media, FTTC and ADSL2+ available
- SM1 4FR — A newish postcode where only Openreach FTTP is available, so no ADSL/ADSL2+ options
- BT23 4NW — An emerging trend with the Fibre First roll-out, Openreach FTTP and FTTC are both available at good speeds, and Virgin Media cable broadband is also available.
- NE36 0QS — FTTC is available but due to the distance from the cabinet our speed estimate is 17 Mbps versus a range of 12.5 to 23 Mbps.
- CB10 2DF — The postcode is split across two different cabinets, the majority of premises can get FTTC, but we do flag the cabinet as split across multiple postcodes and that not all of them have a FTTC based service.
- CB10 1DY — No FTTC available and is actually an exchange only line, but they do have Virgin Media cable available.
- MK10 7LB — OFNL (previously IFNL) and their full fibre service is available, usually these locations have no services from other operators.
- SW18 1HA — Hyperoptic Fibre to the Building service is available, alongside ADSL2+ services.
- BL4 9PG — Postcode where CityFibre has FTTP available using TalkTalk Future Fibre products
- SL7 3AW — Swish Fibre full fibre service, available in version 2.43 and later
The ability to advise users that not all premises will be served by the same Openreach technology is useful as while there are around 22 million premises served by a single cabinet, warning others that when they check on a providers’ sites for the full address may result in a different result means expectations have been managed.
The speed estimates for Openreach local loop technologies are based on own model of their network and the single figure estimate is usually towards to the lower end of the range that a full address lookup would provide. This is deliberate to allow for the fact that the estimate is based on the centroid of the postcode.
Frequently Asked Questions
How accurate is the data?
The dataset is dynamic and broadband roll-outs are on-going, so the data changes all the time. Over the years we have refined the accuracy and across the UK we believe the tolerance is +/- 0.1%; back in early 2016 this range was as wide as +/- 1%.
It is important to note that even if a particular technology is available for a postcode, individual providers may have a temporary hold on new orders in an area, or there may be wholesale capacity issues but with waiting lists available to operators, although this may not always be communicated to customers.
We welcome feedback from users where they see issues ordering services that we show as being available and update the database daily based on reports we receive. We investigate any feedback from users, and also flagged by our systems both on the specific postcode, but also wider groups of postcoes which may be subject to similar constraints, so we believe that we are the most ‘live’ UK broadband availability data set available. In some cases, we feed back into wholesale operators where their data is incorrect as well.
Is the data availability as a ‘flat data’ file, so we do not have to use the API?
For the purposes of broadband availability searches to drive a comparison engine we do not recommend using a flat data set due to the dynamic nature of the broadband roll-outs which change daily or weekly. We do offer availability information in downloadable formats for appropriate uses through our ThinkPoint data set service. If you are looking to use data to for example target mailshots to customers who have registered with you, we can offer solutions for bulk queries for this purpose; please contact us for more details.
What can we do with the data?
This API is intended for websites which need to check availability for a user considering broadband options on a ‘live’ basis. We do log lookups for audit and quality control purposes but we do not store any personal data in relation to such lookups as these are proxied through your server at all times and we only communicate with your server. We do not use lookups for any marketing purposes ourselves.
Can a partial set of results be returned?
Since we know that not everyone will want all the fields the data is clustered into different groups and when subscribing to the API the initial setup involves defining which sets of data you want to receive.
The list of data groups and a synopsis of what it provides follows:
- District Information: Type of council the postcode falls within and average speeds seen within the council area. Version 1.2 added regional level speed test results for last quarter.
- Coordinates: Latitude and longitude for the postcode
- Demographics: Number of premises in the postcode (current) and population (2011 Census)
- Exchange Information: Detail of the Openreach exchange postcode is connected to and information on the four other closest exchanges.
- Coverage: Core broadband coverage fields on the technologies available to the postcode
- Estimated Speeds: Estimated speeds for ADSL/ADSL2+ and VDSL2/Gfast available as a preformated text field e.g. 45 to 76 Mbps or a single raw figure to allow for your own formatting. Estimates for the postcode itself and surrounding area are provided. We also include two fields to indicate if a postcode is served by a single or multiple Openreach cabinets, which can be used as a confidence indicator.
- Speed Tests: Analysis from our speed test data on speeds seen in the last 3 months in the postcode and nearby postcodes
- Fastest: To help with the logic on what services to show we can say which technology we think offers the fastest fixed line speeds in a postcode e.g. ADSL, FTTC, cable or FTTP.
The descriptions relate to versions 2.20 of the API, as new data fields are introduced these are only supplied to those who request the appropriate data version i.e. if version 2.30 introduced a new broadband provider those requesting a 2.30 version or higher would see this information.
Version Information
Version 2.30 released 25th February 2020
Three new fields added to the coverage information, avail_infra_virginmedia_gig1, avail_infra_gnetwork, avail_infra_zzoomm. The three fields are only included if a call with version 2.3 or higher is set and return the standard available, not available text depending on whether the Virgin Media Gig1, g.network or zzoomm full fibre services are available.
Version 2.31 released 26th August 2020
For those accessing the API with the show retail options flag enabled, there are four new additional fields.
avail_retail_bt_consumer_gea_fttp
avail_retail_sky_gea_fttp
avail_retail_talktalk_gea_fttp
avail_retail_vodafone_gea_fttp
These are used to indicated if Openreach GEA FTTP (Fibre to the Premises) services are available in this postcode. There are more retailers who sell, but the majority are exact mirrors of the avail_infra_openreach_fttp field.
For the avail_retail_bt_consumer_gea_fttp field this is an exact mirror of the avail_infra_openreach_fttp field. The avail_retail_sky_gea_fttp and avail_retail_talktalk_gea_fttp fields as of 26th August 2020 will always return NOT_AVAILABLE, once a full launch occurs we will update our systems to reflect the whole or subset of the Openreach FTTP footprint they offer service in.
For the avail_retail_vodafone_gea_fttp field while they are still as of August 2020 only taking orders over the phone, for the exchanges where we have determined they sell FTTP we will return AVAILABLE if the avail_infra_openreach_fttp field is set to AVAILABLE. As of 26th August 2020 our database is setting this field on 16 exchanges. An example postcode for those wanting to test their system is L22 4RB.
Version 2.32 released 26th August 2020
The avail_retail_sky_gea_fttp field is now populated with AVAILABLE or NOT_AVAILABLE. It is a mirror of the avail_infra_openreach_fttp field. Once a better idea of any limits Sky impose on availability are known we will adjust the availability accordingly.
Update 25th September 2020
EE has launched its FTTP option, and this is available everywhere that Openreach have FTTP so if filtering packages using the API observe the avail_infra_openreach_fttp field.
Version 2.33 released 18th February 2021
Added four fields that cover current CityFibre FTTP deployments
avail_infra_cityfibre_talktalk
avail_infra_cityfibre_vodafone
avail_infra_cityfibre_zen
avail_infra_cityfibre_brawband
The avail_infra_cityfibre_vodafone is identical to the avail_infra_vodafone_gigafast field but has added to maintain constitency of naming in the new fields. Later versions may additional retailers as and when CityFibre is sold by more providers.
The TalkTalk option is set to available in areas of York, Dewsbury, Bolton, Milton Keynes, Aberdeen and Peterborough where CityFibre has its FTTP network available. This means in Milton Keynes, Aberdeen and Peterborough you will also have the avail_infra_cityfibre_vodafone field set.
Version 2.34 released 23rd February 2021
Addition of another two provider fields
avail_infra_fwnetworks_heybroadband
avail_infra_youfibre
fwnetworks is building FTTP in the Horsham, Godalming, High Wycombe and other areas.
youfibre is a FTTP provider in the North East around the Peterlee area.
Version 2.35 released 26th February 2021
Added field for CityFibre coverage in Portsmouth retailed by Giganet
avail_infra_cityfibre_giganet
Version 2.36 released 16th March 2021
Added field for Jurassic Fibre FTTP roll-out in the South West
avail_infra_jurassic_fibre
Version 2.37 released 15th May 2021
Added fields for six more FTTP providers
avail_infra_cityfibre_quickline
avail_infra_toob
avail_infra_wightfibre_fttp
avail_infra_wessexinternet_fttp
avail_infra_lila_connect
avail_infra_fibrus
Version 2.38 released 21st June 2021
Added field for another FTTP provider
avail_infra_pine_media
Version 2.39 released 25th June 2021
Added field for another FTTP provider
avail_infra_cityfibre_airbroadband
Also an additional field for Pine Media, this additional field is set to AVAILABLE when our system knows that Pine Media are selling Openreach Full Fibre at this location. The previous avail_infra_pine_media field refers to postcodes where Pine Media has installed its own FTTP infrastructure.
avail_retail_pine_media_gea_fttp
Version 2.40 released 28th July 2021
Added field for another FTTP provider
avail_infra_cityfibre_legendfibre
Version 2.41 released 5th August 2021
Added field for another FTTP provider
avail_infra_brsk
Version 2.42 released 18th August 2021
fastest_upload
New field to show what we expect fastest upload speed for a postcode to be. It should be pointed out that this is still the average figure for technologies such as ADSL/FTTC and .G.fast.
Only API consumers who have the fastest parameters turned on will be able to see this field, as is already the case with the fastest and tech field responses
Version 2.43 released 20th September 2021
Added field for another FTTP provider
avail_infra_swish_fibre
Version 2.44 released 29th September 2021
Added field for another FTTP provider
avail_infra_lit_fibre
Version 2.45 released 8th October 2021
Added field for one of the CityFibre FTTP retailers
avail_infra_cityfibre_fibrehop
Version 2.46 released 15th October 2021
Added field for another of the CityFibre FTTP retailers, which is flagged in the Lowestoft area for postcodes CityFibre have built to
avail_infra_cityfibre_idnet
A new FTTP network is also in the API – Lothian Broadband has a growing FTTP roll-out in Scotland, currently centred on Gifford
avail_infra_lothianbroadband_fibre
Version 2.47 released 22nd October 2021
Added two more fields
avail_infra_runfibre
A FTTP operator with its own network in the BS postcode area an example being BS32 9BT
avail_infra_6ginternet_wireless
A fixed wireless network operating in the North West, sample postcode BB3 3RL
Update 4th November 2021
As fields were already in place no change to the version number, but changes to the logic the API uses to populate the fields.
IDNet is a lead retailer in the Slough area for the CityFibre network i.e. avail_infra_cityfibre_idnet so present in version 2.46 calls, an example postcode is SL2 1HE
IDNet and Vodafone are both available in Reading but as IDNet is marked in our system as the lead retailer Vodafone CityFibre availability is only flagged in version 2.46 and later calls.
Version 2.48 released 3rd December 2021
Exposed another full fibre provider that was in our database
avail_infra_box_broadband
Version 2.49 released 22nd February 2022
Three new providers and changed behaviour for two other providers.
The avail_retail_vodafone_gea_fttp now mirrors the Openreach FTTP availability, since in checks it looks like Vodafone is selling Openreach FTTP in what looks like all parts of the UK.
The logic behind the field avail_infra_cityfibre_fibrehop has been altered, as part of initial improvements behind how we flag the CityFibre FTTP network resellers. Future changes to the other resellers will happen transparently and not require a call version number change.
avail_infra_cityfibre_digitalhome (CityFibre reseller in Portsmouth, Bournemouth and Southend)
avail_infra_exascale
avail_infra_cambridgefibre (FTTP network in Cambridge, only a small footprint as of 22nd Feb, footprint will expand once more checks have been carried out).
Version 2.50 released 30th March 2022
Multiple new fields for providers
avail_infra_cityfibre_pure_broadband (CityFibre reseller in Sheffield, Rotherham and Doncaster)
avail_infra_ms3_fttp FTTP network in Hull area with wholesale access
avail_infra_1310io_fttp The FTTP network built and owned by 1310io, currently not postcodes return availability. Waiting on work to add the coverage
avail_retail_1310io_gea_fttp The provider 1310io sell Openreach FTTP from the Basingstoke and Farnborough exchanges, so if Openreach FTTP is available this is set
avail_infra_lightspeed_fttp Lightspeed network is available in parts of Boston, Spalding and other places.
avail_infra_quickline_rural_fttp Quickline is already in the API, but this covers their FTTP network in rural Lincolnshire and North Yorkshire
avail_infra_digital_infrastructure_fttp Wholesale FTTP network builder that retails under the Be Fibre brand
Version 2.51 released 8th May 2022
To see these additional fields API customers need to contact thinkbroadband to ensure rights to access these fields have been granted. If you do not have the rights set on your account then you will not see these fields at all even if calling with a version number of 2.51 or higher.
avail_three_4g_speed The estimated maximum speed for a three mobile 4G service in a postcode in Mega bits per second (Mbps).
avail_three_5g_speed The estimated maximum speed for a three mobile 5G service in a postcode in Mega bits per second (Mbps).
In cases where the service is not available you will see a figure of 0 (zero) as the value returned. You will always get both fields returned e.g. 4G may be set to 10 Mbps and 5G is set to 0, or 4G is 0 and 5G is 200.
Data is supplied by three and any issues around the estimated maximum speed should be addressed at three. We will endeavour to update the data as and when updated sets are delivered by three.
If other 4G and 5G mobile providers want to add their data to the API then contact thinkbroadband to discuss sharing the data for use within the API.
Version 2.52 released 1st August 2022
Three new FTTP networks added and helper fields to identify where Zone Broadband services are available.
avail_retail_zone_broadband_gea_fttp Will be set to available if Openreach FTTP is available and the exchange is known to be one where Zone Broadband sell the service.
avail_retail_zone_broadband_gea_fttc Will be set to available if Openreach FTTC is available and the exchange is known to be one where Zone Broadband sell the service.
avail_infra_voneus_fttp If the Voneus FTTP service is available to the postcode in our database then field is set as available.
avail_infra_upp_fttp If the Upp FTTP service is available to the postcode in our database then field is set as available.
avail_infra_factco_fttp If the FactCo FTTP service is available to the postcode in our database then field is set as available.
Version 2.53 released 28th September 2022
Two new helper fields so that comparison sites can identify where Zen Internet has its on-net services available.
avail_retail_zen_gea_fttp Will be set to available if Openreach FTTP is available and the exchange is known to be one where Zen Internet has an on-net presence.
avail_retail_zen_gea_fttc Will be set to available if Openreach FTTC is available and the exchange is known to be one where Zen Internet has an on-net presence.
Version 2.54 released 12th October 2022
An option now exists to query the API by supplying a UPRN and its linked postcode, i.e. address level search. This only works for a limited number of networks but more may be added in time.
To access UPRN level look-ups please email us and we can discuss the limits and enable the option on the specific account.
Additional info for UPRN access added 24th January 2024
If UPRN level access is enabled for your API account, if your query via the API adds a UPRN parameter in addition to the postcode e.g.
https://api.thinkbroadband.com/inquiry.php?postcode=NW64ND&uprn=5103108&version=2.65&guid=[site_unique_guid]
then an additional field is included in the fields returned ie. avail_uprn_networks this field is an array listing the different networks available where we have UPRN level data to confirm availability.
In this example, you will get Hyperoptic and Openreach FTTP as available networks.
Postcode fields will sometimes flag availability when a UPRN search does not indicate it, and this may be because UPRN level information is missing, or postcode availability is ahead of the UPRN level data, or in worst case scenario the specific address cannot get a service. If you have both UPRN and Postcode availability then we would describe it as a high confidence result, if there are is differences in the two the confidence is lower but service may still be possible. In a small number of cases we will flag UPRN availability and there be no postcode level indicators, this is generally the case when one or two addresses in a much larger postcode can get the service.
Version 2.55 released 17th October 2022
Three new FTTP networks added.
avail_infra_4thutility_fttp If the building has the 4th Utility service available to order and is in our database we will flag as available.
avail_infra_gofibre_fttp For areas of Scotland where the gofibre service is believed to be avialable we will set the field accordingly.
avail_infra_swsbroadband_fttp Will be set to available if the SWS Broadband full fibre service is available.
Version 2.56 released 23rd November 2022
One new FTTP networks added.
avail_infra_ogi_fttp For postcode where Ogi (i.e Spectrum Internet) has its FTTP service available.
Version 2.57 released 26th November 2022
One new retail helper field for CityFibre wholesale FTTP networks added.
avail_infra_cityfibre_toob For postcode where toob retail services are available across the CityFibre network. Remember this is different to the avail_infra_toob field which is only flagged in locations where toob have their own FTTP network. CityFibre resellers should also start to appear in native toob areas, but our checking has not seen any yet.
Plymouth is now also flagging as a CityFibre area via TalkTalk retail services.
Version 2.58 released 24th April 2023
Two new ISP fields
avail_infra_airband_fttp For postcodes where the AirBand full fibre service is available. Remember they also have an existing field for their fixed wireless service avail_infra_airband_wireless. There are some postcodes where both their FTTP and fixed wireless is available, we recommend just showing the FTTP packages in that case.
avail_infra_grayshottgigabit_fttp Another FTTP network in the Grayshott area of Hampshire.
Version 2.59 released 18th May 2023
A new ISP field
avail_infra_connect_fibre_fttp For postcodes where the Connect Fibre full fibre service is available.
There was also a change to the logic on 17th May 2023, so that in postcodes where Vodafone sell on both the Openreach and CityFibre FTTP networks that we only show availability of the CityFibre FTTP product for Vodafone. Previously you would see avail_retail_vodafone_gea_fttp and avail_infra_cityfibre_vodafone set to AVAILABLE, but as of 17th May we will only show AVAILABLE in the avail_infra_cityfibre_vodafone field. This is due to Vodafone prefering to use the CityFibre network where it is available.
Logic change affecting FTTC 2nd June 2023
The Openreach restriction dates are now being observed in the responses from the API servers. This means if FTTC is available but a restriction date has been imposed to give priorty to Openreach FTTP installations then the field avail_infra_openreach_fttc will be forced to NOT_AVAILABLE. This is to reflect the reality that retailers will not install FTTC to people in those postcodes. If FTTP is not available but FTTC then FTTC will still be flagged as available.
Version 2.60 released 12th June 2023
A new field to help filter packages for comparison purposes
avail_infra_any_alt_net_fttp
The field uses the standard AVAILABLE and NOT_AVAILABLE notations. If an alt-net FTTP network is available then it is set to available. An alt-net FTTP network is considered to be any full fibre network that is not Openreach FTTP, Virgin Media RFOG or KCOM Lightstream. The field is set even if the alt-net is not a provider specifically called out in the API, which is the case for some of the smaller 20 to 50 alt FTTP providers.
Additionally a small further change to the logic around the Openreach stop sell restrictions, so that if FTTP is available in a postcode that is also restricted, as well FTTC being marked as NOT_AVAILABLE, the BT Wholesale ASDL and ADSL2+ services are also marked as NOT_AVAILABLE.
Version 2.61 released 6th July 2023
A new field to add to the FTTP options in the Hull area
avail_infra_connexin_fttp
Connexin sell via their own network which this field reflects, but also as a partner on the KCOM Lightstream network. We also already had the MS3 network mapped that is the third physical FTTP network in the Hull area.
Version 2.62 released 10th August 2023
A new field to add to the list of FTTP networks
avail_infra_fullfibreltd_fttp
Full Fibre Ltd is a wholesale network, so sells via their own brand Fibre Heroes, along with others such as BeFibre.
Version 2.63 released 6th September 2023
Two new fields related to the Openreach Stop Sell/FTTP priority programme and improved logic around Stop Sell logic that was in the API.
openreach_fttp_priority_active will supply a simple NO if FTTP priority is not active in this postcode, or YES if it is.
openreach_fttp_priority_predicted will provide the date that the FTTP priority started, or if NO was specified in the active field and a date has been set but is still in the future you will get the date in d-m-Y format e.g. 21-10-2022
New build released 20th October 2023
To help improve listings now that providers are stopping to sell ADSL/ADSL2+ services where Openreach FTTC or FTTP services are available logic controlling availability of ADSL/ADSL2+ fields has changed. This affects the fields
avail_infra_btwholesale_adsl2plus_wbc
avail_infra_btwholesale_ipstream_max
avail_infra_sky_llu_adsl2plus
avail_infra_talktalk_llu_adsl2plus
So an exchange only postcode like CB10 1DY is still showing ADSL2+ options, but RH19 3XB will not show ADSL/ADSL2+ options anymore. For long lines such as RH19 3PX the ADSL/ADSL2+ options will remain since the line is so long that FTTC will likely provide no benefit.
This build update requires no changes from those consuming the API.
Version 2.64 released 14th November 2023
Two new fields for different networks.
avail_infra_nexfibre The XGS-PON joint venture roll-out by Virgin Media O2 is flagged in addition to the setting of the usual Virgin Media fields. The nexfibre network should be available via other retailers in the future, for now the difference compared to the existing DOCSIS 3.1 network is that in nexfibre areas only the Virgin Media Stream TV service is available. Example postcode being BD20 7NN
avail_infra_lightning_fibre Full fibre network available in various towns along the south coast, example postcode is BN21 3YA
Version 2.65 released 11th January 2024
Three new fields for different networks.
avail_infra_country_connect_fttp Full fibre network available in parts of South Wales, example postcode is NP18 1BT
avail_infra_county_broadband_fttp Full fibre network available in various places across the East of England, example postcode is CO7 6JR
avail_infra_wildanet_fttp Full fibre network available in a variety of locations across South West England, example postcode is TR27 4BE
Version 2.66 released 15th January 2024
Two new helper fields to make it easier for comparison sites to filter part-fibre (VDSL2) packages. The notes for this update are lengthy due to the number of variations possible.
avail_infra_openreach_fttc_hide_fast If VDSL2 is available and speeds are expected to be more in line with the slower VDSL2 package then the field is set to YES. The field is also set to YES if FTTC is not available. The boundary value used is if our est_raw_fttcp_download_postcode field has a value under 36 Mbps.
avail_infra_openreach_fttc_hide_all If VDSL2 is available but speeds are expected to be very slow then the field is set to YES. The field is also set to YES if FTTC is not available. The boundary value used is if our est_raw_fttcp_download_postcode field has a value under 2 Mbps. At speeds under 2 Mbps which indicates a long distance from the VDSL2 cabinet it is often the case that ADSL/ADSL2+ would be a better product option.
The speeds are based on our expectations for what people will see once they’ve signed up for a service from a speed test, and this model has been refined over the past decade. The figure is relatively pessimistic the idea, the reason being to ensure people’s expectations are managed.
When showing the FTTC/VDSL/part-fibre package listings you can use the field est_raw_fttcp_download_postcode to generate an average speed for the postcode, the field is always an integer and for display to the public you would need to append units of Mbps (Mega bits per second). Another option is to use the est_fttcp_download_postcode field which is preformatted e.g. 10 to 20 Mbps
When showing the ADSL/ADSL2+ package listings you can use the field est_raw_adsl2plus_download_postcode to generate an average speed for the postcode, the field is always an integer and for display to the public you would need to append units of Mbps (Mega bits per second).
The FTTP Priority programme from Openreach means that in an increasing number of areas they do not sell FTTC any more and any migrations or new connections will be over FTTP. The API handles this by hiding FTTC availability, so there are areas of the UK where VDSL2 exists, but we don’t show it simply because Openreacch is prioritising connecting people to FTTP if it is available.
To help some example postcodes and what we expect the fields to show. Please note this is based on service availability on 15th January 2024, and roll-outs of Openreach FTTP will probably see some changes over the next few years.
CO3 9EH “avail_infra_openreach_fttc_hide_fast”:”NO”,”avail_infra_openreach_fttc_hide_all”:”NO” Cabinet is in the same postcode so speeds are maximum possible from VDSL2 at 80 Mbps.
CO3 8DD “avail_infra_openreach_fttc_hide_fast”:”YES”,”avail_infra_openreach_fttc_hide_all”:”NO” Cabinet is some distance away with an estimated speed around 30 Mbps, so no point in listing Fibre 2 type products with suggested speeds of 65 Mbps for example.
NE61 3QT “avail_infra_openreach_fttc_hide_fast”:”YES”,”avail_infra_openreach_fttc_hide_all”:”YES” At over 2km from the VDSL2 cabinet we estimate speeds of close to zero, so no point showing the part-fibre packages. In this case ADSL/ADSL2+ speeds are very poor too, best service is likely to be via a wireless service e.g. 4G or satellite broadband.
AB10 1PG “avail_infra_openreach_fttc_hide_fast”:”NO”,”avail_infra_openreach_fttc_hide_all”:”NO” The estimated FTTC speed is 45 Mbps, but importantly Openreach FTTP is available, so while we don’t suggest hiding FTTC packages you may prefer to highlight the Openreach services rather than the part-fibre products.
AB11 8DL “avail_infra_openreach_fttc_hide_fast”:”YES”,”avail_infra_openreach_fttc_hide_all”:”YES”. The postcode has Openreach FTTP available within it and is in a FTTP Priority area, so while FTTC is available we are masking the part-fibre service options. The est_fttcp_download_postcode field field since FTTC is being masked reflects the standard Gigabit 900 Mbps type speeds from full-fibre.
AB12 4NR “avail_infra_openreach_fttc_hide_fast”:”YES”,”avail_infra_openreach_fttc_hide_all”:”NO”. The postcode has Openreach FTTP available, but the stop sell is not in place, so people can currently still order VDSL2 services, though in this example the distance from the cabinet suggests speeds would just be in the region of 10 Mbps. In terms of showing packages, we’d expect to see the Fibre 1 package, but the full range of full-fibre ones i.e. Full Fibre 1, Full Fibre 2, Full Fibre 500 etc
AB43 7HB “avail_infra_openreach_fttc_hide_fast”:”YES”,”avail_infra_openreach_fttc_hide_all”:”YES” The postcode is a long way from its cabinet so probably just 1 Mbps from VDSL2, but fortunately Openreach FTTP is also available. So rather than Fibre 1 and Fibre packages you’d show the Full Fibre 1 and Full Fibre 2 packages.
Version 2.67 released 24th January 2024
An additional field for the satellite broadband service supplier BRDY
avail_infra_brdy_satellite
There is also data at the UPRN level, so will appear in the UPRN search result array as BRDY Satellite.
Data covers slow Scottish postcodes specifically.
Update 6th February 2024
No new version number but a change in data due to the merger of two providers. Full Fibre Ltd and Digital Infrastructure Ltd have consolidated, and the old Be Fibre service is now part and parcel of Full Fibre Ltd. The old Digital Infrastructure postcodes have changed to be Full Fibre Ltd.
At the postcode level we have updated the code to set avail_infra_digital_infrastructure_fttp as AVAILABLE where Full Fibre Ltd is available, in addition to the expected avail_infra_fullfibreltd_fttp field.
At the UPRN level, we have moved the addresses across too, but you will only see the Full Fibre Ltd as an UPRN network option.
Version 2.68 released 28th February 2024
A new CityFibre retailer and two helper fields to assist in filtering Plusnet broadband packages
avail_infra_cityfibre_cuckoo
For accounts with UPRN access this will show up as CityFibre Cuckoo. Field reflects where Cuckoo say they can provide a full-fibre service over the Openreach network, an example postcode being SR1 2JN.
Two retail helper fields to assist in knowing which Plusnet packages to display.
avail_retail_plusnet_adsl
The field is set to AVAILABLE if you should show Plusnet ADSL/ADSL2+ packages
avail_retail_plusnet_fttc
The field is set to AVAILABLE if you should show Plusnet FTTC/VDSL2 packages
This avoids the need for complicated decision logic in the package filters, since in locations where FTTC is available Plusnet will usually only show visitors the FTTC packages.
Version 2.69 released 13th March 2024
A new CityFibre retailer field has been added, and will be reflected with address level UPRN queries as CityFibre Beebu. The retailer will also be available via other alt-nets whose fields are already present.
avail_infra_cityfibre_beebu
Extra field for Quickline to show availability for their wireless products
avail_infra_quickline_wireless
This field is in addition to the previously available field that covers their on-net full-fibre service i.e. avail_infra_quickline_rural_fttp If the wireless service is the fastest service and you consume the fastest download, upload and tech fields it will be populated with the appropriate speeds.
The alt-net operator Freedom Fibre which is available via an increasing number of retailers has been added
avail_infra_freedomfibre_fttp
Update 19th April 2024
No change to the version number for API calls, but improved data and logic for some of the CityFibre resellers.
Version 2.70 released 27th April 2024
Changes to the logic so that sites using the API can match the product display logic that the TalkTalk site will show to visitors e.g. offer CityFibre full-fibre in preference to Openreach full-fibre products. Also if either full-fibre option is available, do not show the FTTC or ADSL2+ products for TalkTalk and finally only show the ADSL2+ service if that is the only option.
The changes operate at both the postcode resolution and also for those calling the API with postcode+UPRN (i.e. address level).
As FTTC products were previously usually keyed from the Openreach FTTC field we have added specific FTTC fields now for Vodafone, Sky and TalkTalk. So for the full product suppression to work you need to call the API using version 2.70 and make sure the TalkTalk products are associated correctly, as the following list shows:
-
-
- Show CityFibre TalkTalk FTTP products when the field avail_infra_cityfibre_talktalk is set to AVAILABLE
- Show Openreach TalkTalk FTTP products when the field avail_retail_talktalk_gea_fttp is set to AVAILABLE
- Show FTTC/VDSL2/part fibre products when the field avail_retail_talktalk_fttc is set to AVAILABLE
- Show CityFibre ADSL2+ products when the field avail_infra_talktalk_llu_adsl2plus is set to AVAILABLE
-
The new fields in version 2.70 are
-
-
- avail_retail_talktalk_fttc
- avail_retail_sky_fttc
- avail_retail_vodafone_fttc
-
When updating your logic processing the API response we recommend as well as linking the TalkTalk FTTC products to the new field for TalkTalk that you do the same for Sky and Vodafone. By linking all three fields today you will get any changes to the logic without additional work in the future.
Update 2nd May 2024
Box Broadband is now integrated into Community Fibre so the field avail_infra_box_broadband will never return AVAILABLE. The existing Box Broadband footprint is now flagged via the field avail_infra_community_fibre.
Version 2.71 released 17th July 2024
One new field openreach_fttp_speed which is used to indicate whether to display the multi-gig 1.6 Gbps and faster services that are available in some Openreach full fibre areas.
If openreach_fttp_speed is returning an integer of 1600 then the various 1.6 and 1.8 Gbps services are available to the majority of premises in the postcode.
If accessing at the UPRN/address level then an additional entry will appear in the UPRN availability array ie. Openreach FTTP Speed 1600
The standard speed figure is 900 for areas where Openreach FTTP is available.
This field is in addition to the est_raw_fttcp_download_postcode field which in cases where Openreach full fibre is available in addition to VDSL2 you still get our VDSL2 (FTTC) speed estimate.
Another change has taken place in the logic around Cuckoo CityFibre availability (i.e. the field avail_infra_cityfibre_cuckoo), this requires no change from users of the API service, the changes should improve availability information such that it will more closely mirror what Cuckoo say.
Version 2.72 released 12th August 2024
Two new fields to help support Cuckoo retail operations. Postcode resolution Openreach FTTP and also an address resolution field.
avail_retail_cuckoo_gea_fttp will be set to AVAILABLE when the majority of premises in a postcode can order a Cuckoo Openreach based FTTP service.
avail_uprn_networks now has an additional possible entry CUCKOO GEA FTTP which will get added to the array when Openreach FTTP is available and Cuckoo have indicated they can sell to that property.
IMPORTANT: The Cuckoo Openreach FTTP footprint is a subset of the full Openreach FTTP footprint, so there will be times when Cuckoo is not available but other retailers are.
Version 2.73 released 5th September 2024
Another field for a CityFibre reseller who sells CityFibre full fibre on a subset of the CityFibre footprint.
avail_infra_cityfibre_4thutility well be set to AVAILABLE if 4th Utility are reselling a CityFibre service to the majority of premises in the postcdoe.
The field avail_uprn_networks provides an address level overview, and if querying the API with a UPRN and this field contains CityFibre 4th Utility then the service is available to that specific address. NOTE: If the you are making a UPRN level query ignore the avail_infra_cityfibre_4thutility field as the address level data should be more specific. The rules applies to all the networks we hold address level data on.
Also have expanded the how to interpret API sample at the bottom of the page.
Logic update 9th October 2024
Logic handling the CityFibre footprint updated adding support for the AL area and range of retailers. Also small changes in logic in IP and NR areas to ensure correct retailer options appear. Since this is a logic change it is live for all API users with no need to add an additional version number.
Version 2.74 released 20th November 2024
With Lit Fibre now onboarding with CityFibre, areas where the full fibre alt-net was previously available are now available to a number of CityFibre resellers and as areas complete the final CityFibre checks we are adding the relevant CityFibre coverage. To align with other CityFibre resellers an additional field has been added for LitFibre, the old avail_infra_lit_fibre field will still show coverage for Lit Fibre but we recommend adopting this new CityFibre linked field.
avail_infra_cityfibre_litfibre
As the transition from a vertically integrated alt-net to CityFibre is ongoing there will be areas where the old Lit Fibre shows availability but the new cityfibre field does not, but this is expected to resolve over the next few months.
Logic Update for Be Fibre packages 21st November 2024
To support the BeFibre 2300 package the previous consolidation between Full Fibre Ltd and Digital Infrastructure has been reversed.
When the field avail_infra_fullfibreltd_fttp says available or Full Fibre Ltd appears in the UPRN data you should show the Be150, Be500, Be900 and Be2300 retail products. Example postcode S42 5LN
When the field avail_infra_digital_infrastructure_fttp says available or Digital Infrastructure appears in the UPRN data you should show the Be150, Be500 and Be900 retail products. Example postcode SK14 6BQ
Logic update for address level LitFibre within CityFibre footprint 26th November 2024
“CityFibre Litfibre” will now appear in the avail_uprn_networks array if we get an address level match. This is only visible to API customers who have UPRN level access enabled.
Version 2.75 released 4th November 2024
For API accounts where three mobile coverage data is included there is an additional field giving an indication of the expected three 5G speeds when outdoors in the postcode.
avail_three_5g_outdoor_speed
As with the avail_three_4g_speed and avail_three_5g_speed fields the field contains an integer value for the expected service speed e.g. 150 for the postcode AB10 7HQ
Version 2.76 released 1st April 2025
Lothian Broadband who trade as Highland Broadband was previously available under another field name, a new field has been added avail_infra_highland_broadband_fibre to reflect what most people refer to the service as.
UPRN level information is also available in the avail_uprn_networks array with the entry Highland Broadband Fibre
Version 2.77 released 8th April 2025
Field avail_infra_b4sh added to allow package searches for full fibre from Broadband 4 Surrey Hills.
Version 2.78 released 15th April 2025
Field avail_infra_singlemode_ecom added to allow package searches for full fibre from Single Mode Networks Ltd
Version 2.79 released 28th April 2025
Two existing fields have had logic updated to reflect what retailers are doing i.e. if full fibre (FTTP) available they do not offer up front FTTC services. These changes are in addition to previous Openreach Stop Sell notifications that we handle.
avail_retail_sky_fttc and avail_retail_vodafone_fttc introduced in version 2.70 a year ago have updated behaviour.
Two new retail helper fields have been added in this version
avail_retail_bt_consumer_fttc which covers VDSL2 products for BT, EE and Plusnet.
avail_retail_generic_fttc which reflects the FTTC availability but for any other unnamed reseller of Openreach FTTP who hides Openreach FTTC products if FTTP available.
The old infrastructure field avail_infra_openreach_fttc has not had any changes and will still say AVAILBLE if VDSL2 is at all available and the stop sell notice is not in effect.
The additional retailer fields will help in presenting a shorter product list to visitors and steer people towards the more logical full fibre services.
Version 2.80 released 27th May 2025
avail_infra_grain a new field to show whether postcode has access to Grain Connect full fibre
Logic Update 28th May 2025
We now hold address level data for the Three mobile network and therefore UPRN level queries will see additional fields for Three in the avail_uprn_networks array i.e.
Three4G
Three5GIndoors
Three5GOutdoors
If no availability you will get none of the fields, otherwise it will be 1, 2 or 3 of these depending on what is available.
The previous postcode resolution fields avail_three_4g_speed, avail_three_5g_speed and avail_three_5g_outdoor_speed are still populated with the respective speeds of 10, 150 and 150 Mbps if service is available to the majority of premises in a postcode.
Version 2.81 released 30th May 2025
New field avail_infra_community_fibre_premium that is set to AVAILABLE when the 2.5 Gbps and 5 Gbps XGS-PON options are available from Community Fibre.
The string Community Fibre Premium will also appear in the avail_uprn_networks field if the address can supply the 2.5 Gbps and 5 Gbps options. This is in addition to the older 1 Gbps and slower service entry of Community Fibre.
Version 2.82 released 5th June 2025
New field avail_infra_cityfibre_sky is set to AVAILABLE if the majority of premises in the postcode can get a CityFibre service using Sky as the retailer.
For API customers using address resolution calls the avail_uprn_networks will see Cityfibre Sky appearing if the address can order a Sky service using the CityFibre wholesale network.
Priority is given to the CityFibre product if Openreach full fibre or part fibre services are available. The priority applies to both postcode resolution and address resolution calls.
Version 2.83 released 16th June 2025
Grayshott Gigabit who trade as GigabitIQ is now available on multiple network footprints and therefore to help people list the right products we have added two fields
avail_retail_gigabitiq_a which will show availability in the FW Networks or Full Fibre Ltd footprints.
avail_retail_gigabitiq_b which will show availability in the Grayshott Gigabit own network area or Gigaclear areas.
Additionally the address field avail_uprn_networks array shows the two options as GigabitIQ A or GigabitIQ B
There are overlaps between some of these networks, but the A products take precedence as they are generally cheaper. The old entries of Grayshott Gigabit at UPRN resolution and avail_infra_grayshottgigabit_fttp at postcode resolution remain unchanged. We recommend to switch from the old fields to the newer fields as it increases footprint substantially.
Version 2.84 released 17th June 2025
Green Co Fibre to the Premises is now available via the API both at postcode and address resolution.
avail_infra_greenco_fttp will show AVAILABLE if majority of premises can order their FTTP
For those querying via UPRN the array avail_uprn_networks will have Green Co FTTP present if the address can order Green Co FTTP.
Version 2.85 released 16th July 2025
ofcom_market is now available and will be an integer value of 1, 2 or 3. The values 2 and 3 are the main ones used, with 2 representing areas Ofcom considered would be highly competitive in its 2021 telecoms review. Area 3 is the less competitive areas. Area 2 aligns with the Openreach Equinox offers and therefore can be useful in determining what price to list when providers have varying prices based on the location.
avail_retail_4thutility_gea_fttp_market_2
avail_retail_4thutility_gea_fttp_market_3
4th Utility is already in the API for its own network and availability via the CityFibre FTTP network. They are now selling via the Openreach GEA FTTP platform, and the pricing varies depending on the area, hence two entries. NOTE: If their native network or CityFibre is available these fields will give no availability.
For those using the UPRN level access 4thUtility GEA FTTP Market 2 or 4thUtility GEA FTTP Market 3 will appear in the avail_uprn_networks array if the supplied UPRN can get service.
Version 2.86 released 11th August 2025
avail_infra_cityfibre_any
Field is set to AVAILABLE if any of the many CityFibre retailers can provide a service to the majority of premises in a postcode. The CityFibre wholesale network has different retailers available in different areas, so you can get some CityFIbre retailers who are not available in a specific location.
Is the API available in other formats?
Other formats such as XML can be requested and served in response to the request, but core data set will remain the same. Unusual or custom formats may carry additional development costs on top of ongoing API access charges.
Field Definitions
Grouped based on their grouping flag, the full list of fields is as follows:
Group | Field | Example and Notes |
---|---|---|
Always Present | api_version | 2.3 floating point value confirming the version of the API call you made |
Always Present | postcode | Postcode e.g. L1 9DW |
District Info | country | England, Scotland, Wales or Northern Ireland |
District Info | region | East Midlands, East of England, London, North East England, North West England, Northern Ireland, Scotland, South East England, South West England, Wales, West Midlands or Yorkshire and Humber |
District Info | district | Text name for the district council or local authority. One council name from a list of 208 possible ones. |
District Info | is_london_borough | YES or NO |
District Info | is_unitary_authority | YES or NO |
District Info | is_metro_district | YES or NO |
District Info | district_code | E08000012 i.e. the ONS code that corresponds to the council named in the ‘district’ field |
District Info | mean_council_download_quarter | 39.8 (in Mega bits per second to 1 decimal place – quarter is previous full quarter) |
District Info | mean_council_upload_quarter | e.g. 6.8 |
District Info | median_council_download_quarter | e.g. 26.4 |
District Info | median_council_upload_quarter | e.g. 5.1 |
District Info | region_quarter | Name of UK region the quarter speed test results refer to. |
District Info | mean_region_download_quarter | 33.3 |
District Info | mean_region_upload_quarter | 6.5 |
District Info | median_region_download_quarter | 24.1 |
District Info | median_region_upload_quarter | 4.8 |
District Info | mean_region_latency_quarter | 49 (an integer in milliseconds) |
District Info | median_region_quality_quarter | 0.6 (floating point value used for comparing speed tests) |
Coord | latlng | e.g. 53.401277000000000,-2.974188000000000 |
Coord | lat | e.g. 53.401277000000000 |
Coord | lng | e.g. -2.974188000000000 |
Demographics | households | 20 (NOTE Field makes no distinction between residential and business premises – this is expected to change in a future version) |
Demographics | population | 0 (taken from Census 2011 data) |
Exchange Info | exchange_code | LVROY (standard code name for Openreach exchange telephone line connects to) |
Exchange Info | exchange_name | ROYAL |
Exchange Info | exchange_distance | e.g. 219 (integer distance in metres from center of postcode to the exchange building) |
Exchange Info | exchange_code_near_1, exchange_code_near_2, exchange_code_near_3, exchange_code_near_4 | Code for the next nearest four exchanges |
Exchange Info | exchange_name_near_1, exchange_name_near_2, exchange_name_near_3, exchange_name_near_4 | Name of next nearest four exchanges |
Exchange Info | exchange_latlng | e.g. 53.401074548615924,-2.9767674932372756 |
Exchange Info | exchange_lat | e.g. 53.401074548615924 |
Exchange Info | exchange_lng | e.g. -2.9767674932372756 |
Exchange Info | exchange_lat_near_1, exchange_lat_near_2, exchange_lat_near_3, exchange_lat_near_4 | Latitude of next nearest four exchanges, useful for populating any locality map shown to visitors |
Exchange Info | exchange_lng_near_1, exchange_lng_near_2, exchange_lng_near_3, exchange_lng_near_4 | Longitude |
Exchange Info | exchange_market | A or B, based on market grouping assigned to exchange by Ofcom |
Coverage | ofcom_market | Added in version 2.85 of the API. Integer 1, 2 or 3 depending on Ofcom Market postcode is in |
Coverage | avail_infra_virginmedia_gig1 | Either AVAILABLE or NOT_AVAILABLE Version 2.3 and higher only |
Coverage | avail_infra_virginmedia_gig1 | Either AVAILABLE or NOT_AVAILABLE Version 2.3 and higher only |
Coverage | avail_infra_openreach_fttc | Either AVAILABLE or NOT_AVAILABLE |
Coverage | avail_infra_openreach_fttp | Either AVAILABLE or NOT_AVAILABLE |
Coverage | avail_infra_openreach_gfast | Either AVAILABLE or NOT_AVAILABLE NOTE: Postcodes too far from a live pod will return NOT_AVAILABLE |
Coverage | avail_infra_btwholesale_ipstream_max | Either AVAILABLE or NOT_AVAILABLESome exchanges still don’t have the basic ADSL service available |
Coverage | avail_infra_btwholesale_adsl2plus_wbc | Either AVAILABLE or NOT_AVAILABLE |
Coverage | avail_infra_sky_llu_adsl2plus | Either AVAILABLE or NOT_AVAILABLE |
Coverage | avail_infra_talktalk_llu_adsl2plus | Either AVAILABLE or NOT_AVAILABLE |
Coverage | avail_infra_kc_adsl2plus | Either AVAILABLE or NOT_AVAILABLE |
Coverage | avail_infra_kc_fttp | Either AVAILABLE or NOT_AVAILABLE |
Coverage | avail_infra_hyperoptic_fttp | Either AVAILABLE or NOT_AVAILABLE |
Coverage | avail_infra_gigaclear_fttp | Either AVAILABLE or NOT_AVAILABLE |
Coverage | avail_infra_gnetwork | Either AVAILABLE or NOT_AVAILABLE Version 2.3 and higher only |
Coverage | avail_infra_ifnl_fttp | Either AVAILABLE or NOT_AVAILABLE |
Coverage | avail_infra_b4rn_fttp | Either AVAILABLE or NOT_AVAILABLE |
Coverage | avail_infra_airband_wireless | Either AVAILABLE or NOT_AVAILABLE |
Coverage | avail_infra_vodafone_gigafast | Either AVAILABLE or NOT_AVAILABLE |
Coverage | avail_infra_community_fibre | Either AVAILABLE or NOT_AVAILABLE |
Coverage | avail_infra_truespeed | Either AVAILABLE or NOT_AVAILABLE |
Coverage | avail_infra_trooli | Either AVAILABLE or NOT_AVAILABLE |
Coverage | avail_infra_virginmedia_gig1 | Either AVAILABLE or NOT_AVAILABLE Version 2.3 and higher only |
Coverage | avail_infra_zzoomm | Either AVAILABLE or NOT_AVAILABLE Version 2.3 and higher only |
Coverage | avail_infra_cityfibre_talktalk | Either AVAILABLE or NOT_AVAILABLE Version 2.33 and higher only |
Coverage | avail_infra_cityfibre_any | Either AVAILABLE or NOT_AVAILABLE Version 2.86 and higher only |
Coverage | avail_infra_cityfibre_zen | Either AVAILABLE or NOT_AVAILABLE Version 2.33 and higher only |
Coverage | avail_infra_cityfibre_brawband | Either AVAILABLE or NOT_AVAILABLE Version 2.33 and higher only |
Coverage | avail_infra_cityfibre_vodafone | Either AVAILABLE or NOT_AVAILABLE Version 2.33 and higher only |
Coverage | avail_infra_cityfibre_fibrehop | Either AVAILABLE or NOT_AVAILABLE Version 2.45 and higher only |
Coverage | avail_infra_cityfibre_idnet | Either AVAILABLE or NOT_AVAILABLE Version 2.46 and higher only |
Coverage | avail_infra_runfibre | Either AVAILABLE or NOT_AVAILABLE Version 2.47 and higher only |
Coverage | avail_infra_6ginternet_wireless | Either AVAILABLE or NOT_AVAILABLE Version 2.47 and higher only |
Coverage | avail_infra_fwnetworks_heybroadband | Either AVAILABLE or NOT_AVAILABLE Version 2.34 and higher only |
Coverage | avail_infra_youfibre | Either AVAILABLE or NOT_AVAILABLE Version 2.34 and higher only |
Coverage | avail_infra_cityfibre_giganet | Either AVAILABLE or NOT_AVAILABLE Version 2.35 and higher only |
Coverage | avail_infra_jurassic_fibre | Either AVAILABLE or NOT_AVAILABLE Version 2.36 and higher only |
Coverage | avail_infra_cityfibre_quickline | Either AVAILABLE or NOT_AVAILABLE Version 2.37 and higher only |
Coverage | avail_infra_toob | Either AVAILABLE or NOT_AVAILABLE Version 2.37 and higher only |
Coverage | avail_infra_wightfibre_fttp | Either AVAILABLE or NOT_AVAILABLE Version 2.37 and higher only |
Coverage | avail_infra_wessexinternet_fttp | Either AVAILABLE or NOT_AVAILABLE Version 2.37 and higher only |
Coverage | avail_infra_lila_connect | Either AVAILABLE or NOT_AVAILABLE Version 2.37 and higher only |
Coverage | avail_infra_fibrus | Either AVAILABLE or NOT_AVAILABLE Version 2.37 and higher only |
Coverage | avail_infra_pine_media | Either AVAILABLE or NOT_AVAILABLE Version 2.38 and higher only |
Coverage | avail_infra_cityfibre_airbroadband | Either AVAILABLE or NOT_AVAILABLE Version 2.39 and higher only |
Coverage | avail_retail_pine_media_gea_fttp | Either AVAILABLE or NOT_AVAILABLE Version 2.39 and higher only |
Coverage | avail_infra_cityfibre_legendfibre | Either AVAILABLE or NOT_AVAILABLE Version 2.40 and higher only |
Coverage | avail_infra_brsk | Either AVAILABLE or NOT_AVAILABLE Version 2.41 and higher only |
Coverage | avail_infra_swish_fibre | Either AVAILABLE or NOT_AVAILABLE Version 2.43 and higher only |
Coverage | avail_infra_lit_fibre | Either AVAILABLE or NOT_AVAILABLE Version 2.44 and higher only. As of version 2.74 for new API users we recommend using the field avail_infra_cityfibre_litfibre |
Coverage | avail_infra_lothianbroadband_fibre | Either AVAILABLE or NOT_AVAILABLE Version 2.46 and higher only |
Coverage | avail_infra_highland_broadband_fibre | Either AVAILABLE or NOT_AVAILABLE Version 2.76 and higher only |
Coverage | avail_infra_box_broadband | Either AVAILABLE or NOT_AVAILABLE Version 2.48 and higher only |
Coverage | avail_infra_cityfibre_digitalhome | Either AVAILABLE or NOT_AVAILABLE Version 2.49 and higher only |
Coverage | avail_infra_exascale | Either AVAILABLE or NOT_AVAILABLE Version 2.49 and higher only |
Coverage | avail_infra_cambridgefibre | Either AVAILABLE or NOT_AVAILABLE Version 2.49 and higher only |
Coverage | avail_infra_cityfibre_pure_broadband | Either AVAILABLE or NOT_AVAILABLE Version 2.5 and higher only |
Coverage | avail_infra_ms3_fttp | Either AVAILABLE or NOT_AVAILABLE Version 2.5 and higher only |
Coverage | avail_infra_1310io_fttp | Either AVAILABLE or NOT_AVAILABLE Version 2.5 and higher only |
Coverage | avail_infra_lightspeed_fttp | Either AVAILABLE or NOT_AVAILABLE Version 2.5 and higher only |
Coverage | avail_infra_quickline_rural_fttp | Either AVAILABLE or NOT_AVAILABLE Version 2.5 and higher only |
Coverage | avail_infra_digital_infrastructure_fttp | Either AVAILABLE or NOT_AVAILABLE Version 2.5 and higher only |
Coverage | avail_retail_1310io_gea_fttp | Either AVAILABLE or NOT_AVAILABLE Version 2.5 and higher only |
Coverage | avail_infra_voneus_fttp | Either AVAILABLE or NOT_AVAILABLE Version 2.52 and higher only |
Coverage | avail_infra_upp_fttp | Either AVAILABLE or NOT_AVAILABLE Version 2.52 and higher only |
Coverage | avail_infra_factco_fttp | Either AVAILABLE or NOT_AVAILABLE Version 2.52 and higher only |
Coverage | avail_retail_zone_broadband_gea_fttp | Either AVAILABLE or NOT_AVAILABLE Version 2.52 and higher only |
Coverage | avail_retail_zone_broadband_gea_fttc | Either AVAILABLE or NOT_AVAILABLE Version 2.52 and higher only |
Coverage | avail_retail_zen_gea_fttp | Either AVAILABLE or NOT_AVAILABLE Version 2.53 and higher only |
Coverage | avail_retail_zen_gea_fttc | Either AVAILABLE or NOT_AVAILABLE Version 2.53 and higher only |
Coverage | avail_infra_4thutility_fttp | Either AVAILABLE or NOT_AVAILABLE Version 2.55 and higher only |
Coverage | avail_infra_gofibre_fttp | Either AVAILABLE or NOT_AVAILABLE Version 2.55 and higher only |
Coverage | avail_infra_swsbroadband_fttp | Either AVAILABLE or NOT_AVAILABLE Version 2.55 and higher only |
Coverage | avail_infra_ogi_fttp | Either AVAILABLE or NOT_AVAILABLE Version 2.56 and higher only |
Coverage | avail_infra_cityfibre_toob | Either AVAILABLE or NOT_AVAILABLE Version 2.57 and higher only |
Coverage | avail_infra_airband_fttp | Either AVAILABLE or NOT_AVAILABLE Version 2.58 and higher only |
Coverage | avail_infra_grayshottgigabit_fttp | Either AVAILABLE or NOT_AVAILABLE Version 2.58 and higher only |
Coverage | avail_infra_connect_fibre_fttp | Either AVAILABLE or NOT_AVAILABLE Version 2.59 and higher only |
Coverage | avail_infra_any_alt_net_fttp | Either AVAILABLE or NOT_AVAILABLE Version 2.60 and higher only |
Coverage | avail_infra_connexin_fttp | Either AVAILABLE or NOT_AVAILABLE Version 2.61 and higher only |
Coverage | avail_infra_fullfibreltd_fttp | Either AVAILABLE or NOT_AVAILABLE Version 2.62 and higher only |
Coverage | openreach_fttp_priority_active | Either YES or NO. Indicates that Openreach FTTP connections are the primary service available, Openreach may allow some exceptions upon application. Version 2.63 and higher only |
Coverage | openreach_fttp_priority_predicted | Blank or a date in d-m-Y format ie. 16-10-2022 indicating the date Openreach set for when restrictions on copper based broadband are expected on the exchange. Will only be set for those postcodes where Openreach FTTP is currently available. Version 2.63 and higher only |
Coverage | avail_infra_lightning_fibre | Either AVAILABLE or NOT_AVAILABLE Version 2.64 and higher only |
Coverage | avail_infra_nexfibre | Either AVAILABLE or NOT_AVAILABLE Version 2.64 and higher only |
Coverage | avail_infra_country_connect_fttp | Either AVAILABLE or NOT_AVAILABLE Version 2.65 and higher only |
Coverage | avail_infra_b4sh | Either AVAILABLE or NOT_AVAILABLE Version 2.77 and higher only |
Coverage | avail_infra_singlemode_ecom | Either AVAILABLE or NOT_AVAILABLE Version 2.78 and higher only |
Coverage | avail_infra_grain | Either AVAILABLE or NOT_AVAILABLE Version 2.80 and higher only |
Coverage | avail_infra_community_fibre_premium | Either AVAILABLE or NOT_AVAILABLE Version 2.81 and higher only |
Coverage | avail_infra_cityfibre_sky | Either AVAILABLE or NOT_AVAILABLE Version 2.82 and higher only |
Coverage | avail_infra_county_broadband_fttp | Either AVAILABLE or NOT_AVAILABLE Version 2.65 and higher only |
Coverage | avail_infra_wildanet_fttp | Either AVAILABLE or NOT_AVAILABLE Version 2.65 and higher only |
Coverage | avail_infra_cityfibre_cuckoo | Either AVAILABLE or NOT_AVAILABLE Version 2.68 and higher only |
Coverage | avail_retail_plusnet_adsl | Either AVAILABLE or NOT_AVAILABLE Version 2.68 and higher only |
Coverage | avail_retail_plusnet_fttc | Either AVAILABLE or NOT_AVAILABLE Version 2.68 and higher only |
Coverage | avail_infra_cityfibre_beebu | Either AVAILABLE or NOT_AVAILABLE Version 2.69 and higher only |
Coverage | avail_infra_cityfibre_litfibre | Either AVAILABLE or NOT_AVAILABLE Version 2.74 and higher only |
Coverage | avail_infra_quickline_wireless | Either AVAILABLE or NOT_AVAILABLE Version 2.69 and higher only |
Coverage | avail_infra_freedomfibre_fttp | Either AVAILABLE or NOT_AVAILABLE Version 2.69 and higher only |
Coverage | avail_infra_brdy_satellite | Either AVAILABLE or NOT_AVAILABLE Version 2.67 and higher only |
Coverage | avail_infra_greenco_fttp | Either AVAILABLE or NOT_AVAILABLE Version 2.84 and higher only |
Coverage | avail_retail_4thutility_gea_fttp_market_2 | Either AVAILABLE or NOT_AVAILABLE Version 2.85 and higher only |
Coverage | avail_retail_4thutility_gea_fttp_market_3 | Either AVAILABLE or NOT_AVAILABLE Version 2.85 and higher only |
Coverage with Show Retail | avail_retail_virginmedia | Either AVAILABLE or NOT_AVAILABLE |
Coverage with Show Retail | avail_retail_bt_consumer | Either AVAILABLE or NOT_AVAILABLE |
Coverage with Show Retail | avail_retail_ee | Either AVAILABLE or NOT_AVAILABLE |
Coverage with Show Retail | avail_retail_plusnet | Either AVAILABLE or NOT_AVAILABLE |
Coverage with Show Retail | avail_retail_sky | Either AVAILABLE or NOT_AVAILABLE |
Coverage with Show Retail | avail_retail_talktalk | Either AVAILABLE or NOT_AVAILABLE |
Coverage with Show Retail | avail_retail_talktalk | Either AVAILABLE or NOT_AVAILABLE |
Coverage with Show Retail | avail_retail_bt_consumer_gea_fttp | Either AVAILABLE or NOT_AVAILABLE Version 2.31 and higher only |
Coverage with Show Retail | avail_retail_sky_gea_fttp | Either AVAILABLE or NOT_AVAILABLE Version 2.31 and higher only Active as of version 2.32 |
Coverage with Show Retail | avail_retail_talktalk_gea_fttp | Either AVAILABLE or NOT_AVAILABLE Version 2.31 and higher only |
Coverage with Show Retail | avail_retail_vodafone_gea_fttp | Either AVAILABLE or NOT_AVAILABLE Version 2.31 and higher only |
Coverage with Show Retail | avail_retail_talktalk_fttc | Either AVAILABLE or NOT_AVAILABLE Version 2.70 and higher only |
Coverage with Show Retail | avail_retail_sky_fttc | Either AVAILABLE or NOT_AVAILABLE Version 2.70 and higher only |
Coverage with Show Retail | avail_retail_vodafone_fttc | Either AVAILABLE or NOT_AVAILABLE Version 2.70 and higher only |
Coverage with Show Retail | avail_retail_bt_consumer_fttc | Either AVAILABLE or NOT_AVAILABLE Version 2.79 and higher only |
Coverage with Show Retail | avail_retail_generic_fttc | Either AVAILABLE or NOT_AVAILABLE Version 2.79 and higher only |
Coverage with Show Retail | avail_retail_gigabitiq_a | Either AVAILABLE or NOT_AVAILABLE Version 2.83 and higher only |
Coverage with Show Retail | avail_retail_gigabitiq_b | Either AVAILABLE or NOT_AVAILABLE Version 2.83 and higher only |
All | openreach_fttp_speed | Either 900 or 1600 Version 2.71 and higher only |
All | avail_retail_cuckoo_gea_fttp | Either AVAILABLE or NOT_AVAILABLE Version 2.72 and higher only |
All | avail_infra_cityfibre_4thutility | Either AVAILABLE or NOT_AVAILABLE Version 2.73 and higher only |
Coverage | best_download_sub_24 | YES or NO, if the postcode is believed to only have a sub 24 Mbps service available will return YES. This is possible even when VDSL2 is available due to the line distance drop off. |
Coverage | best_download_sub_10 | YES or NO, is based on our assessment of the best download speed available. With some voucher schemes available suggesting those or referring to broadband USO pages is worthwhile when a YES is returned. |
Coverage | best_download_sub_2 | YES or NO, generally those postcodes a long way from the exchange and also their cabinet. Redirecting visitors to an alternative such as 4G or satellite might be worthwhile. |
Coverage | openreach_waiter | UNKNOWN, OK or WAITING, reflecting if our tracking of cabinet capacity has the VDSL2 cabinet flagged as at a capacity limit. Do not use this field to hide VDSL2 based services, since capacity is very dynamic but by flagged a cautionary note to visitors you can avoid disappointment when the retailer does its live check as part of the order process. |
Fastest | fastest | e.g. 900 Mbps for those postcodes with Gigabit FTTP available. On ADSL close to the exchange postcodes it is ‘6 to 8 Mbps’ for example. For areas where Virgin Media DOCSIS 3.0 is the fastest available set to 600 Mbps and for DOCSIS 3.1 it is set to 1152 Mbps. |
Fastest | fastest_upload | First appears in version 2.42 and highere.g. 900 Mbps for those postcodes with symmetric Gigabit FTTP available, Openreach FTTP is set to 110 Mbps. In ADSL only areas you will see 0.4 Mbps and ADSL2+ areas upload is 1 Mbps. For areas where Virgin Media DOCSIS 3.0 is the fastest available field is set to 40 Mbps and for DOCSIS 3.1 it is set to 50 Mbps. |
Fastest | tech | Unknown, ADSL, ADSL2+, FTTC, Gfast, FTTP or Cable. Field tells you which is expected to be the fastest fixed line speed, it is possible that ADSL2+ may be faster than FTTC in some limited number of scenarios. |
Estimated Speeds | est_adsl2plus_download_postcode | UNKNOWN or formatted string e.g. ’18 to 24 Mbps’. Strings may change so dont use the field for less than or more than decisions, for those decisions use the integer values of the est_raw_* fields |
Estimated Speeds | est_fttcp_download_postcode | UNKNOWN or formatted string e.g. ’45 to 76 Mbps’ |
Estimated Speeds | est_adsl2plus_download_within500m | As per _postcode field but covers postcodes with 500 metres. Included to give an idea of area performance rather than performance for a specific visitor |
Estimated Speeds | est_fttcp_download_within500m | As per _postcode field but covers postcodes with 500 metres. Included to give an idea of area performance rather than performance for a specific visitor |
Estimated Speeds | est_adsl2plus_download_within1000m | As per _postcode field but covers postcodes with 500 metres. Included to give an idea of area performance rather than performance for a specific visitor |
Estimated Speeds | est_fttcp_download_within1000m | As per _postcode field but covers postcodes with 500 metres. Included to give an idea of area performance rather than performance for a specific visitor |
Estimated Speeds | openreach_postcode_split | UNKNOWN, SINGLE or MULTIPLE, reflects whether postcode is served by multiple Openreach cabinets |
Estimated Speeds | openreach_postcode_split_technology | UNKNOWN, SAME or DIFFERENT, useful when split field returns MULTIPLE. SAME means that all premises are just ASDL or just FTTC/FTTP based. DIFFERENT means a mixture of ADSL and FTTC/FTTP is present, the answers in all the coverage fields refer to the majority available. So if we say FTTC is not available, but you see a DIFFERENT entry this means a small number of premises may have access to FTTC or FTTP and the opposite if we say FTTC or FTTP is available. |
Raw Speed Estimate | est_raw_adsl2plus_download_postcode | An integer estimate of the expected ADSL2+ download speed for the postcode area |
Raw Speed Estimate | est_raw_fttcp_download_postcode | An integer estimate of the expected VDSL2 or FTTP download speed for the postcode area. VDSL2 figure is shown even if service is not available, so for presentation to a visitor you need to filter on the coverage fields |
Raw Speed Estimate | avail_infra_openreach_fttc_hide_fast | YES or NO, introduced in v2.66 of API. Use case is hiding fastest VDSL2 packages from listings when speeds are likely to be slower. |
Raw Speed Estimate | avail_infra_openreach_fttc_hide_all | YES or NO, introduced in v2.66 of API. Use case is hiding fastest VDSL2 packages from listings when speeds are expected to be very close to zero. |
Raw Speed Estimate | est_raw_gfast_download_postcode | UNKNOWN or integer estimate for Gfast if service is available |
Mobile | avail_three_4g_speed | Integer figure representing estimated maximum download speed for a three 4G connection.Version 2.51 and higher only and only when Mobile access granted |
Mobile | avail_three_5g_speed | Integer figure representing estimated maximum download speed for a three 5G connection.Version 2.51 and higher only and only when Mobile access granted |
Mobile | avail_three_5g_outdoor_speed | Integer figure representing estimated maximum download speed for a three 5G connection when outdoors.Version 2.75 and higher only and only when Mobile access granted |
Do you have any example code for using the API?
So that people can get up and running and using the API quickly we have a simple PHP and HTML file available that includes some basic logic to show information about the broadband packages available.
A snippet from the file is attached, but the full file can be downloaded from https://labs.thinkbroadband.com/sample.zip but to make use the file you will require your unique GUID to access the lookup system
function curl_get_contents($url)
{
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
$data = curl_exec($ch);
curl_close($ch);
return $data;
}
function accessAPI($postcode)
{
$postcode=urlencode($postcode);
$html = curl_get_contents('https://api.thinkbroadband.com/inquiry.php?postcode='.$postcode.'&version=2.74&guid=[your unique guid]');
$data = json_decode($html);
return $data;
}
function buildOutputRows($data)
{
//Build an array of output rows
$rows = array();
//As FTTP generally offers the fastest service look for those first
if ($data->avail_infra_b4rn_fttp == 'AVAILABLE')
{
//The majority of full fibre services with their own network follow this pattern
$row = 'BARN Gigabit FTTP is available and will be the fastest service available in this postcode.';
$rows[] = $row;
}
if ($data->avail_infra_openreach_fttc == 'AVAILABLE')
{
//VDSL2 services are available
//This excludes Plusnet who have their own specific field
if ($data->avail_infra_openreach_fttc_hide_fast == 'NO')
{
//Speeds are expected to be high so ok to show Fibre 2/Fibre 65/Fibre 55 packages
$row = 'BT Fibre 2';
$rows[] = $row;
}
if ($data->avail_infra_openreach_fttc_hide_all == 'NO')
{
//Speeds are expected to reasonable, for very slow VDSL2 lines the field is set to yes
//Show the Fibre 1/Fibre35 packages
$row = 'BT Fibre 1';
$rows[] = $row;
}
}
if ($data->avail_retail_plusnet_fttc == 'AVAILABLE')
{
//Plusnet VDSL2 services are available
if ($data->avail_infra_openreach_fttc_hide_fast == 'NO')
{
//Speeds are expected to be high so ok to show Fibre 2/Fibre 65/Fibre 55 packages
$row = 'Plusnet Fibre Extra';
$rows[] = $row;
}
if ($data->avail_infra_openreach_fttc_hide_all == 'NO')
{
//Speeds are expected to reasonable, for very slow VDSL2 lines the field is set to yes
$row = 'Plusnet Fibre;
$rows[] = $row;
}
}
if ($data->avail_infra_virginmedia_gig1 == 'AVAILABLE')
{
//Standard Virgin Media products are available
$row = 'Virgin Media M125';
$rows[] = $row;
$row = 'Virgin Media M350';
$rows[] = $row;
$row = 'Virgin Media M500';
$rows[] = $row;
$row = 'Virgin Media Gig1';
$rows[] = $row;
if ($data->avail_infra_nexfibre == 'AVAILABLE')
{
//It is a nexfibre XGS-PON area show the Gig2 service
$row = 'Virgin Media Gig2';
$rows[] = $row;
}
}
//This mini code snippet just a snapshot of all the processing that can be done.
//Use of string matching and arrays can reduce the amount of logic, but we have expanded things in long form to make it clearer as to what to do.
return $rows;
}