ACMA · Arazzo Workflow

ACMA — spectrum survey by location

Version 1.0.0

From a latitude/longitude, find the nearest licensed transmitter sites, pull the frequency assignments in a band and postcode range around them, and attribute an assignment back to its licensee.

1 workflow 1 source API 1 provider
View Spec View on GitHub TelecommunicationsAustraliaRegulatorSpectrumBroadcastingNumberingDo Not Call RegisterRadiocommunicationsLicensingOpen DataGovernmentSOAPArazzoWorkflows

Provider

acma

Workflows

spectrum-survey-by-location
Nearest sites to a point, then the assignments and licensee around it.
3 steps inputs: latitude, longitude, lowerDate, lowerPostCode, siteLimit, upperDate, upperPostCode outputs: assignmentCount, nearestSite, nearestSiteDistanceKms, sampleFrequencyHz, sampleLicensee
1
nearest-sites
spectrumLicenceSiteSearchByLocationJSON
Find the closest licensed transmitter sites to the point. This is the only operation that computes a distance (DISTANCE_KMS) — always report it rather than implying proximity.
2
assignments-in-range
assignmentRangeJSON
Pull the frequency assignments across a postcode and date range. Omitting the postcode pair widens the query nationally and will be silently truncated at 2,000 rows — narrow first.
3
attribute-licensee
clientSearchJSON
Resolve the assignment's client number to the licensee's name and postal details.

Source API Descriptions

Arazzo Workflow Specification

Raw ↑
arazzo: 1.0.1
info:
  title: ACMA — spectrum survey by location
  version: 1.0.0
  summary: >-
    From a latitude/longitude, find the nearest licensed transmitter sites, pull the frequency
    assignments in a band and postcode range around them, and attribute an assignment back to its
    licensee.
  description: >-
    The site-selection and interference-check traversal an RF engineer runs before deploying
    equipment in Australia. Every step is an anonymous GET. Note the unit and date conventions:
    assignment frequencies are in Hz, request dates are DD-MM-YYYY, response dates are ISO local
    datetimes. The register records licences, not transmissions — absence here is not proof a band
    is clear.
sourceDescriptions:
- name: spectrum
  url: ../openapi/acma-spectrum-licensing-openapi.yml
  type: openapi
workflows:
- workflowId: spectrum-survey-by-location
  summary: Nearest sites to a point, then the assignments and licensee around it.
  inputs:
    type: object
    required: [latitude, longitude]
    properties:
      latitude:
        type: string
        description: Latitude — negative in Australia.
        default: '-35.238159'
      longitude:
        type: string
        default: '149.063419'
      siteLimit:
        type: integer
        default: 25
      lowerPostCode:
        type: string
        default: '2600'
      upperPostCode:
        type: string
        default: '2620'
      lowerDate:
        type: string
        description: DD-MM-YYYY.
        default: 01-01-2015
      upperDate:
        type: string
        description: DD-MM-YYYY.
        default: 01-01-2026
  steps:
  - stepId: nearest-sites
    description: >-
      Find the closest licensed transmitter sites to the point. This is the only operation that
      computes a distance (DISTANCE_KMS) — always report it rather than implying proximity.
    operationId: spectrumLicenceSiteSearchByLocationJSON
    parameters:
    - name: strLatitude
      in: path
      value: $inputs.latitude
    - name: strLongitude
      in: path
      value: $inputs.longitude
    - name: strLimit
      in: query
      value: $inputs.siteLimit
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      siteId: $response.body#/Site/0/SITE_ID
      siteName: $response.body#/Site/0/LONG_NAME
      distanceKms: $response.body#/Site/0/DISTANCE_KMS
      state: $response.body#/Site/0/STATE
  - stepId: assignments-in-range
    description: >-
      Pull the frequency assignments across a postcode and date range. Omitting the postcode pair
      widens the query nationally and will be silently truncated at 2,000 rows — narrow first.
    operationId: assignmentRangeJSON
    parameters:
    - name: strLowerPostCode
      in: query
      value: $inputs.lowerPostCode
    - name: strUpperPostCode
      in: query
      value: $inputs.upperPostCode
    - name: strLowerDate
      in: query
      value: $inputs.lowerDate
    - name: strUpperDate
      in: query
      value: $inputs.upperDate
    - name: sortBy
      in: query
      value: frequency
    - name: strLimit
      in: query
      value: 2000
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      licenceNo: $response.body#/Assignment/0/LICENCE_NO
      clientNo: $response.body#/Assignment/0/CLIENT_NO
      frequencyHz: $response.body#/Assignment/0/FREQ
      bandwidthHz: $response.body#/Assignment/0/BANDWIDTH
      emission: $response.body#/Assignment/0/EMISSION_DESIG
      totalAssignments: $response.body#/Assignment/0/TOTAL_RESULT
  - stepId: attribute-licensee
    description: Resolve the assignment's client number to the licensee's name and postal details.
    operationId: clientSearchJSON
    parameters:
    - name: searchText
      in: path
      value: $steps.assignments-in-range.outputs.clientNo
    - name: searchField
      in: query
      value: Client No.
    - name: resultsLimit
      in: query
      value: 1
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      licensee: $response.body#/Client/0/DISPLAY_NAME
      abn: $response.body#/Client/0/ABN
      clientType: $response.body#/Client/0/CLIENT_TYPE_NAME
  outputs:
    nearestSite: $steps.nearest-sites.outputs.siteName
    nearestSiteDistanceKms: $steps.nearest-sites.outputs.distanceKms
    assignmentCount: $steps.assignments-in-range.outputs.totalAssignments
    sampleFrequencyHz: $steps.assignments-in-range.outputs.frequencyHz
    sampleLicensee: $steps.attribute-licensee.outputs.licensee