FCC Contours API

Returns broadcast radio and television service area data. Includes coverage contours for FM and TV stations by call sign, Facility ID, or ApplicationID, plus elevation and Height Above Average Terrain (HAAT) data.

OpenAPI Specification

fcc-contours-api.yaml Raw ↑
openapi: 3.0.3
info:
  title: FCC Contours API
  description: >
    The FCC Enterprise Contours API provides broadcast radio and television service
    area data. Includes coverage contours for FM and TV stations by call sign, Facility
    ID, or ApplicationID, plus elevation, Height Above Average Terrain (HAAT), antenna
    patterns, coordinate conversion, and distance-curve calculations. All endpoints are
    free with no authentication required.
  version: 1.5.0
  contact:
    name: Federal Communications Commission
    url: https://geo.fcc.gov/api/contours/
  license:
    name: FCC API Terms of Service
    url: https://www.fcc.gov/reports-research/developers/api-terms-service
servers:
  - url: https://geo.fcc.gov/api/contours
    description: FCC Contours API
tags:
  - name: coverage
    description: Get service contour for TV and FM stations
  - name: entity
    description: Get coverage contour by entity (call sign, facility ID, or application ID)
  - name: antenna
    description: Get antenna pattern data for TV and FM stations
  - name: elevation
    description: Get terrain elevation data at a given location
  - name: haat
    description: Get Height Above Average Terrain (HAAT) data
  - name: profile
    description: Get terrain elevation profile between two points
  - name: distance
    description: Calculate distance using F-curve propagation curves
  - name: am-pattern
    description: Get AM antenna pattern data
  - name: projection
    description: Project coordinates between coordinate reference systems
  - name: coordinate-conversion
    description: Convert between decimal degrees and degrees-minutes-seconds
