API Reference

Full request and response schemas for every tool.

Get API Key

Getting Started

The Clawoop API speaks JSON. Every call needs an API key — no bearer token, no session. Mint a key from your dashboard and send it on every request.

Base URL

https://api.clawoop.com

Authentication

Send your key in the X-API-Key header. Keys are prefixed cl_live_.

X-API-Key: cl_live_abc123...

Quickstart — list available tools

curl https://api.clawoop.com/v1/tools \
  -H "X-API-Key: $CLAWOOP_API_KEY"

Run your first tool

curl -X POST https://api.clawoop.com/v1/run/web-search \
  -H "X-API-Key: $CLAWOOP_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"input": {"query": "latest AI news"}}'

Use Cases

Every tool belongs to one or more use cases. Pass a slug as ?use_case= on /v1/tools or as a path param on /v1/use-cases/:slug/tools.

SlugNameDescription
tradingTradingReal-time market data, price signals, and trend detection for trading decisions.
researchResearchDeep research, information gathering, and knowledge synthesis.
writingWritingContent creation, editing, translation, and long-form writing.
codingCodingSoftware development, code generation, and documentation extraction.
marketingMarketingCampaign content, asset generation, and audience trend analysis.
salesSalesProspect research, competitive intelligence, and outreach enrichment.
supportCustomer supportTicket triage, knowledge lookup, and response drafting.
analyticsAnalyticsData analysis, reporting, and insight generation.
designDesignVisual asset creation, image generation, and creative exploration.
operationsOperationsWorkflow automation, monitoring, and internal tooling.

Discovery endpoints

List tools

List all enabled tools with their providers and per-call cost. Optionally filter by use case slug.

GET/v1/tools
Query params
NameTypeRequiredDescription
use_casestringNoFilter tools by use case slug (see Use Cases reference).(e.g. "trading")

Request

curl "https://api.clawoop.com/v1/tools?use_case=trading" \
  -H "X-API-Key: $CLAWOOP_API_KEY"

Response

{
  "success": true,
  "data": [
    {
      "name": "financial-data",
      "description": "Get real-time financial market data for stocks and cryptocurrencies.",
      "providers": [
        {
          "name": "finnhub",
          "enabled": true,
          "costPerCall": 0.002
        },
        {
          "name": "coinmarketcap",
          "enabled": true,
          "costPerCall": 0.005
        }
      ]
    },
    {
      "name": "trend-tracking",
      "description": "Track trends for a keyword across search interest and news.",
      "providers": [
        {
          "name": "serpapi",
          "enabled": true,
          "costPerCall": 0.016
        },
        {
          "name": "newsapi",
          "enabled": true,
          "costPerCall": 0.002
        }
      ]
    }
  ],
  "meta": {
    "request_id": "req_lt_abc123"
  }
}

Tool detail

Full detail for a single tool — providers, pricing, use cases, execution mode, and tags.

GET/v1/tools/:name
Path params
NameTypeRequiredDescription
namestringYesTool name (e.g. translate, web-search, generate-image).(e.g. "financial-data")

Request

curl https://api.clawoop.com/v1/tools/financial-data \
  -H "X-API-Key: $CLAWOOP_API_KEY"

Response

{
  "success": true,
  "data": {
    "name": "financial-data",
    "display_name": "Financial Data",
    "description": "Get real-time financial market data for stocks and cryptocurrencies.",
    "use_cases": [
      {
        "slug": "trading",
        "name": "Trading"
      },
      {
        "slug": "analytics",
        "name": "Analytics"
      },
      {
        "slug": "research",
        "name": "Research"
      }
    ],
    "tags": [
      "finance",
      "market-data"
    ],
    "execution_mode": "sync",
    "estimated_seconds": null,
    "providers": [
      {
        "name": "finnhub",
        "description": "US equities quote and company profile",
        "cost_per_call": 0.002,
        "enabled": true,
        "is_default": true,
        "features": [
          "stocks",
          "profiles"
        ]
      },
      {
        "name": "coinmarketcap",
        "description": "Cryptocurrency market data",
        "cost_per_call": 0.005,
        "enabled": true,
        "is_default": false,
        "features": [
          "crypto",
          "rank",
          "dominance"
        ]
      }
    ]
  },
  "meta": {
    "request_id": "req_td_def456"
  }
}

