{"openapi":"3.0.3","info":{"title":"IteraTools API","version":"1.0.0","description":"Pay-per-use control plane for AI agents with 140+ REST tools, x402 micropayments on Base, prepaid API key credits, auditable runs, receipts, approvals, and connected-account metadata.","contact":{"email":"fred@iteratools.com"},"license":{"name":"Proprietary"}},"servers":[{"url":"https://api.iteratools.com","description":"Production"}],"security":[{"BearerAuth":[]},{"x402Payment":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","description":"Registered IteraTools API key or admin key"},"x402Payment":{"type":"apiKey","in":"header","name":"X-Payment","description":"x402 micropayment proof"}}},"paths":{"/health":{"get":{"summary":"Health check","responses":{"200":{"description":"OK"}}}},"/image/generate":{"post":{"summary":"Generate image with Flux 1.1 Pro","operationId":"imageGenerate","tags":["Image"],"responses":{"200":{"description":"Image URL","content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","description":"Generated image URL"}}}}}},"402":{"description":"Payment required"}},"x-iteratools-tool-id":"image/generate","x-iteratools-price-usdc":0.005,"x-iteratools-risk":"medium","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string"},"width":{"type":"number","default":1024},"height":{"type":"number","default":1024}},"required":["prompt"]}}}}}},"/image/fast":{"post":{"summary":"Fast image with Flux Schnell","operationId":"imageFast","tags":["Image"],"responses":{"200":{"description":"Image URL","content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string"}}}}}},"402":{"description":"Payment required"}},"x-iteratools-tool-id":"image/fast","x-iteratools-price-usdc":0.002,"x-iteratools-risk":"medium","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string"},"width":{"type":"number","default":1024},"height":{"type":"number","default":1024}},"required":["prompt"]}}}}}},"/image/rembg":{"post":{"summary":"Remove image background","operationId":"imageRembg","tags":["Image"],"responses":{"200":{"description":"Image without background","content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","description":"Transparent PNG URL"}}}}}},"402":{"description":"Payment required"}},"x-iteratools-tool-id":"image/rembg","x-iteratools-price-usdc":0.003,"x-iteratools-risk":"medium","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","description":"Image URL"}},"required":["url"]}}}}}},"/image/resize":{"post":{"summary":"Resize image","operationId":"imageResize","tags":["Image"],"responses":{"200":{"description":"Resized image base64","content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string"},"width":{"type":"number"},"height":{"type":"number"}}}}}},"402":{"description":"Payment required"}},"x-iteratools-tool-id":"image/resize","x-iteratools-price-usdc":0.001,"x-iteratools-risk":"medium","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string"},"width":{"type":"number"},"height":{"type":"number"},"format":{"type":"string","enum":["png","jpeg","webp"]}},"required":["url","width","height"]}}}}}},"/image/compress":{"post":{"summary":"Compress image with quality control","operationId":"imageCompress","tags":["Image"],"responses":{"200":{"description":"Compressed image base64 with stats","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"image_base64":{"type":"string"},"original_size":{"type":"integer"},"compressed_size":{"type":"integer"},"reduction_pct":{"type":"number"},"format":{"type":"string"},"width":{"type":"integer"},"height":{"type":"integer"}}}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}},"x-iteratools-tool-id":"image/compress","x-iteratools-price-usdc":0.001,"x-iteratools-risk":"medium","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"image_url":{"type":"string"},"image_base64":{"type":"string"},"quality":{"type":"integer","minimum":1,"maximum":100,"default":80},"format":{"type":"string","enum":["jpeg","jpg","png","webp","avif"]},"max_width":{"type":"integer","minimum":1}},"oneOf":[{"required":["image_url"]},{"required":["image_base64"]}]}}}}}},"/image/edit":{"post":{"summary":"Image editing operations (crop, rotate, flip, blur, sharpen, watermark, grayscale, tint, border)","operationId":"imageEdit","tags":["Image"],"responses":{"200":{"description":"Edited image base64 with metadata","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"data":{"type":"object","properties":{"image_base64":{"type":"string"},"width":{"type":"integer"},"height":{"type":"integer"},"format":{"type":"string"},"size_bytes":{"type":"integer"},"operations_applied":{"type":"array","items":{"type":"string"}},"warnings":{"type":"array","items":{"type":"string"}}}}}}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}},"x-iteratools-tool-id":"image/edit","x-iteratools-price-usdc":0.002,"x-iteratools-risk":"medium","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"image_url":{"type":"string"},"image_base64":{"type":"string"},"operations":{"type":"array","minItems":1,"maxItems":10,"items":{"type":"object","properties":{"type":{"type":"string","enum":["crop","rotate","flip","flop","blur","sharpen","grayscale","greyscale","negate","tint","resize","watermark","border"]},"left":{"type":"number"},"top":{"type":"number"},"width":{"type":"number"},"height":{"type":"number"},"angle":{"type":"number"},"sigma":{"type":"number"},"fit":{"type":"string"},"text":{"type":"string"},"font_size":{"type":"number"},"opacity":{"type":"number"},"position":{"type":"string"},"r":{"type":"number"},"g":{"type":"number"},"b":{"type":"number"},"color":{"type":"string"}},"required":["type"]}},"format":{"type":"string","enum":["png","jpeg","jpg","webp","avif"],"default":"png"},"quality":{"type":"integer","minimum":1,"maximum":100,"default":80}},"required":["operations"],"oneOf":[{"required":["image_url"]},{"required":["image_base64"]}]}}}}}},"/image/ocr":{"post":{"summary":"Extract text from image (OCR)","operationId":"imageOcr","tags":["Image"],"responses":{"200":{"description":"Extracted text","content":{"application/json":{"schema":{"type":"object","properties":{"text":{"type":"string"}}}}}},"402":{"description":"Payment required"}},"x-iteratools-tool-id":"image/ocr","x-iteratools-price-usdc":0.003,"x-iteratools-risk":"medium","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string"}},"required":["url"]}}}}}},"/image/describe":{"post":{"summary":"Describe image with GPT-4o vision","operationId":"imageDescribe","tags":["Image"],"responses":{"200":{"description":"Description, tags, model used","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"data":{"type":"object","properties":{"description":{"type":"string"},"tags":{"type":"array","items":{"type":"string"}},"model":{"type":"string"}}}}}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}},"x-iteratools-tool-id":"image/describe","x-iteratools-price-usdc":0.008,"x-iteratools-risk":"medium","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"image":{"type":"string"},"prompt":{"type":"string"}},"required":["image"]}}}}}},"/video/generate":{"post":{"summary":"Generate video","operationId":"videoGenerate","tags":["Video"],"responses":{"200":{"description":"Video URL","content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","description":"Video URL"}}}}}},"402":{"description":"Payment required"}},"x-iteratools-tool-id":"video/generate","x-iteratools-price-usdc":0.05,"x-iteratools-risk":"medium","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string"},"duration":{"type":"number","default":5},"aspect_ratio":{"type":"string","default":"16:9"}},"required":["prompt"]}}}}}},"/screenshot":{"post":{"summary":"Take webpage screenshot","operationId":"screenshot","tags":["Video"],"responses":{"200":{"description":"Screenshot base64","content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","description":"Screenshot image URL"}}}}}},"402":{"description":"Payment required"}},"x-iteratools-tool-id":"screenshot","x-iteratools-price-usdc":0.002,"x-iteratools-risk":"medium","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string"},"width":{"type":"number","default":1280},"full_page":{"type":"boolean","default":false},"height":{"type":"number","default":720},"format":{"type":"string","default":"png"}},"required":["url"]}}}}}},"/video/frames":{"post":{"summary":"Extract video frames","operationId":"videoFrames","tags":["Video"],"responses":{"200":{"description":"Frame images","content":{"application/json":{"schema":{"type":"object","properties":{"frames":{"type":"array","items":{"type":"string"}},"count":{"type":"number"}}}}}},"402":{"description":"Payment required"}},"x-iteratools-tool-id":"video/frames","x-iteratools-price-usdc":0.005,"x-iteratools-risk":"medium","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string"},"fps":{"type":"number","default":1},"max_frames":{"type":"number","default":30}},"required":["url"]}}}}}},"/video/transcribe":{"post":{"summary":"Transcribe video from URL (YouTube or MP4)","operationId":"videoTranscribe","tags":["Video"],"responses":{"200":{"description":"Transcription result","content":{"application/json":{"schema":{"type":"object","properties":{"transcript":{"type":"string"},"language":{"type":"string"}}}}}},"402":{"description":"Payment required"}},"x-iteratools-tool-id":"video/transcribe","x-iteratools-price-usdc":0.02,"x-iteratools-risk":"medium","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string"},"language":{"type":"string","default":"en"},"format":{"type":"string","enum":["text","srt","json"],"default":"text"}},"required":["url"]}}}}}},"/video/analyze":{"post":{"summary":"Analyze video content (transcript, frame descriptions, timestamps, summary)","operationId":"videoAnalyze","tags":["Video"],"responses":{"200":{"description":"Analysis result with requested fields","content":{"application/json":{"schema":{"type":"object","properties":{"summary":{"type":"string"},"transcript":{"type":"string"}}}}}},"402":{"description":"Payment required"}},"x-iteratools-tool-id":"video/analyze","x-iteratools-price-usdc":0.025,"x-iteratools-risk":"medium","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string"},"tasks":{"type":"array","items":{"type":"string"}},"max_duration":{"type":"number","default":300},"language":{"type":"string","default":"auto"}},"required":["url"]}}}}}},"/scrape":{"post":{"summary":"Scrape webpage content","operationId":"scrape","tags":["Web"],"responses":{"200":{"description":"Page content","content":{"application/json":{"schema":{"type":"object","properties":{"text":{"type":"string"},"title":{"type":"string"},"html":{"type":"string"}}}}}},"402":{"description":"Payment required"}},"x-iteratools-tool-id":"scrape","x-iteratools-price-usdc":0.002,"x-iteratools-risk":"medium","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string"},"format":{"type":"string","default":"text"},"wait_for":{"type":"number","default":0}},"required":["url"]}}}}}},"/search":{"post":{"summary":"Web search via Brave","operationId":"search","tags":["Web"],"responses":{"200":{"description":"Search results","content":{"application/json":{"schema":{"type":"object","properties":{"results":{"type":"array"},"count":{"type":"number"}}}}}},"402":{"description":"Payment required"}},"x-iteratools-tool-id":"search","x-iteratools-price-usdc":0.001,"x-iteratools-risk":"medium","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"query":{"type":"string"},"count":{"type":"number","default":5},"country":{"type":"string"}},"required":["query"]}}}}}},"/search/deep":{"post":{"summary":"Deep web search with full content + LLM synthesis (Tavily-style)","operationId":"searchDeep","tags":["Web"],"responses":{"200":{"description":"Deep search results with answer and full page content","content":{"application/json":{"schema":{"type":"object","properties":{"answer":{"type":"string"},"sources":{"type":"array"}}}}}},"400":{"description":"Missing query"},"402":{"description":"Payment required"},"503":{"description":"Search unavailable or OpenAI not configured"}},"x-iteratools-tool-id":"search/deep","x-iteratools-price-usdc":0.008,"x-iteratools-risk":"medium","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"query":{"type":"string"},"max_results":{"type":"number","default":5},"include_answer":{"type":"boolean","default":true},"include_raw_content":{"type":"boolean","default":false},"search_depth":{"type":"string"}},"required":["query"]}}}},"description":"Search the web and return full extracted page content plus an AI-generated answer. Uses Brave Search for URLs, Readability to extract content, and GPT-4o-mini to synthesize a direct answer. $0.008/request."}},"/search/content":{"post":{"summary":"Web search with full page content","operationId":"searchContent","tags":["Web"],"responses":{"200":{"description":"Search results with full page content","content":{"application/json":{"schema":{"type":"object","properties":{"results":{"type":"array"}}}}}},"400":{"description":"Missing query"},"402":{"description":"Payment required"},"503":{"description":"Search unavailable"}},"x-iteratools-tool-id":"search/content","x-iteratools-price-usdc":0.005,"x-iteratools-risk":"medium","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"query":{"type":"string"},"count":{"type":"number","default":5},"max_results":{"type":"number","default":5},"include_images":{"type":"boolean","default":false}},"required":["query"]}}}},"description":"Search the web and return FULL page content (not just snippets). Uses Brave Search for URLs then scrapes each page. $0.005/request."}},"/pdf/extract":{"post":{"summary":"Extract text from PDF","operationId":"pdfExtract","tags":["Web"],"responses":{"200":{"description":"PDF text","content":{"application/json":{"schema":{"type":"object","properties":{"text":{"type":"string"},"pages":{"type":"number"}}}}}},"402":{"description":"Payment required"}},"x-iteratools-tool-id":"pdf/extract","x-iteratools-price-usdc":0.002,"x-iteratools-risk":"medium","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string"}},"required":["url"]}}}}}},"/pdf/generate":{"post":{"summary":"Generate PDF from HTML","operationId":"pdfGenerate","tags":["Web"],"responses":{"200":{"description":"PDF base64","content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string"}}}}}},"402":{"description":"Payment required"}},"x-iteratools-tool-id":"pdf/generate","x-iteratools-price-usdc":0.003,"x-iteratools-risk":"medium","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"html":{"type":"string"}},"required":["html"]}}}}}},"/tts":{"post":{"summary":"Text to speech","operationId":"tts","tags":["Audio"],"responses":{"200":{"description":"Audio base64","content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","description":"MP3 audio URL"}}}}}},"402":{"description":"Payment required"}},"x-iteratools-tool-id":"tts","x-iteratools-price-usdc":0.001,"x-iteratools-risk":"medium","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"text":{"type":"string"},"voice":{"type":"string","default":"alloy"},"language":{"type":"string"},"format":{"type":"string"}},"required":["text"]}}}}}},"/transcribe":{"post":{"summary":"Transcribe audio (DEPRECATED - use /audio/transcribe)","operationId":"transcribe","tags":["Audio"],"responses":{"200":{"description":"Transcription (includes deprecated:true and successor field)","content":{"application/json":{"schema":{"type":"object","properties":{"text":{"type":"string"},"language":{"type":"string"}}}}}},"402":{"description":"Payment required"}},"x-iteratools-tool-id":"transcribe","x-iteratools-price-usdc":0.005,"x-iteratools-risk":"medium","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string"},"language":{"type":"string","default":"en"}},"required":["url"]}}}},"deprecated":true,"description":"Deprecated. Use POST /audio/transcribe instead."}},"/qrcode":{"post":{"summary":"Generate QR code","operationId":"qrcode","tags":["Utils"],"responses":{"200":{"description":"QR code dataURL","content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string"}}}}}},"402":{"description":"Payment required"}},"x-iteratools-tool-id":"qrcode","x-iteratools-price-usdc":0.001,"x-iteratools-risk":"medium","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"text":{"type":"string"},"size":{"type":"number","default":300},"error_level":{"type":"string","enum":["L","M","Q","H"],"default":"M"}},"required":["text"]}}}}}},"/weather":{"get":{"summary":"Get weather data","operationId":"weather","tags":["Utils"],"responses":{"200":{"description":"Weather data","content":{"application/json":{"schema":{"type":"object","properties":{"temperature":{"type":"number"},"description":{"type":"string"},"humidity":{"type":"number"}}}}}},"402":{"description":"Payment required"}},"x-iteratools-tool-id":"weather","x-iteratools-price-usdc":0.001,"x-iteratools-risk":"low","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"parameters":[{"name":"location","in":"query","required":true,"schema":{"type":"string"}},{"name":"units","in":"query","required":false,"schema":{"type":"string","enum":["metric","imperial"],"default":"metric"}}]}},"/crypto/price":{"get":{"summary":"Get crypto price","operationId":"cryptoPrice","tags":["Utils"],"responses":{"200":{"description":"Crypto price","content":{"application/json":{"schema":{"type":"object","properties":{"price_usd":{"type":"number"},"coin":{"type":"string"}}}}}},"402":{"description":"Payment required"}},"x-iteratools-tool-id":"crypto/price","x-iteratools-price-usdc":0.001,"x-iteratools-risk":"low","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"parameters":[{"name":"coin","in":"query","required":false,"schema":{"type":"string","default":"bitcoin"}},{"name":"currency","in":"query","required":false,"schema":{"type":"string","default":"usd"}}]}},"/url/shorten":{"post":{"summary":"Shorten URL","operationId":"urlShorten","tags":["Utils"],"responses":{"200":{"description":"Short URL","content":{"application/json":{"schema":{"type":"object","properties":{"short_url":{"type":"string"},"code":{"type":"string"}}}}}},"402":{"description":"Payment required"}},"x-iteratools-tool-id":"url/shorten","x-iteratools-price-usdc":0.001,"x-iteratools-risk":"medium","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string"}},"required":["url"]}}}}}},"/email/validate":{"post":{"summary":"Validate email address","operationId":"emailValidate","tags":["Utils"],"responses":{"200":{"description":"Validation result","content":{"application/json":{"schema":{"type":"object","properties":{"valid":{"type":"boolean"},"format":{"type":"boolean"},"mx":{"type":"boolean"}}}}}},"402":{"description":"Payment required"}},"x-iteratools-tool-id":"email/validate","x-iteratools-price-usdc":0.001,"x-iteratools-risk":"medium","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string"}},"required":["email"]}}}}}},"/email/send":{"post":{"summary":"Send email","operationId":"emailSend","tags":["Utils"],"responses":{"200":{"description":"Email sent","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"message_id":{"type":"string"}}}}}},"402":{"description":"Payment required"},"503":{"description":"Tool temporarily unavailable"}},"x-iteratools-tool-id":"email/send","x-iteratools-price-usdc":0.001,"x-iteratools-risk":"high","x-iteratools-availability":"temporarily_disabled","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":false,"x-iteratools-aliases":[{"method":"POST","path":"/email/send_disabled","deprecated":true}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string"},"subject":{"type":"string"},"body":{"type":"string"},"from":{"type":"string"}},"required":["to","subject","body"]}}}}}},"/email/inbox":{"get":{"summary":"List inbox emails via IMAP ($0.002)","operationId":"emailInbox","tags":["Email"],"responses":{"200":{"description":"Email list: emails[], total, unread, mailbox, filtered, returned","content":{"application/json":{"schema":{"type":"object","properties":{"emails":{"type":"array"},"count":{"type":"number"}}}}}},"401":{"description":"Authentication failed"},"402":{"description":"Payment required"}},"x-iteratools-tool-id":"email/inbox","x-iteratools-price-usdc":0.002,"x-iteratools-risk":"low","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"x-iteratools-input-aliases":{"host":"imap_host","port":"imap_port","user":"account"},"parameters":[{"name":"account","in":"query","required":true,"schema":{"type":"string"}},{"name":"x-iteratools-secret-password","in":"header","required":true,"schema":{"type":"string"},"x-iteratools-input-name":"password"},{"name":"limit","in":"query","required":false,"schema":{"type":"number","default":20,"maximum":100}},{"name":"filter","in":"query","required":false,"schema":{"type":"string","enum":["all","unread","flagged"],"default":"all"}},{"name":"mailbox","in":"query","required":false,"schema":{"type":"string","default":"INBOX"}},{"name":"imap_host","in":"query","required":false,"schema":{"type":"string"}},{"name":"imap_port","in":"query","required":false,"schema":{"type":"number","default":993}}],"description":"List emails from any IMAP inbox. User provides their own credentials per-request (no state stored). Supports Gmail (App Password required), iCloud, Outlook, Yahoo, and any standard IMAP provider. Auto-detects IMAP server from email domain."}},"/email/read":{"post":{"summary":"Read full email content via IMAP ($0.003)","operationId":"emailRead","tags":["Email"],"responses":{"200":{"description":"Full email: subject, from, to, cc, bcc, date, text, html, attachments[], headers, size_bytes","content":{"application/json":{"schema":{"type":"object","properties":{"subject":{"type":"string"},"body":{"type":"string"},"from":{"type":"string"},"attachments":{"type":"array"}}}}}},"401":{"description":"Authentication failed"},"402":{"description":"Payment required"},"404":{"description":"Email not found"}},"x-iteratools-tool-id":"email/read","x-iteratools-price-usdc":0.003,"x-iteratools-risk":"medium","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"x-iteratools-input-aliases":{"host":"imap_host","port":"imap_port","user":"account"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"account":{"type":"string"},"password":{"type":"string"},"uid":{"type":"number"},"message_id":{"type":"string"},"mailbox":{"type":"string","default":"INBOX"},"mark_read":{"type":"boolean","default":false},"imap_host":{"type":"string"},"imap_port":{"type":"number","default":993}},"required":["account","password"],"anyOf":[{"required":["uid"]},{"required":["message_id"]}]}}}},"description":"Read the complete content of a single email including body (text + HTML), headers, and attachments metadata. Identify email by uid (from /email/inbox) or message_id. Gmail requires App Password."}},"/ip/geolocation":{"get":{"summary":"IP geolocation lookup","operationId":"ipGeolocation","tags":["Utils"],"responses":{"200":{"description":"Geolocation data: country, region, city, lat/lng, timezone","content":{"application/json":{"schema":{"type":"object","properties":{"country":{"type":"string"},"city":{"type":"string"},"lat":{"type":"number"},"lon":{"type":"number"}}}}}},"402":{"description":"Payment required"}},"x-iteratools-tool-id":"ip/geolocation","x-iteratools-price-usdc":0.001,"x-iteratools-risk":"low","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"parameters":[{"name":"ip","in":"query","required":true,"schema":{"type":"string"}}]}},"/currency/convert":{"get":{"summary":"Currency conversion via ECB rates","operationId":"currencyConvert","tags":["Utils"],"responses":{"200":{"description":"Converted amount with rate info","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"number"},"rate":{"type":"number"},"from":{"type":"string"},"to":{"type":"string"}}}}}},"402":{"description":"Payment required"}},"x-iteratools-tool-id":"currency/convert","x-iteratools-price-usdc":0.001,"x-iteratools-risk":"low","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"parameters":[{"name":"from","in":"query","required":true,"schema":{"type":"string"}},{"name":"to","in":"query","required":true,"schema":{"type":"string"}},{"name":"amount","in":"query","required":false,"schema":{"type":"number","default":1}}]}},"/translate":{"post":{"summary":"Translate text (up to 5000 chars)","operationId":"translate","tags":["Utils"],"responses":{"200":{"description":"Translated text","content":{"application/json":{"schema":{"type":"object","properties":{"translated":{"type":"string"},"source_lang":{"type":"string"},"target_lang":{"type":"string"}}}}}},"402":{"description":"Payment required"}},"x-iteratools-tool-id":"translate","x-iteratools-price-usdc":0.002,"x-iteratools-risk":"medium","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"text":{"type":"string"},"target_lang":{"type":"string"},"source_lang":{"type":"string","default":"auto"}},"required":["text","target_lang"]}}}}}},"/chart/generate":{"post":{"summary":"Generate chart image","operationId":"chartGenerate","tags":["Utils"],"responses":{"200":{"description":"Chart image URL and base64","content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string"}}}}}},"402":{"description":"Payment required"}},"x-iteratools-tool-id":"chart/generate","x-iteratools-price-usdc":0.002,"x-iteratools-risk":"medium","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"type":{"type":"string","enum":["bar","line","pie","doughnut","radar"]},"labels":{"type":"array"},"datasets":{"type":"array"},"title":{"type":"string"}},"required":["type","labels","datasets"]}}}}}},"/whois":{"post":{"summary":"WHOIS domain lookup (registrar, expiration, nameservers)","operationId":"whois","tags":["Utils"],"responses":{"200":{"description":"WHOIS data: registrar, creation/expiration dates, nameservers, status","content":{"application/json":{"schema":{"type":"object","properties":{"registrar":{"type":"string"},"expiration":{"type":"string"},"nameservers":{"type":"array"}}}}}},"402":{"description":"Payment required"}},"x-iteratools-tool-id":"whois","x-iteratools-price-usdc":0.001,"x-iteratools-risk":"medium","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"domain":{"type":"string"}},"required":["domain"]}}}}}},"/dns/lookup":{"post":{"summary":"DNS record lookup (A, AAAA, MX, TXT, CNAME, NS, SOA)","operationId":"dnsLookup","tags":["Utils"],"responses":{"200":{"description":"DNS records per type","content":{"application/json":{"schema":{"type":"object","properties":{"records":{"type":"object"}}}}}},"402":{"description":"Payment required"}},"x-iteratools-tool-id":"dns/lookup","x-iteratools-price-usdc":0.001,"x-iteratools-risk":"medium","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"domain":{"type":"string"},"types":{"type":"array","items":{"type":"string"},"default":["A","MX","TXT"]}},"required":["domain"]}}}}}},"/browser/act":{"post":{"summary":"Browser automation with Playwright actions","operationId":"browserAct","tags":["Web"],"responses":{"200":{"description":"Action results array","content":{"application/json":{"schema":{"type":"object","properties":{"results":{"type":"array"},"screenshot":{"type":"string"}}}}}},"402":{"description":"Payment required"}},"x-iteratools-tool-id":"browser/act","x-iteratools-price-usdc":0.005,"x-iteratools-risk":"medium","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"actions":{"type":"array","items":{"type":"object"}},"url":{"type":"string"},"waitUntil":{"type":"string"}},"required":["actions"]}}}}}},"/extract":{"post":{"summary":"Structured web extraction (Readability + optional schema)","operationId":"extract","tags":["Web"],"responses":{"200":{"description":"Extracted content: title, description, markdown, links, images, word_count","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"}}}}}},"402":{"description":"Payment required"}},"x-iteratools-tool-id":"extract","x-iteratools-price-usdc":0.005,"x-iteratools-risk":"medium","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string"},"schema":{"type":"object"},"wait_for":{"type":"number","default":0}},"required":["url"]}}}}}},"/extract/structured":{"post":{"summary":"Extract structured data from URL using JSON schema + LLM","operationId":"extractStructured","tags":["Web"],"responses":{"200":{"description":"Extracted structured data","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"}}}}}},"400":{"description":"Missing url or schema"},"402":{"description":"Payment required"},"422":{"description":"Page content too short to extract"},"502":{"description":"Failed to scrape URL"},"503":{"description":"OpenAI not configured"}},"x-iteratools-tool-id":"extract/structured","x-iteratools-price-usdc":0.01,"x-iteratools-risk":"medium","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string"},"schema":{"type":"object"},"instructions":{"type":"string"},"force_fallback":{"type":"boolean","default":false}},"required":["url","schema"]}}}},"description":"Scrape a URL and extract specific fields defined by a JSON schema using GPT-4o-mini. Perfect for extracting product info, prices, contact details, etc. from any webpage. $0.010/request."}},"/crawl":{"post":{"summary":"Crawl website (BFS) and extract content from multiple pages","operationId":"crawl","tags":["Web"],"responses":{"200":{"description":"Crawl results with pages array","content":{"application/json":{"schema":{"type":"object","properties":{"pages":{"type":"array"},"count":{"type":"number"}}}}}},"402":{"description":"Payment required"}},"x-iteratools-tool-id":"crawl","x-iteratools-price-usdc":0.01,"x-iteratools-risk":"medium","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string"},"max_pages":{"type":"number","default":10},"depth":{"type":"number","default":2},"same_domain":{"type":"boolean","default":true},"include_pattern":{"type":"string"},"exclude_pattern":{"type":"string"}},"required":["url"]}}}}}},"/audio/transcribe":{"post":{"summary":"Transcribe audio to text (OpenAI Whisper)","operationId":"audioTranscribe","tags":["Audio"],"responses":{"200":{"description":"Transcription text","content":{"application/json":{"schema":{"type":"object","properties":{"text":{"type":"string"},"language":{"type":"string"}}}}}},"402":{"description":"Payment required"}},"x-iteratools-tool-id":"audio/transcribe","x-iteratools-price-usdc":0.005,"x-iteratools-risk":"medium","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string"},"language":{"type":"string","default":"en"}},"required":["url"]}}}}}},"/spreadsheet/generate":{"post":{"summary":"Generate Excel/CSV spreadsheet","operationId":"spreadsheetGenerate","tags":["Utils"],"responses":{"200":{"description":"Spreadsheet URL or base64","content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string"},"format":{"type":"string"}}}}}},"402":{"description":"Payment required"}},"x-iteratools-tool-id":"spreadsheet/generate","x-iteratools-price-usdc":0.003,"x-iteratools-risk":"medium","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"format":{"type":"string","enum":["xlsx","csv"],"default":"xlsx"},"sheets":{"type":"array"},"filename":{"type":"string"}},"required":["sheets"]}}}}}},"/whatsapp/send":{"post":{"summary":"Send WhatsApp template message","operationId":"whatsappSend","tags":["WhatsApp"],"responses":{"200":{"description":"Message sent, conversation started","content":{"application/json":{"schema":{"type":"object","properties":{"message_id":{"type":"string"},"status":{"type":"string"}}}}}},"402":{"description":"Payment required"}},"x-iteratools-tool-id":"whatsapp/send","x-iteratools-price-usdc":0.07,"x-iteratools-risk":"high","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string"},"callback_url":{"type":"string"},"max_hours":{"type":"number","default":24}},"required":["to","callback_url"]}}}}}},"/whatsapp/reply":{"post":{"summary":"Send reply in active WhatsApp conversation","operationId":"whatsappReply","tags":["WhatsApp"],"responses":{"200":{"description":"Reply sent","content":{"application/json":{"schema":{"type":"object","properties":{"message_id":{"type":"string"},"status":{"type":"string"}}}}}},"402":{"description":"Payment required"}},"x-iteratools-tool-id":"whatsapp/reply","x-iteratools-price-usdc":0.005,"x-iteratools-risk":"high","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"x-iteratools-input-aliases":{"to":"conversation_id","text":"message"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"conversation_id":{"type":"string"},"message":{"type":"string"}},"required":["conversation_id","message"]}}}}}},"/code_execute":{"post":{"summary":"Execute code in sandbox (Python/JS/Bash)","operationId":"codeExecute","tags":["Utils"],"responses":{"200":{"description":"stdout, stderr, result","content":{"application/json":{"schema":{"type":"object","properties":{"stdout":{"type":"string"},"stderr":{"type":"string"},"exit_code":{"type":"number"}}}}}},"402":{"description":"Payment required"},"501":{"description":"Not yet implemented"}},"x-iteratools-tool-id":"code_execute","x-iteratools-price-usdc":0.005,"x-iteratools-risk":"medium","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string"},"language":{"type":"string","enum":["python","javascript"],"default":"python"},"timeout":{"type":"number","maximum":30000,"default":30000}},"required":["code"]}}}}}},"/calendar/holidays":{"get":{"summary":"Public holidays by country and year","operationId":"calendarHolidays","tags":["Utils"],"responses":{"200":{"description":"List of public holidays with date, name, localName, types","content":{"application/json":{"schema":{"type":"object","properties":{"holidays":{"type":"array"},"count":{"type":"number"}}}}}},"402":{"description":"Payment required"}},"x-iteratools-tool-id":"calendar/holidays","x-iteratools-price-usdc":0.001,"x-iteratools-risk":"low","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"parameters":[{"name":"country","in":"query","required":true,"schema":{"type":"string"}},{"name":"year","in":"query","required":false,"schema":{"type":"number"}},{"name":"countryCode","in":"query","required":false,"schema":{"type":"string"}}]}},"/sentiment":{"post":{"summary":"Analyze text sentiment","operationId":"sentiment","tags":["Text"],"responses":{"200":{"description":"Sentiment result","content":{"application/json":{"schema":{"type":"object","properties":{"score":{"type":"number"},"sentiment":{"type":"string","enum":["positive","negative","neutral"]}}}}}},"402":{"description":"Payment required"}},"x-iteratools-tool-id":"sentiment","x-iteratools-price-usdc":0.001,"x-iteratools-risk":"medium","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"text":{"type":"string"}},"required":["text"]}}}},"description":"Analyze sentiment of text (positive/negative/neutral) with AFINN score"}},"/summarize":{"post":{"summary":"Extractive text summarization","operationId":"summarize","tags":["Text"],"responses":{"200":{"description":"Summary result","content":{"application/json":{"schema":{"type":"object","properties":{"summary":{"type":"string"}}}}}},"402":{"description":"Payment required"}},"x-iteratools-tool-id":"summarize","x-iteratools-price-usdc":0.002,"x-iteratools-risk":"medium","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"text":{"type":"string"},"sentences":{"type":"number","default":3}},"required":["text"]}}}},"description":"Extract key sentences from any text or URL using TF-IDF scoring. Returns top-N sentences in original order."}},"/text/chunk":{"post":{"summary":"Split text into chunks for RAG pipelines","operationId":"textChunk","tags":["Text"],"responses":{"200":{"description":"Chunked text","content":{"application/json":{"schema":{"type":"object","properties":{"chunks":{"type":"array"},"count":{"type":"number"}}}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}},"x-iteratools-tool-id":"text/chunk","x-iteratools-price-usdc":0.001,"x-iteratools-risk":"medium","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"text":{"type":"string"},"chunk_size":{"type":"number","default":500},"overlap":{"type":"number","default":50},"strategy":{"type":"string","enum":["token","sentence","paragraph"],"default":"token"}},"required":["text"]}}}},"description":"Split any text into overlapping chunks using token, sentence, or paragraph strategies. Runs entirely locally - zero external API calls. Ideal as preprocessing step before /embeddings in RAG pipelines. Max 500,000 chars."}},"/text/stats":{"post":{"summary":"Text statistics analysis","operationId":"textStats","tags":["Text"],"responses":{"200":{"description":"Text statistics","content":{"application/json":{"schema":{"type":"object","properties":{"words":{"type":"number"},"chars":{"type":"number"},"sentences":{"type":"number"},"reading_time_minutes":{"type":"number"}}}}}},"402":{"description":"Payment required"}},"x-iteratools-tool-id":"text/stats","x-iteratools-price-usdc":0.001,"x-iteratools-risk":"medium","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"text":{"type":"string"}},"required":["text"]}}}},"description":"Analyze any text for statistics: word count, character count, sentence count, paragraph count, reading time, unique words, and average word length. Runs entirely locally - no external API calls."}},"/embeddings":{"post":{"summary":"Generate text embeddings (OpenAI)","operationId":"embeddings","tags":["Text"],"responses":{"200":{"description":"Embeddings array","content":{"application/json":{"schema":{"type":"object","properties":{"embeddings":{"type":"array"},"model":{"type":"string"},"dimensions":{"type":"number"}}}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required"},"503":{"description":"OpenAI unavailable"}},"x-iteratools-tool-id":"embeddings","x-iteratools-price-usdc":0.001,"x-iteratools-risk":"medium","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"text":{},"model":{"type":"string","default":"text-embedding-3-small"}},"required":["text"]}}}},"description":"Generate vector embeddings for one or more text strings using OpenAI text-embedding-3-small (default) or text-embedding-3-large. Returns float arrays ready for semantic search, clustering, or RAG pipelines."}},"/memory/upsert":{"post":{"summary":"Upsert vector memory (RAG store)","operationId":"memoryUpsert","tags":["Memory"],"responses":{"200":{"description":"Upserted successfully","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"}}}}}},"400":{"description":"Missing required fields"},"402":{"description":"Payment required"},"503":{"description":"Embeddings service unavailable"}},"x-iteratools-tool-id":"memory/upsert","x-iteratools-price-usdc":0.003,"x-iteratools-risk":"medium","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"namespace":{"type":"string"},"id":{"type":"string"},"text":{"type":"string"},"metadata":{"type":"object"}},"required":["namespace","id","text"]}}}},"description":"Store or update a text document with vector embedding in a namespace. Uses OpenAI text-embedding-3-small (1536 dims). Namespace is automatically isolated per API key. $0.003 per upsert."}},"/memory/search":{"post":{"summary":"Search vector memory (semantic)","operationId":"memorySearch","tags":["Memory"],"responses":{"200":{"description":"Search results","content":{"application/json":{"schema":{"type":"object","properties":{"results":{"type":"array"},"count":{"type":"number"}}}}}},"400":{"description":"Missing required fields"},"402":{"description":"Payment required"},"503":{"description":"Embeddings service unavailable"}},"x-iteratools-tool-id":"memory/search","x-iteratools-price-usdc":0.002,"x-iteratools-risk":"medium","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"x-iteratools-input-aliases":{"limit":"top_k"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"namespace":{"type":"string"},"query":{"type":"string"},"top_k":{"type":"number","default":5}},"required":["namespace","query"]}}}},"description":"Search stored documents by semantic similarity using cosine similarity on vector embeddings. Returns top_k most relevant results with scores. $0.002 per search."}},"/document/ocr":{"post":{"summary":"AI Document OCR (Mistral)","operationId":"documentOcr","tags":["Document"],"responses":{"200":{"description":"OCR result","content":{"application/json":{"schema":{"type":"object","properties":{"text":{"type":"string"},"pages":{"type":"number"}}}}}},"400":{"description":"Bad request (missing image/pdf or invalid params)"},"402":{"description":"Payment required"},"503":{"description":"No OCR provider available"}},"x-iteratools-tool-id":"document/ocr","x-iteratools-price-usdc":0.015,"x-iteratools-risk":"medium","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"x-iteratools-input-aliases":{"url":"pdf"},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"image":{"type":"string"},"pdf":{"type":"string"},"pages":{"type":"string"}},"anyOf":[{"required":["image"]},{"required":["pdf"]}]}}}},"description":"Extract text, markdown, and tables from images or PDFs using Mistral AI OCR (mistral-ocr-latest). Handles scanned PDFs, forms, invoices, and complex tables. Fallback to Google Vision if Mistral unavailable. $0.015/request."}},"/document/sign/request":{"post":{"summary":"Create document signing envelope","operationId":"documentSignRequest","tags":["Document"],"responses":{"200":{"description":"Envelope created","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"data":{"type":"object","properties":{"envelope_id":{"type":"string"},"provider":{"type":"string"},"status":{"type":"string"},"signers":{"type":"array"},"created_at":{"type":"string"}}}}}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required when available"},"503":{"description":"No signing provider configured (DOCUMENT_SIGN_PROVIDER_UNAVAILABLE)"}},"x-iteratools-tool-id":"document/sign/request","x-iteratools-price-usdc":0.05,"x-iteratools-risk":"high","x-iteratools-availability":"temporarily_disabled","x-iteratools-availability-reason":"No document signing provider is configured","x-iteratools-supports-code-mode":false,"x-iteratools-input-aliases":{"document_url":"pdf_url"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"pdf_url":{"type":"string"},"signers":{"type":"array","minItems":1,"maxItems":10,"items":{"type":"object","properties":{"name":{"type":"string"},"email":{"type":"string"},"role":{"type":"string"}},"required":["name","email"]}},"title":{"type":"string"},"message":{"type":"string"}},"required":["pdf_url","signers"]}}}},"description":"Create a signature request envelope and send to signers via email through a configured DocuSign or Dropbox Sign provider. When neither provider is configured, this route returns 503 before authentication or billing. $0.050/request when available."}},"/document/sign/status":{"get":{"summary":"Check document signing status","operationId":"documentSignStatus","tags":["Document"],"responses":{"200":{"description":"Envelope status","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string"},"completed":{"type":"boolean"}}}}}},"400":{"description":"Missing envelope_id"},"402":{"description":"Payment required when available"},"503":{"description":"No signing provider configured (DOCUMENT_SIGN_PROVIDER_UNAVAILABLE)"}},"x-iteratools-tool-id":"document/sign/status","x-iteratools-price-usdc":0.001,"x-iteratools-risk":"low","x-iteratools-availability":"temporarily_disabled","x-iteratools-availability-reason":"No document signing provider is configured","x-iteratools-supports-code-mode":false,"parameters":[{"name":"envelope_id","in":"query","required":true,"schema":{"type":"string"}}],"description":"Check the status of a signature request envelope through the configured provider. When no provider is configured, this route returns 503 before authentication or billing. $0.001/request when available."}},"/memory/clear":{"delete":{"summary":"Clear memory namespace","operationId":"memoryClear","tags":["Memory"],"responses":{"200":{"description":"Namespace cleared","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"deleted":{"type":"number"}}}}}},"400":{"description":"Missing namespace"},"402":{"description":"Payment required"}},"x-iteratools-tool-id":"memory/clear","x-iteratools-price-usdc":0.001,"x-iteratools-risk":"high","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"parameters":[{"name":"namespace","in":"query","required":true,"schema":{"type":"string"}}],"description":"Delete all stored vectors in a namespace. This action is irreversible. $0.001 per clear."}},"/memory/kv/set":{"post":{"summary":"Set a KV memory entry","operationId":"memoryKvSet","tags":["Memory"],"responses":{"200":{"description":"Stored successfully","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"}}}}}},"400":{"description":"Missing key or value"},"402":{"description":"Payment required"}},"x-iteratools-tool-id":"memory/kv/set","x-iteratools-price-usdc":0.001,"x-iteratools-risk":"medium","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"namespace":{"type":"string"},"key":{"type":"string"},"value":{}},"required":["namespace","key","value"]}}}},"description":"Store a key-value pair in persistent memory, isolated per API key. Value can be any JSON-serializable data. Automatically generates embedding for semantic search. Namespace is optional (default: \"default\"). $0.001 per set."}},"/memory/kv/get":{"get":{"summary":"Get a KV memory entry","operationId":"memoryKvGet","tags":["Memory"],"responses":{"200":{"description":"Key found","content":{"application/json":{"schema":{"type":"object","properties":{"value":{},"found":{"type":"boolean"}}}}}},"400":{"description":"Missing key"},"402":{"description":"Payment required"},"404":{"description":"Key not found"}},"x-iteratools-tool-id":"memory/kv/get","x-iteratools-price-usdc":0.001,"x-iteratools-risk":"low","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"parameters":[{"name":"namespace","in":"query","required":true,"schema":{"type":"string"}},{"name":"key","in":"query","required":true,"schema":{"type":"string"}}],"description":"Retrieve a previously stored key-value pair by key and namespace. Returns 404 if not found. $0.001 per get."}},"/memory/kv/delete":{"delete":{"summary":"Delete a KV memory entry","operationId":"memoryKvDelete","tags":["Memory"],"responses":{"200":{"description":"Deleted","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"}}}}}},"400":{"description":"Missing key"},"402":{"description":"Payment required"}},"x-iteratools-tool-id":"memory/kv/delete","x-iteratools-price-usdc":0.001,"x-iteratools-risk":"high","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"parameters":[{"name":"namespace","in":"query","required":true,"schema":{"type":"string"}},{"name":"key","in":"query","required":true,"schema":{"type":"string"}}],"description":"Delete a specific key from persistent memory. Returns whether the key existed. $0.001 per delete."}},"/memory/kv/search":{"post":{"summary":"Semantic search over KV memory","operationId":"memoryKvSearch","tags":["Memory"],"responses":{"200":{"description":"Search results","content":{"application/json":{"schema":{"type":"object","properties":{"results":{"type":"array"},"count":{"type":"number"}}}}}},"400":{"description":"Missing query"},"402":{"description":"Payment required"}},"x-iteratools-tool-id":"memory/kv/search","x-iteratools-price-usdc":0.002,"x-iteratools-risk":"medium","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"namespace":{"type":"string"},"query":{"type":"string"},"limit":{"type":"number","default":5}},"required":["namespace","query"]}}}},"description":"Search your stored key-value pairs by semantic similarity. Uses OpenAI embeddings + cosine similarity to find the most relevant entries for the query. $0.002 per search."}},"/sheets/read":{"get":{"summary":"Read data from Google Sheets","operationId":"sheetsRead","tags":["Sheets"],"responses":{"200":{"description":"Sheet data","content":{"application/json":{"schema":{"type":"object","properties":{"headers":{"type":"array"},"rows":{"type":"array"},"count":{"type":"number"}}}}}},"400":{"description":"Missing spreadsheet_id"},"402":{"description":"Payment required"},"500":{"description":"API error"}},"x-iteratools-tool-id":"sheets/read","x-iteratools-price-usdc":0.002,"x-iteratools-risk":"low","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"parameters":[{"name":"spreadsheet_id","in":"query","required":true,"schema":{"type":"string"}},{"name":"range","in":"query","required":false,"schema":{"type":"string"}}],"description":"Read rows from a Google Spreadsheet. Returns headers and rows as objects. Supports optional range parameter (e.g. Sheet1!A1:Z100)."}},"/sheets/write":{"post":{"summary":"Write data to Google Sheets","operationId":"sheetsWrite","tags":["Sheets"],"responses":{"200":{"description":"Write result","content":{"application/json":{"schema":{"type":"object","properties":{"updated_rows":{"type":"number"}}}}}},"400":{"description":"Missing required fields"},"402":{"description":"Payment required"}},"x-iteratools-tool-id":"sheets/write","x-iteratools-price-usdc":0.003,"x-iteratools-risk":"high","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"spreadsheet_id":{"type":"string"},"values":{"type":"array"},"range":{"type":"string"},"mode":{"type":"string","enum":["overwrite","append"],"default":"append"}},"required":["spreadsheet_id","values"]}}}},"description":"Write or append rows to an existing Google Spreadsheet. Use mode=overwrite (default) to replace data at range, or mode=append to add rows below existing data."}},"/sheets/create":{"post":{"summary":"Create new Google Spreadsheet","operationId":"sheetsCreate","tags":["Sheets"],"responses":{"200":{"description":"Created spreadsheet","content":{"application/json":{"schema":{"type":"object","properties":{"spreadsheet_id":{"type":"string"},"url":{"type":"string"}}}}}},"402":{"description":"Payment required"}},"x-iteratools-tool-id":"sheets/create","x-iteratools-price-usdc":0.005,"x-iteratools-risk":"high","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"title":{"type":"string"},"headers":{"type":"array"}}}}}},"description":"Create a new Google Spreadsheet with optional title and headers. Returns spreadsheet ID and shareable URL. Sheet is automatically made publicly viewable."}},"/calendar/event":{"post":{"summary":"Create Google Calendar event ($0.002)","operationId":"calendarEvent","tags":["Calendar"],"responses":{"200":{"description":"Event created","content":{"application/json":{"schema":{"type":"object","properties":{"event_id":{"type":"string"},"html_link":{"type":"string"}}}}}},"400":{"description":"Missing required fields or invalid auth"},"401":{"description":"Invalid Google credentials"},"402":{"description":"Payment required"}},"x-iteratools-tool-id":"calendar/event","x-iteratools-price-usdc":0.002,"x-iteratools-risk":"high","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"x-iteratools-input-aliases":{"access_token":"google_oauth_token","summary":"title"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"google_service_account_json":{"type":"string"},"google_oauth_token":{"type":"string"},"calendar_id":{"type":"string"},"title":{"type":"string"},"start":{"type":"string"},"end":{"type":"string"},"duration_minutes":{"type":"number"},"description":{"type":"string"},"attendees":{"type":"array","items":{"type":"string"}},"location":{"type":"string"},"timezone":{"type":"string"}},"required":["title","start"],"anyOf":[{"required":["google_service_account_json"]},{"required":["google_oauth_token"]}]}}}},"description":"Create a new event in Google Calendar. Auth: pass google_service_account_json (base64 service account JSON) OR google_oauth_token (OAuth2 access token). No state stored server-side."}},"/calendar/event/{id}":{"delete":{"summary":"Delete Google Calendar event ($0.002)","operationId":"calendarEventDelete","tags":["Calendar"],"responses":{"200":{"description":"Event deleted","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"}}}}}},"400":{"description":"Missing auth"},"402":{"description":"Payment required"},"404":{"description":"Event not found"}},"x-iteratools-tool-id":"calendar/event/delete","x-iteratools-price-usdc":0.002,"x-iteratools-risk":"high","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"x-iteratools-aliases":[{"method":"DELETE","path":"/calendar/event/delete","deprecated":true},{"method":"DELETE","path":"/calendar/event","deprecated":true}],"parameters":[{"name":"id","in":"path","required":true,"description":"Path value for event_id","schema":{"type":"string"},"x-iteratools-input-name":"event_id"},{"name":"x-iteratools-secret-google-service-account-json","in":"header","required":false,"schema":{"type":"string"},"x-iteratools-input-name":"google_service_account_json"},{"name":"x-iteratools-secret-google-oauth-token","in":"header","required":false,"schema":{"type":"string"},"x-iteratools-input-name":"google_oauth_token"},{"name":"calendar_id","in":"query","required":false,"schema":{"type":"string"}}],"description":"Delete a specific event from Google Calendar by its ID. Auth: google_service_account_json (base64) or google_oauth_token in request body."}},"/calendar/events":{"get":{"summary":"List Google Calendar events ($0.001)","operationId":"calendarEvents","tags":["Calendar"],"responses":{"200":{"description":"Events list","content":{"application/json":{"schema":{"type":"object","properties":{"events":{"type":"array"},"count":{"type":"number"}}}}}},"400":{"description":"Missing required params"},"402":{"description":"Payment required"}},"x-iteratools-tool-id":"calendar/events","x-iteratools-price-usdc":0.001,"x-iteratools-risk":"low","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"x-iteratools-input-aliases":{"access_token":"google_oauth_token","time_min":"start","time_max":"end"},"parameters":[{"name":"x-iteratools-secret-google-service-account-json","in":"header","required":false,"schema":{"type":"string"},"x-iteratools-input-name":"google_service_account_json"},{"name":"x-iteratools-secret-google-oauth-token","in":"header","required":false,"schema":{"type":"string"},"x-iteratools-input-name":"google_oauth_token"},{"name":"calendar_id","in":"query","required":false,"schema":{"type":"string"}},{"name":"start","in":"query","required":false,"schema":{"type":"string"}},{"name":"end","in":"query","required":false,"schema":{"type":"string"}},{"name":"date_from","in":"query","required":false,"schema":{"type":"string"}},{"name":"date_to","in":"query","required":false,"schema":{"type":"string"}},{"name":"max_results","in":"query","required":false,"schema":{"type":"number","default":50}},{"name":"q","in":"query","required":false,"schema":{"type":"string"}}],"description":"List events in a Google Calendar for a time range. Auth via query params: google_service_account_json (base64) or google_oauth_token."}},"/calendar/availability":{"get":{"summary":"List free slots in Google Calendar ($0.001)","operationId":"calendarAvailability","tags":["Calendar"],"responses":{"200":{"description":"busy_slots, free_slots, is_free","content":{"application/json":{"schema":{"type":"object","properties":{"busy":{"type":"array"}}}}}},"400":{"description":"Missing auth"},"402":{"description":"Payment required"}},"x-iteratools-tool-id":"calendar/availability","x-iteratools-price-usdc":0.001,"x-iteratools-risk":"low","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"x-iteratools-input-aliases":{"access_token":"google_oauth_token","time_min":"start","time_max":"end"},"parameters":[{"name":"x-iteratools-secret-google-service-account-json","in":"header","required":false,"schema":{"type":"string"},"x-iteratools-input-name":"google_service_account_json"},{"name":"x-iteratools-secret-google-oauth-token","in":"header","required":false,"schema":{"type":"string"},"x-iteratools-input-name":"google_oauth_token"},{"name":"calendar_id","in":"query","required":false,"schema":{"type":"string"}},{"name":"start","in":"query","required":false,"schema":{"type":"string"}},{"name":"end","in":"query","required":false,"schema":{"type":"string"}},{"name":"date_from","in":"query","required":false,"schema":{"type":"string"}},{"name":"date_to","in":"query","required":false,"schema":{"type":"string"}},{"name":"days","in":"query","required":false,"schema":{"type":"number","default":7}},{"name":"timezone","in":"query","required":false,"schema":{"type":"string"}},{"name":"slot_minutes","in":"query","required":false,"schema":{"type":"number","default":60}}],"description":"Check free/busy for a calendar and return both busy blocks and computed free slots. Auth via query params: google_service_account_json (base64) or google_oauth_token."}},"/calendar/event/delete":{"delete":{"summary":"Delete Google Calendar event - alias ($0.002)","description":"Alias for DELETE /calendar/event/{id} when passing event_id in body. Auth: google_service_account_json (base64) or google_oauth_token.","tags":["Calendar"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["event_id"],"properties":{"google_service_account_json":{"type":"string"},"google_oauth_token":{"type":"string"},"calendar_id":{"type":"string","default":"primary"},"event_id":{"type":"string"}}}}}},"responses":{"200":{"description":"Event deleted"},"400":{"description":"Missing auth or event_id"},"402":{"description":"Payment required"},"404":{"description":"Event not found"}}}},"/markdown/render":{"post":{"summary":"Convert Markdown to HTML","operationId":"markdownRender","tags":["Text"],"responses":{"200":{"description":"HTML result","content":{"application/json":{"schema":{"type":"object","properties":{"html":{"type":"string"}}}}}},"400":{"description":"Missing or invalid markdown field"},"402":{"description":"Payment required"}},"x-iteratools-tool-id":"markdown/render","x-iteratools-price-usdc":0.001,"x-iteratools-risk":"medium","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"markdown":{"type":"string"},"sanitize":{"type":"boolean","default":true}},"required":["markdown"]}}}},"description":"Convert Markdown text to HTML using the marked library. Supports standard CommonMark syntax including headings, bold, italic, lists, links, code blocks, and tables. Runs entirely locally - no external API calls."}},"/github/repo":{"get":{"summary":"Get GitHub repository details","operationId":"githubRepo","tags":["GitHub"],"responses":{"200":{"description":"Repository details: name, description, stars, forks, language, topics, last_commit","content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string"},"description":{"type":"string"},"stars":{"type":"number"},"language":{"type":"string"}}}}}},"401":{"description":"Invalid token"},"402":{"description":"Payment required"},"403":{"description":"Rate limit exceeded"},"404":{"description":"Repository not found"}},"x-iteratools-tool-id":"github/repo","x-iteratools-price-usdc":0.001,"x-iteratools-risk":"low","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"parameters":[{"name":"owner","in":"query","required":true,"schema":{"type":"string"}},{"name":"repo","in":"query","required":true,"schema":{"type":"string"}},{"name":"x-iteratools-secret-token","in":"header","required":false,"schema":{"type":"string"},"x-iteratools-input-name":"token"}],"description":"Fetch details for a GitHub repository including stars, forks, language, topics, and last commit. Uses system token if no user token provided."}},"/github/search":{"get":{"summary":"Search GitHub repositories","operationId":"githubSearch","tags":["GitHub"],"responses":{"200":{"description":"Search results: total_count, returned, items with name, url, stars, description","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array"},"total_count":{"type":"number"}}}}}},"402":{"description":"Payment required"},"403":{"description":"Rate limit exceeded"}},"x-iteratools-tool-id":"github/search","x-iteratools-price-usdc":0.001,"x-iteratools-risk":"low","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string"}},{"name":"sort","in":"query","required":false,"schema":{"type":"string"}},{"name":"per_page","in":"query","required":false,"schema":{"type":"number","default":10}},{"name":"x-iteratools-secret-token","in":"header","required":false,"schema":{"type":"string"},"x-iteratools-input-name":"token"}],"description":"Search GitHub repositories using the GitHub Search API. Supports sorting by stars, forks, or updated date."}},"/github/issue":{"post":{"summary":"Create a GitHub issue","operationId":"githubIssue","tags":["GitHub"],"responses":{"200":{"description":"Created issue: issue_number, url, title, state","content":{"application/json":{"schema":{"type":"object","properties":{"issue_number":{"type":"number"},"url":{"type":"string"}}}}}},"400":{"description":"Missing required fields"},"401":{"description":"Invalid token"},"402":{"description":"Payment required"},"403":{"description":"Forbidden (check token permissions)"},"404":{"description":"Repository not found"}},"x-iteratools-tool-id":"github/issue","x-iteratools-price-usdc":0.002,"x-iteratools-risk":"high","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"owner":{"type":"string"},"repo":{"type":"string"},"title":{"type":"string"},"body":{"type":"string"},"token":{"type":"string"},"labels":{"type":"array","items":{"type":"string"}}},"required":["owner","repo","title","token"]}}}},"description":"Create a new issue on a GitHub repository. Requires a GitHub PAT with repo scope."}},"/document/convert":{"post":{"summary":"Convert documents between formats","operationId":"documentConvert","tags":["Document"],"responses":{"200":{"description":"Converted document URL","content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string"},"format":{"type":"string"},"size_bytes":{"type":"number"}}}}}},"402":{"description":"Payment required"}},"x-iteratools-tool-id":"document/convert","x-iteratools-price-usdc":0.003,"x-iteratools-risk":"medium","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string"},"from_format":{"type":"string"},"to_format":{"type":"string"},"content":{"type":"string"}},"required":["url","from_format","to_format"]}}}}}},"/github/file/read":{"post":{"summary":"Read file content from GitHub","operationId":"githubFileRead","tags":["GitHub"],"responses":{"200":{"description":"File content: path, sha, size, content (decoded text), url","content":{"application/json":{"schema":{"type":"object","properties":{"content":{"type":"string"},"sha":{"type":"string"},"size":{"type":"number"}}}}}},"400":{"description":"Missing required fields or path is a directory"},"401":{"description":"Invalid token"},"402":{"description":"Payment required"},"403":{"description":"Rate limit exceeded"},"404":{"description":"File not found"}},"x-iteratools-tool-id":"github/file/read","x-iteratools-price-usdc":0.001,"x-iteratools-risk":"medium","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"owner":{"type":"string"},"repo":{"type":"string"},"path":{"type":"string"},"ref":{"type":"string"},"token":{"type":"string"}},"required":["owner","repo","path"]}}}},"description":"Read the decoded text content of a file in a GitHub repository. Uses system token for public repos if no user token provided."}},"/hash":{"post":{"summary":"Cryptographic hash generation","operationId":"hash","tags":["Utilities"],"responses":{"200":{"description":"Hash result: hash, algorithm, input_length, hex, base64","content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string"},"algorithm":{"type":"string"},"hex":{"type":"string"},"base64":{"type":"string"}}}}}},"400":{"description":"Missing text or invalid algorithm"},"402":{"description":"Payment required"}},"x-iteratools-tool-id":"hash","x-iteratools-price-usdc":0.001,"x-iteratools-risk":"medium","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"text":{"type":"string"},"algorithm":{"type":"string","default":"sha256","enum":["md5","sha1","sha256","sha384","sha512"]}},"required":["text"]}}}},"description":"Generate a cryptographic hash of any text using MD5, SHA-1, SHA-256, SHA-384, or SHA-512. Returns both hex and base64 encodings. Uses Node.js native crypto - no external API, zero latency."}},"/time/convert":{"post":{"summary":"Timezone conversion","operationId":"timeConvert","tags":["Utilities"],"responses":{"200":{"description":"Conversion result with input, output (datetime, utc_offset, display), and utc fields","content":{"application/json":{"schema":{"type":"object","properties":{"input":{"type":"object"},"output":{"type":"object"},"utc":{"type":"string"}}}}}},"400":{"description":"Missing or invalid parameters"},"402":{"description":"Payment required"}},"x-iteratools-tool-id":"time/convert","x-iteratools-price-usdc":0.001,"x-iteratools-risk":"medium","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"datetime":{"type":"string"},"from_tz":{"type":"string"},"to_tz":{"type":"string"},"format":{"type":"string"}},"required":["datetime","from_tz","to_tz"]}}}},"description":"Convert a datetime from one timezone to another using IANA timezone names. No external API - uses native Intl. Supports ISO 8601 input and ISO/unix/human output formats."}},"/time/timezones":{"get":{"summary":"List IANA timezones","operationId":"timeTimezones","tags":["Utilities"],"responses":{"200":{"description":"Array of IANA timezone strings and count","content":{"application/json":{"schema":{"type":"object","properties":{"timezones":{"type":"array"},"count":{"type":"number"}}}}}},"402":{"description":"Payment required"}},"x-iteratools-tool-id":"time/timezones","x-iteratools-price-usdc":0.001,"x-iteratools-risk":"low","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"description":"Return a curated list of valid IANA timezone names usable with /time/convert."}},"/text/regex":{"post":{"summary":"Test and extract with regex patterns","operationId":"textRegex","tags":["Text"],"responses":{"200":{"description":"Regex result","content":{"application/json":{"schema":{"type":"object","properties":{"result":{},"matched":{"type":"boolean"}}}}}},"400":{"description":"Invalid pattern or input"},"402":{"description":"Payment required"}},"x-iteratools-tool-id":"text/regex","x-iteratools-price-usdc":0.001,"x-iteratools-risk":"medium","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"text":{"type":"string"},"pattern":{"type":"string"},"mode":{"type":"string","enum":["test","match","matchAll","replace"]},"flags":{"type":"string"},"replacement":{"type":"string"}},"required":["text","pattern"]}}}},"description":"Test regex patterns, find matches, extract groups, or perform replacements. Supports named capture groups, all JS regex flags. Runs entirely locally - zero external API calls."}},"/text/detect-language":{"post":{"summary":"Detect text language","operationId":"textDetectLanguage","tags":["Text"],"responses":{"200":{"description":"Language detection result","content":{"application/json":{"schema":{"type":"object","properties":{"language":{"type":"string"},"confidence":{"type":"number"}}}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}},"x-iteratools-tool-id":"text/detect-language","x-iteratools-price-usdc":0.001,"x-iteratools-risk":"medium","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"text":{"type":"string"},"count":{"type":"number"}},"required":["text"]}}}},"description":"Detect the language of input text using trigram analysis. Returns ISO 639-1/3 codes, language name, confidence score, and top candidates. Runs locally - no external API calls. Max 50,000 chars."}},"/http/request":{"post":{"summary":"Generic HTTP request proxy ($0.003)","operationId":"httpRequest","tags":["Web"],"responses":{"200":{"description":"HTTP response","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"number"},"body":{},"headers":{"type":"object"}}}}}},"400":{"description":"Invalid URL or method"},"402":{"description":"Payment required"},"403":{"description":"SSRF blocked (private IP)"},"408":{"description":"Request timeout"},"413":{"description":"Response too large (\u003e5MB)"}},"x-iteratools-tool-id":"http/request","x-iteratools-price-usdc":0.003,"x-iteratools-risk":"high","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string"},"method":{"type":"string","default":"GET"},"headers":{"type":"object"},"body":{}},"required":["url"]}}}},"description":"Make any HTTP request through IteraTools. Useful for AI agents that need to call external APIs without local configuration. SSRF protection blocks private/internal IPs. Max timeout 30s, max response 5MB."}},"/sql/query":{"post":{"summary":"Execute SQL query on remote database ($0.003)","operationId":"sqlQuery","tags":["Database"],"responses":{"200":{"description":"Query results","content":{"application/json":{"schema":{"type":"object","properties":{"rows":{"type":"array"},"count":{"type":"number"}}}}}},"400":{"description":"Missing or invalid parameters"},"402":{"description":"Payment required"},"403":{"description":"Destructive query blocked (read_only=true)"},"500":{"description":"Database error"}},"x-iteratools-tool-id":"sql/query","x-iteratools-price-usdc":0.003,"x-iteratools-risk":"high","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"connection_string":{"type":"string"},"query":{"type":"string"},"read_only":{"type":"boolean","default":true},"limit":{"type":"number"}},"required":["connection_string","query"]}}}},"description":"Execute a SQL query against a user-provided database. Supports PostgreSQL (pg://), MySQL (mysql://), and SQLite (sqlite:path). When read_only=true (default), destructive queries (INSERT/UPDATE/DELETE/DROP/CREATE/ALTER/TRUNCATE) are blocked. 30s timeout on all queries. Connection strings are never logged."}},"/text/diff":{"post":{"summary":"Compare two texts and get structured diff","operationId":"textDiff","tags":["Text"],"responses":{"200":{"description":"Diff result with stats","content":{"application/json":{"schema":{"type":"object","properties":{"diff":{"type":"string"},"additions":{"type":"number"},"deletions":{"type":"number"}}}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}},"x-iteratools-tool-id":"text/diff","x-iteratools-price-usdc":0.001,"x-iteratools-risk":"medium","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"x-iteratools-input-aliases":{"text_a":"text1","text_b":"text2"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"text1":{"type":"string"},"text2":{"type":"string"},"format":{"type":"string","enum":["unified","json","inline"],"default":"unified"}},"required":["text1","text2"]}}}},"description":"Compare two text inputs line-by-line or word-by-word and return a structured diff. Supports unified patch format, JSON array of changes, or inline word-level diff. Runs entirely locally - no external API calls. $0.001/request."}},"/barcode/generate":{"post":{"summary":"Generate barcode","operationId":"barcodeGenerate","tags":["Utils"],"responses":{"200":{"description":"Barcode PNG as base64","content":{"application/json":{"schema":{"type":"object","properties":{"base64":{"type":"string"}}}}}},"402":{"description":"Payment required"}},"x-iteratools-tool-id":"barcode/generate","x-iteratools-price-usdc":0.001,"x-iteratools-risk":"medium","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"x-iteratools-input-aliases":{"text":"data","format":"type"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"string"},"type":{"type":"string","enum":["code128","code39","ean13","ean8","upca","itf14","datamatrix"],"default":"code128"},"width":{"type":"number","default":200},"height":{"type":"number","default":80},"includetext":{"type":"boolean","default":true}},"required":["data"]}}}}}},"/sms/send":{"post":{"summary":"SMS sending (temporarily suspended)","operationId":"smsSend","tags":["Messaging"],"responses":{"200":{"description":"SMS queued, or provider readiness when enabled","content":{"application/json":{"schema":{"type":"object","properties":{"sid":{"type":"string"},"status":{"type":"string"},"segments":{"type":"number"}}}}}},"400":{"description":"Invalid phone number or missing fields"},"402":{"description":"Payment required when enabled"},"503":{"description":"SMS temporarily suspended (SMS_SUSPENDED), or provider unavailable when enabled"}},"x-iteratools-tool-id":"sms/send","x-iteratools-price-usdc":0.018,"x-iteratools-risk":"high","x-iteratools-availability":"temporarily_disabled","x-iteratools-availability-reason":"SMS sending is temporarily suspended","x-iteratools-supports-code-mode":false,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string"},"message":{"type":"string"},"validate_only":{"type":"boolean","default":false}}}}}},"description":"This contract is temporarily suspended and returns HTTP 503 with code SMS_SUSPENDED before authentication, billing, validation, or provider access. Re-enabling requires explicit server configuration."}},"/json/validate":{"post":{"summary":"Validate, format, or analyze JSON","operationId":"jsonValidate","tags":["Utilities"],"responses":{"200":{"description":"Result with valid flag and data (formatted/stats/value depending on mode)","content":{"application/json":{"schema":{"type":"object","properties":{"valid":{"type":"boolean"},"formatted":{"type":"string"},"error":{"type":"string"}}}}}},"400":{"description":"Missing json field or too large"},"402":{"description":"Payment required"}},"x-iteratools-tool-id":"json/validate","x-iteratools-price-usdc":0.001,"x-iteratools-risk":"medium","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"x-iteratools-input-aliases":{"input":"json"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"json":{"type":"string"},"mode":{"type":"string","enum":["validate","format","minify","stats","get"],"default":"validate"},"indent":{"oneOf":[{"type":"number"},{"type":"string","enum":["tab"]}],"default":2},"path":{"type":"string"}},"required":["json"]}}}},"description":"Validate JSON syntax, pretty-print with configurable indent, minify, get stats (depth, key count, types), or extract a value by dot-bracket path. Runs entirely locally - instant, zero external API calls."}},"/rss/fetch":{"post":{"summary":"Fetch and parse RSS/Atom feed","operationId":"rssFetch","tags":["Utilities"],"responses":{"200":{"description":"Feed metadata and items array with title, url, published, summary, author, categories","content":{"application/json":{"schema":{"type":"object","properties":{"feed":{"type":"object"},"items":{"type":"array"},"count":{"type":"number"}}}}}},"400":{"description":"Missing url or invalid feed"},"402":{"description":"Payment required"},"504":{"description":"Feed fetch timeout"}},"x-iteratools-tool-id":"rss/fetch","x-iteratools-price-usdc":0.002,"x-iteratools-risk":"medium","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string"},"limit":{"type":"number","default":20}},"required":["url"]}}}},"description":"Fetch any RSS 2.0 or Atom feed URL and return normalized structured JSON with feed metadata and items. Perfect for AI agents monitoring news, blogs, podcasts, or any content feed."}},"/whatsapp/research/start":{"post":{"summary":"Start WhatsApp market research","operationId":"whatsappResearchStart","tags":["WhatsApp"],"responses":{"200":{"description":"Research started","content":{"application/json":{"schema":{"type":"object","properties":{"research_id":{"type":"string"},"total_contacts":{"type":"number"}}}}}},"402":{"description":"Payment required"}},"x-iteratools-tool-id":"whatsapp/research/start","x-iteratools-price-usdc":0.07,"x-iteratools-risk":"high","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"numbers":{"type":"array","items":{"type":"string"}},"questions":{"type":"array","items":{"type":"string"}},"callback_url":{"type":"string"},"title":{"type":"string"}},"required":["numbers","questions"]}}}}}},"/whatsapp/research/{id}":{"get":{"summary":"Get WhatsApp research status by ID","operationId":"whatsappResearchStatus","tags":["WhatsApp"],"responses":{"200":{"description":"Research status and contacts","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string"},"responded":{"type":"number"},"total":{"type":"number"}}}}}},"402":{"description":"Payment required"},"404":{"description":"Not found"}},"x-iteratools-tool-id":"whatsapp/research/status","x-iteratools-price-usdc":0.001,"x-iteratools-risk":"low","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"parameters":[{"name":"id","in":"path","required":true,"description":"Path value for research_id","schema":{"type":"string"},"x-iteratools-input-name":"research_id"}],"description":"Use as GET /whatsapp/research/:id - returns total, responded, pending, contacts list."}},"/whatsapp/research/{id}/answer":{"post":{"summary":"Record contact answer and advance questionnaire","operationId":"whatsappResearchAnswer","tags":["WhatsApp"],"responses":{"200":{"description":"Answer recorded, next question sent","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"}}}}}},"402":{"description":"Payment required"},"404":{"description":"Not found"}},"x-iteratools-tool-id":"whatsapp/research/answer","x-iteratools-price-usdc":0.001,"x-iteratools-risk":"high","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"parameters":[{"name":"id","in":"path","required":true,"description":"Path value for research_id","schema":{"type":"string"},"x-iteratools-input-name":"research_id"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string"},"answer":{"type":"string"}},"required":["number","answer"]}}}},"description":"Use as POST /whatsapp/research/:id/answer - records answer and sends next question automatically."}},"/whatsapp/research/{id}/report":{"get":{"summary":"Get WhatsApp research structured report","operationId":"whatsappResearchReport","tags":["WhatsApp"],"responses":{"200":{"description":"Structured research report with answers","content":{"application/json":{"schema":{"type":"object","properties":{"summary":{"type":"object"},"answers":{"type":"array"}}}}}},"402":{"description":"Payment required"},"404":{"description":"Not found"}},"x-iteratools-tool-id":"whatsapp/research/report","x-iteratools-price-usdc":0.001,"x-iteratools-risk":"low","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"parameters":[{"name":"id","in":"path","required":true,"description":"Path value for research_id","schema":{"type":"string"},"x-iteratools-input-name":"research_id"}],"description":"Use as GET /whatsapp/research/:id/report - returns all Q\u0026A pairs per contact."}},"/whatsapp/research/agent":{"post":{"summary":"Agentic WhatsApp market research (natural language task)","operationId":"whatsappResearchAgent","tags":["WhatsApp"],"responses":{"200":{"description":"Agent research started","content":{"application/json":{"schema":{"type":"object","properties":{"research_id":{"type":"string"},"contacts_found":{"type":"number"}}}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required"}},"x-iteratools-tool-id":"whatsapp/research/agent","x-iteratools-price-usdc":0.05,"x-iteratools-risk":"high","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"task":{"type":"string"},"max_contacts":{"type":"number","default":10},"callback_url":{"type":"string"}},"required":["task"]}}}},"description":"Pass a natural language task → discovers contacts via Google Maps, extracts questions via LLM (GPT-4o-mini), runs full WhatsApp survey automatically. Returns research_id immediately, runs async. $0.050/contact, min $0.50/job."}},"/phone/validate":{"post":{"summary":"Validate and format phone number","operationId":"phoneValidate","tags":["Utils"],"responses":{"200":{"description":"Validation result with valid, possible, number_type, country, international, national, e164, uri","content":{"application/json":{"schema":{"type":"object","properties":{"valid":{"type":"boolean"},"e164":{"type":"string"},"country":{"type":"string"},"type":{"type":"string"}}}}}},"400":{"description":"Missing phone"},"402":{"description":"Payment required"}},"x-iteratools-tool-id":"phone/validate","x-iteratools-price-usdc":0.001,"x-iteratools-risk":"medium","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"phone":{"type":"string"},"country":{"type":"string"}},"required":["phone"]}}}},"description":"Validate any phone number worldwide and return validity, type (mobile/fixed), country, and formatted E.164/international/national forms. Uses libphonenumber-js - no external API, zero latency."}},"/maps/reverse":{"post":{"summary":"Reverse geocode (lat/lon → address, OSM Nominatim)","operationId":"mapsReverse","tags":["Maps"],"responses":{"200":{"description":"Address data: display_name, lat, lon, address object, osm_id, osm_type","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"object"},"display_name":{"type":"string"}}}}}},"400":{"description":"Invalid or missing coordinates"},"402":{"description":"Payment required"},"404":{"description":"No address found for coordinates"}},"x-iteratools-tool-id":"maps/reverse","x-iteratools-price-usdc":0.001,"x-iteratools-risk":"medium","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"lat":{"type":"number"},"lon":{"type":"number"},"lng":{"type":"number"}},"required":["lat","lon"]}}}},"description":"Convert lat/lon coordinates to a human-readable address using OpenStreetMap Nominatim. Respects 1 req/s courtesy limit. $0.001/request."}},"/maps/places/nearby":{"post":{"summary":"Find nearby places (Google Places API)","operationId":"mapsPlacesNearby","tags":["Maps"],"responses":{"200":{"description":"Places list with name, place_id, lat, lon, distance_m, address, rating, open_now","content":{"application/json":{"schema":{"type":"object","properties":{"places":{"type":"array"},"count":{"type":"number"}}}}}},"400":{"description":"Missing or invalid coordinates"},"402":{"description":"Payment required"},"503":{"description":"Google Places API not configured"}},"x-iteratools-tool-id":"maps/places/nearby","x-iteratools-price-usdc":0.003,"x-iteratools-risk":"medium","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"lat":{"type":"number"},"lon":{"type":"number"},"type":{"type":"string"},"radius":{"type":"number","default":1000},"lng":{"type":"number"},"keyword":{"type":"string"},"limit":{"type":"number","default":20}},"required":["lat","lon"]}}}},"description":"Search for places near a lat/lon using Google Places Nearby Search API. Requires GOOGLE_MAPS_KEY. Returns name, rating, opening hours, and more. $0.003/request."}},"/maps/distance":{"post":{"summary":"Calculate distance between two points (Haversine)","operationId":"mapsDistance","tags":["Maps"],"responses":{"200":{"description":"Distance result: distance_m, distance_km, distance_mi, bearing_deg, compass (N/NE/E/SE/S/SW/W/NW)","content":{"application/json":{"schema":{"type":"object","properties":{"meters":{"type":"number"},"km":{"type":"number"},"miles":{"type":"number"},"bearing":{"type":"number"}}}}}},"400":{"description":"Missing or invalid coordinates"},"402":{"description":"Payment required"}},"x-iteratools-tool-id":"maps/distance","x-iteratools-price-usdc":0.001,"x-iteratools-risk":"medium","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"from":{"type":"object","properties":{"lat":{"type":"number"},"lon":{"type":"number"}}},"to":{"type":"object","properties":{"lat":{"type":"number"},"lon":{"type":"number"}}},"from_lat":{"type":"number"},"from_lon":{"type":"number"},"from_lng":{"type":"number"},"to_lat":{"type":"number"},"to_lon":{"type":"number"},"to_lng":{"type":"number"}},"required":["from","to"]}}}},"description":"Calculate the straight-line (great-circle) distance between two lat/lon coordinates using the Haversine formula. No external API required. Returns distance in meters, km, miles, and compass bearing. $0.001/request."}},"/maps/geocode":{"get":{"summary":"Geocode address to coordinates (OSM Nominatim)","operationId":"mapsGeocode","tags":["Maps"],"responses":{"200":{"description":"Geocoding results with lat, lng, display_name, address","content":{"application/json":{"schema":{"type":"object","properties":{"lat":{"type":"number"},"lon":{"type":"number"},"display_name":{"type":"string"}}}}}},"400":{"description":"Missing q param"},"402":{"description":"Payment required"}},"x-iteratools-tool-id":"maps/geocode","x-iteratools-price-usdc":0.002,"x-iteratools-risk":"low","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"x-iteratools-input-aliases":{"address":"q"},"parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string"}},{"name":"country","in":"query","required":false,"schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"schema":{"type":"number","default":5,"maximum":20}}],"description":"Convert an address or place name to lat/lng coordinates using OpenStreetMap Nominatim. Returns up to 20 results with address details. $0.002/request."}},"/maps/places":{"get":{"summary":"Find nearby places (OSM Overpass)","operationId":"mapsPlaces","tags":["Maps"],"responses":{"200":{"description":"Places with name, lat, lng, distance_m, address, phone, website, opening_hours","content":{"application/json":{"schema":{"type":"object","properties":{"places":{"type":"array"},"count":{"type":"number"}}}}}},"400":{"description":"Missing params"},"402":{"description":"Payment required"}},"x-iteratools-tool-id":"maps/places","x-iteratools-price-usdc":0.003,"x-iteratools-risk":"low","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"x-iteratools-input-aliases":{"lon":"lng"},"parameters":[{"name":"lat","in":"query","required":true,"schema":{"type":"number"}},{"name":"lng","in":"query","required":true,"schema":{"type":"number"}},{"name":"type","in":"query","required":true,"schema":{"type":"string"}},{"name":"radius","in":"query","required":false,"schema":{"type":"number","default":500}},{"name":"limit","in":"query","required":false,"schema":{"type":"number","default":10,"maximum":50}}],"description":"Search for places/businesses near a lat/lng coordinate using OpenStreetMap Overpass API. Supports: restaurant, cafe, hospital, hotel, pharmacy, school, bank, atm, parking, supermarket, bar, pub, gym, park, museum, gas_station, bus_stop. $0.003/request."}},"/maps/directions":{"get":{"summary":"Get directions/route (OSRM)","operationId":"mapsDirections","tags":["Maps"],"responses":{"200":{"description":"Route with distance_km, duration_min, steps, GeoJSON geometry","content":{"application/json":{"schema":{"type":"object","properties":{"distance_km":{"type":"number"},"duration_minutes":{"type":"number"},"steps":{"type":"array"}}}}}},"400":{"description":"Missing params or no route"},"402":{"description":"Payment required"}},"x-iteratools-tool-id":"maps/directions","x-iteratools-price-usdc":0.002,"x-iteratools-risk":"low","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"parameters":[{"name":"from_lat","in":"query","required":true,"schema":{"type":"number"}},{"name":"from_lng","in":"query","required":true,"schema":{"type":"number"}},{"name":"to_lat","in":"query","required":true,"schema":{"type":"number"}},{"name":"to_lng","in":"query","required":true,"schema":{"type":"number"}},{"name":"mode","in":"query","required":false,"schema":{"type":"string","enum":["driving","walking","cycling"],"default":"driving"}}],"description":"Get driving, walking, or cycling directions between two coordinates using OSRM. Returns distance, duration, turn-by-turn steps, and GeoJSON geometry. $0.002/request."}},"/slack/send":{"post":{"summary":"Send Slack message","operationId":"slackSend","tags":["Messaging"],"responses":{"200":{"description":"{ ok: true, method: \"webhook\"|\"bot_token\", ts?, channel? }","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"}}}}}},"400":{"description":"Missing required fields"},"402":{"description":"Payment required"}},"x-iteratools-tool-id":"slack/send","x-iteratools-price-usdc":0.001,"x-iteratools-risk":"high","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"x-iteratools-input-aliases":{"webhook_url":"slack_webhook_url","token":"slack_token"},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"slack_webhook_url":{"type":"string"},"slack_token":{"type":"string"},"channel":{"type":"string"},"text":{"type":"string"},"blocks":{"type":"array","items":{"type":"object"}},"username":{"type":"string"},"icon_emoji":{"type":"string"}},"anyOf":[{"required":["slack_webhook_url"]},{"required":["slack_token","channel"]}],"allOf":[{"anyOf":[{"required":["text"]},{"required":["blocks"]}]}]}}}},"description":"Send a message to Slack via Incoming Webhook URL (simple) or Bot Token (channel required). Supports plain text and Block Kit blocks. With webhook: $0.001. With bot token: $0.001."}},"/slack/messages":{"get":{"summary":"Read Slack channel messages","operationId":"slackMessages","tags":["Messaging"],"responses":{"200":{"description":"{ ok, channel, count, messages[] with ts/text/user/type }","content":{"application/json":{"schema":{"type":"object","properties":{"messages":{"type":"array"},"count":{"type":"number"}}}}}},"400":{"description":"Missing channel or slack_token"},"402":{"description":"Payment required"}},"x-iteratools-tool-id":"slack/messages","x-iteratools-price-usdc":0.002,"x-iteratools-risk":"low","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"x-iteratools-input-aliases":{"token":"slack_token"},"parameters":[{"name":"x-iteratools-secret-slack-token","in":"header","required":true,"schema":{"type":"string"},"x-iteratools-input-name":"slack_token"},{"name":"channel","in":"query","required":true,"schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"schema":{"type":"number","default":20,"maximum":100}}],"description":"Fetch latest messages from a Slack channel using a Bot Token with channels:history or groups:history scope."}},"/cron/schedule":{"post":{"summary":"Schedule a webhook callback","operationId":"cronSchedule","tags":["Utils"],"responses":{"200":{"description":"Job scheduled: { ok, data: { job_id, url, run_at, status } }","content":{"application/json":{"schema":{"type":"object","properties":{"job_id":{"type":"string"},"fire_at":{"type":"string"}}}}}},"400":{"description":"Invalid URL or run_at"},"402":{"description":"Payment required"},"403":{"description":"SSRF blocked"}},"x-iteratools-tool-id":"cron/schedule","x-iteratools-price-usdc":0.002,"x-iteratools-risk":"high","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string"},"method":{"type":"string","default":"POST"},"body":{"type":"object"},"fire_at":{"type":"string"}},"required":["url","fire_at"]}}}},"description":"Schedule an HTTP callback (POST/GET) to be fired at a future time. Perfect for AI agents that need delayed actions or reminders. $0.002/job."}},"/cron/job/{id}":{"get":{"summary":"Get scheduled webhook job status","operationId":"cronJobStatus","tags":["Utils"],"responses":{"200":{"description":"Job status: { ok, data: { job_id, url, run_at, status, attempts, last_attempt_at, last_status_code } }","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string"},"fire_at":{"type":"string"},"fired_at":{"type":"string"}}}}}},"402":{"description":"Payment required"},"404":{"description":"Job not found"}},"x-iteratools-tool-id":"cron/job/status","x-iteratools-price-usdc":0.001,"x-iteratools-risk":"low","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"parameters":[{"name":"id","in":"path","required":true,"description":"Path value for job_id","schema":{"type":"string"},"x-iteratools-input-name":"job_id"}]}},"/cron/job/{id}/cancel":{"delete":{"summary":"Cancel scheduled webhook job","operationId":"cronJobCancel","tags":["Utils"],"responses":{"200":{"description":"Job cancelled or already fired","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"}}}}}},"402":{"description":"Payment required"},"404":{"description":"Job not found"}},"x-iteratools-tool-id":"cron/job/cancel","x-iteratools-price-usdc":0.001,"x-iteratools-risk":"high","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"parameters":[{"name":"id","in":"path","required":true,"description":"Path value for job_id","schema":{"type":"string"},"x-iteratools-input-name":"job_id"}]}},"/social/tweet":{"post":{"summary":"Post tweet on X/Twitter","operationId":"socialTweet","tags":["Social Media"],"responses":{"200":{"description":"{ ok, tweet_id, text, url, media_id }","content":{"application/json":{"schema":{"type":"object","properties":{"tweet_id":{"type":"string"},"url":{"type":"string"}}}}}},"400":{"description":"Missing required fields"},"402":{"description":"Payment required"}},"x-iteratools-tool-id":"social/tweet","x-iteratools-price-usdc":0.003,"x-iteratools-risk":"high","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"x-iteratools-input-aliases":{"api_key":"twitter_api_key","api_secret":"twitter_api_secret","access_token":"twitter_access_token","access_token_secret":"twitter_access_secret"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"text":{"type":"string"},"media_url":{"type":"string"},"twitter_api_key":{"type":"string"},"twitter_api_secret":{"type":"string"},"twitter_access_token":{"type":"string"},"twitter_access_secret":{"type":"string"}},"required":["text","twitter_api_key","twitter_api_secret","twitter_access_token","twitter_access_secret"]}}}},"description":"Post a tweet using your own Twitter API credentials (OAuth 1.0a). Requires Twitter Developer account with Basic plan ($100/mo). Optional media_url for image/GIF attachment. $0.003/tweet."}},"/social/linkedin":{"post":{"summary":"Post on LinkedIn","operationId":"socialLinkedin","tags":["Social Media"],"responses":{"200":{"description":"{ ok, post_id, text, title, url, author_urn }","content":{"application/json":{"schema":{"type":"object","properties":{"post_id":{"type":"string"}}}}}},"400":{"description":"Missing required fields"},"402":{"description":"Payment required"}},"x-iteratools-tool-id":"social/linkedin","x-iteratools-price-usdc":0.004,"x-iteratools-risk":"high","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"x-iteratools-input-aliases":{"access_token":"linkedin_access_token"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"text":{"type":"string"},"title":{"type":"string"},"url":{"type":"string"},"linkedin_access_token":{"type":"string"}},"required":["text","linkedin_access_token"]}}}},"description":"Post to LinkedIn using your own OAuth2 access token (w_member_social scope). Optional title and URL for article sharing. $0.004/post."}},"/slack/channel/create":{"post":{"summary":"Create Slack channel","operationId":"slackChannelCreate","tags":["Messaging"],"responses":{"200":{"description":"{ ok, channel_id, name, is_private, created }","content":{"application/json":{"schema":{"type":"object","properties":{"channel_id":{"type":"string"},"name":{"type":"string"}}}}}},"400":{"description":"Missing name or name_taken conflict"},"402":{"description":"Payment required"}},"x-iteratools-tool-id":"slack/channel/create","x-iteratools-price-usdc":0.002,"x-iteratools-risk":"high","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"x-iteratools-input-aliases":{"token":"slack_token"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"slack_token":{"type":"string"},"name":{"type":"string"},"is_private":{"type":"boolean","default":false}},"required":["slack_token","name"]}}}},"description":"Create a public or private Slack channel using a Bot Token with channels:manage scope (admin). Channel name is auto-sanitized to lowercase alphanumeric + hyphens."}},"/presentation/generate":{"post":{"summary":"Generate PPTX presentation from JSON","operationId":"presentationGenerate","tags":["Documents"],"responses":{"200":{"description":"Base64 encoded PPTX file","content":{"application/json":{"schema":{"type":"object","properties":{"base64":{"type":"string"},"slides_count":{"type":"number"}}}}}},"400":{"description":"Invalid input"},"402":{"description":"Payment required"},"500":{"description":"Generation failed"}},"x-iteratools-tool-id":"presentation/generate","x-iteratools-price-usdc":0.005,"x-iteratools-risk":"medium","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"title":{"type":"string"},"slides":{"type":"array"},"theme":{"type":"string","default":"minimal"}},"required":["title","slides"]}}}}}},"/ai/chat":{"post":{"summary":"Chat with an LLM (GPT-4o-mini, Claude/Fable, Gemini, Pink)","operationId":"aiChat","tags":["AI"],"responses":{"200":{"description":"Chat response","content":{"application/json":{"schema":{"type":"object","properties":{"response":{"type":"string"},"model":{"type":"string"},"provider":{"type":"string"},"tokens":{"type":"object"}}}}}},"402":{"description":"Payment required"}},"x-iteratools-tool-id":"ai/chat","x-iteratools-price-usdc":0.005,"x-iteratools-risk":"medium","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"},"model":{"type":"string"},"system":{"type":"string"},"max_tokens":{"type":"number"},"temperature":{"type":"number"}},"required":["message"]}}}}}},"/finance/quote":{"get":{"summary":"Stock/ETF/Crypto quote (Yahoo Finance)","operationId":"financeQuote","tags":["Finance"],"responses":{"200":{"description":"Quote data: symbol, name, price, currency, change, change_pct, open, high, low, prev_close, volume, market_state, exchange, type, timestamp. With details=true: also market_cap, pe_ratio, eps, dividend_yield, week_52_high/low, avg_volume_30d, beta.","content":{"application/json":{"schema":{"type":"object","properties":{"symbol":{"type":"string"},"price":{"type":"number"},"change_pct":{"type":"number"},"volume":{"type":"number"}}}}}},"400":{"description":"Missing symbol or too many symbols (max 10)"},"402":{"description":"Payment required"},"404":{"description":"Symbol not found or lookup failed"}},"x-iteratools-tool-id":"finance/quote","x-iteratools-price-usdc":0.001,"x-iteratools-risk":"low","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"parameters":[{"name":"symbol","in":"query","required":true,"schema":{"type":"string"}},{"name":"fundamentals","in":"query","required":false,"schema":{"type":"boolean","default":false}},{"name":"details","in":"query","required":false,"schema":{"type":"boolean","default":false}}],"description":"Get real-time or delayed stock quote for one or more symbols (max 10). Supports stocks, ETFs, indices, and crypto pairs (e.g. BTC-USD). No API key required. $0.001/request."}},"/stocks/price":{"get":{"summary":"Stock price + day change","operationId":"stocksPrice","tags":["Finance"],"responses":{"200":{"description":"ok, data: {symbol, name, price, currency, change, change_pct, open, high, low, prev_close, volume, market_state, exchange, type, timestamp}","content":{"application/json":{"schema":{"type":"object","properties":{"price":{"type":"number"},"change":{"type":"number"},"change_pct":{"type":"number"},"volume":{"type":"number"}}}}}},"400":{"description":"Missing symbol"},"402":{"description":"Payment required"},"404":{"description":"Symbol not found"}},"x-iteratools-tool-id":"stocks/price","x-iteratools-price-usdc":0.001,"x-iteratools-risk":"low","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"parameters":[{"name":"symbol","in":"query","required":true,"schema":{"type":"string"}}],"description":"Current price, change, and change_pct for a single ticker (stocks, ETFs, indices). Uses Yahoo Finance - no API key required. $0.001/request."}},"/stocks/history":{"get":{"summary":"Stock OHLCV historical data","operationId":"stocksHistory","tags":["Finance"],"responses":{"200":{"description":"ok, data: {symbol, period, period1, period2, count, candles: [{date, open, high, low, close, adj_close, volume}]}","content":{"application/json":{"schema":{"type":"object","properties":{"candles":{"type":"array"},"symbol":{"type":"string"}}}}}},"400":{"description":"Missing symbol"},"402":{"description":"Payment required"},"404":{"description":"No data found"}},"x-iteratools-tool-id":"stocks/history","x-iteratools-price-usdc":0.001,"x-iteratools-risk":"low","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"parameters":[{"name":"symbol","in":"query","required":true,"schema":{"type":"string"}},{"name":"period","in":"query","required":false,"schema":{"type":"string","default":"1mo"}}],"description":"Historical daily OHLCV candles for a stock symbol. Periods: 1d, 5d, 1mo (default), 3mo, 6mo, 1y, 2y, 5y. Uses Yahoo Finance - no API key required. $0.001/request."}},"/stocks/search":{"get":{"summary":"Search stocks by company name","operationId":"stocksSearch","tags":["Finance"],"responses":{"200":{"description":"ok, data: {query, count, results: [{symbol, name, exchange, type, sector, industry, score}]}","content":{"application/json":{"schema":{"type":"object","properties":{"results":{"type":"array"},"count":{"type":"number"}}}}}},"400":{"description":"Missing q parameter"},"402":{"description":"Payment required"}},"x-iteratools-tool-id":"stocks/search","x-iteratools-price-usdc":0.001,"x-iteratools-risk":"low","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"schema":{"type":"number","default":10}}],"description":"Find ticker symbols by company name or keyword. Returns matching equities, ETFs, indices. Uses Yahoo Finance - no API key required. $0.001/request."}},"/sales/playbook":{"get":{"summary":"Autonomous sales funnel playbook","tags":["Sales"],"responses":{"200":{"description":"Current self-serve sales flow and guardrails"}}}},"/sales/leads":{"post":{"summary":"Capture inbound sales lead","tags":["Sales"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["email"],"properties":{"email":{"type":"string","format":"email"},"source":{"type":"string"},"use_case":{"type":"string"},"budget_usd":{"type":"number"},"message":{"type":"string"},"api_key":{"type":"string"}}}}}},"responses":{"201":{"description":"Lead captured"},"400":{"description":"Invalid email"}}}},"/sales/metrics":{"get":{"summary":"Sales funnel metrics","tags":["Sales"],"security":[{"BearerAuth":[]}],"responses":{"200":{"description":"Lead, account, and top-up metrics"},"403":{"description":"Forbidden"}}}},"/tools/code_mode/search":{"get":{"summary":"Compact tool registry for Code Mode planning","description":"Returns tools in TypeScript-like signature form (compact discovery for multi-tool agent planning). ~44% fewer tokens than full /tools. Public, no auth.","tags":["Meta"],"parameters":[{"name":"q","in":"query","required":false,"schema":{"type":"string"},"description":"Keyword filter (matches id/label/tags)"},{"name":"category","in":"query","required":false,"schema":{"type":"string"},"description":"Category filter (e.g. image, web, finance)"},{"name":"rate_class","in":"query","required":false,"schema":{"type":"string","enum":["light","medium","heavy"]},"description":"Rate-class filter"}],"responses":{"200":{"description":"ok, count, tools: [{id, signature, method, endpoint, rate_class, price_usdc, supports_code_mode}]"}}}},"/tools/code_mode/execute":{"post":{"summary":"Execute a declarative plan chaining up to 10 tool-calls in one request","operationId":"toolsCodeMode","tags":["Meta"],"responses":{"200":{"description":"ok, total_ms, steps_executed, steps_planned, tokens_saved_est, results[]","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"total_ms":{"type":"number"},"steps_executed":{"type":"number"},"steps_planned":{"type":"number"},"tokens_saved_est":{"type":"number"},"results":{"type":"array"}}}}}},"207":{"description":"Partial success (some steps failed, continue_on_error)"},"400":{"description":"Invalid plan (too many steps, recursion, unknown tool)"},"402":{"description":"Payment required"}},"x-iteratools-tool-id":"tools/code_mode","x-iteratools-price-usdc":0.001,"x-iteratools-risk":"medium","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":false,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"plan":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"tool":{"type":"string"},"args":{"type":"object"},"timeout_ms":{"type":"number"}},"required":["tool"]}},"continue_on_error":{"type":"boolean"},"dry_run":{"type":"boolean"}},"required":["plan"]}}}},"description":"Run a multi-step plan in one HTTP round-trip. Each step can reference prior outputs via `{{stepId.path}}` interpolation. Billing: each sub-tool charged normally + $0.001 plan overhead. Max 10 steps, 45s per step, 120s total. Recursion (tools/code_mode, credits/*) is blocked."}},"/storage/upload":{"post":{"summary":"Upload file to temporary public storage","operationId":"storageUpload","tags":["Storage"],"responses":{"200":{"description":"File uploaded with public URL","content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string"},"expires_at":{"type":"string"}}}}}},"400":{"description":"Missing fields or file too large"},"402":{"description":"Payment required"}},"x-iteratools-tool-id":"storage/upload","x-iteratools-price-usdc":0.002,"x-iteratools-risk":"medium","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"x-iteratools-input-aliases":{"base64":"file"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"file":{"type":"string"},"filename":{"type":"string"},"content_type":{"type":"string"},"ttl_hours":{"type":"number","minimum":1,"maximum":168,"default":24}},"required":["file","filename","content_type"]}}}}}},"/billing/manifest":{"get":{"summary":"Agent-readable billing manifest with tools, prices, caps, receipt endpoints, runs, approvals, and connections","operationId":"billingManifest","tags":["Billing"],"responses":{"200":{"description":"Billing manifest","content":{"application/json":{"schema":{"type":"object","properties":{"tool_count":{"type":"number"},"tools":{"type":"array"},"payment_methods":{"type":"array"}}}}}},"402":{"description":"Payment required"}},"x-iteratools-tool-id":"billing/manifest","x-iteratools-price-usdc":0,"x-iteratools-risk":"low","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true}},"/billing/receipts":{"get":{"summary":"List receipts for the bearer API key","operationId":"billingReceipts","tags":["Billing"],"responses":{"200":{"description":"Receipts list","content":{"application/json":{"schema":{"type":"object","properties":{"receipts":{"type":"array"},"count":{"type":"number"}}}}}},"401":{"description":"Bearer API key required"},"402":{"description":"Payment required"}},"x-iteratools-tool-id":"billing/receipts","x-iteratools-price-usdc":0,"x-iteratools-risk":"low","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"number","default":50}}],"security":[{"BearerAuth":[]}]}},"/billing/receipts/{id}":{"get":{"summary":"Get one receipt by id","tags":["Billing"],"security":[{"BearerAuth":[]}],"responses":{"200":{"description":"Receipt"},"404":{"description":"Receipt not found"}}}},"/runs/web_research":{"post":{"summary":"Run a web research job with search, extraction, citations, summary, run storage, and optional webhook","operationId":"runsWebResearch","tags":["Runs"],"responses":{"200":{"description":"Completed web research run","content":{"application/json":{"schema":{"type":"object","properties":{"run_id":{"type":"string"},"status":{"type":"string"},"result":{"type":"object"}}}}}},"402":{"description":"Payment required"}},"x-iteratools-tool-id":"runs/web_research","x-iteratools-price-usdc":0.015,"x-iteratools-risk":"medium","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"query":{"type":"string"},"urls":{"type":"array","items":{"type":"string"}},"max_results":{"type":"number","default":5},"country":{"type":"string"},"include_summary":{"type":"boolean","default":true},"callback_url":{"type":"string"}}}}}}}},"/runs/{id}":{"get":{"summary":"Get run status and result","tags":["Runs"],"security":[{"BearerAuth":[]}],"responses":{"200":{"description":"Run status"},"404":{"description":"Run not found"}}}},"/runs/{id}/events":{"get":{"summary":"Get run event log","tags":["Runs"],"security":[{"BearerAuth":[]}],"responses":{"200":{"description":"Run events"},"404":{"description":"Run not found"}}}},"/approvals":{"post":{"summary":"Create a human-in-the-loop approval request","operationId":"approvals","tags":["Approvals"],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"approval_id":{"type":"string"},"status":{"type":"string"},"expires_at":{"type":"string"}}}}}},"201":{"description":"Approval created"},"402":{"description":"Payment required"}},"x-iteratools-tool-id":"approvals","x-iteratools-price-usdc":0.001,"x-iteratools-risk":"high","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"action":{"type":"string"},"payload":{"type":"object"},"run_id":{"type":"string"},"callback_url":{"type":"string"},"expires_in_minutes":{"type":"number"}},"required":["action"]}}}}},"get":{"summary":"List approvals for the bearer API key","tags":["Approvals"],"security":[{"BearerAuth":[]}],"responses":{"200":{"description":"Approvals list"}}}},"/approvals/{id}/decision":{"post":{"summary":"Approve or deny a pending HITL approval","tags":["Approvals"],"security":[{"BearerAuth":[]}],"responses":{"200":{"description":"Decision recorded"},"404":{"description":"Approval not found"}}}},"/connections/providers":{"get":{"summary":"List AgentAuth v0 provider templates","tags":["Connections"],"responses":{"200":{"description":"Supported provider templates"}}}},"/connections":{"post":{"summary":"Register connected-account metadata without storing raw tokens","operationId":"connections","tags":["Connections"],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"connection_id":{"type":"string"},"status":{"type":"string"},"token_stored":{"type":"boolean"}}}}}},"201":{"description":"Connection registered"},"402":{"description":"Payment required"}},"x-iteratools-tool-id":"connections","x-iteratools-price-usdc":0.001,"x-iteratools-risk":"high","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"provider":{"type":"string"},"account_label":{"type":"string"},"scopes":{"type":"array","items":{"type":"string"}},"access_token":{"type":"string"},"secret_ref":{"type":"string"},"metadata":{"type":"object"}},"required":["provider"]}}}}},"get":{"summary":"List connected accounts for the bearer API key","tags":["Connections"],"security":[{"BearerAuth":[]}],"responses":{"200":{"description":"Connections list"}}}},"/connections/{id}":{"delete":{"summary":"Revoke a connected account metadata record","tags":["Connections"],"security":[{"BearerAuth":[]}],"responses":{"200":{"description":"Connection revoked"},"404":{"description":"Connection not found"}}}},"/v1/workspace/oauth/{provider}/callback":{"get":{"summary":"Complete a single-use Workspace OAuth authorization callback","tags":["workspace"],"security":[],"parameters":[{"name":"provider","in":"path","required":true,"schema":{"type":"string","enum":["drive","docs","gmail","notion","jira","confluence","linear"]}},{"name":"state","in":"query","required":true,"schema":{"type":"string"},"description":"Opaque single-use OAuth state"},{"name":"code","in":"query","required":true,"schema":{"type":"string"},"description":"Short-lived provider authorization code; never persisted or returned"}],"responses":{"201":{"description":"Connection created; response contains metadata only, never tokens"},"400":{"description":"Invalid state, redirect, or callback"},"409":{"description":"OAuth state replayed"},"410":{"description":"OAuth state expired"},"503":{"description":"Provider or vault unavailable"}}}},"/github/pr/create":{"post":{"summary":"Create GitHub pull request","operationId":"githubPrCreate","tags":["developer"],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"pr_number":{"type":"number"},"url":{"type":"string"},"state":{"type":"string"}}}}}},"402":{"description":"Payment required"}},"x-iteratools-tool-id":"github/pr/create","x-iteratools-price-usdc":0.003,"x-iteratools-risk":"high","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"owner":{"type":"string"},"repo":{"type":"string"},"title":{"type":"string"},"body":{"type":"string"},"head":{"type":"string"},"base":{"type":"string"},"draft":{"type":"boolean"},"token":{"type":"string"}},"required":["owner","repo","title","head","base","token"]}}}}}},"/github/pr/get":{"get":{"summary":"Get GitHub pull request details","operationId":"githubPrGet","tags":["developer"],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"pr_number":{"type":"number"},"title":{"type":"string"},"state":{"type":"string"},"merged":{"type":"boolean"}}}}}},"402":{"description":"Payment required"}},"x-iteratools-tool-id":"github/pr/get","x-iteratools-price-usdc":0.001,"x-iteratools-risk":"low","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"parameters":[{"name":"owner","in":"query","required":true,"schema":{"type":"string"}},{"name":"repo","in":"query","required":true,"schema":{"type":"string"}},{"name":"pr_number","in":"query","required":true,"schema":{"type":"number"}},{"name":"x-iteratools-secret-token","in":"header","required":false,"schema":{"type":"string"},"x-iteratools-input-name":"token"}]}},"/github/pr/list":{"get":{"summary":"List GitHub pull requests","operationId":"githubPrList","tags":["developer"],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"number"},"prs":{"type":"array"}}}}}},"402":{"description":"Payment required"}},"x-iteratools-tool-id":"github/pr/list","x-iteratools-price-usdc":0.001,"x-iteratools-risk":"low","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"parameters":[{"name":"owner","in":"query","required":true,"schema":{"type":"string"}},{"name":"repo","in":"query","required":true,"schema":{"type":"string"}},{"name":"state","in":"query","required":false,"schema":{"type":"string","enum":["open","closed","all"],"default":"open"}},{"name":"per_page","in":"query","required":false,"schema":{"type":"number","default":20}},{"name":"x-iteratools-secret-token","in":"header","required":false,"schema":{"type":"string"},"x-iteratools-input-name":"token"}]}},"/github/pr/merge":{"post":{"summary":"Merge GitHub pull request","operationId":"githubPrMerge","tags":["developer"],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"merged":{"type":"boolean"},"sha":{"type":"string"}}}}}},"402":{"description":"Payment required"}},"x-iteratools-tool-id":"github/pr/merge","x-iteratools-price-usdc":0.005,"x-iteratools-risk":"high","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"owner":{"type":"string"},"repo":{"type":"string"},"pr_number":{"type":"number"},"merge_method":{"type":"string","enum":["merge","squash","rebase"],"default":"merge"},"commit_title":{"type":"string"},"token":{"type":"string"},"commit_message":{"type":"string"}},"required":["owner","repo","pr_number","token"]}}}}}},"/github/pr/review":{"post":{"summary":"Submit GitHub PR review","operationId":"githubPrReview","tags":["developer"],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"review_id":{"type":"number"},"state":{"type":"string"}}}}}},"402":{"description":"Payment required"}},"x-iteratools-tool-id":"github/pr/review","x-iteratools-price-usdc":0.003,"x-iteratools-risk":"high","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"owner":{"type":"string"},"repo":{"type":"string"},"pr_number":{"type":"number"},"event":{"type":"string","enum":["APPROVE","REQUEST_CHANGES","COMMENT"]},"body":{"type":"string"},"token":{"type":"string"},"comments":{"type":"array","items":{"type":"object"}}},"required":["owner","repo","pr_number","token"]}}}}}},"/github/pr/comment":{"post":{"summary":"Comment on GitHub PR","operationId":"githubPrComment","tags":["developer"],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"comment_id":{"type":"number"},"url":{"type":"string"}}}}}},"402":{"description":"Payment required"}},"x-iteratools-tool-id":"github/pr/comment","x-iteratools-price-usdc":0.003,"x-iteratools-risk":"high","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"owner":{"type":"string"},"repo":{"type":"string"},"pr_number":{"type":"number"},"body":{"type":"string"},"token":{"type":"string"}},"required":["owner","repo","pr_number","body","token"]}}}}}},"/github/pr/diff":{"get":{"summary":"Get GitHub PR diff","operationId":"githubPrDiff","tags":["developer"],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"diff":{"type":"string"},"size":{"type":"number"}}}}}},"402":{"description":"Payment required"}},"x-iteratools-tool-id":"github/pr/diff","x-iteratools-price-usdc":0.001,"x-iteratools-risk":"low","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"parameters":[{"name":"owner","in":"query","required":true,"schema":{"type":"string"}},{"name":"repo","in":"query","required":true,"schema":{"type":"string"}},{"name":"pr_number","in":"query","required":true,"schema":{"type":"number"}},{"name":"x-iteratools-secret-token","in":"header","required":false,"schema":{"type":"string"},"x-iteratools-input-name":"token"}]}},"/github/issue/comment":{"post":{"summary":"Comment on GitHub issue","operationId":"githubIssueComment","tags":["developer"],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"comment_id":{"type":"number"},"url":{"type":"string"}}}}}},"402":{"description":"Payment required"}},"x-iteratools-tool-id":"github/issue/comment","x-iteratools-price-usdc":0.003,"x-iteratools-risk":"high","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"owner":{"type":"string"},"repo":{"type":"string"},"issue_number":{"type":"number"},"body":{"type":"string"},"token":{"type":"string"}},"required":["owner","repo","issue_number","body","token"]}}}}}},"/github/issue/close":{"post":{"summary":"Close GitHub issue","operationId":"githubIssueClose","tags":["developer"],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"issue_number":{"type":"number"},"state":{"type":"string"}}}}}},"402":{"description":"Payment required"}},"x-iteratools-tool-id":"github/issue/close","x-iteratools-price-usdc":0.003,"x-iteratools-risk":"high","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"owner":{"type":"string"},"repo":{"type":"string"},"issue_number":{"type":"number"},"token":{"type":"string"}},"required":["owner","repo","issue_number","token"]}}}}}},"/github/issue/list":{"get":{"summary":"List GitHub issues","operationId":"githubIssueList","tags":["developer"],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"number"},"issues":{"type":"array"}}}}}},"402":{"description":"Payment required"}},"x-iteratools-tool-id":"github/issue/list","x-iteratools-price-usdc":0.001,"x-iteratools-risk":"low","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"parameters":[{"name":"owner","in":"query","required":true,"schema":{"type":"string"}},{"name":"repo","in":"query","required":true,"schema":{"type":"string"}},{"name":"state","in":"query","required":false,"schema":{"type":"string","enum":["open","closed","all"],"default":"open"}},{"name":"labels","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"}},"style":"form","explode":false},{"name":"per_page","in":"query","required":false,"schema":{"type":"number","default":20}},{"name":"x-iteratools-secret-token","in":"header","required":false,"schema":{"type":"string"},"x-iteratools-input-name":"token"}]}},"/github/issue/assign":{"post":{"summary":"Assign GitHub issue","operationId":"githubIssueAssign","tags":["developer"],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"issue_number":{"type":"number"},"assignees":{"type":"array"}}}}}},"402":{"description":"Payment required"}},"x-iteratools-tool-id":"github/issue/assign","x-iteratools-price-usdc":0.003,"x-iteratools-risk":"high","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"owner":{"type":"string"},"repo":{"type":"string"},"issue_number":{"type":"number"},"assignees":{"type":"array","items":{"type":"string"}},"token":{"type":"string"}},"required":["owner","repo","issue_number","assignees","token"]}}}}}},"/github/issue/label":{"post":{"summary":"Label GitHub issue","operationId":"githubIssueLabel","tags":["developer"],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"issue_number":{"type":"number"},"labels":{"type":"array"}}}}}},"402":{"description":"Payment required"}},"x-iteratools-tool-id":"github/issue/label","x-iteratools-price-usdc":0.003,"x-iteratools-risk":"high","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"owner":{"type":"string"},"repo":{"type":"string"},"issue_number":{"type":"number"},"labels":{"type":"array","items":{"type":"string"}},"token":{"type":"string"}},"required":["owner","repo","issue_number","labels","token"]}}}}}},"/github/file/write":{"post":{"summary":"Write/commit file to GitHub","operationId":"githubFileWrite","tags":["developer"],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"path":{"type":"string"},"sha":{"type":"string"},"commit_sha":{"type":"string"},"created":{"type":"boolean"}}}}}},"402":{"description":"Payment required"}},"x-iteratools-tool-id":"github/file/write","x-iteratools-price-usdc":0.003,"x-iteratools-risk":"high","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"owner":{"type":"string"},"repo":{"type":"string"},"path":{"type":"string"},"content":{"type":"string"},"message":{"type":"string"},"branch":{"type":"string"},"sha":{"type":"string"},"token":{"type":"string"}},"required":["owner","repo","path","content","message","token"]}}}}}},"/github/file/delete":{"post":{"summary":"Delete file from GitHub via commit","operationId":"githubFileDelete","tags":["developer"],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"deleted":{"type":"boolean"},"commit_sha":{"type":"string"}}}}}},"402":{"description":"Payment required"}},"x-iteratools-tool-id":"github/file/delete","x-iteratools-price-usdc":0.003,"x-iteratools-risk":"high","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"owner":{"type":"string"},"repo":{"type":"string"},"path":{"type":"string"},"message":{"type":"string"},"sha":{"type":"string"},"branch":{"type":"string"},"token":{"type":"string"}},"required":["owner","repo","path","message","sha","token"]}}}}}},"/github/file/list":{"get":{"summary":"List files in GitHub directory","operationId":"githubFileList","tags":["developer"],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"files":{"type":"array"},"count":{"type":"number"}}}}}},"402":{"description":"Payment required"}},"x-iteratools-tool-id":"github/file/list","x-iteratools-price-usdc":0.001,"x-iteratools-risk":"low","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"parameters":[{"name":"owner","in":"query","required":true,"schema":{"type":"string"}},{"name":"repo","in":"query","required":true,"schema":{"type":"string"}},{"name":"path","in":"query","required":false,"schema":{"type":"string"}},{"name":"ref","in":"query","required":false,"schema":{"type":"string"}},{"name":"x-iteratools-secret-token","in":"header","required":false,"schema":{"type":"string"},"x-iteratools-input-name":"token"}]}},"/github/commit/get":{"get":{"summary":"Get GitHub commit details","operationId":"githubCommitGet","tags":["developer"],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"sha":{"type":"string"},"message":{"type":"string"},"author":{"type":"string"},"files":{"type":"array"}}}}}},"402":{"description":"Payment required"}},"x-iteratools-tool-id":"github/commit/get","x-iteratools-price-usdc":0.001,"x-iteratools-risk":"low","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"parameters":[{"name":"owner","in":"query","required":true,"schema":{"type":"string"}},{"name":"repo","in":"query","required":true,"schema":{"type":"string"}},{"name":"sha","in":"query","required":true,"schema":{"type":"string"}},{"name":"x-iteratools-secret-token","in":"header","required":false,"schema":{"type":"string"},"x-iteratools-input-name":"token"}]}},"/github/commit/list":{"get":{"summary":"List GitHub commits","operationId":"githubCommitList","tags":["developer"],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"commits":{"type":"array"},"count":{"type":"number"}}}}}},"402":{"description":"Payment required"}},"x-iteratools-tool-id":"github/commit/list","x-iteratools-price-usdc":0.001,"x-iteratools-risk":"low","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"parameters":[{"name":"owner","in":"query","required":true,"schema":{"type":"string"}},{"name":"repo","in":"query","required":true,"schema":{"type":"string"}},{"name":"branch","in":"query","required":false,"schema":{"type":"string"}},{"name":"path","in":"query","required":false,"schema":{"type":"string"}},{"name":"per_page","in":"query","required":false,"schema":{"type":"number","default":20}},{"name":"x-iteratools-secret-token","in":"header","required":false,"schema":{"type":"string"},"x-iteratools-input-name":"token"}]}},"/github/workflow/run":{"post":{"summary":"Trigger GitHub Actions workflow","operationId":"githubWorkflowRun","tags":["developer"],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"triggered":{"type":"boolean"},"workflow_id":{"type":"string"}}}}}},"402":{"description":"Payment required"}},"x-iteratools-tool-id":"github/workflow/run","x-iteratools-price-usdc":0.003,"x-iteratools-risk":"high","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"owner":{"type":"string"},"repo":{"type":"string"},"workflow_id":{"type":"string"},"ref":{"type":"string"},"inputs":{"type":"object"},"token":{"type":"string"}},"required":["owner","repo","workflow_id","ref","token"]}}}}}},"/github/workflow/list":{"get":{"summary":"List GitHub Actions workflows","operationId":"githubWorkflowList","tags":["developer"],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"workflows":{"type":"array"},"count":{"type":"number"}}}}}},"402":{"description":"Payment required"}},"x-iteratools-tool-id":"github/workflow/list","x-iteratools-price-usdc":0.001,"x-iteratools-risk":"low","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"parameters":[{"name":"owner","in":"query","required":true,"schema":{"type":"string"}},{"name":"repo","in":"query","required":true,"schema":{"type":"string"}},{"name":"x-iteratools-secret-token","in":"header","required":false,"schema":{"type":"string"},"x-iteratools-input-name":"token"}]}},"/github/workflow/logs":{"get":{"summary":"Get GitHub workflow run logs/status","operationId":"githubWorkflowLogs","tags":["developer"],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string"},"conclusion":{"type":"string"},"jobs":{"type":"array"}}}}}},"402":{"description":"Payment required"}},"x-iteratools-tool-id":"github/workflow/logs","x-iteratools-price-usdc":0.001,"x-iteratools-risk":"low","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"parameters":[{"name":"owner","in":"query","required":true,"schema":{"type":"string"}},{"name":"repo","in":"query","required":true,"schema":{"type":"string"}},{"name":"run_id","in":"query","required":true,"schema":{"type":"number"}},{"name":"x-iteratools-secret-token","in":"header","required":true,"schema":{"type":"string"},"x-iteratools-input-name":"token"}]}},"/github/release/create":{"post":{"summary":"Create GitHub release","operationId":"githubReleaseCreate","tags":["developer"],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"release_id":{"type":"number"},"tag_name":{"type":"string"},"url":{"type":"string"}}}}}},"402":{"description":"Payment required"}},"x-iteratools-tool-id":"github/release/create","x-iteratools-price-usdc":0.005,"x-iteratools-risk":"high","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"owner":{"type":"string"},"repo":{"type":"string"},"tag_name":{"type":"string"},"name":{"type":"string"},"body":{"type":"string"},"draft":{"type":"boolean"},"prerelease":{"type":"boolean"},"token":{"type":"string"}},"required":["owner","repo","tag_name","token"]}}}}}},"/github/release/list":{"get":{"summary":"List GitHub releases","operationId":"githubReleaseList","tags":["developer"],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"releases":{"type":"array"},"count":{"type":"number"}}}}}},"402":{"description":"Payment required"}},"x-iteratools-tool-id":"github/release/list","x-iteratools-price-usdc":0.001,"x-iteratools-risk":"low","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"parameters":[{"name":"owner","in":"query","required":true,"schema":{"type":"string"}},{"name":"repo","in":"query","required":true,"schema":{"type":"string"}},{"name":"per_page","in":"query","required":false,"schema":{"type":"number","default":10}},{"name":"x-iteratools-secret-token","in":"header","required":false,"schema":{"type":"string"},"x-iteratools-input-name":"token"}]}},"/github/user/get":{"get":{"summary":"Get GitHub user profile","operationId":"githubUserGet","tags":["developer"],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"login":{"type":"string"},"name":{"type":"string"},"public_repos":{"type":"number"},"followers":{"type":"number"}}}}}},"402":{"description":"Payment required"}},"x-iteratools-tool-id":"github/user/get","x-iteratools-price-usdc":0.001,"x-iteratools-risk":"low","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"parameters":[{"name":"username","in":"query","required":false,"schema":{"type":"string"}},{"name":"x-iteratools-secret-token","in":"header","required":false,"schema":{"type":"string"},"x-iteratools-input-name":"token"}]}},"/github/org/repos":{"get":{"summary":"List GitHub organization repositories","operationId":"githubOrgRepos","tags":["developer"],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"repos":{"type":"array"},"count":{"type":"number"}}}}}},"402":{"description":"Payment required"}},"x-iteratools-tool-id":"github/org/repos","x-iteratools-price-usdc":0.001,"x-iteratools-risk":"low","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"parameters":[{"name":"org","in":"query","required":true,"schema":{"type":"string"}},{"name":"type","in":"query","required":false,"schema":{"type":"string","enum":["all","public","private","forks","sources","member"],"default":"public"}},{"name":"per_page","in":"query","required":false,"schema":{"type":"number","default":20}},{"name":"x-iteratools-secret-token","in":"header","required":false,"schema":{"type":"string"},"x-iteratools-input-name":"token"}]}},"/vector/{provider}/upsert":{"post":{"summary":"Vector DB proxy upsert (Pinecone, Qdrant, Weaviate)","operationId":"vectorUpsert","tags":["data"],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"provider":{"type":"string"},"operation":{"type":"string","const":"upsert"},"upstream_status":{"type":"number"},"data":{}}}}}},"402":{"description":"Payment required"}},"x-iteratools-tool-id":"vector/upsert","x-iteratools-price-usdc":0.003,"x-iteratools-risk":"high","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"parameters":[{"name":"provider","in":"path","required":true,"description":"Path value for provider","schema":{"type":"string","enum":["pinecone","qdrant","weaviate"]},"x-iteratools-input-name":"provider"}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"endpoint":{"type":"string"},"host":{"type":"string"},"api_key":{"type":"string"},"vectors":{"type":"array"},"points":{"type":"array"},"objects":{"type":"array"},"namespace":{"type":"string"},"collection":{"type":"string"},"class_name":{"type":"string"},"wait":{"type":"boolean"}},"allOf":[{"oneOf":[{"properties":{"provider":{"const":"pinecone"}},"required":["api_key","vectors"],"oneOf":[{"required":["endpoint"]},{"required":["host"]}]},{"properties":{"provider":{"const":"qdrant"}},"required":["collection"],"oneOf":[{"required":["endpoint","points"]},{"required":["host","points"]},{"required":["endpoint","vectors"]},{"required":["host","vectors"]}]},{"properties":{"provider":{"const":"weaviate"}},"oneOf":[{"required":["endpoint","class_name","objects"]},{"required":["host","class_name","objects"]},{"required":["endpoint","collection","objects"]},{"required":["host","collection","objects"]},{"required":["endpoint","class_name","vectors"]},{"required":["host","class_name","vectors"]},{"required":["endpoint","collection","vectors"]},{"required":["host","collection","vectors"]}]}]}]}}}}}},"/vector/{provider}/query":{"post":{"summary":"Vector DB proxy query (Pinecone, Qdrant, Weaviate)","operationId":"vectorQuery","tags":["data"],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"provider":{"type":"string"},"operation":{"type":"string","const":"query"},"upstream_status":{"type":"number"},"data":{}}}}}},"402":{"description":"Payment required"}},"x-iteratools-tool-id":"vector/query","x-iteratools-price-usdc":0.002,"x-iteratools-risk":"low","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"parameters":[{"name":"provider","in":"path","required":true,"description":"Path value for provider","schema":{"type":"string","enum":["pinecone","qdrant","weaviate"]},"x-iteratools-input-name":"provider"}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"endpoint":{"type":"string"},"host":{"type":"string"},"api_key":{"type":"string"},"vector":{"type":"array"},"id":{"type":"string"},"top_k":{"type":"number"},"limit":{"type":"number"},"namespace":{"type":"string"},"collection":{"type":"string"},"class_name":{"type":"string"},"filter":{"type":"object"},"fields":{"type":"array","items":{"type":"string"}},"include_metadata":{"type":"boolean"},"include_values":{"type":"boolean"}},"allOf":[{"oneOf":[{"properties":{"provider":{"const":"pinecone"}},"required":["api_key"],"oneOf":[{"required":["endpoint","vector"]},{"required":["host","vector"]},{"required":["endpoint","id"]},{"required":["host","id"]}]},{"properties":{"provider":{"const":"qdrant"}},"required":["collection","vector"],"oneOf":[{"required":["endpoint"]},{"required":["host"]}]},{"properties":{"provider":{"const":"weaviate"}},"required":["vector"],"oneOf":[{"required":["endpoint","class_name"]},{"required":["host","class_name"]},{"required":["endpoint","collection"]},{"required":["host","collection"]}]}]}]}}}}}},"/vector/{provider}/delete":{"post":{"summary":"Vector DB proxy delete (Pinecone, Qdrant, Weaviate)","operationId":"vectorDelete","tags":["data"],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"provider":{"type":"string"},"operation":{"type":"string","const":"delete"},"upstream_status":{"type":"number"},"data":{}}}}}},"402":{"description":"Payment required"}},"x-iteratools-tool-id":"vector/delete","x-iteratools-price-usdc":0.002,"x-iteratools-risk":"high","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"parameters":[{"name":"provider","in":"path","required":true,"description":"Path value for provider","schema":{"type":"string","enum":["pinecone","qdrant","weaviate"]},"x-iteratools-input-name":"provider"}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"endpoint":{"type":"string"},"host":{"type":"string"},"api_key":{"type":"string"},"ids":{"type":"array"},"id":{"type":"string"},"delete_all":{"type":"boolean"},"namespace":{"type":"string"},"collection":{"type":"string"},"class_name":{"type":"string"},"filter":{"type":"object"},"where":{"type":"object"},"wait":{"type":"boolean"}},"allOf":[{"oneOf":[{"properties":{"provider":{"const":"pinecone"},"delete_all":{"const":true}},"required":["api_key"],"oneOf":[{"required":["endpoint","ids"]},{"required":["host","ids"]},{"required":["endpoint","delete_all"]},{"required":["host","delete_all"]},{"required":["endpoint","filter"]},{"required":["host","filter"]}]},{"properties":{"provider":{"const":"qdrant"}},"required":["collection"],"oneOf":[{"required":["endpoint","ids"]},{"required":["host","ids"]},{"required":["endpoint","filter"]},{"required":["host","filter"]}]},{"properties":{"provider":{"const":"weaviate"}},"oneOf":[{"required":["endpoint","class_name","id"]},{"required":["host","class_name","id"]},{"required":["endpoint","collection","id"]},{"required":["host","collection","id"]},{"required":["endpoint","class_name","where"]},{"required":["host","class_name","where"]},{"required":["endpoint","collection","where"]},{"required":["host","collection","where"]}]}]}]}}}}}},"/v1/computer/leases":{"post":{"summary":"Create a local Agent Computer Lease control-plane record","operationId":"computerLeaseCreate","tags":["agent"],"responses":{"200":{"description":"Successful idempotent replay","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"idempotent_replay":{"type":"boolean"},"lease":{"type":"object","properties":{"id":{"type":"string"},"state":{"type":"string","enum":["active","released","expired"]},"usable":{"type":"boolean"},"owner":{"type":"object","properties":{"identity_id":{"type":"string"},"type":{"type":"string","enum":["admin","api_key"]}}},"purpose":{"type":"string","nullable":true},"metadata":{"type":"object","description":"Passive untrusted metadata; returned as HTML-safe escaped JSON and never dereferenced."},"ttl_seconds":{"type":"integer"},"expires_at":{"type":"string","format":"date-time"},"hard_expires_at":{"type":"string","format":"date-time"},"budget":{"type":"object","properties":{"max_duration_seconds":{"type":"integer"},"max_actions":{"type":"integer"},"max_bytes":{"type":"integer"},"max_cost_usd":{"type":"number"}}},"usage":{"type":"object","properties":{"actions":{"type":"integer"},"bytes":{"type":"integer"},"accounted_cost_usd":{"type":"number"}}},"artifacts":{"type":"array","items":{"type":"object"}},"audit_log":{"type":"array","items":{"type":"object"}},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"released_at":{"type":"string","format":"date-time","nullable":true}}}}}}}},"201":{"description":"Resource created","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"idempotent_replay":{"type":"boolean"},"lease":{"type":"object","properties":{"id":{"type":"string"},"state":{"type":"string","enum":["active","released","expired"]},"usable":{"type":"boolean"},"owner":{"type":"object","properties":{"identity_id":{"type":"string"},"type":{"type":"string","enum":["admin","api_key"]}}},"purpose":{"type":"string","nullable":true},"metadata":{"type":"object","description":"Passive untrusted metadata; returned as HTML-safe escaped JSON and never dereferenced."},"ttl_seconds":{"type":"integer"},"expires_at":{"type":"string","format":"date-time"},"hard_expires_at":{"type":"string","format":"date-time"},"budget":{"type":"object","properties":{"max_duration_seconds":{"type":"integer"},"max_actions":{"type":"integer"},"max_bytes":{"type":"integer"},"max_cost_usd":{"type":"number"}}},"usage":{"type":"object","properties":{"actions":{"type":"integer"},"bytes":{"type":"integer"},"accounted_cost_usd":{"type":"number"}}},"artifacts":{"type":"array","items":{"type":"object"}},"audit_log":{"type":"array","items":{"type":"object"}},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"released_at":{"type":"string","format":"date-time","nullable":true}}}}}}}},"401":{"description":"Registered API key or admin bearer token required"}},"x-iteratools-tool-id":"computer/lease/create","x-iteratools-price-usdc":0,"x-iteratools-risk":"medium","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","minLength":8,"maxLength":128},"description":"Preferred idempotency transport. The JSON body alias idempotency_key is also accepted; if both are sent they must match exactly.","x-iteratools-input-name":"idempotency_key","x-iteratools-body-alias":true}],"requestBody":{"required":false,"description":"idempotency_key is a legacy body alias for Idempotency-Key; if both are present they must match exactly.","content":{"application/json":{"schema":{"type":"object","properties":{"idempotency_key":{"type":"string","minLength":8,"maxLength":128,"description":"Legacy JSON-body alias for Idempotency-Key; if both are sent they must match exactly."},"purpose":{"type":"string","maxLength":256},"ttl_seconds":{"type":"integer","minimum":1,"maximum":3600,"default":300},"budget":{"type":"object","properties":{"max_duration_seconds":{"type":"integer","minimum":1,"maximum":3600,"default":900},"max_actions":{"type":"integer","minimum":0,"maximum":100,"default":20},"max_bytes":{"type":"integer","minimum":0,"maximum":104857600,"default":10485760},"max_cost_usd":{"type":"number","minimum":0,"maximum":5,"default":0}},"additionalProperties":false},"artifacts":{"type":"array","maxItems":20,"items":{"type":"object","required":["name"],"properties":{"name":{"type":"string","maxLength":160,"description":"Passive untrusted display label; never interpreted as a path or URL."},"kind":{"type":"string","enum":["file","screenshot","log","report","other"],"default":"other"},"media_type":{"type":"string"},"byte_size":{"type":"integer","minimum":0,"maximum":104857600},"sha256":{"type":"string","pattern":"^[a-fA-F0-9]{64}$"},"storage_ref":{"type":"string","maxLength":256,"pattern":"^(?!.*\\.\\.)(?:[A-Za-z0-9_-]|\\.[A-Za-z0-9_-])[A-Za-z0-9._-]*(?:/(?:[A-Za-z0-9_-]|\\.[A-Za-z0-9_-])[A-Za-z0-9._-]*)*$","description":"Inert canonical relative path/key only; no leading slash, dot-dot, backslash, URL scheme, controls, empty segments, or trailing slash."},"metadata":{"type":"object","description":"Passive untrusted metadata; stored and returned without dereferencing."}},"additionalProperties":false}},"metadata":{"type":"object","description":"Passive untrusted metadata; stored and returned without dereferencing."}},"additionalProperties":false}}}},"security":[{"BearerAuth":[]}]},"get":{"summary":"List owned Agent Computer Leases","operationId":"computerLeaseList","tags":["agent"],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"count":{"type":"integer"},"leases":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"state":{"type":"string","enum":["active","released","expired"]},"usable":{"type":"boolean"},"owner":{"type":"object","properties":{"identity_id":{"type":"string"},"type":{"type":"string","enum":["admin","api_key"]}}},"purpose":{"type":"string","nullable":true},"metadata":{"type":"object","description":"Passive untrusted metadata; returned as HTML-safe escaped JSON and never dereferenced."},"ttl_seconds":{"type":"integer"},"expires_at":{"type":"string","format":"date-time"},"hard_expires_at":{"type":"string","format":"date-time"},"budget":{"type":"object","properties":{"max_duration_seconds":{"type":"integer"},"max_actions":{"type":"integer"},"max_bytes":{"type":"integer"},"max_cost_usd":{"type":"number"}}},"usage":{"type":"object","properties":{"actions":{"type":"integer"},"bytes":{"type":"integer"},"accounted_cost_usd":{"type":"number"}}},"artifacts":{"type":"array","items":{"type":"object"}},"audit_log":{"type":"array","items":{"type":"object"}},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"released_at":{"type":"string","format":"date-time","nullable":true}}}},"defaults":{"type":"object"},"caps":{"type":"object"}}}}}},"401":{"description":"Registered API key or admin bearer token required"}},"x-iteratools-tool-id":"computer/lease/list","x-iteratools-price-usdc":0,"x-iteratools-risk":"low","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"parameters":[{"name":"state","in":"query","required":false,"schema":{"type":"string","enum":["active","released","expired"]}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":100,"default":50}}],"security":[{"BearerAuth":[]}]}},"/v1/computer/leases/{id}":{"get":{"summary":"Get an owned Agent Computer Lease with audit and artifacts","operationId":"computerLeaseGet","tags":["agent"],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"lease":{"type":"object","properties":{"id":{"type":"string"},"state":{"type":"string","enum":["active","released","expired"]},"usable":{"type":"boolean"},"owner":{"type":"object","properties":{"identity_id":{"type":"string"},"type":{"type":"string","enum":["admin","api_key"]}}},"purpose":{"type":"string","nullable":true},"metadata":{"type":"object","description":"Passive untrusted metadata; returned as HTML-safe escaped JSON and never dereferenced."},"ttl_seconds":{"type":"integer"},"expires_at":{"type":"string","format":"date-time"},"hard_expires_at":{"type":"string","format":"date-time"},"budget":{"type":"object","properties":{"max_duration_seconds":{"type":"integer"},"max_actions":{"type":"integer"},"max_bytes":{"type":"integer"},"max_cost_usd":{"type":"number"}}},"usage":{"type":"object","properties":{"actions":{"type":"integer"},"bytes":{"type":"integer"},"accounted_cost_usd":{"type":"number"}}},"artifacts":{"type":"array","items":{"type":"object"}},"audit_log":{"type":"array","items":{"type":"object"}},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"released_at":{"type":"string","format":"date-time","nullable":true}}}}}}}},"401":{"description":"Registered API key or admin bearer token required"}},"x-iteratools-tool-id":"computer/lease/get","x-iteratools-price-usdc":0,"x-iteratools-risk":"low","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"parameters":[{"name":"id","in":"path","required":true,"description":"Path value for lease_id","schema":{"type":"string"},"x-iteratools-input-name":"lease_id"}],"security":[{"BearerAuth":[]}]}},"/v1/computer/leases/{id}/renew":{"post":{"summary":"Renew an active Agent Computer Lease within its hard cap","operationId":"computerLeaseRenew","tags":["agent"],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"idempotent_replay":{"type":"boolean"},"lease":{"type":"object","properties":{"id":{"type":"string"},"state":{"type":"string","enum":["active","released","expired"]},"usable":{"type":"boolean"},"owner":{"type":"object","properties":{"identity_id":{"type":"string"},"type":{"type":"string","enum":["admin","api_key"]}}},"purpose":{"type":"string","nullable":true},"metadata":{"type":"object","description":"Passive untrusted metadata; returned as HTML-safe escaped JSON and never dereferenced."},"ttl_seconds":{"type":"integer"},"expires_at":{"type":"string","format":"date-time"},"hard_expires_at":{"type":"string","format":"date-time"},"budget":{"type":"object","properties":{"max_duration_seconds":{"type":"integer"},"max_actions":{"type":"integer"},"max_bytes":{"type":"integer"},"max_cost_usd":{"type":"number"}}},"usage":{"type":"object","properties":{"actions":{"type":"integer"},"bytes":{"type":"integer"},"accounted_cost_usd":{"type":"number"}}},"artifacts":{"type":"array","items":{"type":"object"}},"audit_log":{"type":"array","items":{"type":"object"}},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"released_at":{"type":"string","format":"date-time","nullable":true}}}}}}}},"401":{"description":"Registered API key or admin bearer token required"}},"x-iteratools-tool-id":"computer/lease/renew","x-iteratools-price-usdc":0,"x-iteratools-risk":"medium","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"parameters":[{"name":"id","in":"path","required":true,"description":"Path value for lease_id","schema":{"type":"string"},"x-iteratools-input-name":"lease_id"},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","minLength":8,"maxLength":128},"description":"Preferred idempotency transport. The JSON body alias idempotency_key is also accepted; if both are sent they must match exactly.","x-iteratools-input-name":"idempotency_key","x-iteratools-body-alias":true}],"requestBody":{"required":false,"description":"idempotency_key is a legacy body alias for Idempotency-Key; if both are present they must match exactly.","content":{"application/json":{"schema":{"type":"object","properties":{"idempotency_key":{"type":"string","minLength":8,"maxLength":128,"description":"Legacy JSON-body alias for Idempotency-Key; if both are sent they must match exactly."},"ttl_seconds":{"type":"integer","minimum":1,"maximum":3600,"default":300}},"additionalProperties":false}}}},"security":[{"BearerAuth":[]}]}},"/v1/computer/leases/{id}/release":{"post":{"summary":"Release an active Agent Computer Lease","operationId":"computerLeaseRelease","tags":["agent"],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"idempotent_replay":{"type":"boolean"},"lease":{"type":"object","properties":{"id":{"type":"string"},"state":{"type":"string","enum":["active","released","expired"]},"usable":{"type":"boolean"},"owner":{"type":"object","properties":{"identity_id":{"type":"string"},"type":{"type":"string","enum":["admin","api_key"]}}},"purpose":{"type":"string","nullable":true},"metadata":{"type":"object","description":"Passive untrusted metadata; returned as HTML-safe escaped JSON and never dereferenced."},"ttl_seconds":{"type":"integer"},"expires_at":{"type":"string","format":"date-time"},"hard_expires_at":{"type":"string","format":"date-time"},"budget":{"type":"object","properties":{"max_duration_seconds":{"type":"integer"},"max_actions":{"type":"integer"},"max_bytes":{"type":"integer"},"max_cost_usd":{"type":"number"}}},"usage":{"type":"object","properties":{"actions":{"type":"integer"},"bytes":{"type":"integer"},"accounted_cost_usd":{"type":"number"}}},"artifacts":{"type":"array","items":{"type":"object"}},"audit_log":{"type":"array","items":{"type":"object"}},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"released_at":{"type":"string","format":"date-time","nullable":true}}}}}}}},"401":{"description":"Registered API key or admin bearer token required"}},"x-iteratools-tool-id":"computer/lease/release","x-iteratools-price-usdc":0,"x-iteratools-risk":"high","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"parameters":[{"name":"id","in":"path","required":true,"description":"Path value for lease_id","schema":{"type":"string"},"x-iteratools-input-name":"lease_id"},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","minLength":8,"maxLength":128},"description":"Preferred idempotency transport. The JSON body alias idempotency_key is also accepted; if both are sent they must match exactly.","x-iteratools-input-name":"idempotency_key","x-iteratools-body-alias":true}],"requestBody":{"required":false,"description":"idempotency_key is a legacy body alias for Idempotency-Key; if both are present they must match exactly.","content":{"application/json":{"schema":{"type":"object","properties":{"idempotency_key":{"type":"string","minLength":8,"maxLength":128,"description":"Legacy JSON-body alias for Idempotency-Key; if both are sent they must match exactly."}},"additionalProperties":false}}}},"security":[{"BearerAuth":[]}]}},"/v1/computer/leases/{id}/capabilities":{"get":{"summary":"Inspect controlled lease executor capabilities","operationId":"computerLeaseCapabilities","tags":["agent"],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"capabilities":{"type":"object"}}}}}},"401":{"description":"Registered API key or admin bearer token required"}},"x-iteratools-tool-id":"computer/lease/capabilities","x-iteratools-price-usdc":0,"x-iteratools-risk":"low","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"parameters":[{"name":"id","in":"path","required":true,"description":"Path value for lease_id","schema":{"type":"string"},"x-iteratools-input-name":"lease_id"}],"security":[{"BearerAuth":[]}]}},"/v1/computer/leases/{id}/actions":{"post":{"summary":"Execute one controlled lease action","operationId":"computerLeaseActionExecute","tags":["agent"],"responses":{"200":{"description":"Successful idempotent replay","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"idempotent_replay":{"type":"boolean"},"action":{"type":"object","properties":{"id":{"type":"string"},"lease_id":{"type":"string"},"kind":{"type":"string","enum":["filesystem","terminal","browser"]},"operation":{"type":"string"},"status":{"type":"string","enum":["running","succeeded","failed","cancelled","rolled_back"]},"reservation":{"type":"object"},"usage":{"type":"object"},"result":{"type":"object","nullable":true},"error":{"type":"object","nullable":true},"started_at":{"type":"string","format":"date-time"},"finished_at":{"type":"string","format":"date-time","nullable":true}}}}}}}},"201":{"description":"Resource created","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"idempotent_replay":{"type":"boolean"},"action":{"type":"object","properties":{"id":{"type":"string"},"lease_id":{"type":"string"},"kind":{"type":"string","enum":["filesystem","terminal","browser"]},"operation":{"type":"string"},"status":{"type":"string","enum":["running","succeeded","failed","cancelled","rolled_back"]},"reservation":{"type":"object"},"usage":{"type":"object"},"result":{"type":"object","nullable":true},"error":{"type":"object","nullable":true},"started_at":{"type":"string","format":"date-time"},"finished_at":{"type":"string","format":"date-time","nullable":true}}}}}}}},"401":{"description":"Registered API key or admin bearer token required"}},"x-iteratools-tool-id":"computer/lease/action/execute","x-iteratools-price-usdc":0,"x-iteratools-risk":"high","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"parameters":[{"name":"id","in":"path","required":true,"description":"Path value for lease_id","schema":{"type":"string"},"x-iteratools-input-name":"lease_id"},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$"},"description":"Preferred idempotency transport. The JSON body alias idempotency_key is also accepted; if both are sent they must match exactly.","x-iteratools-input-name":"idempotency_key","x-iteratools-body-alias":true}],"requestBody":{"required":true,"description":"idempotency_key is a legacy body alias for Idempotency-Key; if both are present they must match exactly.","content":{"application/json":{"schema":{"type":"object","required":["kind","operation"],"additionalProperties":false,"properties":{"idempotency_key":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$","description":"Legacy JSON-body alias for Idempotency-Key; if both are sent they must match exactly."},"kind":{"type":"string","enum":["filesystem","terminal","browser"]},"operation":{"type":"string","enum":["read","write","list","stat","mkdir","run","navigate","click","type","press","wait","extract","screenshot"],"description":"Browser allowlist has no evaluate, arbitrary JavaScript, upload, or download."},"path":{"type":"string"},"content":{"type":"string"},"content_base64":{"type":"string"},"argv":{"type":"array","maxItems":32,"items":{"type":"string"}},"env":{"type":"object","additionalProperties":{"type":"string"}},"url":{"type":"string","format":"uri","maxLength":2048},"selector":{"type":"string","minLength":1,"maxLength":512,"description":"Bounded CSS selector only."},"text":{"type":"string","maxLength":8192},"key":{"type":"string","enum":["Enter","Tab","Escape","Backspace","Delete","Space","Home","End","PageUp","PageDown","ArrowUp","ArrowDown","ArrowLeft","ArrowRight"]},"wait_ms":{"type":"integer","minimum":1,"maximum":5000},"extract_mode":{"type":"string","enum":["text","html","attribute"],"default":"text"},"attribute":{"type":"string","maxLength":64},"timeout_ms":{"type":"integer","minimum":1,"maximum":30000,"default":5000},"output_cap_bytes":{"type":"integer","minimum":1,"maximum":262144,"default":65536}}}}}},"security":[{"BearerAuth":[]}]},"get":{"summary":"List lease actions","operationId":"computerLeaseActionList","tags":["agent"],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"count":{"type":"integer"},"actions":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"lease_id":{"type":"string"},"kind":{"type":"string","enum":["filesystem","terminal","browser"]},"operation":{"type":"string"},"status":{"type":"string","enum":["running","succeeded","failed","cancelled","rolled_back"]},"reservation":{"type":"object"},"usage":{"type":"object"},"result":{"type":"object","nullable":true},"error":{"type":"object","nullable":true},"started_at":{"type":"string","format":"date-time"},"finished_at":{"type":"string","format":"date-time","nullable":true}}}}}}}}},"401":{"description":"Registered API key or admin bearer token required"}},"x-iteratools-tool-id":"computer/lease/action/list","x-iteratools-price-usdc":0,"x-iteratools-risk":"low","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"parameters":[{"name":"id","in":"path","required":true,"description":"Path value for lease_id","schema":{"type":"string"},"x-iteratools-input-name":"lease_id"}],"security":[{"BearerAuth":[]}]}},"/v1/computer/leases/{id}/actions/{actionId}":{"get":{"summary":"Get one lease action","operationId":"computerLeaseActionGet","tags":["agent"],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"action":{"type":"object","properties":{"id":{"type":"string"},"lease_id":{"type":"string"},"kind":{"type":"string","enum":["filesystem","terminal","browser"]},"operation":{"type":"string"},"status":{"type":"string","enum":["running","succeeded","failed","cancelled","rolled_back"]},"reservation":{"type":"object"},"usage":{"type":"object"},"result":{"type":"object","nullable":true},"error":{"type":"object","nullable":true},"started_at":{"type":"string","format":"date-time"},"finished_at":{"type":"string","format":"date-time","nullable":true}}}}}}}},"401":{"description":"Registered API key or admin bearer token required"}},"x-iteratools-tool-id":"computer/lease/action/get","x-iteratools-price-usdc":0,"x-iteratools-risk":"low","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"parameters":[{"name":"id","in":"path","required":true,"description":"Path value for lease_id","schema":{"type":"string"},"x-iteratools-input-name":"lease_id"},{"name":"actionId","in":"path","required":true,"description":"Path value for action_id","schema":{"type":"string"},"x-iteratools-input-name":"action_id"}],"security":[{"BearerAuth":[]}]}},"/v1/computer/leases/{id}/actions/{actionId}/cancel":{"post":{"summary":"Cancel one running lease action","operationId":"computerLeaseActionCancel","tags":["agent"],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"action":{"type":"object","properties":{"id":{"type":"string"},"lease_id":{"type":"string"},"kind":{"type":"string","enum":["filesystem","terminal","browser"]},"operation":{"type":"string"},"status":{"type":"string","enum":["running","succeeded","failed","cancelled","rolled_back"]},"reservation":{"type":"object"},"usage":{"type":"object"},"result":{"type":"object","nullable":true},"error":{"type":"object","nullable":true},"started_at":{"type":"string","format":"date-time"},"finished_at":{"type":"string","format":"date-time","nullable":true}}}}}}}},"401":{"description":"Registered API key or admin bearer token required"}},"x-iteratools-tool-id":"computer/lease/action/cancel","x-iteratools-price-usdc":0,"x-iteratools-risk":"high","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"parameters":[{"name":"id","in":"path","required":true,"description":"Path value for lease_id","schema":{"type":"string"},"x-iteratools-input-name":"lease_id"},{"name":"actionId","in":"path","required":true,"description":"Path value for action_id","schema":{"type":"string"},"x-iteratools-input-name":"action_id"}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":false}}}},"security":[{"BearerAuth":[]}]}},"/v1/computer/leases/{id}/artifacts":{"get":{"summary":"List lease evidence artifacts","operationId":"computerLeaseArtifactList","tags":["agent"],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"count":{"type":"integer"},"artifacts":{"type":"array","items":{"type":"object"}}}}}}},"401":{"description":"Registered API key or admin bearer token required"}},"x-iteratools-tool-id":"computer/lease/artifact/list","x-iteratools-price-usdc":0,"x-iteratools-risk":"low","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"parameters":[{"name":"id","in":"path","required":true,"description":"Path value for lease_id","schema":{"type":"string"},"x-iteratools-input-name":"lease_id"}],"security":[{"BearerAuth":[]}]}},"/v1/computer/leases/{id}/artifacts/{artifactId}":{"get":{"summary":"Get and verify one lease evidence artifact","operationId":"computerLeaseArtifactGet","tags":["agent"],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"artifact":{"type":"object"}}}}}},"401":{"description":"Registered API key or admin bearer token required"}},"x-iteratools-tool-id":"computer/lease/artifact/get","x-iteratools-price-usdc":0,"x-iteratools-risk":"low","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"parameters":[{"name":"id","in":"path","required":true,"description":"Path value for lease_id","schema":{"type":"string"},"x-iteratools-input-name":"lease_id"},{"name":"artifactId","in":"path","required":true,"description":"Path value for artifact_id","schema":{"type":"string"},"x-iteratools-input-name":"artifact_id"}],"security":[{"BearerAuth":[]}]}},"/v1/computer/leases/{id}/audit":{"get":{"summary":"List append-only lease audit events","operationId":"computerLeaseAuditList","tags":["agent"],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"count":{"type":"integer"},"audit":{"type":"array","items":{"type":"object"}}}}}}},"401":{"description":"Registered API key or admin bearer token required"}},"x-iteratools-tool-id":"computer/lease/audit/list","x-iteratools-price-usdc":0,"x-iteratools-risk":"low","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"parameters":[{"name":"id","in":"path","required":true,"description":"Path value for lease_id","schema":{"type":"string"},"x-iteratools-input-name":"lease_id"}],"security":[{"BearerAuth":[]}]}},"/v1/computer/leases/{id}/usage":{"get":{"summary":"Get committed and reserved lease usage","operationId":"computerLeaseUsageGet","tags":["agent"],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"state":{"type":"string"},"usable":{"type":"boolean"},"budget":{"type":"object"},"usage":{"type":"object"}}}}}},"401":{"description":"Registered API key or admin bearer token required"}},"x-iteratools-tool-id":"computer/lease/usage/get","x-iteratools-price-usdc":0,"x-iteratools-risk":"low","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"parameters":[{"name":"id","in":"path","required":true,"description":"Path value for lease_id","schema":{"type":"string"},"x-iteratools-input-name":"lease_id"}],"security":[{"BearerAuth":[]}]}},"/v1/workspace/actions/drive/search":{"post":{"summary":"Google Drive: search","operationId":"workspaceDriveSearch","tags":["workspace"],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"provider":{"type":"string"},"action":{"type":"string"},"mutating":{"type":"boolean"},"receipt":{"type":"object"},"evidence":{"type":"object"},"pagination":{"type":"object","nullable":true}}}}}},"401":{"description":"Registered API key or admin bearer token required"},"503":{"description":"Tool temporarily unavailable"}},"x-iteratools-tool-id":"workspace/drive/search","x-iteratools-price-usdc":0,"x-iteratools-risk":"low","x-iteratools-availability":"temporarily_disabled","x-iteratools-availability-reason":"Google Drive OAuth or WORKSPACE_VAULT_KEY is not configured","x-iteratools-supports-code-mode":false,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"connection_id":{"type":"string","description":"Owner-scoped connection id"},"idempotency_key":{"type":"string","description":"Required for mutations; 8-128 safe characters","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$"},"q":{"type":"string","description":"Drive search query"},"cursor":{"type":"string","description":"Provider pagination cursor"},"limit":{"type":"integer","minimum":1,"maximum":100,"default":25}},"required":["q"]}}}},"security":[{"BearerAuth":[]}]}},"/v1/workspace/actions/drive/list":{"post":{"summary":"Google Drive: list","operationId":"workspaceDriveList","tags":["workspace"],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"provider":{"type":"string"},"action":{"type":"string"},"mutating":{"type":"boolean"},"receipt":{"type":"object"},"evidence":{"type":"object"},"pagination":{"type":"object","nullable":true}}}}}},"401":{"description":"Registered API key or admin bearer token required"},"503":{"description":"Tool temporarily unavailable"}},"x-iteratools-tool-id":"workspace/drive/list","x-iteratools-price-usdc":0,"x-iteratools-risk":"low","x-iteratools-availability":"temporarily_disabled","x-iteratools-availability-reason":"Google Drive OAuth or WORKSPACE_VAULT_KEY is not configured","x-iteratools-supports-code-mode":false,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"connection_id":{"type":"string","description":"Owner-scoped connection id"},"idempotency_key":{"type":"string","description":"Required for mutations; 8-128 safe characters","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$"},"folder_id":{"type":"string","description":"Optional parent folder id"},"cursor":{"type":"string","description":"Provider pagination cursor"},"limit":{"type":"integer","minimum":1,"maximum":100,"default":25}}}}}},"security":[{"BearerAuth":[]}]}},"/v1/workspace/actions/drive/get":{"post":{"summary":"Google Drive: get","operationId":"workspaceDriveGet","tags":["workspace"],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"provider":{"type":"string"},"action":{"type":"string"},"mutating":{"type":"boolean"},"receipt":{"type":"object"},"evidence":{"type":"object"},"pagination":{"type":"object","nullable":true}}}}}},"401":{"description":"Registered API key or admin bearer token required"},"503":{"description":"Tool temporarily unavailable"}},"x-iteratools-tool-id":"workspace/drive/get","x-iteratools-price-usdc":0,"x-iteratools-risk":"low","x-iteratools-availability":"temporarily_disabled","x-iteratools-availability-reason":"Google Drive OAuth or WORKSPACE_VAULT_KEY is not configured","x-iteratools-supports-code-mode":false,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"connection_id":{"type":"string","description":"Owner-scoped connection id"},"idempotency_key":{"type":"string","description":"Required for mutations; 8-128 safe characters","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$"},"resource_id":{"type":"string","description":"Drive file id"}},"required":["resource_id"]}}}},"security":[{"BearerAuth":[]}]}},"/v1/workspace/actions/drive/create":{"post":{"summary":"Google Drive: create","operationId":"workspaceDriveCreate","tags":["workspace"],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"provider":{"type":"string"},"action":{"type":"string"},"mutating":{"type":"boolean"},"receipt":{"type":"object"},"evidence":{"type":"object"},"pagination":{"type":"object","nullable":true}}}}}},"401":{"description":"Registered API key or admin bearer token required"},"503":{"description":"Tool temporarily unavailable"}},"x-iteratools-tool-id":"workspace/drive/create","x-iteratools-price-usdc":0,"x-iteratools-risk":"medium","x-iteratools-availability":"temporarily_disabled","x-iteratools-availability-reason":"Google Drive OAuth or WORKSPACE_VAULT_KEY is not configured","x-iteratools-supports-code-mode":false,"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","description":"Required for mutations; 8-128 safe characters","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$"},"description":"Preferred idempotency transport. The JSON body alias idempotency_key is also accepted; if both are sent they must match exactly.","x-iteratools-input-name":"idempotency_key","x-iteratools-body-alias":true}],"requestBody":{"required":true,"description":"idempotency_key is a legacy body alias for Idempotency-Key; if both are present they must match exactly.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"connection_id":{"type":"string","description":"Owner-scoped connection id"},"idempotency_key":{"type":"string","description":"Legacy JSON-body alias for Idempotency-Key; if both are sent they must match exactly.","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$"},"name":{"type":"string","description":"File or folder name"},"mime_type":{"type":"string","description":"Optional MIME type, including application/vnd.google-apps.folder"},"parents":{"type":"array","items":{"type":"string","description":"Parent folder id"}}},"required":["name"]}}}},"security":[{"BearerAuth":[]}]}},"/v1/workspace/actions/drive/update":{"post":{"summary":"Google Drive: update","operationId":"workspaceDriveUpdate","tags":["workspace"],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"provider":{"type":"string"},"action":{"type":"string"},"mutating":{"type":"boolean"},"receipt":{"type":"object"},"evidence":{"type":"object"},"pagination":{"type":"object","nullable":true}}}}}},"401":{"description":"Registered API key or admin bearer token required"},"503":{"description":"Tool temporarily unavailable"}},"x-iteratools-tool-id":"workspace/drive/update","x-iteratools-price-usdc":0,"x-iteratools-risk":"high","x-iteratools-availability":"temporarily_disabled","x-iteratools-availability-reason":"Google Drive OAuth or WORKSPACE_VAULT_KEY is not configured","x-iteratools-supports-code-mode":false,"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","description":"Required for mutations; 8-128 safe characters","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$"},"description":"Preferred idempotency transport. The JSON body alias idempotency_key is also accepted; if both are sent they must match exactly.","x-iteratools-input-name":"idempotency_key","x-iteratools-body-alias":true}],"requestBody":{"required":true,"description":"idempotency_key is a legacy body alias for Idempotency-Key; if both are present they must match exactly.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"connection_id":{"type":"string","description":"Owner-scoped connection id"},"idempotency_key":{"type":"string","description":"Legacy JSON-body alias for Idempotency-Key; if both are sent they must match exactly.","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$"},"resource_id":{"type":"string","description":"Drive file id"},"metadata":{"type":"object","description":"Fields to patch","additionalProperties":true},"approval":{"type":"object","description":"Auditable approval flag: {approved:true, reason}","additionalProperties":true}},"required":["resource_id","metadata","approval"]}}}},"security":[{"BearerAuth":[]}]}},"/v1/workspace/actions/docs/get":{"post":{"summary":"Google Docs: get","operationId":"workspaceDocsGet","tags":["workspace"],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"provider":{"type":"string"},"action":{"type":"string"},"mutating":{"type":"boolean"},"receipt":{"type":"object"},"evidence":{"type":"object"},"pagination":{"type":"object","nullable":true}}}}}},"401":{"description":"Registered API key or admin bearer token required"},"503":{"description":"Tool temporarily unavailable"}},"x-iteratools-tool-id":"workspace/docs/get","x-iteratools-price-usdc":0,"x-iteratools-risk":"low","x-iteratools-availability":"temporarily_disabled","x-iteratools-availability-reason":"Google Docs OAuth or WORKSPACE_VAULT_KEY is not configured","x-iteratools-supports-code-mode":false,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"connection_id":{"type":"string","description":"Owner-scoped connection id"},"idempotency_key":{"type":"string","description":"Required for mutations; 8-128 safe characters","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$"},"resource_id":{"type":"string","description":"Google document id"}},"required":["resource_id"]}}}},"security":[{"BearerAuth":[]}]}},"/v1/workspace/actions/docs/create":{"post":{"summary":"Google Docs: create","operationId":"workspaceDocsCreate","tags":["workspace"],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"provider":{"type":"string"},"action":{"type":"string"},"mutating":{"type":"boolean"},"receipt":{"type":"object"},"evidence":{"type":"object"},"pagination":{"type":"object","nullable":true}}}}}},"401":{"description":"Registered API key or admin bearer token required"},"503":{"description":"Tool temporarily unavailable"}},"x-iteratools-tool-id":"workspace/docs/create","x-iteratools-price-usdc":0,"x-iteratools-risk":"medium","x-iteratools-availability":"temporarily_disabled","x-iteratools-availability-reason":"Google Docs OAuth or WORKSPACE_VAULT_KEY is not configured","x-iteratools-supports-code-mode":false,"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","description":"Required for mutations; 8-128 safe characters","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$"},"description":"Preferred idempotency transport. The JSON body alias idempotency_key is also accepted; if both are sent they must match exactly.","x-iteratools-input-name":"idempotency_key","x-iteratools-body-alias":true}],"requestBody":{"required":true,"description":"idempotency_key is a legacy body alias for Idempotency-Key; if both are present they must match exactly.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"connection_id":{"type":"string","description":"Owner-scoped connection id"},"idempotency_key":{"type":"string","description":"Legacy JSON-body alias for Idempotency-Key; if both are sent they must match exactly.","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$"},"title":{"type":"string","description":"Document title"}},"required":["title"]}}}},"security":[{"BearerAuth":[]}]}},"/v1/workspace/actions/docs/update":{"post":{"summary":"Google Docs: update","operationId":"workspaceDocsUpdate","tags":["workspace"],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"provider":{"type":"string"},"action":{"type":"string"},"mutating":{"type":"boolean"},"receipt":{"type":"object"},"evidence":{"type":"object"},"pagination":{"type":"object","nullable":true}}}}}},"401":{"description":"Registered API key or admin bearer token required"},"503":{"description":"Tool temporarily unavailable"}},"x-iteratools-tool-id":"workspace/docs/update","x-iteratools-price-usdc":0,"x-iteratools-risk":"high","x-iteratools-availability":"temporarily_disabled","x-iteratools-availability-reason":"Google Docs OAuth or WORKSPACE_VAULT_KEY is not configured","x-iteratools-supports-code-mode":false,"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","description":"Required for mutations; 8-128 safe characters","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$"},"description":"Preferred idempotency transport. The JSON body alias idempotency_key is also accepted; if both are sent they must match exactly.","x-iteratools-input-name":"idempotency_key","x-iteratools-body-alias":true}],"requestBody":{"required":true,"description":"idempotency_key is a legacy body alias for Idempotency-Key; if both are present they must match exactly.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"connection_id":{"type":"string","description":"Owner-scoped connection id"},"idempotency_key":{"type":"string","description":"Legacy JSON-body alias for Idempotency-Key; if both are sent they must match exactly.","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$"},"resource_id":{"type":"string","description":"Google document id"},"requests":{"type":"array","minItems":1,"items":{"type":"object","description":"Google Docs batchUpdate request","additionalProperties":true}},"approval":{"type":"object","description":"Auditable approval flag","additionalProperties":true}},"required":["resource_id","requests","approval"]}}}},"security":[{"BearerAuth":[]}]}},"/v1/workspace/actions/gmail/search":{"post":{"summary":"Gmail: search","operationId":"workspaceGmailSearch","tags":["workspace"],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"provider":{"type":"string"},"action":{"type":"string"},"mutating":{"type":"boolean"},"receipt":{"type":"object"},"evidence":{"type":"object"},"pagination":{"type":"object","nullable":true}}}}}},"401":{"description":"Registered API key or admin bearer token required"},"503":{"description":"Tool temporarily unavailable"}},"x-iteratools-tool-id":"workspace/gmail/search","x-iteratools-price-usdc":0,"x-iteratools-risk":"low","x-iteratools-availability":"temporarily_disabled","x-iteratools-availability-reason":"Gmail OAuth or WORKSPACE_VAULT_KEY is not configured","x-iteratools-supports-code-mode":false,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"connection_id":{"type":"string","description":"Owner-scoped connection id"},"idempotency_key":{"type":"string","description":"Required for mutations; 8-128 safe characters","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$"},"q":{"type":"string","description":"Gmail search query"},"cursor":{"type":"string","description":"Provider pagination cursor"},"limit":{"type":"integer","minimum":1,"maximum":100,"default":25}},"required":["q"]}}}},"security":[{"BearerAuth":[]}]}},"/v1/workspace/actions/gmail/list":{"post":{"summary":"Gmail: list","operationId":"workspaceGmailList","tags":["workspace"],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"provider":{"type":"string"},"action":{"type":"string"},"mutating":{"type":"boolean"},"receipt":{"type":"object"},"evidence":{"type":"object"},"pagination":{"type":"object","nullable":true}}}}}},"401":{"description":"Registered API key or admin bearer token required"},"503":{"description":"Tool temporarily unavailable"}},"x-iteratools-tool-id":"workspace/gmail/list","x-iteratools-price-usdc":0,"x-iteratools-risk":"low","x-iteratools-availability":"temporarily_disabled","x-iteratools-availability-reason":"Gmail OAuth or WORKSPACE_VAULT_KEY is not configured","x-iteratools-supports-code-mode":false,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"connection_id":{"type":"string","description":"Owner-scoped connection id"},"idempotency_key":{"type":"string","description":"Required for mutations; 8-128 safe characters","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$"},"label_ids":{"type":"array","items":{"type":"string","description":"Gmail label id"}},"cursor":{"type":"string","description":"Provider pagination cursor"},"limit":{"type":"integer","minimum":1,"maximum":100,"default":25}}}}}},"security":[{"BearerAuth":[]}]}},"/v1/workspace/actions/gmail/get":{"post":{"summary":"Gmail: get","operationId":"workspaceGmailGet","tags":["workspace"],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"provider":{"type":"string"},"action":{"type":"string"},"mutating":{"type":"boolean"},"receipt":{"type":"object"},"evidence":{"type":"object"},"pagination":{"type":"object","nullable":true}}}}}},"401":{"description":"Registered API key or admin bearer token required"},"503":{"description":"Tool temporarily unavailable"}},"x-iteratools-tool-id":"workspace/gmail/get","x-iteratools-price-usdc":0,"x-iteratools-risk":"low","x-iteratools-availability":"temporarily_disabled","x-iteratools-availability-reason":"Gmail OAuth or WORKSPACE_VAULT_KEY is not configured","x-iteratools-supports-code-mode":false,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"connection_id":{"type":"string","description":"Owner-scoped connection id"},"idempotency_key":{"type":"string","description":"Required for mutations; 8-128 safe characters","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$"},"resource_id":{"type":"string","description":"Gmail message id"},"format":{"type":"string","description":"Message format","enum":["minimal","full","metadata"]}},"required":["resource_id"]}}}},"security":[{"BearerAuth":[]}]}},"/v1/workspace/actions/gmail/draft_create":{"post":{"summary":"Gmail: draft create","operationId":"workspaceGmailDraftCreate","tags":["workspace"],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"provider":{"type":"string"},"action":{"type":"string"},"mutating":{"type":"boolean"},"receipt":{"type":"object"},"evidence":{"type":"object"},"pagination":{"type":"object","nullable":true}}}}}},"401":{"description":"Registered API key or admin bearer token required"},"503":{"description":"Tool temporarily unavailable"}},"x-iteratools-tool-id":"workspace/gmail/draft_create","x-iteratools-price-usdc":0,"x-iteratools-risk":"medium","x-iteratools-availability":"temporarily_disabled","x-iteratools-availability-reason":"Gmail OAuth or WORKSPACE_VAULT_KEY is not configured","x-iteratools-supports-code-mode":false,"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","description":"Required for mutations; 8-128 safe characters","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$"},"description":"Preferred idempotency transport. The JSON body alias idempotency_key is also accepted; if both are sent they must match exactly.","x-iteratools-input-name":"idempotency_key","x-iteratools-body-alias":true}],"requestBody":{"required":true,"description":"idempotency_key is a legacy body alias for Idempotency-Key; if both are present they must match exactly.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"connection_id":{"type":"string","description":"Owner-scoped connection id"},"idempotency_key":{"type":"string","description":"Legacy JSON-body alias for Idempotency-Key; if both are sent they must match exactly.","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$"},"raw":{"type":"string","description":"RFC 2822 message encoded as base64url; creates a draft only"}},"required":["raw"]}}}},"security":[{"BearerAuth":[]}]}},"/v1/workspace/actions/gmail/draft_update":{"post":{"summary":"Gmail: draft update","operationId":"workspaceGmailDraftUpdate","tags":["workspace"],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"provider":{"type":"string"},"action":{"type":"string"},"mutating":{"type":"boolean"},"receipt":{"type":"object"},"evidence":{"type":"object"},"pagination":{"type":"object","nullable":true}}}}}},"401":{"description":"Registered API key or admin bearer token required"},"503":{"description":"Tool temporarily unavailable"}},"x-iteratools-tool-id":"workspace/gmail/draft_update","x-iteratools-price-usdc":0,"x-iteratools-risk":"high","x-iteratools-availability":"temporarily_disabled","x-iteratools-availability-reason":"Gmail OAuth or WORKSPACE_VAULT_KEY is not configured","x-iteratools-supports-code-mode":false,"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","description":"Required for mutations; 8-128 safe characters","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$"},"description":"Preferred idempotency transport. The JSON body alias idempotency_key is also accepted; if both are sent they must match exactly.","x-iteratools-input-name":"idempotency_key","x-iteratools-body-alias":true}],"requestBody":{"required":true,"description":"idempotency_key is a legacy body alias for Idempotency-Key; if both are present they must match exactly.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"connection_id":{"type":"string","description":"Owner-scoped connection id"},"idempotency_key":{"type":"string","description":"Legacy JSON-body alias for Idempotency-Key; if both are sent they must match exactly.","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$"},"resource_id":{"type":"string","description":"Draft id"},"raw":{"type":"string","description":"RFC 2822 message encoded as base64url"},"approval":{"type":"object","description":"Auditable approval flag","additionalProperties":true}},"required":["resource_id","raw","approval"]}}}},"security":[{"BearerAuth":[]}]}},"/v1/workspace/actions/notion/search":{"post":{"summary":"Notion: search","operationId":"workspaceNotionSearch","tags":["workspace"],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"provider":{"type":"string"},"action":{"type":"string"},"mutating":{"type":"boolean"},"receipt":{"type":"object"},"evidence":{"type":"object"},"pagination":{"type":"object","nullable":true}}}}}},"401":{"description":"Registered API key or admin bearer token required"},"503":{"description":"Tool temporarily unavailable"}},"x-iteratools-tool-id":"workspace/notion/search","x-iteratools-price-usdc":0,"x-iteratools-risk":"low","x-iteratools-availability":"temporarily_disabled","x-iteratools-availability-reason":"Notion OAuth or WORKSPACE_VAULT_KEY is not configured","x-iteratools-supports-code-mode":false,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"connection_id":{"type":"string","description":"Owner-scoped connection id"},"idempotency_key":{"type":"string","description":"Required for mutations; 8-128 safe characters","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$"},"query":{"type":"string","description":"Text query"},"filter":{"type":"object","description":"Optional Notion search filter","additionalProperties":true},"cursor":{"type":"string","description":"Provider pagination cursor"},"limit":{"type":"integer","minimum":1,"maximum":100,"default":25}}}}}},"security":[{"BearerAuth":[]}]}},"/v1/workspace/actions/notion/list":{"post":{"summary":"Notion: list","operationId":"workspaceNotionList","tags":["workspace"],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"provider":{"type":"string"},"action":{"type":"string"},"mutating":{"type":"boolean"},"receipt":{"type":"object"},"evidence":{"type":"object"},"pagination":{"type":"object","nullable":true}}}}}},"401":{"description":"Registered API key or admin bearer token required"},"503":{"description":"Tool temporarily unavailable"}},"x-iteratools-tool-id":"workspace/notion/list","x-iteratools-price-usdc":0,"x-iteratools-risk":"low","x-iteratools-availability":"temporarily_disabled","x-iteratools-availability-reason":"Notion OAuth or WORKSPACE_VAULT_KEY is not configured","x-iteratools-supports-code-mode":false,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"connection_id":{"type":"string","description":"Owner-scoped connection id"},"idempotency_key":{"type":"string","description":"Required for mutations; 8-128 safe characters","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$"},"filter":{"type":"object","description":"Optional Notion object filter","additionalProperties":true},"cursor":{"type":"string","description":"Provider pagination cursor"},"limit":{"type":"integer","minimum":1,"maximum":100,"default":25}}}}}},"security":[{"BearerAuth":[]}]}},"/v1/workspace/actions/notion/get":{"post":{"summary":"Notion: get","operationId":"workspaceNotionGet","tags":["workspace"],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"provider":{"type":"string"},"action":{"type":"string"},"mutating":{"type":"boolean"},"receipt":{"type":"object"},"evidence":{"type":"object"},"pagination":{"type":"object","nullable":true}}}}}},"401":{"description":"Registered API key or admin bearer token required"},"503":{"description":"Tool temporarily unavailable"}},"x-iteratools-tool-id":"workspace/notion/get","x-iteratools-price-usdc":0,"x-iteratools-risk":"low","x-iteratools-availability":"temporarily_disabled","x-iteratools-availability-reason":"Notion OAuth or WORKSPACE_VAULT_KEY is not configured","x-iteratools-supports-code-mode":false,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"connection_id":{"type":"string","description":"Owner-scoped connection id"},"idempotency_key":{"type":"string","description":"Required for mutations; 8-128 safe characters","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$"},"resource_id":{"type":"string","description":"Notion page id"}},"required":["resource_id"]}}}},"security":[{"BearerAuth":[]}]}},"/v1/workspace/actions/notion/create":{"post":{"summary":"Notion: create","operationId":"workspaceNotionCreate","tags":["workspace"],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"provider":{"type":"string"},"action":{"type":"string"},"mutating":{"type":"boolean"},"receipt":{"type":"object"},"evidence":{"type":"object"},"pagination":{"type":"object","nullable":true}}}}}},"401":{"description":"Registered API key or admin bearer token required"},"503":{"description":"Tool temporarily unavailable"}},"x-iteratools-tool-id":"workspace/notion/create","x-iteratools-price-usdc":0,"x-iteratools-risk":"medium","x-iteratools-availability":"temporarily_disabled","x-iteratools-availability-reason":"Notion OAuth or WORKSPACE_VAULT_KEY is not configured","x-iteratools-supports-code-mode":false,"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","description":"Required for mutations; 8-128 safe characters","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$"},"description":"Preferred idempotency transport. The JSON body alias idempotency_key is also accepted; if both are sent they must match exactly.","x-iteratools-input-name":"idempotency_key","x-iteratools-body-alias":true}],"requestBody":{"required":true,"description":"idempotency_key is a legacy body alias for Idempotency-Key; if both are present they must match exactly.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"connection_id":{"type":"string","description":"Owner-scoped connection id"},"idempotency_key":{"type":"string","description":"Legacy JSON-body alias for Idempotency-Key; if both are sent they must match exactly.","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$"},"parent":{"type":"object","description":"Notion parent","additionalProperties":true},"properties":{"type":"object","description":"Page properties","additionalProperties":true},"children":{"type":"array","items":{"type":"object","description":"Block","additionalProperties":true}}},"required":["parent","properties"]}}}},"security":[{"BearerAuth":[]}]}},"/v1/workspace/actions/notion/update":{"post":{"summary":"Notion: update","operationId":"workspaceNotionUpdate","tags":["workspace"],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"provider":{"type":"string"},"action":{"type":"string"},"mutating":{"type":"boolean"},"receipt":{"type":"object"},"evidence":{"type":"object"},"pagination":{"type":"object","nullable":true}}}}}},"401":{"description":"Registered API key or admin bearer token required"},"503":{"description":"Tool temporarily unavailable"}},"x-iteratools-tool-id":"workspace/notion/update","x-iteratools-price-usdc":0,"x-iteratools-risk":"high","x-iteratools-availability":"temporarily_disabled","x-iteratools-availability-reason":"Notion OAuth or WORKSPACE_VAULT_KEY is not configured","x-iteratools-supports-code-mode":false,"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","description":"Required for mutations; 8-128 safe characters","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$"},"description":"Preferred idempotency transport. The JSON body alias idempotency_key is also accepted; if both are sent they must match exactly.","x-iteratools-input-name":"idempotency_key","x-iteratools-body-alias":true}],"requestBody":{"required":true,"description":"idempotency_key is a legacy body alias for Idempotency-Key; if both are present they must match exactly.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"connection_id":{"type":"string","description":"Owner-scoped connection id"},"idempotency_key":{"type":"string","description":"Legacy JSON-body alias for Idempotency-Key; if both are sent they must match exactly.","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$"},"resource_id":{"type":"string","description":"Notion page id"},"properties":{"type":"object","description":"Page properties to patch","additionalProperties":true},"archived":{"type":"boolean"},"approval":{"type":"object","description":"Auditable approval flag","additionalProperties":true}},"required":["resource_id","approval"]}}}},"security":[{"BearerAuth":[]}]}},"/v1/workspace/actions/jira/search":{"post":{"summary":"Jira Cloud: search","operationId":"workspaceJiraSearch","tags":["workspace"],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"provider":{"type":"string"},"action":{"type":"string"},"mutating":{"type":"boolean"},"receipt":{"type":"object"},"evidence":{"type":"object"},"pagination":{"type":"object","nullable":true}}}}}},"401":{"description":"Registered API key or admin bearer token required"},"503":{"description":"Tool temporarily unavailable"}},"x-iteratools-tool-id":"workspace/jira/search","x-iteratools-price-usdc":0,"x-iteratools-risk":"low","x-iteratools-availability":"temporarily_disabled","x-iteratools-availability-reason":"Jira Cloud OAuth or WORKSPACE_VAULT_KEY is not configured","x-iteratools-supports-code-mode":false,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"connection_id":{"type":"string","description":"Owner-scoped connection id"},"idempotency_key":{"type":"string","description":"Required for mutations; 8-128 safe characters","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$"},"cloud_id":{"type":"string","description":"Atlassian cloud id"},"query":{"type":"string","description":"JQL expression"},"fields":{"type":"array","items":{"type":"string","description":"Issue field"}},"cursor":{"type":"string","description":"Provider pagination cursor"},"limit":{"type":"integer","minimum":1,"maximum":100,"default":25}},"required":["cloud_id","query"]}}}},"security":[{"BearerAuth":[]}]}},"/v1/workspace/actions/jira/list":{"post":{"summary":"Jira Cloud: list","operationId":"workspaceJiraList","tags":["workspace"],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"provider":{"type":"string"},"action":{"type":"string"},"mutating":{"type":"boolean"},"receipt":{"type":"object"},"evidence":{"type":"object"},"pagination":{"type":"object","nullable":true}}}}}},"401":{"description":"Registered API key or admin bearer token required"},"503":{"description":"Tool temporarily unavailable"}},"x-iteratools-tool-id":"workspace/jira/list","x-iteratools-price-usdc":0,"x-iteratools-risk":"low","x-iteratools-availability":"temporarily_disabled","x-iteratools-availability-reason":"Jira Cloud OAuth or WORKSPACE_VAULT_KEY is not configured","x-iteratools-supports-code-mode":false,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"connection_id":{"type":"string","description":"Owner-scoped connection id"},"idempotency_key":{"type":"string","description":"Required for mutations; 8-128 safe characters","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$"},"cloud_id":{"type":"string","description":"Atlassian cloud id"},"cursor":{"type":"string","description":"Provider pagination cursor"},"limit":{"type":"integer","minimum":1,"maximum":100,"default":25}},"required":["cloud_id"]}}}},"security":[{"BearerAuth":[]}]}},"/v1/workspace/actions/jira/get":{"post":{"summary":"Jira Cloud: get","operationId":"workspaceJiraGet","tags":["workspace"],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"provider":{"type":"string"},"action":{"type":"string"},"mutating":{"type":"boolean"},"receipt":{"type":"object"},"evidence":{"type":"object"},"pagination":{"type":"object","nullable":true}}}}}},"401":{"description":"Registered API key or admin bearer token required"},"503":{"description":"Tool temporarily unavailable"}},"x-iteratools-tool-id":"workspace/jira/get","x-iteratools-price-usdc":0,"x-iteratools-risk":"low","x-iteratools-availability":"temporarily_disabled","x-iteratools-availability-reason":"Jira Cloud OAuth or WORKSPACE_VAULT_KEY is not configured","x-iteratools-supports-code-mode":false,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"connection_id":{"type":"string","description":"Owner-scoped connection id"},"idempotency_key":{"type":"string","description":"Required for mutations; 8-128 safe characters","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$"},"cloud_id":{"type":"string","description":"Atlassian cloud id"},"resource_id":{"type":"string","description":"Issue id or key"}},"required":["cloud_id","resource_id"]}}}},"security":[{"BearerAuth":[]}]}},"/v1/workspace/actions/jira/create":{"post":{"summary":"Jira Cloud: create","operationId":"workspaceJiraCreate","tags":["workspace"],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"provider":{"type":"string"},"action":{"type":"string"},"mutating":{"type":"boolean"},"receipt":{"type":"object"},"evidence":{"type":"object"},"pagination":{"type":"object","nullable":true}}}}}},"401":{"description":"Registered API key or admin bearer token required"},"503":{"description":"Tool temporarily unavailable"}},"x-iteratools-tool-id":"workspace/jira/create","x-iteratools-price-usdc":0,"x-iteratools-risk":"medium","x-iteratools-availability":"temporarily_disabled","x-iteratools-availability-reason":"Jira Cloud OAuth or WORKSPACE_VAULT_KEY is not configured","x-iteratools-supports-code-mode":false,"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","description":"Required for mutations; 8-128 safe characters","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$"},"description":"Preferred idempotency transport. The JSON body alias idempotency_key is also accepted; if both are sent they must match exactly.","x-iteratools-input-name":"idempotency_key","x-iteratools-body-alias":true}],"requestBody":{"required":true,"description":"idempotency_key is a legacy body alias for Idempotency-Key; if both are present they must match exactly.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"connection_id":{"type":"string","description":"Owner-scoped connection id"},"idempotency_key":{"type":"string","description":"Legacy JSON-body alias for Idempotency-Key; if both are sent they must match exactly.","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$"},"cloud_id":{"type":"string","description":"Atlassian cloud id"},"fields":{"type":"object","description":"Jira issue fields","additionalProperties":true}},"required":["cloud_id","fields"]}}}},"security":[{"BearerAuth":[]}]}},"/v1/workspace/actions/jira/update":{"post":{"summary":"Jira Cloud: update","operationId":"workspaceJiraUpdate","tags":["workspace"],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"provider":{"type":"string"},"action":{"type":"string"},"mutating":{"type":"boolean"},"receipt":{"type":"object"},"evidence":{"type":"object"},"pagination":{"type":"object","nullable":true}}}}}},"401":{"description":"Registered API key or admin bearer token required"},"503":{"description":"Tool temporarily unavailable"}},"x-iteratools-tool-id":"workspace/jira/update","x-iteratools-price-usdc":0,"x-iteratools-risk":"high","x-iteratools-availability":"temporarily_disabled","x-iteratools-availability-reason":"Jira Cloud OAuth or WORKSPACE_VAULT_KEY is not configured","x-iteratools-supports-code-mode":false,"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","description":"Required for mutations; 8-128 safe characters","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$"},"description":"Preferred idempotency transport. The JSON body alias idempotency_key is also accepted; if both are sent they must match exactly.","x-iteratools-input-name":"idempotency_key","x-iteratools-body-alias":true}],"requestBody":{"required":true,"description":"idempotency_key is a legacy body alias for Idempotency-Key; if both are present they must match exactly.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"connection_id":{"type":"string","description":"Owner-scoped connection id"},"idempotency_key":{"type":"string","description":"Legacy JSON-body alias for Idempotency-Key; if both are sent they must match exactly.","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$"},"cloud_id":{"type":"string","description":"Atlassian cloud id"},"resource_id":{"type":"string","description":"Issue id or key"},"fields":{"type":"object","description":"Jira issue fields to update","additionalProperties":true},"approval":{"type":"object","description":"Auditable approval flag","additionalProperties":true}},"required":["cloud_id","resource_id","fields","approval"]}}}},"security":[{"BearerAuth":[]}]}},"/v1/workspace/actions/confluence/search":{"post":{"summary":"Confluence Cloud: search","operationId":"workspaceConfluenceSearch","tags":["workspace"],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"provider":{"type":"string"},"action":{"type":"string"},"mutating":{"type":"boolean"},"receipt":{"type":"object"},"evidence":{"type":"object"},"pagination":{"type":"object","nullable":true}}}}}},"401":{"description":"Registered API key or admin bearer token required"},"503":{"description":"Tool temporarily unavailable"}},"x-iteratools-tool-id":"workspace/confluence/search","x-iteratools-price-usdc":0,"x-iteratools-risk":"low","x-iteratools-availability":"temporarily_disabled","x-iteratools-availability-reason":"Confluence Cloud OAuth or WORKSPACE_VAULT_KEY is not configured","x-iteratools-supports-code-mode":false,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"connection_id":{"type":"string","description":"Owner-scoped connection id"},"idempotency_key":{"type":"string","description":"Required for mutations; 8-128 safe characters","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$"},"cloud_id":{"type":"string","description":"Atlassian cloud id"},"query":{"type":"string","description":"CQL expression"},"cursor":{"type":"string","description":"Provider pagination cursor"},"limit":{"type":"integer","minimum":1,"maximum":100,"default":25}},"required":["cloud_id","query"]}}}},"security":[{"BearerAuth":[]}]}},"/v1/workspace/actions/confluence/list":{"post":{"summary":"Confluence Cloud: list","operationId":"workspaceConfluenceList","tags":["workspace"],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"provider":{"type":"string"},"action":{"type":"string"},"mutating":{"type":"boolean"},"receipt":{"type":"object"},"evidence":{"type":"object"},"pagination":{"type":"object","nullable":true}}}}}},"401":{"description":"Registered API key or admin bearer token required"},"503":{"description":"Tool temporarily unavailable"}},"x-iteratools-tool-id":"workspace/confluence/list","x-iteratools-price-usdc":0,"x-iteratools-risk":"low","x-iteratools-availability":"temporarily_disabled","x-iteratools-availability-reason":"Confluence Cloud OAuth or WORKSPACE_VAULT_KEY is not configured","x-iteratools-supports-code-mode":false,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"connection_id":{"type":"string","description":"Owner-scoped connection id"},"idempotency_key":{"type":"string","description":"Required for mutations; 8-128 safe characters","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$"},"cloud_id":{"type":"string","description":"Atlassian cloud id"},"space_id":{"type":"string","description":"Optional Confluence space id"},"cursor":{"type":"string","description":"Provider pagination cursor"},"limit":{"type":"integer","minimum":1,"maximum":100,"default":25}},"required":["cloud_id"]}}}},"security":[{"BearerAuth":[]}]}},"/v1/workspace/actions/confluence/get":{"post":{"summary":"Confluence Cloud: get","operationId":"workspaceConfluenceGet","tags":["workspace"],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"provider":{"type":"string"},"action":{"type":"string"},"mutating":{"type":"boolean"},"receipt":{"type":"object"},"evidence":{"type":"object"},"pagination":{"type":"object","nullable":true}}}}}},"401":{"description":"Registered API key or admin bearer token required"},"503":{"description":"Tool temporarily unavailable"}},"x-iteratools-tool-id":"workspace/confluence/get","x-iteratools-price-usdc":0,"x-iteratools-risk":"low","x-iteratools-availability":"temporarily_disabled","x-iteratools-availability-reason":"Confluence Cloud OAuth or WORKSPACE_VAULT_KEY is not configured","x-iteratools-supports-code-mode":false,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"connection_id":{"type":"string","description":"Owner-scoped connection id"},"idempotency_key":{"type":"string","description":"Required for mutations; 8-128 safe characters","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$"},"cloud_id":{"type":"string","description":"Atlassian cloud id"},"resource_id":{"type":"string","description":"Page id"}},"required":["cloud_id","resource_id"]}}}},"security":[{"BearerAuth":[]}]}},"/v1/workspace/actions/confluence/create":{"post":{"summary":"Confluence Cloud: create","operationId":"workspaceConfluenceCreate","tags":["workspace"],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"provider":{"type":"string"},"action":{"type":"string"},"mutating":{"type":"boolean"},"receipt":{"type":"object"},"evidence":{"type":"object"},"pagination":{"type":"object","nullable":true}}}}}},"401":{"description":"Registered API key or admin bearer token required"},"503":{"description":"Tool temporarily unavailable"}},"x-iteratools-tool-id":"workspace/confluence/create","x-iteratools-price-usdc":0,"x-iteratools-risk":"medium","x-iteratools-availability":"temporarily_disabled","x-iteratools-availability-reason":"Confluence Cloud OAuth or WORKSPACE_VAULT_KEY is not configured","x-iteratools-supports-code-mode":false,"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","description":"Required for mutations; 8-128 safe characters","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$"},"description":"Preferred idempotency transport. The JSON body alias idempotency_key is also accepted; if both are sent they must match exactly.","x-iteratools-input-name":"idempotency_key","x-iteratools-body-alias":true}],"requestBody":{"required":true,"description":"idempotency_key is a legacy body alias for Idempotency-Key; if both are present they must match exactly.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"connection_id":{"type":"string","description":"Owner-scoped connection id"},"idempotency_key":{"type":"string","description":"Legacy JSON-body alias for Idempotency-Key; if both are sent they must match exactly.","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$"},"cloud_id":{"type":"string","description":"Atlassian cloud id"},"space_id":{"type":"string","description":"Space id"},"title":{"type":"string","description":"Page title"},"body":{"type":"object","description":"Confluence page body","additionalProperties":true},"parent_id":{"type":"string","description":"Optional parent page id"}},"required":["cloud_id","space_id","title","body"]}}}},"security":[{"BearerAuth":[]}]}},"/v1/workspace/actions/confluence/update":{"post":{"summary":"Confluence Cloud: update","operationId":"workspaceConfluenceUpdate","tags":["workspace"],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"provider":{"type":"string"},"action":{"type":"string"},"mutating":{"type":"boolean"},"receipt":{"type":"object"},"evidence":{"type":"object"},"pagination":{"type":"object","nullable":true}}}}}},"401":{"description":"Registered API key or admin bearer token required"},"503":{"description":"Tool temporarily unavailable"}},"x-iteratools-tool-id":"workspace/confluence/update","x-iteratools-price-usdc":0,"x-iteratools-risk":"high","x-iteratools-availability":"temporarily_disabled","x-iteratools-availability-reason":"Confluence Cloud OAuth or WORKSPACE_VAULT_KEY is not configured","x-iteratools-supports-code-mode":false,"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","description":"Required for mutations; 8-128 safe characters","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$"},"description":"Preferred idempotency transport. The JSON body alias idempotency_key is also accepted; if both are sent they must match exactly.","x-iteratools-input-name":"idempotency_key","x-iteratools-body-alias":true}],"requestBody":{"required":true,"description":"idempotency_key is a legacy body alias for Idempotency-Key; if both are present they must match exactly.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"connection_id":{"type":"string","description":"Owner-scoped connection id"},"idempotency_key":{"type":"string","description":"Legacy JSON-body alias for Idempotency-Key; if both are sent they must match exactly.","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$"},"cloud_id":{"type":"string","description":"Atlassian cloud id"},"resource_id":{"type":"string","description":"Page id"},"title":{"type":"string","description":"Page title"},"body":{"type":"object","description":"Confluence page body","additionalProperties":true},"version":{"type":"integer","minimum":1},"approval":{"type":"object","description":"Auditable approval flag","additionalProperties":true}},"required":["cloud_id","resource_id","title","body","version","approval"]}}}},"security":[{"BearerAuth":[]}]}},"/v1/workspace/actions/linear/search":{"post":{"summary":"Linear: search","operationId":"workspaceLinearSearch","tags":["workspace"],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"provider":{"type":"string"},"action":{"type":"string"},"mutating":{"type":"boolean"},"receipt":{"type":"object"},"evidence":{"type":"object"},"pagination":{"type":"object","nullable":true}}}}}},"401":{"description":"Registered API key or admin bearer token required"},"503":{"description":"Tool temporarily unavailable"}},"x-iteratools-tool-id":"workspace/linear/search","x-iteratools-price-usdc":0,"x-iteratools-risk":"low","x-iteratools-availability":"temporarily_disabled","x-iteratools-availability-reason":"Linear OAuth or WORKSPACE_VAULT_KEY is not configured","x-iteratools-supports-code-mode":false,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"connection_id":{"type":"string","description":"Owner-scoped connection id"},"idempotency_key":{"type":"string","description":"Required for mutations; 8-128 safe characters","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$"},"query":{"type":"string","description":"Issue title/description search"},"cursor":{"type":"string","description":"Provider pagination cursor"},"limit":{"type":"integer","minimum":1,"maximum":100,"default":25}},"required":["query"]}}}},"security":[{"BearerAuth":[]}]}},"/v1/workspace/actions/linear/list":{"post":{"summary":"Linear: list","operationId":"workspaceLinearList","tags":["workspace"],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"provider":{"type":"string"},"action":{"type":"string"},"mutating":{"type":"boolean"},"receipt":{"type":"object"},"evidence":{"type":"object"},"pagination":{"type":"object","nullable":true}}}}}},"401":{"description":"Registered API key or admin bearer token required"},"503":{"description":"Tool temporarily unavailable"}},"x-iteratools-tool-id":"workspace/linear/list","x-iteratools-price-usdc":0,"x-iteratools-risk":"low","x-iteratools-availability":"temporarily_disabled","x-iteratools-availability-reason":"Linear OAuth or WORKSPACE_VAULT_KEY is not configured","x-iteratools-supports-code-mode":false,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"connection_id":{"type":"string","description":"Owner-scoped connection id"},"idempotency_key":{"type":"string","description":"Required for mutations; 8-128 safe characters","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$"},"team_id":{"type":"string","description":"Optional Linear team id"},"cursor":{"type":"string","description":"Provider pagination cursor"},"limit":{"type":"integer","minimum":1,"maximum":100,"default":25}}}}}},"security":[{"BearerAuth":[]}]}},"/v1/workspace/actions/linear/get":{"post":{"summary":"Linear: get","operationId":"workspaceLinearGet","tags":["workspace"],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"provider":{"type":"string"},"action":{"type":"string"},"mutating":{"type":"boolean"},"receipt":{"type":"object"},"evidence":{"type":"object"},"pagination":{"type":"object","nullable":true}}}}}},"401":{"description":"Registered API key or admin bearer token required"},"503":{"description":"Tool temporarily unavailable"}},"x-iteratools-tool-id":"workspace/linear/get","x-iteratools-price-usdc":0,"x-iteratools-risk":"low","x-iteratools-availability":"temporarily_disabled","x-iteratools-availability-reason":"Linear OAuth or WORKSPACE_VAULT_KEY is not configured","x-iteratools-supports-code-mode":false,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"connection_id":{"type":"string","description":"Owner-scoped connection id"},"idempotency_key":{"type":"string","description":"Required for mutations; 8-128 safe characters","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$"},"resource_id":{"type":"string","description":"Linear issue id"}},"required":["resource_id"]}}}},"security":[{"BearerAuth":[]}]}},"/v1/workspace/actions/linear/create":{"post":{"summary":"Linear: create","operationId":"workspaceLinearCreate","tags":["workspace"],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"provider":{"type":"string"},"action":{"type":"string"},"mutating":{"type":"boolean"},"receipt":{"type":"object"},"evidence":{"type":"object"},"pagination":{"type":"object","nullable":true}}}}}},"401":{"description":"Registered API key or admin bearer token required"},"503":{"description":"Tool temporarily unavailable"}},"x-iteratools-tool-id":"workspace/linear/create","x-iteratools-price-usdc":0,"x-iteratools-risk":"medium","x-iteratools-availability":"temporarily_disabled","x-iteratools-availability-reason":"Linear OAuth or WORKSPACE_VAULT_KEY is not configured","x-iteratools-supports-code-mode":false,"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","description":"Required for mutations; 8-128 safe characters","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$"},"description":"Preferred idempotency transport. The JSON body alias idempotency_key is also accepted; if both are sent they must match exactly.","x-iteratools-input-name":"idempotency_key","x-iteratools-body-alias":true}],"requestBody":{"required":true,"description":"idempotency_key is a legacy body alias for Idempotency-Key; if both are present they must match exactly.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"connection_id":{"type":"string","description":"Owner-scoped connection id"},"idempotency_key":{"type":"string","description":"Legacy JSON-body alias for Idempotency-Key; if both are sent they must match exactly.","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$"},"team_id":{"type":"string","description":"Linear team id"},"title":{"type":"string","description":"Issue title"},"description":{"type":"string","description":"Issue description"},"assignee_id":{"type":"string","description":"Optional assignee id"}},"required":["team_id","title"]}}}},"security":[{"BearerAuth":[]}]}},"/v1/workspace/actions/linear/update":{"post":{"summary":"Linear: update","operationId":"workspaceLinearUpdate","tags":["workspace"],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"provider":{"type":"string"},"action":{"type":"string"},"mutating":{"type":"boolean"},"receipt":{"type":"object"},"evidence":{"type":"object"},"pagination":{"type":"object","nullable":true}}}}}},"401":{"description":"Registered API key or admin bearer token required"},"503":{"description":"Tool temporarily unavailable"}},"x-iteratools-tool-id":"workspace/linear/update","x-iteratools-price-usdc":0,"x-iteratools-risk":"high","x-iteratools-availability":"temporarily_disabled","x-iteratools-availability-reason":"Linear OAuth or WORKSPACE_VAULT_KEY is not configured","x-iteratools-supports-code-mode":false,"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","description":"Required for mutations; 8-128 safe characters","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$"},"description":"Preferred idempotency transport. The JSON body alias idempotency_key is also accepted; if both are sent they must match exactly.","x-iteratools-input-name":"idempotency_key","x-iteratools-body-alias":true}],"requestBody":{"required":true,"description":"idempotency_key is a legacy body alias for Idempotency-Key; if both are present they must match exactly.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"connection_id":{"type":"string","description":"Owner-scoped connection id"},"idempotency_key":{"type":"string","description":"Legacy JSON-body alias for Idempotency-Key; if both are sent they must match exactly.","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$"},"resource_id":{"type":"string","description":"Linear issue id"},"fields":{"type":"object","description":"Issue fields to update","additionalProperties":true},"approval":{"type":"object","description":"Auditable approval flag","additionalProperties":true}},"required":["resource_id","fields","approval"]}}}},"security":[{"BearerAuth":[]}]}},"/v1/workspace/providers":{"get":{"summary":"List Workspace providers and runtime availability","operationId":"workspaceProviders","tags":["workspace"],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"count":{"type":"integer"},"providers":{"type":"array","items":{"type":"object"}}}}}}},"402":{"description":"Payment required"}},"x-iteratools-tool-id":"workspace/providers","x-iteratools-price-usdc":0,"x-iteratools-risk":"low","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true}},"/v1/workspace/connections/{provider}/authorize":{"post":{"summary":"Create Workspace OAuth authorization intent","operationId":"workspaceConnectionAuthorize","tags":["workspace"],"responses":{"200":{"description":"Successful idempotent replay","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"provider":{"type":"string"},"authorization_url":{"type":"string","format":"uri"},"expires_at":{"type":"string","format":"date-time"},"pkce":{"type":"string","enum":["S256"]},"scopes":{"type":"array","items":{"type":"string"}}}}}}},"201":{"description":"Resource created","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"provider":{"type":"string"},"authorization_url":{"type":"string","format":"uri"},"expires_at":{"type":"string","format":"date-time"},"pkce":{"type":"string","enum":["S256"]},"scopes":{"type":"array","items":{"type":"string"}}}}}}},"401":{"description":"Registered API key or admin bearer token required"}},"x-iteratools-tool-id":"workspace/connection/authorize","x-iteratools-price-usdc":0,"x-iteratools-risk":"medium","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"parameters":[{"name":"provider","in":"path","required":true,"description":"Path value for provider","schema":{"type":"string","description":"Provider id","enum":["drive","docs","gmail","notion","jira","confluence","linear"]},"x-iteratools-input-name":"provider"}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"redirect_uri":{"type":"string","description":"Optional exact-match assertion for configured redirect URI"}}}}}},"security":[{"BearerAuth":[]}]}},"/v1/workspace/connections/{provider}/obo":{"post":{"summary":"Exchange an OBO subject token when provider supports it","operationId":"workspaceConnectionObo","tags":["workspace"],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"}}}}}},"401":{"description":"Registered API key or admin bearer token required"},"503":{"description":"Tool temporarily unavailable"}},"x-iteratools-tool-id":"workspace/connection/obo","x-iteratools-price-usdc":0,"x-iteratools-risk":"high","x-iteratools-availability":"disabled","x-iteratools-availability-reason":"No current Workspace provider supports a general OBO grant","x-iteratools-supports-code-mode":false,"parameters":[{"name":"provider","in":"path","required":true,"description":"Path value for provider","schema":{"type":"string","description":"Provider id","enum":["drive","docs","gmail","notion","jira","confluence","linear"]},"x-iteratools-input-name":"provider"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"subject_token":{"type":"string","description":"Sensitive subject token; JSON body only"}},"required":["subject_token"]}}}},"security":[{"BearerAuth":[]}]}},"/v1/workspace/connections":{"get":{"summary":"List owner Workspace connections","operationId":"workspaceConnectionList","tags":["workspace"],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"count":{"type":"integer"},"connections":{"type":"array","items":{"type":"object"}}}}}}},"401":{"description":"Registered API key or admin bearer token required"}},"x-iteratools-tool-id":"workspace/connection/list","x-iteratools-price-usdc":0,"x-iteratools-risk":"low","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"parameters":[{"name":"provider","in":"query","required":false,"schema":{"type":"string","description":"Optional provider filter","enum":["drive","docs","gmail","notion","jira","confluence","linear"]}}],"security":[{"BearerAuth":[]}]}},"/v1/workspace/connections/{id}":{"get":{"summary":"Get owner Workspace connection status","operationId":"workspaceConnectionGet","tags":["workspace"],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"connection":{"type":"object","description":"Token-free connection status metadata"}}}}}},"401":{"description":"Registered API key or admin bearer token required"}},"x-iteratools-tool-id":"workspace/connection/get","x-iteratools-price-usdc":0,"x-iteratools-risk":"low","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"parameters":[{"name":"id","in":"path","required":true,"description":"Path value for connection_id","schema":{"type":"string","description":"Connection id"},"x-iteratools-input-name":"connection_id"}],"security":[{"BearerAuth":[]}]},"delete":{"summary":"Revoke and erase an owner Workspace connection token","operationId":"workspaceConnectionRevoke","tags":["workspace"],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"connection":{"type":"object","description":"Token-free connection status metadata"}}}}}},"401":{"description":"Registered API key or admin bearer token required"}},"x-iteratools-tool-id":"workspace/connection/revoke","x-iteratools-price-usdc":0,"x-iteratools-risk":"high","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"parameters":[{"name":"id","in":"path","required":true,"description":"Path value for connection_id","schema":{"type":"string","description":"Connection id"},"x-iteratools-input-name":"connection_id"}],"security":[{"BearerAuth":[]}]}},"/v1/workspace/connections/{id}/refresh":{"post":{"summary":"Refresh an owner Workspace connection","operationId":"workspaceConnectionRefresh","tags":["workspace"],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"connection":{"type":"object","description":"Token-free connection status metadata"}}}}}},"401":{"description":"Registered API key or admin bearer token required"}},"x-iteratools-tool-id":"workspace/connection/refresh","x-iteratools-price-usdc":0,"x-iteratools-risk":"medium","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"parameters":[{"name":"id","in":"path","required":true,"description":"Path value for connection_id","schema":{"type":"string","description":"Connection id"},"x-iteratools-input-name":"connection_id"}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{}}}}},"security":[{"BearerAuth":[]}]}},"/v1/workspace/audit":{"get":{"summary":"List owner Workspace audit events","operationId":"workspaceAuditList","tags":["workspace"],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"count":{"type":"integer"},"events":{"type":"array","items":{"type":"object"}}}}}}},"401":{"description":"Registered API key or admin bearer token required"}},"x-iteratools-tool-id":"workspace/audit/list","x-iteratools-price-usdc":0,"x-iteratools-risk":"low","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":true,"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":100}}],"security":[{"BearerAuth":[]}]}},"/v1/tasks":{"post":{"summary":"Create a queued owner-scoped Task Runtime DAG","operationId":"taskCreate","tags":["task-runtime"],"responses":{"200":{"description":"Successful idempotent replay","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"idempotent_replay":{"type":"boolean"},"task":{"type":"object","description":"Versioned Task Runtime task including DAG steps, budgets, usage and evidence summaries"}}}}}},"201":{"description":"Resource created","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"idempotent_replay":{"type":"boolean"},"task":{"type":"object","description":"Versioned Task Runtime task including DAG steps, budgets, usage and evidence summaries"}}}}}},"401":{"description":"Registered API key or admin bearer token required"}},"x-iteratools-tool-id":"task/create","x-iteratools-price-usdc":0,"x-iteratools-risk":"medium","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":false,"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","description":"Safe idempotency key","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$"},"description":"Preferred idempotency transport. The JSON body alias idempotency_key is also accepted; if both are sent they must match exactly.","x-iteratools-input-name":"idempotency_key","x-iteratools-body-alias":true}],"requestBody":{"required":true,"description":"idempotency_key is a legacy body alias for Idempotency-Key; if both are present they must match exactly.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["steps"],"properties":{"idempotency_key":{"type":"string","description":"Legacy JSON-body alias for Idempotency-Key; if both are sent they must match exactly.","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$"},"name":{"type":"string","description":"Optional task display name","maxLength":160},"deadline_seconds":{"type":"integer","minimum":1,"maximum":86400,"default":900},"budget":{"type":"object","additionalProperties":false,"properties":{"max_wall_time_ms":{"type":"integer","minimum":1,"maximum":3600000,"default":300000},"max_attempts":{"type":"integer","minimum":1,"maximum":200,"default":10},"max_actions":{"type":"integer","minimum":1,"maximum":100,"default":10},"max_bytes":{"type":"integer","minimum":1,"maximum":104857600,"default":1048576},"max_cost_usd":{"type":"number","minimum":0,"maximum":5,"default":0}}},"retry_policy":{"type":"object","additionalProperties":false,"properties":{"max_attempts_per_step":{"type":"integer","minimum":1,"maximum":10,"default":3},"base_delay_ms":{"type":"integer","minimum":0,"maximum":60000,"default":500},"max_delay_ms":{"type":"integer","minimum":0,"maximum":600000,"default":30000},"jitter_ratio":{"type":"number","minimum":0,"maximum":1,"default":0.2}}},"metadata":{"type":"object","description":"Passive task metadata; never interpreted as commands"},"expected":{"type":"array","maxItems":32,"items":{"type":"object"},"description":"Safe declarative task outcome assertions; no executable code"},"steps":{"type":"array","minItems":1,"maxItems":50,"items":{"type":"object","additionalProperties":false,"required":["id","action_ref","input"],"properties":{"id":{"type":"string","description":"Stable step key","pattern":"^[A-Za-z][A-Za-z0-9_-]{0,63}$"},"action_ref":{"type":"string","description":"Canonical allowed action id: computer/lease/action/execute or workspace/{provider}/{action}"},"input":{"type":"object","description":"Validated adapter input; never an arbitrary command envelope"},"depends_on":{"type":"array","uniqueItems":true,"items":{"type":"string","description":"Prior step key"}},"approval":{"type":"object","description":"Required for mutations: {approved:true, reason}"},"expected":{"type":"array","maxItems":32,"items":{"type":"object"},"description":"Safe declarative step outcome assertions"}}}}}}}}},"security":[{"BearerAuth":[]}]},"get":{"summary":"List owner Task Runtime tasks","operationId":"taskList","tags":["task-runtime"],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"count":{"type":"integer"},"tasks":{"type":"array","items":{"type":"object","description":"Versioned Task Runtime task including DAG steps, budgets, usage and evidence summaries"}}}}}}},"401":{"description":"Registered API key or admin bearer token required"}},"x-iteratools-tool-id":"task/list","x-iteratools-price-usdc":0,"x-iteratools-risk":"low","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":false,"parameters":[{"name":"state","in":"query","required":false,"schema":{"type":"string","enum":["queued","running","paused","cancelling","cancelled","succeeded","failed","exhausted"]}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":100}}],"security":[{"BearerAuth":[]}]}},"/v1/tasks/{id}":{"get":{"summary":"Get one owner Task Runtime task","operationId":"taskGet","tags":["task-runtime"],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"task":{"type":"object","description":"Versioned Task Runtime task including DAG steps, budgets, usage and evidence summaries"}}}}}},"401":{"description":"Registered API key or admin bearer token required"}},"x-iteratools-tool-id":"task/get","x-iteratools-price-usdc":0,"x-iteratools-risk":"low","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":false,"parameters":[{"name":"id","in":"path","required":true,"description":"Path value for task_id","schema":{"type":"string","description":"Owner-scoped task id"},"x-iteratools-input-name":"task_id"}],"security":[{"BearerAuth":[]}]}},"/v1/tasks/{id}/start":{"post":{"summary":"Start a queued Task Runtime task","operationId":"taskStart","tags":["task-runtime"],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"idempotent_replay":{"type":"boolean"},"task":{"type":"object","description":"Versioned Task Runtime task including DAG steps, budgets, usage and evidence summaries"}}}}}},"401":{"description":"Registered API key or admin bearer token required"}},"x-iteratools-tool-id":"task/start","x-iteratools-price-usdc":0,"x-iteratools-risk":"medium","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":false,"parameters":[{"name":"id","in":"path","required":true,"description":"Path value for task_id","schema":{"type":"string","description":"Owner-scoped task id"},"x-iteratools-input-name":"task_id"},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","description":"Safe idempotency key","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$"},"description":"Preferred idempotency transport. The JSON body alias idempotency_key is also accepted; if both are sent they must match exactly.","x-iteratools-input-name":"idempotency_key","x-iteratools-body-alias":true}],"requestBody":{"required":false,"description":"idempotency_key is a legacy body alias for Idempotency-Key; if both are present they must match exactly.","content":{"application/json":{"schema":{"type":"object","properties":{"idempotency_key":{"type":"string","description":"Legacy JSON-body alias for Idempotency-Key; if both are sent they must match exactly.","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$"}}}}}},"security":[{"BearerAuth":[]}]}},"/v1/tasks/{id}/pause":{"post":{"summary":"Cooperatively pause a queued or running task","operationId":"taskPause","tags":["task-runtime"],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"idempotent_replay":{"type":"boolean"},"task":{"type":"object","description":"Versioned Task Runtime task including DAG steps, budgets, usage and evidence summaries"}}}}}},"401":{"description":"Registered API key or admin bearer token required"}},"x-iteratools-tool-id":"task/pause","x-iteratools-price-usdc":0,"x-iteratools-risk":"medium","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":false,"parameters":[{"name":"id","in":"path","required":true,"description":"Path value for task_id","schema":{"type":"string","description":"Owner-scoped task id"},"x-iteratools-input-name":"task_id"},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","description":"Safe idempotency key","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$"},"description":"Preferred idempotency transport. The JSON body alias idempotency_key is also accepted; if both are sent they must match exactly.","x-iteratools-input-name":"idempotency_key","x-iteratools-body-alias":true}],"requestBody":{"required":false,"description":"idempotency_key is a legacy body alias for Idempotency-Key; if both are present they must match exactly.","content":{"application/json":{"schema":{"type":"object","properties":{"idempotency_key":{"type":"string","description":"Legacy JSON-body alias for Idempotency-Key; if both are sent they must match exactly.","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$"}}}}}},"security":[{"BearerAuth":[]}]}},"/v1/tasks/{id}/resume":{"post":{"summary":"Resume a paused task back to the queue","operationId":"taskResume","tags":["task-runtime"],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"idempotent_replay":{"type":"boolean"},"task":{"type":"object","description":"Versioned Task Runtime task including DAG steps, budgets, usage and evidence summaries"}}}}}},"401":{"description":"Registered API key or admin bearer token required"}},"x-iteratools-tool-id":"task/resume","x-iteratools-price-usdc":0,"x-iteratools-risk":"medium","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":false,"parameters":[{"name":"id","in":"path","required":true,"description":"Path value for task_id","schema":{"type":"string","description":"Owner-scoped task id"},"x-iteratools-input-name":"task_id"},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","description":"Safe idempotency key","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$"},"description":"Preferred idempotency transport. The JSON body alias idempotency_key is also accepted; if both are sent they must match exactly.","x-iteratools-input-name":"idempotency_key","x-iteratools-body-alias":true}],"requestBody":{"required":false,"description":"idempotency_key is a legacy body alias for Idempotency-Key; if both are present they must match exactly.","content":{"application/json":{"schema":{"type":"object","properties":{"idempotency_key":{"type":"string","description":"Legacy JSON-body alias for Idempotency-Key; if both are sent they must match exactly.","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$"}}}}}},"security":[{"BearerAuth":[]}]}},"/v1/tasks/{id}/cancel":{"post":{"summary":"Cooperatively cancel a Task Runtime task","operationId":"taskCancel","tags":["task-runtime"],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"idempotent_replay":{"type":"boolean"},"task":{"type":"object","description":"Versioned Task Runtime task including DAG steps, budgets, usage and evidence summaries"}}}}}},"401":{"description":"Registered API key or admin bearer token required"}},"x-iteratools-tool-id":"task/cancel","x-iteratools-price-usdc":0,"x-iteratools-risk":"high","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":false,"parameters":[{"name":"id","in":"path","required":true,"description":"Path value for task_id","schema":{"type":"string","description":"Owner-scoped task id"},"x-iteratools-input-name":"task_id"},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","description":"Safe idempotency key","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$"},"description":"Preferred idempotency transport. The JSON body alias idempotency_key is also accepted; if both are sent they must match exactly.","x-iteratools-input-name":"idempotency_key","x-iteratools-body-alias":true}],"requestBody":{"required":false,"description":"idempotency_key is a legacy body alias for Idempotency-Key; if both are present they must match exactly.","content":{"application/json":{"schema":{"type":"object","properties":{"idempotency_key":{"type":"string","description":"Legacy JSON-body alias for Idempotency-Key; if both are sent they must match exactly.","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$"}}}}}},"security":[{"BearerAuth":[]}]}},"/v1/tasks/{id}/retry":{"post":{"summary":"Retry a failed or exhausted task when no mutation is ambiguous","operationId":"taskRetry","tags":["task-runtime"],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"idempotent_replay":{"type":"boolean"},"task":{"type":"object","description":"Versioned Task Runtime task including DAG steps, budgets, usage and evidence summaries"}}}}}},"401":{"description":"Registered API key or admin bearer token required"}},"x-iteratools-tool-id":"task/retry","x-iteratools-price-usdc":0,"x-iteratools-risk":"high","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":false,"parameters":[{"name":"id","in":"path","required":true,"description":"Path value for task_id","schema":{"type":"string","description":"Owner-scoped task id"},"x-iteratools-input-name":"task_id"},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","description":"Safe idempotency key","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$"},"description":"Preferred idempotency transport. The JSON body alias idempotency_key is also accepted; if both are sent they must match exactly.","x-iteratools-input-name":"idempotency_key","x-iteratools-body-alias":true}],"requestBody":{"required":false,"description":"idempotency_key is a legacy body alias for Idempotency-Key; if both are present they must match exactly.","content":{"application/json":{"schema":{"type":"object","properties":{"idempotency_key":{"type":"string","description":"Legacy JSON-body alias for Idempotency-Key; if both are sent they must match exactly.","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$"}}}}}},"security":[{"BearerAuth":[]}]}},"/v1/tasks/{id}/steps/{stepId}/reconcile":{"post":{"summary":"Resolve an ambiguous mutation from external evidence","operationId":"taskReconcile","tags":["task-runtime"],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"idempotent_replay":{"type":"boolean"},"task":{"type":"object","description":"Versioned Task Runtime task including DAG steps, budgets, usage and evidence summaries"}}}}}},"401":{"description":"Registered API key or admin bearer token required"}},"x-iteratools-tool-id":"task/reconcile","x-iteratools-price-usdc":0,"x-iteratools-risk":"high","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":false,"parameters":[{"name":"id","in":"path","required":true,"description":"Path value for task_id","schema":{"type":"string","description":"Owner-scoped task id"},"x-iteratools-input-name":"task_id"},{"name":"stepId","in":"path","required":true,"description":"Path value for step_id","schema":{"type":"string","description":"Task step id"},"x-iteratools-input-name":"step_id"},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","description":"Safe idempotency key","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$"},"description":"Preferred idempotency transport. The JSON body alias idempotency_key is also accepted; if both are sent they must match exactly.","x-iteratools-input-name":"idempotency_key","x-iteratools-body-alias":true}],"requestBody":{"required":true,"description":"idempotency_key is a legacy body alias for Idempotency-Key; if both are present they must match exactly.","content":{"application/json":{"schema":{"type":"object","required":["outcome","evidence"],"properties":{"idempotency_key":{"type":"string","description":"Legacy JSON-body alias for Idempotency-Key; if both are sent they must match exactly.","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$"},"outcome":{"type":"string","enum":["succeeded","failed"]},"evidence":{"type":"object","description":"JSON evidence capped at 262144 bytes and atomically charged to task max_bytes"},"approval":{"type":"object","description":"Auditable admin/owner reconciliation approval"}}}}}},"security":[{"BearerAuth":[]}]}},"/v1/tasks/{id}/evidence":{"get":{"summary":"List immutable step evidence and receipts","operationId":"taskEvidenceList","tags":["task-runtime"],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"count":{"type":"integer"},"artifacts":{"type":"array","items":{"type":"object"}}}}}}},"401":{"description":"Registered API key or admin bearer token required"}},"x-iteratools-tool-id":"task/evidence/list","x-iteratools-price-usdc":0,"x-iteratools-risk":"low","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":false,"parameters":[{"name":"id","in":"path","required":true,"description":"Path value for task_id","schema":{"type":"string","description":"Owner-scoped task id"},"x-iteratools-input-name":"task_id"}],"security":[{"BearerAuth":[]}]}},"/v1/tasks/{id}/audit":{"get":{"summary":"List append-only Task Runtime audit events","operationId":"taskAuditList","tags":["task-runtime"],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"count":{"type":"integer"},"events":{"type":"array","items":{"type":"object"}}}}}}},"401":{"description":"Registered API key or admin bearer token required"}},"x-iteratools-tool-id":"task/audit/list","x-iteratools-price-usdc":0,"x-iteratools-risk":"low","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":false,"parameters":[{"name":"id","in":"path","required":true,"description":"Path value for task_id","schema":{"type":"string","description":"Owner-scoped task id"},"x-iteratools-input-name":"task_id"}],"security":[{"BearerAuth":[]}]}},"/v1/tasks/runtime/health":{"get":{"summary":"Inspect local Task Runtime worker availability without executing work","operationId":"taskRuntimeHealth","tags":["task-runtime"],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"runtime":{"type":"object"}}}}}},"401":{"description":"Registered API key or admin bearer token required"}},"x-iteratools-tool-id":"task/runtime/health","x-iteratools-price-usdc":0,"x-iteratools-risk":"low","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":false,"security":[{"BearerAuth":[]}]}},"/v1/quality/policies":{"post":{"summary":"Create and activate an immutable owner-scoped quality policy version","operationId":"qualityPolicyCreate","tags":["quality-gate"],"responses":{"200":{"description":"Successful idempotent replay","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"created":{"type":"boolean"},"activated":{"type":"boolean"},"version":{"type":"integer"},"policy_hash":{"type":"string","description":"Canonical policy SHA-256"},"policy":{"type":"object"}}}}}},"201":{"description":"Resource created","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"created":{"type":"boolean"},"activated":{"type":"boolean"},"version":{"type":"integer"},"policy_hash":{"type":"string","description":"Canonical policy SHA-256"},"policy":{"type":"object"}}}}}},"401":{"description":"Registered API key or admin bearer token required"}},"x-iteratools-tool-id":"quality/policy/create","x-iteratools-price-usdc":0,"x-iteratools-risk":"medium","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":false,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string","description":"Policy name","maxLength":120},"default_effect":{"type":"string","enum":["allow","deny"]},"approvals_for_mutations":{"type":"boolean"},"live_replay_enabled":{"type":"boolean"},"live_mutations_enabled":{"type":"boolean"},"rules":{"type":"array","maxItems":64,"items":{"type":"object"}}}}}}},"security":[{"BearerAuth":[]}]},"get":{"summary":"List owner-scoped immutable quality policy versions","operationId":"qualityPolicyList","tags":["quality-gate"],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"count":{"type":"integer"},"policies":{"type":"array","items":{"type":"object"}}}}}}},"401":{"description":"Registered API key or admin bearer token required"}},"x-iteratools-tool-id":"quality/policy/list","x-iteratools-price-usdc":0,"x-iteratools-risk":"low","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":false,"parameters":[{"name":"version","in":"query","required":false,"schema":{"type":"integer","minimum":1}}],"security":[{"BearerAuth":[]}]}},"/v1/quality/evaluate":{"post":{"summary":"Evaluate recorded evidence with the bounded declarative evaluator","operationId":"qualityEvaluate","tags":["quality-gate"],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"evaluation":{"type":"object"}}}}}},"401":{"description":"Registered API key or admin bearer token required"}},"x-iteratools-tool-id":"quality/evaluate","x-iteratools-price-usdc":0,"x-iteratools-risk":"low","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":false,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["expected","status"],"properties":{"expected":{"type":"array","maxItems":32,"items":{"type":"object"},"description":"Safe declarative assertions only; executable code is forbidden"},"status":{"type":"string","description":"Recorded outcome status"},"output":{},"artifact":{"type":"object"},"receipt":{"type":"object"},"timing_ms":{"type":"number","minimum":0},"cost_usd":{"type":"number","minimum":0},"bytes":{"type":"integer","minimum":0}}}}}},"security":[{"BearerAuth":[]}]}},"/v1/tasks/{id}/replay-manifest":{"get":{"summary":"Get or seal an immutable owner-scoped task replay manifest","operationId":"qualityManifestGet","tags":["quality-gate"],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"manifest":{"type":"object"}}}}}},"401":{"description":"Registered API key or admin bearer token required"}},"x-iteratools-tool-id":"quality/manifest/get","x-iteratools-price-usdc":0,"x-iteratools-risk":"low","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":false,"parameters":[{"name":"id","in":"path","required":true,"description":"Path value for task_id","schema":{"type":"string","description":"Owner-scoped Task Runtime task id"},"x-iteratools-input-name":"task_id"}],"security":[{"BearerAuth":[]}]}},"/v1/quality/replay":{"post":{"summary":"Deterministically dry-replay evidence; live replay is off by default","operationId":"qualityReplay","tags":["quality-gate"],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"replay":{"type":"object"}}}}}},"401":{"description":"Registered API key or admin bearer token required"}},"x-iteratools-tool-id":"quality/replay","x-iteratools-price-usdc":0,"x-iteratools-risk":"high","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":false,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"manifest_id":{"type":"string","description":"Stored owner-scoped manifest id"},"manifest":{"type":"object"},"manifest_hash":{"type":"string","description":"Canonical manifest SHA-256"},"mode":{"type":"string","enum":["dry","live"],"default":"dry"},"allow_drift":{"type":"boolean"},"live_idempotency_key":{"type":"string","description":"New idempotency key required for live mutations"},"approval":{"type":"object"}}}}}},"security":[{"BearerAuth":[]}]}},"/v1/quality/metrics":{"get":{"summary":"Get owner-scoped local quality aggregates without PII or secrets","operationId":"qualityMetrics","tags":["quality-gate"],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"metrics":{"type":"object"}}}}}},"401":{"description":"Registered API key or admin bearer token required"}},"x-iteratools-tool-id":"quality/metrics","x-iteratools-price-usdc":0,"x-iteratools-risk":"low","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":false,"parameters":[{"name":"from","in":"query","required":false,"schema":{"type":"string","description":"Optional first UTC day YYYY-MM-DD","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}}],"security":[{"BearerAuth":[]}]}},"/v1/quality/audit":{"get":{"summary":"List owner-scoped append-only quality decisions","operationId":"qualityAuditList","tags":["quality-gate"],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"count":{"type":"integer"},"events":{"type":"array","items":{"type":"object"}}}}}}},"401":{"description":"Registered API key or admin bearer token required"}},"x-iteratools-tool-id":"quality/audit/list","x-iteratools-price-usdc":0,"x-iteratools-risk":"low","x-iteratools-availability":"available","x-iteratools-availability-reason":null,"x-iteratools-supports-code-mode":false,"parameters":[{"name":"task_id","in":"query","required":false,"schema":{"type":"string","description":"Owner-scoped Task Runtime task id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":200}}],"security":[{"BearerAuth":[]}]}}}}