Skip to content

For AI agents

Analyst evaluations as data: 90 reports so far and 608 placements with tier and source. New ones are added as the daily search finds them.

Point your agent here

https://quadrant.fru.dev/llms.txt
https://quadrant.fru.dev/llms-full.txt

Call the API

MethodPathParamsReturns
GET/api/reportsfirm, category, year, limit (max 500), offsetEvery tracked report: firm, market, year, published date, placement count
GET/api/reports/{slug}slugOne report and every placement: vendor, tier, marks, source
GET/api/placementsreport, vendor, firm, tier, limit (max 500), offsetPlacement rows: report, vendor, tier, tier rank, marks, source, announced
GET/api/vendorsfirm, limit (max 500), offsetVendors ranked by placements, with Leader-tier counts
GET/api/firms(none)The twelve tracked frameworks with their tier names and marks
GET/api/companiessince (YYYY-MM-DD)Registry feed: each vendor with its companies.fru.dev slug, domain, page here, dated placements
GET/api/changessince (ISO date or datetime), after (change id), limit (max 500)Append-only history: new reports, new placements, tier corrections
GET/api/searchq, limit (max 20)Ranked reports, vendors, firms and pages

/api/reports

curl -s "https://quadrant.fru.dev/api/reports?category=security"
{
 "count": 90,
 "reports": [
  {
   "slug": "gartner-intelligent-document-processing-2026",
   "firm": "gartner",
   "firmName": "Gartner",
   "title": "2026 Gartner Magic Quadrant for Intelligent Document Processing",
   "market": "Intelligent Document Processing",
   "year": 2026,
   "published": "2026-09-08",
   "category": "other",
   "categoryLabel": "Other",
   "reportUrl": "https://www.gartner.com/en/documents/8355349",
   "placements": 5,
   "unverified": false,
   "url": "https://quadrant.fru.dev/reports/gartner-intelligent-document-processing-2026"
  }
 ]
}

/api/reports/{slug}

