Skip to content
Back to search
56
A2A A2A 1.0 v1.1.0

Ragfeed

ragfeed.de · Ragfeed

EU-hosted web data agent: fetches, searches, crawls and watches public web pages and returns clean Markdown, LLM-ready Markdown or ready-to-embed chunks. Data is stored in Germany and AI processing stays in the EU. It respects robots.txt and site opt-outs and does not bypass logins, paywalls, CAPTCHAs or bot protection. Every task uses credits from your Ragfeed account.

Sign in to save Compare Sign in to watch Own this agent? Verify ownership →
Trust score
56/100
grade D · 9 criteria
Uptime
accumulating
1/5 direct probes · 30d
~233 ms response
Observed inflow · 30d
—
no payment wallet declared
Invocations · 7d
0
no calls observed
Card drift · 7d
stable
1 snapshot tracked
Owner
unverified
claim this listing →

Dispute or improve this rating

D
Conformance score: 56/100
D-grade: significant issues, auth-gated, partially broken, or stale.
Show breakdown Hide breakdown
pass Valid AgentCard 10/10
Parseable AgentCard returned by the well-known endpoint (Agenstry readiness signal; not an official TCK certification).
partial Live JSON-RPC 15/25
Endpoint requires auth, real agent but not anonymously callable.
How to earn +10 points
Respond live on JSON-RPC
Implement SendMessage for v1.0 (or message/send for v0.x), negotiate A2A-Version, and return a schema-valid JSON-RPC response. Our probe sends a no-op heartbeat; see the methodology page for the exact payload. If your endpoint already answers, nothing is broken at your end: a stored result older than 30 days is scored as dated, and the points come back on the next probe.
Docs
pass Protocol version 10/10
Declares A2A 1.0 with supportedInterfaces[] (current v1 card shape).
info JWS signature 0/10
Card is unsigned (most published agents are).
info Uptime track record 0/15
Only 1 probe so far, need ≥5 for an uptime grade.
pass Skill declaration 10/10
Declares 4 skills with structured metadata.
partial Verified Identity 5/10
Provider declared: Ragfeed (https://ragfeed.de/en). Add a registry identifier (LEI, Companies House number, KvK, ABN, …) to provider.legalEntity for full verified-business credit.
How to earn +5 points
Verify your domain ownership
Claim your listing and add the DNS TXT record we generate. Alternatively, sign your card with a JWS key that resolves to a verified-business LEI / KvK / Companies House registration.
Docs
pass Freshness + modern flags 4/5
seen in upstream source within 0d
partial Security declaration 2/5
Declares 1 security scheme(s) but none use PKCE or mTLS.
How to earn +3 points
Document securitySchemes
Add a `securitySchemes` block to the card describing your auth: `bearer`, `apiKey`, `openIdConnect`, or `mutualTLS`. Routers refuse to call agents that declare no auth model.
Docs

Activity

last 24h · 0 invocations No personal data recorded

No activity in the last 7 days.

Card history

1 snapshot
Snapshots
Agent card snapshots
Captured Hash Snapshot
2026-11-08 14:06:11 current 300f7982ed22… view →
Uptime
accumulating
1 direct probes · 30d
Response
97ms
last direct probe
Skills
4
declared
Streaming
✓
SSE-capable

Skills · 4 declared

Fetch clean web data

Fetches one public URL. Send a text part with the URL, or a data part with url and optional formats (markdown, llmMarkdown (default), chunks, links; on paid pla…

webscrapingmarkdownragchunks
Search the web

Finds pages for a query and returns title, URL and description, no page content: fetch what you need with fetch_clean_webdata. Data part with skill: search_web,…

websearchnews
Crawl a website

Fetches several pages of one site, following robots.txt. Data part with skill: crawl_site, url, and optional limit (1-100, default 10), maxDepth, includePaths, …

No taxonomy category yet
webcrawlragchunks
Watch pages for changes (Beta)

Beta. Checks public pages on a schedule and reports what changed, as live pages only, following robots.txt. Paid plans from Fluss; the account must have accepte…

No taxonomy category yet
webmonitoringcompliancechanges

Health · last 1 probes

Probe log
When HTTP Live JSON-RPC Latency
2026-11-08 14:06:11 200 ✗ 97ms

Cheaper or better alternatives

↑ 2 higher quality

Similar agents

Ragfeed
EU-hosted web data agent: fetches, searches, crawls and watches public web pages and returns clean Markdown, LLM-ready Markdown or ready-to-
Ragfeed · q 80%
agent-web live
Charter-clean web toolkit for agents: give it one publicly reachable URL, get back clean, LLM-ready markdown (free), or a screenshot/PDF via
FOOM — foomworks · q 100%
AgentWork Web Evidence live
Ten pay-per-call tools for agents: web read, fetch URL and URL to Markdown (batch, optional JavaScript rendering), batch web contents (up to
AgentWork · q 100%
orbit Web Tools live
Web utilities for agents, computed live at call time: URL health/redirect/x402 check, web page to Markdown (robots.txt honoured), DNS lookup
orbit-builder · q 100%
Tools for Agents
HTTP tool platform for AI agents: web extract, search, documents, GPU embeddings/OCR, RAG pipelines, tool chains, and Agent Advisor. 13 A2A
Tools for Agents · q 81%
Agent Fetch Hub
Pay-per-call web extraction: URL in, clean Markdown out.
Die Netzhandwerker · q 78%
Embed a badge

Updates itself and links back here.

Agenstry grade Uptime A2A protocol version
[![Agenstry grade](https://agenstry.com/badge/ragfeed.de.svg)](https://agenstry.com/agents/ragfeed.de)
[![Verified Business](https://agenstry.com/badge/ragfeed.de/identity.svg)](https://agenstry.com/agents/ragfeed.de)
[![Uptime](https://agenstry.com/badge/ragfeed.de/uptime.svg)](https://agenstry.com/agents/ragfeed.de)
[![A2A version](https://agenstry.com/badge/ragfeed.de/protocol.svg)](https://agenstry.com/agents/ragfeed.de)

Audit evidence

JSON for vendor reviews. Signed copy verifies against our JWKS.

audit.json audit.json (JWS-signed) verification history
Raw agent card JSON
{
  "name": "Ragfeed",
  "description": "EU-hosted web data agent: fetches, searches, crawls and watches public web pages and returns clean Markdown, LLM-ready Markdown or ready-to-embed chunks. Data is stored in Germany and AI processing stays in the EU. It respects robots.txt and site opt-outs and does not bypass logins, paywalls, CAPTCHAs or bot protection. Every task uses credits from your Ragfeed account.",
  "version": "1.1.0",
  "provider": {
    "organization": "Ragfeed",
    "url": "https://ragfeed.de/en"
  },
  "documentationUrl": "https://ragfeed.de/en/developers",
  "iconUrl": "https://ragfeed.de/static/logo.svg",
  "supportedInterfaces": [
    {
      "url": "https://api.ragfeed.de/a2a/v1",
      "protocolBinding": "JSONRPC",
      "protocolVersion": "1.0"
    }
  ],
  "capabilities": {
    "streaming": true,
    "pushNotifications": true,
    "extendedAgentCard": false,
    "extensions": [
      {
        "uri": "https://ragfeed.de/a2a/extensions/eu-web-data/v1",
        "description": "Where this agent processes data and which site rules it follows. Self-declared, not an audit.",
        "required": false,
        "params": {
          "attestation": "self-declared",
          "asOf": "2026-11-06",
          "storage": {
            "country": "DE"
          },
          "processing": {
            "fetchAndBrowser": "DE",
            "aiFormats": "FR"
          },
          "dataLeavingTheEu": [
            {
              "role": "CDN and attack protection in front of the API",
              "region": "US, data centres worldwide",
              "safeguard": "EU-US Data Privacy Framework",
              "terminatesTls": true,
              "appliesTo": "all requests"
            },
            {
              "role": "public search engines",
              "region": "mostly US",
              "data": "search query only",
              "appliesTo": [
                "search_web"
              ]
            }
          ],
          "siteRules": {
            "robotsTxt": {
              "disallow": "enforced",
              "crawlDelay": "enforced"
            },
            "siteOptOuts": "enforced",
            "archiveCopies": false,
            "bypasses": {
              "logins": false,
              "paywalls": false,
              "captchas": false,
              "botProtection": false
            }
          },
          "retention": {
            "taskResultsHours": 24,
            "serverLogsDays": 7,
            "monitorResultsDaysDefault": 30,
            "monitorResultsDaysMax": 90,
            "zeroDataRetention": [
              "fetch_clean_webdata"
            ]
          },
          "dataProcessingAgreement": {
            "available": "on request",
            "plans": "all"
          },
          "encryptionAtRest": {
            "scope": "webhook and push secrets only"
          },
          "documents": {
            "dataProcessing": "https://ragfeed.de/datenverarbeitung",
            "privacy": "https://ragfeed.de/datenschutz",
            "specification": "https://ragfeed.de/a2a/extensions/eu-web-data/v1"
          },
          "aiProvider": {
            "retainsRequests": false,
            "trainsOnRequests": false,
            "basis": "provider statement"
          }
        }
      }
    ]
  },
  "securitySchemes": {
    "apiKey": {
      "httpAuthSecurityScheme": {
        "scheme": "Bearer",
        "bearerFormat": "Ragfeed API key",
        "description": "Your Ragfeed API key. Create one at https://ragfeed.de/en"
      }
    }
  },
  "securityRequirements": [
    {
      "schemes": {
        "apiKey": {
          "list": []
        }
      }
    }
  ],
  "defaultInputModes": [
    "application/json",
    "text/plain"
  ],
  "defaultOutputModes": [
    "text/markdown",
    "application/json"
  ],
  "skills": [
    {
      "id": "fetch_clean_webdata",
      "name": "Fetch clean web data",
      "description": "Fetches one public URL. Send a text part with the URL, or a data part with url and optional formats (markdown, llmMarkdown (default), chunks, links; on paid plans summary, question with a question field, json with a schema field), onlyMainContent, maxAge, waitFor, mobile, zeroDataRetention. 1 credit per page, from 5 more for each AI format. A site's robots.txt can refuse the task; refused and failed tasks cost nothing.",
      "tags": [
        "web",
        "scraping",
        "markdown",
        "rag",
        "chunks",
        "eu",
        "gdpr"
      ],
      "examples": [
        "https://example.com/pricing",
        "{\"url\": \"https://example.com/docs\", \"formats\": [\"chunks\"]}"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "text/markdown",
        "text/plain",
        "application/json"
      ]
    },
    {
      "id": "search_web",
      "name": "Search the web",
      "description": "Finds pages for a query and returns title, URL and description, no page content: fetch what you need with fetch_clean_webdata. Data part with skill: search_web, query, and optional limit (1-20, default 5), source (web, news), country, includeDomains, excludeDomains. 2 credits per 10 results. Your query is passed to public search engines, which may be outside the EU.",
      "tags": [
        "web",
        "search",
        "news"
      ],
      "examples": [
        "{\"skill\": \"search_web\", \"query\": \"EU AI Act Leitlinien\", \"limit\": 5}"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "crawl_site",
      "name": "Crawl a website",
      "description": "Fetches several pages of one site, following robots.txt. Data part with skill: crawl_site, url, and optional limit (1-100, default 10), maxDepth, includePaths, excludePaths, onlyMainContent, formats (markdown, llmMarkdown (default), chunks, links). Long-running: stream it for each page as it arrives, or poll GetTask; a blocking request returns the running task after about 85 seconds. 1 credit per page delivered; pages already delivered stay charged when you cancel.",
      "tags": [
        "web",
        "crawl",
        "rag",
        "chunks"
      ],
      "examples": [
        "{\"skill\": \"crawl_site\", \"url\": \"https://example.com/docs\", \"limit\": 20, \"formats\": [\"chunks\"]}"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "monitor_page",
      "name": "Watch pages for changes (Beta)",
      "description": "Beta. Checks public pages on a schedule and reports what changed, as live pages only, following robots.txt. Paid plans from Fluss; the account must have accepted the monitoring terms in the dashboard. Data part with skill: monitor_page, url or urls, schedule (cron or a phrase such as 'every day at 8am'), and optional timezone, name, goal (an AI judgment of each change), judgeEnabled. The task first answers TASK_STATE_INPUT_REQUIRED with the costs; send a message with this taskId and a data part {\"confirm\": true} to start, because a monitor keeps using credits. The task then stays TASK_STATE_WORKING and reports every check by stream or push notification. CancelTask pauses the monitor.",
      "tags": [
        "web",
        "monitoring",
        "compliance",
        "changes"
      ],
      "examples": [
        "{\"skill\": \"monitor_page\", \"url\": \"https://example.com/terms\", \"schedule\": \"every day at 8am\"}"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    }
  ]
}