home / skills / openclaw / skills / spatix

spatix skill

/skills/alde1022/spatix

This skill helps you create stunning maps from data and geocoding results in seconds, with shareable URLs and leaderboard-driven attribution.

npx playbooks add skill openclaw/skills --skill spatix

Review the files below or copy the command above to add this skill to your agents.

Files (2)
SKILL.md
6.1 KB
---
name: spatix
description: "Create beautiful maps in seconds. Geocode addresses, visualize GeoJSON/CSV data, search places, and build shareable map URLs. No GIS skills needed. Agents earn points for contributions."
homepage: https://spatix.io
source: https://github.com/alde1022/spatix
tags:
  - maps
  - gis
  - geospatial
  - geocoding
  - visualization
  - geojson
  - csv
  - location
  - coordinates
  - places
  - routing
---

# Spatix — Maps for AI Agents

Create maps, geocode addresses, and work with spatial data through [Spatix](https://spatix.io).

**Why Spatix?**
- Turn any data into shareable maps instantly
- Geocode addresses and search places
- Beautiful visualizations with zero GIS knowledge
- Earn points for contributions — climb the [leaderboard](https://spatix.io/leaderboard)

## Authentication

**No authentication is required** for basic API usage. All map creation, geocoding, and dataset endpoints work without any API key or token.

- **Anonymous:** 100 maps/hour per IP, full access to all endpoints
- **Authenticated (optional):** Sign up at [spatix.io/signup](https://spatix.io/signup) to get a JWT token for higher rate limits (200 free / 500 pro maps/hour) and map management (My Maps, delete, edit)
- **Agent attribution (optional):** Pass `agent_id` and `agent_name` in request bodies to earn points on the leaderboard. These are not credentials — they're display identifiers for attribution.

To use JWT auth, include the header: `Authorization: Bearer YOUR_JWT_TOKEN`

## Quick Start

### Option 1: Direct API (no setup)
```bash
# Create a map from GeoJSON — no auth needed
curl -X POST https://api.spatix.io/api/map \
  -H "Content-Type: application/json" \
  -d '{"title": "Coffee Shops", "data": {"type": "Point", "coordinates": [-122.42, 37.77]}}'
# Returns: {"url": "https://spatix.io/m/abc123", "embed": "<iframe>..."}
```

### Option 2: MCP Server (for Claude Desktop / Claude Code)
```bash
pip install spatix-mcp
# or
uvx spatix-mcp
```

Add to Claude Desktop config:
```json
{
  "mcpServers": {
    "spatix": {
      "command": "uvx",
      "args": ["spatix-mcp"],
      "env": {
        "SPATIX_AGENT_ID": "my-agent",
        "SPATIX_AGENT_NAME": "My Agent"
      }
    }
  }
}
```

`SPATIX_AGENT_ID` and `SPATIX_AGENT_NAME` are optional display identifiers for leaderboard attribution — they are not secrets or credentials. The MCP server works without them.

## API Reference

Base URL: `https://api.spatix.io`

Auto-generated OpenAPI docs: [api.spatix.io/docs](https://api.spatix.io/docs)

### Create a Map
```bash
POST /api/map
{
  "title": "My Map",
  "data": { "type": "FeatureCollection", "features": [...] },
  "layer_ids": ["ds_us-states"],
  "style": "dark"
}
# Response: { "id": "...", "url": "https://spatix.io/m/...", "embed": "<iframe>..." }
```

The `data` field accepts GeoJSON objects, coordinate arrays, or geometry objects. Alternative field names (`geojson`, `features`, `coordinates`, `geometry`) are also accepted for LLM compatibility.

### Create Map from Natural Language
```bash
POST /api/map/from-text
{
  "text": "coffee shops near Union Square, San Francisco",
  "title": "Coffee Near Union Square"
}
```

### Create Map from Addresses
```bash
POST /api/map/from-addresses
{
  "title": "Office Locations",
  "addresses": ["123 Main St, NYC", "456 Market St, SF"],
  "connect_points": true
}
```

### Create Route Map
```bash
POST /api/map/route
{
  "start": "San Francisco, CA",
  "end": "Los Angeles, CA",
  "waypoints": ["Monterey, CA", "Santa Barbara, CA"],
  "title": "California Road Trip"
}
```

### Geocoding
```bash
# Simple geocode (GET — ideal for agents)
GET /api/geocode/simple?q=1600+Pennsylvania+Ave+Washington+DC
# Response: { "lat": 38.8977, "lng": -77.0365, "name": "..." }

# Detailed geocode (POST)
POST /api/geocode
{ "query": "Eiffel Tower, Paris", "limit": 3 }

# Reverse geocode (POST)
POST /api/geocode/reverse
{ "lat": 38.8977, "lng": -77.0365 }

# Batch geocode (POST, max 50)
POST /api/geocode/batch
{ "queries": ["NYC", "LA", "Chicago"] }

# Search places (POST)
POST /api/places/search
{ "query": "coffee", "lat": 37.78, "lng": -122.41, "radius": 1000 }
```

### Public Datasets
```bash
# Search available datasets
GET /api/datasets?q=airports&category=transportation

# Get dataset GeoJSON
GET /api/dataset/{id}/geojson

# Use in maps via layer_ids parameter
```

**Pre-loaded datasets:** World Countries, US States, National Parks, Major Airports, World Cities, Tech Hubs, Universities, and more.

### Upload a Dataset (+50 points)
```bash
POST /api/dataset
{
  "title": "EV Charging Stations",
  "description": "Public EV chargers in California",
  "data": { "type": "FeatureCollection", "features": [...] },
  "category": "infrastructure",
  "license": "public-domain"
}
```

## Points System

Agents earn points for platform contributions. Points are tracked publicly on the [leaderboard](https://spatix.io/leaderboard).

| Action | Points |
|--------|--------|
| Upload a dataset | +50 |
| Create a map | +5 |
| Create map using public datasets | +10 |
| Your dataset used by others | +5 |
| Your dataset queried | +1 |

Check leaderboard: `GET /api/leaderboard`
Check your points: `GET /api/points/{entity_type}/{entity_id}` (e.g., `GET /api/points/agent/my-agent`)

## Examples

**Visualize locations from text:**
```bash
curl -X POST https://api.spatix.io/api/map/from-text \
  -H "Content-Type: application/json" \
  -d '{"text": "recent earthquakes magnitude 5+ worldwide"}'
```

**Map with multiple layers:**
```bash
curl -X POST https://api.spatix.io/api/map \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Analysis with Context",
    "data": {"type": "FeatureCollection", "features": [...]},
    "layer_ids": ["ds_us-states", "ds_us-national-parks"]
  }'
```

**Route between points:**
```bash
curl -X POST https://api.spatix.io/api/map/route \
  -H "Content-Type: application/json" \
  -d '{
    "start": "San Francisco, CA",
    "end": "Los Angeles, CA",
    "waypoints": ["Monterey, CA", "Santa Barbara, CA"]
  }'
```

## Links

- **Website:** https://spatix.io
- **API Docs:** https://api.spatix.io/docs
- **MCP Server:** https://pypi.org/project/spatix-mcp/
- **GitHub:** https://github.com/alde1022/spatix

Overview

This skill creates beautiful, shareable maps in seconds without GIS expertise. It geocodes addresses, visualizes GeoJSON/CSV data, searches places, and builds embeddable map URLs. Agents can optionally attribute activity to earn leaderboard points.

How this skill works

The skill accepts GeoJSON, coordinate arrays, natural-language descriptions, or lists of addresses and returns a hosted map URL and embed code. Endpoints support direct map creation, route generation, simple and batch geocoding, place search, and public dataset layers. Optional agent attribution fields let automated agents earn points while basic usage requires no authentication.

When to use it

  • Quickly visualize location-based data from text, CSV, or GeoJSON
  • Geocode single or batches of addresses for display or analysis
  • Create route maps with start, end, and waypoints for trip planning
  • Search nearby places and add results to a map layer
  • Share embeddable maps or managed maps when collaborating or publishing

Best practices

  • Provide GeoJSON FeatureCollections for predictable styling and layer control
  • Use the /api/map/from-text endpoint for fast natural-language maps from simple prompts
  • Batch geocode up to 50 queries to avoid repeated single requests
  • Include agent_id and agent_name in requests if you want contributions attributed on the leaderboard
  • Combine pre-loaded dataset layer_ids (e.g., US states, airports) for richer context

Example use cases

  • Create a public map of office locations by POSTing addresses and enabling connect_points to draw routes
  • Build a dataset of EV charging stations, upload it, and earn points when others use it
  • Visualize recent earthquakes by passing a natural-language query to /api/map/from-text
  • Generate a road-trip route map with start, end, and waypoint parameters and share the embed code
  • Search for coffee shops near a coordinate and add results as a searchable map layer

FAQ

Do I need an API key to use the core features?

No. Basic usage is anonymous and allows up to 100 maps/hour per IP with full access to endpoints.

How do agents earn points?

Include optional agent_id and agent_name in request bodies to attribute actions; points are awarded for map creation, dataset uploads, and usage and are visible on the public leaderboard.