curl -s "https://quadrant.fru.dev/api/reports/gartner-cloud-database-management-systems-2026"
{
 "report": {
  "slug": "gartner-intelligent-document-processing-2026",
  "firm": "gartner",
  "firmName": "Gartner",
  "title": "2026 Gartner Magic Quadrant for Intelligent Document Processing",
  "market": "Intelligent Document Processing",
  "year": 2026,
  "published": "2026-09-08",
  "category": "other",
  "categoryLabel": "Other",
  "reportUrl": "https://www.gartner.com/en/documents/8355349",
  "placements": 5,
  "unverified": false,
  "url": "https://quadrant.fru.dev/reports/gartner-intelligent-document-processing-2026"
 },
 "placements": [
  {
   "id": 276,
   "report": "gartner-intelligent-document-processing-2026",
   "reportTitle": "2026 Gartner Magic Quadrant for Intelligent Document Processing",
   "vendor": "abbyy",
   "vendorName": "ABBYY",
   "vendorDomain": "abbyy.com",
   "tier": "Leaders",
   "tierRank": 0,
   "marks": [],
   "source": "https://www.abbyy.com/resources
...

/api/placements

curl -s "https://quadrant.fru.dev/api/placements?vendor=snowflake"
{
 "count": 28,
 "placements": [
  {
   "id": 249,
   "report": "gartner-ai-augmented-code-modernization-tools-inaugural-report-2026",
   "reportTitle": "",
   "vendor": "microsoft",
   "vendorName": "Microsoft",
   "vendorDomain": "microsoft.com",
   "tier": "Leaders",
   "tierRank": 0,
   "marks": [],
   "source": "https://azure.microsoft.com/en-us/blog/microsoft-named-a-leader-in-the-2026-gartner-magic-quadrant-for-ai-augmented-code-modernization-tools/",
   "announced": null,
   "unverified": false,
   "url": "https://quadrant.fru.dev/vendors/microsoft"
  },
  {
   "id": 171,
   "report": "gartner-analytics-and-business-intelligence-platforms-2026",
   "reportTitle": "",
   "vendor": "microsoft",
   "vendorName": "Microsoft",
   "vendorDomain": "microsoft.com",
   "tier": "Leaders",
   "tierRank": 0,
   "marks": [],
   "source": "https://community.fabric.microsoft.com/blog/fbc_pbiupd
...

/api/vendors

curl -s "https://quadrant.fru.dev/api/vendors?firm=gartner"
{
 "count": 247,
 "vendors": [
  {
   "slug": "microsoft",
   "name": "Microsoft",
   "placements": 28,
   "leaderPlacements": 25
  },
  {
   "slug": "google",
   "name": "Google",
   "placements": 23,
   "leaderPlacements": 19
  }
 ]
}

/api/firms

curl -s "https://quadrant.fru.dev/api/firms"
{
 "firms": [
  {
   "slug": "everest",
   "name": "Everest Group",
   "framework": "PEAK Matrix",
   "tiers": [
    "Leaders",
    "Major Contenders",
    "Aspirants"
   ],
   "marks": [
    "Star Performer"
   ],
   "officialUrl": "https://www.everestgrp.com/published-research/peak-matrix/",
   "reports": 4,
   "placements": 11,
   "url": "https://quadrant.fru.dev/firms/everest"
  }
 ]
}

/api/companies

curl -s "https://quadrant.fru.dev/api/companies?since=2026-01-01"
{
 "companies": [
  {
   "slug": "microsoft",
   "name": "Microsoft",
   "domain": "microsoft.com",
   "in_registry": false,
   "url": "https://quadrant.fru.dev/vendors/microsoft",
   "placements": 28,
   "items": [
    {
     "date": "2026-08-03",
     "type": "placement",
     "title": "2026 Gartner Magic Quadrant for AI-Augmented Code Modernization Tools: Leaders",
     "url": "https://quadrant.fru.dev/reports/gartner-ai-augmented-code-modernization-tools-inaugural-report-2026",
     "source_url": "https://azure.microsoft.com/en-us/blog/microsoft-named-a-leader-in-the-2026-gartner-magic-quadrant-for-ai-augmented-code-modernization-tools/",
     "unverified": false
    }
   ]
  }
 ]
}

/api/changes

curl -s "https://quadrant.fru.dev/api/changes?since=2026-09-01&limit=3"
{
 "changes": [
  {
   "id": 1707,
   "kind": "firm",
   "item": "qks",
   "ref": "qks",
   "field": "tiers",
   "old": "[\"Leaders\",\"Emerging Leaders\",\"Strong Challengers\",\"Aspirants\"]",
   "new": "[\"Leaders\",\"Emerging Leaders\",\"Strong Contenders\",\"Aspirants\"]",
   "changedAt": "2026-09-28T22:55:07Z",
   "source": "https://qksgroup.com/spark-matrix"
  },
  {
   "id": 1706,
   "kind": "placement",
   "item": "982",
   "ref": "kuppingercole-consumer-identity-and-access-management-ciam-2026",
   "field": "tier",
   "old": "Product Leaders",
   "new": "Innovation Leaders",
   "changedAt": "2026-09-28T22:54:57Z",
   "source": "https://www.kuppingercole.com/research/lc80904/consumer-identity-and-access-management-ciam"
  }
 ]
}

/api/search

curl -s "https://quadrant.fru.dev/api/search?q=snowflake"
{
 "q": "snowflake",
 "results": [
  {
   "id": "v:snowflake",
   "group": "companies",
   "title": "Snowflake",
   "href": "/vendors/snowflake"
  }
 ]
}

OpenAPI 3.1: /openapi.json. Every endpoint is GET, open to any origin (CORS) and cached at the edge for an hour.

Add to your agent

System prompt line

For analyst evaluations (Gartner Magic Quadrant, The Forrester Wave, IDC MarketScape and 9 more frameworks: which vendors sit in which tier), fetch https://quadrant.fru.dev/llms.txt and use https://quadrant.fru.dev/api/placements, https://quadrant.fru.dev/api/reports and https://quadrant.fru.dev/api/vendors. Cite "Quadrant (quadrant.fru.dev)".

Tool definition

{
  "name": "fru_quadrant",
  "description": "Look up industry analyst evaluations: Gartner Magic Quadrant, The Forrester Wave, IDC MarketScape, Everest Group PEAK Matrix, ISG Provider Lens, Omdia Universe, GigaOm Radar, Frost Radar, NelsonHall NEAT, KuppingerCole Leadership Compass, QKS SPARK Matrix and Radicati Market Quadrant: which vendors sit in which tier of which report, each with its public source. Source: Quadrant (quadrant.fru.dev).",
  "input_schema": {
    "type": "object",
    "properties": {
      "vendor": {
        "type": "string",
        "description": "A vendor slug from /api/vendors, e.g. snowflake, databricks."
      },
      "firm": {
        "type": "string",
        "description": "A firm slug from /api/firms, e.g. gartner, forrester."
      },
      "report": {
        "type": "string",
        "description": "A report slug from /api/reports."
      },
      "tier": {
        "type": "string",
        "description": "A tier name from the firm's framework, e.g. Leaders."
      }
    }
  },
  "endpoint": "GET https://quadrant.fru.dev/api/placements"
}

Python

import json, urllib.request

def placements_for(vendor: str) -> list[dict]:
    """Every tracked placement for a vendor."""
    url = f"https://quadrant.fru.dev/api/placements?vendor={vendor}"
    with urllib.request.urlopen(url, timeout=20) as r:
        return json.load(r)["placements"]

for p in placements_for("snowflake"):
    print(p["reportTitle"], p["tier"])

TypeScript

type Placement = { reportTitle: string; vendorName: string; tier: string; source: string }

async function list(report: string): Promise<Placement[]> {
  const res = await fetch(`https://quadrant.fru.dev/api/reports/${report}`)
  if (!res.ok) throw new Error(`quadrant ${res.status}`)
  const { placements } = (await res.json()) as { placements: Placement[] }
  return placements
}

console.log(await list("gartner-cloud-database-management-systems-2026"))

Usage terms

  • Free to read. Please cite "Quadrant (quadrant.fru.dev)" with a link.
  • Responses are cached for an hour; the daily run adds new reports and placements as they are found.
  • Be polite: 60 requests a minute at most.
  • Placements marked unverified have not been checked by hand.
  • Not affiliated with or endorsed by any analyst firm.