Tool JSON Schema

Draft-07 JSON Schema for a tool, optimized for LLM function calling. Use as the function/tool definition in your agent.

GET/v1/tools/:name/schema
Path params
NameTypeRequiredDescription
namestringYesTool name.(e.g. "translate")

Request

curl https://api.clawoop.com/v1/tools/translate/schema \
  -H "X-API-Key: $CLAWOOP_API_KEY"

Response

{
  "success": true,
  "data": {
    "name": "translate",
    "description": "Translate text between languages with auto-detection.",
    "input_schema": {
      "$schema": "http://json-schema.org/draft-07/schema#",
      "type": "object",
      "required": [
        "text",
        "target"
      ],
      "properties": {
        "text": {
          "type": "string",
          "description": "Text to translate"
        },
        "target": {
          "type": "string",
          "description": "Target language code (ISO 639-1)"
        },
        "source": {
          "type": "string",
          "description": "Source language code (auto-detected if omitted)"
        }
      }
    },
    "output_schema": {
      "$schema": "http://json-schema.org/draft-07/schema#",
      "type": "object",
      "required": [
        "translated_text",
        "source_language",
        "target_language"
      ],
      "properties": {
        "translated_text": {
          "type": "string"
        },
        "source_language": {
          "type": "string"
        },
        "target_language": {
          "type": "string"
        }
      }
    }
  },
  "meta": {
    "request_id": "req_ts_ghi789"
  }
}

Compare providers

Side-by-side provider comparison for a tool — pricing, features, and supported options.

GET/v1/tools/:name/compare
Path params
NameTypeRequiredDescription
namestringYesTool name.(e.g. "web-scrape")

Request

curl https://api.clawoop.com/v1/tools/web-scrape/compare \
  -H "X-API-Key: $CLAWOOP_API_KEY"

Response

{
  "success": true,
  "data": {
    "tool": "web-scrape",
    "display_name": "Web Scrape",
    "providers": [
      {
        "name": "firecrawl",
        "description": "Full-featured scraper with rendering",
        "cost_per_call": 0.006,
        "is_default": true,
        "features": [
          "render-js",
          "markdown",
          "screenshots"
        ],
        "supported_options": {
          "type": "object",
          "properties": {
            "render_js": {
              "type": "boolean",
              "default": true
            },
            "wait_for": {
              "type": "string"
            }
          }
        }
      },
      {
        "name": "jina",
        "description": "Fast reader-mode scraper",
        "cost_per_call": 0.003,
        "is_default": false,
        "features": [
          "markdown",
          "fast"
        ],
        "supported_options": null
      }
    ]
  },
  "meta": {
    "request_id": "req_tc_jkl012"
  }
}

Use cases for a tool

Reverse lookup — list all use cases a given tool is mapped to.

GET/v1/tools/:name/use-cases
Path params
NameTypeRequiredDescription
namestringYesTool name.(e.g. "trend-tracking")

Request

curl https://api.clawoop.com/v1/tools/trend-tracking/use-cases \
  -H "X-API-Key: $CLAWOOP_API_KEY"

Response

{
  "success": true,
  "data": [
    {
      "slug": "trading",
      "name": "Trading"
    },
    {
      "slug": "marketing",
      "name": "Marketing"
    },
    {
      "slug": "research",
      "name": "Research"
    },
    {
      "slug": "sales",
      "name": "Sales"
    }
  ],
  "meta": {
    "request_id": "req_tuc_mno345"
  }
}

List use cases

List every use case with its tool count. Use to surface workflow groupings to an agent.

GET/v1/use-cases

Request

curl https://api.clawoop.com/v1/use-cases \
  -H "X-API-Key: $CLAWOOP_API_KEY"

Response

