Agent Media Tools API Reference

Try the interactive API playground →

Complete API documentation for both public agent tools and authenticated premium endpoints. Humans can copy-paste curl examples below. Agents can fetch /api/agent-docs for machine-readable JSON.

Building a downloadable bot?
Open the Bot Builder documentation for installation, first-run diagnostics, terminal, web, Discord, Telegram, local/cloud models, Docker and cloud deployment, AMT tools, security, and troubleshooting.

First successful request in under five minutes

Start without an account, then add a Bearer key when you need authenticated agent endpoints. You can also run supported operations from the interactive API reference.

GET/api/uuid No auth
Connectivity check with a small JSON response.
curl
curl https://agentmediatools.com/api/uuid
# {"uuid":"550e8400-e29b-41d4-a716-446655440000"}
JavaScript
const response = await fetch('https://agentmediatools.com/api/uuid');
const data = await response.json();
Python
import requests
data = requests.get('https://agentmediatools.com/api/uuid', timeout=30).json()

Authentication

Create a key in Account → API keys, store it as a secret, and send it in the Authorization header. Never put a key in a query string or browser bundle.

curl -H "Authorization: Bearer $AMT_API_KEY" \
  https://agentmediatools.com/api/agent/status

Success, errors, cost, and limits

Successful JSON endpoints return documented objects. Errors use an HTTP status plus a stable public message, for example {"error":"API key required"}. Endpoint badges identify no-auth and Bearer operations; the usage-credit table identifies paid compute. Canonical daily and burst limits are in /llms.txt; upload limits are route-specific and shown with the relevant endpoint.

Jobs, retries, and webhooks

For asynchronous media jobs, keep the returned job ID and poll the documented status endpoint, or register a completion webhook. Retry network failures and 429/5xx responses with bounded exponential backoff. Do not blindly retry a state-changing request unless the endpoint documents idempotent behavior; retain the job ID or receipt returned by an accepted operation.

Useful links:
guided first win · interactive “Try it” reference · MCP and integrations · API status · OpenAPI JSON

Local LLM Easy Mode Free · Local-first

Easy Mode works with Hermes Agent, OpenClaw, Open WebUI, LM Studio, and other MCP or OpenAI-compatible stacks. The bridge gives small models seven reliable controls backed by the complete tool catalog. Local images, documents, diagnostics, and saved workflows are free; hosted and sensitive tools remain independently disabled until you enable them. Setup guide and download →

Grok & Codex WebUIs Free · Self-hosted

Browser UIs that talk to the Grok or Codex agent already on your laptop (not a hosted chat product). Free forever with free updates; optional tips never unlock features. Paste an agent install prompt or download packages and run setup. Optional: paste an mt_ agent key in WebUI Prefs to call Agent Media Tools from the chat. Downloads, setup, and copy-paste prompts →

Useful links:
/webui · agent install prompts · optional tip · Agent Hub
Where paid plans begin: local execution remains free. Pro adds the capacity for production hosted operations: 1,000 shared calls/day, 100 monthly credits, 30-day durable artifacts, 25 schedules, 25 website watches, and Discord/Telegram notification channels. Builder raises credits, retention, and automation limits and includes most Blueprint packs. Compare plans →
GEThttp://127.0.0.1:3333/amt/runs
List bounded local diagnostics without prompt text, assistant prose, or tool arguments.
GEThttp://127.0.0.1:3333/amt/runs/:id
Inspect one local run, including tool arguments, timing, errors, usage, and local/remote privacy classifications.
POSThttp://127.0.0.1:3333/amt/runs/:id/workflow
Explicitly save successful calls as a reusable local workflow. JSON body: {"name":"My workflow"}.
GEThttp://127.0.0.1:3333/amt/workflows
List workflows saved on this machine.
POSThttp://127.0.0.1:3333/amt/workflows/:id/run
Replay through the same remote and sensitive-action permission gates. Set AMT_BRIDGE_DATA_FILE to choose the private local history file.

Public Tools No Auth Required

These endpoints are free and open. No API key, no login needed for basic operations.

Pastebin

Create and retrieve text pastes. Max 500KB. Optional time-based expiry.

POST /api/paste
Create a new paste. Returns slug + view URL + raw URL.
▶ curl example
curl -X POST https://agentmediatools.com/api/paste \
  -H "Content-Type: application/json" \
  -d '{"content": "Hello world!", "title": "my paste", "expires_in_hours": 24}'
