API Documentation

Everything you need to integrate IteraTools into your AI agent or application. 80+ tools, pay-per-use.

Quick Start

The IteraTools API is available at https://api.iteratools.com. All endpoints accept JSON and return JSON.

πŸš€ Fastest way to start
Find IteraTools on smithery.ai and add it to your MCP client. Your AI agent can then call tools automatically with zero config.

Or install the Python SDK: pip install iteratools β€” SDK docs β†’

Your first call

# Generate an image in one line
curl -X POST https://api.iteratools.com/image/generate \
  -H "Authorization: Bearer it-YOUR-API-KEY" \
  -H "Content-Type: application/json" \
  -d '{"prompt": "a futuristic city at sunset, photorealistic"}'
bash
{
  "success": true,
  "url": "https://replicate.delivery/...",
  "cost_usd": 0.005,
  "model": "flux-1.1-pro"
}
json

Authentication

IteraTools supports two authentication methods depending on your use case.

API Key β€” Pre-paid Credits

Buy credits via Stripe (card, no crypto needed) and authenticate with a Bearer token.

1. Create an API key

curl -X POST https://api.iteratools.com/credits/keys \
  -H "Content-Type: application/json" \
  -d '{"email": "you@example.com"}'

# Response: { "api_key": "it-XXXX-XXXX-XXXX", "credits_usd": 0 }
bash

2. Top up credits

curl -X POST https://api.iteratools.com/credits/checkout \
  -H "Content-Type: application/json" \
  -d '{
    "api_key": "it-XXXX-XXXX-XXXX",
    "amount_usd": 10,
    "success_url": "https://yourapp.com/success",
    "cancel_url": "https://yourapp.com/cancel"
  }'

# Open checkout_url in browser to pay via card
bash

3. Use tools with Bearer auth

curl -X POST https://api.iteratools.com/search \
  -H "Authorization: Bearer it-XXXX-XXXX-XXXX" \
  -H "Content-Type: application/json" \
  -d '{"query": "latest AI news"}'
bash

x402 β€” For AI Agents (Recommended)

The x402 protocol enables automatic micropayments in USDC on Base blockchain β€” no signup, no credit card.

curl -X POST https://api.iteratools.com/search \
  -H "Content-Type: application/json" \
  -H "X-Payment: <x402-payment-token>" \
  -d '{"query": "latest AI news"}'
bash

Errors

CodeMeaning
200Success
400Bad request β€” missing or invalid parameters
402Payment required β€” insufficient credits or x402 flow
429Rate limit exceeded β€” slow down
500Internal server error β€” try again

All Tools Reference

