Ground your agent in real‑world facts
Seven typed APIs for prices, hiring, intent, property, news and competitor changes, behind one MCP server. Clean JSON in, no scraping and no re-parsing.
Free tier includes 10,000 calls a month. No card required.
freshgeo.ecommerce_pricing{ "sku": "SKU-841", "competitors": 3 }
{ "price": 29.99, "currency": "GBP", "competitor_count": 14, "percentile": 23, "cache_id": "c_8f2a91" }
freshgeo.buying_intent{ "role": "platform engineer", "stage": "series_b", "sector": "fintech" }
{ "companies": 38, "signal": "hiring_surge", "top_domain": "example-fintech.com", "score": 87, "cache_id": "c_41d0be" }
freshgeo.hiring_jobs{ "role": "staff data engineer", "region": "London" }
{ "p25_gbp": 95000, "p75_gbp": 125000, "sample_size": 212, "cache_id": "c_09be77" }
freshgeo.competitor_monitoring{ "domain": "competitor.example", "watch": "pricing" }
{ "change": "pricing_table", "detected": "2 min ago", "webhook": "delivered", "cache_id": "c_5ce3a0" }
- p95 under 200ms
- on cached responses
- 15 minutes
- deterministic cache window
- Up to 99.95%
- uptime SLA
- 7 APIs, 1 key
- one contract, one invoice
A scraped page, or an answer?
Scraping hands your model a document and hopes it finds the number. FreshGeo hands it the number.
<div class="pdp__price-wrap">
<span class="was">£39.99</span>
<span class="now" data-sku="841">
£29<sup>.99</sup>
</span> <!-- sale ends Sun -->
</div>
<script>window.__STATE__={"p":[… Your agent re-parses this on every call, per site, and sometimes guesses wrong.
{ "price": 29.99, "currency": "GBP", "competitor_count": 14, "percentile": 23, "cache_id": "c_8f2a91" }
Stable fields, real types, a source per field and a cache_id so you can replay the exact answer.
From install to first answer in minutes
Connect once
Add the MCP server to Claude, Cursor or any MCP client. Seven tools appear with typed parameters.
Let the agent ask
It calls a tool by name with typed arguments. No prompts to extract fields, no HTML to parse.
Trust and replay
Every answer is entity-linked, carries sources per field, and returns a cache_id you can replay in evals.
{"mcpServers":{"freshgeo":{"url":"https://mcp.freshgeo.com"}}} One agent. Seven sources of truth.
Each is a licensed data product in its own right. Together they form a grounding layer your agent can rely on.
E-Commerce Pricing
Real-time competitor pricing intelligence
freshgeo.ecommerce_pricing Buying Intent Signals
Identify companies ready to purchase
freshgeo.buying_intent Hiring & Job Data
Comprehensive workforce intelligence
freshgeo.hiring_jobs Social & Trend Signals
Real-time pulse of the internet
freshgeo.social_trends Real Estate Data
Property intelligence at scale
freshgeo.real_estate Competitor Monitoring
Never miss a competitor move
freshgeo.competitor_monitoring News & Risk Signals
Early warning risk intelligence
freshgeo.news_risk Built on one entity graph
We do the crawling, extraction and matching once, upstream. Your agent calls a typed tool and gets facts that already agree with each other.
- Agent surface
- One MCP server and REST API with per-agent keys, scopes and hard caps.
- Entity graph
- One company or product ID joins pricing, hiring, intent, news and social data.
- Licensed sources
- Public-web crawls, licensed feeds and partner APIs, UK-hosted, with a source on every field.
Choose freshness per call
Every mode returns the same typed schema, so moving from a cached lookup to a live refresh or a webhook is a single parameter, not a rewrite.
Fast and repeatable
Same query, same answer inside a 15-minute window. Every response carries a cache_id you can replay in evals and audit logs.
Best for: Chat, voice and high-volume lookups
Fresh when it matters
Skip the cache for a tracked SKU or entity and re-read the source. Same typed schema, with sources per field.
Best for: Decisions that need today’s number
Told, not polling
Watch an entity or a domain and get a webhook when something changes. Hourly checks on Pro, real-time on Enterprise.
Best for: Long-running agents and alerts
Instead of stitching it together
Problem: Great for articles, wrong for entities. Your agent burns thousands of tokens re-parsing markdown to find one price.
FreshGeo: Typed JSON with stable fields. Prices are numbers, dates are ISO.
Problem: You still get HTML and still own the breakage: blocks, layout changes, rate limits.
FreshGeo: We crawl, extract and normalise upstream. You get clean entities with a source URL per field.
Problem: Five auths, five schemas, no joins. Your agent cannot link a news event to a pricing change.
FreshGeo: One key, one schema, one entity graph across all seven domains.
Problem: Months of headless Chrome and proxy rotation, and compliance has not signed off on the sources.
FreshGeo: Licensed sources, signed data-use terms, UK hosting and a DPA, ready for procurement.
Priced like infrastructure
One pooled quota across all seven APIs. Overages are off by default, so a runaway agent hits a wall, not your invoice.
Free
For prototypes, students, and weekend hacks. No card required.
Starter
For indie apps and early-stage products shipping to real users.
Scale
PopularFor funded teams with production traffic and uptime obligations.
Enterprise
For teams with procurement, security review, and a named buyer.
“FreshGeo's pricing API replaced three vendors. Data quality and latency are exceptional — we cut integration time from weeks to hours.”
“The risk signals API gives us an edge our competitors don't have. Early warning on layoffs and funding changes is invaluable.”
What is FreshGeo?
FreshGeo is a grounding API for AI agents. Seven typed data endpoints — competitor pricing, buying intent, jobs, social, real estate, competitor monitoring and news/risk — exposed as one MCP server and one REST API so agents can fetch real-world facts without scraping the web.
How is this different from a web search API like Tavily or Exa?
Search APIs return ranked web pages in markdown. Agents still have to reason over unstructured text. FreshGeo returns deterministic typed JSON — prices, headcount, listings, events — so the agent spends zero tokens extracting fields. Different job, same stack.
Can I plug it straight into Claude, OpenAI or Cursor?
Yes. Point any MCP-compatible client at mcp.freshgeo.com and the seven APIs appear as tools with typed parameters and per-tool auth scopes. There is also a REST surface and official SDKs for Python, Node, Go and Ruby for function-calling setups.
Why do agents need this instead of scraping?
Scrapers give you HTML that the LLM must re-parse on every call, burning tokens and introducing hallucinations. FreshGeo caches typed responses, dedupes across sources, and returns a cache_id per call so you can replay the exact response in evals or production retries.
How do you stop a runaway agent from burning our budget?
Every agent or user session can have its own API key with a hard call cap, per-tool scope, and rate limits. Usage is visible per key in the dashboard, and overages are off by default — we hard-stop at your quota rather than send you a surprise invoice.
Point your agent at real data
Start free and get your MCP server the moment you have a key. UK-hosted, UK-supported and ready for procurement.
Notes on agent data infrastructure
One email a month. No spam, unsubscribe in a click.