▶ Request body
{
  "content":           "string (required)",
  "title":             "string (optional)",
  "syntax":            "string (optional, default: text)",
  "expires_in_hours":  "number (optional)",
  "is_public":         "boolean (optional, default: true)"
}
▶ Response
{
  "slug":     "abc123",
  "url":      "https://agentmediatools.com/p/abc123",
  "raw_url":  "https://agentmediatools.com/p/abc123/raw"
}
GET /p/:slug
View a paste as styled HTML page.
▶ curl example
curl https://agentmediatools.com/p/abc123
GET /p/:slug/raw
View a paste as raw text (great for agents to consume).
▶ curl example
curl https://agentmediatools.com/p/abc123/raw

Webhook Inbox

Create inboxes on the site, then any agent/service can POST payloads to them. Inspect payloads via the inspect URL.

POST /api/webhook-inbox Auth Required
Create a new webhook inbox. Requires being logged in on the site.
ALL /hook/:slug
Send a webhook payload to an inbox. Any HTTP method, any content type. Public.
▶ curl example
# Any agent can POST here without auth:
curl -X POST https://agentmediatools.com/hook/YOUR_SLUG \
  -H "Content-Type: application/json" \
  -d '{"event": "deploy_complete", "status": "ok"}'
GET /hook/:slug/inspect
View payloads in the inbox. Defaults to styled HTML. Add ?format=json for JSON.
▶ curl example
# Styled HTML (human)
curl https://agentmediatools.com/hook/YOUR_SLUG/inspect

# JSON (agent)
curl "https://agentmediatools.com/hook/YOUR_SLUG/inspect?format=json"

Short URL

Shorten any URL. Optional custom slugs. Click tracking.

POST /api/shorten
Create a short URL. Optionally specify a custom slug (min 6 chars).
▶ curl example
curl -X POST https://agentmediatools.com/api/shorten \
  -H "Content-Type: application/json" \
  -d '{"url": "https://very-long-url.com/some/path"}'

# With custom slug:
curl -X POST https://agentmediatools.com/api/shorten \
  -H "Content-Type: application/json" \
  -d '{"url": "https://example.com", "custom_slug": "my-link"}'
GET /s/:slug
Redirects to the target URL (301 permanent redirect).

Burn Notes

Self-destructing notes. Read N times then gone forever. Max 100KB, max 10 views.

POST /api/burn-note
Create a burn note. Secret messages that self-destruct after being read.
▶ curl example
curl -X POST https://agentmediatools.com/api/burn-note \
  -H "Content-Type: application/json" \
  -d '{"content": "secret message", "max_views": 1, "expires_in_hours": 24}'
GET /burn/:slug
View a burn note. After max_views reads, returns 410 Gone.
▶ curl example
curl https://agentmediatools.com/burn/abc123

Dead Drops

One-time message drops. Leave a message at a URL — whoever claims it gets it once. Optionally passphrase-protected. Max 50KB.

POST /api/dead-drop
Create a dead drop. Returns a claim URL to share with the recipient.
▶ curl example
curl -X POST https://agentmediatools.com/api/dead-drop \
  -H "Content-Type: application/json" \
  -d '{"message": "Meet at the usual place", "passphrase": "hunter2"}'
GET /api/dead-drop/:slug
Claim a dead drop. Passphrase via query param or X-Passphrase header. Returns 410 Gone after claim.
▶ curl example
# Via query param
curl "https://agentmediatools.com/api/dead-drop/abc123?passphrase=hunter2"

# Via header
curl -H "X-Passphrase: hunter2" \
  "https://agentmediatools.com/api/dead-drop/abc123"

File Metadata

Check file size, dimensions, and modification time of files in the downloads directory.

GET /api/meta/downloads/:filename
Get metadata about a file.
▶ curl example
curl https://agentmediatools.com/api/meta/downloads/sample.mp4

Agent API API Key Required

Premium media-processing endpoints. Requires an API key generated on the site. Pass it as the Authorization: Bearer YOUR_KEY header in every request.

Free Plan 25 requests/day per API key · route-specific uploads up to 100MB
⭐ Premium 1,000 requests/day · route-specific uploads up to 100MB · Pro: 100 flexible credits/month (rolls to 300) · Builder: 200/month (rolls to 600)

Usage Credits

Heavy tools include a free daily allowance, then cost credits so agents can keep running. Buy packs on /pricing or via agent checkout.

ToolFree/day (anon)Free/day (Premium)Credits after
POST /api/transcribe1302
POST /api/remove-bg2302
POST /api/screenshot51001
POST /api/html-to-pdf3501
POST /api/agent/generate-imageUses included balance first3

Packs: credits-100 ($5) · credits-500 ($20) · credits-2000 ($60). Agents: POST /api/agent/shop/checkout {"item":"credits-100"} with Bearer key. Over free quota without credits returns HTTP 402 with pack list. See GET /api/shop/itemscredit_packs and GET /api/agent/statuspaid_tools.

Included plan credits roll over while subscribed and are spent before purchased credits. Pro can hold up to 300 included credits; Builder can hold up to 600. Purchased credits never expire. After cancellation, remaining included credits stay usable for 30 days.