{
  "success": true,
  "data": [
    {
      "slug": "trading",
      "name": "Trading",
      "description": "Real-time market data, price signals, and trend detection for trading decisions.",
      "tool_count": 2
    },
    {
      "slug": "research",
      "name": "Research",
      "description": "Deep research, information gathering, and knowledge synthesis.",
      "tool_count": 5
    }
  ],
  "meta": {
    "request_id": "req_luc_pqr678"
  }
}

Tools for a use case

List enabled tools mapped to a given use case.

GET/v1/use-cases/:slug/tools
Path params
NameTypeRequiredDescription
slugstringYesUse case slug (see Use Cases reference for valid values).(e.g. "trading")

Request

curl https://api.clawoop.com/v1/use-cases/trading/tools \
  -H "X-API-Key: $CLAWOOP_API_KEY"

Response

{
  "success": true,
  "data": [
    {
      "name": "financial-data",
      "description": "Get real-time financial market data for stocks and cryptocurrencies.",
      "providers": [
        {
          "name": "finnhub",
          "enabled": true,
          "costPerCall": 0.002
        },
        {
          "name": "coinmarketcap",
          "enabled": true,
          "costPerCall": 0.005
        }
      ]
    },
    {
      "name": "trend-tracking",
      "description": "Track trends for a keyword across search interest and news.",
      "providers": [
        {
          "name": "serpapi",
          "enabled": true,
          "costPerCall": 0.016
        },
        {
          "name": "newsapi",
          "enabled": true,
          "costPerCall": 0.002
        }
      ]
    }
  ],
  "meta": {
    "request_id": "req_uct_stu901"
  }
}

Poll async job status

Poll the status of an async job (returned as HTTP 202 from run endpoints like generate-image). Returns current state, and the tool output once completed.

GET/v1/status/:requestId
Path params
NameTypeRequiredDescription
requestIdstringYesThe request_id returned when the async job was submitted.(e.g. "req_img_456")

Request

curl https://api.clawoop.com/v1/status/req_img_456 \
  -H "X-API-Key: $CLAWOOP_API_KEY"

Response

{
  "success": true,
  "data": {
    "status": "completed",
    "job_id": "job_img_789",
    "request_id": "req_img_456",
    "poll_url": "/v1/status/req_img_456",
    "estimated_seconds": null,
    "output": {
      "images": [
        {
          "url": "https://cdn.clawoop.dev/img/abc123.png"
        }
      ],
      "seed": 42
    },
    "error": null,
    "execution_ms": 8420,
    "created_at": "2026-03-23T14:22:00Z",
    "completed_at": "2026-03-23T14:22:08Z"
  },
  "meta": {
    "request_id": "req_js_vwx234"
  }
}

Run tools

Web Scrape

Scrape any public URL and get clean markdown content optimized for LLM consumption.

sync$0.006
POSThttps://api.clawoop.com/v1/run/web-scrape

Providers

firecrawljina

Request Body

input
FieldTypeRequiredDescription
urlstringYesThe URL to scrape

Response Data

Scraped page content as clean markdown with metadata

data
FieldTypeRequiredDescription
markdownstringYesClean markdown content of the page
titlestringYesPage title
descriptionstringYesPage meta description
languagestringYesDetected page language (ISO 639-1)
status_codenumberYesHTTP status code of the scraped page
source_urlstringYesFinal URL after redirects
warningsstring[]NoWarnings (e.g., empty or minimal content)

Example

Request

curl -X POST https://api.clawoop.com/v1/run/web-scrape \
  -H "X-API-Key: $CLAWOOP_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "input": {
    "url": "https://example.com"
  },
  "provider": "firecrawl"
}'

Response

{
  "success": true,
  "tool": "web-scrape",
  "data": {
    "markdown": "# Example Domain\n\nThis domain is for use in illustrative examples in documents.",
    "title": "Example Domain",
    "description": "",
    "language": "en",
    "status_code": 200,
    "source_url": "https://example.com",
    "warnings": []
  },
  "meta": {
    "duration_ms": 1240,
    "provider": "firecrawl",
    "request_id": "req_ws_abc123"
  }
}

Translate

Translate text between languages with auto-detection.

sync$0.002
POSThttps://api.clawoop.com/v1/run/translate

Providers

google-translate

Request Body

