{"schema_version":"1.0","service":"Tools for Agents","version":"0.1.0","search_endpoints":{"tools":"https://api.toolsforagents.tools/v1/search/tools?q={query}","catalog":"https://api.toolsforagents.tools/v1/tools?tag={tag}&intent={intent}&q={query}","discover":"https://api.toolsforagents.tools/v1/discover"},"platform_tags":["agent","article","arxiv","async","audio","audit","automation","batch","bitcoin","browser","cache","catalog","cognitive","collective","compare","composite","compress","convert","cost","crawl","crypto","diff","discovery","document","duckduckgo","email","ethereum","fact-check","file","find","free","github","gpu","html","image","json","language","links","markdown","memory","meta","monitor","notify","ocr","opengraph","parallel","pdf","phone","pipeline","planning","playwright","qa","question","rag","rank","read","recall","reliability","research","rss","schema","scrape","search","secp256k1","semantic","seo","session","shared","signature","similarity","site","sitemap","speakers","speech","split","status","structured","summary","table","text","trust","url","validate","vector","video","vision","wallet","watch","web","webhook","word","workflow","youtube"],"use_cases":[{"intent":"read a web page","tool":"ingest","endpoint":"POST /v1/ingest","tags":["web","url","markdown"]},{"intent":"research a topic on the web","tool":"search_read","endpoint":"POST /v1/search/read","tags":["research","search"]},{"intent":"extract text from pdf","tool":"pdf","endpoint":"POST /v1/pdf/extract","tags":["document","pdf"]},{"intent":"get text embeddings for rag","tool":"embed","endpoint":"POST /v1/embed","tags":["gpu","vector","rag"]},{"intent":"ocr text from image","tool":"ocr","endpoint":"POST /v1/ocr","tags":["gpu","image","ocr"]},{"intent":"validate email address","tool":"validate_email","endpoint":"POST /v1/validate/email","tags":["validate","email"]},{"intent":"search the web","tool":"search","endpoint":"POST /v1/search","tags":["search","web"]},{"intent":"summarize long text","tool":"summarize","endpoint":"POST /v1/summarize","tags":["text","summary"]},{"intent":"discover urls on a website","tool":"map","endpoint":"POST /v1/map","tags":["web","sitemap"]},{"intent":"deep research with sources","tool":"agent_research","endpoint":"POST /v1/agent/research","tags":["research","pipeline"]},{"intent":"validate a url or link","tool":"validate_url","endpoint":"POST /v1/validate/url","tags":["validate","url"]},{"intent":"verify if a claim is true","tool":"verify_fact","endpoint":"POST /v1/verify/fact","tags":["research","trust","fact-check"]},{"intent":"check source credibility","tool":"source_credibility","endpoint":"POST /v1/source/credibility","tags":["trust","validate"]},{"intent":"plan agent task with budget","tool":"plan","endpoint":"POST /v1/plan","tags":["agent","cost","planning"]},{"intent":"send webhook notification","tool":"webhook_send","endpoint":"POST /v1/webhook/send","tags":["webhook","notify"]},{"intent":"take a screenshot of a webpage","tool":"screenshot","endpoint":"POST /v1/screenshot","tags":["web","image"]},{"intent":"batch extract many urls","tool":"batch_extract","endpoint":"POST /v1/batch/extract","tags":["web","batch"]},{"intent":"semantic search in documents","tool":"retrieve","endpoint":"POST /v1/retrieve","tags":["rag","semantic"]},{"intent":"monitor website for changes","tool":"monitor","endpoint":"POST /v1/monitor","tags":["web","monitor"]},{"intent":"translate text to another language","tool":"translate","endpoint":"POST /v1/translate","tags":["gpu","language"]},{"intent":"extract structured json from page","tool":"extract_json","endpoint":"POST /v1/extract/json","tags":["web","structured"]},{"intent":"crawl a whole website","tool":"crawl","endpoint":"POST /v1/crawl","tags":["web","crawl"]},{"intent":"check cached page content for free","tool":"cache_url","endpoint":"GET /v1/cache/url","tags":["web","cache"]}],"tools":[{"tool":"extract","endpoint":"POST /v1/extract","description":"Extract main content from a URL","tags":["web","url","markdown","scrape","read"],"keywords":["scrape","parser","парсинг","скрейпинг","читать сайт","витягнути текст"]},{"tool":"search","endpoint":"POST /v1/search","description":"Web search (DuckDuckGo) for AI agents","tags":["web","search","duckduckgo","find"],"keywords":["duckduckgo","google search","поиск","шукати","find online"]},{"tool":"extract_links","endpoint":"POST /v1/extract/links","description":"List links from a page (same-host filter)","tags":["web","links","crawl"],"keywords":[]},{"tool":"metadata","endpoint":"POST /v1/metadata","description":"OpenGraph / page metadata","tags":["web","opengraph","seo"],"keywords":["opengraph","og tags","meta tags","seo metadata"]},{"tool":"json_ld","endpoint":"POST /v1/json-ld","description":"Extract JSON-LD structured data","tags":["web","structured","schema"],"keywords":["structured data","schema.org","микроразметка"]},{"tool":"readability","endpoint":"POST /v1/readability","description":"Clean article text + token estimate","tags":["web","article","text"],"keywords":[]},{"tool":"extract_query","endpoint":"POST /v1/extract/query","description":"Answer a question using page content","tags":["web","qa","question","rag"],"keywords":[]},{"tool":"extract_schema","endpoint":"POST /v1/extract/schema","description":"Structured fields from JSON-LD","tags":["web","structured","schema"],"keywords":[]},{"tool":"crawl","endpoint":"POST /v1/crawl","description":"Discover site URLs and batch-extract (async)","tags":["web","crawl","batch","site"],"keywords":["spider","site crawl","обход сайта","краулінг"]},{"tool":"compare","endpoint":"POST /v1/compare","description":"Compare two texts or URLs","tags":["text","diff","similarity"],"keywords":[]},{"tool":"pdf","endpoint":"POST /v1/pdf/extract","description":"Extract text from PDF (URL or upload)","tags":["document","pdf","file"],"keywords":["pdf extract","document","документ","pdf текст"]},{"tool":"docx","endpoint":"POST /v1/docx/extract/upload","description":"Extract text from Word DOCX upload","tags":["document","word","file"],"keywords":[]},{"tool":"html_to_markdown","endpoint":"POST /v1/html/to-markdown","description":"Convert HTML to Markdown","tags":["html","markdown","convert"],"keywords":[]},{"tool":"chunk","endpoint":"POST /v1/chunk","description":"Split text into RAG chunks","tags":["rag","text","split"],"keywords":["split text","rag chunks","разбить текст","фрагменти"]},{"tool":"summarize","endpoint":"POST /v1/summarize","description":"Extractive text summary","tags":["text","summary","compress"],"keywords":["summary","tl dr","краткое содержание","резюме"]},{"tool":"screenshot","endpoint":"POST /v1/screenshot","description":"Capture webpage screenshot (PNG base64)","tags":["web","image","playwright"],"keywords":["page capture","screenshot api","скриншот"]},{"tool":"embed","endpoint":"POST /v1/embed","description":"Text embeddings (GPU)","tags":["gpu","vector","rag","semantic"],"keywords":["vector","embedding","semantic search","вектор","ембеддинг"]},{"tool":"similarity","endpoint":"POST /v1/similarity","description":"Cosine similarity between texts (uses embed)","tags":["gpu","semantic","compare"],"keywords":[]},{"tool":"rerank","endpoint":"POST /v1/rerank","description":"Rerank documents by query relevance","tags":["rag","search","rank"],"keywords":[]},{"tool":"ocr","endpoint":"POST /v1/ocr","description":"OCR from image (GPU)","tags":["gpu","image","text"],"keywords":["optical character","scan text","распознать текст","розпізнати текст"]},{"tool":"transcribe","endpoint":"POST /v1/transcribe","description":"Audio/video transcription (GPU)","tags":["gpu","audio","speech"],"keywords":["speech to text","whisper","аудио в текст","транскрипция"]},{"tool":"youtube_transcript","endpoint":"POST /v1/youtube/transcript","description":"YouTube video transcript","tags":["video","youtube","text"],"keywords":["video transcript","субтитры","субтитри"]},{"tool":"validate_email","endpoint":"POST /v1/validate/email","description":"Validate email address (MX, disposable)","tags":["validate","email"],"keywords":["email check","mx record","проверка email","перевірка пошти"]},{"tool":"validate_url","endpoint":"POST /v1/validate/url","description":"Check if URL is reachable","tags":["validate","url"],"keywords":["link check","url alive","проверка ссылки","перевірка url"]},{"tool":"validate_phone","endpoint":"POST /v1/validate/phone","description":"Validate phone number (E.164, carrier)","tags":["validate","phone"],"keywords":["phone check","e164","телефон","номер телефона"]},{"tool":"crypto","endpoint":"POST /v1/crypto/invoke","description":"Exact secp256k1 crypto: BIP39 mnemonics, BTC+ETH wallets, addresses, Bitcoin message signatures, Ethereum EIP-191, SHA-256, Keccak-256.","tags":["crypto","wallet","secp256k1","ethereum","bitcoin","signature"],"keywords":["generate wallet","ethereum address","bitcoin address","segwit","bech32","bc1","nested segwit","mnemonic","seed phrase","bip39","sign message","secp256k1","криптография","генерация ключа","мнемоника","сид фраза","адрес кошелька","подпись сообщения"]},{"tool":"monitor","endpoint":"POST /v1/monitor","description":"Monitor URL for content changes (uses extract per check)","tags":["web","monitor","watch"],"keywords":["watch url","change detection","мониторинг","відстеження"]},{"tool":"batch_extract","endpoint":"POST /v1/batch/extract","description":"Batch extract up to 50 URLs","tags":["web","batch","async"],"keywords":["bulk extract","many urls","пакетная обработка"]},{"tool":"interact","endpoint":"POST /v1/interact","description":"Browser automation steps (Playwright)","tags":["web","browser","playwright","automation"],"keywords":["browser automation","playwright","автоматизация браузера"]},{"tool":"ocr_table","endpoint":"POST /v1/ocr/table","description":"OCR with table layout detection","tags":["gpu","image","table","ocr"],"keywords":[]},{"tool":"image_describe","endpoint":"POST /v1/image/describe","description":"Describe image content (vision)","tags":["gpu","vision","image"],"keywords":[]},{"tool":"transcribe_diarize","endpoint":"POST /v1/transcribe/diarize","description":"Transcription with speaker diarization","tags":["gpu","audio","speakers"],"keywords":[]},{"tool":"translate","endpoint":"POST /v1/translate","description":"Translate text between languages","tags":["gpu","text","language"],"keywords":["translation","перевод","переклад"]},{"tool":"agent_research","endpoint":"POST /v1/agent/research","description":"Search → extract → summarize pipeline","tags":["research","search","pipeline"],"keywords":["deep research","report","анализ темы","звіт"]},{"tool":"ingest","endpoint":"POST /v1/ingest","description":"Unified ingest: URL/PDF/YouTube/text → agent markdown","tags":["web","url","markdown","rag","agent","composite","github","arxiv","rss"],"keywords":["read url","web to markdown","rag ingest","загрузить страницу","зчитати url"]},{"tool":"search_read","endpoint":"POST /v1/search/read","description":"Search + read top pages with citations (agent context)","tags":["research","search","web","agent","composite"],"keywords":["research","citations","исследование","дослідження","web research"]},{"tool":"map","endpoint":"POST /v1/map","description":"Discover site URLs (sitemap or links)","tags":["web","sitemap","discovery","crawl"],"keywords":["sitemap","site map","карта сайта","карта сайту"]},{"tool":"retrieve","endpoint":"POST /v1/retrieve","description":"Retrieve top-k documents by semantic query","tags":["rag","semantic","gpu","search"],"keywords":["semantic retrieve","top k","поиск по смыслу"]},{"tool":"extract_json","endpoint":"POST /v1/extract/json","description":"Structured JSON from URL (JSON-LD + heuristics)","tags":["web","structured","json"],"keywords":[]},{"tool":"cache_url","endpoint":"GET /v1/cache/url","description":"Get cached extract for URL (0 units if hit)","tags":["web","cache","free"],"keywords":["free cache","cached extract","кеш страницы"]},{"tool":"estimate","endpoint":"POST /v1/estimate","description":"Estimate units/tokens before calling a tool","tags":["agent","cost","free"],"keywords":["cost estimate","token estimate","оценка стоимости"]},{"tool":"memory","endpoint":"POST /v1/memory/store","description":"Agent session memory store/search","tags":["agent","session","memory"],"keywords":["agent memory","session store","память агента"]},{"tool":"verify_fact","endpoint":"POST /v1/verify/fact","description":"Cross-check a claim across web sources with confidence score","tags":["agent","research","trust","fact-check"],"keywords":["fact check","verify claim","проверка факта","перевірка факту"]},{"tool":"source_credibility","endpoint":"POST /v1/source/credibility","description":"Heuristic domain/URL credibility score for agents","tags":["agent","trust","validate","url"],"keywords":["domain trust","source reliability","доверие к источнику"]},{"tool":"plan","endpoint":"POST /v1/plan","description":"Decompose agent goal into steps with unit cost estimates","tags":["agent","cost","planning","free"],"keywords":["task plan","agent planning","план задач","декомпозиция"]},{"tool":"webhook_send","endpoint":"POST /v1/webhook/send","description":"Deliver JSON payload to agent webhook URL (SSRF-safe)","tags":["agent","webhook","notify","async"],"keywords":["send webhook","notify callback","уведомление webhook"]},{"tool":"session_budget","endpoint":"GET /v1/session/{id}/budget","description":"Session spend vs optional budget limit (X-Agent-Session-Id)","tags":["agent","cost","session","free"],"keywords":["session cost","budget tracking","бюджет сессии"]},{"tool":"context_compress","endpoint":"POST /v1/context/compress","description":"Fact-preserving context compression for long agent inputs","tags":["agent","cognitive","rag","compress"],"keywords":["compress context","long text","сжатие контекста"]},{"tool":"conflict_detect","endpoint":"POST /v1/conflict/detect","description":"Detect logical conflicts across multiple documents","tags":["agent","cognitive","trust","research"],"keywords":["contradiction","conflict sources","противоречия"]},{"tool":"self_reflection","endpoint":"POST /v1/self/reflection","description":"Session reflection: done, remaining, mistakes, next step","tags":["agent","cognitive","session","planning"],"keywords":["agent reflection","session review","саморефлексия"]},{"tool":"confidence_estimate","endpoint":"POST /v1/confidence/estimate","description":"Confidence score for a claim before answering user","tags":["agent","cognitive","trust"],"keywords":["how confident","trust answer","уверенность"]},{"tool":"bias_detect","endpoint":"POST /v1/bias/detect","description":"Promotional bias and marketing language detection","tags":["agent","cognitive","trust","research"],"keywords":["bias detection","marketing text","предвзятость"]},{"tool":"workflow_run","endpoint":"POST /v1/workflow/run","description":"Parallel fan-out tool calls with optional merge step (dynamic units ×0.8)","tags":["agent","workflow","parallel"],"keywords":["parallel tools","fan out","параллельный workflow"]},{"tool":"workflow_stateful","endpoint":"POST /v1/workflow/stateful","description":"Stateful multi-step workflow with $step references","tags":["agent","workflow","pipeline"],"keywords":["tool chain","pipeline","цепочка инструментов"]},{"tool":"fallback_chain","endpoint":"POST /v1/fallback/chain","description":"Try tools in order until one succeeds (bill successful only)","tags":["agent","workflow","reliability"],"keywords":["fallback tool","retry extract","запасной инструмент"]},{"tool":"trace_export","endpoint":"GET /v1/trace/{session_id}","description":"Export session tool trace for explainability","tags":["agent","audit","session","free"],"keywords":["audit trail","explain agent","трассировка сессии"]},{"tool":"run","endpoint":"POST /v1/run","description":"Composite mission — goal in, full result out (research, compare, fact-check, …)","tags":[],"keywords":[]},{"tool":"table_extract","endpoint":"POST /v1/extract/tables","description":"Extract HTML tables as rows/records for agents","tags":[],"keywords":[]},{"tool":"diff_url","endpoint":"POST /v1/diff/url","description":"Compare cached vs live page content (change detection)","tags":[],"keywords":[]},{"tool":"sitemap_parse","endpoint":"POST /v1/sitemap/parse","description":"Parse sitemap.xml and list URLs","tags":[],"keywords":[]},{"tool":"feed_parse","endpoint":"POST /v1/feed/parse","description":"Parse RSS/Atom feeds into structured items","tags":[],"keywords":[]},{"tool":"chains_run","endpoint":"POST /v1/chains/run","description":"Execute a named tool chain recipe (PDF, web, research, …)","tags":[],"keywords":[]},{"tool":"csv_parse","endpoint":"POST /v1/extended/csv_parse","description":"Parse CSV/TSV text into rows and records","tags":[],"keywords":[]},{"tool":"json_parse","endpoint":"POST /v1/extended/json_parse","description":"Validate and parse JSON text","tags":[],"keywords":[]},{"tool":"xml_parse","endpoint":"POST /v1/extended/xml_parse","description":"Parse XML and extract tag values","tags":[],"keywords":[]},{"tool":"markdown_parse","endpoint":"POST /v1/extended/markdown_parse","description":"Split Markdown frontmatter, headings, links","tags":[],"keywords":[]},{"tool":"regex_extract","endpoint":"POST /v1/extended/regex_extract","description":"Extract regex capture groups from text","tags":[],"keywords":[]},{"tool":"keyword_extract","endpoint":"POST /v1/extended/keyword_extract","description":"Extract top keywords by frequency","tags":[],"keywords":[]},{"tool":"entity_extract","endpoint":"POST /v1/extended/entity_extract","description":"Heuristic extraction of emails, URLs, phones, dates","tags":[],"keywords":[]},{"tool":"sentiment_score","endpoint":"POST /v1/extended/sentiment_score","description":"Lightweight sentiment polarity score","tags":[],"keywords":[]},{"tool":"language_detect","endpoint":"POST /v1/extended/language_detect","description":"Detect language (en/ru/uk heuristic)","tags":[],"keywords":[]},{"tool":"readability_score","endpoint":"POST /v1/extended/readability_score","description":"Flesch reading ease and grade level","tags":[],"keywords":[]},{"tool":"text_diff","endpoint":"POST /v1/extended/text_diff","description":"Unified diff and similarity between two texts","tags":[],"keywords":[]},{"tool":"dedupe_text","endpoint":"POST /v1/extended/dedupe_text","description":"Remove near-duplicate text passages","tags":[],"keywords":[]},{"tool":"normalize_dates","endpoint":"POST /v1/extended/normalize_dates","description":"Find dates in text and normalize to ISO","tags":[],"keywords":[]},{"tool":"content_hash","endpoint":"POST /v1/extended/content_hash","description":"Stable content fingerprint (sha256/md5/sha1)","tags":[],"keywords":[]},{"tool":"pii_detect","endpoint":"POST /v1/extended/pii_detect","description":"Detect emails, phones, SSN, cards; optional redact","tags":[],"keywords":[]},{"tool":"json_flatten","endpoint":"POST /v1/extended/json_flatten","description":"Flatten nested JSON to dot-path keys","tags":[],"keywords":[]},{"tool":"merge_records","endpoint":"POST /v1/extended/merge_records","description":"Join two record lists by key","tags":[],"keywords":[]},{"tool":"hash_text","endpoint":"POST /v1/extended/hash_text","description":"SHA256 and MD5 hash of text","tags":[],"keywords":[]},{"tool":"base64_encode","endpoint":"POST /v1/extended/base64_encode","description":"Encode text to base64","tags":[],"keywords":[]},{"tool":"base64_decode","endpoint":"POST /v1/extended/base64_decode","description":"Decode base64 to text","tags":[],"keywords":[]},{"tool":"word_stats","endpoint":"POST /v1/extended/word_stats","description":"Word, char, line and token counts","tags":[],"keywords":[]},{"tool":"line_split","endpoint":"POST /v1/extended/line_split","description":"Split text into non-empty lines","tags":[],"keywords":[]},{"tool":"extract_emails","endpoint":"POST /v1/extended/extract_emails","description":"Extract unique email addresses from text","tags":[],"keywords":[]},{"tool":"extract_phones","endpoint":"POST /v1/extended/extract_phones","description":"Extract phone numbers from text","tags":[],"keywords":[]},{"tool":"url_normalize","endpoint":"POST /v1/extended/url_normalize","description":"Normalize URL scheme, host, path","tags":[],"keywords":[]},{"tool":"pdf_metadata","endpoint":"POST /v1/extended/pdf_metadata","description":"PDF page count, title, author without full extract","tags":[],"keywords":[]},{"tool":"pdf_split","endpoint":"POST /v1/extended/pdf_split","description":"Extract text from a page range in a PDF","tags":[],"keywords":[]},{"tool":"robots_parse","endpoint":"POST /v1/extended/robots_parse","description":"Parse robots.txt disallow rules and sitemaps","tags":[],"keywords":[]},{"tool":"redirect_trace","endpoint":"POST /v1/extended/redirect_trace","description":"Follow redirect chain to final URL","tags":[],"keywords":[]},{"tool":"dns_lookup","endpoint":"POST /v1/extended/dns_lookup","description":"DNS A/AAAA/MX/TXT lookup","tags":[],"keywords":[]},{"tool":"ssl_check","endpoint":"POST /v1/extended/ssl_check","description":"TLS certificate expiry and issuer","tags":[],"keywords":[]},{"tool":"html_clean","endpoint":"POST /v1/extended/html_clean","description":"Strip scripts/nav and extract clean text from HTML","tags":[],"keywords":[]},{"tool":"seo_audit","endpoint":"POST /v1/extended/seo_audit","description":"SEO checklist: title, meta, H1, OG tags","tags":[],"keywords":[]},{"tool":"page_links_external","endpoint":"POST /v1/extended/page_links_external","description":"List external vs internal links on a page","tags":[],"keywords":[]},{"tool":"validate_iban","endpoint":"POST /v1/extended/validate_iban","description":"Validate IBAN checksum","tags":[],"keywords":[]},{"tool":"validate_ip","endpoint":"POST /v1/extended/validate_ip","description":"Validate IPv4/IPv6 address","tags":[],"keywords":[]},{"tool":"validate_domain","endpoint":"POST /v1/extended/validate_domain","description":"Domain format + DNS existence check","tags":[],"keywords":[]},{"tool":"validate_uuid","endpoint":"POST /v1/extended/validate_uuid","description":"Validate UUID v1–v5 format","tags":[],"keywords":[]},{"tool":"ocr_url","endpoint":"POST /v1/extended/ocr_url","description":"OCR text from image URL (chain-friendly)","tags":[],"keywords":[]},{"tool":"ocr_table_url","endpoint":"POST /v1/extended/ocr_table_url","description":"OCR table layout from image URL","tags":[],"keywords":[]},{"tool":"capabilities","endpoint":"GET /v1/capabilities","description":"Platform capabilities for agents","tags":["agent","meta"],"keywords":["platform info","features","возможности"]},{"tool":"jobs","endpoint":"GET /v1/jobs/{id}","description":"Unified async job status (batch/crawl)","tags":["async","batch","status"],"keywords":["async status","job polling","статус задачи"]}]}