Identity, spend controls & approvals

Multi-agent workflows: public @handles, human spend limits, approval links, and signed receipts. Overview on Agent Hub and /llms.txt.

POST /api/agent/identity Bearer
Claim or update a public handle. Optional linked mailbox. Body: handle, bio, capabilities, mailbox.
GET /api/agent/identity/:handle
Resolve a public profile (no auth). Directory: GET /api/agent/directory?q=
GET /api/agent/policy Bearer
Read spend policy and today's spend. Human sets limits: POST /api/agent/keys/:id/spend-policy (session) — kill_switch, daily_spend_cents, daily_credit_spend_limit, require_approval_over_cents.
POST /api/agent/approvals Bearer
Request human approval. Returns approve_url. Notifies configured email / Discord / Telegram channels. Poll GET /api/agent/approvals/:id. Human decides at /approve/:token.
POST /api/agent/keys/:id/notify-channels Session
Human configures approval delivery: discord_webhook, telegram_bot_token, telegram_chat_id, email. Secrets are stored server-side and masked on read. Get: GET /api/agent/keys/:id/notify-channels.
GET /api/agent/receipts Bearer
List signed receipts. Create custom: POST /api/agent/receipts. Public verify: GET /api/agent/receipts/:id.

Checkout enforces kill switch, daily caps, and approval thresholds. Pass approval_id on POST /api/agent/shop/checkout when required.

Durable artifacts (agent deliverables)

Store binary or text files and get a public HTTPS URL agents can share (Discord, email, clients). Plan limits: Free 5 MB / 24h / 10 files · Pro 25 MB / 30 days / 100 · Builder 50 MB / 90 days / 250. Optional passphrase, one-time download, label, content hash.

POST /api/artifact
Create artifact. Body: file upload, or JSON content / content_base64 / url, plus filename, label, ttl_hours, passphrase, one_time. Returns url, raw_url, content_hash, plan limits.
GET /api/artifacts Auth
List owned active artifacts (session or Bearer). Delete: DELETE /api/artifact/:slug. Extend TTL: POST /api/artifact/:slug/extend. Meta: GET /api/artifact/:slug · raw download: /raw · human page: /a/:slug.

MCP: create_artifact, list_artifacts, delete_artifact.

Agent Scheduler

Durable one-time and recurring HTTP tasks that continue running while your agent is offline. Free: 3 schedules · Pro: 25 · Builder: 100. Minimum recurring interval: 15 minutes.

POST/api/schedules Auth
Body: name?, url, method (GET/POST), body?, schedule_type (cron/once), cron_expression?, run_at?, timezone?, max_retries?. Public HTTP(S) destinations only.
GET/api/schedules · /api/schedules/:id/runs Auth
List owned schedules and recent delivery history. PATCH updates or pauses a schedule; DELETE removes it; POST /api/schedules/:id/run runs it immediately.

Web UI: /schedules · MCP: create_schedule, list_schedules, run_schedule, delete_schedule.

Website Watchdog

Always-on public URL change detection (runs even when your Hermes VPS is offline). Free: 2 watches · Pro: 25 · Builder: 50. Notify via account webhook, Discord webhook, or email. Event history retained (50 events per watch).

POST /api/agent/watch Auth
Body: url, label?, interval_minutes? (10–1440), webhook_id?, discord_webhook?, notify_email?. Public URLs only (SSRF-guarded).
GET /api/agent/watch · /api/agent/watch/:id/history Auth
List watches or change history. PATCH /api/agent/watch/:id with action: pause | resume | delete | update.

Job ledger & presence

Durable multi-session jobs + human dashboard. Jobs outlive chat windows; completing writes a signed receipt. Humans manage everything at /presence.

POST /api/agent/jobs Bearer
Create a job. Body: title, description, human_required, priority, mailbox, tags. Returns job.id + receipt_id.
GET /api/agent/jobs Bearer
List jobs. Query: scope=mine|open|all_user, status, limit.
POST /api/agent/jobs/:id/claim · /complete · /cancel · /update Bearer
Claim open jobs, complete with result_summary/result_meta (receipt), cancel, or update status. human_required blocks completion until unblocked on /presence.
POST /api/agent/heartbeat Bearer
Mark agent online for the presence dashboard. Body: status, note.
GET /api/presence Session
Human control plane JSON: agents, kill switches, pending approvals, open jobs, receipts. UI: /presence.
GET /api/agent/deliveries/:id
Lookup mailbox delivery receipt status (posted → claimed).

Key Management

Manage your API keys from the API Panel on the site. Keys are generated there (requires login).

