Skip to main content
Glama
eianray

NodeAPI

Node API

Version: 0.5.2
Status: Phase 3 — Public
Live at: nodeapi.ai | API Docs | MCP

Machine-native spatial data processing for AI agents and developers. 25 endpoints. Pay $0.01 USDC per operation on Solana. No accounts, no API keys, no subscriptions.


Quick Start

# 1. Send a request — get a 402 with payment details
curl -X POST https://nodeapi.ai/v1/validate \
  -F "file=@parcels.geojson"

# → 402: { "recipient": "D8m8C9amSawdqSgEdXWkMZ3M86qsVQuDJswG1wZYkezP", "amount_usd": "0.01", ... }

# 2. Send 0.01 USDC to the recipient on Solana Mainnet
#    Get the transaction signature from your wallet

# 3. Retry with the transaction signature
curl -X POST https://nodeapi.ai/v1/validate \
  -F "file=@parcels.geojson" \
  -H "X-PAYMENT: <your_solana_tx_signature>"

# → 200: { "total_features": 1204, "valid_count": 1204, ... }

Payment

Every paid endpoint uses Solana Pay with USDC on Solana Mainnet.

Protocol

Solana Pay

Network

Solana Mainnet

Asset

USDC (EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v)

Price

$0.01 flat per operation

Recipient

D8m8C9amSawdqSgEdXWkMZ3M86qsVQuDJswG1wZYkezP

Flow:

  1. Call any endpoint → receive 402 with Solana Pay URL + recipient

  2. Send 0.01 USDC on Solana Mainnet (include memo: nodeapi:<operation>)

  3. Retry with X-PAYMENT: <transaction_signature>

  4. Receive processed data


Endpoints

All endpoints available at /v1/<path> (recommended) and /<path> (legacy, still supported).

Info (free)

Method

Path

Description

GET

/v1/health

Service health

GET

/v1/pricing

Full pricing list

Format & Inspection

Method

Path

Description

POST

/v1/convert

Convert between GeoJSON, Shapefile, GeoPackage, KML

POST

/v1/reproject

Project or reproject to any EPSG (auto-detects assign vs transform)

POST

/v1/validate

Validate geometry — returns JSON report

POST

/v1/repair

Repair invalid geometry (make_valid)

POST

/v1/schema

Extract field schema, CRS, bbox, feature count

POST

/v1/dxf

Extract geometry from DXF/CAD files

Geoprocessing (single input)

Method

Path

Description

POST

/v1/clip

Clip to bounding box or polygon mask

POST

/v1/buffer

Buffer features by distance in meters

POST

/v1/erase

Delete all features, preserve empty schema

POST

/v1/dissolve

Dissolve features by attribute field

POST

/v1/feature-to-point

Convert geometries to centroid points

POST

/v1/feature-to-line

Extract polygon boundaries as lines

POST

/v1/feature-to-polygon

Convert closed lines to polygons

POST

/v1/multipart-to-singlepart

Explode multipart geometries

POST

/v1/add-field

Add a new attribute column

Geoprocessing (two inputs)

Method

Path

Description

POST

/v1/union

Combine all features from two layers

POST

/v1/intersect

Spatial intersection of two layers

POST

/v1/difference

Layer A minus overlap with layer B

POST

/v1/append

Append features from layer B into layer A's schema

POST

/v1/merge

Merge two layers, preserving all fields

POST

/v1/spatial-join

Join attributes by spatial relationship

Tiles

Method

Path

Description

POST

/v1/vectorize

Generate .mbtiles vector tile package (tippecanoe)

Jobs

Method

Path

Description

GET

/v1/jobs/{id}

Poll async job status

GET

/v1/jobs/{id}/download

Download completed job result

Supported input formats: GeoJSON, Shapefile (.zip), GeoPackage (.gpkg), KML, GDB (read), DXF


MCP Integration

Node API exposes all 25 endpoints as MCP tools — compatible with Claude, GPT-4o, and any MCP-enabled agent.

Remote (no install required)

https://nodeapi.ai/mcp/sse

Connect any MCP client to this SSE endpoint. No authentication needed.

Claude Desktop (local)

Add to ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "node-api": {
      "command": "/path/to/venv/bin/python",
      "args": ["-m", "app.mcp_server"],
      "cwd": "/path/to/node-api"
    }
  }
}

22 MCP tools: convert, reproject, validate, repair, schema, clip, dxf, buffer, union, intersect, difference, erase, dissolve, feature-to-point, feature-to-line, feature-to-polygon, multipart-to-singlepart, add-field, append, merge, spatial-join, pricing


Webhooks

For async jobs (DXF conversion, any large file), pass a webhook_url to receive a POST on completion instead of polling.

curl -X POST https://nodeapi.ai/v1/dxf \
  -F "file=@site-plan.dxf" \
  -F "output_format=geojson" \
  -F "webhook_url=https://your-agent.com/callback" \
  -H "X-PAYMENT: <tx_signature>"

Webhook payload:

{
  "job_id": "abc-123",
  "operation": "dxf",
  "status": "done",
  "result_url": "https://nodeapi.ai/v1/jobs/abc-123/download",
  "result_filename": "output.geojson",
  "size_bytes": 48291
}

Signed with X-Webhook-Signature: sha256=<HMAC> for verification.


Architecture

  • FastAPI — async, OpenAPI spec at /docs

  • GeoPandas + GDAL — 200+ vector format support

  • Shapely 2.x — geometry operations

  • pyproj — CRS reprojection

  • tippecanoe 2.79 — vector tile generation

  • PostgreSQL — operations log + job queue

  • Solana Pay — USDC micropayments on Solana Mainnet

  • MCP SDK — stdio (local) + SSE (remote) transport

  • Cloudflare Tunnelnodeapi.ai → API server


Dev Setup

git clone https://github.com/eianray/node-api
cd node-api
python3 -m venv venv
venv/bin/pip install -r requirements.txt
cp .env.example .env
# Leave SOLANA_WALLET_ADDRESS=YOUR_SOLANA_WALLET_ADDRESS for dev mode (bypasses payment)
venv/bin/uvicorn app.main:app --reload --port 8100

Roadmap

  • Phase 1 ✅ — Convert, reproject, validate, repair, schema, clip

  • Phase 2 ✅ — DXF/CAD, buffer, topology (union/intersect/difference), remote MCP SSE

  • Phase 3 ✅ (Mar 4 2026) — 11 new geoprocessing endpoints, Solana Pay, webhooks, vector tiles, API versioning, 22 MCP tools

  • Phase 4 — Hetzner migration, CDN caching, batch API, agent directory listings


nodeapi.ai — spatial processing infrastructure for the agent economy.

-
security - not tested
F
license - not found
-
quality - not tested

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/eianray/node-api'

If you have feedback or need assistance with the MCP directory API, please join our Discord server