openapi: 3.2.0 info: title: ACMA Spectrum Licensing Clients API version: '1.0' summary: Public, anonymous read access to the Australian Communications and Media Authority's Register of Radiocommunications Licences. description: 'The ACMA Spectrum Licensing API is an application programming interface which allows members of the public to query the ACMA''s spectrum licensing data. This data can be queried programmatically so that it can be used by external application developers to produce mobile or web applications. The service exposes both a REST endpoint (browser-consumable, XML or JSON per operation suffix) and a SOAP endpoint over the same operations. Every operation is a read; there are no writes, no authentication, no API key and no registration. A single query returns at most 2,000 records, deliberately, to discourage bulk extraction through the API - the full dataset is published as a daily zip download instead. PROVENANCE: this OpenAPI is an API Evangelist reconstruction of an API that ACMA documents but does not describe in OpenAPI. Paths, parameters, enumerated values and operation semantics are taken verbatim from ACMA''s published guide ''Spectrum Licensing API'' v1.0 (17/06/2016) and from the live WSDL at OuterService.svc?wsdl; response schemas are derived from live responses captured on 2026-07-25. Every operation carries an x-evidence block naming the documentation source and the live URL that was probed.' contact: name: ACMA email: info@acma.gov.au url: https://www.acma.gov.au/contact-us license: name: Licence to use the Register of Radiocommunications Licences url: https://www.acma.gov.au/radiocomms-licence-data#terms-and-conditions termsOfService: https://www.acma.gov.au/radiocomms-licence-data#terms-and-conditions x-source: https://www.acma.gov.au/sites/default/files/2019-11/Spectrum%20licensing%20API.docx x-wsdl: https://api.acma.gov.au/SpectrumLicensingAPIOuterService/OuterService.svc?wsdl x-generated-by: API Evangelist enrichment pipeline x-generated-on: '2026-07-25' servers: - url: https://api.acma.gov.au/SpectrumLicensingAPIOuterService/OuterService.svc description: Production REST endpoint (HTTPS). The guide publishes the same path over HTTP; HTTPS is live and verified. security: [] tags: - name: Clients description: Licensees - the people and organisations that hold licences. paths: /ClientSearchXML/{searchText}: get: operationId: clientSearchXML summary: Search licensees / clients (XML) description: 'Returns an XElement containing all clients for the specified search terms. A single query returns at most 2,000 records; page with the offset parameter to retrieve more. For the whole dataset, ACMA publishes a same-day full RRL extract as a zip download rather than serving it through this API.' tags: - Clients parameters: - name: searchText in: path required: true description: The text to search for. schema: type: string - name: searchField in: query required: false description: The field to search; any detail can be used to search all fields. schema: type: string enum: - Client No. - Client Surname - Licencee Name - Org Name - Trading Name - ACN - ABN - Postcode - $ref: '#/components/parameters/searchOption' - name: sortBy in: query required: false description: The field to sort the results by. schema: type: string enum: - client_no - name - CAN - ABN - rownum - $ref: '#/components/parameters/offset' - $ref: '#/components/parameters/resultsLimit' responses: '200': description: Matching records. The service returns HTTP 200 with an empty result array when nothing matches. content: application/xml: schema: type: string description: An XElement document. The element structure mirrors the JSON envelope of the matching *JSON operation; the XML Schema for the SOAP projection of this service is published at https://api.acma.gov.au/SpectrumLicensingAPIOuterService/OuterService.svc?xsd=xsd0 and harvested to wsdl/acma-spectrum-licensing-xsd0.xsd. '400': description: Malformed request - an unparseable URI template, or a parameter value the WCF service cannot bind (for example a non-numeric offset). content: text/html: schema: type: string '404': description: Unknown web method - the leading path segment does not match a published operation name. content: text/html: schema: type: string '500': description: Service fault. The WCF endpoint returns an HTML fault page rather than a structured error body; there is no RFC 9457 problem+json envelope. content: text/html: schema: type: string x-evidence: documented_in: https://www.acma.gov.au/sites/default/files/2019-11/Spectrum%20licensing%20API.docx verified_live: https://api.acma.gov.au/SpectrumLicensingAPIOuterService/OuterService.svc/ClientSearchXML/Smith?resultsLimit=1 verified_on: '2026-07-25' verified_status: 200 /ClientSearchJSON/{searchText}: get: operationId: clientSearchJSON summary: Search licensees / clients (JSON) description: 'Returns a JSON string containing all clients for the specified search terms. A single query returns at most 2,000 records; page with the offset parameter to retrieve more. For the whole dataset, ACMA publishes a same-day full RRL extract as a zip download rather than serving it through this API.' tags: - Clients parameters: - name: searchText in: path required: true description: The text to search for. schema: type: string - name: searchField in: query required: false description: The field to search; any detail can be used to search all fields. schema: type: string enum: - Client No. - Client Surname - Licencee Name - Org Name - Trading Name - ACN - ABN - Postcode - $ref: '#/components/parameters/searchOption' - name: sortBy in: query required: false description: The field to sort the results by. schema: type: string enum: - client_no - name - CAN - ABN - rownum - $ref: '#/components/parameters/offset' - $ref: '#/components/parameters/resultsLimit' - $ref: '#/components/parameters/isJSONP' - $ref: '#/components/parameters/jsonpCallback' responses: '200': description: Matching records. The service returns HTTP 200 with an empty result array when nothing matches. content: application/json: schema: $ref: '#/components/schemas/ClientSearchResponse' examples: live: summary: Live response captured 2026-07-25 from https://api.acma.gov.au/SpectrumLicensingAPIOuterService/OuterService.svc/ClientSearchJSON/Smith?resultsLimit=1 value: Client: - TOTAL_RESULT: 46.0 RESULTS_INDEX: 1.0 CLIENT_NO: 1421485.0 DISPLAY_NAME: ERNEST SMITH CONTRACTORS PROPRIETARY LIMITED ACN: 004433649 ABN: '79004433649' POSTAL_LINE1: 370-418 Old Dandenong Rd POSTAL_LINE2: null POSTAL_LINE3: null POSTAL_CITY: DINGLEY POSTAL_STATEORPROVINCE: VIC POSTAL_POSTALCODE: '3172' CLIENT_TYPE_NAME: Company '400': description: Malformed request - an unparseable URI template, or a parameter value the WCF service cannot bind (for example a non-numeric offset). content: text/html: schema: type: string '404': description: Unknown web method - the leading path segment does not match a published operation name. content: text/html: schema: type: string '500': description: Service fault. The WCF endpoint returns an HTML fault page rather than a structured error body; there is no RFC 9457 problem+json envelope. content: text/html: schema: type: string x-evidence: documented_in: https://www.acma.gov.au/sites/default/files/2019-11/Spectrum%20licensing%20API.docx verified_live: https://api.acma.gov.au/SpectrumLicensingAPIOuterService/OuterService.svc/ClientSearchJSON/Smith?resultsLimit=1 verified_on: '2026-07-25' verified_status: 200 components: parameters: searchOption: name: searchOption in: query required: false description: 'How searchText is matched: matches, begins with, or sounds like.' schema: type: string enum: - matches - begins with - sounds like isJSONP: name: isJSONP in: query required: false description: true or false, depending on whether JSONP is used. schema: type: boolean resultsLimit: name: resultsLimit in: query required: false description: The number of records to return after the offset. The service caps any single query at 2,000 records. schema: type: integer minimum: 1 maximum: 2000 jsonpCallback: name: jsonpCallback in: query required: false description: The callback function name to wrap the response in for JSONP. schema: type: string offset: name: offset in: query required: false description: The number of records to skip over. Used with resultsLimit to page beyond the 2,000-record cap (0, 2000, 4000, ...). schema: type: integer minimum: 0 schemas: ClientSearchResponse: type: object title: ClientSearchResponse description: Client search results. properties: Client: type: array items: $ref: '#/components/schemas/Client' Client: type: object title: Client description: 'A licensee (client) record: the person or organisation that holds radiocommunications licences.' properties: TOTAL_RESULT: type: - number - 'null' RESULTS_INDEX: type: - number - 'null' CLIENT_NO: type: - number - 'null' DISPLAY_NAME: type: - string - 'null' ACN: type: - string - 'null' ABN: type: - string - 'null' POSTAL_LINE1: type: - string - 'null' POSTAL_LINE2: type: - string - 'null' POSTAL_LINE3: type: - string - 'null' POSTAL_CITY: type: - string - 'null' POSTAL_STATEORPROVINCE: type: - string - 'null' POSTAL_POSTALCODE: type: - string - 'null' CLIENT_TYPE_NAME: type: - string - 'null' externalDocs: description: ACMA Spectrum Licensing API guide (DOCX, v1.0, 17/06/2016) url: https://www.acma.gov.au/sites/default/files/2019-11/Spectrum%20licensing%20API.docx