{
  "protocolVersion": "0.3.0",
  "name": "Air Signal",
  "description": "Live air quality and outdoor comfort for any place on Earth. Fourteen environmental signals — particulates, temperature, wind, sea, UV, pollen, pressure and more — combined into one 0-100 score, from 10,635 community sensors where they exist and an atmospheric model everywhere else.",
  "url": "https://airsignal.app/a2a",
  "preferredTransport": "JSONRPC",
  "version": "1.0.0",
  "provider": {
    "organization": "Air Signal",
    "url": "https://airsignal.app"
  },
  "documentationUrl": "https://airsignal.app/how-it-works",
  "iconUrl": "https://airsignal.app/favicon.svg",
  "capabilities": {
    "streaming": false,
    "pushNotifications": false,
    "stateTransitionHistory": false
  },
  "defaultInputModes": [
    "text/plain"
  ],
  "defaultOutputModes": [
    "text/plain",
    "application/json"
  ],
  "skills": [
    {
      "id": "air-quality-for-place",
      "name": "Air quality and outdoor comfort for a place",
      "description": "Give it a city name, a Sensor.Community device id, or a coordinate pair, and it returns the current comfort score out of 100, the signal costing the most points, the underlying readings in their own units, and the URL of the page. A signal with no reading is reported as absent rather than as zero, and when every upstream is unreachable it says so instead of guessing.",
      "tags": [
        "air quality",
        "pm2.5",
        "weather",
        "uv",
        "pollen",
        "environment",
        "geo"
      ],
      "examples": [
        "What is the air quality in Sofia?",
        "Berlin",
        "48.78, 9.18",
        "sensor 12814"
      ],
      "inputModes": [
        "text/plain"
      ],
      "outputModes": [
        "text/plain",
        "application/json"
      ]
    }
  ],
  "additionalInterfaces": [
    {
      "url": "https://airsignal.app/openapi.json",
      "transport": "HTTP+JSON"
    }
  ]
}