ToolEndpointPrice
πŸ–ΌοΈ Image GeneratePOST /image/generate$0.005
πŸ–ΌοΈ Image FastPOST /image/fast$0.002
πŸ–ΌοΈ Image DescribePOST /image/describe$0.002
πŸ–ΌοΈ Image BG RemovePOST /image/rembg$0.005
πŸ–ΌοΈ Image OCRPOST /image/ocr$0.002
🎬 Video GeneratePOST /video/generate$0.05
🎬 Video TranscribePOST /video/transcribe$0.003
🧠 Memory UpsertPOST /memory/upsert$0.001
🧠 Memory SearchPOST /memory/search$0.001
🧠 Memory ClearPOST /memory/clear$0.001
πŸ€– AI ChatPOST /ai/chat$0.001–$0.01
πŸ’» Code ExecutePOST /code_execute$0.005
πŸ” Web ScrapePOST /scrape$0.002
πŸ“Έ ScreenshotPOST /screenshot$0.002
🌐 Web SearchPOST /search$0.002
πŸ•·οΈ Web CrawlPOST /crawl$0.002/page
πŸ–₯️ Browser ActPOST /browser/act$0.01
πŸ“„ PDF ExtractPOST /pdf/extract$0.001
πŸ“„ PDF GeneratePOST /pdf/generate$0.002
πŸ”Š TTSPOST /tts$0.001
πŸŽ™οΈ TranscribePOST /audio/transcribe$0.003
πŸ’¬ WhatsApp SendPOST /whatsapp/send$0.07/conv
πŸ“± SMS SendPOST /sms/send$0.01
πŸ’Ό Slack SendPOST /slack/send$0.001
πŸ’Ό Slack PostPOST /slack/post$0.001
πŸ’Ό Slack ReactPOST /slack/react$0.001
πŸ™ GitHub RepoGET /github/repo$0.001
πŸ™ GitHub IssuePOST /github/issue$0.001
πŸ™ GitHub SearchGET /github/search$0.001
πŸ™ GitHub FileGET /github/file$0.001
πŸ“Š Sheets ReadGET /sheets/read$0.001
πŸ“Š Sheets WritePOST /sheets/write$0.002
πŸ“Š Sheets AppendPOST /sheets/append$0.002
πŸ“… Calendar CreatePOST /calendar/event$0.002
πŸ“… Calendar ListPOST /calendar/list$0.001
πŸ“… Calendar UpdatePOST /calendar/update$0.002
πŸ“… Calendar DeletePOST /calendar/delete$0.001
🌍 TranslatePOST /translate$0.001
πŸ”² QR CodePOST /qrcode$0.001
πŸ“Š BarcodePOST /barcode$0.001
🌀️ WeatherGET /weather$0.001
πŸ’± CurrencyGET /currency/convert$0.001
πŸ” DNS LookupPOST /dns/lookup$0.001
#️⃣ HashPOST /hash$0.001
✍️ SummarizePOST /summarize$0.002
πŸ’­ SentimentPOST /sentiment$0.001
πŸ”’ EmbeddingsPOST /embeddings$0.001
πŸ“ˆ ChartPOST /chart/generate$0.002
πŸ“‚ Doc ConvertPOST /document/convert$0.005
πŸ“‹ SpreadsheetPOST /spreadsheet/read$0.002

πŸ–ΌοΈ Image Generation

Generate photorealistic images using Flux 1.1 Pro or quick drafts with Flux Schnell.

POST /image/generate β€” $0.005

{
  "prompt": "a dragon flying over a cyberpunk city, 8K, cinematic",
  "width": 1024,
  "height": 1024
}request
{
  "success": true,
  "url": "https://replicate.delivery/...",
  "cost_usd": 0.005,
  "model": "flux-1.1-pro"
}response

POST /image/fast β€” $0.002

Flux Schnell β€” faster and cheaper draft-quality images.

POST /image/rembg β€” $0.005

{ "image_url": "https://example.com/photo.jpg" }request
{ "url": "https://...transparent.png", "cost_usd": 0.005 }response

POST /image/ocr β€” $0.002

{ "image_url": "https://example.com/screenshot.png" }request
{ "text": "Extracted text from image...", "cost_usd": 0.002 }response

🎬 Video Generation

Generate 5-second cinematic videos from text prompts using Kling v1.6 Pro.

POST /video/generate β€” $0.05

{
  "prompt": "a rocket launching at night, slow motion, dramatic"
}request
{
  "success": true,
  "url": "https://...",
  "cost_usd": 0.05,
  "model": "kling-v1.6-pro"
}response

πŸ€– AI Chat

Chat completion via multiple AI providers with a single endpoint. Supports OpenAI, Anthropic, and more.

POST /ai/chat β€” $0.001–$0.01

{
  "messages": [
    { "role": "user", "content": "What is the capital of Brazil?" }
  ],
  "model": "gpt-4o-mini"   // gpt-4o, claude-3-haiku, etc.
}request
{
  "success": true,
  "content": "The capital of Brazil is BrasΓ­lia.",
  "model": "gpt-4o-mini",
  "cost_usd": 0.001
}response

🧠 Memory & RAG

Persistent vector memory for AI agents. Store facts, documents, and context β€” then retrieve them by semantic similarity across sessions.

POST /memory/upsert β€” $0.001

