← Back to App

AI Tools

Generate word clouds with AI assistants, embed them anywhere, or use our REST API directly.

AI Integrations

Give your AI assistant the ability to generate word clouds.

Claude can generate word clouds in multiple ways — no local install required.

Remote MCP Server Recommended — no install

Add the remote MCP server to give Claude the generate_wordcloud tool. Nothing to install — it connects to our hosted server.

Claude Desktop — add to claude_desktop_config.json:
{
  "mcpServers": {
    "wordcloud": {
      "url": "https://word-cloud.net/mcp"
    }
  }
}
Claude Code:
claude mcp add wordcloud --transport http https://word-cloud.net/mcp

Claude API — Tool Definition

If you're building with the Claude API, add this tool definition. Your app handles calling POST /api/generate when Claude invokes the tool.

{
  "name": "generate_wordcloud",
  "description": "Generate a word cloud. Returns URLs to view, edit, and embed.",
  "input_schema": {
    "type": "object",
    "required": ["words"],
    "properties": {
      "words": {
        "type": "array",
        "description": "Array of {text, weight} objects. Higher weight = larger.",
        "items": {
          "type": "object",
          "required": ["text", "weight"],
          "properties": {
            "text": { "type": "string" },
            "weight": { "type": "number" }
          }
        }
      },
      "shape": { "type": "string", "enum": ["landscape","portrait","square"] },
      "rotation": { "type": "string", "enum": ["horizontal","horizontal-vertical","all"] },
      "font": { "type": "string", "description": "Font family. Built-in: Arial, Impact, Lobster, Bangers, Pacifico, Montserrat, etc. Use googleFontsUrl for others." },
      "colorPalette": { "type": "string", "enum": ["rainbow","ocean","warm","forest","sunset"] },
      "backgroundColor": { "type": "string", "description": "Solid hex color. Mutually exclusive with gradient." },
      "gradient": {
        "type": "object",
        "description": "Background gradient with type (linear/radial), direction, and stops.",
        "properties": {
          "type": { "type": "string", "enum": ["linear","radial"] },
          "direction": { "type": "string", "enum": ["to-bottom","to-right","to-bottom-right","to-top-right"] },
          "stops": { "type": "array", "items": { "type": "object", "properties": { "color": { "type": "string" }, "offset": { "type": "integer" } } } }
        }
      },
      "mask": { "type": "string", "enum": ["none","circle","heart","star","diamond","speech-bubble","triangle","cloud","shield","pentagon","hexagon"] }
    }
  }
}

Direct API

Claude Code can also call the REST API directly via curl or WebFetch — no MCP config needed. Just ask Claude to POST to https://word-cloud.net/api/generate.

Just ask Claude: "Generate a word cloud about technology" — it works with all three approaches.

Embed

Drop a word cloud into any webpage with an iframe.

iframe Snippet
<iframe
  src="https://word-cloud.net/embed.html#CONFIG_HASH"
  width="800" height="600"
  frameborder="0"
  style="border:none;"
  allowfullscreen
></iframe>

The CONFIG_HASH is an lz-string compressed JSON config. Use the /api/generate endpoint to get ready-to-use embed URLs, or copy one from the app using the Embed Link button.

oEmbed

oEmbed auto-discovery is supported. Platforms like WordPress, Notion, and Slack can automatically embed word clouds when you paste a link.

Try It

Request Body POST /api/generate
Response
// Click "Generate" to see the response
Preview
Preview will appear here

REST API

Three endpoints: one returns shareable URLs, the others return WebP or SVG images directly.

POST /api/generate Returns URLs

Returns an editor URL, embed URL, and iframe HTML snippet for the generated word cloud.

Example
curl -X POST https://word-cloud.net/api/generate \
  -H 'Content-Type: application/json' \
  -d '{"words":[{"text":"Hello","weight":10},{"text":"World","weight":5}]}'
Response
{
  "url": "https://word-cloud.net/#...",
  "embedUrl": "https://word-cloud.net/embed.html#...",
  "embedHtml": "<iframe src=\"...\" width=\"800\" height=\"600\"></iframe>"
}
POST /api/generate/image Returns WebP image

Returns a WebP image directly. Uses Skia for pixel-perfect rendering with full Google Fonts support. Also available at /api/generate/png for backwards compatibility.

Example
curl -X POST https://word-cloud.net/api/generate/image \
  -H 'Content-Type: application/json' \
  -d '{"words":[{"text":"Hello","weight":10},{"text":"World","weight":5}]}' \
  -o wordcloud.webp
POST /api/generate/svg Returns SVG image

Returns an SVG image directly with embedded Google Fonts support.

Example
curl -X POST https://word-cloud.net/api/generate/svg \
  -H 'Content-Type: application/json' \
  -d '{"words":[{"text":"Hello","weight":10},{"text":"World","weight":5}]}' \
  -o wordcloud.svg

Rate Limit: 1 request per second per IP address. Exceeding this returns HTTP 429.

Parameters Reference
Parameter Type Default Description
words array required Array of {text, weight} objects
shape string "landscape" landscape, portrait, square
rotation string "all" horizontal, horizontal-vertical, all
font string "Impact" Built-in: Arial, Audiowide, Bangers, Black Ops One, Bungee, Caveat, Chewy, Comic Sans MS, Courier New, Creepster, Dancing Script, Fredoka One, Georgia, Great Vibes, Impact, Lobster, Luckiest Guy, MedievalSharp, Montserrat, Nosifer, Open Sans, Orbitron, Oswald, Pacifico, Passion One, Permanent Marker, Righteous, Roboto, Russo One, Satisfy, UnifrakturMaguntia. Or use any Google Font with googleFontsUrl.
bold boolean false Use bold weight
colorPalette string "rainbow" rainbow, ocean, warm, forest, sunset
colorMode string "palette" palette, bw, white
customColors array [] Custom hex colors array
backgroundPreset string "None" Built-in background image: None, Black, White, Aurora, Chalkboard, Circuit Board, Night Sky, Ocean Gradient, Parchment, Speech Bubble, Sunset Gradient
backgroundColor string null Solid background hex color (e.g. "#1a034f"). Mutually exclusive with gradient.
gradient object null Background gradient. Object with type (linear|radial), direction (to-bottom|to-right|to-bottom-right|to-top-right), and stops array of {color, offset} (offset 0–100). Mutually exclusive with backgroundColor.
backgroundUrl string null URL to a background image (PNG, JPEG, WebP, GIF)
googleFontsUrl string null Google Fonts CSS URL for custom fonts
mask string "none" none, circle, heart, star, diamond, speech-bubble, triangle, cloud, shield, pentagon, hexagon
maskUrl string null URL to a custom mask image. Black areas define where words are placed.

Full interactive API docs available at /api/docs (Swagger UI).

API Data Use

By using the WordCloud API, you are sending data to word-cloud.net servers for processing. We do not log, store, or record any request data. All data is used transiently and solely for the purpose of generating the requested image, after which it is immediately discarded. No personal data is collected or shared with third parties.