Skill: johnnagro/isitwater (version 1.0.0)

--- name: isitwater description: Check if geographic coordinates are over water or land using the IsItWater API. metadata: {"openclaw": {"primaryEnv": "ISITWATER_API_KEY", "emoji": "🌊", "homepage": "https://isitwater.com"}} --- # IsItWater Determine whether a latitude/longitude coordinate is over water using the IsItWater API. ## Setup Before making API calls, check whether the user has an API key configured: 1. Check if `ISITWATER_API_KEY` is set in the environment. 2. If it is **not** set: - Inform the user: "You need an IsItWater API key. You can get one at https://isitwater.com" - Offer to help them sign up using the browser tool — navigate to https://isitwater.com, create an account, and generate an API key from the dashboard. - Once the user has a key, guide them to configure it in `~/.openclaw/openclaw.json`: ```json { "skills": { "entries": { "isitwater": { "apiKey": "YOUR_API_KEY_HERE" } } } } ``` - Alternatively, the user can export the environment variable directly: `export ISITWATER_API_KEY=YOUR_API_KEY_HERE` 3. Once the key is available, proceed with the API calls below. ## Water Lookup Check whether a coordinate is over water or land. **Endpoint:** `GET https://api.isitwater.com/v1/locations/water` **Headers:** - `Authorization: Bearer $ISITWATER_API_KEY` **Query Parameters:** | Parameter | Type | Required | Description | |-----------|--------|----------|--------------------------------| | `lat` | number | yes | Latitude, between -90 and 90 | | `lon` | number | yes | Longitude, between -180 and 180 | **Example curl:** ```bash curl -s "https://api.isitwater.com/v1/locations/water?lat=41.7658&lon=-72.6734" \ -H "Authorization: Bearer $ISITWATER_API_KEY" ``` **Example response (land):** ```json { "request_id": "abc123", "water": false, "features": ["earth"], "latitude": "41.7658", "longitude": "-72.6734" } ``` **Example response (water):** ```json { "request_id": "def456", "water": true, "features": ["earth", "ocean"], "latitude": "36.0", "longitude": "-30.0" } ``` **Response Fields:** | Field | Type | Description | |--------------|----------|-----------------------------------------------------------------------------------------------------| | `request_id` | string | Unique identifier for the request | | `water` | boolean | `true` if the coordinate is over water, `false` if over land | | `features` | string[] | Geographic features at the point — e.g. `earth`, `ocean`, `lake`, `river`, `glacier`, `nature_reserve` | | `latitude` | string | The latitude that was queried | | `longitude` | string | The longitude that was queried | **Cost:** 1 credit per lookup. ## Account Info Check the user's account details and remaining credit balance. **Endpoint:** `GET https://api.isitwater.com/v1/accounts/me` **Headers:** - `Authorization: Bearer $ISITWATER_API_KEY` **Example curl:** ```bash curl -s "https://api.isitwater.com/v1/accounts/me" \ -H "Authorization: Bearer $ISITWATER_API_KEY" ``` **Response Fields:** | Field | Type | Description | |------------------------|---------|--------------------------------------| | `id` | string | Account identifier | | `name` | string | Account name | | `balance` | number | Remaining credits | | `auto_recharge_enabled`| boolean | Whether auto-recharge is turned on | **Cost:** Free (no credits consumed). ## Error Handling | Status Code | Meaning | Description | |-------------|----------------------|------------------------------------------------| | 200 | OK | Request succeeded | | 400 | Bad Request | Invalid latitude or longitude values | | 401 | Unauthorized | Missing or invalid API key | | 402 | Payment Required | Account has no remaining credits | Error responses return a JSON body: ```json { "error": "description of the problem" } ``` ## Tips - Each water lookup costs **1 credit**. Use the Account Info endpoint to check the user's balance before making many requests. - When the user provides a **place name** instead of coordinates (e.g. "Is the Sahara Desert water?"), geocode the location first to get lat/lon, then call the water lookup endpoint. - The `features` array can contain **multiple overlapping values** for a single point — for example, a point might return both `lake` and `nature_reserve`.

path: README.md
content: # IsItWater AgentSkill

An [AgentSkills](https://agentskills.io)-compatible skill for the [IsItWater](https://isitwater.com) API. Works with [OpenClaw](https://docs.openclaw.ai/tools/skills) and other AgentSkills-compatible frameworks.

This skill teaches AI agents how to check whether geographic coordinates are over water or land using the IsItWater REST API.

## Installation

### Via ClawHub

```bash
clawhub install isitwater
```

### Manual

Clone this repository into your skills directory:

```bash
# Global (available to all agents)
git clone https://github.com/noreaster-group/isitwater-agentskill.git ~/.openclaw/skills/isitwater

# Or workspace-local (available to one agent)
git clone https://github.com/noreaster-group/isitwater-agentskill.git ./skills/isitwater
```

## Configuration

The skill requires an API key from [isitwater.com](https://isitwater.com).

**Option A** — Set the environment variable directly:

```bash
export ISITWATER_API_KEY=your_api_key_here
```

**Option B** — Configure via `~/.openclaw/openclaw.json`:

```json
{
  "skills": {
    "entries": {
      "isitwater": {
        "apiKey": "your_api_key_here"
      }
    }
  }
}
```

If the key is not configured, the skill will guide you through the setup process when invoked.

## API Endpoints

| Endpoint | Method | Description | Cost |
|----------|--------|-------------|------|
| `/v1/locations/water?lat=LAT&lon=LON` | GET | Check if coordinates are over water | 1 credit |
| `/v1/accounts/me` | GET | Account info and balance | Free |

## Links

- [IsItWater](https://isitwater.com) — Get your API key
- [AgentSkills Spec](https://agentskills.io) — The skill format standard
- [OpenClaw Skills Docs](https://docs.openclaw.ai/tools/skills) — How skills work in OpenClaw
- [ClawHub](https://clawhub.com) — Browse and install skills

## License

[MIT](LICENSE)


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)