{
  "namespace": "user-123",   // logical partition
  "key": "fact-1",           // unique document id
  "text": "The meeting is scheduled for Friday at 3pm.",
  "metadata": { "type": "calendar", "date": "2026-03-27" }
}request
{
  "success": true,
  "id": "fact-1",
  "cost_usd": 0.001
}response

POST /memory/search β€” $0.001

{
  "namespace": "user-123",
  "query": "when is the meeting?",
  "limit": 3
}request
{
  "success": true,
  "results": [
    {
      "key": "fact-1",
      "text": "The meeting is scheduled for Friday at 3pm.",
      "score": 0.94,
      "metadata": { "type": "calendar" }
    }
  ],
  "cost_usd": 0.001
}response

POST /memory/clear β€” $0.001

{
  "namespace": "user-123",
  "key": "fact-1"   // omit to clear entire namespace
}request

πŸ’» Code Execution

Execute code in a secure sandbox. Supports Python, JavaScript, Bash and more. Perfect for agents that need to compute, transform data, or run scripts.

POST /code_execute β€” $0.005

{
  "code": "import math\nprint(math.pi * 2)\nprint([x**2 for x in range(5)])",
  "language": "python"   // python, javascript, bash
}request
{
  "success": true,
  "stdout": "6.283185307179586\n[0, 1, 4, 9, 16]\n",
  "stderr": "",
  "exit_code": 0,
  "cost_usd": 0.005
}response

πŸ” Web Scraping

Convert any URL to clean Markdown. JavaScript-rendered pages fully supported.

POST /scrape β€” $0.002

{
  "url": "https://example.com/article",
  "render_js": true
}request
{
  "success": true,
  "markdown": "# Article Title\n\nContent here...",
  "title": "Article Title",
  "cost_usd": 0.002
}response

πŸ–₯️ Browser Automation

Run Playwright browser actions against any URL β€” click, type, scroll, extract. Ideal for complex JS-heavy sites that resist basic scraping.

POST /browser/act β€” $0.01

{
  "url": "https://example.com",
  "actions": [
    { "type": "click", "selector": "button#login" },
    { "type": "type", "selector": "input[name=email]", "text": "user@example.com" },
    { "type": "screenshot" }
  ]
}request
{
  "success": true,
  "screenshot_url": "https://...",
  "html": "<html>...</html>",
  "cost_usd": 0.01
}response

πŸ”Š Text to Speech

Convert text to natural-sounding audio in 50+ languages and voices.

POST /tts β€” $0.001

{
  "text": "Hello, this is a test message.",
  "voice": "en-US-JennyNeural",
  "language": "en-US"
}request
{
  "audio_url": "https://...",
  "duration_seconds": 3.2,
  "cost_usd": 0.001
}response

πŸ“„ PDF

Extract text from PDFs or generate PDFs from HTML.

POST /pdf/extract β€” $0.001

{ "pdf_url": "https://example.com/doc.pdf" }request
{ "text": "Extracted text content...", "pages": 5, "cost_usd": 0.001 }response

POST /pdf/generate β€” $0.002

{ "html": "<h1>Invoice</h1><p>Amount: $100</p>" }request
{ "pdf_url": "https://...", "cost_usd": 0.002 }response

πŸ’¬ WhatsApp

Send WhatsApp messages anywhere in the world via WhatsApp Business API.

POST /whatsapp/send β€” $0.07/conv

{
  "to": "+5511999999999",
  "message": "Hello from your AI agent!"
}request
{
  "success": true,
  "message_id": "wamid....",
  "cost_usd": 0.07
}response

πŸ’Ό Slack

Send messages and reactions to Slack channels.

POST /slack/send β€” $0.001 (Incoming Webhook)

{
  "webhook_url": "https://hooks.slack.com/services/...",
  "message": "πŸš€ Deploy succeeded!"
}request
{ "success": true, "cost_usd": 0.001 }response

POST /slack/post β€” $0.001 (Bot Token)

