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.
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
| Code | Meaning |
|---|---|
| 200 | Success |
| 400 | Bad request β missing or invalid parameters |
| 402 | Payment required β insufficient credits or x402 flow |
| 429 | Rate limit exceeded β slow down |
| 500 | Internal server error β try again |
All Tools Reference
| Tool | Endpoint | Price |
|---|---|---|
| πΌοΈ Image Generate | POST /image/generate | $0.005 |
| πΌοΈ Image Fast | POST /image/fast | $0.002 |
| πΌοΈ Image Describe | POST /image/describe | $0.002 |
| πΌοΈ Image BG Remove | POST /image/rembg | $0.005 |
| πΌοΈ Image OCR | POST /image/ocr | $0.002 |
| π¬ Video Generate | POST /video/generate | $0.05 |
| π¬ Video Transcribe | POST /video/transcribe | $0.003 |
| π§ Memory Upsert | POST /memory/upsert | $0.001 |
| π§ Memory Search | POST /memory/search | $0.001 |
| π§ Memory Clear | POST /memory/clear | $0.001 |
| π€ AI Chat | POST /ai/chat | $0.001β$0.01 |
| π» Code Execute | POST /code_execute | $0.005 |
| π Web Scrape | POST /scrape | $0.002 |
| πΈ Screenshot | POST /screenshot | $0.002 |
| π Web Search | POST /search | $0.002 |
| π·οΈ Web Crawl | POST /crawl | $0.002/page |
| π₯οΈ Browser Act | POST /browser/act | $0.01 |
| π PDF Extract | POST /pdf/extract | $0.001 |
| π PDF Generate | POST /pdf/generate | $0.002 |
| π TTS | POST /tts | $0.001 |
| ποΈ Transcribe | POST /audio/transcribe | $0.003 |
| π¬ WhatsApp Send | POST /whatsapp/send | $0.07/conv |
| π± SMS Send | POST /sms/send | $0.01 |
| πΌ Slack Send | POST /slack/send | $0.001 |
| πΌ Slack Post | POST /slack/post | $0.001 |
| πΌ Slack React | POST /slack/react | $0.001 |
| π GitHub Repo | GET /github/repo | $0.001 |
| π GitHub Issue | POST /github/issue | $0.001 |
| π GitHub Search | GET /github/search | $0.001 |
| π GitHub File | GET /github/file | $0.001 |
| π Sheets Read | GET /sheets/read | $0.001 |
| π Sheets Write | POST /sheets/write | $0.002 |
| π Sheets Append | POST /sheets/append | $0.002 |
| π Calendar Create | POST /calendar/event | $0.002 |
| π Calendar List | POST /calendar/list | $0.001 |
| π Calendar Update | POST /calendar/update | $0.002 |
| π Calendar Delete | POST /calendar/delete | $0.001 |
| π Translate | POST /translate | $0.001 |
| π² QR Code | POST /qrcode | $0.001 |
| π Barcode | POST /barcode | $0.001 |
| π€οΈ Weather | GET /weather | $0.001 |
| π± Currency | GET /currency/convert | $0.001 |
| π DNS Lookup | POST /dns/lookup | $0.001 |
| #οΈβ£ Hash | POST /hash | $0.001 |
| βοΈ Summarize | POST /summarize | $0.002 |
| π Sentiment | POST /sentiment | $0.001 |
| π’ Embeddings | POST /embeddings | $0.001 |
| π Chart | POST /chart/generate | $0.002 |
| π Doc Convert | POST /document/convert | $0.005 |
| π Spreadsheet | POST /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
π Web Search
Real-time web search results. Give your agent up-to-date knowledge.
POST /search β $0.002
{
"query": "latest AI news 2026",
"limit": 5
}request
{
"results": [
{ "title": "...", "url": "https://...", "snippet": "..." }
],
"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)
| Window | Max Conversations |
|---|---|
| Per hour | 10 |
| Per day | 50 |
| Unique numbers / hour | 20 (spam detection) |
Contact Cooldown
Minimum 48 hours before re-contacting the same number.
WhatsApp Error Codes
| HTTP | Error Code | Meaning |
|---|---|---|
| 429 | number_blocklisted | Number opted out |
| 429 | cooldown | Number contacted too recently (<48h) |
| 429 | rate_limit_hour | Hourly limit reached |
| 429 | rate_limit_day | Daily limit reached |
| 429 | spam_pattern | Key suspended (spam detected) |
| 400 | callback_url must be HTTPS | Invalid callback URL |
π‘ Use Cases
Explore real-world patterns and agent implementations built with IteraTools.
| Use Case | Tools 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
| URL | https://mcp.iteratools.com/mcp |
| Protocol | StreamableHTTP (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.