Aggressive.ai exposes a public, JSON HTTP API designed to be wrapped as a tool inside any LLM-agent framework — OpenAI, Anthropic, LangGraph, Vercel AI SDK, custom orchestrators. The same engine powers the web UI; there is no second-tier surface for agents.
POST /api/public/optimize
Content-Type: application/json
{
"category": "broadband",
"location": "Dartford, London",
"minPerformance": 100,
"maxMonthly": 35,
"maxContractMonths": 24,
"minRating": 4,
"mode": "aggressive"
}{
"taskSpec": { ... },
"top": {
"providerName": "Community Fibre",
"planName": "Full Fibre 150",
"monthlyPrice": 22,
"totalCost12mo": 264,
"performance": { "downloadMbps": 150, "uploadMbps": 150 },
"reviewRating": 4.6,
"reviewCount": 6890,
"friction": { "contractMonths": 24 },
"score": {
"price": 94, "performance": 92, "reviews": 88,
"availability": 90, "frictionPenalty": 12,
"aggressive": 88,
"factors": ["Best-in-class price", "Strong review history"]
},
"explanation": "Community Fibre — Full Fibre 150 scored 88/100 in aggressive mode..."
},
"offers": [ ... ],
"pluginsUsed": [
{ "id": "live-uk-broadband-llm", "ok": true, "ms": 1820, "count": 8 },
{ "id": "uk-broadband-baseline", "ok": true, "ms": 30, "count": 8 }
]
}GET /api/public/plugins
→ {
"plugins": [ { "id": "live-uk-broadband-llm", "category": "broadband", "geography": "UK", ... } ],
"groq": { "total": 4, "active": 4, "cooling": 0 }
}{
"name": "get_best_offers",
"description": "Given user constraints and preferences, returns ranked offers optimized for best price under quality constraints.",
"input_schema": {
"type": "object",
"required": ["location", "category"],
"properties": {
"category": { "type": "string", "enum": ["broadband","energy","saas","compute"] },
"location": { "type": "string", "description": "Postcode or city" },
"minPerformance": { "type": "number", "description": "e.g. Mbps" },
"maxMonthly": { "type": "number" },
"maxContractMonths": { "type": "number" },
"minRating": { "type": "number", "minimum": 0, "maximum": 5 },
"mode": { "type": "string", "enum": ["aggressive","balanced","premium"], "default": "aggressive" }
}
}
}The intent parser and live-LLM pricing plugin route through a server-side Groq key pool. Add up to N keys as GROQ_API_KEY_1, GROQ_API_KEY_2, … and the engine round-robins between them, cools any key that returns 429/401, and transparently retries on the next available key. No client-side key exposure; rotation is invisible to callers.