{
  "channel": "#general",
  "message": "Hello from IteraTools!",
  "token": "xoxb-..."
}request

POST /slack/react β€” $0.001

{
  "channel": "C01234567",
  "timestamp": "1234567890.123456",
  "emoji": "rocket",
  "token": "xoxb-..."
}request

πŸ“± SMS

Send SMS messages worldwide.

POST /sms/send β€” $0.01

{
  "to": "+5511999999999",
  "message": "Your verification code is 123456"
}request
{ "success": true, "message_id": "sms_...", "cost_usd": 0.01 }response

πŸ™ GitHub

Interact with GitHub repositories β€” read metadata, create issues, search repos, and read files.

GET /github/repo β€” $0.001

GET /github/repo?owner=torvalds&repo=linuxrequest
{
  "name": "linux", "stars": 180000, "forks": 55000,
  "description": "Linux kernel source tree", "language": "C",
  "cost_usd": 0.001
}response

POST /github/issue β€” $0.001

{
  "owner": "myorg", "repo": "myrepo",
  "title": "Bug: login fails on Safari",
  "body": "Steps to reproduce...",
  "labels": ["bug"]
}request

GET /github/search β€” $0.001

GET /github/search?q=langchain+stars:>1000request

GET /github/file β€” $0.001

GET /github/file?owner=openai&repo=openai-python&path=README.mdrequest

πŸ“Š Google Sheets

Read and write Google Spreadsheets programmatically. Requires Google OAuth credentials configured in your account.

GET /sheets/read β€” $0.001

GET /sheets/read?spreadsheet_id=1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgVE2upms&range=Sheet1!A1:D10request
{
  "values": [
    ["Name", "Score", "Date"],
    ["Alice", 95, "2026-03-01"]
  ],
  "cost_usd": 0.001
}response

POST /sheets/write β€” $0.002

{
  "spreadsheet_id": "1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgVE2upms",
  "range": "Sheet1!A2:C2",
  "values": [["Bob", 88, "2026-03-23"]]
}request

POST /sheets/append β€” $0.002

{
  "spreadsheet_id": "...",
  "range": "Sheet1",
  "values": [["Charlie", 77, "2026-03-23"]]
}request

πŸ“… Google Calendar

Create, list, update, and delete Google Calendar events. Requires Google OAuth credentials.

POST /calendar/event β€” $0.002

{
  "summary": "Team Standup",
  "start": "2026-03-27T10:00:00-03:00",
  "end": "2026-03-27T10:30:00-03:00",
  "attendees": ["alice@example.com"],
  "description": "Weekly sync"
}request
{
  "success": true,
  "event_id": "abc123xyz",
  "html_link": "https://calendar.google.com/...",
  "cost_usd": 0.002
}response

POST /calendar/list β€” $0.001

{ "max_results": 10, "time_min": "2026-03-23T00:00:00Z" }request

POST /calendar/update β€” $0.002

{ "event_id": "abc123xyz", "summary": "Updated title" }request

POST /calendar/delete β€” $0.001

{ "event_id": "abc123xyz" }request

πŸ› οΈ Utilities

A collection of handy utilities for common agent tasks.

POST /translate β€” $0.001

{ "text": "Hello, world!", "target_lang": "pt" }request
{ "translated": "OlΓ‘, mundo!", "from_lang": "en", "cost_usd": 0.001 }response

POST /summarize β€” $0.002

{ "text": "Long article text here...", "max_sentences": 3 }request
{ "summary": "Concise summary...", "cost_usd": 0.002 }response

POST /sentiment β€” $0.001

{ "text": "This product is absolutely amazing!" }request
{ "sentiment": "positive", "score": 0.97, "cost_usd": 0.001 }response

POST /embeddings β€” $0.001

{ "text": "Sentence to embed", "model": "text-embedding-3-small" }request
{ "embedding": [0.023, -0.14, ...], "dimensions": 1536, "cost_usd": 0.001 }response

POST /hash β€” $0.001

