Skip to main content
Glama
787,811 tools. Updated 2026-11-15 23:27

"ICON" matching MCP tools:

  • Generate platform-ready app icons from one logo. Inputs: `image` — a PNG or JPEG data URI (e.g. "data:image/png;base64,...") or a public https image URL; omit it to open the interactive upload card. Optional: `platforms` (any of web, ios, macos, android, windows, linux, or "all"; default web), `targets` (exact ids such as "ios-1024" or "web-favicon-32" for one or more specific icons; overrides platforms), `size` (16–2048 px shortcut that returns a single square PNG), `background` (CSS color, or "transparent"; iOS/App Store icons become opaque white when transparent), `padding` (0–40 percent), `radius` (0–50 percent) and `fit` ("contain" or "cover"). Returns one or many PNG icons as MCP image content plus structured metadata (filename, platform, pixel size). Use when a user wants a favicon, Apple touch icon, app icon, PWA icons, or a complete multi-platform icon set from a logo.
    ConnectorNo auth
  • Delete an icon from the site library and the project copy. REFUSED while anything names it — an installed block, a render bundle, an icon field of a post type or an options page (its choices), or a live block version of the project — and the answer says which. force:true deletes anyway: every place naming it then renders nothing, and `usedBy` lists them. Confirm with the user before forcing. Rules: get-skill-doc {id:"icons-contract"} — read it before the first call.
    Connector
    Destructive
    API key
  • Add an icon to the site library, or replace one, from EXACTLY ONE source: `svg` markup, or `fileKey`+`nodeId` of a Figma node (exported as vector). id = <group>/<slug>, group one of brand, ui, feature, social, contact, flag; ids are permanent once a block names them. The markup is sanitised and its colours turned into CSS-driven paint per colorMode. list-icons FIRST. Rules: get-skill-doc {id:"icons-contract"} — read it before the first call.
    ConnectorAPI key
  • One library icon with its svg — as the site renders it (colours already turned into currentColor for mono/duotone). A block does not paste this: it calls fabrement_icon('<id>'). Rules: get-skill-doc {id:"icons-contract"} — read it before the first call.
    ConnectorAPI key
  • Configure this share — its name and its **appearance** — fields you don't pass stay as they are (server-side partial merge). - `label`: the name at the top of the chat page, and the browser tab's title. **Renaming a share is this call**; you never need to create a replacement and delete the old one. That would mint a new token, so the link already embedded in the client's site would stop working — the visible name and the address are not the same thing. - `theme_color`: the brand colour, `#RGB` or `#RRGGBB`. **This one colour is all you give** — its foregrounds are derived on save. - `highlight_color`: **only if the brand actually has a second colour.** Most don't; leave it out and nothing changes anywhere. When set, it is used where something should be visible without competing with the primary action: the second series in a chart, and citation markers. Buttons, the current storyline step and user bubbles stay on `theme_color` — two colours fighting over the same element is how a two-colour palette goes wrong. Foregrounds are derived from it the same way. Text/foreground colours are derived server-side to WCAG contrast and stored (a light brand colour automatically gets dark text instead of white) — **do not compute a palette yourself and do not try to set text colours**; they would be overridden. - `logo_url`: absolute URL. The header scales by height, any aspect ratio fits; **the collapsed launcher bubble is square**, so only near-square images (aspect 0.74–1.35) are used on the bubble — a wide wordmark falls back to the platform icon there. Want your mark in both places? Provide a square variant too. - `input_mode`: `text` (text box, default) or `voice` (opens in push-to-talk). Requires the platform's voice backend. - `launcher`: hover tooltip text for the bubble. `theme`: `light` / `dark` / empty = follow the visitor. - `custom_css`: the escape hatch for strict brand guidelines — the injected stylesheet can override our CSS variables (`--acc` / `--acc-fg` / `--acc-text-l` / `--acc-text-d` / `--bg` / `--surface` / `--text` / `--border`); write light values under `:root{…}` and dark under `html[data-theme="dark"]{…}`. **Prefer theme_color**: it carries a readability guarantee, with custom_css the contrast is on you. Get the token from `list_shares` first. Full examples in the Cookbook's configure-branding.
    ConnectorNo auth
  • Search 161,000+ free Infyicon vector icons by keyword and return up to 30 matches per page, each with icon id (slug_number), name, style, page URL, direct SVG URL, 512px PNG URL and tags. Styles: outline (black line), fill (black solid), color-outline, color-fill. Use this first whenever the user describes what icon they want; then pass an id to get_icon_svg, get_icon_svg_bulk or get_icon_png. Use get_popular_icons instead when there is no search term, and search_uicons instead when the user wants a CSS webfont class rather than an SVG/PNG file. Read-only, no auth, no API key; empty query returns an error; total_matches + next_offset are returned for paging. Free with attribution to infyicon.com.
    ConnectorNo auth