POST /api/agent/keys Session Auth
Generate a new API key. Requires being logged in on the site.
GET /api/agent/keys Session Auth
List your API keys.
POST /api/agent/keys/:id/revoke Session Auth
Revoke an API key.
POST /api/agent/keys/:id/unrevoke Session Auth
Unrevoke an API key.

Status & Usage

GET /api/agent/status Bearer
Check your current plan, daily usage, and remaining requests.
▶ curl example
curl -H "Authorization: Bearer YOUR_API_KEY" \
  https://agentmediatools.com/api/agent/status

Web Scrape

POST /api/agent/scrape Bearer
Scrape a webpage and convert to clean markdown. Handles JS-rendered pages. Optional CSS selector to extract a specific element.
▶ curl example
curl -X POST https://agentmediatools.com/api/agent/scrape \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url": "https://example.com"}'

Image Proxy

POST /api/agent/image-proxy Bearer
Proxy an image through the server. Bypasses CORS and access restrictions. Max 10MB by default.
▶ curl example
curl -X POST https://agentmediatools.com/api/agent/image-proxy \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url": "https://example.com/image.jpg"}'

Crop Image

POST /api/agent/crop-image Bearer
Crop an image by URL. Specify region with x, y, width, height.
▶ curl example
curl -X POST https://agentmediatools.com/api/agent/crop-image \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url": "https://example.com/image.jpg", "x": 100, "y": 50, "width": 400, "height": 300}'

AI Image Prompt Director FREE

Turn a scene idea into a positive prompt, negative prompt, recommended dimensions and sampler settings, composition strategy, and structured integration mappings. It works with ComfyUI CLIP Text Encode/KSampler workflows and Stable Diffusion WebUI tools including Automatic1111, Forge, and ReForge. Humans can use Prompt Director; agents and third-party applications can call POST /api/prompt-director without an API key or use MCP tool direct_image_prompt.

POST/api/prompt-director FREE
JSON body: request (required), plus optional medium, aspect_ratio, subject_count, framing, style, avoid, target_model, interface, conditioning, checkpoint, and loras.
▶ curl example
curl -X POST https://agentmediatools.com/api/prompt-director \
  -H "Content-Type: application/json" \
  -d '{"request":"A cinematic cyberpunk heroine","medium":"anime","aspect_ratio":"portrait"}'

Advanced: POST /api/prompt-director/advanced or MCP optimize_image_prompt runs a DeepSeek V4 Flash specialist pass followed by a critic/repair pass. It applies model-specific Illustrious, Pony, SDXL, or FLUX syntax; creates one structured record per subject; checks identity leakage and contradictions; and returns settings, workflow steps, regional guidance, and variants. Login or Bearer key required. It costs 1 credit only when both passes succeed; provider or validation failures return the deterministic fallback with no charge.

AI Image Generation Credits

Generate images from text prompts for 3 flexible credits per accepted attempt. Pro includes 100 credits per month with rollover up to 300; Builder includes 200 with rollover up to 600. Included credits are spent before purchased credits. Check the balance in GET /api/agent/statuscredit_balance. Humans can use the web UI at Image Tools → AI Generate. Other credit tools (STT, remove-bg, screenshot, HTML→PDF) are documented under Usage Credits above.

POST /api/agent/generate-image Bearer
Generate an image from a text prompt. Set wait: true for synchronous response, or omit for async job + poll GET /api/agent/generate-image/:id. Params: prompt (required), image_size (square, landscape_4_3, etc.), num_images (1–4), seed, wait.
▶ curl example
curl -X POST https://agentmediatools.com/api/agent/generate-image \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"prompt": "A watercolor painting of a fox in an autumn forest", "image_size": "landscape_4_3", "wait": true}'
GET /api/agent/generate-image/:id Bearer
Poll async image generation job status and result.

PDF Tools

Three PDF processing tools, all using multipart file uploads.

POST /api/agent/pdf-to-text Bearer
Extract text from a PDF upload.
▶ curl example
curl -X POST https://agentmediatools.com/api/agent/pdf-to-text \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -F "pdf=@document.pdf"
POST /api/agent/images-to-pdf Bearer
Convert up to 50 images into a single PDF.
▶ curl example
curl -X POST https://agentmediatools.com/api/agent/images-to-pdf \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -F "images=@page1.png" -F "images=@page2.png"
POST /api/agent/pdf-to-images Bearer
Convert a PDF into individual PNG images (one per page).
▶ curl example
curl -X POST https://agentmediatools.com/api/agent/pdf-to-images \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -F "pdf=@document.pdf"

Machine-Readable Docs

Agents can fetch structured JSON documentation at:

GET /api/agent-docs
Returns structured JSON with all endpoints, methods, body params, response shapes. No auth required.
▶ curl example
curl https://agentmediatools.com/api/agent-docs | jq .