input
FieldTypeRequiredDescription
textstringYesText to translate
targetstringYesTarget language code (ISO 639-1)
sourcestringNoSource language code (auto-detected if omitted)

Response Data

Translation result

data
FieldTypeRequiredDescription
translated_textstringYesThe translated text
source_languagestringYesDetected or specified source language code
target_languagestringYesThe target language code

Example

Request

curl -X POST https://api.clawoop.com/v1/run/translate \
  -H "X-API-Key: $CLAWOOP_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "input": {
    "text": "Hello world",
    "target": "tr"
  },
  "provider": "google-translate"
}'

Response

{
  "success": true,
  "tool": "translate",
  "data": {
    "translated_text": "Merhaba dunya",
    "source_language": "en",
    "target_language": "tr"
  },
  "meta": {
    "duration_ms": 182,
    "provider": "google-translate",
    "request_id": "req_x7k9m2n4"
  }
}

Generate Image

Generate an image from a text prompt. Returns async (202) for long-running generation.

async$0.01
POSThttps://api.clawoop.com/v1/run/generate-image

Providers

fal-aigoogle-imagen

Request Body

input
FieldTypeRequiredDescription
promptstringYesImage generation prompt
image_sizestringNoImage size preset
square_hdsquarelandscape_4_3landscape_16_9portrait_4_3portrait_16_9
(default: square_hd)
seednumberNoSeed for reproducibility

Response Data

Generated image(s) with seed

data
FieldTypeRequiredDescription
imagesImageResult[]YesArray of generated images
seednumberYesThe seed used for generation
ImageResult
FieldTypeRequiredDescription
urlstringYesCDN URL of the generated image

Example

Request

curl -X POST https://api.clawoop.com/v1/run/generate-image \
  -H "X-API-Key: $CLAWOOP_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "input": {
    "prompt": "A cat sitting on a mountain at sunset, digital art",
    "image_size": "landscape_16_9"
  },
  "provider": "fal-ai"
}'

Response

{
  "success": true,
  "tool": "generate-image",
  "data": {
    "images": [
      {
        "url": "https://cdn.clawoop.dev/img/abc123.png"
      }
    ],
    "seed": 42
  },
  "meta": {
    "duration_ms": 8420,
    "provider": "fal-ai",
    "request_id": "req_img_456"
  }
}

Async tool — may return HTTP 202 with a job reference. Poll GET /v1/status/{ request_id } for the result.

Financial Data

Get real-time financial market data. Supports US stocks via Finnhub (1 credit) and cryptocurrency via Nansen or CoinMarketCap (3-5 credits). Response schema varies by asset_type.

sync$0.002
POSThttps://api.clawoop.com/v1/run/financial-data

Providers

finnhubnansencoinmarketcap

Request Body

input
FieldTypeRequiredDescription
asset_typestringYesThe type of financial asset. Use "stock" for US equities (via Finnhub) or "crypto" for cryptocurrency (via Nansen/CoinMarketCap).
stockcrypto
symbolstringYesTicker symbol. For stocks: AAPL, MSFT, GOOGL. For crypto: BTC, ETH, or slug like bitcoin.

Response Data

Response depends on asset_type. Stock returns quote + company profile. Crypto returns market data with price changes.

data
FieldTypeRequiredDescription
asset_typestringYesDiscriminator: "stock" or "crypto"
symbolstringYesTicker symbol
quoteStockQuoteYesStock quote data (stock only)
profileStockProfileYesCompany profile (stock only)
StockQuote (stock)
FieldTypeRequiredDescription
pricenumberYesCurrent price
changenumberNoPrice change
percent_changenumberNoPercent change
day_highnumberYesDay high price
day_lownumberYesDay low price
opennumberYesOpen price
previous_closenumberYesPrevious close price
timestampnumberYesUnix timestamp
StockProfile (stock)
FieldTypeRequiredDescription
namestringYesCompany name
tickerstringYesTicker symbol
countrystringYesCountry of registration
currencystringYesCurrency
exchangestringYesExchange name
ipostringYesIPO date (YYYY-MM-DD)
market_capitalizationnumberYesMarket cap in millions
shares_outstandingnumberYesShares outstanding in millions
logostringYesCompany logo URL
phonestringYesPhone number
weburlstringYesWebsite URL
industrystringYesIndustry classification
CryptoData (crypto)
FieldTypeRequiredDescription
symbolstringYesTicker symbol
namestringYesFull name
slugstringYesURL-friendly slug
ranknumberYesRank by market cap
price_usdnumberYesCurrent price in USD
percent_change_1hnumberYes1h price change (%)
percent_change_24hnumberYes24h price change (%)
percent_change_7dnumberYes7d price change (%)
percent_change_30dnumberNo30d price change (%)
market_cap_usdnumberYesMarket cap in USD
volume_24h_usdnumberYes24h volume in USD
circulating_supplynumberYesCirculating supply
max_supplynumberNoMax supply (null if unlimited)
dominance_pctnumberYesMarket dominance %
last_updatedstringYesLast updated (ISO 8601)

