Card snapshot
netintel-production-440c.up.railway.app
·
2026-07-12 03:04:21 UTC
·
995f87828b218db90bf26ea4f32b87284a00826219f314015c3c0bf4659628eb
This is a frozen copy of the agent's agent-card.json as we observed it at the timestamp above. We capture a new snapshot every time the card's content hash changes. Useful for: forensic drift analysis, verifying downstream callers see the right version, reproducing routing decisions made historically.
{
"protocolVersion": "0.3.0",
"name": "NetIntel",
"description": "Network & web intelligence API for AI agents \u2014 DNS, SSL/TLS, WHOIS & domain, IP & network, email security, web fingerprinting, OSINT, and LLM text utilities. Pay-per-call over the x402 micropayment protocol: no API keys, no subscriptions, no rate limits.",
"url": "https://netintel.dev",
"preferredTransport": "HTTP+JSON",
"version": "1.0.0",
"documentationUrl": "https://netintel.dev/llms.txt",
"provider": {
"organization": "NetIntel",
"url": "https://netintel.dev",
"contact": "support@netintel.dev"
},
"capabilities": {
"streaming": false,
"pushNotifications": false,
"stateTransitionHistory": false
},
"defaultInputModes": [
"application/json"
],
"defaultOutputModes": [
"application/json"
],
"skills": [
{
"id": "dns",
"name": "DNS",
"description": "GET /dns/lookup \u2014 DNS lookup / nslookup / dig API \u2014 resolve the common DNS record types (A, AAAA, MX, TXT, NS, CNAME, SOA, PTR) for a domain. Parses SPF/DMARC from TXT plus DKIM at the default._domainkey selector, and cross-checks A records across Google/Cloudflare/Quad9 resolvers for propagation consistency. GET /dns-propagation/check \u2014 Query a domain's DNS record across 10 geographically distributed public resolvers simultaneously \u2014 returns what each resolver sees, whether results are consistent, propagation percentage, and a readiness score so agents can confirm DNS changes have fully propagated globally. GET /dnssec/validate \u2014 Validate a domain's DNSSEC configuration by checking for DS records at the parent zone, DNSKEY records at the domain, RRSIG signatures, and NSEC/NSEC3 records \u2014 returns a full chain-of-trust assessment and readiness score so agents can verify DNS integrity before trusting resolution results.",
"tags": [
"dns",
"x402",
"pay-per-call"
],
"examples": [
"GET https://netintel.dev/dns/lookup",
"GET https://netintel.dev/dns-propagation/check",
"GET https://netintel.dev/dnssec/validate"
]
},
{
"id": "ssl_tls",
"name": "SSL / TLS",
"description": "GET /ssl/analyze \u2014 Performs a TLS handshake to inspect the certificate chain, probes supported TLS versions (1.0\u20131.3), detects weak keys and expiry issues, and returns an overall security grade (A/B/C/F). GET /cert-transparency/lookup \u2014 Query the crt.sh certificate transparency log database to enumerate all SSL certificates ever issued for a domain \u2014 returns subdomains discovered, certificate issuers, validity periods, and a risk score flagging wildcard certs, expiring certs, and suspicious issuance patterns.",
"tags": [
"ssl_tls",
"x402",
"pay-per-call"
],
"examples": [
"GET https://netintel.dev/ssl/analyze",
"GET https://netintel.dev/cert-transparency/lookup"
]
},
{
"id": "domain",
"name": "Domain & WHOIS",
"description": "GET /whois-rdap/lookup \u2014 WHOIS domain lookup via RDAP \u2014 registrar, creation/expiry/updated dates, nameservers, and status flags from the authoritative registry, plus an actionability score so agents can assess domain trustworthiness, ownership, or availability risk. GET /domain-availability/check \u2014 Check if a domain name is available for registration by querying RDAP and DNS \u2014 pass a bare name (e.g. mybrand) to sweep it across 10 popular TLDs simultaneously, or a full domain (e.g. mybrand.com) to check that single domain \u2014 returns registration status, expiry date if registered, and available/taken TLD lists so agents can find the best domain for a brand or project. POST /bulk-domain/check \u2014 Check availability of many domain names across multiple TLDs in a single call \u2014 submit up to 50 name/TLD combinations and get back per-domain registration status, registrar, and expiry concurrently, so agents can scan an entire naming shortlist or brand portfolio in one request instead of dozens. Caveat: when both RDAP and DNS are unreachable, status reads 'available' \u2014 re-check surprising availables on premium names. GET /domain-age/check \u2014 Determine a domain's age from registration data and archival history \u2014 tries RDAP, then port-43 WHOIS, then a Wayback-based estimate (age_source: rdap | whois | wayback_estimate | null), returning creation date, age in years, first Wayback capture, archived snapshot count, and a maturity signal so agents can assess trustworthiness and detect freshly registered domains used for fraud or phishing \u2014 including .io and TLDs without public RDAP. GET /domain-report/analyze \u2014 One call returns a complete intelligence profile for a domain \u2014 WHOIS registration, DNS records, SSL certificate, detected tech stack, and blacklist status \u2014 aggregated into a single risk-scored report so agents can fully vet a domain without orchestrating five separate lookups. GET /domain-report/full \u2014 One premium call returns a complete six-part domain profile \u2014 DNS records, SSL certificate, WHOIS registration, cloud fingerprint, technology stack, and security headers \u2014 each section run concurrently with graceful partial-failure handling, so agents get an entire domain workup in a single request instead of orchestrating six. POST /domain/vendor-risk \u2014 Composite 0-100 trust/risk score for a domain in one call \u2014 blends domain age, SSL/TLS, DNS health, email auth (SPF/DKIM/DMARC), IP reputation, and certificate transparency into a single \"safe to do business with this domain?\" verdict with per-signal breakdown and actionable flags. Partial results never read as safe. GET /domain-appraise/estimate \u2014 Estimate the market value tier of a domain name using transparent heuristics \u2014 length, TLD premium, dictionary-word presence, pronounceability, keyword value, and numeric/hyphen penalties \u2014 returns a value tier and 0-100 quality score so agents can triage domain portfolios and prioritize acquisitions without a paid appraisal service. GET /domain-due-diligence \u2014 One call combines domain availability, heuristic value appraisal, and TLD pricing into a single acquisition brief \u2014 tells an agent whether a name is available, what it's worth, and what it costs across TLDs, concurrently and with graceful partial-failure handling. GET /name-gen/suggest \u2014 Generate brandable startup/product names from a keyword using prefixes, suffixes, blends, and phonetic patterns, then check .com (or any TLD) availability for each via DNS \u2014 returns available names ranked by a brandability heuristic so agents can find a claimable brand without manual brainstorming plus one-by-one availability checks. GET /tld-price/compare \u2014 Reference registration/renewal/transfer pricing from a curated table of ~21 common TLDs \u2014 Mode A: price one TLD (typical register/renew/transfer cost + renewal-markup %); Mode B: price a name across all covered TLDs, sorted cheapest-first with cheapest/cheapest_premium picks. Reference prices, not live per-registrar quotes \u2014 for budgeting and spotting predatory renewal markups; TLDs outside the table return pricing:null. GET /typosquat/scan \u2014 Generate common typo and look-alike variations of a domain and check which are already registered \u2014 catches character swaps, omissions, additions, homoglyphs, and alternate TLDs so agents can detect typosquatting and brand-impersonation domains targeting a company.",
"tags": [
"domain",
"x402",
"pay-per-call"
],
"examples": [
"GET https://netintel.dev/whois-rdap/lookup",
"GET https://netintel.dev/domain-availability/check",
"POST https://netintel.dev/bulk-domain/check",
"GET https://netintel.dev/domain-age/check",
"GET https://netintel.dev/domain-report/analyze",
"GET https://netintel.dev/domain-report/full",
"POST https://netintel.dev/domain/vendor-risk",
"GET https://netintel.dev/domain-appraise/estimate",
"GET https://netintel.dev/domain-due-diligence",
"GET https://netintel.dev/name-gen/suggest",
"GET https://netintel.dev/tld-price/compare",
"GET https://netintel.dev/typosquat/scan"
]
},
{
"id": "network",
"name": "Network & IP",
"description": "GET /subnet/calc \u2014 Calculates IPv4/IPv6 subnet details from CIDR notation \u2014 network/broadcast, netmask, wildcard (Cisco ACL) mask, binary/hex masks, usable host range, RFC classification (private/loopback/multicast), supernet, and subnet-split counts. Pass comma-separated CIDRs to detect overlaps and classify each pair (subnet/supernet/partial overlap/disjoint); multi-CIDR responses return {subnets, overlaps}. GET /asn-lookup/analyze \u2014 Resolves an IP address or domain to its Autonomous System Number (ASN), network owner, country, and hosting/cloud classification \u2014 agents get structured network ownership context plus a trust score to assess infrastructure risk. GET /ip-blacklist/check \u2014 Check an IP address against 15 major DNS blacklists (Spamhaus, Barracuda, SORBS, etc.) simultaneously \u2014 returns which lists it appears on, a reputation score, and a threat classification so agents can make block/allow decisions instantly. GET /ip-reputation/analyze \u2014 Check an IP address against AbuseIPDB and AlienVault OTX threat feeds. Returns a composite risk score, threat categories, malware families, and full source data. GET /ip-geo/locate \u2014 IP geolocation lookup (geoip / IP location API) \u2014 geolocate any IPv4 or IPv6 address to city, region, country, latitude/longitude, timezone, and ISP/ASN as structured JSON so agents can localize content and enrich user records without a paid geolocation subscription. For proxy/VPN/anonymizer or hosting/datacenter detection, use /ip-risk/score or /ip-reputation/analyze. GET /ip-risk/score \u2014 One call returns a complete risk profile for an IP address \u2014 geolocation, ASN/network owner, blacklist status across multiple DNSBLs, and proxy/VPN/hosting classification \u2014 aggregated into a single verdict so agents can make a block/allow decision without calling four separate IP endpoints. GET /ip-report/full \u2014 One premium call returns a complete five-part IP profile \u2014 geolocation, ASN/network ownership, multi-DNSBL blacklist status, threat reputation, and an aggregate risk verdict \u2014 run concurrently with graceful partial-failure handling, so agents get a full IP workup and a block/allow decision in a single request.",
"tags": [
"network",
"x402",
"pay-per-call"
],
"examples": [
"GET https://netintel.dev/subnet/calc",
"GET https://netintel.dev/asn-lookup/analyze",
"GET https://netintel.dev/ip-blacklist/check",
"GET https://netintel.dev/ip-reputation/analyze",
"GET https://netintel.dev/ip-geo/locate",
"GET https://netintel.dev/ip-risk/score",
"GET https://netintel.dev/ip-report/full"
]
},
{
"id": "email",
"name": "Email",
"description": "POST /email-auth \u2014 Email deliverability & domain security check \u2014 validates SPF, DKIM (multi-selector), and DMARC, detects spoofing and misconfigurations, and returns an A\u2013F email security grade with transparent deductions. Anti-spam / anti-phishing readiness for any sending domain. GET /email-intel/analyze \u2014 Email verification & deliverability check (email validator / verifier) \u2014 validate an address, detect disposable/temporary domains, flag role-based inboxes, confirm MX records exist, and return a trust/risk score so agents can qualify leads, clean lists, and gate signups without sending a single email. GET /email-report/full \u2014 One call combines domain email authentication (SPF/DKIM/DMARC), email-address intelligence (deliverability, disposable/role detection), and an optional password breach check into a single email-trust report \u2014 each section run concurrently with graceful partial-failure handling \u2014 so agents can fully vet an email and its domain in one request.",
"tags": [
"email",
"x402",
"pay-per-call"
],
"examples": [
"POST https://netintel.dev/email-auth",
"GET https://netintel.dev/email-intel/analyze",
"GET https://netintel.dev/email-report/full"
]
},
{
"id": "web",
"name": "Web",
"description": "GET /redirect/trace \u2014 Follows a URL through its full redirect chain (up to 20 hops), recording status codes, timing, headers, TLS status, and protocol downgrades per hop, then returns an overall redirect health grade (A\u2013F). GET /security-headers/analyze \u2014 Fetches a URL and evaluates 10 security-critical response headers (CSP, HSTS, X-Content-Type-Options, X-Frame-Options, Referrer-Policy, Permissions-Policy, X-XSS-Protection, CORP, COEP, COOP), detects anti-patterns, and returns an overall security grade (A\u2013F). GET /tech-fingerprint/analyze \u2014 Fetch a URL and detect the full technology stack from HTTP response headers, HTML meta tags, cookies, and script patterns \u2014 returns CMS, framework, CDN, server, analytics, and security tool detections so agents can profile any web target without a browser. GET /og-scraper/extract \u2014 Fetch any public URL and extract structured metadata \u2014 Open Graph tags, Twitter Card tags, canonical URL, title, description, favicon, article author/date, JSON-LD structured data, and content type \u2014 so agents can preview, classify, and enrich links without building their own scraper. GET /page-extract/read \u2014 Fetch any article or web page and extract clean readable text stripped of navigation, ads, and boilerplate \u2014 returns the main content body, word count, estimated reading time, detected language, and key sentences so agents can read the web without a browser or third-party scraping service. GET /web/extract \u2014 Extract article / main content from any URL or PDF to clean, LLM-ready Markdown (web scraper / reader / html-to-markdown) \u2014 strips scripts, nav, ads, and boilerplate while preserving headings, links, lists, tables, code blocks, and blockquotes; extracts the text layer from PDFs. Returns Markdown body, title, word count, and a quality grade so agents can read articles and documents without a browser or paid scraping service. GET /robots-txt/analyze \u2014 Fetch and parse a domain's robots.txt file \u2014 returns all crawl rules by user-agent, sitemap URLs, crawl delay settings, and checks whether a specific path is allowed or blocked for any bot \u2014 so agents can respect crawl policies and locate sitemaps before scraping. GET /rss-parser/fetch \u2014 Fetch and parse any RSS 2.0 or Atom feed URL and return structured articles with title, link, description (truncated to 500 chars), author, publish date, and categories \u2014 so agents can monitor content sources, build news pipelines, and process any feed without building their own XML parser. A URL that isn't a parseable feed still returns 200 with feed_type:\"unknown\", empty items, and a parse_failed finding. GET /sitemap-parser/fetch \u2014 Fetch and parse any XML sitemap or sitemap index file \u2014 returns URLs with their priority, change frequency, and last modified date, follows sitemap indexes one level deep (first 3 child sitemaps), and auto-discovers the sitemap from robots.txt or common paths when given a bare domain \u2014 so agents can enumerate site content for crawling, indexing, and SEO analysis. GET /wayback/lookup \u2014 Query the Internet Archive Wayback Machine to check if a URL has ever been archived, get the closest snapshot to a given date, retrieve the most recent capture, and return archival history stats \u2014 so agents can access historical web content, verify past content claims, and recover deleted pages.",
"tags": [
"web",
"x402",
"pay-per-call"
],
"examples": [
"GET https://netintel.dev/redirect/trace",
"GET https://netintel.dev/security-headers/analyze",
"GET https://netintel.dev/tech-fingerprint/analyze",
"GET https://netintel.dev/og-scraper/extract",
"GET https://netintel.dev/page-extract/read",
"GET https://netintel.dev/web/extract",
"GET https://netintel.dev/robots-txt/analyze",
"GET https://netintel.dev/rss-parser/fetch",
"GET https://netintel.dev/sitemap-parser/fetch",
"GET https://netintel.dev/wayback/lookup"
]
},
{
"id": "security",
"name": "Security",
"description": "GET /breach-check/password \u2014 Check if a password has appeared in known data breaches using the HaveIBeenPwned Pwned Passwords API with k-anonymity \u2014 the full password is never transmitted, only a 5-character SHA-1 hash prefix \u2014 returns breach count and a risk classification so agents can enforce password policies without storing or exposing credentials. GET /url-safety/check \u2014 Check a URL against URLhaus malware database and heuristic phishing pattern analysis \u2014 returns threat classification, malware family if known, threat confidence, and risk score so agents can screen links before following them or sharing them in automated workflows. GET /url-safety/full \u2014 One call vets a URL end to end \u2014 traces its full redirect chain, checks it against the URLhaus malware database plus phishing heuristics, audits its security headers, and inspects its SSL certificate \u2014 concurrent with graceful partial-failure handling, so agents get a complete safety verdict before following a link.",
"tags": [
"security",
"x402",
"pay-per-call"
],
"examples": [
"GET https://netintel.dev/breach-check/password",
"GET https://netintel.dev/url-safety/check",
"GET https://netintel.dev/url-safety/full"
]
},
{
"id": "osint",
"name": "OSINT",
"description": "GET /cloud-fingerprint/analyze \u2014 Fingerprints a domain's cloud infrastructure by probing DNS records, HTTP headers, and PTR lookups to detect CDN, WAF, hosting, DNS provider, and email provider with confidence scores and an infrastructure security grade (A\u2013F). GET /username-check/lookup \u2014 Check username availability across 20+ social platforms and developer sites simultaneously \u2014 returns which platforms have a profile registered under that handle so agents can find people, verify identities, scout brand handles, or check name availability before registration. GET /phone-intel/analyze \u2014 Parse and validate any phone number in any format, identify its country and line type (mobile/landline/VOIP/toll-free/premium for NANP + UK numbers; other countries return line_type unknown), and return all standard format variants (E.164, international, national) \u2014 so agents can validate contacts and normalize phone data without a paid telecom API. POST /github-intel/analyze \u2014 Fetch public metadata for any GitHub repository \u2014 stars, forks, open issues, language breakdown, license, contributors, last commit date, topics, and an activity/health score \u2014 so agents can evaluate dependencies, research projects, and assess open source health without the GitHub API complexity. Pass repo as ?repo=owner/repo (GET) or {\"repo\":\"owner/repo\"} (POST).",
"tags": [
"osint",
"x402",
"pay-per-call"
],
"examples": [
"GET https://netintel.dev/cloud-fingerprint/analyze",
"GET https://netintel.dev/username-check/lookup",
"GET https://netintel.dev/phone-intel/analyze",
"POST https://netintel.dev/github-intel/analyze"
]
},
{
"id": "ai",
"name": "AI & Text",
"description": "POST /messages \u2014 OpenAI-compatible chat completions over x402, answered by Claude Sonnet 4.6 \u2014 send a messages array and get an assistant reply for Q&A, reasoning, agent planning, coding help, summarization, extraction, and classification. Body is OpenAI chat.completions-shaped ({model?, messages:[{role,content}], max_tokens?, temperature?}); response is a chat.completion object. Flat $0.06; inputs capped ~6KB, max_tokens 1024; no streaming in v1. POST /ai-image/generate \u2014 Generate agent-ready image assets (icons, logos, social graphics, thumbnails, banners) with gpt-image-1. Claude refines the prompt, screens content, adds alt text and a score. Returns image_url as a base64 PNG data URI. Flat $0.25; n=1; ratios 1:1/16:9/9:16. POST /schema-parse/extract \u2014 Extract structured data from any unstructured text into your own JSON Schema \u2014 structured-data / information extraction, text-to-JSON, LLM data enrichment. You supply the schema; the LLM returns a matching object. Works for contacts, invoices, events, product specs, medical records, legal clauses, resumes \u2014 any shape. Returns the extracted object plus token usage; unfound fields are omitted or null. POST /classify \u2014 Text classification API \u2014 zero-shot text classifier / categorization: caller supplies 2\u201320 labels and Claude Haiku returns the best-matching category with confidence and per-label scores. Route, tag, triage, and detect intent/topic with your own taxonomy in one call. POST /content-moderate \u2014 Moderate text content using Claude Haiku \u2014 flags categories like harassment, hate, sexual content, violence, self-harm, and spam with per-category severity and an overall allow/flag/block recommendation, so agents can screen user-generated content before publishing or storing it. POST /entity-extract \u2014 Extract named entities from text using Claude Haiku \u2014 people, organizations, locations, dates, emails, URLs, money amounts, and products \u2014 returned as structured typed arrays so agents can pull structured signals out of unstructured text in one call. POST /extract/address \u2014 Parse and normalize a freeform address string using Claude Haiku \u2014 splits it into street, city, state/region, postal code, and country, plus a normalized single-line form, so agents can clean and standardize messy address data for shipping, CRM, and verification workflows. POST /extract/contact \u2014 Extract structured contact details from text, an email signature, or webpage text using Claude Haiku \u2014 returns name, title, company, email, phone, and address as clean JSON so agents can turn unstructured contact blocks into CRM-ready records in one call. POST /extract/invoice \u2014 Extract structured data from invoice or receipt text \u2014 or directly from an invoice URL (PDF, HTML, or plain text, fetched and parsed server-side) \u2014 using Claude Haiku: returns vendor, invoice number, dates, line items, subtotal, tax, total, and currency as clean JSON for accounts-payable, expense processing, and bookkeeping automation. POST /extract/resume \u2014 Extract structured data from resume/CV text using Claude Haiku \u2014 returns name, contact info, skills, work experience, and education as clean JSON arrays so agents can automate applicant screening, candidate databases, and recruiting workflows from raw resume text. POST /extract/table \u2014 Extract tabular data from messy text or HTML using Claude Haiku \u2014 detects columns and rows in unstructured content and returns clean structured JSON (columns + rows) so agents can turn pasted tables, HTML tables, and delimited text into usable data in one call. POST /markdown/clean \u2014 Convert messy HTML or text into clean, well-structured Markdown using Claude Haiku \u2014 strips boilerplate, fixes heading hierarchy, normalizes lists and links, and returns readable Markdown so agents can feed clean docs into downstream pipelines, knowledge bases, or LLM context. POST /normalize/json \u2014 Conform messy or inconsistent JSON to a target schema using Claude Haiku \u2014 renames keys, coerces types (string\u2192number, \"true\"\u2192boolean, etc.), and fills missing fields with null, returning JSON that matches the exact shape the caller specified so agents can normalize data from varied sources into one consistent structure. POST /text-summarize \u2014 Text summarizer / summarization API \u2014 condense text, Markdown, or a URL into a TL;DR plus key bullet points using Claude Haiku. Accepts raw text or a URL (fetched and extracted), enforces an input cap, and returns a clean structured summary so agents can compress documents and articles in one call. POST /text-to-json \u2014 Turn unstructured text into structured JSON matching a caller-supplied schema using Claude Haiku \u2014 the agent declares the fields and types it wants, and gets back populated JSON with values pulled from the text and coerced to the right types, so agents can structure any prose into the exact shape their pipeline expects. POST /sentiment/analyze \u2014 Sentiment analysis API \u2014 analyze sentiment of text and get a text sentiment score in one call: classifies positive / negative / neutral / mixed polarity with a -1 to +1 sentiment score, plus emotion detection in text (joy, anger, sadness, fear, surprise, disgust, trust, anticipation). Aspect-based sentiment and opinion mining for customer feedback analysis \u2014 analyze reviews, support tickets, social posts, chat messages. Via Claude Haiku. POST /translate/long \u2014 Translate up to 2000 words between languages using Claude Haiku \u2014 auto-detects source, supports 30+ target languages, preserves formatting, for larger documents and articles. For short snippets use the cheaper /translate/short. POST /translate/short \u2014 Translate text between languages \u2014 text translation API for short content: translate a sentence, chat message, or up to 500 words to English, Spanish, French, Chinese, or any of 30+ languages. Language translation with auto-detected source language, formatting preserved; returns the translation plus detected source. Machine translation via Claude Haiku for agents localizing content cheaply. For longer documents use /translate/long. POST /event-classify \u2014 Cheap, fast \"is this a dateable event?\" filter for social and web text \u2014 one tiny Haiku call returns is_event, confidence, and a one-line reason, so agents can screen every post for free-ish and only pay for full extraction on the ones that pass. Front-end filter to /event-extract; intentionally minimal output for cost/latency discipline. POST /event-extract \u2014 Event extraction / event parsing \u2014 turn any caption, announcement, listing, or page text into a normalized calendar event via Claude Haiku. Resolves relative dates (\"this Saturday 7pm\") against post time + timezone, handles all-day/multi-day, and returns title, start/end, venue, address, city, price, organizer, url. Purpose-built for structured event data (no schema to define); pairs with /event-classify and /calendar/ics.",
"tags": [
"ai",
"x402",
"pay-per-call"
],
"examples": [
"POST https://netintel.dev/messages",
"POST https://netintel.dev/ai-image/generate",
"POST https://netintel.dev/schema-parse/extract",
"POST https://netintel.dev/classify",
"POST https://netintel.dev/content-moderate",
"POST https://netintel.dev/entity-extract",
"POST https://netintel.dev/extract/address",
"POST https://netintel.dev/extract/contact",
"POST https://netintel.dev/extract/invoice",
"POST https://netintel.dev/extract/resume",
"POST https://netintel.dev/extract/table",
"POST https://netintel.dev/markdown/clean",
"POST https://netintel.dev/normalize/json",
"POST https://netintel.dev/text-summarize",
"POST https://netintel.dev/text-to-json",
"POST https://netintel.dev/sentiment/analyze",
"POST https://netintel.dev/translate/long",
"POST https://netintel.dev/translate/short",
"POST https://netintel.dev/event-classify",
"POST https://netintel.dev/event-extract"
]
},
{
"id": "utilities",
"name": "Utilities",
"description": "GET /cron-parser/explain \u2014 Parse any cron expression into a human-readable explanation, validate its syntax, compute the next 5 scheduled run times (UTC), and detect common patterns (daily, weekly, monthly, hourly) \u2014 accepts standard numeric fields plus JAN-DEC/SUN-SAT name tokens \u2014 so agents can understand, validate, and work with cron schedules without implementing their own cron parser. GET /currency-exchange/convert \u2014 Convert any amount between 32 fiat currencies (live European Central Bank rates) and major cryptocurrencies (BTC, ETH, USDC, SOL, ICP, CELO and more, live Coinbase spot rates) \u2014 fiat\u2194fiat, crypto\u2194fiat, and crypto\u2194crypto all work. Returns converted amount, exchange rate, inverse rate, rate date, and rate source so agents can price and invoice across fiat and crypto without a paid forex API. GET /convert \u2014 Convert any physical measurement \u2014 length, mass, volume, temperature, area, speed, pressure, energy, time, data storage & transfer rate, power, frequency, force, fuel economy (mpg/L per 100 km), angle. Auto-detects the category, handles US/imperial ambiguity, reports assumptions. Accepts natural-language queries (\"what is 5 km in miles\") and volume\u2194mass via density/substance. Deterministic and instant. POST /money/parse \u2014 Normalize any messy money string into a typed decimal amount plus ISO 4217 currency \u2014 handles symbols, locale separators ($1,234.56 vs \u20ac1.234,56), magnitude suffixes (1.2M), accounting notation, and natural-language amounts \u2014 so agents can clean money values before converting or storing them, with no external data and a deterministic fast path. POST /calendar/ics \u2014 Turn event fields into a valid RFC 5545 .ics calendar file \u2014 handles timed and all-day events, escaping, line folding, and a deterministic UID for idempotent re-import \u2014 so agents can publish events that import cleanly into Google, Apple, and Outlook calendars. Add ?download=1 (or Accept: text/calendar) to receive the raw .ics file with a Content-Disposition attachment header instead of the JSON envelope. Pure compute, no LLM. GET /holidays/check \u2014 Look up public holidays for any country and year, check whether a specific date is a holiday, and calculate the next business day \u2014 so agents can handle scheduling, SLA calculations, deadline setting, and date-aware workflows without hardcoding country-specific holiday rules. GET /jwt-inspector/decode \u2014 Decode and inspect any JWT token \u2014 extracts header algorithm, payload claims, expiry status, issued-at time, audience, issuer, and subject without requiring the secret \u2014 so agents can debug auth issues, check token expiry, and extract identity claims from tokens in pipelines. POST /lang-detect/analyze \u2014 Detect the language of any text input using stopword-set matching and Unicode script analysis \u2014 returns the detected language, ISO code, a high/medium/low confidence level, and top alternative languages so agents can route multilingual content, trigger translation workflows, and classify text without a paid NLP API. GET /npm-intel/analyze \u2014 Fetch metadata for any npm package \u2014 download counts, latest version, version count, dependency/devDependency counts, maintainers, repository URL, license, and a health score based on maintenance signals \u2014 so agents can evaluate dependencies, audit package ecosystems, and assess supply chain risk. (Returns counts, not the full version/dependency lists.)",
"tags": [
"utilities",
"x402",
"pay-per-call"
],
"examples": [
"GET https://netintel.dev/cron-parser/explain",
"GET https://netintel.dev/currency-exchange/convert",
"GET https://netintel.dev/convert",
"POST https://netintel.dev/money/parse",
"POST https://netintel.dev/calendar/ics",
"GET https://netintel.dev/holidays/check",
"GET https://netintel.dev/jwt-inspector/decode",
"POST https://netintel.dev/lang-detect/analyze",
"GET https://netintel.dev/npm-intel/analyze"
]
}
],
"x402": {
"protocol": "x402",
"scheme": "exact",
"network": "eip155:8453",
"payTo": "0xdaDc335482AD545296Fd7b28518A251fFCbEb9Df",
"currency": "USDC",
"priceRange": {
"min": "$0.002",
"max": "$0.100"
},
"manifest": "https://netintel.dev/.well-known/x402",
"openapi": "https://netintel.dev/openapi.json",
"llmsTxt": "https://netintel.dev/llms.txt",
"note": "Make a normal HTTP request; an unpaid request returns HTTP 402 with payment requirements. Retry with an X-PAYMENT header. Failed calls (HTTP >= 400) are never charged."
}
}