{ "text": "my secret", "algorithm": "sha256" }request
{ "hash": "2bb80d537b1da3e38bd30361aa855686bde0eacd7162fef6a25fe97bf527a25b", "cost_usd": 0.001 }response

POST /qrcode β€” $0.001

{ "data": "https://iteratools.com", "size": 300 }request
{ "url": "https://...qr.png", "cost_usd": 0.001 }response

POST /barcode β€” $0.001

{ "data": "123456789012", "format": "EAN13" }request

POST /chart/generate β€” $0.002

{
  "type": "bar",
  "data": {
    "labels": ["Jan", "Feb", "Mar"],
    "datasets": [{ "label": "Revenue", "data": [1200, 1800, 2400] }]
  }
}request
{ "url": "https://...chart.png", "cost_usd": 0.002 }response

GET /weather β€” $0.001

GET /weather?location=SΓ£o Paulorequest
{ "temperature_c": 28, "condition": "Partly cloudy", "humidity": 72, "cost_usd": 0.001 }response

GET /currency/convert β€” $0.001

GET /currency/convert?amount=100&from_currency=USD&to_currency=BRLrequest
{ "result": 498.50, "rate": 4.985, "cost_usd": 0.001 }response

POST /dns/lookup β€” $0.001

{ "domain": "iteratools.com", "type": "A" }request
{ "records": ["104.21.45.231"], "ttl": 300, "cost_usd": 0.001 }response

πŸ›‘οΈ Rate Limits & WhatsApp Policies

To protect our shared WhatsApp Business number, the following limits apply.

WhatsApp Send Limits (per API key)

WindowMax Conversations
Per hour10
Per day50
Unique numbers / hour20 (spam detection)

Contact Cooldown

Minimum 48 hours before re-contacting the same number.

WhatsApp Error Codes

HTTPError CodeMeaning
429number_blocklistedNumber opted out
429cooldownNumber contacted too recently (<48h)
429rate_limit_hourHourly limit reached
429rate_limit_dayDaily limit reached
429spam_patternKey suspended (spam detected)
400callback_url must be HTTPSInvalid callback URL

πŸ’‘ Use Cases

Explore real-world patterns and agent implementations built with IteraTools.

Use CaseTools Used
Agent with persistent memory memory/upsert + memory/search + ai/chat
Research assistant search + scrape + summarize + memory/upsert
Content pipeline search + ai/chat + image/generate + tts
GitHub PR reviewer github/file + ai/chat + github/issue
Spreadsheet automation sheets/read + ai/chat + sheets/write
Notification agent memory/search + whatsapp/send + slack/send

πŸ”Œ MCP Integration

IteraTools is available as an MCP (Model Context Protocol) server, letting AI agents use all 80+ tools natively.

Quick Start (Local)

npx mcp-iteratoolsbash

Set your API key via environment variable:

export ITERATOOLS_API_KEY=it-YOUR-KEY
npx mcp-iteratoolsbash

Remote Server

URLhttps://mcp.iteratools.com/mcp
ProtocolStreamableHTTP (MCP 2025-03-26)

Claude Desktop Configuration

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "iteratools": {
      "command": "npx",
      "args": ["mcp-iteratools"],
      "env": {
        "ITERATOOLS_API_KEY": "your-api-key"
      }
    }
  }
}json

OpenClaw Configuration

Add to your openclaw.json mcp section:

{
  "mcp": {
    "servers": {
      "iteratools": {
        "url": "https://mcp.iteratools.com/mcp"
      }
    }
  }
}json

Cursor / Windsurf / Other MCP Clients

Use the remote URL directly:

https://mcp.iteratools.com/mcpurl

Or install locally via npm for stdio transport:

npx mcp-iteratoolsbash

Available Tools

All 80+ IteraTools endpoints are available as MCP tools. Your AI agent can call them directly β€” image generation, web scraping, TTS, memory, code execution, WhatsApp, and more. See the full list in the tools reference above.

πŸ“¦ Also available on
Smithery Β· npm Β· GitHub Β· ClawHub