Example

Request

curl -X POST https://api.clawoop.com/v1/run/financial-data \
  -H "X-API-Key: $CLAWOOP_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "input": {
    "asset_type": "stock",
    "symbol": "AAPL"
  },
  "provider": "finnhub"
}'

Response

{
  "success": true,
  "tool": "financial-data",
  "data": {
    "asset_type": "stock",
    "symbol": "AAPL",
    "quote": {
      "price": 255.92,
      "change": 0.29,
      "percent_change": 0.1134,
      "day_high": 256.13,
      "day_low": 250.65,
      "open": 254.2,
      "previous_close": 255.63,
      "timestamp": 1775160000
    },
    "profile": {
      "name": "Apple Inc",
      "ticker": "AAPL",
      "country": "US",
      "currency": "USD",
      "exchange": "NASDAQ NMS - GLOBAL MARKET",
      "ipo": "1980-12-12",
      "market_capitalization": 3757187.112,
      "shares_outstanding": 14702.7,
      "logo": "https://static2.finnhub.io/file/publicdatany/finnhubimage/stock_logo/AAPL.png",
      "phone": "14089961010",
      "weburl": "https://www.apple.com/",
      "industry": "Technology"
    }
  },
  "meta": {
    "duration_ms": 182,
    "provider": "finnhub",
    "request_id": "req_f1n2d3a4"
  }
}

YouTube Transcript

Extract transcript text from YouTube videos with language selection and auto-fallback. Accepts video URLs or IDs.

sync$0.004
POSThttps://api.clawoop.com/v1/run/transcript

Providers

youtube-transcript

Request Body

input
FieldTypeRequiredDescription
urlstringYesYouTube video URL or video ID (11 characters). Supports youtube.com/watch, youtu.be, shorts, and embed formats.
languagestringNoPreferred transcript language (ISO 639-1). Falls back to English, then any available track.

Response Data

Transcript text with video metadata

data
FieldTypeRequiredDescription
full_textstringYesComplete transcript as concatenated text
requested_languagestringYesThe language that was requested
actual_languagestringYesThe language actually returned
titlestringYesVideo title
channel_namestringYesChannel name
duration_secondsnumberYesVideo duration in seconds
published_atstringYesVideo publish date (ISO 8601)
video_idstringYesResolved YouTube video ID

Example

Request

curl -X POST https://api.clawoop.com/v1/run/transcript \
  -H "X-API-Key: $CLAWOOP_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "input": {
    "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
    "language": "en"
  },
  "provider": "youtube-transcript"
}'

Response

{
  "success": true,
  "tool": "transcript",
  "data": {
    "full_text": "We're no strangers to love. You know the rules and so do I...",
    "requested_language": "en",
    "actual_language": "en",
    "title": "Rick Astley - Never Gonna Give You Up",
    "channel_name": "Rick Astley",
    "duration_seconds": 213,
    "published_at": "2009-10-25T00:00:00Z",
    "video_id": "dQw4w9WgXcQ"
  },
  "meta": {
    "duration_ms": 1845,
    "provider": "youtube-transcript",
    "request_id": "req_tr_abc123"
  }
}

Trend Tracking

