{
  "name": "geolith geocoding agent",
  "description": "Answers geocoding requests: send a place name or address to find it, \"lat, lon\" to reverse-geocode, or a data part { operation, params } for any operation. Replies with a text summary and the GeoJSON FeatureCollection.",
  "version": "1.0.0",
  "supportedInterfaces": [
    {
      "url": "https://api.geolith.app/a2a",
      "protocolBinding": "JSONRPC",
      "protocolVersion": "1.0"
    }
  ],
  "provider": {
    "organization": "geolith",
    "url": "https://console.geolith.app"
  },
  "documentationUrl": "https://api.geolith.app/.well-known/agent-skills/geolith-geocoding/SKILL.md",
  "capabilities": {
    "streaming": false,
    "pushNotifications": false,
    "extendedAgentCard": false
  },
  "securitySchemes": {
    "apiKey": {
      "httpAuthSecurityScheme": {
        "scheme": "Bearer",
        "description": "A geolith API key (gc_sk_…)."
      }
    },
    "oauth": {
      "oauth2SecurityScheme": {
        "oauth2MetadataUrl": "https://console.geolith.app/.well-known/oauth-authorization-server",
        "flows": {
          "authorizationCode": {
            "authorizationUrl": "https://console.geolith.app/api/auth/oauth2/authorize",
            "tokenUrl": "https://console.geolith.app/api/auth/oauth2/token",
            "refreshUrl": "https://console.geolith.app/api/auth/oauth2/token",
            "scopes": {
              "geocode": "Call the geocoding API."
            },
            "pkceRequired": true
          }
        }
      }
    }
  },
  "securityRequirements": [
    {
      "schemes": {
        "apiKey": {
          "list": []
        }
      }
    },
    {
      "schemes": {
        "oauth": {
          "list": [
            "geocode"
          ]
        }
      }
    }
  ],
  "defaultInputModes": [
    "text/plain",
    "application/json"
  ],
  "defaultOutputModes": [
    "text/plain",
    "application/geo+json"
  ],
  "skills": [
    {
      "id": "search",
      "name": "Find a place",
      "description": "Forward geocoding: a place name or address to ranked GeoJSON places.",
      "tags": [
        "geocoding",
        "search",
        "address",
        "places"
      ],
      "examples": [
        "Gateway of India, Mumbai",
        "{\"operation\":\"search\",\"params\":{\"text\":\"Eiffel Tower\",\"size\":1}}"
      ]
    },
    {
      "id": "reverse",
      "name": "Reverse geocode",
      "description": "A coordinate to the nearest places and addresses.",
      "tags": [
        "geocoding",
        "reverse",
        "coordinates"
      ],
      "examples": [
        "18.5195, 73.8553"
      ]
    },
    {
      "id": "place",
      "name": "Place details and outline",
      "description": "Places by gid, with their polygon outline when asked.",
      "tags": [
        "geocoding",
        "place",
        "polygon"
      ],
      "examples": [
        "{\"operation\":\"place\",\"params\":{\"ids\":[\"geolith:locality:123\"],\"geometry\":true}}"
      ]
    }
  ]
}