# Wafrow Wafrow is a highly scalable, real-time image personalization and marketing automation SaaS. It provides serve…
# Wafrow Wafrow is a highly scalable, real-time image personalization and marketing automation SaaS. It provides server-side dynamic rendering powered by ImageMagick and provides a built-in Model Context Protocol (MCP) server for seamless AI integration. ## Key Links - Main Website: https://wafrow.com - Documentation Hub: https://wafrow.com/documentation - Interactive API Reference: https://wafrow.com/docs/api - MCP Server Endpoint: https://wafrow.com/mcp/wafrow ## Core Features 1. **Real-time Image Rendering**: Dynamic server-side rendering via the `/i/{template_id}/{campaign_id?}` endpoint. 2. **Shopify OAuth Integration**: Native synchronization of Shopify stores. Canvas layouts translate Shopify Liquid variables automatically (e.g. `{{ product.title }}`, `{{ product.price | money }}`). 3. **Multi-CRM Personalization**: Tailored for email/SMS outreach with Klaviyo, HubSpot, Zapier, Apollo.io, and Clay. 4. **Model Context Protocol (MCP)**: Any AI agent can connect to the `/mcp/wafrow` endpoint to dynamically generate and customize images. --- ## 14-Day Free Trial & Agent Onboarding * **Automatic Trial**: Wafrow grants a free, full-access 14-day trial automatically to all new user accounts from the second they register. No credit cards are required. * **Onboarding Handshake**: AI agents acting on a user's behalf can guide the user to sign up at `https://wafrow.com/login`, retrieve their token at `https://wafrow.com/dashboard/settings`, and paste it back to authorize tool execution. --- ## 1. Model Context Protocol (MCP) Server Wafrow features a built-in MCP server that allows AI agents to interact with Wafrow's templates and render personalized banners as native tools. - **Endpoint:** `POST https://wafrow.com/mcp/wafrow` - **Authentication:** Bearer token (Sanctum personal access token) - **Headers:** `Authorization: Bearer <your_token>` and `Content-Type: application/json` ### Available Tools * **`list_templates`**: Returns a list of all templates owned by the authenticated organization. * Inputs: `page` (optional integer) * **`create_template`**: Creates a brand new Fabric.js-compatible image/banner template. * Inputs: `name` (required string), `layer_information` (required object containing canvas width, height, background, quality, format, and objects array) * **`pre_render_image`**: Instantly renders a template and returns the image as a base64 string. * Inputs: `template_id` (required UUID), `personalize` (optional object representing layer property overrides) * **`get_lazy_render_url`**: Constructs a persistent, public-facing URL for lazy-rendering dynamic images in email `<img>` tags. * Inputs: `template_id` (required UUID), `campaign_id` (optional saved variant UUID), `personalize` (optional inline layer overrides object) * **`save_variant`**: Saves a preset of personalization overrides for a template and returns a persistent `campaign_id`. * Inputs: `template_id` (required UUID), `personalize` (required object) --- ## 2. REST API Reference All REST endpoints require a Bearer token via Sanctum, generated at `/createUserToken`. ### Get Active User Templates * **Endpoint:** `GET https://wafrow.com/listUserImages` * **Response:** JSON list of templates with their metadata. ### Serve Dynamic / Personalized Variant Public-facing, fast, cached endpoint for email/web embedding. No authentication required. * **Endpoint:** `GET https://wafrow.com/i/{template_id}` * **Query Parameters:** * `personalize[layer_name][text]`: Override text of a specific layer. * `personalize[layer_name][fill]`: Override color (hex) of a specific layer. * `personalize[layer_name][src]`: Override image source URL of an image layer. * `personalize[layer_name][opacity]`: Set layer opacity. * **Saved Variant Endpoint:** `GET https://wafrow.com/i/{template_id}/{campaign_id}` (renders pre-saved campaign variant instantly). * **Rate Limits:** 40 requests/minute per IP. --- ## 3. Quick Integration Examples ### Embedding in Klaviyo or HubSpot HTML Emails To personalize an image banner for each recipient in a mailing list: ```html <img src="https://wafrow.com/i/a1e11909-4fc2-4db3-bb36-62e340eab823?personalize[product_title][text]={{ product.title | url_param_escape }}&personalize[product_price][text]={{ product.price | money | url_param_escape }}" alt="Personalized Banner" width="600" /> ``` ### Python: Generate Personalized Variant via REST ```python import requests url = "https://wafrow.com/api/i/a1e11909-4fc2-4db3-bb36-62e340eab823" headers = {"Authorization": "Bearer YOUR_SANCTUM_TOKEN"} payload = { "personalize": { "product_title": {"text": "Premium Wireless Headset"}, "product_price": {"text": "$99.99", "fill": "#10b981"}, "bg": {"fill": "#0f172a"} } } response = requests.post(url, json=payload, headers=headers) print("Persistent Image URL:", response.text) ```
wafrow
mcp
free
Others in the same category, ranked by how often they are opened.