Matching MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    A Model Context Protocol (MCP) server for semantic SVG icon search. Generate infographic SVG icons by keyword — over 100,000 icons with semantic search support.
    1
    12 npm
    1
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Provide access to Iconify's MCP server with over 200,000 open-source vector ICONS, supporting icon set browsing, searching, and obtaining multi-framework usage examples.
    4
    2
    Apache 2.0

Matching MCP Connectors

  • Logos and favicons for any domain or product name, with confidence scores. Free, no key.

  • App icons for iOS, Android, web and desktop apps: one bold symbol on a rounded square, in the style and colors of the app.

  • Search 161,000+ free Infyicon vector icons by keyword and return up to 30 matches per page, each with icon id (slug_number), name, style, page URL, direct SVG URL, 512px PNG URL and tags. Styles: outline (black line), fill (black solid), color-outline, color-fill. Use this first whenever the user describes what icon they want; then pass an id to get_icon_svg, get_icon_svg_bulk or get_icon_png. Use get_popular_icons instead when there is no search term, and search_uicons instead when the user wants a CSS webfont class rather than an SVG/PNG file. Read-only, no auth, no API key; empty query returns an error; total_matches + next_offset are returned for paging. Free with attribution to infyicon.com.
    ConnectorNo auth
  • Read current RS3 catalogue records or compare candidate snapshots. Resolve names with lookup_item; use get_price_series for dated history and estimate_flip for profit calculations. - records reads Jagex identity, examine/type/membership, icon URLs and guide prices. itemId=4151 means Abyssal whip. Arrays always return results[] in caller order, including errors at failed IDs, even for one entry. - includeLiveData adds reported trades and numeric Wiki facts without replacing guide fields. Trades are not executable offers; buy limits are not remaining quota. - comparison reads compact Weirdgloop daily price/volume snapshots for itemIds in caller order. Missing metrics remain absent and unresolved IDs become error rows. It does not rank the whole GE. - Record batches retain successful rows and error if all fail. At most two reads run concurrently; 429 stops queued reads. Invalid selectors fail before fetching. - Guide/comparison reads are uncached and lag activity. Trades cache for 30 seconds and facts for 10 minutes; cache hits preserve fetchedAt. No credentials are required. HTTP defaults to 60 requests/IP/minute; wait for Retry-After after 429.
    ConnectorNo auth
  • Plan an A→B passage. Compare departure windows by default; pin a single departure only when the user gives an explicit time. ## Tool routing: read this first Before calling, classify the user's question: 1. **Pure weather lookup at a point** ("y aura-t-il du vent à Cassis samedi à 14h ?", "quelles vagues dimanche au cap Sicié ?"): call ``get_marine_forecast``. Do NOT call ``plan_passage``: there's no route to plan. 2. **Trajet question with a flexible date** ("Marseille → Porquerolles ce week-end", "demain ou après-demain", "dans les prochains jours"): call ``plan_passage`` in **compare-windows mode**, passing ``latest_departure`` (e.g. earliest+48h) and ``sweep_interval_hours`` (3 or 6 typically) so the user sees several departure scenarios side-by-side. This is the **default** for trajet planning: same API cost as a single passage thanks to cache prewarm, much more value. 3. **Trajet with a precise hour pinned by the user** ("je pars demain à 8h", "départ Saturday 9am"): call ``plan_passage`` in single mode (no ``latest_departure``). Used for the final "show me the detailed plan for THIS departure" view, often after step 2. 4. **Two ways to go** ("nord ou sud du Fromveur pour Ouessant ?", "par l'intérieur ou l'extérieur des Glénan ?", "Ré ou Aix demain ?"): one ``plan_passage`` call, the first route in ``waypoints`` and the others in ``alternatives`` (two at most), each with a short ``label`` saying how it goes ("Par le nord du Fromveur"). Every route is computed for the same departures, so the widget compares them cell by cell. Do not make one call per route. 5. **When to be at a pass** ("à quelle heure au Raz de Sein ?", "quand renverse le courant au Fromveur ?"): ``get_tidal_stream`` at the pass, with the course you will steer, and ``plan_passage`` comparing departures, both in the same turn; then pick the departure that brings you there in the favourable window. 6. **Methodology question** ("comment c'est calculé ?", "quelle efficacité par défaut ?"): call ``read_me``. Rule of thumb: if the user does NOT give an exact hour, prefer compare-windows. The widget renders one of the windows by default and the chat lets the user pick another. ## Waypoints must stay in the water This server runs a coarse land check before anything else: a leg that runs a couple of kilometres over land, or a waypoint inland, gets the call refused before any forecast request, with the leg and the place named. Redraw it and call again: a route over land is not one the boat can sail. The shoreline is coarse (about 1 km, the coast widened by 2 km so harbours stay at sea, and any water a fine current atlas resolves counts as sea): a spit narrower than about 4 km, or a leg that shaves a headland, passes the check and is timed as drawn, too short, too fast, and scored on conditions the boat would never meet. So the route is still yours to draw. Between every consecutive pair of waypoints the straight line must stay at sea. Add intermediate waypoints to round anything the direct line would cut: headlands, peninsulas, islands, shoals. - Toulon to Saint-Tropez: the direct line crosses the Massif des Maures. Pass south of the presqu'île de Giens, then round cap Bénat and cap Camarat before turning north into the gulf. - Brest to Douarnenez: the direct line crosses the presqu'île de Crozon. Exit the goulet, round the cap de la Chèvre, then head east into the bay. Keep about 1 NM of clearance off headlands, more with onshore wind or swell, and do not shave the inside of islands. Extra waypoints are close to free: the cap is 50, and sampling cost follows ``segment_length_nm`` and total distance, not the waypoint count. When in doubt, add the waypoint. A waypoint that lands ashore has a second effect. Open-Meteo returns no sea state over land, so those samples carry a null wave height and the complexity score silently falls back to wind only, dropping the axis that would have flagged a rough passage. ## Returned payload Every time comes back in the UTC offset of ``departure``: send the user's own (``+02:00`` for France in summer) and read the times as their clock. Single mode: - ``passage``: per-segment timing report (distance_nm, duration_h, model used, segments[] with TWS/TWA/boat_speed/Hs and the sea state decided per segment, ``sea_level`` and ``sea_flag``, warnings). - ``complexity``: 1-5 difficulty score with wind/sea breakdown and a human-readable rationale. - ``openwind_url``: deep-link to ohmywind.fr/plan that renders the same passage in the standalone web app. - ``waypoints``: the route as you sent it, which the widget draws on a map. - ``route_label`` and ``alternatives[]``, only when you passed alternatives: each alternative has its ``label``, ``waypoints``, ``passage``, ``complexity`` and ``openwind_url``. - ``disclaimer``: usage warning intended for the user (decision-support tool, not a navigation instrument). Compare-windows mode (``latest_departure`` set): - ``mode``: ``"multi_window"``. - ``sweep``: ``earliest`` / ``latest`` / ``interval_hours`` / ``window_count``. - ``windows[]``: each entry has ``departure``, its ``weekday``, ``arrival``, ``duration_h``, ``distance_nm``, ``complexity`` (level + label + rationale), ``conditions_summary`` (tws_min/max, predominant sail angle, hs_min/max), ``warnings`` (the difficulty first), ``openwind_url``. - ``meta_warnings``: notes about the whole sweep or the route ("3 fenêtres ignorées …", a long route sampled more sparsely). - ``waypoints``: the route as you sent it, once for all windows. - ``route_label`` and ``alternatives[]``, only when you passed alternatives: each alternative has its ``label``, ``waypoints`` and its own ``windows[]``, same departures. - ``disclaimer``: usage warning intended for the user (decision-support tool, not a navigation instrument). ``openwind_url`` opens this plan in the web app, where the route, departure and boat can be edited and the plan shared. It points at the environment this server is configured for, so it is the one to use rather than a URL composed by hand. ## How it renders On hosts that support MCP Apps (Claude, Claude Desktop, ChatGPT, VS Code Copilot, Goose, Postman, MCPJam), the response is automatically accompanied by an interactive widget served via the ``ui://openwind/plan-passage`` resource declared on this tool's ``_meta``. In compare-windows mode it lists the departures; the one the user selects (the earliest at first) drives a map of the route you drew, coloured by its wind, and its per-leg detail. In single mode it shows the figures, the map and the per-leg detail. The user sees your waypoints on that map, one more reason to keep every leg at sea. On hosts without MCP Apps support (Cursor, Le Chat, terminal), no widget renders; the payload and ``openwind_url`` carry the plan. ## Args waypoints: list of ``{"lat": ..., "lon": ...}`` dicts, 2 to 50. Used exactly as drawn. Read "Waypoints must stay in the water" above before building it. departure: ISO-8601 datetime, timezone-aware. archetype: the boat. Pick it yourself from what the user sails, among these (``list_boat_archetypes`` returns the same list): - ``cruiser_20ft``: 20 ft (6 m) monohull, slow (Beneteau First 210, Catalina 22, Jeanneau Tonic 23) - ``cruiser_25ft``: 25 ft (8 m) monohull, slow (Beneteau First 25, Catalina 25, Jeanneau Sun Odyssey 24) - ``cruiser_30ft``: 30 ft (9 m) monohull, slow (Sun Odyssey 32, Bavaria 31, Beneteau Oceanis 31) - ``cruiser_40ft``: 40 ft (12 m) monohull, average (Sun Odyssey 410, Bavaria 41 Cruiser, Hanse 418) - ``cruiser_50ft``: 50 ft (15 m) monohull, fast (Sun Odyssey 519, Bavaria C50, Hanse 508) - ``catamaran_40ft``: 40 ft (12 m) catamaran, fast-reach (Lagoon 40, Bali 4.1, Fountaine Pajot Lucia 40) - ``racer_cruiser``: 40 ft (12 m) monohull, very-fast (J/122, Pogo 12.50, Solaris 40) - ``voile_aviron_16ft``: 16 ft (5 m) monohull, slow (Vivier Ilur, Vivier Aven, Vivier Aber) - ``imoca``: 60 ft (18 m) monohull, ocean-racer (IMOCA 60 foiler, IMOCA 60 (Vendée Globe, Route du Rhum), Open 60) ``voile_aviron_16ft`` is an open sail-and-oar dinghy only; a small cabin cruiser is ``cruiser_20ft``. ``imoca`` is an offshore racer (foiling IMOCA 60); its polar is an estimate of sustained race speeds, so pass ``efficiency`` 0.85 to 1.0 with it. efficiency: multiplier on polar speed. ``0.85`` racing, ``0.75`` cruising (default), ``0.65`` loaded family cruising, ``0.55`` heavy seas / fouled hull. segment_length_nm: target sub-segment length. Default 10 nm balances precision vs Open-Meteo budget; drop to 5 for tight coastal work, raise to 20 for long offshore legs. model: wind model. Default ``"auto"`` tries AROME (≤48 h) → ICON-EU (≤5 d) → ECMWF IFS 0.25° (≤10 d) → GFS (≤16 d). Pass ``arome``, ``icon_eu``, ``ecmwf`` or ``gfs`` to bypass. max_hs_m: optional max significant wave height (meters) over the route: pass it if you have a sea-state estimate from ``get_marine_forecast`` and want it factored into the score. Defaults to wind-only scoring. motor_threshold_kn: optional sail-speed floor (knots) under which the simulator switches to engine power. Must be paired with ``motor_speed_kn`` (either alone is ignored). Typical value 2 kn: sailors fire up the engine rather than crawl in light wind. Leave unset for 100% sail. Range (0, 30]. motor_speed_kn: optional speed under engine (knots) applied to segments where the sail estimate falls under ``motor_threshold_kn``. Typical 5-6 kn for a cruising boat. Range [0.5, 30]. min_upwind_twa_deg: optional minimum sailable TWA (degrees) overriding the archetype's own value (42-50 deg depending on the boat). Pass it when you know the boat points better or worse than the archetype suggests. Range [25, 70]. route_label: optional short name for the main route, shown in the widget when you pass alternatives ("Par le nord"). alternatives: optional other routes for the same trip, at most two: ``[{"label": "Par le sud", "waypoints": [...]}, ...]``. Same departures, same boat, same rules for the waypoints (stay at sea). Each route costs its own forecast requests: pass them only when the user weighs two ways to go. inland_waterway: true only when the user sails up a river or a canal the coarse shoreline counts as land (the Seine to Rouen, the Loire to Nantes): it turns the land check off for this call. Never set it to get past a refusal at sea; redraw the route instead. ## Compare-windows mode (latest_departure set) When ``latest_departure`` is provided, the tool switches into a window-comparison call: it walks departure times from ``departure`` up to ``latest_departure`` every ``sweep_interval_hours`` (default 1 h). Returns ``{"mode": "multi_window", "sweep": {...}, "windows": [...]}`` instead of the single-passage payload. Each window contains ``departure``, ``arrival``, ``duration_h``, ``distance_nm``, ``complexity``, ``conditions_summary``, ``warnings``, and its own ``openwind_url``. ``target_eta``: optional ISO-8601 datetime. When set, only windows that arrive within ±2 h of the target are returned. If none match, all windows are returned with a ``meta_warnings`` note. ## Failure modes Raises ``ForecastHorizonError`` if the chosen model's horizon doesn't cover the passage and ``model != "auto"``. The error message names the failing model and suggests longer-range alternatives.
    ConnectorNo auth
  • Return the full, ready-to-embed SVG markup of ONE Infyicon icon by id (slug_number, e.g. hammer-16_66091 - get ids from search_icons). Use when the user wants inline SVG for a single icon; use get_icon_svg_bulk for 2-20 icons in one call, and get_icon_png when they need a raster image URL instead of markup. Read-only, no auth; returns an error for a malformed id or an unknown icon; if the SVG is over 200 KB the response carries svg_url instead of inline markup. Free with attribution to infyicon.com.
    ConnectorNo auth
  • Return the full, ready-to-embed SVG markup of ONE Infyicon icon by id (slug_number, e.g. hammer-16_66091 - get ids from search_icons). Use when the user wants inline SVG for a single icon; use get_icon_svg_bulk for 2-20 icons in one call, and get_icon_png when they need a raster image URL instead of markup. Read-only, no auth; returns an error for a malformed id or an unknown icon; if the SVG is over 200 KB the response carries svg_url instead of inline markup. Free with attribution to infyicon.com.
    ConnectorNo auth
  • Update project settings; current values appear at the top of list_files. Changes reach the published app at the next publish. Settings marked "on request" change only when the user asks about that subject. - updates (flat keys): title (2-100 chars), description, iconUrl (app icon: favicon, home-screen and native icon; a /_cdn/static/… path from upload_asset, generate_image or request_user_upload, or an https URL; null resets), splashUrl (native splash, same forms), mobileAppId, enableSSR, flootAiDisallowed (true opts out of @floot/ai), iOS Info.plist NS…UsageDescription strings (null removes) and UIViewControllerBasedStatusBarAppearance (boolean, null restores). Invalid keys are reported and skipped. After the first iOS / Android publish, edit static/__dev/native/ios-info.plist or android-manifest.xml instead (get_guides("ios-info-plist"), get_guides("android-manifest")). - shareTarget: native share-sheet target; ship it with the handler in app code (get_guides("share-target")). - nativeSystemBars: 'inset' (default) or 'edge-to-edge', which needs safe-area padding in the app (get_guides("native-system-bars")). - serverMemoryMb: expert setting, only when the user explicitly asks to change the server memory: too low stops the backend and can cost more (get_guides("server-memory")). - analyticsMode: on request (analytics, cookies, consent; get_guides("analytics")). - iosDeviceFamily: before 'iphone' or 'ipad', ask whether the app is live on the App Store supporting the device it would drop; if it is, it cannot drop it. The only way to make it iPhone-only or iPad-only. - homeScreenName: the name under the installed app's icon (iOS + Android), also after the first mobile publish; keeps the bundle id and store listing names. null = default (store listing title, else project name). - routePrefetch: on request (page prefetching, load performance; get_guides("route-prefetch")). - dependencyOverrides: on request, to fix a vulnerable or conflicting nested package (get_guides("dependency-overrides")). - securityHeaders: on request (iframes, CSP, a security scan, referrer; get_guides("security-headers")). Never in the preview.
    ConnectorOAuth
  • Use this when the user wants the Inclusify widget on their site to look different — match brand colour, move it off something it covers, change its size or icon — or to change which accessibility PROFILES it offers visitors. WRITES to this website's Inclusify configuration, never to the site's code or theme: it changes what the widget bundle renders. Takes effect within about a minute; the edge cache is purged as part of the change. Every setting is optional and anything you leave out is left exactly as it is, so you can change one without knowing the others. This REQUIRES CONFIRMATION — call without "confirm" first, show the user the preview, then call again with the token once they agree — because the result is visible to that site's real visitors. Removing an accessibility profile is the consequential part: it takes an accommodation away from visitors who may be relying on it, so the preview names each one. Note that "enabledProfiles" is a COMPLETE REPLACEMENT LIST, not an addition — whatever you pass becomes the whole set, so include the ones already on that should stay on. The account owner is emailed a record with a link to undo it. Needs the STARTER plan or above, matching the panel. Shopify-billed stores and Wix-billed sites cannot use this at all — they customise the widget from the Shopify app and the Wix app respectively. To turn the widget off entirely, use set_widget_enabled instead. One setting here needs more than Starter: "hideBranding", which removes the Inclusify wordmark from the widget's footer, needs the ENTERPRISE plan.
    Connector
    Destructive
    API key
  • Show an inline card of transcoding jobs from this conversation. Renders a compact jobs list (MCP Apps UI widget) with status badges, All/Active/Done/Errors filters, expandable rows, and output URLs. Use this when the user asks to see their jobs, a jobs dashboard, the status of several jobs at once, or after you just submitted a job — ALWAYS call this in the same reply as `transcode_video` / `start_encode2_raw`. Prefer it over dumping raw `get_job_status` JSON or looping status yourself. While any listed job is still in flight the card refreshes itself. If a row is already Done with a playable URL (mp4 / webm / HLS / DASH), follow with `open_player`. If the deliverable is a json/txt/srt/vtt file, follow with `fetch_job_result` and give the user the URL plus the extracted content. There is NO account-wide job history. Pass `task_tokens` from this conversation (the `task_token` returned by `transcode_video` / `start_encode2_raw`, or tokens the user pasted). Do not invent tokens and do not call `create_bucket` to "find" jobs. An empty list returns `{jobs: [], client_note}` — relay `client_note` — not a failed call. Clicking a job ID (or the copy icon) copies the token. A playable output URL (mp4 / webm / HLS / DASH) should go to `open_player`. Args: task_tokens: job IDs to show, most recent first. Capped at 20. When the result carries a non-null `next`, follow it in the same reply (`open_player` and/or `fetch_job_result`) and tell the user about the inline player or the extracted file content. `next` is set only when a listed job is already Done with a matching output. When the result carries a non-null `client_note`, pass its point on to the user in the same reply (hosts that collapse the widget until expanded).
    ConnectorOAuth
  • Lists the workspaces owned by the account behind the API key: the main workspace and its sub-workspaces, each with id, name, icon and creation date. isCurrent marks the workspace this key is bound to. Every other tool acts on the current workspace only; to work in another workspace, connect with that workspace's own key.
    ConnectorNo auth
  • Return ready-to-embed SVG markup for 1-20 Infyicon icons in one call (pass an array of ids from search_icons). Use when building a UI, icon set or design system so you fetch several icons at once instead of calling get_icon_svg repeatedly; use get_icon_svg for a single icon. Read-only, no auth; ids beyond the first 20 are silently dropped; each bad or unknown id gets a per-item error while the rest still succeed; oversized SVGs (>200 KB) return svg_url instead of markup. Free with attribution to infyicon.com.
    ConnectorNo auth
  • Search the Infyicon UI webfont (61,000+ glyphs) by glyph name and return matching CSS class names (regular ii-r-<name>, solid ii-s-<name>) plus a ready <i> tag and the stylesheet link https://infyicon.com/uicons/uicons.css. Use ONLY when the user wants an icon font / CSS class (like Font Awesome usage); use search_icons for SVG or PNG icon files. Case-insensitive substring match, up to 40 matches, no pagination; empty name returns an error. Read-only, no auth. Free with attribution to infyicon.com.
    ConnectorNo auth
  • Return ready-to-embed SVG markup for 1-20 Infyicon icons in one call (pass an array of ids from search_icons). Use when building a UI, icon set or design system so you fetch several icons at once instead of calling get_icon_svg repeatedly; use get_icon_svg for a single icon. Read-only, no auth; ids beyond the first 20 are silently dropped; each bad or unknown id gets a per-item error while the rest still succeed; oversized SVGs (>200 KB) return svg_url instead of markup. Free with attribution to infyicon.com.
    ConnectorNo auth
  • Search the Infyicon UI webfont (61,000+ glyphs) by glyph name and return matching CSS class names (regular ii-r-<name>, solid ii-s-<name>) plus a ready <i> tag and the stylesheet link https://infyicon.com/uicons/uicons.css. Use ONLY when the user wants an icon font / CSS class (like Font Awesome usage); use search_icons for SVG or PNG icon files. Case-insensitive substring match, up to 40 matches, no pagination; empty name returns an error. Read-only, no auth. Free with attribution to infyicon.com.
    ConnectorNo auth
  • Update the design configuration for your GrowSurf program, including participant avatars under `participantAvatarStyle`, referred-visitor content such as the Claim Offer Popup and the side content of its GrowSurf page (`referredExperience.offerPageDescription` HTML, up to 5 `offerPageSteps` of `{ text, iconKey }`, and up to 3 `offerPageLinks` of `{ text, url }` where an empty `url` links to the Share URL), the website widget under `widget` (button or card, placement, timing, and visible pages), the participant Traffic report under `trafficInsights`, participant sign-in copy under `login`, payout-destination confirmation page copy under `payoutDestinationConfirmation`, and the participant Settings panel under `participantSettings`, such as the language picker's `languageSectionTitle` (up to 100 characters) and `languageSectionInstructionsText` (up to 255 characters). `trafficInsights.isPublicDisplayed` controls visibility; its labels cannot be blank. `participantAvatarStyle` accepts `CHARACTERS`, `INITIALS`, `ANIMALS`, or `GRADIENT`. `visualStyle` accepts `GLOW`, `CLEAN`, `FLAT`, `ROUND`, `TINT`, or `GLASS`; it sets corners, shadows, button shape and background on program pages and the GrowSurf Window. Changing it also fills `theme.buttons.borderRadius` and the `theme.globalBoxShadow` fields unless the same request sets them. Text fields use the same character limits as the dashboard Program Editor. Text the Program Editor requires, such as Window labels, button text, and status names, cannot be set to `null`, empty, or only spaces. Only supplied `fields` change; omitted fields retain their existing content and arrays replace wholesale. One call can change many fields, so send related changes together instead of one field per call. Read `growsurf_get_campaign_design` first and use its field names and allowed values exactly. An invalid field returns an error that names the field. After a design change is saved, call `growsurf_capture_referral_flow_screenshots` for short-lived preview screenshots of the referrer and referred-friend experiences. They show the saved program, not the customer's site. Image, icon, and link fields must be hosted `http(s)` URLs, not `data:` URIs. Targets `campaignId` if supplied, otherwise `GROWSURF_CAMPAIGN_ID`.
    Connector
    Destructive
    OAuth
  • Connect the user's Con Edison (New York City / Westchester) electricity account, or check on a connection in progress. Call this first. Returns status: AUTHORIZATION_REQUIRED (ask the user for their ConEd account number, then call again with it), AUTHORIZATION_PENDING (the user must click Allow in an email from ConEd), DATA_LOADING (approved; usage is downloading, call again in a few minutes), READY (call get_coned_data), or ERROR (relay the message). Con Edison only — other utilities are not supported.
    ConnectorOAuth