37 tools: PDF, images, IBAN, SEPA XML, e-invoices, VAT, DNS, web to Markdown. 25 free calls a day
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
One call for one airport: airport record (IATA/ICAO, location, time zone), planes arriving and departing right now with airline and route, FAA delays and delay risk for US airports, METAR/TAF weather elsewhere. ~1-3 s. Free: 25 calls/day per IP. Paid: $0.01 per call via x402 at https://radarbg.com/x402/airport-report.
IATA or ICAO code, e.g. JFK or EGLL
Max live flights
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
Run in a terminal
claude mcp add --transport http radar-tools https://radarbg.com/mcp
One call for one airport: airport record (IATA/ICAO, location, time zone), planes arriving and departing right now with airline and route, FAA delays and delay risk for US airports, METAR/TAF weather elsewhere. ~1-3 s. Free: 25 calls/day per IP. Paid: $0.01 per call via x402 at https://radarbg.com/x402/airport-report.
| Argument | Type | Description |
|---|---|---|
| airport* | string | IATA or ICAO code, e.g. JFK or EGLL |
| maxFlights | integer | Max live flights |
{
"type": "object",
"examples": [
{
"airport": "JFK",
"maxFlights": 10
}
],
"required": [
"airport"
],
"properties": {
"airport": {
"type": "string",
"description": "IATA or ICAO code, e.g. JFK or EGLL"
},
"maxFlights": {
"type": "integer",
"default": 20,
"maximum": 100,
"minimum": 1,
"description": "Max live flights"
}
}
}Draw a print-ready barcode as PNG (base64) and SVG: EAN-13, EAN-8, UPC-A, ISBN-13 (check digit computed or verified), Code 128 and Code 39 for any text. Wrong length or check digit -> clear 400 error. Runs on our server, < 0.2 s. Free: 25 calls/day per IP. Paid: $0.001 per call via x402 at https://radarbg.com/x402/barcode-generator.
| Argument | Type | Description |
|---|---|---|
| type | string | ean13, ean8, upca, code128, code39 or isbn13 |
| value* | string | The number or text to encode, e.g. 590123412345 |
{
"type": "object",
"examples": [
{
"type": "ean13",
"value": "590123412345"
}
],
"required": [
"value"
],
"properties": {
"type": {
"enum": [
"ean13",
"ean8",
"upca",
"code128",
"code39",
"isbn13"
],
"type": "string",
"default": "ean13",
"description": "ean13, ean8, upca, code128, code39 or isbn13"
},
"value": {
"type": "string",
"description": "The number or text to encode, e.g. 590123412345"
}
}
}One-call KYB check of a company: EU VAT number validated in the official VIES register (company name and registered address), the address geocoded by the national geocoder, the website domain's age and registrar (RDAP), its email authentication score, and plain risk flags (invalid VAT, domain younger than 180 days, name not matching the domain, spoofable email). ~1-2 s. Free: 25 calls/day per IP. Paid: $0.01 per call via x402 at https://radarbg.com/x402/business-check.
| Argument | Type | Description |
|---|---|---|
| domain | string | Company website or e-mail domain, e.g. google.com |
| address | string | Optional address to geocode instead of the registered one |
| vatNumber | string | EU VAT number with country prefix, e.g. IE6388047V (also NO/CH/GB formats) |
{
"type": "object",
"examples": [
{
"domain": "google.com",
"vatNumber": "IE6388047V"
}
],
"properties": {
"domain": {
"type": "string",
"description": "Company website or e-mail domain, e.g. google.com"
},
"address": {
"type": "string",
"description": "Optional address to geocode instead of the registered one"
},
"vatNumber": {
"type": "string",
"description": "EU VAT number with country prefix, e.g. IE6388047V (also NO/CH/GB formats)"
}
}
}Working-day maths with each country's (and state's) public holidays: add or subtract N business days to a date (payment terms, delivery, legal deadlines), or count business days between two dates. Custom weekend (e.g. Fri-Sat). Returns the holidays that were skipped. < 50 ms. Free: 25 calls/day per IP. Paid: $0.001 per call via x402 at https://radarbg.com/x402/business-days.
| Argument | Type | Description |
|---|---|---|
| add | integer | Business days to add (negative = back) |
| end | string | Or an end date YYYY-MM-DD to count business days between |
| start | string | Start date YYYY-MM-DD (default today) |
| country* | string | ISO 3166 alpha-2 code, e.g. DE, BG, US |
| weekend | string | Weekend weekdays, 0=Mon..6=Sun, default 5,6 |
| subdivision | string | State/region code (optional) |
{
"type": "object",
"examples": [
{
"add": 5,
"start": "2026-12-22",
"country": "DE"
}
],
"required": [
"country"
],
"properties": {
"add": {
"type": "integer",
"description": "Business days to add (negative = back)"
},
"end": {
"type": "string",
"description": "Or an end date YYYY-MM-DD to count business days between"
},
"start": {
"type": "string",
"description": "Start date YYYY-MM-DD (default today)"
},
"country": {
"type": "string",
"description": "ISO 3166 alpha-2 code, e.g. DE, BG, US"
},
"weekend": {
"type": "string",
"description": "Weekend weekdays, 0=Mon..6=Sun, default 5,6"
},
"subdivision": {
"type": "string",
"description": "State/region code (optional)"
}
}
}Search ClinicalTrials.gov (official v2 API) by keyword, condition, intervention, sponsor or location. Returns NCT id, title, status, phases, enrollment, conditions, interventions, sponsor, dates and countries. Free: 25 calls/day per IP. Paid: $0.005 per call via x402 at https://radarbg.com/x402/clinical-trials.
| Argument | Type | Description |
|---|---|---|
| query | string | Free-text search |
| status | string | Overall status |
| sponsor | string | Sponsor, e.g. Pfizer |
| location | string | Location, e.g. Germany |
| maxItems | integer | Max results (1-50) |
| condition | string | Condition, e.g. diabetes |
| intervention | string | Drug or intervention, e.g. semaglutide |
{
"type": "object",
"examples": [
{
"status": "RECRUITING",
"maxItems": 10,
"condition": "obesity",
"intervention": "semaglutide"
}
],
"properties": {
"query": {
"type": "string",
"description": "Free-text search"
},
"status": {
"enum": [
"RECRUITING",
"NOT_YET_RECRUITING",
"ACTIVE_NOT_RECRUITING",
"COMPLETED",
"TERMINATED"
],
"type": "string",
"description": "Overall status"
},
"sponsor": {
"type": "string",
"description": "Sponsor, e.g. Pfizer"
},
"location": {
"type": "string",
"description": "Location, e.g. Germany"
},
"maxItems": {
"type": "integer",
"default": 20,
"maximum": 50,
"minimum": 1,
"description": "Max results (1-50)"
},
"condition": {
"type": "string",
"description": "Condition, e.g. diabetes"
},
"intervention": {
"type": "string",
"description": "Drug or intervention, e.g. semaglutide"
}
}
}Normalized financial statements of US-listed companies straight from SEC XBRL filings (10-K/10-Q): revenue, gross profit, operating and net income, EPS, assets, liabilities, equity, cash, operating cash flow, capex, free cash flow, net margin, long-term debt. Annual or quarterly, up to 20 years, by ticker or CIK. One clean row per period instead of thousands of raw XBRL facts. Free: 25 calls/day per IP. Paid: $0.005 per call via x402 at https://radarbg.com/x402/company-financials.
| Argument | Type | Description |
|---|---|---|
| cik | string | Or SEC CIK number |
| years | integer | How many years back |
| period | string | annual or quarterly |
| ticker | string | US ticker, e.g. AAPL (or company name) |
{
"type": "object",
"examples": [
{
"years": 5,
"period": "annual",
"ticker": "AAPL"
}
],
"properties": {
"cik": {
"type": "string",
"description": "Or SEC CIK number"
},
"years": {
"type": "integer",
"default": 5,
"maximum": 20,
"minimum": 1,
"description": "How many years back"
},
"period": {
"enum": [
"annual",
"quarterly"
],
"type": "string",
"default": "annual",
"description": "annual or quarterly"
},
"ticker": {
"type": "string",
"description": "US ticker, e.g. AAPL (or company name)"
}
}
}Convert CSV (any delimiter/encoding), Excel (xlsx/xls) or JSON (nested objects flattened to dot columns) into JSON, CSV or Excel. to=json also returns the rows inline as data. Runs on our server, files are deleted right after the call, nothing stored. Free: 25 calls/day per IP. Paid: $0.003 per call via x402 at https://radarbg.com/x402/data-convert.
| Argument | Type | Description |
|---|---|---|
| to | string | json, csv or xlsx |
| files | array | Or several files: [{fileName, fileContent (base64)}] |
| fileName | string | File name with extension, e.g. report.pdf |
| fileContent | string | The file as base64 (a data: URI is fine) |
{
"type": "object",
"examples": [
{
"to": "json",
"fileName": "people.csv",
"fileContent": "bmFtZSxjaXR5CkFubmEsQmVybGluCkl2YW4sVmFybmEK"
}
],
"properties": {
"to": {
"enum": [
"json",
"csv",
"xlsx"
],
"type": "string",
"default": "json",
"description": "json, csv or xlsx"
},
"files": {
"type": "array",
"items": {
"type": "object"
},
"description": "Or several files: [{fileName, fileContent (base64)}]"
},
"fileName": {
"type": "string",
"description": "File name with extension, e.g. report.pdf"
},
"fileContent": {
"type": "string",
"description": "The file as base64 (a data: URI is fine)"
}
}
}One call for a domain: RDAP registration (registrar, created, expires, status, nameservers, DNSSEC) from the official IANA RDAP servers, live DNS (A, AAAA, MX, NS, TXT, CAA, SPF, DMARC) and the TLS certificate (issuer, expiry, days left, SANs). Free: 25 calls/day per IP. Paid: $0.005 per call via x402 at https://radarbg.com/x402/domain-intel.
| Argument | Type | Description |
|---|---|---|
| tls | boolean | Also check the TLS certificate on port 443 |
| domain* | string | Domain name, e.g. example.com |
{
"type": "object",
"examples": [
{
"domain": "github.com"
}
],
"required": [
"domain"
],
"properties": {
"tls": {
"type": "boolean",
"default": true,
"description": "Also check the TLS certificate on port 443"
},
"domain": {
"type": "string",
"description": "Domain name, e.g. example.com"
}
}
}One call, one domain, every check: DMARC/SPF/DKIM/MX score with the exact DNS records to fix, security headers grade and SSL certificate days left, WHOIS/RDAP age, expiry and registrar, plus a merged top-issues list. ~1-2 s. Free: 25 calls/day per IP. Paid: $0.01 per call via x402 at https://radarbg.com/x402/domain-security-report.
| Argument | Type | Description |
|---|---|---|
| domain* | string | Domain, e.g. example.com |
{
"type": "object",
"examples": [
{
"domain": "github.com"
}
],
"required": [
"domain"
],
"properties": {
"domain": {
"type": "string",
"description": "Domain, e.g. example.com"
}
}
}Read an EU e-invoice (XRechnung UBL or CII, ZUGFeRD / Factur-X PDF with embedded XML, Peppol UBL) and get clean JSON: seller, buyer, VAT IDs, invoice number, dates, line items, net/VAT/gross totals, IBAN, payment terms, plus checks (totals add up, IBAN valid, mandatory fields present) and CSV of the lines. Germany requires receiving e-invoices since 2025. Runs on our server, nothing stored. Free: 25 calls/day per IP. Paid: $0.01 per call via x402 at https://radarbg.com/x402/e-invoice-reader.
| Argument | Type | Description |
|---|---|---|
| xml | string | The e-invoice XML as text |
| fileName | string | Optional file name, e.g. invoice.pdf |
| fileContent | string | Or base64 of the XML or the ZUGFeRD/Factur-X PDF |
{
"type": "object",
"examples": [
{}
],
"properties": {
"xml": {
"type": "string",
"description": "The e-invoice XML as text"
},
"fileName": {
"type": "string",
"description": "Optional file name, e.g. invoice.pdf"
},
"fileContent": {
"type": "string",
"description": "Or base64 of the XML or the ZUGFeRD/Factur-X PDF"
}
}
}Email deliverability and spoofing check for a domain in one call: MX + mail provider, SPF (all qualifier, DNS lookup count vs the limit of 10), DMARC policy/pct/reporting, DKIM keys on 20+ common selectors (or yours), MTA-STS, TLS-RPT and BIMI, with a 0-100 score, grade, plain-English issues and, for every lost point, the exact DNS record to publish (name + TXT value, MTA-STS policy file). Live DNS, ~1 s. Free: 25 calls/day per IP. Paid: $0.002 per call via x402 at https://radarbg.com/x402/email-auth.
| Argument | Type | Description |
|---|---|---|
| domain* | string | Domain or email address, e.g. example.com or [email protected] |
| dkimSelectors | string | Extra DKIM selectors to check, comma separated, e.g. s2048,mailchimp |
{
"type": "object",
"examples": [
{
"domain": "github.com"
}
],
"required": [
"domain"
],
"properties": {
"domain": {
"type": "string",
"description": "Domain or email address, e.g. example.com or [email protected]"
},
"dkimSelectors": {
"type": "string",
"description": "Extra DKIM selectors to check, comma separated, e.g. s2048,mailchimp"
}
}
}Check up to 500 e-mail addresses per call: syntax, duplicates, domain typos with the fixed address (gmial.com -> gmail.com), live DNS MX lookup (domain exists and accepts mail), disposable and role addresses. Status ok / risky / bad with the reason. Never sends mail to anyone. Free: 25 calls/day per IP. Paid: $0.003 per call via x402 at https://radarbg.com/x402/email-validator.
| Argument | Type | Description |
|---|---|---|
| string | One address, e.g. [email protected] | |
| emails | array | Or a list of up to 500 |
{
"type": "object",
"examples": [
{
"emails": [
"[email protected]",
"[email protected]",
"[email protected]"
]
}
],
"properties": {
"email": {
"type": "string",
"description": "One address, e.g. [email protected]"
},
"emails": {
"type": "array",
"items": {
"type": "string"
},
"description": "Or a list of up to 500"
}
}
}Search the official US Federal Register: final rules, proposed rules, notices and presidential documents with abstract, agencies, publication date and links. Filter by keyword, type, agency and date. Free: 25 calls/day per IP. Paid: $0.005 per call via x402 at https://radarbg.com/x402/federal-register.
| Argument | Type | Description |
|---|---|---|
| type | string | RULE, PRORULE, NOTICE or PRESDOCU |
| order | string | newest or relevance |
| query | string | Keywords, e.g. artificial intelligence |
| since | string | Published on or after (YYYY-MM-DD) |
| agency | string | Agency slug, e.g. environmental-protection-agency |
| maxItems | integer | Max results (1-50) |
{
"type": "object",
"examples": [
{
"type": "RULE",
"query": "artificial intelligence",
"maxItems": 10
}
],
"properties": {
"type": {
"enum": [
"RULE",
"PRORULE",
"NOTICE",
"PRESDOCU"
],
"type": "string",
"description": "RULE, PRORULE, NOTICE or PRESDOCU"
},
"order": {
"enum": [
"newest",
"relevance",
"oldest"
],
"type": "string",
"default": "newest",
"description": "newest or relevance"
},
"query": {
"type": "string",
"description": "Keywords, e.g. artificial intelligence"
},
"since": {
"type": "string",
"description": "Published on or after (YYYY-MM-DD)"
},
"agency": {
"type": "string",
"description": "Agency slug, e.g. environmental-protection-agency"
},
"maxItems": {
"type": "integer",
"default": 20,
"maximum": 50,
"minimum": 1,
"description": "Max results (1-50)"
}
}
}Validate up to 1,000 IBANs per call for every IBAN country (length, country format, mod-97 check digits), split into bank code, branch and account, SEPA flag, and for German IBANs the bank name, city and BIC from the official Deutsche Bundesbank bank code file. Spaces/dashes/lower case accepted. Runs on our server, nothing stored, < 0.1 s. Free: 25 calls/day per IP. Paid: $0.001 per call via x402 at https://radarbg.com/x402/iban-validator.
| Argument | Type | Description |
|---|---|---|
| iban | string | One IBAN, e.g. DE89 3704 0044 0532 0130 00 |
| ibans | array | Or a list of up to 1,000 IBANs |
{
"type": "object",
"examples": [
{
"iban": "DE89 3704 0044 0532 0130 00"
}
],
"properties": {
"iban": {
"type": "string",
"description": "One IBAN, e.g. DE89 3704 0044 0532 0130 00"
},
"ibans": {
"type": "array",
"items": {
"type": "string"
},
"description": "Or a list of up to 1,000 IBANs"
}
}
}Compress 1-30 images (JPG, PNG, WebP, HEIC...) at level strong / medium / light, optionally to another format and max side 2560 px. GPS/EXIF removed. Size before/after per image. Runs on our server, files are deleted right after the call, nothing stored. Free: 25 calls/day per IP. Paid: $0.003 per call via x402 at https://radarbg.com/x402/image-compress.
| Argument | Type | Description |
|---|---|---|
| files | array | Or several files: [{fileName, fileContent (base64)}] |
| level | string | strong, medium or light |
| format | string | same, jpg, png or webp |
| fileName | string | File name with extension, e.g. report.pdf |
| fileContent | string | The file as base64 (a data: URI is fine) |
| maxSide2560 | boolean | Also shrink to max 2560 px |
{
"type": "object",
"examples": [
{
"level": "medium",
"fileName": "sample.png",
"fileContent": "iVBORw0KGgoAAAANSUhEUgAAAHgAAABQCAIAAABd+SbeAAAA6klEQVR4nO3cQQ2DABAAwdKgg1cFVQIykIOEyqiIisFDKdsQZv6XXDb3vmFa3jeOd//3AlchdEToiNARoSNCR4SOCB0ROiJ0ROiI0BGhI0JHhI4IHRE6InRE6Mi4Z/jznH+0xmk8Xut3gy46InRE6IjQEaEjQkeEjggdEToidEToiNARoSNCR4SOCB0ROiJ0ROiI0BGhI0JHhI4IHRE6InRE6IjQEaEjQkeEjggdEToidEToiNARoSNCR4SOCB0ZPIFtuOiI0BGhI0JHhI4IHRE6InRE6IjQEaEjQkeEjggdEToidEToiNCRDexBBl0OjJSaAAAAAElFTkSuQmCC"
}
],
"properties": {
"files": {
"type": "array",
"items": {
"type": "object"
},
"description": "Or several files: [{fileName, fileContent (base64)}]"
},
"level": {
"enum": [
"strong",
"medium",
"light"
],
"type": "string",
"default": "medium",
"description": "strong, medium or light"
},
"format": {
"enum": [
"same",
"jpg",
"png",
"webp"
],
"type": "string",
"default": "same",
"description": "same, jpg, png or webp"
},
"fileName": {
"type": "string",
"description": "File name with extension, e.g. report.pdf"
},
"fileContent": {
"type": "string",
"description": "The file as base64 (a data: URI is fine)"
},
"maxSide2560": {
"type": "boolean",
"default": false,
"description": "Also shrink to max 2560 px"
}
}
}Convert 1-30 images between formats: HEIC/HEIF (iPhone), WebP, PNG, GIF, BMP, TIFF -> JPG, PNG or WebP. EXIF rotation applied, GPS removed. Runs on our server, files are deleted right after the call, nothing stored. Free: 25 calls/day per IP. Paid: $0.003 per call via x402 at https://radarbg.com/x402/image-convert.
| Argument | Type | Description |
|---|---|---|
| files | array | Or several files: [{fileName, fileContent (base64)}] |
| format | string | jpg, png or webp |
| fileName | string | File name with extension, e.g. report.pdf |
| fileContent | string | The file as base64 (a data: URI is fine) |
{
"type": "object",
"examples": [
{
"format": "webp",
"fileName": "sample.png",
"fileContent": "iVBORw0KGgoAAAANSUhEUgAAAHgAAABQCAIAAABd+SbeAAAA6klEQVR4nO3cQQ2DABAAwdKgg1cFVQIykIOEyqiIisFDKdsQZv6XXDb3vmFa3jeOd//3AlchdEToiNARoSNCR4SOCB0ROiJ0ROiI0BGhI0JHhI4IHRE6InRE6Mi4Z/jznH+0xmk8Xut3gy46InRE6IjQEaEjQkeEjggdEToidEToiNARoSNCR4SOCB0ROiJ0ROiI0BGhI0JHhI4IHRE6InRE6IjQEaEjQkeEjggdEToidEToiNARoSNCR4SOCB0ZPIFtuOiI0BGhI0JHhI4IHRE6InRE6IjQEaEjQkeEjggdEToidEToiNCRDexBBl0OjJSaAAAAAElFTkSuQmCC"
}
],
"properties": {
"files": {
"type": "array",
"items": {
"type": "object"
},
"description": "Or several files: [{fileName, fileContent (base64)}]"
},
"format": {
"enum": [
"jpg",
"png",
"webp"
],
"type": "string",
"default": "jpg",
"description": "jpg, png or webp"
},
"fileName": {
"type": "string",
"description": "File name with extension, e.g. report.pdf"
},
"fileContent": {
"type": "string",
"description": "The file as base64 (a data: URI is fine)"
}
}
}Resize 1-30 images by width, height (aspect kept) or percent, Lanczos quality; exact=true stretches to width x height. GPS/EXIF removed. Runs on our server, files are deleted right after the call, nothing stored. Free: 25 calls/day per IP. Paid: $0.003 per call via x402 at https://radarbg.com/x402/image-resize.
| Argument | Type | Description |
|---|---|---|
| exact | boolean | Use exactly width x height |
| files | array | Or several files: [{fileName, fileContent (base64)}] |
| width | integer | Width in px (max 10000) |
| height | integer | Height in px (max 10000) |
| percent | integer | Or scale in percent (1-400) |
| fileName | string | File name with extension, e.g. report.pdf |
| fileContent | string | The file as base64 (a data: URI is fine) |
{
"type": "object",
"examples": [
{
"width": 60,
"fileName": "sample.png",
"fileContent": "iVBORw0KGgoAAAANSUhEUgAAAHgAAABQCAIAAABd+SbeAAAA6klEQVR4nO3cQQ2DABAAwdKgg1cFVQIykIOEyqiIisFDKdsQZv6XXDb3vmFa3jeOd//3AlchdEToiNARoSNCR4SOCB0ROiJ0ROiI0BGhI0JHhI4IHRE6InRE6Mi4Z/jznH+0xmk8Xut3gy46InRE6IjQEaEjQkeEjggdEToidEToiNARoSNCR4SOCB0ROiJ0ROiI0BGhI0JHhI4IHRE6InRE6IjQEaEjQkeEjggdEToidEToiNARoSNCR4SOCB0ZPIFtuOiI0BGhI0JHhI4IHRE6InRE6IjQEaEjQkeEjggdEToidEToiNCRDexBBl0OjJSaAAAAAElFTkSuQmCC"
}
],
"properties": {
"exact": {
"type": "boolean",
"default": false,
"description": "Use exactly width x height"
},
"files": {
"type": "array",
"items": {
"type": "object"
},
"description": "Or several files: [{fileName, fileContent (base64)}]"
},
"width": {
"type": "integer",
"description": "Width in px (max 10000)"
},
"height": {
"type": "integer",
"description": "Height in px (max 10000)"
},
"percent": {
"type": "integer",
"description": "Or scale in percent (1-400)"
},
"fileName": {
"type": "string",
"description": "File name with extension, e.g. report.pdf"
},
"fileContent": {
"type": "string",
"description": "The file as base64 (a data: URI is fine)"
}
}
}Put 1-60 images (JPG, PNG, WebP, HEIC, GIF, TIFF) into one PDF, one image per page, original size or centered on A4. EXIF rotation applied. Runs on our server, files are deleted right after the call, nothing stored. Free: 25 calls/day per IP. Paid: $0.005 per call via x402 at https://radarbg.com/x402/images-to-pdf.
| Argument | Type | Description |
|---|---|---|
| size | string | fit (page = image size) or a4 |
| files | array | Or several files: [{fileName, fileContent (base64)}] |
| fileName | string | File name with extension, e.g. report.pdf |
| fileContent | string | The file as base64 (a data: URI is fine) |
{
"type": "object",
"examples": [
{
"size": "a4",
"fileName": "sample.png",
"fileContent": "iVBORw0KGgoAAAANSUhEUgAAAHgAAABQCAIAAABd+SbeAAAA6klEQVR4nO3cQQ2DABAAwdKgg1cFVQIykIOEyqiIisFDKdsQZv6XXDb3vmFa3jeOd//3AlchdEToiNARoSNCR4SOCB0ROiJ0ROiI0BGhI0JHhI4IHRE6InRE6Mi4Z/jznH+0xmk8Xut3gy46InRE6IjQEaEjQkeEjggdEToidEToiNARoSNCR4SOCB0ROiJ0ROiI0BGhI0JHhI4IHRE6InRE6IjQEaEjQkeEjggdEToidEToiNARoSNCR4SOCB0ZPIFtuOiI0BGhI0JHhI4IHRE6InRE6IjQEaEjQkeEjggdEToidEToiNCRDexBBl0OjJSaAAAAAElFTkSuQmCC"
}
],
"properties": {
"size": {
"enum": [
"fit",
"a4"
],
"type": "string",
"default": "fit",
"description": "fit (page = image size) or a4"
},
"files": {
"type": "array",
"items": {
"type": "object"
},
"description": "Or several files: [{fileName, fileContent (base64)}]"
},
"fileName": {
"type": "string",
"description": "File name with extension, e.g. report.pdf"
},
"fileContent": {
"type": "string",
"description": "The file as base64 (a data: URI is fine)"
}
}
}Send seller, buyer and line items as JSON, get a clean A4 PDF invoice (base64): number, dates, quantities, prices, VAT %, subtotal/VAT/total, bank details and, for EUR + IBAN, a SEPA QR code that banking apps scan to pay. Unicode (Cyrillic, Greek, accents). No watermark, nothing stored. Runs on our server, < 0.5 s. Free: 25 calls/day per IP. Paid: $0.005 per call via x402 at https://radarbg.com/x402/invoice-generator.
| Argument | Type | Description |
|---|---|---|
| bic | string | Your BIC |
| due | string | Due date YYYY-MM-DD |
| vat | string | VAT percent, e.g. 20 |
| date | string | YYYY-MM-DD (default today) |
| iban | string | Your IBAN (adds bank details + SEPA pay QR) |
| buyer | string | Customer name and address |
| items* | array | Lines: [{description, quantity, price}] |
| notes | string | Footer notes, e.g. payment terms |
| title | string |
Search 250M+ scholarly works (journals, preprints, conferences, books) from OpenAlex, with Crossref fallback: title, authors, year, venue, DOI, citation count, open-access PDF link and abstract. Filter by year, open access only, sort by relevance, citations or newest. ~1-2 s. Free: 25 calls/day per IP. Paid: $0.004 per call via x402 at https://radarbg.com/x402/literature-search.
| Argument | Type | Description |
|---|---|---|
| sort | string | relevance, citations or newest |
| query* | string | Topic or keywords, e.g. large language models radiology |
| source | string | openalex (default, falls back to crossref) or crossref |
| toYear | integer | Published in or before this year |
| fromYear | integer | Published in or after this year |
| maxItems | integer | Max results (1-50) |
| openAccessOnly | boolean | Only works with a free full text (OpenAlex) |
{
"type": "object",
"examples": [
{
"sort": "citations",
"query": "large language models radiology",
"fromYear": 2023,
"maxItems": 5
}
],
"required": [
"query"
],
"properties": {
"sort": {
"enum": [
"relevance",
"citations",
"newest"
],
"type": "string",
"default": "relevance",
"description": "relevance, citations or newest"
},
"query": {
"type": "string",
"description": "Topic or keywords, e.g. large language models radiology"
},
"source": {
"enum": [
"openalex",
"crossref"
],
"type": "string",
"default": "openalex",
"description": "openalex (default, falls back to crossref) or crossref"
},
"toYear": {
"type": "integer",
"maximum": 2100,
"minimum": 1800,
"description": "Published in or before this year"
},
"fromYear": {
"type": "integer",
"maximum": 2100,
"minimum": 1800,
"description": "Published in or after this year"
},
"maxItems": {
"type": "integer",
"default": 10,
"maximum": 50,
"minimum": 1,
"description": "Max results (1-50)"
},
"openAccessOnly": {
"type": "boolean",
"default": false,
"description": "Only works with a free full text (OpenAlex)"
}
}
}Known vulnerabilities for an open-source package version from OSV.dev (GitHub advisories, PyPI, npm, Go, Maven, crates.io...): id, CVE aliases, summary, severity, fixed versions, references. Plus what plain OSV lacks: CISA KEV 'exploited in the wild' flag + date, FIRST EPSS exploit probability, exploited/most-likely first, and one verified upgrade version that fixes every listed vuln. ~1 s. Free: 25 calls/day per IP. Paid: $0.002 per call via x402 at https://radarbg.com/x402/osv-vulns.
| Argument | Type | Description |
|---|---|---|
| purl | string | Or a package URL, e.g. pkg:npm/[email protected] |
| package | string | Package name, e.g. lodash |
| version | string | Version, e.g. 4.17.15 (empty = all known) |
| maxItems | integer | Max results |
| ecosystem | string | npm, PyPI, Go, Maven, crates.io, RubyGems, NuGet |
{
"type": "object",
"examples": [
{
"package": "lodash",
"version": "4.17.15",
"ecosystem": "npm"
}
],
"properties": {
"purl": {
"type": "string",
"description": "Or a package URL, e.g. pkg:npm/[email protected]"
},
"package": {
"type": "string",
"description": "Package name, e.g. lodash"
},
"version": {
"type": "string",
"description": "Version, e.g. 4.17.15 (empty = all known)"
},
"maxItems": {
"type": "integer",
"default": 50,
"maximum": 100,
"minimum": 1,
"description": "Max results"
},
"ecosystem": {
"type": "string",
"description": "npm, PyPI, Go, Maven, crates.io, RubyGems, NuGet"
}
}
}Shrink a PDF: pictures re-saved as JPEG and downscaled (level strong / medium / light), streams compressed. Returns the smaller PDF as base64 with size before/after. Runs on our server, files are deleted right after the call, nothing stored. Free: 25 calls/day per IP. Paid: $0.005 per call via x402 at https://radarbg.com/x402/pdf-compress.
| Argument | Type | Description |
|---|---|---|
| files | array | Or several files: [{fileName, fileContent (base64)}] |
| level | string | strong, medium or light |
| fileName | string | File name with extension, e.g. report.pdf |
| password | string | PDF password if it is protected |
| fileContent | string | The file as base64 (a data: URI is fine) |
{
"type": "object",
"examples": [
{
"level": "medium",
"fileName": "sample.pdf",
"fileContent": "JVBERi0xLjMKJeLjz9MKMSAwIG9iago8PAovUHJvZHVjZXIgKHB5cGRmKQo+PgplbmRvYmoKMiAwIG9iago8PAovVHlwZSAvUGFnZXMKL0NvdW50IDEKL0tpZHMgWyA0IDAgUiBdCj4+CmVuZG9iagozIDAgb2JqCjw8Ci9UeXBlIC9DYXRhbG9nCi9QYWdlcyAyIDAgUgo+PgplbmRvYmoKNCAwIG9iago8PAovVHlwZSAvUGFnZQovUmVzb3VyY2VzIDw8Cj4+Ci9NZWRpYUJveCBbIDAuMCAwLjAgNTk1IDg0MiBdCi9QYXJlbnQgMiAwIFIKPj4KZW5kb2JqCnhyZWYKMCA1CjAwMDAwMDAwMDAgNjU1MzUgZiAKMDAwMDAwMDAxNSAwMDAwMCBuIAowMDAwMDAwMDU0IDAwMDAwIG4gCjAwMDAwMDAxMTMgMDAwMDAgbiAKMDAwMDAwMDE2MiAwMDAwMCBuIAp0cmFpbGVyCjw8Ci9TaXplIDUKL1Jvb3QgMyAwIFIKL0luZm8gMSAwIFIKPj4Kc3RhcnR4cmVmCjI1NgolJUVPRgo="
}
],
"properties": {
"files": {
"type": "array",
"items": {
"type": "object"
},
"description": "Or several files: [{fileName, fileContent (base64)}]"
},
"level": {
"enum": [
"strong",
"medium",
"light"
],
"type": "string",
"default": "medium",
"description": "strong, medium or light"
},
"fileName": {
"type": "string",
"description": "File name with extension, e.g. report.pdf"
},
"password": {
"type": "string",
"description": "PDF password if it is protected"
},
"fileContent": {
"type": "string",
"description": "The file as base64 (a data: URI is fine)"
}
}
}Merge 2-60 PDF files into one PDF in the order you send them. Send base64 files, get the merged PDF as base64 with page count and size. Runs on our server, files are deleted right after the call, nothing stored. Free: 25 calls/day per IP. Paid: $0.005 per call via x402 at https://radarbg.com/x402/pdf-merge.
| Argument | Type | Description |
|---|---|---|
| files | array | Or several files: [{fileName, fileContent (base64)}] |
| fileName | string | File name with extension, e.g. report.pdf |
| fileContent | string | The file as base64 (a data: URI is fine) |
{
"type": "object",
"examples": [
{
"files": [
{
"fileName": "sample.pdf",
"fileContent": "JVBERi0xLjMKJeLjz9MKMSAwIG9iago8PAovUHJvZHVjZXIgKHB5cGRmKQo+PgplbmRvYmoKMiAwIG9iago8PAovVHlwZSAvUGFnZXMKL0NvdW50IDEKL0tpZHMgWyA0IDAgUiBdCj4+CmVuZG9iagozIDAgb2JqCjw8Ci9UeXBlIC9DYXRhbG9nCi9QYWdlcyAyIDAgUgo+PgplbmRvYmoKNCAwIG9iago8PAovVHlwZSAvUGFnZQovUmVzb3VyY2VzIDw8Cj4+Ci9NZWRpYUJveCBbIDAuMCAwLjAgNTk1IDg0MiBdCi9QYXJlbnQgMiAwIFIKPj4KZW5kb2JqCnhyZWYKMCA1CjAwMDAwMDAwMDAgNjU1MzUgZiAKMDAwMDAwMDAxNSAwMDAwMCBuIAowMDAwMDAwMDU0IDAwMDAwIG4gCjAwMDAwMDAxMTMgMDAwMDAgbiAKMDAwMDAwMDE2MiAwMDAwMCBuIAp0cmFpbGVyCjw8Ci9TaXplIDUKL1Jvb3QgMyAwIFIKL0luZm8gMSAwIFIKPj4Kc3RhcnR4cmVmCjI1NgolJUVPRgo="
},
{
"fileName": "sample.pdf",
"fileContent": "JVBERi0xLjMKJeLjz9MKMSAwIG9iago8PAovUHJvZHVjZXIgKHB5cGRmKQo+PgplbmRvYmoKMiAwIG9iago8PAovVHlwZSAvUGFnZXMKL0NvdW50IDEKL0tpZHMgWyA0IDAgUiBdCj4+CmVuZG9iagozIDAgb2JqCjw8Ci9UeXBlIC9DYXRhbG9nCi9QYWdlcyAyIDAgUgo+PgplbmRvYmoKNCAwIG9iago8PAovVHlwZSAvUGFnZQovUmVzb3VyY2VzIDw8Cj4+Ci9NZWRpYUJveCBbIDAuMCAwLjAgNTk1IDg0MiBdCi9QYXJlbnQgMiAwIFIKPj4KZW5kb2JqCnhyZWYKMCA1CjAwMDAwMDAwMDAgNjU1MzUgZiAKMDAwMDAwMDAxNSAwMDAwMCBuIAowMDAwMDAwMDU0IDAwMDAwIG4gCjAwMDAwMDAxMTMgMDAwMDAgbiAKMDAwMDAwMDE2MiAwMDAwMCBuIAp0cmFpbGVyCjw8Ci9TaXplIDUKL1Jvb3QgMyAwIFIKL0luZm8gMSAwIFIKPj4Kc3RhcnR4cmVmCjI1NgolJUVPRgo="
}
]
}
],
"properties": {
"files": {
"type": "array",
"items": {
"type": "object"
},
"description": "Or several files: [{fileName, fileContent (base64)}]"
},
"fileName": {
"type": "string",
"description": "File name with extension, e.g. report.pdf"
},
"fileContent": {
"type": "string",
"description": "The file as base64 (a data: URI is fine)"
}
}
}Add an AES-256 password to a PDF (mode=lock) or remove it when you know the password (mode=unlock). Runs on our server, files are deleted right after the call, nothing stored. Free: 25 calls/day per IP. Paid: $0.005 per call via x402 at https://radarbg.com/x402/pdf-protect.
| Argument | Type | Description |
|---|---|---|
| mode | string | lock or unlock |
| files | array | Or several files: [{fileName, fileContent (base64)}] |
| fileName | string | File name with extension, e.g. report.pdf |
| password | string | The password |
| fileContent | string | The file as base64 (a data: URI is fine) |
{
"type": "object",
"examples": [
{
"mode": "lock",
"fileName": "sample.pdf",
"password": "secret123",
"fileContent": "JVBERi0xLjMKJeLjz9MKMSAwIG9iago8PAovUHJvZHVjZXIgKHB5cGRmKQo+PgplbmRvYmoKMiAwIG9iago8PAovVHlwZSAvUGFnZXMKL0NvdW50IDEKL0tpZHMgWyA0IDAgUiBdCj4+CmVuZG9iagozIDAgb2JqCjw8Ci9UeXBlIC9DYXRhbG9nCi9QYWdlcyAyIDAgUgo+PgplbmRvYmoKNCAwIG9iago8PAovVHlwZSAvUGFnZQovUmVzb3VyY2VzIDw8Cj4+Ci9NZWRpYUJveCBbIDAuMCAwLjAgNTk1IDg0MiBdCi9QYXJlbnQgMiAwIFIKPj4KZW5kb2JqCnhyZWYKMCA1CjAwMDAwMDAwMDAgNjU1MzUgZiAKMDAwMDAwMDAxNSAwMDAwMCBuIAowMDAwMDAwMDU0IDAwMDAwIG4gCjAwMDAwMDAxMTMgMDAwMDAgbiAKMDAwMDAwMDE2MiAwMDAwMCBuIAp0cmFpbGVyCjw8Ci9TaXplIDUKL1Jvb3QgMyAwIFIKL0luZm8gMSAwIFIKPj4Kc3RhcnR4cmVmCjI1NgolJUVPRgo="
}
],
"properties": {
"mode": {
"enum": [
"lock",
"unlock"
],
"type": "string",
"default": "lock",
"description": "lock or unlock"
},
"files": {
"type": "array",
"items": {
"type": "object"
},
"description": "Or several files: [{fileName, fileContent (base64)}]"
},
"fileName": {
"type": "string",
"description": "File name with extension, e.g. report.pdf"
},
"password": {
"type": "string",
"description": "The password"
},
"fileContent": {
"type": "string",
"description": "The file as base64 (a data: URI is fine)"
}
}
}Split a PDF: keep pages (mode=pick, pages='1-3, 5'), remove pages (mode=remove) or one PDF per page (mode=each). Password-protected PDFs open with password. Runs on our server, files are deleted right after the call, nothing stored. Free: 25 calls/day per IP. Paid: $0.005 per call via x402 at https://radarbg.com/x402/pdf-split.
| Argument | Type | Description |
|---|---|---|
| mode | string | pick, remove or each |
| files | array | Or several files: [{fileName, fileContent (base64)}] |
| pages | string | Pages, e.g. 1-3, 5, 8- |
| fileName | string | File name with extension, e.g. report.pdf |
| password | string | PDF password if it is protected |
| fileContent | string | The file as base64 (a data: URI is fine) |
{
"type": "object",
"examples": [
{
"mode": "each",
"fileName": "sample.pdf",
"fileContent": "JVBERi0xLjMKJeLjz9MKMSAwIG9iago8PAovUHJvZHVjZXIgKHB5cGRmKQo+PgplbmRvYmoKMiAwIG9iago8PAovVHlwZSAvUGFnZXMKL0NvdW50IDEKL0tpZHMgWyA0IDAgUiBdCj4+CmVuZG9iagozIDAgb2JqCjw8Ci9UeXBlIC9DYXRhbG9nCi9QYWdlcyAyIDAgUgo+PgplbmRvYmoKNCAwIG9iago8PAovVHlwZSAvUGFnZQovUmVzb3VyY2VzIDw8Cj4+Ci9NZWRpYUJveCBbIDAuMCAwLjAgNTk1IDg0MiBdCi9QYXJlbnQgMiAwIFIKPj4KZW5kb2JqCnhyZWYKMCA1CjAwMDAwMDAwMDAgNjU1MzUgZiAKMDAwMDAwMDAxNSAwMDAwMCBuIAowMDAwMDAwMDU0IDAwMDAwIG4gCjAwMDAwMDAxMTMgMDAwMDAgbiAKMDAwMDAwMDE2MiAwMDAwMCBuIAp0cmFpbGVyCjw8Ci9TaXplIDUKL1Jvb3QgMyAwIFIKL0luZm8gMSAwIFIKPj4Kc3RhcnR4cmVmCjI1NgolJUVPRgo="
}
],
"properties": {
"mode": {
"enum": [
"pick",
"remove",
"each"
],
"type": "string",
"default": "each",
"description": "pick, remove or each"
},
"files": {
"type": "array",
"items": {
"type": "object"
},
"description": "Or several files: [{fileName, fileContent (base64)}]"
},
"pages": {
"type": "string",
"description": "Pages, e.g. 1-3, 5, 8-"
},
"fileName": {
"type": "string",
"description": "File name with extension, e.g. report.pdf"
},
"password": {
"type": "string",
"description": "PDF password if it is protected"
},
"fileContent": {
"type": "string",
"description": "The file as base64 (a data: URI is fine)"
}
}
}Render the first 20 pages of a PDF as JPG or PNG images (100/150/220 dpi). One base64 image per page. Runs on our server, files are deleted right after the call, nothing stored. Free: 25 calls/day per IP. Paid: $0.005 per call via x402 at https://radarbg.com/x402/pdf-to-image.
| Argument | Type | Description |
|---|---|---|
| files | array | Or several files: [{fileName, fileContent (base64)}] |
| format | string | jpg or png |
| quality | string | low (100 dpi), medium (150) or high (220) |
| fileName | string | File name with extension, e.g. report.pdf |
| fileContent | string | The file as base64 (a data: URI is fine) |
{
"type": "object",
"examples": [
{
"format": "jpg",
"fileName": "sample.pdf",
"fileContent": "JVBERi0xLjMKJeLjz9MKMSAwIG9iago8PAovUHJvZHVjZXIgKHB5cGRmKQo+PgplbmRvYmoKMiAwIG9iago8PAovVHlwZSAvUGFnZXMKL0NvdW50IDEKL0tpZHMgWyA0IDAgUiBdCj4+CmVuZG9iagozIDAgb2JqCjw8Ci9UeXBlIC9DYXRhbG9nCi9QYWdlcyAyIDAgUgo+PgplbmRvYmoKNCAwIG9iago8PAovVHlwZSAvUGFnZQovUmVzb3VyY2VzIDw8Cj4+Ci9NZWRpYUJveCBbIDAuMCAwLjAgNTk1IDg0MiBdCi9QYXJlbnQgMiAwIFIKPj4KZW5kb2JqCnhyZWYKMCA1CjAwMDAwMDAwMDAgNjU1MzUgZiAKMDAwMDAwMDAxNSAwMDAwMCBuIAowMDAwMDAwMDU0IDAwMDAwIG4gCjAwMDAwMDAxMTMgMDAwMDAgbiAKMDAwMDAwMDE2MiAwMDAwMCBuIAp0cmFpbGVyCjw8Ci9TaXplIDUKL1Jvb3QgMyAwIFIKL0luZm8gMSAwIFIKPj4Kc3RhcnR4cmVmCjI1NgolJUVPRgo="
}
],
"properties": {
"files": {
"type": "array",
"items": {
"type": "object"
},
"description": "Or several files: [{fileName, fileContent (base64)}]"
},
"format": {
"enum": [
"jpg",
"png"
],
"type": "string",
"default": "jpg",
"description": "jpg or png"
},
"quality": {
"enum": [
"low",
"medium",
"high"
],
"type": "string",
"default": "medium",
"description": "low (100 dpi), medium (150) or high (220)"
},
"fileName": {
"type": "string",
"description": "File name with extension, e.g. report.pdf"
},
"fileContent": {
"type": "string",
"description": "The file as base64 (a data: URI is fine)"
}
}
}Search 130,000+ official recalls from 5 government sources in one call: US FDA (food, drugs, medical devices), CPSC (consumer products), NHTSA (vehicles), Health Canada (incl. CFIA food, Transport Canada) and UK Food Standards Agency (allergy alerts). One normalized row: product, brand, reason, hazard, class, date, remedy, official link. Filter by words, brand, vehicle make/model/year, country, category, class, date. Index refreshed every 6 h, answers < 1 s. Free: 25 calls/day per IP. Paid: $0.002 per call via x402 at https://radarbg.com/x402/product-recalls.
| Argument | Type | Description |
|---|---|---|
| make | string | Vehicle make, e.g. Honda |
| mode | string | search or sources (freshness of each source) |
| year | string | Vehicle model year (needs make), e.g. 2020 |
| brand | string | Brand or recalling company, e.g. Tesco, Olymel |
| limit | integer | Max recalls, newest first (default 25, max 100) |
| model | string | Vehicle model (needs make), e.g. Accord |
| query | string | Words that must appear: product, ingredient, hazard, lot or model, e.g. peanut, listeria |
| since |
Official public holidays for a country (and state/province/region) for any year 1950-2100: date, name, weekday. Local-language names where available (language=de, fr, bg...). Maintained open-source holiday rules, no outside call, < 50 ms. Free: 25 calls/day per IP. Paid: $0.001 per call via x402 at https://radarbg.com/x402/public-holidays.
| Argument | Type | Description |
|---|---|---|
| year | integer | Year, default this year |
| country* | string | ISO 3166 alpha-2 code, e.g. DE, BG, US, GB |
| language | string | Name language, e.g. en, de, fr (if the country has it) |
| subdivision | string | State/region code, e.g. BY (Bavaria), CA (California) |
{
"type": "object",
"examples": [
{
"year": 2026,
"country": "DE",
"subdivision": "BY"
}
],
"required": [
"country"
],
"properties": {
"year": {
"type": "integer",
"description": "Year, default this year"
},
"country": {
"type": "string",
"description": "ISO 3166 alpha-2 code, e.g. DE, BG, US, GB"
},
"language": {
"type": "string",
"description": "Name language, e.g. en, de, fr (if the country has it)"
},
"subdivision": {
"type": "string",
"description": "State/region code, e.g. BY (Bavaria), CA (California)"
}
}
}Make a QR code that never expires and has no tracking: link or text, Wi-Fi login (WPA/WEP), or an EPC SEPA payment QR (GiroCode) that banking apps scan to pre-fill a transfer. Returns PNG (base64) and SVG, custom color. Runs on our server, < 0.2 s. Free: 25 calls/day per IP. Paid: $0.001 per call via x402 at https://radarbg.com/x402/qr-code-generator.
| Argument | Type | Description |
|---|---|---|
| bic | string | Receiver BIC (optional) |
| iban | string | Receiver IBAN (kind=sepa) |
| kind | string | link, wifi or sepa |
| ssid | string | Wi-Fi name (kind=wifi) |
| text | string | Link or text (kind=link), max 1,500 characters |
| color | string | Hex color, e.g. #000000 |
| payee | string | Receiver name (kind=sepa) |
| amount | string | EUR amount, e.g. 25.50 (kind=sepa) |
| password | string | Wi-Fi password (kind=wifi) |
Follow a URL hop by hop: every redirect with status (301/302/307/308), Location, response time and server, the final URL and status, all response headers, security headers present (HSTS, CSP, X-Frame-Options...) and plain-English issues (too many hops, 302 instead of 301, no http->https). Live, ~1 s. Free: 25 calls/day per IP. Paid: $0.002 per call via x402 at https://radarbg.com/x402/redirect-checker.
| Argument | Type | Description |
|---|---|---|
| url | string | URL or domain, e.g. http://github.com |
{
"type": "object",
"examples": [
{
"url": "http://github.com"
}
],
"properties": {
"url": {
"type": "string",
"description": "URL or domain, e.g. http://github.com"
}
}
}External security scan of a website: detects JavaScript libraries and frameworks with their versions and lists their known vulnerabilities (OSV.dev + CISA KEV exploited flag + fix version), security headers + SSL grade and DMARC/SPF spoofing grade. Passive, no intrusive probing. ~2-6 s. Free: 25 calls/day per IP. Paid: $0.01 per call via x402 at https://radarbg.com/x402/security-scan.
| Argument | Type | Description |
|---|---|---|
| domain* | string | Website domain, e.g. example.com |
{
"type": "object",
"examples": [
{
"domain": "jquery.com"
}
],
"required": [
"domain"
],
"properties": {
"domain": {
"type": "string",
"description": "Website domain, e.g. example.com"
}
}
}Turn a payment list (JSON rows or CSV) into a bank-ready SEPA XML file: credit transfer pain.001 or direct debit pain.008 (versions 2009 to 2019), validated against the official XSD, IBAN and creditor-ID checks, next TARGET2 business day, rejected rows listed with the reason. Also mode=check (validate an existing SEPA file) and mode=upgrade (old pain version -> current). Runs on our server, nothing stored. Free: 25 calls/day per IP. Paid: $0.01 per call via x402 at https://radarbg.com/x402/sepa-xml.
| Argument | Type | Description |
|---|---|---|
| bic | string | Your BIC (optional) |
| csv | string | Or the payment list as CSV text with a header line |
| xml | string | SEPA XML text for mode check / upgrade |
| iban | string | Your IBAN |
| mode | string | generate, check, upgrade or template |
| name | string | Your company name (payer for transfers, creditor for debits) |
| rows | array | Payments: name, iban, amount, reference (+ bic, mandate_id, mandate_date for debits) |
| type | string | credit_transfer or direct_debit |
Find a site's sitemaps (robots.txt Sitemap: lines, /sitemap.xml, sitemap indexes, .gz, .txt) and return every page URL with lastmod, changefreq and priority, up to 50,000. Filter by a word in the URL. For SEO audits, crawling plans and content monitoring. Live fetch, ~1-5 s. Free: 25 calls/day per IP. Paid: $0.005 per call via x402 at https://radarbg.com/x402/sitemap-extractor.
| Argument | Type | Description |
|---|---|---|
| url | string | Domain or sitemap URL, e.g. example.com or https://example.com/sitemap.xml |
| contains | string | Only URLs containing this text, e.g. /blog/ |
| maxItems | integer | Max URLs |
{
"type": "object",
"examples": [
{
"url": "radarbg.com",
"maxItems": 50
}
],
"properties": {
"url": {
"type": "string",
"description": "Domain or sitemap URL, e.g. example.com or https://example.com/sitemap.xml"
},
"contains": {
"type": "string",
"description": "Only URLs containing this text, e.g. /blog/"
},
"maxItems": {
"type": "integer",
"default": 1000,
"maximum": 50000,
"minimum": 1,
"description": "Max URLs"
}
}
}One call for one URL: the main content as clean Markdown for LLMs (word count, language, author) plus title, description, Open Graph image, site name and favicon. Respects robots.txt. ~1-3 s. Free: 25 calls/day per IP. Paid: $0.004 per call via x402 at https://radarbg.com/x402/web-page-report.
| Argument | Type | Description |
|---|---|---|
| url* | string | Page URL, e.g. https://en.wikipedia.org/wiki/Web_scraping |
| maxChars | integer | Cut the Markdown after this many characters |
{
"type": "object",
"examples": [
{
"url": "https://en.wikipedia.org/wiki/Web_scraping"
}
],
"required": [
"url"
],
"properties": {
"url": {
"type": "string",
"description": "Page URL, e.g. https://en.wikipedia.org/wiki/Web_scraping"
},
"maxChars": {
"type": "integer",
"default": 50000,
"maximum": 200000,
"minimum": 500,
"description": "Cut the Markdown after this many characters"
}
}
}Fetch any public web page and return its main content as clean Markdown (or plain text) with title, author, date and language. Boilerplate (menus, cookie banners, footers) removed. Respects robots.txt. ~1-3 s. Free: 25 calls/day per IP. Paid: $0.002 per call via x402 at https://radarbg.com/x402/web-read.
| Argument | Type | Description |
|---|---|---|
| url* | string | Page URL (https://...) |
| format | string | markdown or text |
| maxChars | integer | Cut the content after this many characters |
{
"type": "object",
"examples": [
{
"url": "https://en.wikipedia.org/wiki/HTTP_402",
"format": "markdown"
}
],
"required": [
"url"
],
"properties": {
"url": {
"type": "string",
"description": "Page URL (https://...)"
},
"format": {
"enum": [
"markdown",
"text"
],
"type": "string",
"default": "markdown",
"description": "markdown or text"
},
"maxChars": {
"type": "integer",
"default": 50000,
"maximum": 200000,
"minimum": 500,
"description": "Cut the content after this many characters"
}
}
}One call for one website: technologies (CMS, frameworks, analytics, hosting) with versions, title/description/Open Graph image, security headers + SSL grade, and domain age from RDAP. ~2-5 s. Free: 25 calls/day per IP. Paid: $0.01 per call via x402 at https://radarbg.com/x402/website-report.
| Argument | Type | Description |
|---|---|---|
| domain* | string | Website domain or URL, e.g. stripe.com |
{
"type": "object",
"examples": [
{
"domain": "stripe.com"
}
],
"required": [
"domain"
],
"properties": {
"domain": {
"type": "string",
"description": "Website domain or URL, e.g. stripe.com"
}
}
}Get the lead summary of a Wikipedia article in any language edition: title, short description, plain-text extract, thumbnail and original image, coordinates, Wikidata id, last edit time and page link. Fuzzy title search. Attribution (CC BY-SA 4.0) included. ~0.5 s. Free: 25 calls/day per IP. Paid: $0.001 per call via x402 at https://radarbg.com/x402/wikipedia-summary.
| Argument | Type | Description |
|---|---|---|
| title | string | Article title or search words, e.g. Varna |
| language | string | Wikipedia language code, default en |
{
"type": "object",
"examples": [
{
"title": "Eiffel Tower",
"language": "en"
}
],
"properties": {
"title": {
"type": "string",
"description": "Article title or search words, e.g. Varna"
},
"language": {
"type": "string",
"description": "Wikipedia language code, default en"
}
}
}We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 15, 2026.
Takes a password, API key or token as an argument, so the secret passes through the model's context and chat logs.
Fix: Read credentials from the server's own configuration (environment, OAuth) instead of a tool argument.
| Heading, default INVOICE |
| number | string | Invoice number |
| seller | string | Your name and address (new lines allowed) |
| currency | string | 3-letter currency, default EUR |
{
"type": "object",
"examples": [
{
"vat": "19",
"iban": "DE89370400440532013000",
"buyer": "Client GmbH\nHafen 2, Hamburg",
"items": [
{
"price": 400,
"quantity": 1,
"description": "Web design"
},
{
"price": 5,
"quantity": 12,
"description": "Hosting (months)"
}
],
"number": "2026-001",
"seller": "Example Ltd\nMain St 1, Berlin"
}
],
"required": [
"items"
],
"properties": {
"bic": {
"type": "string",
"description": "Your BIC"
},
"due": {
"type": "string",
"description": "Due date YYYY-MM-DD"
},
"vat": {
"type": "string",
"description": "VAT percent, e.g. 20"
},
"date": {
"type": "string",
"description": "YYYY-MM-DD (default today)"
},
"iban": {
"type": "string",
"description": "Your IBAN (adds bank details + SEPA pay QR)"
},
"buyer": {
"type": "string",
"description": "Customer name and address"
},
"items": {
"type": "array",
"items": {
"type": "object"
},
"description": "Lines: [{description, quantity, price}]"
},
"notes": {
"type": "string",
"description": "Footer notes, e.g. payment terms"
},
"title": {
"type": "string",
"description": "Heading, default INVOICE"
},
"number": {
"type": "string",
"description": "Invoice number"
},
"seller": {
"type": "string",
"description": "Your name and address (new lines allowed)"
},
"currency": {
"type": "string",
"description": "3-letter currency, default EUR"
}
}
}| string |
| Only recalls on or after YYYY-MM-DD |
| until | string | Only recalls on or before YYYY-MM-DD |
| source | string | fda, cpsc, nhtsa, health_canada or uk_fsa (comma list) |
| country | string | US, CA or UK (comma list; empty = all) |
| category | string | food, drug, medical_device, consumer_product, vehicle or cosmetic (comma list) |
| sinceDays | integer | Only recalls from the last N days |
| classification | string | I, II, III (most serious = I) or a UK alert type like allergy alert |
{
"type": "object",
"examples": [
{
"limit": 10,
"query": "salmonella",
"sinceDays": 90
}
],
"properties": {
"make": {
"type": "string",
"description": "Vehicle make, e.g. Honda"
},
"mode": {
"enum": [
"search",
"sources"
],
"type": "string",
"default": "search",
"description": "search or sources (freshness of each source)"
},
"year": {
"type": "string",
"description": "Vehicle model year (needs make), e.g. 2020"
},
"brand": {
"type": "string",
"description": "Brand or recalling company, e.g. Tesco, Olymel"
},
"limit": {
"type": "integer",
"description": "Max recalls, newest first (default 25, max 100)"
},
"model": {
"type": "string",
"description": "Vehicle model (needs make), e.g. Accord"
},
"query": {
"type": "string",
"description": "Words that must appear: product, ingredient, hazard, lot or model, e.g. peanut, listeria"
},
"since": {
"type": "string",
"description": "Only recalls on or after YYYY-MM-DD"
},
"until": {
"type": "string",
"description": "Only recalls on or before YYYY-MM-DD"
},
"source": {
"type": "string",
"description": "fda, cpsc, nhtsa, health_canada or uk_fsa (comma list)"
},
"country": {
"type": "string",
"description": "US, CA or UK (comma list; empty = all)"
},
"category": {
"type": "string",
"description": "food, drug, medical_device, consumer_product, vehicle or cosmetic (comma list)"
},
"sinceDays": {
"type": "integer",
"description": "Only recalls from the last N days"
},
"classification": {
"type": "string",
"description": "I, II, III (most serious = I) or a UK alert type like allergy alert"
}
}
}| security | string | WPA, WEP or nopass |
| reference | string | Payment reference (kind=sepa) |
{
"type": "object",
"examples": [
{
"kind": "link",
"text": "https://radarbg.com"
}
],
"properties": {
"bic": {
"type": "string",
"description": "Receiver BIC (optional)"
},
"iban": {
"type": "string",
"description": "Receiver IBAN (kind=sepa)"
},
"kind": {
"enum": [
"link",
"wifi",
"sepa"
],
"type": "string",
"default": "link",
"description": "link, wifi or sepa"
},
"ssid": {
"type": "string",
"description": "Wi-Fi name (kind=wifi)"
},
"text": {
"type": "string",
"description": "Link or text (kind=link), max 1,500 characters"
},
"color": {
"type": "string",
"description": "Hex color, e.g. #000000"
},
"payee": {
"type": "string",
"description": "Receiver name (kind=sepa)"
},
"amount": {
"type": "string",
"description": "EUR amount, e.g. 25.50 (kind=sepa)"
},
"password": {
"type": "string",
"description": "Wi-Fi password (kind=wifi)"
},
"security": {
"enum": [
"WPA",
"WEP",
"nopass"
],
"type": "string",
"default": "WPA",
"description": "WPA, WEP or nopass"
},
"reference": {
"type": "string",
"description": "Payment reference (kind=sepa)"
}
}
}| creditor_id | string | SEPA creditor identifier (direct debit only) |
| execution_date | string | YYYY-MM-DD (default: next business day) |
{
"type": "object",
"examples": [
{
"iban": "DE89370400440532013000",
"name": "Example GmbH",
"rows": [
{
"iban": "DE02120300000000202051",
"name": "Max Muster",
"amount": "125.50",
"reference": "Invoice 2026-001"
}
],
"type": "credit_transfer"
}
],
"properties": {
"bic": {
"type": "string",
"description": "Your BIC (optional)"
},
"csv": {
"type": "string",
"description": "Or the payment list as CSV text with a header line"
},
"xml": {
"type": "string",
"description": "SEPA XML text for mode check / upgrade"
},
"iban": {
"type": "string",
"description": "Your IBAN"
},
"mode": {
"enum": [
"generate",
"check",
"upgrade",
"template"
],
"type": "string",
"default": "generate",
"description": "generate, check, upgrade or template"
},
"name": {
"type": "string",
"description": "Your company name (payer for transfers, creditor for debits)"
},
"rows": {
"type": "array",
"items": {
"type": "object"
},
"description": "Payments: name, iban, amount, reference (+ bic, mandate_id, mandate_date for debits)"
},
"type": {
"enum": [
"credit_transfer",
"direct_debit"
],
"type": "string",
"default": "credit_transfer",
"description": "credit_transfer or direct_debit"
},
"creditor_id": {
"type": "string",
"description": "SEPA creditor identifier (direct debit only)"
},
"execution_date": {
"type": "string",
"description": "YYYY-MM-DD (default: next business day)"
}
}
}