Ferret — Business Endpoints
17 cross-cutting analyses built on top of the 333 parsers, with 16
/llmroutes returning markdown prompts (~800 tokens) for direct LLM injection.
How they work
Each business endpoint follows the same pattern as /seo/corpus:
GET /<domain>/<endpoint>?q=<query> → multi-source analysis, structured JSON
GET /<domain>/<endpoint>/llm?q=<query> → LLM-ready markdown prompt (~800 tokens)
?format=json|csv|xml → output format
?sources=parser1,parser2 → restrict the source parsers
A business endpoint combines several parsers to produce a single analysis useful to a professional (SEO, e-commerce, real estate, finance, etc.). For example, /seo/audit merges 15 parsers (CMS, PageSpeed, WHOIS, DNS, robots.txt, hreflang, OpenGraph, Safe Browsing, …) into one technical audit.
Why the /llm routes?
The JSON response is for programmatic use. The /llm variant re-formats the same data as a focused markdown prompt — about 800 tokens — designed to be appended directly to a chat completion’s system or user message. This is what gives the most user value: an LLM can read the prompt and produce a finished report without you writing the aggregation logic.
# Structured JSON — for your own pipeline
curl "http://localhost:9093/seo/audit?q=example.com"
# LLM-ready markdown — feed straight to GPT-4 / Claude
curl "http://localhost:9093/seo/audit/llm?q=example.com"
SEO & Content (10 endpoints)
These aggregate the SEO parser family (position, serp_features, hreflang, opengraph, pagespeed, robots_txt, sitemap, backlink, whois, dns, cms, safebrowsing, trust, cache, archive, …).
/seo/corpus — Content corpus analysis
TF-IDF, ngrams, search intents, content plan, benchmark, opportunities, semantic groups.
curl "http://localhost:9093/seo/corpus?q=rust+web+framework"
curl "http://localhost:9093/seo/corpus/llm?q=rust+web+framework"
/seo/audit — Full technical SEO audit
Merges 15 parsers: CMS + version, Core Web Vitals (LCP/FID/CLS), WHOIS (domain age, expiry, registrar), DNS (A/MX/NS/TXT), robots.txt + sitemap validity, hreflang, OpenGraph/Twitter Cards, trust score (Safe Browsing, SSL, spam), cache/archive (last Google crawl), hosting (IP, country, ASN), HTTP security headers (HSTS, CSP, X-Frame-Options).
curl "http://localhost:9093/seo/audit?q=example.com"
curl "http://localhost:9093/seo/audit/llm?q=example.com" # "Technical audit for example.com"
/seo/competitors — SERP competitor analysis
Top 10 competitors for a keyword; for each: domain authority, backlinks, social presence, SERP features present (featured snippet, PAA, images, videos, shopping), gap analysis.
curl "http://localhost:9093/seo/competitors?q=rust+hosting"
/seo/content — On-page content SEO analysis
URL content extraction (title, meta, body, H1–H6), readability score, keyword density, internal/external links, social shares, optimization recommendations.
curl "http://localhost:9093/seo/content/llm?q=https://example.com/blog/post"
/seo/pagespeed — Core Web Vitals
LCP, FID, CLS and full performance metrics for a URL.
curl "http://localhost:9093/seo/pagespeed?q=https://example.com"
/seo/serp-features — SERP feature inventory
Featured snippets, People Also Ask, image packs, video packs, shopping for a keyword.
curl "http://localhost:9093/seo/serp-features?q=best+rust+ide"
/seo/hreflang — hreflang audit
All hreflang tags and declared languages for a URL.
curl "http://localhost:9093/seo/hreflang?q=https://example.com"
/seo/opengraph — Open Graph / Twitter Cards / schema.org
Validates OG, Twitter Card and JSON-LD schema markup.
curl "http://localhost:9093/seo/opengraph?q=https://example.com"
/seo/robots-txt — Robots.txt and sitemaps
robots.txt rules, referenced sitemaps, crawl constraints.
curl "http://localhost:9093/seo/robots-txt?q=https://example.com"
/seo/bukvarix — Search volume (Bukvarix)
Keyword search volume from Bukvarix (RU/CIS focus).
curl "http://localhost:9093/seo/bukvarix?q=купить+ноутбук"
France (3 endpoints)
/france/living — Quality of life for a commune
Merges ~10 French parsers: real estate prices (m², trend), median rent, shops and services, transport (train stations, bus, carpool), schools, healthcare professionals, green spaces, culture (museums, monuments), risks (flood, seismic), EV charging stations.
curl "http://localhost:9093/france/living?q=75001"
curl "http://localhost:9093/france/living?q=Lyon"
Response (excerpt):
{
"commune": "Paris 1er Arrondissement",
"code_postal": "75001",
"immobilier": {"prix_m2": 12800, "evolution_1an": 2.4},
"loyer_median": 34,
"transports": {"gares": [...], "bornes_electriques": 12},
"sante": {"medecins": 87},
"risques": ["inondation"],
...
}
/france/company — Full company profile
SIRENE + dirigeants + RNA associations + DVF real estate transactions. For due diligence.
curl "http://localhost:9093/france/company?q=552033579" # SIREN
curl "http://localhost:9093/france/company?q=Decathlon"
/realestate/estimate — Real estate valuation
Price/m² in the zone, recent transactions (DVF), 1-year / 5-year price trends, estimated vs median rent, comparison with neighbouring towns, market trends.
curl "http://localhost:9093/realestate/estimate?q=Lyon"
Transverse (7+ endpoints)
/product/intelligence — Multi-market product pricing
Min/max/mean price across Amazon, eBay, AliExpress, Walmart, Etsy, Reverb. Availability, ratings, reviews, best value-for-money, price trend.
curl "http://localhost:9093/product/intelligence?q=sony+wh-1000xm5"
/social/sentiment — Cross-platform sentiment
Volume of mentions, general sentiment (positive/negative/neutral), top sources, temporal evolution, associated keywords. Sources: Twitter, Reddit, Quora, Medium.
curl "http://localhost:9093/social/sentiment?q=rust+programming"
/finance/portfolio — Portfolio analysis
Current vs historical prices, 24h/7d/30d performance, volatility, asset correlation, diversification recommendation. Sources: CoinGecko, Alpha Vantage, Twelve Data, Binance, Kraken.
curl "http://localhost:9093/finance/portfolio?q=BTC,ETH,SOL"
/tech/trends — Technology trends
Trending tech, recent discussions, popular projects, frequent questions. Sources: GitHub, Hacker News, dev.to, StackExchange.
curl "http://localhost:9093/tech/trends?q=rust"
/travel/trip — Trip planner
Weather at destination, available accommodation, tourist activities, transport options, estimated budget. Sources: Booking, TripAdvisor, weather, OpenTripMap, SBB.
curl "http://localhost:9093/travel/trip?q=Lisbon"
/culture/events — Cultural agenda
Current exhibitions, monuments to visit, cultural events, how to get there. Sources: musées, monuments, culture, OpenTripMap, transport.
curl "http://localhost:9093/culture/events?q=Paris"
/health/drugs — Drug information
Drug description, active principles (PubChem), FDA warnings, available alternatives. Sources: médicaments (ANSM), FDA, PubChem.
curl "http://localhost:9093/health/drugs?q=paracetamol"
/research/literature — Scientific literature review
Articles on a topic, impact factors, authors and affiliations, open access availability, citation network. Sources: OpenAlex, Crossref, ISSN, university rankings, OpenLibrary.
curl "http://localhost:9093/research/literature?q=transformer+attention"
/monitor/track — RSS monitoring
Watch sites via RSS, detect new articles, extract content, auto-summarize. Sources: rss, article_extractor.
curl "http://localhost:9093/monitor/track?q=https://example.com/feed.xml"
The 16 /llm routes
Every endpoint above (except /seo/competitors which returns raw data) ships a /llm variant. These 16 routes return markdown prompts optimized for direct injection into a chat completion:
| Route | Prompt topic |
|---|---|
/seo/corpus/llm | Write an SEO article from the corpus |
/seo/audit/llm | Prioritized corrective audit report |
/seo/content/llm | Concrete on-page SEO recommendations |
/france/living/llm | Quality-of-life report for moving/relocating |
/france/company/llm | Full company report for due diligence |
/realestate/estimate/llm | Market analysis for buyer/seller |
/product/intelligence/llm | Market positioning and pricing opportunities |
/social/sentiment/llm | Opinion trend report |
/finance/portfolio/llm | Personalized investment report |
/tech/trends/llm | Hot-topic summary |
/travel/trip/llm | Full itinerary with budget |
/culture/events/llm | Weekend event picks |
/health/drugs/llm | Complete drug brief for a patient |
/research/literature/llm | Synthesis of recent publications |
/monitor/track/llm | New content since last check |
/seo/pagespeed/llm | Performance fix plan |
Each prompt is roughly 800 tokens — small enough to fit alongside a user question in any modern context window.
Combining endpoints
Business endpoints compose cleanly. A common pattern:
# 1. Pull the LLM prompt for an SEO audit
PROMPT=$(curl -s "http://localhost:9093/seo/audit/llm?q=example.com")
# 2. Send it to your LLM
curl https://api.openai.com/v1/chat/completions \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "Content-Type: application/json" \
-d "{
\"model\": \"gpt-4.1\",
\"messages\": [
{\"role\": \"system\", \"content\": \"You are an SEO consultant.\"},
{\"role\": \"user\", \"content\": $(jq -Rs . <<< "$PROMPT")}
]
}"
See Parsers for the underlying sources and Export Formats for output options.