Platform
The geo foundation, as an API.
Five endpoints over the open GeoFeed protocol, behind one API key. Resolve a place, anchor activity to it, and serve it to any model or agent — without running infrastructure yourself.
Resolver
POST /resolveTurn free-text places, addresses or fuzzy descriptions into a stable SubdivisionPath, with a confidence score and a vector embedding.
Runs the open subdivision-resolver model — hosted, batched, cached.
curl https://api.geofeed.ai/resolve \
-H "Authorization: Bearer gf_live_..." \
-d '{"q": "aquele bar no tatuapé perto do metrô"}'
→ { "geopath": "bra/sp/sao-paulo/tatuape", "confidence": 0.94 } Feeds
GET /feeds/{geopath}Publish and read structured local activity — Actor-Verb-Object events anchored to a geopath. JSON for apps, Markdown for retrieval.
Ingestion is metered; the feed format itself is open.
GET https://api.geofeed.ai/feeds/bra/sp/sao-paulo/tatuape
→ [{ "actor": "place:salao", "verb": "announced",
"object": "live music · friday 9pm" }, ...] Render
GET md.geofeed.ai/{geopath}Any geopath as clean, LLM-ready Markdown — the registered servers, the live feed, the context — in one retrieval-friendly document.
Like r.jina.ai, but for a place instead of a URL.
GET https://md.geofeed.ai/bra/sp/sao-paulo/tatuape
→ # Tatuapé, São Paulo, Brazil
## Happening now
- ... MCP
MCP mcp.geofeed.aiA hosted Model Context Protocol server. Point any MCP-compatible agent at it and it can resolve, browse and read the geo registry natively.
Free tier included; metered at scale.
{
"mcpServers": {
"geofeed": { "url": "https://mcp.geofeed.ai" }
}
} Registry
GET /{geopath}The DNS of the protocol: which servers are authoritative for a geopath. Reads are always free. Writes and bulk indexing are metered.
Reads: free, forever. The protocol root is never paywalled.
GET https://api.geofeed.ai/bra/sp/sao-paulo/tatuape
→ { "servers": [{ "url": "https://findera.app/...",
"type": "feed" }] } One key unlocks all five. Start free.
Get your API key