paths:
  /coverage.json:
    get:
      tags:
        - coverage
      operationId: getCoverage
      summary: Get Contour by Service Type
      description: >
        Get contour based on serviceType (FM, TV). Response returned in GeoJSON,
        JSONP, Shapefile, KML, GML, CSV.
      parameters:
        - name: serviceType
          in: query
          required: true
          description: Type of broadcast service. Valid values: tv, fm
          schema:
            type: string
            enum:
              - tv
              - fm
        - name: lat
          in: query
          required: true
          description: Latitude of the transmitter site
          schema:
            type: number
            format: double
        - name: lon
          in: query
          required: true
          description: Longitude of the transmitter site
          schema:
            type: number
            format: double
        - name: nradial
          in: query
          required: true
          description: Number of radials
          schema:
            type: integer
        - name: rcamsl
          in: query
          required: true
          description: Radiation Center Above Mean Sea Level (meters)
          schema:
            type: number
            format: double
        - name: field
          in: query
          required: true
          description: Field strength (dBu)
          schema:
            type: number
            format: double
        - name: channel
          in: query
          required: false
          description: Channel (required for TV)
          schema:
            type: integer
        - name: erp
          in: query
          required: true
          description: Effective Radiation Power (kW)
          schema:
            type: number
            format: double
        - name: curve
          in: query
          required: true
          description: "Type of propagation curve. 0: F(50,50), 1: F(50,10), 2: F(50,90)"
          schema:
            type: string
            enum:
              - "0"
              - "1"
              - "2"
        - name: pattern
          in: query
          required: false
          description: >
            Radiation strength at various azimuths for directional antennas.
            Provide azimuth,strength pairs separated by semicolons. Example: 0,0.63;10,0.57;
          schema:
            type: string
        - name: ant_rotation
          in: query
          required: false
          description: Antenna rotation (0-360, default 0)
          schema:
            type: string
            default: "0"
        - name: pop
          in: query
          required: false
          description: Include population calculation
          schema:
            type: boolean
            default: false
        - name: area
          in: query
          required: false
          description: Include coverage area calculation
          schema:
            type: boolean
            default: false
        - name: src
          in: query
          required: false
          description: >
            Elevation data source. NED 1 arc-second (ned_1), 1/3 arc-second (ned_13),
            Alaska 2 arc-second (ned_2), or global dataset (globe30).
          schema:
            type: string
            enum:
              - ned_1
              - ned_2
              - globe30
        - name: unit
          in: query
          required: false
          description: "Unit of measurement: m=meters (default), mi=miles, ft=feet"
          schema:
            type: string
            enum:
              - m
              - mi
              - ft
            default: m
      responses:
        "200":
          description: GeoJSON coverage contour data
          content:
            application/json:
              schema:
                type: object
  /entity.json:
    get:
      tags:
        - entity
      operationId: getEntityCoverage
      summary: Get Coverage Contour by Entity
      description: >
        Get coverage contour for a TV or FM station identified by call sign, facility ID,
        or application ID.
      parameters:
        - name: serviceType
          in: query
          required: true
          description: Type of broadcast service. Valid values: tv, fm
          schema:
            type: string
            enum:
              - tv
              - fm
        - name: callsign
          in: query
          required: false
          description: Station call sign
          schema:
            type: string
        - name: facilityId
          in: query
          required: false
          description: FCC Facility ID
          schema:
            type: string
        - name: applicationId
          in: query
          required: false
          description: FCC Application ID
          schema:
            type: string
        - name: nradial
          in: query
          required: false
          description: Number of radials
          schema:
            type: integer
        - name: field
          in: query
          required: false
          description: Field strength (dBu) override
          schema:
            type: number
            format: double
        - name: curve
          in: query
          required: false
          description: "Propagation curve: 0=F(50,50), 1=F(50,10), 2=F(50,90)"
          schema:
            type: string
            enum:
              - "0"
              - "1"
              - "2"
        - name: pop
          in: query
          required: false
          description: Include population calculation
          schema:
            type: boolean
            default: false
        - name: area
          in: query
          required: false
          description: Include coverage area calculation
          schema:
            type: boolean
            default: false
        - name: src
          in: query
          required: false
          description: Elevation data source
          schema:
            type: string
            enum:
              - ned_1
              - ned_2
              - globe30
      responses:
        "200":
          description: GeoJSON coverage contour data for the specified entity
          content:
            application/json:
              schema:
                type: object
  /antenna.json:
    get:
      tags:
        - antenna
      operationId: getAntenna
      summary: Get Antenna Pattern Data
      description: >
        Get antenna pattern data for a TV or FM station identified by call sign,
        facility ID, or application ID.
      parameters:
        - name: serviceType
          in: query
          required: true
          description: Type of broadcast service. Valid values: tv, fm
          schema:
            type: string
            enum:
              - tv
              - fm
        - name: callsign
          in: query
          required: false
          description: Station call sign
          schema:
            type: string
        - name: facilityId
          in: query
          required: false
          description: FCC Facility ID
          schema:
            type: string
        - name: applicationId
          in: query
          required: false
          description: FCC Application ID
          schema:
            type: string
      responses:
        "200":
          description: Antenna pattern data
          content:
            application/json:
              schema:
                type: object
  /elevation.json:
    get:
      tags:
        - elevation
      operationId: getElevation
      summary: Get Terrain Elevation
      description: >
        Get terrain elevation at a given latitude and longitude using national
        elevation datasets.
      parameters:
        - name: lat
          in: query
          required: true
          description: Latitude in decimal degrees
          schema:
            type: number
            format: double
        - name: lon
          in: query
          required: true
          description: Longitude in decimal degrees
          schema:
            type: number
            format: double
        - name: src
          in: query
          required: false
          description: Elevation data source
          schema:
            type: string
            enum:
              - ned_1
              - ned_2
              - globe30
        - name: unit
          in: query
          required: false
          description: "Unit of measurement: m=meters (default), mi=miles, ft=feet"
          schema:
            type: string
            enum:
              - m
              - mi
              - ft
            default: m
      responses:
        "200":
          description: Elevation data at the specified location
          content:
            application/json:
              schema:
                type: object
                properties:
                  elevation:
                    type: number
                    description: Elevation value in the requested unit
  /haat.json:
    get:
      tags:
        - haat
      operationId: getHAAT
      summary: Get Height Above Average Terrain (HAAT)
      description: >
        Calculate the Height Above Average Terrain (HAAT) for a given location,
        number of radials, and radiation center height.
      parameters:
        - name: lat
          in: query
          required: true
          description: Latitude in decimal degrees
          schema:
            type: number
            format: double
        - name: lon
          in: query
          required: true
          description: Longitude in decimal degrees
          schema:
            type: number
            format: double
        - name: nradial
          in: query
          required: false
          description: Number of radials (default 360)
          schema:
            type: integer
        - name: rcamsl
          in: query
          required: false
          description: Radiation Center Above Mean Sea Level (meters)
          schema:
            type: number
            format: double
        - name: src
          in: query
          required: false
          description: Elevation data source
          schema:
            type: string
            enum:
              - ned_1
              - ned_2
              - globe30
        - name: unit
          in: query
          required: false
          description: "Unit of measurement: m=meters (default), mi=miles, ft=feet"
          schema:
            type: string
            enum:
              - m
              - mi
              - ft
            default: m
      responses:
        "200":
          description: HAAT calculation result
          content:
            application/json:
              schema:
                type: object
  /profile.json:
    get:
      tags:
        - profile
      operationId: getProfile
      summary: Get Terrain Elevation Profile
      description: >
        Get the terrain elevation profile along a path between two geographic points,
        specified by a starting point plus azimuth, or start and end coordinates.
      parameters:
        - name: lat
          in: query
          required: true
          description: Latitude of the starting point in decimal degrees
          schema:
            type: number
            format: double
        - name: lon
          in: query
          required: true
          description: Longitude of the starting point in decimal degrees
          schema:
            type: number
            format: double
        - name: azimuth
          in: query
          required: false
          description: Azimuth direction from the start point (degrees)
          schema:
            type: number
            format: double
        - name: start
          in: query
          required: false
          description: Start distance along the path (km)
          schema:
            type: number
            format: double
        - name: end
          in: query
          required: false
          description: End distance along the path (km)
          schema:
            type: number
            format: double
        - name: num_points
          in: query
          required: false
          description: Number of elevation sample points along the profile
          schema:
            type: integer
        - name: src
          in: query
          required: false
          description: Elevation data source
          schema:
            type: string
            enum:
              - ned_1
              - ned_2
              - globe30
        - name: unit
          in: query
          required: false
          description: "Unit of measurement: m=meters (default), mi=miles, ft=feet"
          schema:
            type: string
            enum:
              - m
              - mi
              - ft
            default: m
      responses:
        "200":
          description: Array of elevation values along the profile
          content:
            application/json:
              schema:
                type: object
  /distance.json:
    get:
      tags:
        - distance
      operationId: getDistance
      summary: Calculate Distance Using F-Curve
      description: >
        Calculate the service distance or interfering distance using FCC F-curve
        propagation models for TV or FM services.
      parameters:
        - name: computationMethod
          in: query
          required: false
          description: Method for distance computation
          schema:
            type: string
        - name: serviceType
          in: query
          required: false
          description: Type of broadcast service. Valid values: tv, fm
          schema:
            type: string
            enum:
              - tv
              - fm
        - name: haat
          in: query
          required: false
          description: Height Above Average Terrain (meters)
          schema:
            type: number
            format: double
        - name: channel
          in: query
          required: false
          description: TV or FM channel number
          schema:
            type: integer
        - name: field
          in: query
          required: false
          description: Field strength (dBu)
          schema:
            type: number
            format: double
        - name: erp
          in: query
          required: false
          description: Effective Radiation Power (kW)
          schema:
            type: number
            format: double
        - name: distance
          in: query
          required: false
          description: Distance (km)
          schema:
            type: number
            format: double
        - name: curve
          in: query
          required: false
          description: "Propagation curve: 0=F(50,50), 1=F(50,10), 2=F(50,90)"
          schema:
            type: string
            enum:
              - "0"
              - "1"
              - "2"
      responses:
        "200":
          description: Distance calculation result
          content:
            application/json:
              schema:
                type: object
  /getAmPattern.json:
    get:
      tags:
        - am-pattern
      operationId: getAmPattern
      summary: Get AM Antenna Pattern
      description: >
        Get AM broadcast station antenna pattern data by facility ID, call sign,
        or application ID.
      parameters:
        - name: idType
          in: query
          required: true
          description: Type of identifier. Valid values: facilityId, callsign, applicationId
          schema:
            type: string
            enum:
              - facilityId
              - callsign
              - applicationId
        - name: idValue
          in: query
          required: true
          description: Value for the specified identifier type
          schema:
            type: string
        - name: nradial
          in: query
          required: false
          description: Number of radials
          schema:
            type: integer
      responses:
        "200":
          description: AM antenna pattern data
          content:
            application/json:
              schema:
                type: object
  /project.json:
    get:
      tags:
        - projection
      operationId: projectCoordinates
      summary: Project Coordinates Between CRS
      description: >
        Project a coordinate point from one coordinate reference system (CRS) to another,
        such as from WGS84 to NAD83 or to various state plane systems.
      parameters:
        - name: lat
          in: query
          required: true
          description: Latitude in the input projection
          schema:
            type: number
            format: double
        - name: lon
          in: query
          required: true
          description: Longitude in the input projection
          schema:
            type: number
            format: double
        - name: inProj
          in: query
          required: false
          description: Input projection EPSG code or name
          schema:
            type: string
        - name: outProj
          in: query
          required: false
          description: Output projection EPSG code or name
          schema:
            type: string
        - name: outType
          in: query
          required: false
          description: Output format type
          schema:
            type: string
      responses:
        "200":
          description: Projected coordinates
          content:
            application/json:
              schema:
                type: object
  /dd2dms.json:
    get:
      tags:
        - coordinate-conversion
      operationId: decimalDegreesToDMS
      summary: Convert Decimal Degrees to DMS
      description: >
        Convert geographic coordinates from decimal degrees (DD) format to
        degrees-minutes-seconds (DMS) format.
      parameters:
        - name: lat
          in: query
          required: true
          description: Latitude in decimal degrees
          schema:
            type: number
            format: double
        - name: lon
          in: query
          required: true
          description: Longitude in decimal degrees
          schema:
            type: number
            format: double
      responses:
        "200":
          description: Coordinates in degrees-minutes-seconds format
          content:
            application/json:
              schema:
                type: object
                properties:
                  lat:
                    type: string
                    description: Latitude in DMS format
                  lon:
                    type: string
                    description: Longitude in DMS format
  /dms2dd.json:
    get:
      tags:
        - coordinate-conversion
      operationId: dmsToDecimalDegrees
      summary: Convert DMS to Decimal Degrees
      description: >
        Convert geographic coordinates from degrees-minutes-seconds (DMS) format
        to decimal degrees (DD) format.
      parameters:
        - name: latD
          in: query
          required: true
          description: Latitude degrees
          schema:
            type: integer
        - name: latM
          in: query
          required: true
          description: Latitude minutes
          schema:
            type: integer
        - name: latS
          in: query
          required: true
          description: Latitude seconds
          schema:
            type: number
            format: double
        - name: latDi
          in: query
          required: true
          description: Latitude direction (N or S)
          schema:
            type: string
            enum:
              - N
              - S
        - name: lonD
          in: query
          required: true
          description: Longitude degrees
          schema:
            type: integer
        - name: lonM
          in: query
          required: true
          description: Longitude minutes
          schema:
            type: integer
        - name: lonS
          in: query
          required: true
          description: Longitude seconds
          schema:
            type: number
            format: double
        - name: lonDi
          in: query
          required: true
          description: Longitude direction (E or W)
          schema:
            type: string
            enum:
              - E
              - W
      responses:
        "200":
          description: Coordinates in decimal degrees format
          content:
            application/json:
              schema:
                type: object
                properties:
                  lat:
                    type: number
                    description: Latitude in decimal degrees
                  lon:
                    type: number
                    description: Longitude in decimal degrees