{"openapi":"3.1.0","info":{"title":"Beacon API","version":"0.1.0","description":"An amateur (ham) radio reference: US license class privileges, frequency band allocations, Q-codes, the NATO phonetic alphabet, a dB/watts calculator, propagation basics, repeater fundamentals, emergency-communication (ARES/RACES) background, and a glossary.\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://beacon.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"hr@unifydynamics.com","url":"https://connectorbay.com/beacon/docs"},"termsOfService":"https://connectorbay.com/beacon/terms"},"servers":[{"url":"https://beacon.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/beacon/docs"},"security":[{},{"bearer":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/license_class_info":{"post":{"operationId":"license_class_info","summary":"One US amateur license class's privileges — HF/VHF/UHF frequency access, power limits, exam question","description":"One US amateur license class's privileges — HF/VHF/UHF frequency access, power limits, exam question\n    count and prerequisite — or all three classes if omitted. Use for \"what can a Technician do\", \"what's the\n    difference between General and Extra\", \"how many questions is the Extra exam\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"class_name":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"technician | general | extra (or 'amateur extra'). Omit to list all three.","title":"Class Name"}},"title":"license_class_infoArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/frequency_band_info":{"post":{"operationId":"frequency_band_info","summary":"A real amateur frequency band's range, which license class(es) may use it and on what segments, and","description":"A real amateur frequency band's range, which license class(es) may use it and on what segments, and\n    notes on typical behavior. Use for \"what frequencies are on 20 meters\", \"can a Technician use 6 meters\",\n    \"what's 70 centimeters used for\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"band":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Band name or nickname, e.g. '2m', '70cm', '20m', '10 meters', '6m'. Omit to list every band.","title":"Band"}},"title":"frequency_band_infoArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/phonetic_alphabet_lookup":{"post":{"operationId":"phonetic_alphabet_lookup","summary":"The NATO/ICAO phonetic alphabet — used worldwide by amateur, aviation, maritime and public-safety","description":"The NATO/ICAO phonetic alphabet — used worldwide by amateur, aviation, maritime and public-safety\n    radio to spell callsigns clearly — one letter or the complete A-to-Z list. Use for \"what's the phonetic\n    for the letter K\", \"give me the full phonetic alphabet\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"letter":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"A single letter (e.g. 'A') or its phonetic word (e.g. 'Alfa'). Omit for the full alphabet.","title":"Letter"}},"title":"phonetic_alphabet_lookupArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/q_code_lookup":{"post":{"operationId":"q_code_lookup","summary":"The meaning of a ham-radio Q-code (QRZ, QTH, QSL, QRM, QSY, QRP, QSO, ...), one code or the full list.","description":"The meaning of a ham-radio Q-code (QRZ, QTH, QSL, QRM, QSY, QRP, QSO, ...), one code or the full list.\n    Use for \"what does QRZ mean\", \"what's QTH\", \"list common Q-codes\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"code":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"A Q-code, e.g. 'QRZ' or 'QTH' (with or without the leading Q). Omit for the full list.","title":"Code"}},"title":"q_code_lookupArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/db_watts_converter":{"post":{"operationId":"db_watts_converter","summary":"Converts between decibels and watts: dB = 10*log10(power / reference), power = reference * 10^(dB/10).","description":"Converts between decibels and watts: dB = 10*log10(power / reference), power = reference * 10^(dB/10).\n    Use for \"convert 100 watts to dB\", \"how many watts is +20 dBm\", \"what's 3 dB in power terms\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"value":{"description":"The number to convert: watts if direction is watts_to_db, or decibels if direction is db_to_watts.","title":"Value","type":"number"},"direction":{"description":"watts_to_db | db_to_watts","title":"Direction","type":"string"},"reference_watts":{"default":1.0,"description":"Reference power in watts (default 1 W, giving dBW). Use 0.001 for dBm.","exclusiveMinimum":0,"title":"Reference Watts","type":"number"}},"required":["value","direction"],"title":"db_watts_converterArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/propagation_basics_guide":{"post":{"operationId":"propagation_basics_guide","summary":"How radio waves travel on HF (ionospheric skywave/skip), VHF (line-of-sight plus sporadic-E), and UHF","description":"How radio waves travel on HF (ionospheric skywave/skip), VHF (line-of-sight plus sporadic-E), and UHF\n    (line-of-sight plus tropospheric ducting) — general factual physics, not a live space-weather forecast.\n    Use for \"how does HF skip work\", \"why does 6 meters open up sometimes\", \"what's the ionosphere\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"band_type":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"hf | vhf | uhf. Omit to cover all three plus general propagation concepts.","title":"Band Type"}},"title":"propagation_basics_guideArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/emergency_comms_info":{"post":{"operationId":"emergency_comms_info","summary":"Ham radio's role in disaster and emergency communication, and how ARES (the ARRL's volunteer Amateur","description":"Ham radio's role in disaster and emergency communication, and how ARES (the ARRL's volunteer Amateur\n    Radio Emergency Service) differs from RACES (the government-activated Radio Amateur Civil Emergency\n    Service). Use for \"what's ARES\", \"what's the difference between ARES and RACES\", \"why do hams help in\n    disasters\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"emergency_comms_infoArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/repeater_basics_guide":{"post":{"operationId":"repeater_basics_guide","summary":"How FM repeaters work: input/output frequency offsets, PL/CTCSS sub-audible tones, and simplex versus","description":"How FM repeaters work: input/output frequency offsets, PL/CTCSS sub-audible tones, and simplex versus\n    repeater operation. Use for \"how does a repeater offset work\", \"what's a PL tone\", \"simplex vs repeater\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"repeater_basics_guideArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/radio_glossary":{"post":{"operationId":"radio_glossary","summary":"Definitions of common ham-radio terms and abbreviations (73, QSO, DX, CQ, repeater, simplex, duplex,","description":"Definitions of common ham-radio terms and abbreviations (73, QSO, DX, CQ, repeater, simplex, duplex,\n    net, elmer, rig, HT, rag chew, roger, Field Day). Use for \"what does 73 mean\", \"what's a rag chew\",\n    \"what's an elmer in ham radio\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"term":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"A specific term to look up, e.g. '73', 'QSO', 'DX', 'simplex'. Omit to list all.","title":"Term"}},"title":"radio_glossaryArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}}}}