Federal Communications Commission
Home » Blog


September 7th, 2010 by Michael Byrne - Geographic Information Officer

Today the Federal Communications Commission is releasing four Application Programming Interfaces (API) and our first developer pages at fcc.gov/developer.  These APIs are part of our Data Innovation Initiative and are foundation pieces in our own redesigning and improving FCC's web presence. We want the FCC's web presence to be larger than a single web site. We want the developer community to run with these APIs to make mash-ups and data calls connecting FCC data assets to other sources for creative and useful applications to the public.

When we publish data through open standards like these APIs and smart people make use of trusted government data in innovative ways, we realize the ideal of the Gov 2.0 movement of government and private sector innovating together to solve our great policy challenges.

Several aspects of this release deserve highlighting.  First, APIs are central to our efforts for data transparency and open government. Second, all of these API’s are RESTful in nature and return open structured data as a service.  RESTFul APIs are popular on the web because they involve less programming effort to incorporate dynamically in mash-ups. We want many developers to view and use our data assets. 

Finally, and perhaps most importantly, two of these API’s (Consumer Speed Test and Census Block search) are location-based services returning data based on a latitude and longitude.  We imagine use of these APIs to unlock a myriad of government data based any user location.  As many notice the sea change in the use of geography by the public, the government has to respond with strong leadership.  In our case, leadership means publishing via open standards which fosters consumer and citizen connecting, communicating and collaborating to solve policy issues. 

The release of these APIs marks an important day for us at the FCC. The FCC has long published many data sets. Now we are allowing developers direct access to our data via live queries.  Your feedback on these APIs—what you think, how you are using them, what needs to be improved—helps us continue in this direction.

Below is a quick digest of each service.

Consumer Broadband Speed Test API
This API returns the Consumer Broadband Test speed test statistics for a US County given the passed Latitude and Longitude. The statistics are grouped into wireline and wireless and are the number of tests, average download speed, average upload speed, maximum download speed and maximum upload speed. This data is calculated nightly and includes all tests to date performed through the consumer broadband test.

Census Block Search API
This API returns the US Census Bureau Census Block number (aka the 15 character FIPS Code) given a passed Latitude and Longitude. The API also returns the US State and County name associated with the Block. Just about every major dataset in the US Federal Government uses some form of Census geography. The lowest level of that geography is the Census Block. This geography is highly nested, such that removing coded values from the right hand site aggregates to the next highest geography (e.g. from block to tract, and from tract to County). Providing this search allows developers to build applications which foster connectivity from their individual location to the full array of federal databases based on census geography.

FCC Registration Number (FRN) Conversion
Filers with the FCC must get a registration number (aka FRN) whose company names, parent names and subsidiary names often change from state to state and region to region. We are providing this API to increase the value of the transparency of broadband providers providing service in each state. Providing a single place for understanding the complex naming of these providers will benefit consumers.  This API has 2 method calls: getList and getInfo. GetList call takes the parameters of a state's abbreviation or state FIPS code, and a yes-or-no for multiple-state indicator, and returns all the broadband providers in that state. GetInfo call takes FRN number of a broadband provider, and return information about the provider. 

FCC License View
The FCC issues licenses for use of the nation's airwaves and other purposes. License View API provides snapshots such as the number of licenses across different services, how many licenses different entities have, and how many licenses are up for renewal in the near future. The following APIs represent a step toward reform of our licensing systems and improvement in how the FCC makes licensing information available to the public.

7 Responses to “FCC.gov/developer”

  1. Jeff Crews says:

    For the FCC Form 477 we are supposed to report the census tract for broadband subscribers specifically based on the 2000 census.

    If we use the census tract lookup API how would we know which census date ( 2000, 2010, etc ) the tract is reported by the API?

    I would like to think using the FCC census tract lookup API would provide the "latest and greatest" data. But also want to be sure we are reporting consistent with what the Form 477 says we are supposed to use to report on. Thoughts from the FCC?

  2. Chris Wheeler says:

    is there any chance you will include the standard deviation in the speed test average API?

  3. mByrne says:

    Thanks for the feedback. These are good suggestions. I have heard a couple of ideas on twitter, and as direct emails as well. we will be assembling all of these and pushing out regular tweaks that improve the services. keep them coming.


  4. Eric Mill says:

    This is totally awesome! Thank you for really pushing the envelope here. I have two suggestions.

    One, will you publish the source code behind these APIs to your SourceForge account? It would be helpful for those of us who wish to do our own bulk processing, or learn more about how to work with the underlying data.

    Two, for JSONP requests, it's useful to handle errors differently, because returning back non-2xx error codes means that the browser will never load the script tag, and the callback will never fire. When I've built APIs that support JSONP, what I do for error responses with a 200 code, and a JSON object describing the error (inside the callback). For non-JSONP requests, I return a 5xx as normal.

  5. Guest says:

    It would be helpful to describe where the broadband data comes from for the FRN Conversion API.

  6. Robert Kosara says:

    Excellent work! Though it seems that the broadband speed test API always returns zero for wireline, only wireless data seems to be there.

  7. Jet Ski Performance Parts says:

    This is really a big help to everyone. Thanks for posting.

Leave a Reply