Track trends for a keyword. serpapi (default) returns interest-over-time data; newsapi returns recent news articles. Both share the same response schema.

sync$0.016
POSThttps://api.clawoop.com/v1/run/trend-tracking

Providers

serpapinewsapi

Request Body

input
FieldTypeRequiredDescription
keywordstringYesSearch keyword or phrase to track
dateRangestringNoHow far back to look. Applied by serpapi; ignored by newsapi.
7-d1-m3-m1-y5-y
(default: "7-d")

Response Data

Trend data — timeline and/or articles depending on provider

data
FieldTypeRequiredDescription
timelineTrendTimelinePoint[]YesInterest-over-time data points (populated by serpapi)
articlesTrendArticle[]YesRecent news articles (populated by newsapi)
TrendTimelinePoint
FieldTypeRequiredDescription
datestringYesISO 8601 date string
valuenumberYesNormalized interest score 0-100
TrendArticle
FieldTypeRequiredDescription
titlestringYesArticle headline
urlstringYesURL to full article
publishedAtstringYesISO 8601 publication date

Example

Request

curl -X POST https://api.clawoop.com/v1/run/trend-tracking \
  -H "X-API-Key: $CLAWOOP_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "input": {
    "keyword": "AI agents",
    "dateRange": "1-y"
  },
  "provider": "serpapi"
}'

Response

{
  "success": true,
  "tool": "trend-tracking",
  "data": {
    "timeline": [
      {
        "date": "2025-05-01T00:00:00.000Z",
        "value": 32
      },
      {
        "date": "2025-08-01T00:00:00.000Z",
        "value": 58
      },
      {
        "date": "2025-11-01T00:00:00.000Z",
        "value": 74
      },
      {
        "date": "2026-02-01T00:00:00.000Z",
        "value": 91
      },
      {
        "date": "2026-04-01T00:00:00.000Z",
        "value": 100
      }
    ],
    "articles": []
  },
  "meta": {
    "duration_ms": 1340,
    "provider": "serpapi",
    "request_id": "req_tt_s7e9r1"
  }
}

Response Envelope

Every successful tool response is wrapped in this envelope.

FieldTypeDescription
successbooleanWhether the request succeeded
toolstringThe tool that was executed
dataobjectTool-specific output (see per-tool schema)
metaobjectRequest metadata
meta
FieldTypeRequiredDescription
duration_msnumberNoExecution time in milliseconds
providerstringNoProvider that served the request
request_idstringNoUnique request identifier

Async Polling

Returned as HTTP 202 for async tools (e.g. generate-image). Poll the poll_url for status.

GET/v1/status/{request_id}

Possible statuses

pendingprocessingcompletedfailed

HTTP 202 Job Reference

{
  "status": "pending",
  "job_id": "job_img_789",
  "request_id": "req_img_456",
  "poll_url": "/v1/status/req_img_456",
  "estimated_seconds": 12,
  "meta": {
    "tool": "generate-image",
    "provider": "fal-ai"
  }
}

Error Codes

All errors follow a consistent format. The code field is machine-readable; message is human-readable.

Error response shape

{
  "success": false,
  "error": {
    "code": "CL_RATE_LIMITED",
    "message": "Rate limit exceeded. 5 requests/minute on Free plan.",
    "http_status": 429,
    "retryable": true,
    "retry_after_ms": 12000
  },
  "meta": {
    "request_id": "req_x7k9m2n4"
  }
}
CodeHTTPDescription
CL_SCHEMA_VALIDATION400Input does not match tool schema
CL_AUCL_INVALID401API key missing, malformed, or revoked
CL_CREDITS_EXHAUSTED402No credits remaining
CL_FORBIDDEN403API key does not have permission
CL_TOOL_NOT_FOUND404Tool does not exist
CL_PROVIDER_NOT_FOUND404Provider does not exist for this tool
CL_RATE_LIMITED429Rate limit exceeded
CL_PROVIDER_QUOTA_FULL429Provider global quota exhausted
CL_PROVIDER_DOWN502Provider health check failing
CL_TIMEOUT504Tool execution exceeded timeout
CL_INTERNAL_ERROR500Unexpected Clawoop error