tools

Copy as Markdown View as Markdown

MCP

Tool Reference

Reference for 151 of the 313 tools available to your AI assistant through MCP, organized by category. Every tool is listed by name under Toolsets, and your MCP client's tool list shows the live parameters for each one.

Choose tools by task

Start with the smallest tool set that answers your request. A connected server is not permission to change an account. Your agent can keep its own instructions and orchestration; the Synter plugin is optional.

Verify the workspace and accountUse get_connection_status, thenverify_platform_accounts for the platform you need. Confirm the intended account ID; do not assume the default account is correct. Use get_credit_balance to check usage balance.

Inspect campaigns or performanceUse list_campaigns with the verified account to inspect campaigns. For performance, use the platform's performance tool with its supported date-window arguments. Keep a reporting request read-only. Platform conversion value is not necessarily received revenue.

Find a supported operationUse list_available_scripts to discover the action, then inspect_script for its required arguments. Follow the returned schema and permissions; do not invent an action or infer write support from the platform list.

Make an authorized change and verify itConfirm the account, target, exact change, and expected costs before using the specific write tool or execute. Execution can change live state. Inspect the result and read the resource back; use get_ad_readback where supported. A returned ID alone does not prove delivery or performance.

For evaluation, compare the required operations, permission boundaries, and total costs against your own requirements. See the current pricing and trust documentation. Request evidence for any control your review requires; connecting this server is not an endorsement or an independent certification.

How tools work

You don't need to call tools directly. Just describe what you want in natural language and your AI assistant will pick the right tool. Some tools are free and others incur usage charges — check the specific tool's cost with forecast_tool_cost and your balance with get_credit_balance.

Catalog scope

This reference describes the hosted server athttps://mcp.synterai.com. It is generated from the current hosted tool manifest, including input schemas and read/write annotations. The versioned @synterai/mcp-server local compatibility package exposes a smaller tool set; pin its npm version and use that release's README when local stdio transport is required.

Beyond these tools: execute()

The tools above cover the common cases, but execute in the Advanced category is a general-purpose escape hatch into a much larger internal script library (several hundred platform-specific actions) — use list_available_scripts to browse it andinspect_script to see an action's exact arguments before calling it.

Getting Started

2

synter_onboarding_startwrite

Start the legacy authenticated email onboarding handoff

Parameters

emailstring

Your work email address

synter_onboarding_statusread-only

Poll until email verification completes, then open the secure OAuth install guide

Parameters

session_tokenstring

The session token returned by synter_onboarding_start

device_codestring

The device_code returned by synter_onboarding_start

Account & Connections

8

list_connected_accountsread-only

See ALL connected accounts: ad platforms, analytics (GA4, PostHog), CRM (HubSpot, Attio), and more (free)

Parameters

limitnumber

Max items per page (default: 50, max: 500)

offsetnumber

Optional zero-based offset; takes precedence over page.

pagenumber

Page number (1-indexed, default: 1)

platformstring

Optional exact, case-insensitive platform filter (e.g. 'GOOGLE'). Unknown values return no accounts; omitted or empty means all platforms.

verify_platform_accountsread-only

Verify which ad account each platform's pull tools would use by default, with recent activity per connected account. Flags when the default account is dormant while a sibling account has spend (free). Call this before pull_*_performance when a platform has multiple accounts or returns suspicious zeros.

Parameters

platformstring

Optional platform filter (e.g. "X", "REDDIT", "GOOGLE"). Omit to verify all connected ad platforms.

daysnumber

Activity window in days (default: 7).

get_workspacesread-only

List the workspaces you belong to and show which one this connection is working in (free). Use it when results look like the wrong workspace, or before update_active_workspace.

No parameters required.

update_active_workspacewrite

Switch which workspace this connection works in, by id or exact name from get_workspaces (free). Persists for later calls and new chats on this connection; your other connections and API keys are unchanged. Only workspaces you are an active member of are allowed.

Parameters

workspacestringrequired

Workspace id (e.g. "1201") or exact workspace name

get_connection_statusread-only

Check ALL platform connections: ad platforms, analytics (GA4, PostHog), CRM (HubSpot, Attio), and more (free)

Parameters

demoboolean

Optional boolean to return realistic sandbox demonstration data without connecting an account.

get_billingread-only

Read Synter billing for this workspace. view: status (subscription access and usage balance), balance (credit balance and pricing), vendor_consumption (paid data consumed over since_days), tool_cost (charge for tool_name before calling it). Covers get_billing_status, get_credit_balance, get_vendor_consumption and forecast_tool_cost. No credits charged.

Parameters

viewstring

Default status.

status``balance``vendor_consumption``tool_cost

tool_namestring

Tool to price (view tool_cost only).

since_daysnumber

Window in days, 1-365, default 30 (view vendor_consumption only).

get_credit_balanceread-only

Superseded by get_billing (still callable, not listed). Check your credit balance and pricing (free)

No parameters required.

get_job_statusread-only

Check the status of an async job (e.g. audience sync). Returns job status, result on success, or error on failure. No credits charged.

Parameters

job_idstringrequired

The job ID returned by the async tool (UUID format)

Performance Reporting

24

pull_google_ads_performanceread-only

Get Google Ads campaign metrics — impressions, clicks, spend, conversions per campaign (2 credits). Date window: date_range preset (today, yesterday, last_7_days, last_14_days, last_30_days, last_90_days), start_date/end_date (YYYY-MM-DD) for custom ranges like weekends, or days for a rolling window. IMPORTANT: If the user has multiple Google Ads accounts connected, you MUST ask which account to use BEFORE calling this tool — pass account_name to select it.

Parameters

daysnumber

Number of days to look back (default: 30). Ignored when date_range or start_date/end_date are provided.

date_rangestring

Optional preset window. Explicit start_date/end_date take precedence.

today``yesterday``last_7_days``last_14_days``last_30_days``last_90_days

levelstring

Data granularity (default: campaigns)

campaigns``ad-groups``keywords``ads``search-terms

account_idstring

Optional specific Google Ads customer ID. If not provided, uses the user's primary connected account.

account_namestring

Optional account name for disambiguation when multiple accounts are connected. Pass the name the user mentions (e.g., "leafypod") — the system will match it.

start_datestring

Optional fixed window start (YYYY-MM-DD). Requires end_date.

end_datestring

Optional fixed window end (YYYY-MM-DD). Requires start_date.

demoboolean

Optional boolean to return realistic sandbox demonstration data without connecting an account.

include_ad_textboolean

level=ads only. Include headlines/descriptions/final_urls. Defaults to true, or false when segment is set (text repeats per row).

limitnumber

Optional max rows per page (1..5000).

offsetnumber

Rows to skip (pagination). Pass the previous page's next_offset.

segmentstring

Optional time breakdown: "date" (one row per entity per day) or "week" (per ISO week, Monday start). Each row carries the segment value under the same key.

date``week

pull_meta_ads_performanceread-only

Get Meta (Facebook/Instagram) Ads metrics — impressions, clicks, spend, conversions per campaign (2 credits). Date window: date_range preset (today, yesterday, last_7_days, last_14_days, last_30_days, last_90_days), start_date/end_date (YYYY-MM-DD) for custom ranges, or days for a rolling window. IMPORTANT: If the user has multiple Meta Ads accounts connected, you MUST ask which account to use BEFORE calling this tool — pass account_name to select it.

Parameters

daysnumber

Number of days to look back (default: 30). Ignored when date_range or start_date/end_date are provided.

date_rangestring

Optional preset window. Explicit start_date/end_date take precedence.

today``yesterday``last_7_days``last_14_days``last_30_days``last_90_days

levelstring

Data granularity (default: campaign)

campaign``ad-set``ad``creative``placement

account_idstring

Optional specific Meta ad account ID

account_namestring

Optional account name for disambiguation when multiple accounts are connected.

start_datestring

Optional fixed window start (YYYY-MM-DD). Requires end_date.

end_datestring

Optional fixed window end (YYYY-MM-DD). Requires start_date.

demoboolean

Optional boolean to return realistic sandbox demonstration data without connecting an account.

campaign_idstring

Optional: only return rows for this Meta campaign ID.

breakdownstring

total (default) = one row per entity over the window; daily = per-day rows.

total``daily

limitnumber

Rows per page (default 50, max 5000; 0 requests the maximum). Response includes next_offset when more rows exist.

offsetnumber

Row offset for paging (default 0).

sort_bystring

Optional sort field; ad-level results default to launch_date.

sort_orderstring

Sort direction (default desc).

asc``desc

dailyboolean

Return per-day rows. breakdown=daily also enables this behavior.

custom_conversion_idstring | number

Optional Meta custom conversion ID.

custom_event_namestring

Optional custom event name to report.

name_prefixstring

Optional name prefix filter (e.g. 'B9_') for batch view.

launch_daysnumber

Optional filter for ads launched within the last N days.

launch_date_afterstring

Optional filter for ads launched on or after YYYY-MM-DD.

placement_breakdownboolean

Optional boolean to attach per-placement breakdowns to each ad row.

roll_upboolean

Optional boolean to roll up ads sharing the same creative across campaigns.

include_long_fieldsboolean

Optional boolean to include primary_text, trend/benchmark detail and other long fields in ad rows (omitted by default so more rows fit per size-capped page).

rollup_creativeboolean

Optional boolean to aggregate metrics across ads by creative ID.

get_ad_readbackread-only

Proof Pack: read a launched ad's creative + CTA back from the platform API (the source of truth) and verify the CTA against the platform enum and the copy against ad policy (2 credits). Meta, Reddit, LinkedIn, and Google Ads supported today; other platforms return a clearly-labeled unsupported result. Google also accepts ad_group_id, campaign_id, or the raw create_result.

Parameters

platformstringrequired

Platform the ad was launched on (e.g. "meta").

ad_idstring

The platform ad ID returned by upload_creative / create_*_ad. Optional for Google when ad_group_id, campaign_id or create_result is given.

ad_idsstring

Comma-separated Meta ad IDs for batch creative readback.

account_idstring

Optional specific ad-account ID holding the ad (Google: customer ID).

approved_ctastring

Optional brief-approved CTA to verify the launched CTA against.

ad_group_idstring

Google only: read back the ads in this ad group.

campaign_idstring

Google only: read back the ads in this campaign.

create_resultstring

Google only: the JSON result of the create call; ad / ad group / campaign IDs are extracted from it.

pull_linkedin_ads_performanceread-only

Get LinkedIn Ads metrics — impressions, clicks, spend, conversions per campaign (2 credits). Date window: date_range preset (today, yesterday, last_7_days, last_14_days, last_30_days, last_90_days), start_date/end_date (YYYY-MM-DD) for custom ranges, or days for a rolling window. Pass campaign_group_ids (comma-separated) to filter to specific campaign groups. IMPORTANT: If the user has multiple LinkedIn accounts connected, you MUST ask which account to use BEFORE calling this tool — pass account_name to select it.

Parameters

daysnumber

Number of days to look back (default: 30). Ignored when date_range or start_date/end_date are provided.

date_rangestring

Optional preset window.

today``yesterday``last_7_days``last_14_days``last_30_days``last_90_days

levelstring

Data granularity (default: campaign). Accepts 'campaign' or 'creative'.

campaign``creative

account_idstring

Optional specific LinkedIn ad account ID

account_namestring

Optional account name for disambiguation when multiple accounts are connected.

start_datestring

Optional fixed window start (YYYY-MM-DD). Requires end_date.

end_datestring

Optional fixed window end (YYYY-MM-DD). Requires start_date.

campaign_group_idsstring

Optional comma-separated LinkedIn Campaign Group IDs to filter by; only campaigns within these groups are returned.

pull_x_ads_performanceread-only

Get X (Twitter) Ads metrics — impressions, clicks, spend, conversions per campaign (2 credits). Date window: date_range preset (today, yesterday, last_7_days, last_14_days, last_30_days, last_90_days), start_date/end_date (YYYY-MM-DD) for custom ranges, or days for a rolling window. IMPORTANT: If the user has multiple X Ads accounts connected, you MUST ask which account to use BEFORE calling this tool — pass account_name to select it.

Parameters

daysnumber

Number of days to look back (default: 30). Ignored when date_range or start_date/end_date are provided.

date_rangestring

Optional preset window.

today``yesterday``last_7_days``last_14_days``last_30_days``last_90_days

account_idstring

Optional specific X Ads account ID

account_namestring

Optional account name for disambiguation when multiple accounts are connected.

start_datestring

Optional fixed window start (YYYY-MM-DD). Requires end_date.

end_datestring

Optional fixed window end (YYYY-MM-DD). Requires start_date.

campaign_idstring

Optional specific campaign ID to filter by.

campaign_idsstring

Optional comma-separated list of campaign IDs to filter by.

pull_reddit_ads_performanceread-only

Get Reddit Ads metrics — impressions, clicks, spend, conversions per campaign (2 credits). Date window: date_range preset (today, yesterday, last_7_days, last_14_days, last_30_days, last_90_days), start_date/end_date (YYYY-MM-DD) for custom ranges, or days for a rolling window. IMPORTANT: If the user has multiple Reddit Ads accounts connected, you MUST ask which account to use BEFORE calling this tool — pass account_name to select it.

Parameters

daysnumber

Number of days to look back (default: 30). Ignored when date_range or start_date/end_date are provided.

date_rangestring

Optional preset window.

today``yesterday``last_7_days``last_14_days``last_30_days``last_90_days

account_idstring

Optional specific Reddit ad account ID

account_namestring

Optional account name for disambiguation when multiple accounts are connected.

start_datestring

Optional fixed window start (YYYY-MM-DD). Requires end_date.

end_datestring

Optional fixed window end (YYYY-MM-DD). Requires start_date.

pull_microsoft_ads_performanceread-only

Get Microsoft (Bing) Ads metrics — impressions, clicks, spend, conversions per campaign (2 credits). Date window: date_range preset (today, yesterday, last_7_days, last_14_days, last_30_days, last_90_days), start_date/end_date (YYYY-MM-DD) for custom ranges, or days for a rolling window. IMPORTANT: If the user has multiple Microsoft Ads accounts connected, you MUST ask which account to use BEFORE calling this tool — pass account_name to select it.

Parameters

daysnumber

Number of days to look back (default: 30). Ignored when date_range or start_date/end_date are provided.

date_rangestring

Optional preset window.

today``yesterday``last_7_days``last_14_days``last_30_days``last_90_days

account_idstring

Optional specific Microsoft Ads account ID

account_namestring

Optional account name for disambiguation when multiple accounts are connected.

start_datestring

Optional fixed window start (YYYY-MM-DD). Requires end_date.

end_datestring

Optional fixed window end (YYYY-MM-DD). Requires start_date.

breakdownstring

Optional breakdown dimension (e.g. conversion_action, device, age_range, gender, geo_country, geo_region, or all).

breakdownsstring

Alias for breakdown.

conversion_goalsboolean

Optional flag to include conversion goal breakdown.

levelstring

Reporting level: 'campaign' (default), 'ad-group', or 'ad'.

limitnumber

Optional maximum number of entity rows to return.

offsetnumber

Number of entity rows to skip (default: 0).

campaign_idstring

Optional campaign ID to filter results to one campaign.

demoboolean

Optional demo mode flag.

pull_tiktok_ads_performanceread-only

Get TikTok Ads metrics — impressions, clicks, spend, conversions per campaign (2 credits). Date window: date_range preset (today, yesterday, last_7_days, last_14_days, last_30_days, last_90_days), start_date/end_date (YYYY-MM-DD) for custom ranges, or days for a rolling window. For detailed video engagement metrics use tiktok_ads_get_insights. IMPORTANT: If the user has multiple TikTok Ads accounts connected, you MUST ask which account to use BEFORE calling this tool — pass account_name to select it.

Parameters

daysnumber

Number of days to look back (default: 30). Ignored when date_range or start_date/end_date are provided.

date_rangestring

Optional preset window.

today``yesterday``last_7_days``last_14_days``last_30_days``last_90_days

account_idstring

Optional specific TikTok advertiser ID

account_namestring

Optional account name for disambiguation when multiple accounts are connected.

start_datestring

Optional fixed window start (YYYY-MM-DD). Requires end_date.

end_datestring

Optional fixed window end (YYYY-MM-DD). Requires start_date.

pull_amazon_dsp_performanceread-only

Pull Amazon DSP campaign performance data (2 credits)

Parameters

daysnumber

Number of days to look back (default: 30, max: 90)

account_idstring

Optional specific Amazon DSP advertiser ID

account_namestring

Optional account name for disambiguation.

date_rangestring

Optional preset window; overrides days.

today``yesterday``last_7_days``last_14_days``last_30_days``last_90_days``last_180_days``last_365_days``last_2_years``last_3_years

end_datestring

Optional end date (YYYY-MM-DD, default: today).

start_datestring

Optional start date (YYYY-MM-DD); overrides days.

pull_amazon_ads_performanceread-only

Get Amazon Ads (Sponsored Products/Brands/Display) metrics (2 credits). When counting 'live' campaigns, only count campaigns with state=ENABLED AND active ad groups with budget remaining — ARCHIVED campaigns are NOT active. IMPORTANT: If the user has multiple Amazon Ads accounts connected, you MUST ask which account to use BEFORE calling this tool — pass account_name to select it.

Parameters

daysnumber

Number of days to look back (default: 30, max: 90)

ad_typestring

Ad type filter (default: ALL)

SP``SB``SD``ALL

account_idstring

Optional specific Amazon Ads profile ID

account_namestring

Optional account name for disambiguation.

date_rangestring

Optional preset window; overrides days.

today``yesterday``last_7_days``last_14_days``last_30_days``last_90_days``last_180_days``last_365_days``last_2_years``last_3_years

end_datestring

Optional end date (YYYY-MM-DD, default: today).

start_datestring

Optional start date (YYYY-MM-DD); overrides days.

pull_pinterest_ads_performanceread-only

Get Pinterest Ads metrics (2 credits). IMPORTANT: If the user has multiple Pinterest ad accounts connected, you MUST ask which account to use BEFORE calling this tool — pass account_name to select it.

Parameters

daysnumber

levelstring

account_idstring

account_namestring

date_rangestring

Optional preset window; overrides days.

today``yesterday``last_7_days``last_14_days``last_30_days``last_90_days``last_180_days``last_365_days``last_2_years``last_3_years

end_datestring

Optional end date (YYYY-MM-DD, default: today).

start_datestring

Optional start date (YYYY-MM-DD); overrides days.

pull_snap_ads_performanceread-only

Get Snapchat Ads metrics (2 credits). Use account_name to specify which account when multiple are connected.

Parameters

daysnumber

levelstring

account_idstring

account_namestring

date_rangestring

Optional preset window; overrides days.

today``yesterday``last_7_days``last_14_days``last_30_days``last_90_days``last_180_days``last_365_days``last_2_years``last_3_years

end_datestring

Optional end date (YYYY-MM-DD, default: today).

start_datestring

Optional start date (YYYY-MM-DD); overrides days.

pull_spotify_ads_performanceread-only

Get Spotify Ads metrics (2 credits). Use account_name to specify which account when multiple are connected.

Parameters

daysnumber

account_idstring

account_namestring

date_rangestring

Optional preset window; overrides days.

today``yesterday``last_7_days``last_14_days``last_30_days``last_90_days``last_180_days``last_365_days``last_2_years``last_3_years

end_datestring

Optional end date (YYYY-MM-DD, default: today).

start_datestring

Optional start date (YYYY-MM-DD); overrides days.

pull_openai_ads_performanceread-only

Get OpenAI Ads metrics (2 credits). Pulls insights from the OpenAI Ads API. Optional scope: campaign_id, ad_group_id, or ad_id to scope the report. Defaults to the selected scope's natural aggregation level; unscoped defaults to ad_account.

Parameters

daysnumber

How many days back to pull (1-365). Defaults to 30.

campaign_idstring

Optional — scope insights to one campaign.

ad_group_idstring

Optional — scope insights to one ad group.

ad_idstring

Optional — scope insights to one ad.

aggregation_levelstring

Defaults to ad_account.

ad_account``campaign``ad_group``ad

time_granularitystring

Defaults to script default.

daily``none

limitnumber

Max rows to return (defaults to 1000).

account_idstring

Optional OpenAI Ads account ID (when multiple connected).

account_namestring

Optional friendly account name selector.

date_rangestring

Optional preset window; overrides days.

today``yesterday``last_7_days``last_14_days``last_30_days``last_90_days``last_180_days``last_365_days``last_2_years``last_3_years

end_datestring

Optional end date (YYYY-MM-DD, default: today).

start_datestring

Optional start date (YYYY-MM-DD); overrides days.

pull_trade_desk_performanceread-only

Get The Trade Desk metrics (2 credits). Date window: date_range preset (today, yesterday, last_7_days, last_14_days, last_30_days, last_90_days), start_date/end_date (YYYY-MM-DD) for custom ranges, or days for a rolling window. Use account_name to specify which account when multiple are connected.

Parameters

daysnumber

Number of days to look back (default: 30). Ignored when date_range or start_date/end_date are provided.

date_rangestring

Optional preset window.

today``yesterday``last_7_days``last_14_days``last_30_days``last_90_days

account_idstring

Optional specific Trade Desk partner ID

account_namestring

Optional account name for disambiguation when multiple accounts are connected.

start_datestring

Optional fixed window start (YYYY-MM-DD). Requires end_date.

end_datestring

Optional fixed window end (YYYY-MM-DD). Requires start_date.

pull_freewheel_performanceread-only

Get FreeWheel Buyer Cloud (Beeswax) metrics (2 credits). Date window: date_range preset (today, yesterday, last_7_days, last_14_days, last_30_days, last_90_days), start_date/end_date (YYYY-MM-DD) for custom ranges, or days for a rolling window. Use account_name to specify which account when multiple are connected.

Parameters

daysnumber

Number of days to look back (default: 30). Ignored when date_range or start_date/end_date are provided.

date_rangestring

Optional preset window.

today``yesterday``last_7_days``last_14_days``last_30_days``last_90_days

account_idstring

Optional specific FreeWheel connection account id.

account_namestring

Optional account name for disambiguation.

start_datestring

Optional fixed window start (YYYY-MM-DD). Requires end_date.

end_datestring

Optional fixed window end (YYYY-MM-DD). Requires start_date.

get_spend_reconciliationread-only

Cross-platform reconciliation MVP — compares Google Ads ↔ Trade Desk totals for a date range, returns normalized per-platform metrics, discrepancies, and deterministic likely-cause explanations (3 credits). Read-only. Date range capped to 92 days.

Parameters

start_datestringrequired

YYYY-MM-DD (inclusive)

end_datestringrequired

YYYY-MM-DD (inclusive, must be <= yesterday)

google_account_idstring

Optional Google Ads customer ID

google_account_namestring

Optional Google account name for disambiguation

ttd_advertiser_idstring

Optional Trade Desk advertiser ID

ttd_account_namestring

Optional TTD account name for disambiguation

pull_dv360_performanceread-only

Get Display & Video 360 (DV360) metrics (2 credits). Use account_name to specify which account when multiple are connected.

Parameters

daysnumber

account_idstring

account_namestring

date_rangestring

Optional preset window; overrides days.

today``yesterday``last_7_days``last_14_days``last_30_days``last_90_days``last_180_days``last_365_days``last_2_years``last_3_years

end_datestring

Optional end date (YYYY-MM-DD, default: today).

start_datestring

Optional start date (YYYY-MM-DD); overrides days.

pull_cm360_performanceread-only

Get Campaign Manager 360 (CM360) metrics (2 credits). Use account_name to specify which account when multiple are connected.

Parameters

daysnumber

account_idstring

account_namestring

date_rangestring

Optional preset window; overrides days.

today``yesterday``last_7_days``last_14_days``last_30_days``last_90_days``last_180_days``last_365_days``last_2_years``last_3_years

end_datestring

Optional end date (YYYY-MM-DD, default: today).

start_datestring

Optional start date (YYYY-MM-DD); overrides days.

pull_walmart_ads_performanceread-only

Get Walmart Connect Advertising metrics (2 credits). Returns impressions, clicks, spend, conversions, and ROAS per campaign.

Parameters

daysnumber

account_idstring

account_namestring

date_rangestring

Optional preset window; overrides days.

today``yesterday``last_7_days``last_14_days``last_30_days``last_90_days``last_180_days``last_365_days``last_2_years``last_3_years

end_datestring

Optional end date (YYYY-MM-DD, default: today).

start_datestring

Optional start date (YYYY-MM-DD); overrides days.

pull_instacart_ads_performanceread-only

Get Instacart Ads metrics (2 credits). Returns impressions, clicks, spend, attributed orders, and attributed sales per campaign.

Parameters

daysnumber

account_idstring

account_namestring

date_rangestring

Optional preset window; overrides days.

today``yesterday``last_7_days``last_14_days``last_30_days``last_90_days``last_180_days``last_365_days``last_2_years``last_3_years

end_datestring

Optional end date (YYYY-MM-DD, default: today).

start_datestring

Optional start date (YYYY-MM-DD); overrides days.

pull_target_roundel_performanceread-only

Get Target Roundel retail media metrics (2 credits). Returns impressions, clicks, spend, conversions, and revenue per campaign.

Parameters

daysnumber

account_idstring

account_namestring

date_rangestring

Optional preset window; overrides days.

today``yesterday``last_7_days``last_14_days``last_30_days``last_90_days``last_180_days``last_365_days``last_2_years``last_3_years

end_datestring

Optional end date (YYYY-MM-DD, default: today).

start_datestring

Optional start date (YYYY-MM-DD); overrides days.

pull_criteo_ads_performanceread-only

Get Criteo Commerce Media metrics (2 credits). Returns displays, clicks, cost, conversions, and revenue per campaign.

Parameters

daysnumber

account_idstring

account_namestring

date_rangestring

Optional preset window; overrides days.

today``yesterday``last_7_days``last_14_days``last_30_days``last_90_days``last_180_days``last_365_days``last_2_years``last_3_years

end_datestring

Optional end date (YYYY-MM-DD, default: today).

start_datestring

Optional start date (YYYY-MM-DD); overrides days.

pull_linkedin_company_engagementread-only

Pull LinkedIn Ads Company Engagement report — shows which companies have seen your ads and how engaged they are (2 credits)

Parameters

account_idstring

LinkedIn Ads account ID (uses connected account if omitted)

daysnumber

Look-back window in days (default: 90)

audience_idstring

Optional dmpSegment ID — scope analytics to this audience

countrystring

ISO country code filter, e.g. "US" or "GB"

min_employeesnumber

Filter companies with at least this many employees

max_employeesnumber

Filter companies with at most this many employees

engagement_levelstring

Comma-separated tier filter: "VERY_HIGH,HIGH" or "MEDIUM,LOW"

limitnumber

Maximum companies to return (default: 200)

TikTok Ads (Detailed)

6

tiktok_ads_get_insightsread-only

Get TikTok Ads performance report with video metrics (2 credits). Returns spend, impressions, clicks, CTR, conversions, CPA, ROAS, and TikTok-specific video engagement metrics per campaign/adgroup/ad.

Parameters

daysnumber

Number of days to look back (default: 7)

data_levelstring

Data level (default: AUCTION_CAMPAIGN)

AUCTION_CAMPAIGN``AUCTION_ADGROUP``AUCTION_AD

account_idstring

Optional specific TikTok advertiser ID

account_namestring

Optional account name for disambiguation.

tiktok_ads_get_adgroupread-only

Get full TikTok ad group configuration (free). Returns targeting, budget, bid, pixel, optimization goal, languages, locations, age groups, identity.

Parameters

adgroup_idstringrequired

The ad group ID to fetch

account_idstring

Optional specific TikTok advertiser ID

account_namestring

Optional account name for disambiguation.

tiktok_ads_get_ad_groupsread-only

List all TikTok ad groups, optionally filtered by campaign (free). Returns ID, name, status, budget, bid, optimization goal.

Parameters

campaign_idstring

Optional campaign ID to filter ad groups

account_idstring

Optional specific TikTok advertiser ID

account_namestring

Optional account name for disambiguation.

tiktok_ads_get_adsread-only

List all TikTok ads, optionally filtered by ad group (free). Returns ad_id, ad_name, adgroup_id, campaign_id, status, ad_format.

Parameters

adgroup_idstring

Optional ad group ID to filter ads

account_idstring

Optional specific TikTok advertiser ID

account_namestring

Optional account name for disambiguation.

tiktok_ads_update_adgroupwrite

Update a TikTok ad group: status, budget, locations, age targeting, bid, languages, audiences, optimization goal, pixel tracking (5 credits)

Parameters

adgroup_idstringrequired

The ad group ID to update

statusstring

New status

ENABLE``PAUSE

budgetnumber

Daily budget in dollars

locationsstring

Space-separated location IDs (e.g. "6252001 2635167" for US, UK)

age_minnumber

Minimum age (e.g. 25). Mapped to TikTok age groups.

age_maxnumber

Maximum age (e.g. 55). Use 0 for no upper limit (55+).

bidnumber

Bid price in dollars

bid_typestring

Bid strategy

BID_TYPE_NO_BID``BID_TYPE_CUSTOM

languagesstring

Space-separated language codes (e.g. "en fr de")

audience_idsstring

Comma-separated custom audience IDs to include

excluded_audience_idsstring

Comma-separated custom audience IDs to exclude

optimization_goalstring

Optimization goal

CLICK``CONVERT``SHOW``REACH``VIDEO_VIEW``ENGAGED_VIEW``LEAD_GENERATION``INSTALL``IN_APP_EVENT

pixel_idstring

Pixel ID for conversion tracking (numeric or alphanumeric pixel_code)

conversion_eventstring

Conversion event name (e.g. CompleteRegistration, Purchase). Auto-mapped to TikTok enum.

account_idstring

Optional specific TikTok advertiser ID

account_namestring

Optional account name for disambiguation.

tiktok_ads_get_campaignread-only

Get full TikTok campaign configuration by ID (free). Returns name, objective, budget, status, timestamps.

Parameters

campaign_idstringrequired

The campaign ID to fetch

account_idstring

Optional specific TikTok advertiser ID

account_namestring

Optional account name for disambiguation.

Campaign Management

6

list_campaignsread-only

List campaigns for any ad platform (2 credits)

Parameters

platformstringrequired

Ad platform

google``meta``linkedin``reddit``microsoft``tiktok``x``amazon_dsp

account_idstring

Optional specific account ID for the platform

statusstring

Optional filter by status

ENABLED``PAUSED``REMOVED

account_namestring

Optional name to select which account when multiple are connected for the same platform

demoboolean

Optional boolean to return realistic sandbox demonstration data without connecting an account

pause_campaignwrite

Pause a campaign on any ad platform (2 credits)

Parameters

platformstringrequired

Ad platform

google``meta``linkedin``reddit``microsoft``tiktok``x``amazon_dsp

campaign_idstringrequired

The campaign ID to pause

account_idstring

Optional specific account ID

account_namestring

Optional name to select which account when multiple are connected for the same platform

meta_ads_create_adwrite

Create a Meta (Facebook/Instagram) ad in an existing ad set (20 credits)

Parameters

adset_idstring

Parent ad set id. A single real id — wildcards are rejected.

adset_idsstring[]

List of parent ad set ids for multi-ad-set creation.

qa_passstring|string[]

Verified creative QA pass binding for this action.

namestring

Ad name.

creative_idstring

Existing creative id to reuse.

page_idstring

Facebook Page id, required when building a new creative.

linkstring

Destination URL for a new creative.

messagestring

Primary text.

headlinestring

Headline text.

descriptionstring

Description text.

call_to_actionstring

CTA enum, e.g. LEARN_MORE, SIGN_UP, SHOP_NOW.

image_urlstring

Image URL to upload.

image_hashstring

Pre-uploaded image hash (alternative to image_url).

video_idstring

Video asset id.

video_urlstring

Video URL to upload.

instagram_user_idstring

Instagram account id for IG placements.

qa_passstring|string[]

QA pass bindings returned by qa_pass_bindings; not a bypass.

statusstring

Defaults to PAUSED — new ads should be reviewed before they spend.

ACTIVE``PAUSED

account_idstring

Specific ad account id.

account_namestring

Select among several connected Meta accounts by name.

allow_weak_creative_variantsboolean

In multi-variant mode, ship even if a field you used is under-filled (e.g. 3 messages but only 1 headline). Deliberate exception only — default is to block.

descriptionsstring[]

2+ description variants (multi-variant creative).

headlinesstring[]

2+ headline variants (multi-variant creative).

messagesstring[]

2+ primary-text variants for a multi-variant (Advantage+ / dynamic) creative — Meta's asset_feed_spec combines and optimizes across whatever variants you give it per field. Per the meta-creative-patterns skill this is the platform's expert default at scale (82% of creative-known spend). Combine with `headlines`/`descriptions`; passing more than one value in ANY of the three engages multi-variant mode for all of them.

feed_image_urlstring

Feed placement image URL.

feed_image_hashstring

Pre-uploaded feed placement image hash.

feed_video_idstring

Feed placement video asset id.

feed_video_urlstring

Feed placement video URL to upload.

story_image_urlstring

Story placement image URL.

story_image_hashstring

Pre-uploaded story placement image hash.

story_video_idstring

Story placement video asset id.

story_video_urlstring

Story placement video URL to upload.

reel_image_urlstring

Reel placement image URL.

reel_image_hashstring

Pre-uploaded reel placement image hash.

reel_video_idstring

Reel placement video asset id.

reel_video_urlstring

Reel placement video URL to upload.

vertical_image_urlstring

Vertical (9:16) image URL.

vertical_image_hashstring

Pre-uploaded vertical image hash.

vertical_video_idstring

Vertical video asset id.

vertical_video_urlstring

Vertical video URL to upload.

gdrive_folder_urlstring

Google Drive folder URL for bulk asset ingestion.

placement_assets_jsonstring

JSON blob mapping placement names to asset specs.

reddit_ads_create_adwrite

Create a Reddit ad from an existing post in an ad group (20 credits)

Parameters

ad_group_idstringrequired

Parent ad group id. A single real id — wildcards rejected.

post_idstringrequired

The post to promote, e.g. t3_1vbvcb7.

qa_passstring|string[]

Verified creative QA pass binding for this action.

namestring

Ad name.

click_urlstring

Destination URL. Reddit rejects a click_url on free-form (TEXT) posts — only link posts carry one.

statusstring

Defaults to PAUSED.

ACTIVE``PAUSED

campaign_namestring

Campaign name used for UTM auto-append.

no_utmboolean

Skip UTM auto-append.

qa_passstring|string[]

QA pass bindings returned by qa_pass_bindings; not a bypass.

account_idstring

Specific ad account id.

account_namestring

Select among several connected Reddit accounts by name.

enable_campaignwrite

Enable/resume a paused campaign on any ad platform (2 credits)

Parameters

platformstringrequired

Ad platform

google``meta``linkedin``reddit``microsoft``tiktok``x``amazon_dsp

campaign_idstringrequired

The campaign ID to enable

account_idstring

Optional specific account ID

account_namestring

Optional name to select which account when multiple are connected for the same platform

update_campaign_budgetwrite

Update a campaign's daily budget (5 credits)

Parameters

platformstringrequired

Ad platform

google``meta``linkedin``reddit``microsoft``tiktok``x``amazon_dsp

campaign_idstringrequired

The campaign ID to update

daily_budgetnumberrequired

New daily budget in account currency (e.g., 50.00 for $50/day)

account_idstring

Optional specific account ID

account_namestring

Optional name to select which account when multiple are connected for the same platform

Google Tag Manager

6

gtm_get_resourcesread-only

Read Google Tag Manager. resource: containers (accounts and containers; call first), tags (tag summaries, live or workspace drafts), tag (full definition of tag_id incl. Custom HTML body and firing triggers). Covers list_gtm_containers, list_gtm_tags and get_gtm_tag. No credits charged.

Parameters

resourcestring

Default containers.

containers``tags``tag

account_idstring

GTM account ID (tags, tag; optional if the connection pins a container)

container_idstring

GTM container ID (tags, tag; optional if the connection pins a container)

tag_idstring

Tag ID (resource tag only, required there)

sourcestring

live (default) or workspace (resource tags only)

live``workspace

list_gtm_containersread-only

Superseded by gtm_get_resources (still callable, not listed). List Google Tag Manager accounts and containers for the connected GTM user (free). Returns each account's id/name and its containers' id/name/publicId.

No parameters required.

list_gtm_tagsread-only

Superseded by gtm_get_resources (still callable, not listed). List the tags in a GTM container (free). Returns tag summaries: tagId, name, type, paused. Pass account_id/container_id, or rely on the connection's defaults.

Parameters

account_idstring

GTM account ID (optional if the connection pins a container)

container_idstring

GTM container ID (optional if the connection pins a container)

sourcestring

live (published, default) or workspace (unpublished draft)

get_gtm_tagread-only

Superseded by gtm_get_resources (still callable, not listed). Get the full definition of one GTM tag (free), including its parameters (the html body for Custom HTML tags) and firing triggers.

Parameters

tag_idstringrequired

The tag ID to fetch (required)

account_idstring

GTM account ID (optional if the connection pins a container)

container_idstring

GTM container ID (optional if the connection pins a container)

update_gtm_tag_htmlwrite

Replace the HTML body of an existing GTM Custom HTML tag (2 credits). Modifies live site tracking once the container is published. Only type 'html' tags are allowed; the change stays in the workspace until publish_gtm_container runs.

Parameters

tag_idstringrequired

The tag ID to update (required)

htmlstringrequired

The new HTML body for the tag (required)

account_idstring

GTM account ID (optional if the connection pins a container)

container_idstring

GTM container ID (optional if the connection pins a container)

publish_gtm_containerwrite

Publish a GTM container — creates a version from the default workspace and publishes it (2 credits). Pushes all workspace changes live to the site's tracking immediately. Approval-gated.

Parameters

account_idstring

GTM account ID (optional if the connection pins a container)

container_idstring

GTM container ID (optional if the connection pins a container)

version_namestring

Optional name for the published container version

conflict_resolutionstring

Optional merge conflict strategy. Use "keep_workspace" only when the user explicitly approved keeping the workspace version for GTM conflicts.

Analytics & Query

4

run_gaql_queryread-only

Execute a Google Ads Query Language (GAQL) query (2 credits). Use account_name to specify which account when multiple are connected.

Parameters

querystringrequired

The GAQL query to execute. Example: SELECT campaign.name, metrics.impressions FROM campaign WHERE segments.date DURING LAST_30_DAYS

account_idstring

Optional Google Ads customer ID

account_namestring

Optional account name for disambiguation when multiple accounts are connected.

limitnumber

Max rows to return per page (1..100000)

offsetnumber

Number of rows to skip for pagination (pass previous next_offset)

page_tokenstring

Optional cursor alias for offset

formatstring

Output format: json (default) or csv. csv returns up to ~500KB inline plus download_url, a private link to the full CSV that expires in 15 minutes (Synter keeps no copy of the rows).

output_csvstring

Optional server-side CSV path. The file is deleted once read; use download_url for the full export.

customer_idstring

Optional Google Ads customer ID (alias of account_id)

ga4_get_propertiesread-only

List your Google Analytics 4 properties (free)

Parameters

account_idstring

Optional specific GA4 account ID

ga4_get_reportread-only

Run a Google Analytics 4 report (free). Pass property_id to query a specific GA4 property instead of the connection default.

Parameters

metricsstring

Comma-separated metrics (e.g., "sessions,totalUsers,conversions,screenPageViews")

dimensionsstring

Comma-separated dimensions (e.g., "date", "sessionSource,sessionMedium", "country")

daysnumber

Number of days to look back (default: 28)

account_idstring

Optional connection account selector

property_idstring

Optional numeric GA4 property ID to report on (overrides the connection's pinned GA4_PROPERTY_ID). Use ga4_get_properties to find it.

ga4_get_conversionsread-only

List GA4 conversion events (free). Pass property_id to query a specific GA4 property instead of the connection default.

Parameters

account_idstring

Optional connection account selector

property_idstring

Optional numeric GA4 property ID (overrides the connection's pinned GA4_PROPERTY_ID)

Pixel & Conversion Tracking

6

verify_pixel_ownershipread-only

Superseded by get_pixel_health (still callable, not listed). Cross-validate that the pixel/tag IDs on a landing page belong to the connected ad account. Detects wrong-pixel installs, domain registration gaps, and CAPI mismatches. No credits charged.

Parameters

urlstringrequired

Landing page URL to inspect.

platformstringrequired

Ad platform

META``GOOGLE_ADS``REDDIT``TIKTOK``LINKEDIN

account_idstring

Optional specific account ID; uses the user's active connection if omitted.

page_pixel_idstring

ID observed on the rendered page. Checked against provider ownership instead of re-extracting from static HTML.

get_pixel_destinationsread-only

Superseded by get_pixel_health (still callable, not listed). List Synter Pixel sites and their CAPI event-forwarding destinations for the active workspace. Shows platform, enabled/disabled state, and configured IDs. No credits charged.

Parameters

site_keystring

Optional pixel site key (sp_...) to scope to one site. If omitted, returns all sites for the workspace.

get_pixel_healthread-only

Synter Pixel and conversion tracking reads. view: health (default; snippet installed, destinations configured, last CAPI delivery per adapter), destinations (pixel sites and CAPI forwarding destinations), deliveries (event delivery rows), ownership (does the pixel on url belong to the connected platform account). Covers get_pixel_destinations, list_event_deliveries and verify_pixel_ownership. Do not pause or scale from get_performance alone. No credits charged.

Parameters

viewstring

Default health.

health``destinations``deliveries``ownership

site_keystring

Optional pixel site key (sp_...) to scope to one site (health, destinations, deliveries).

statusstring

Filter by delivery status (deliveries).

PENDING``SUCCESS``RETRYING``FAILED

platformstring

Destination platform (deliveries) or ad platform META, GOOGLE_ADS, REDDIT, TIKTOK, LINKEDIN (ownership, required there).

limitnumber

Max rows, default 50, max 200 (deliveries).

urlstring

Landing page URL to inspect (ownership, required there).

account_idstring

Optional account ID (ownership).

page_pixel_idstring

Pixel ID observed on the rendered page (ownership).

list_event_deliveriesread-only

Superseded by get_pixel_health (still callable, not listed). Read event_deliveries fan-out rows (success/fail/destination). Confirm deliveries before pause/budget from get_performance. No credits charged.

Parameters

site_keystring

Optional pixel site key (sp_...).

statusstring

Filter by delivery status

PENDING``SUCCESS``RETRYING``FAILED

platformstring

Filter by destination platform.

limitnumber

Max rows (default 50, max 200).

get_click_attributionread-only

Return stored click IDs and UTMs from pixel ingest plus Stripe first-touch. Stored identifiers only — no first/last/linear model math. No credits charged.

Parameters

site_keystring

Optional pixel site key (sp_...).

user_idnumber

Optional user id for stored Stripe first-touch.

emailstring

Optional email to match pixel events.

limitnumber

Max rows (default 50, max 200).

configure_pixel_destinationwrite

Create or update a Synter Pixel CAPI event-forwarding destination. Sets the platform-specific IDs needed to fan out conversion events server-side. Supports Google (customer_id + conversion_action_id), Meta/Reddit (pixel_id), LinkedIn (conversion_rule_id), TikTok (pixel_code), and Snapchat. Use action='disable' or action='enable' to toggle without changing settings. No credits charged.

Parameters

platformstringrequired

GOOGLE, META, LINKEDIN, REDDIT, TIKTOK, SNAPCHAT, etc.

actionstring

Default: upsert

upsert``enable``disable

site_keystring

sp_... site key; uses first active site for the org if omitted.

customer_idstring

Google Ads customer ID (digits only, no dashes).

conversion_action_idstring

Google Ads conversion action resource ID.

pixel_idstring

Meta / Reddit / Snapchat / OpenAI Ads pixel ID.

conversion_rule_idstring

LinkedIn conversion rule ID.

pixel_codestring

TikTok pixel code.

Docs, Sheets & Publishing

7

create_google_filewrite

Create a Google Doc (kind doc: markdown content or raw html) or Google Sheet (kind sheet: headers plus rows, or json_data), share it by link and read it back. Covers create_google_doc and create_google_sheet; billed as export_google_docs (5 credits).

Parameters

kindstringrequired

doc or sheet.

doc``sheet

titlestringrequired

File title.

contentstring

Markdown content (doc).

htmlstring

Raw HTML content (doc).

headersstring

Comma-separated header row (sheet).

rowsarray

Comma-separated data rows (sheet).

json_datastring

JSON array of objects (sheet).

get_google_fileread-only

Read a Google Drive file. kind drive (default): a Picker-attached file by file_id, or a public Drive/Docs file or folder by url. kind sheet: rows from a connected Google Sheet by spreadsheet_id or url. Covers read_google_drive_file and read_google_sheet. No credits charged.

Parameters

kindstring

Default drive.

drive``sheet

urlstring

Public Drive/Docs URL (drive) or Sheet URL (sheet).

file_idstring

Picker-attached file id (drive).

spreadsheet_idstring

Spreadsheet id (sheet).

rangestring

A1 range (sheet).

header_rownumber

1-based header row, default 1 (sheet).

max_rowsnumber

Maximum rows to return (sheet).

create_google_docwrite

Superseded by create_google_file (still callable, not listed). Create a Google Doc from markdown or HTML content (5 credits)

Parameters

titlestringrequired

Document title

contentstring

Markdown content for the document. Supports headings, bold, italic, links, lists. Use this for campaign plans, reports, etc.

htmlstring

Raw HTML content (alternative to markdown). Use for rich formatting.

share_with_linkboolean

Grant anyone with the link edit access (default false: private to the connected Google account).

publish_to_githubwrite

Publish a markdown blog post to a connected GitHub repo: commit <content_path>/.md and open a PR (which triggers the site's deploy). No credits charged.

Parameters

slugstringrequired

URL slug; also the markdown filename (.md).

titlestringrequired

Post title (rendered + used in front matter and the PR title).

markdownstringrequired

The article body in markdown (no front matter — it's generated).

descriptionstring

Meta description (defaults to the title).

datestring

Publish date YYYY-MM-DD (defaults to today).

categorystring

Content category (e.g. "guides", "comparisons", "product").

tagsstring

Comma-separated tags (e.g. "ABM,First-Party Data").

open_prboolean

Open a PR (default) or push directly to the deploy branch.

content_pathstring

Override the repo dir the markdown lives in (default from connection, e.g. "blog").

base_branchstring

Override the PR base / deploy branch (default from connection, e.g. "main").

create_google_sheetwrite

Superseded by create_google_file (still callable, not listed). Create a Google Sheet from tabular data (5 credits)

Parameters

titlestringrequired

Spreadsheet title

headersstring

Comma-separated column headers (e.g., "Campaign,Spend,Clicks,ROAS")

rowsstring[]

List of comma-separated row data. Each string is one row. Example: ["Brand Search,$5000,2340,4.2", "Display,$3200,18900,2.8"]

json_datastring

JSON array of objects as alternative to headers+rows. Example: '[{"Campaign":"Brand","Spend":5000},{"Campaign":"Display","Spend":3200}]'

share_with_linkboolean

Grant anyone with the link edit access (default false: private to the connected Google account).

read_google_sheetread-only

Superseded by get_google_file (still callable, not listed). Read tabular data (e.g. a media plan / campaign brief) from a connected Google Sheet (free)

Parameters

spreadsheet_idstring

Spreadsheet ID (or pass `url` instead)

urlstring

Full Google Sheets URL (alternative to spreadsheet_id)

rangestring

A1 range to read, e.g. "Media Plan!A1:H50". Defaults to the first tab.

header_rownumber

1-based row within the range holding column headers (default 1)

max_rowsnumber

Maximum number of data rows to return

update_google_sheetwrite

Write values (e.g. campaign IDs / status / spend) back into a range of an existing Google Sheet (2 credits)

Parameters

rangestringrequired

A1 range to write, e.g. "Media Plan!I2:K5"

valuesstringrequired

JSON 2D array of cell values, e.g. '[["LAUNCHED","cmp_123","$0.00"]]'

spreadsheet_idstring

Spreadsheet ID (or pass `url` instead)

urlstring

Full Google Sheets URL (alternative to spreadsheet_id)

value_input_optionstring

Default: USER_ENTERED

USER_ENTERED``RAW

Landing Pages & Domains

8

get_embedsread-only

Read native Synter embeds. view: list (all embeds plus the native-vs-hosted form capability matrix; default without embed_id), config (default with embed_id), code (install code), submissions, purchases (Stripe cart receipts). Covers list_embeds, get_embed, get_embed_code, list_embed_submissions and list_embed_purchases. No credits charged.

Parameters

embed_idstring

Embed id (required for every view except list).

viewstring

Defaults to config with embed_id, list without.

list``config``code``submissions``purchases

limitnumber

1-100, default 25 (submissions, purchases).

create_landing_pagewrite

Generate an AI landing page hosted on your custom domain (600 credits)

Parameters

titlestringrequired

Page title / brand name shown in hero and browser tab

promptstringrequired

Description of the landing page (what the product/service does, target audience, key benefits). Max 5000 characters.

cta_urlstringrequired

URL the CTA button links to (e.g., signup page)

brand_urlstring

Authoritative website for the brand represented by the page. Use this for client pages in agency workspaces — cta_url/form/calendar destinations are NOT treated as brand identity. Falls back to the authenticated workspace website if omitted.

cta_textstring

CTA button text (default: "Get Started")

stylestring

Design style (default: modern)

modern``minimal``bold

slugstring

URL slug (auto-generated from title if omitted). Max 128 chars.

lead_formstring

Optional JSON config to embed a lead-capture form as the page's primary conversion action. Pass "{}" for the default form. An email field is always required. Submissions are stored per page and routed to connected CRMs; UTM/click-id attribution is captured automatically at serve time.

idempotency_keystring

Stable caller-generated identity for safe retries. When omitted, derived from these inputs. Reuse for the same logical generation; a deliberate new generation needs a new key. Call get_job_status to retrieve saved work after reconnecting.

publish_landing_pagewrite

Publish a landing page draft, making it live at synterai.com/lp/{slug} (free)

Parameters

slugstringrequired

The slug of the landing page to publish (returned by create_landing_page)

acknowledge_benchmarkboolean

Publish even though the page lost its last competitor benchmark. Only after the user has been told it lost and agreed.

update_landing_page_trackingwrite

Set landing-page conversion pixels and the Google Ads conversion label, and wire a Fillout embed so form submits count as campaign conversions and route to HubSpot. No credits charged to edit an existing page you own. Returns google_send_to plus a Fillout webhook URL.

Parameters

slugstringrequired

The landing page slug to update

google_conversion_labelstring

Google Ads conversion label (the part after AW-.../)

fillout_form_idstring

Fillout form id (the /t/{id} token)

google_pixel_idstring

Google tag id (AW-...)

meta_pixel_idstring

Meta pixel id

linkedin_pixel_idstring

LinkedIn partner id

reddit_pixel_idstring

Reddit pixel id (a2_...)

rotate_webhook_tokenboolean

Issue a new Fillout webhook token

ga4_measurement_idstring

Workspace-owned GA4 web stream measurement ID (G-...).

update_landing_page_htmlwrite

Update the HTML content of an existing landing page you own without AI regeneration (free edit). Use this to patch copy, add logos, or tweak layout after reviewing a draft. If the slug does not exist yet, this creates a new hosted page and is billed like create_landing_page (forecast_tool_cost has the live rate).

Parameters

slugstringrequired

The landing page slug to update

html_contentstringrequired

Full HTML string to replace the current content

upload_landing_page_htmlwrite

Upload raw HTML as a new landing-page draft (no AI generation). Use to import an exported .html file or hand-written markup (embedded forms, Cal.com embeds, thank-you pages all supported). Then publish_landing_page and attach it to an ad campaign. Creating a new hosted page is billed like create_landing_page (forecast_tool_cost has the live rate); re-uploading to a slug you already own is a free edit.

Parameters

html_contentstringrequired

Full HTML string (or a fragment — it will be wrapped).

titlestring

Optional page title (defaults to "Uploaded Landing Page").

slugstring

Optional URL slug (lowercase, hyphens). Auto-generated from the title + date when omitted. Re-uploading with a slug you own updates that page in place.

setup_custom_domainwrite

Assign a custom domain (e.g. go.acme.com) to a published landing page. Requires an active paid or pay-as-you-go plan. No credits charged.

Parameters

slugstringrequired

The landing page slug

domainstringrequired

Custom domain (e.g. "go.acme.com", "landing.mybrand.com")

verify_custom_domainread-only

Check if DNS is configured for a landing page's custom domain. No credits charged.

Parameters

slugstringrequired

The landing page slug

Audiences & Targeting

7

sync_audiencewrite

Upload audience data (emails, phones, MAIDs, companies, a public CSV URL, or a private artifact id) to ad platforms. Supports inline pre-hashed identifiers, artifact-id references for >1k entries, and batch mode for Clay.com row-by-row workflows (staging is free, upload costs 10 credits — only on success). Requires i_have_consent=true confirming the customer has lawful basis under GDPR/CCPA and platform Customer Match terms for every identifier in the audience.

Parameters

platformstringrequired

Target platform - "google", "meta", "linkedin", etc.

audience_namestring

Name for the audience (e.g., "Clay - Q1 Enterprise Leads")

emailsstring

Comma-separated raw email addresses (will be SHA-256 hashed before upload).

hashed_emailsstring

Comma-separated SHA-256 hashed emails (lowercase hex).

phonesstring

Comma-separated raw phone numbers (will be normalized + SHA-256 hashed).

hashed_phonesstring

Comma-separated SHA-256 hashed phones (lowercase hex).

mobile_idsstring

Comma-separated mobile advertising IDs (IDFA / GAID, raw). Meta and TikTok require raw MADIDs (not hashed).

hashed_mobile_idsstring

Comma-separated SHA-256 hashed mobile IDs (Reddit/TikTok only — Meta drops these with a warning).

company_namesstring

Comma-separated company names (LinkedIn only)

company_domainsstring

Comma-separated company domains (Google B2B targeting, LinkedIn)

csv_pathstring

Local path to an audience CSV. Best for local/stdio MCP setups that share a filesystem with the file.

csv_urlstring

Public HTTP(S) URL to an audience CSV. Best for hosted MCP calls to mcp.synterai.com.

emails_artifact_idstring

Opaque id referring to a private payload of raw emails (one per line). Use for >1k entries.

hashed_emails_artifact_idstring

Same as above but for SHA-256 hashed emails.

phones_artifact_idstring

Artifact id for raw phone numbers (one per line, country-code prefixed).

hashed_phones_artifact_idstring

Artifact id for SHA-256 hashed phones.

mobile_ids_artifact_idstring

Artifact id for raw mobile advertising IDs (IDFA / GAID). Meta only.

audience_typestring

Default: EMAIL. Pre-hashed values are detected automatically from CSV column headers.

EMAIL``COMPANY``LOOKALIKE

account_idstring

Optional specific ad account ID

batch_actionstring

"stage" to add items to a batch (free), "finalize" to upload all staged items (10 credits, only on success).

stage``finalize

batch_keystring

Required with batch_action - stable identifier for the batch (e.g., "q1_leads_feb2026")

customer_file_sourcestring

Meta only. Origin of the audience data. Default: USER_PROVIDED_ONLY.

USER_PROVIDED_ONLY``PARTNER_PROVIDED_ONLY``BOTH_USER_AND_PARTNER_PROVIDED

i_have_consentboolean

Confirm the customer has lawful basis (GDPR Art. 6) and required consent under CCPA / Meta Custom Audience Terms / Google Customer Match Policy for every identifier in this audience.

stage_audience_artifactwrite

Stage a hashed-PII payload (newline-delimited identifiers) in Synter's private artifact store and return an opaque artifact_id. Pass that id to sync_audience via *_artifact_id parameters. No credits charged. Use this instead of pasting hashed identifiers as inline tool args when you have more than ~500 entries.

Parameters

bodystringrequired

UTF-8 payload — for hashed-email/phone uploads, one SHA-256 hash per line (lowercase hex, 64 chars). For raw mobile advertising IDs (Meta), one MADID per line. Stored verbatim — pre-dedupe and pre-normalize before calling.

script_namestring

Name of the script that will consume the artifact. Cross-checked on read so a leaked id can't be redirected to another script.

meta_ads_create_audience``google_ads_create_customer_match``google_ads_create_standard_retargeting_audiences``google_ads_create_website_visitor_audience``microsoft_ads_create_audience``tiktok_ads_create_audience``x_ads_create_audience

ttl_secondsnumber

How long the artifact lives before being swept (default 1 hour, max 24 hours).

i_have_consentboolean

Confirm the customer has lawful basis (GDPR Art. 6) and required consent under CCPA / Meta / Google Customer Match terms for every identifier in `body`.

create_campaign_for_audiencewrite

Create a campaign targeting an existing audience (200 credits — campaign launch)

Parameters

platformstringrequired

Only "linkedin" is supported today (a single script creates the Campaign Group + Campaign + ad and attaches the audience atomically). For every other platform, create the campaign/ad group with that platform's native tool, then call attach_audience() to target it.

campaign_namestringrequired

Name for the campaign

audience_idstringrequired

The audience ID from sync_audience() result

daily_budgetnumber

Daily budget in USD (default: $25)

headlinestring

Ad headline text

descriptionstring

Ad description text

final_urlstring

Landing page URL

image_urlstring

URL of the creative image asset. Required for LinkedIn.

account_idstring

Optional specific ad account ID

list_audiencesread-only

List existing audiences on an ad platform (2 credits)

Parameters

platformstring

Ad platform

google``linkedin``meta``reddit``tiktok``microsoft``trade_desk``stackadapt``amazon_dsp``x

account_idstring

Optional specific ad account ID

name_containsstring

Optional case-insensitive filter on audience name or id

delete_audiencewrite

Delete (or close) a custom/matched audience from an ad platform by audience_id. Use to clean up stale or errored (e.g. NOT_ENOUGH_MATCHES) audiences. Reddit and Google supported today. This is irreversible.

Parameters

platformstringrequired

Reddit or Google. Note: Google Ads has no hard-delete API for user lists, so this closes the list instead.

reddit``google

audience_idstringrequired

The platform audience id to delete (e.g. Reddit "ca.123…", Google's numeric user list ID).

account_idstring

Optional specific ad account ID.

attach_audiencewrite

Attach (add), remove, or replace a matched audience on an existing campaign/ad-group/ad-set/line-item's targeting (5 credits). Supports linkedin, google, meta, tiktok, reddit, microsoft, stackadapt, x.

Parameters

campaign_idstringrequired

The campaign to modify. For linkedin and stackadapt this IS the targeting entity. For other platforms, audiences attach at the ad-group/ad-set/line-item level — pass that ID via ad_group_id instead.

audience_idstring

The platform's audience/user-list/custom-audience ID to attach (provide this OR segment_urn, linkedin only).

segment_urnstring

adSegment URN to attach (linkedin only, alternative to audience_id).

modestring

Default: add (merge in). Not every mode is supported on every platform yet.

add``remove``replace

facetstring

LinkedIn-only targeting facet. Default: audienceMatchingSegments

audienceMatchingSegments``dynamicSegments

platformstring

Ad platform.

linkedin``google``meta``tiktok``reddit``microsoft``stackadapt``x

ad_group_idstring

The ad group / ad set / line item ID to target, for platforms that attach audiences below the campaign level. Falls back to campaign_id if omitted.

build_lookalike_audiencewrite

Build ML-based lookalike audience from seed customers (10 credits)

Parameters

seed_audiencestringrequired

Source audience ID or name

platformstringrequired

Target platform (GOOGLE, META, etc.)

expansion_factornumber

How much to expand (1-10x seed size)

Guardrails & Alerts

4

set_campaign_guardrailwrite

Arm or replace a campaign-specific automatic pause rule. Google Ads rules pause one exact campaign only after both the minimum age and spend threshold are met with zero conversions on one exact verified truth conversion action. Configuration is standing authorization for the future pause. No credits charged.

Parameters

account_idstringrequired

campaign_idstringrequired

conversion_action_idstringrequired

spend_thresholdnumberrequired

min_age_hoursnumber

platformstring

list_campaign_guardrailsread-only

List campaign-specific automatic pause guardrails and their latest spend, conversion, decision, and verified-pause state. No credits charged.

No parameters required.

disable_campaign_guardrailwrite

Disable a campaign-specific automatic pause guardrail. This does not change the campaign's current platform status. No credits charged.

Parameters

guardrail_idnumberrequired

set_spend_alertwrite

Set a weekly ad spend alert — notifies via email, Slack, SMS, and/or WhatsApp when total spend exceeds threshold (free)

Parameters

thresholdnumberrequired

Weekly spend threshold in USD (e.g. 10000)

emailstringrequired

Email address for email alerts

phonestring

Phone number in E.164 format for SMS/WhatsApp (e.g. +15551234567)

notifystring

Comma-separated channels to use: email, slack, sms, whatsapp (default: all)

platformsstring

Comma-separated platforms to check (default: google,meta,reddit)

Autonomous Agents

3

create_autonomous_schedulewrite

Create an autonomous agent schedule that runs a Synter skill on a cron cadence (e.g. a budget-pacing / campaign-health monitor). Defaults to a read-only cross-platform pacing monitor every 4 hours that alerts via Slack and never moves money. Pass skill_slug + cron_expression to schedule any autonomous-capable skill (5 credits).

Parameters

project_idstring

Synter campaign/project UUID to scope the agent to. Optional but recommended.

skill_slugstring

Autonomous-capable skill to run. Defaults to "campaign-health-monitoring".

cron_expressionstring

5-field cron. Defaults to "0 */4 * * *" (every 4h).

namestring

Optional human label for the schedule.

descriptionstring

Optional description.

platformstring

Optional platform scope (e.g. "google", "meta").

approval_modestring

Default "none" for the pacing monitor, "required" otherwise.

required``optional``none

notify_channelsstring

Comma-separated channels: email, slack, whatsapp, in_app. Defaults to "slack".

notify_on_completionboolean

Send a notification when each run finishes.

organization_idnumber

Optional workspace id (defaults to the API key's org).

update_autonomous_schedulewrite

Update an existing autonomous agent schedule — edit its rules (description), cadence, approval mode, notify channels, or end date — and/or apply a lifecycle action (stop, freeze, resume, skip_next, run_now). Only the fields passed are changed.

Parameters

schedule_idstringrequired

Schedule UUID from list_autonomous_schedules.

namestring

New human label.

descriptionstring

New description / operating rules the skill reads on each run.

platformstring

New platform scope (e.g. "google", "meta").

cron_expressionstring

New 5-field cron cadence.

approval_modestring

New approval mode.

required``optional``none

notify_channelsstring

Comma-separated channels: email, slack, whatsapp, in_app.

notify_on_completionboolean

Send a notification when each run finishes.

ends_atstring

ISO-8601 end timestamp, or empty string to clear.

actionstring

Lifecycle action applied after any field edits.

stop``freeze``resume``skip_next``run_now

organization_idnumber

Optional workspace id (defaults to the API key's org).

list_autonomous_schedulesread-only

List the workspace's autonomous agent schedules (pacing/health monitors, budget optimizers) with cadence, approval mode, next run, and latest run status (free).

Parameters

organization_idnumber

Optional workspace id (defaults to the API key's org).

Skills

2

list_skillsread-only

Superseded by load_skill (still callable, not listed). List public Synter execution skills and platform SOPs (free)

No parameters required.

load_skillread-only

Load a public Synter execution skill or platform SOP; omit skill_slug to list them (free)

Parameters

skill_slugstring

The slug of the skill to load (e.g., 'customer-facing-product-updates'). Omit to list skills.

Growth & Company Research

12

get_tech_intelread-only

Synter technology intelligence. resource: domain_technologies, technology_changes, trust_signals, sites, product_search, company_to_url, domain_keywords, account_usage. Covers the eight tech_intel_* tools (2 credits each).

Parameters

resourcestringrequired

Which read to run.

domain_technologies``technology_changes``trust_signals``sites``product_search``company_to_url``domain_keywords``account_usage

domainstring

Domain (domain_technologies, trust_signals, domain_keywords).

domainsarray

Up to 16 domains (technology_changes).

companystring

Company name (company_to_url).

querystring

Natural-language audience (sites) or product query (product_search).

techstring

Technology name (sites).

keywordstring

Keyword (sites).

limitnumber

Result limit (sites, product_search).

countriesarray

Passed through to the underlying tech intel read; ignored by resources that do not take it.

other_techsarray

Passed through to the underlying tech intel read; ignored by resources that do not take it.

offsetstring

Passed through to the underlying tech intel read; ignored by resources that do not take it.

pagenumber

Passed through to the underlying tech intel read; ignored by resources that do not take it.

include_metaboolean

Passed through to the underlying tech intel read; ignored by resources that do not take it.

commitboolean

Passed through to the underlying tech intel read; ignored by resources that do not take it.

spendstring

Passed through to the underlying tech intel read; ignored by resources that do not take it.

revenuestring

Passed through to the underlying tech intel read; ignored by resources that do not take it.

employeesstring

Passed through to the underlying tech intel read; ignored by resources that do not take it.

live_onlyboolean

Passed through to the underlying tech intel read; ignored by resources that do not take it.

include_trustboolean

Passed through to the underlying tech intel read; ignored by resources that do not take it.

include_rawboolean

Passed through to the underlying tech intel read; ignored by resources that do not take it.

sincestring

Passed through to the underlying tech intel read; ignored by resources that do not take it.

growth_discoverread-only

Discover ICP prospects from RevenueBase (verified B2B contacts for ad audiences) or companies hiring from job-post data (outreach), plus listicle/podcast placements. (5 credits)

Parameters

discover_typestring

What to discover. "icp" (RevenueBase ICP contacts for ad audiences), "jobs" (companies hiring, from job-post data), "listicles", "podcasts", or "all".

icp``apollo``jobs``listicles``podcasts``all

querystring

Comma-separated job-title keywords for "icp", or the job-title search query for "jobs".

limitnumber

Max results (icp capped at 100000).

min_employeesnumber

Min company size for "icp" (default: 50).

max_employeesnumber

Max company size for "icp" (default: 2000).

industriesstring

Optional comma-separated industry keywords for "icp".

geosstring

Optional comma-separated country/region names for "icp".

job_levelsstring

Optional comma-separated exact seniority levels for "icp". Defaults to senior VP+ when neither titles nor levels are given.

decision_makers_onlyboolean

For "icp", only return Priority-1 decision makers (default False).

technologiesstring

Optional comma-separated technology filters for "jobs". The default "Head of Growth" query filters to ad-tech; a custom query has no technology filter unless this is set.

job_functionsstring

Optional comma-separated job functions for "jobs", filtered server-side (e.g. "Engineering").

growth_enrichread-only

Enrich a domain with competitive intelligence — SpyFu PPC data, BuiltWith tech stack, Hunter emails, Firecrawl headline. (5 credits)

Parameters

domainstringrequired

Domain to enrich (e.g., "acme.com")

tech_intel_get_account_usageread-only

Synter technology-intelligence availability and usage snapshot.

No parameters required.

tech_intel_get_domain_technologiesread-only

Synter domain tech-stack lookup — ad pixels, CRM, analytics, CMS/ecommerce tools, spend/meta.

Parameters

domainstringrequired

live_onlyboolean

include_trustboolean

include_rawboolean

tech_intel_get_technology_changesread-only

Recent technology additions/removals for domains, with business context.

Parameters

domainsstring[]required

sincestring

tech_intel_get_trust_signalsread-only

Synter domain trust, ecommerce/payment, parked/status, spend and live-tech signals.

Parameters

domainstringrequired

tech_intel_get_sitesread-only

Find websites by technology, natural-language audience, or keyword search.

Parameters

techstring

querystring

keywordstring

countriesstring[]

other_techsstring[]

limitnumber

offsetstring

include_metaboolean

commitboolean

spendstring

revenuestring

employeesstring

tech_intel_product_searchread-only

Find ecommerce shops and product listings matching a product query.

Parameters

querystringrequired

limitnumber

pagenumber

tech_intel_company_to_urlread-only

Resolve company names to candidate website domains.

Parameters

companystringrequired

tech_intel_get_domain_keywordsread-only

Find keywords associated with a website domain.

Parameters

domainstringrequired

find_audience_signalsread-only

Find audience signals/clusters in Watt Data from a natural-language description (e.g. 'RevOps leaders at B2B SaaS companies using Salesforce'). Returns matching semantic clusters to use as targeting signals. Requires WATTDATA_API_KEY.

Parameters

querystringrequired

max_resultsnumber

entity_typestring

person``business

Forecasting & Measurement

5

forecast_campaignread-only

Forecast campaign KPIs (spend, CPA, ROAS, clicks, conversions) for 7-30 days with confidence intervals (2 credits)

Parameters

metricstring

KPI to forecast

spend``cpa``roas``clicks``conversions``ctr``cpc

horizonnumber

Forecast horizon in days (7, 14, or 30)

campaign_idstring

Optional specific campaign ID (forecasts all if omitted)

platformstring

Optional platform filter (GOOGLE, META, LINKEDIN, etc.)

optimize_budgetwrite

Cross-channel budget allocation using diminishing returns modeling (5 credits)

Parameters

total_budgetnumberrequired

Total daily budget in USD

targetstring

Optimization target - conversions or roas

constraintsstring

Optional JSON string with per-channel USD/day budget bounds. Schema: {"": {"min": , "max": }}. Must be valid JSON — do not pass natural language text.

dry_runboolean

Recommend-only (default true). This tool never changes live budgets; dry_run=false is refused with a pointer to update_campaign_budget so an agent cannot believe it applied a change.

test_creativeswrite

Start or check a multi-armed bandit creative experiment using Thompson sampling (40 credits)

Parameters

campaign_idstringrequired

Campaign ID to run the experiment on

platformstringrequired

Ad platform (GOOGLE, META, etc.)

actionstring

start, status, or stop

start``status``stop

reward_metricstring

Metric to optimize - ctr, conversion_rate, or roas

get_attributionread-only

Multi-touch attribution analysis using Markov chains (5 credits)

Parameters

date_rangestring

last_7_days``last_30_days``last_90_days

conversion_typestring

Optional filter for specific conversion type

conversion_window_daysnumber

Conversion window lookback in days using TimescaleDB (e.g. 60 days to capture conversion lag beyond platform limits like Meta 7-day cutoff, default: 60)

measure_incrementalityread-only

Measure incremental ad impact via geo-lift or synthetic control (5 credits)

Parameters

platformstringrequired

Ad platform (GOOGLE, META, etc.)

methodstring

geo_lift or synthetic_control

geo_lift``synthetic_control

test_regionsstring

Comma-separated test region codes

control_regionsstring

Comma-separated control region codes

Creative Generation

12

create_imagewrite

Generate an AI image for ad creatives using Imagen 4, Flux, or Stable Diffusion. (80 credits)

Parameters

promptstringrequired

Image generation prompt (be specific about style, layout, colors).

sizestring

Image dimensions. Defaults to 1200x628 when omitted.

providerstring

Image model — imagen (default), flux, sdxl.

namestring

Optional asset name for the artifact library.

generate_videowrite

Generate an AI video ad using Veo, Runway, or Luma. Great for YouTube and social ads.

Parameters

product_namestringrequired

Product or brand name.

key_benefitstringrequired

Main value proposition.

conceptstring

Generic video framework name from the Node MCP contract.

target_audiencestring

Optional audience persona.

durationnumber

Optional video duration in seconds.

providerstring

Optional video provider override.

create_image_assetwrite

Generate display/social ad images. Use mode='system-graphic' for bold text-heavy creatives (requires headline). AI mode (default) for photo/illustration backgrounds. Auto-sizes for target platform (80 credits)

Parameters

promptstringrequired

Image description (ai mode) or thematic context hint (system-graphic mode).

platformstring

Target platform. Determines default sizes. Omit to use a single 1200x628 image.

google``meta``linkedin``reddit``tiktok``x``microsoft``spotify

namestring

Asset name for the artifact library.

providerstring

AI image model for mode="ai" — imagen (default), openai (best for text rendering), flux, sdxl. Ignored in system-graphic mode.

sizesstring

Override platform defaults with comma-separated WIDTHxHEIGHT (e.g. "1200x628,1080x1080").

negative_promptstring

What to avoid in the image (ai mode only).

headlinestring

Required for system-graphic mode. Strongly recommended for all LinkedIn/social ads.

ctastring

CTA button text or URL (e.g. "Book a Demo"). Auto-picked from brand if omitted.

subheadlinestring

Optional body text below the headline.

modestring

Default: "ai". Use system-graphic for copy-led creatives.

ai``system-graphic

eyebrowstring

Optional short uppercase label rendered above the headline (system-graphic only).

statstring

Optional accent stat tile, e.g. "98%+" or "10×" (system-graphic only).

creative_briefstring

Creative System v1 brief as a JSON string, or freeform prose. Controls theme/accent/fonts.

create_video_adwrite

Generate AI video ads using Veo, Luma, Runway, or HeyGen with creative concept templates (130–1100 credits)

Parameters

conceptstringrequired

Creative concept.

ugc-testimonial``pas``vs-alternative``made-easy``before-after``hook-demo-cta``product-demo``social-proof

productstringrequired

Product or brand name (e.g. "Synter - AI Ad Platform").

platformstring

Target platform for sizing. Default: tiktok.

tiktok``instagram_reels``youtube_shorts``youtube``linkedin``meta_feed``twitter``reddit

providerstring

Video model. Veo is the default recommended provider.

veo``luma``runway``heygen

pain_pointstring

The viewer's pain point (for ugc-testimonial and pas concepts).

benefitstring

Key benefit your product delivers.

ctastring

Call-to-action text.

namestring

Asset name for the artifact library.

target_audiencestring

Who the ad is targeting (for persona/hook customization).

generate_ugc_adwrite

Generate UGC-style video ads with AI avatars (fal Aurora / HeyGen) (900 credits)

Parameters

productstringrequired

Product or brand name (e.g. "Synter").

personastring

Avatar persona. Determines the script tone and avatar selection if no custom script is given.

b2b``agency``performance``ecommerce

scriptstring

Custom script for the avatar to speak. If omitted, a persona script is generated.

avatarstring

Avatar name (default: asha).

asha``carter``trevin

aspect_ratiostring

Output format. Default: 9:16 (vertical).

9:16``1:1``16:9

namestring

Asset name for the artifact library.

create_social_clipwrite

Render, watermark, auto-caption, and format video/screen recordings into social clips for X, LinkedIn, TikTok, or Reels (45 credits)

Parameters

source_urlstringrequired

Public HTTPS URL of source video or screen recording.

aspect_ratiostring

Target aspect ratio. Default: 16:9.

16:9``9:16``1:1``4:5

headlinestring

Optional text overlay at top of video.

trim_startnumber

Start trim offset in seconds. Default: 0.

trim_endnumber

End trim offset in seconds.

auto_captionboolean

Auto-generate Whisper captions. Default: true.

namestring

Asset display name for the artifact library.

idempotency_keystring

Stable caller-generated key. Reusing it with the same arguments returns the original job without charging or enqueueing again.

list_remotion_templatesread-only

Superseded by list_creative_assets (still callable, not listed). List Remotion video templates for create_remotion_video, with props JSON schema, defaults, formats and fixed timing (free)

No parameters required.

create_remotion_videowrite

Render a Remotion video template (e.g. qr_billboard) to QA-checked MP4 artifacts, one per format. Async: poll get_job_status (45 credits)

Parameters

templatestringrequired

Template id from list_remotion_templates, e.g. qr_billboard.

propsobject

Props merged over the template defaults. Image props accept a Synter asset_id or https URL.

formatsstring[]

WxH formats, e.g. ["1920x1080", "1080x1920"]. Default: all template formats.

fpsnumber

Frames per second. Fixed-timing templates reject overrides.

durationnumber

Duration in seconds. Fixed-timing templates reject overrides.

mutedboolean

Render without audio. Default: true.

namestring

Asset display name prefix.

idempotency_keystring

Stable key; reusing it with the same arguments returns the original job.

create_ad_copywrite

Generate text ad copy (headlines, descriptions, CTAs) for any platform using Claude (20 credits)

Parameters

platformstringrequired

Target platform.

google``meta``linkedin``reddit``microsoft``tiktok``x``spotify

productstringrequired

Product name and brief description (e.g. "Synter - AI agent operator for ads").

landing_page_urlstring

Destination URL for context on value props.

tonestring

Writing tone. Default: professional.

professional``conversational``urgent``playful``technical``educational

headlines_countnumber

Override the platform default headline count.

descriptions_countnumber

Override the platform default description count.

keywordsstring

Comma-separated keywords to weave into the copy.

ctastring

Preferred CTA phrasing (e.g. "Book a demo").

competitor_brandstring

Single competitor brand for a Search STAG. Required when keywords look like conquest queries.

generate_voice_adwrite

Generate a voice-over ad with an AI avatar speaking your script (fal Aurora / HeyGen) (900 credits)

Parameters

scriptstringrequired

The spoken script for the avatar (15–60 seconds, ~40–150 words).

productstringrequired

Product name (used for persona context if the script is short).

personastring

Avatar tone context. Default: b2b.

b2b``agency``performance``ecommerce

avatarstring

Avatar name. Default: asha.

asha``carter``trevin

namestring

Asset name for the artifact library.

list_creative_assetsread-only

List generated creative assets (images and videos) from your artifact library, with approval status and platform-deployment mapping (free)

Parameters

asset_typestring

Filter by type. Omit for all types.

IMAGE``VIDEO

limitnumber

Maximum number of results per page (default 20, max 100).

offsetnumber

Number of newest assets to skip, for pagination (default 0).

kindstring

assets (default) or remotion_templates (Remotion templates for create_remotion_video; takes no other argument).

assets``remotion_templates

upload_creativewrite

Upload a generated creative asset to an ad platform and attach it to a campaign (5 credits)

Parameters

asset_urlstringrequired

URL of the asset to upload (from create_image_asset / create_video_ad).

qa_passstring|string[]

Verified creative QA pass binding for this action.

platformstringrequired

Target platform.

google``meta``linkedin``tiktok``reddit

campaign_idstringrequired

Campaign ID to attach the creative to.

asset_typestring

Default: IMAGE.

IMAGE``VIDEO

ad_group_idstring

Ad group / ad set ID (required for most platforms).

ad_group_idsstring[]

List of ad group / ad set IDs for multi-ad-group attachment.

vertical_asset_urlstring

URL of a vertical (9:16) companion asset, when supported by the platform.

namestring

Name for the uploaded creative asset.

headlinestring

Ad headline text (required for LinkedIn).

descriptionstring

Ad body / description text.

landing_urlstring

Destination URL for WEBSITE_VISIT LinkedIn campaigns.

form_idstring

LinkedIn Lead Gen Form ID — when provided, routes to the LeadGen creative script.

qa_passstring|string[]

QA pass bindings returned by qa_pass_bindings; not a bypass.

account_idstring

Specific ad-account ID to target. Required when the campaign lives in a non-primary account.

Campaign Plans

7

create_campaign_planwrite

Create or update a campaign launch plan (5 credits). Use plan_key for idempotency.

Parameters

plan_keystringrequired

Unique idempotency key (e.g. "zeroclick-q2-2026")

titlestringrequired

Human-readable plan title

brief_jsonstring

Optional JSON string (or already-parsed object) with campaign brief details.

upsert_plan_entitywrite

Add or update an entity (campaign, ad, tweet, go_link, etc.) within a campaign plan (free).

Parameters

plan_idstringrequired

The plan ID (from create_campaign_plan)

logical_keystringrequired

Unique key within the plan (e.g. "x/campaign/brand-awareness")

platformstringrequired

Platform identifier (x, reddit, meta, google, linkedin, gtm, synter)

entity_typestringrequired

Type of entity (campaign, ad_group, ad, tweet, promoted_tweet, website_card, post, pixel_tag, go_link)

remote_idstring

Platform-specific entity ID (after creation)

remote_ref_jsonstring

JSON with additional platform references

metadata_jsonstring

JSON with entity-specific metadata (activate_script, activate_args, pause_script, etc.)

desired_statestring

Target state for launch

paused``active

parent_logical_keystring

Logical key of parent entity (for dependency ordering)

provider_account_idstring

Platform ad account ID

publish_plan_documentwrite

Publish a campaign plan for review, generating a shareable URL (free). Moves the plan from building/draft to in_review; a reviewer approves it at share_url, then execute_campaign_plan launches it. Runs plan QA (incl. the live tracking preflight) and pins the scorecard to the document.

Parameters

plan_idstringrequired

The plan ID to publish

expected_versioninteger

The plan version you last read (optimistic concurrency). Omit to publish the current version; a stale value returns code=PLAN_VERSION_MISMATCH.

execute_campaign_planwrite

Launch an approved campaign plan — activates all entities across platforms in dependency order (free).

Parameters

plan_idstringrequired

The plan ID to execute

execute_tokenstringrequired

The execute token (from create_campaign_plan response)

qa_override_approvedboolean

Set true ONLY after you have shown the user what QA flagged and they explicitly told you to launch anyway. It asserts that approval happened; it does not name anyone. The approver recorded in the workspace's approval audit trail is the account this API key belongs to, resolved server-side — you cannot attribute the override to someone else, so do not try.

get_plan_executionread-only

Get execution status and per-entity step results for a campaign plan launch (free).

Parameters

plan_idstringrequired

The plan ID to check

get_campaign_planread-only

Fetch a campaign plan with its entities, budgets, desired states, and review/execution status. include gate_policy adds the Plan QA launch gate (covers get_launch_gate_policy) (free).

Parameters

plan_idstring

The plan ID. Optional only with include gate_policy, which then returns the gate alone.

includearray

Extra sections: gate_policy.

setup_google_ads_trial_funnelwrite

Set up a complete Google Ads trial acquisition funnel: branded Search campaign (maximize clicks, builds conversion history), PMax campaign (maximize conversions), and Display retargeting campaign — all pointing to a Synter-hosted landing page. Requires an active Google Ads connection. (15 credits)

Parameters

landing_page_urlstringrequired

Synter LP URL (e.g. "https://synterai.com/lp/my-saas")

business_namestringrequired

Brand name shown in ads (max 25 chars)

trial_daysnumber

Length of free trial to promote in ad copy (default: 30)

total_daily_budgetnumber

Total daily budget across all campaigns in USD (default: $50)

month_labelstring

Label for campaign names e.g. "Apr 2026" (defaults to current month)

Documents & Notifications

3

create_documentwrite

Create a document in the Campaign IDE editor (free). Perfect for reports, audits, strategy docs, and plans that can be collaboratively edited.

Parameters

titlestringrequired

Document title (e.g., "Q1 Performance Report", "Google Ads Audit")

contentstringrequired

Document content in markdown format. Supports headings, bullet lists, numbered lists, bold, horizontal rules, and tables.

organization_idnumber

Optional workspace ID to create the document in.

delete_documentwrite

Delete a Campaign IDE document by id or uuid (e.g. to remove a stale or duplicate doc). Only deletes documents you own.

Parameters

document_idnumber

uuidstring

send_slack_messagewrite

Post a message to a Slack channel via the Synter bot. channel = a channel ID (Cxxxx) or #name. The bot can only post to channels it's a member of.

Parameters

channelstringrequired

textstringrequired

LLM & Brand Visibility (GEO)

14

get_llm_visibility_overviewread-only

Get workspace LLM visibility overview — Share of Voice (SOV), citations, brand mentions, and top opportunities across ChatGPT, Claude, Perplexity, and AI Overviews.

Parameters

project_idstring

Optional project ID filter

daysnumber

Lookback window in days (default: 30)

list_llm_visibility_promptsread-only

List tracked commercial buying prompts and newest per-engine AI answer evidence (ChatGPT, Claude, Perplexity).

Parameters

project_idstring

Optional project ID filter

searchstring

Optional prompt search filter

active_onlyboolean

Filter for active prompts only (default: true)

limitnumber

Max items to return (default: 50)

list_llm_visibility_sightingsread-only

List observed competitive ChatGPT ads, Reddit citations, YouTube citations, and web citations.

Parameters

project_idstring

Optional project ID filter

sighting_typestring

Optional filter by sighting type (e.g., 'chatgpt_ad')

limitnumber

Max items to return (default: 50)

list_llm_visibility_opportunitiesread-only

List ranked LLM visibility opportunities, missing citations, and actionable recommendations.

Parameters

project_idstring

Optional project ID filter

statusstring

Filter by status (e.g. 'open', 'completed')

limitnumber

Max items to return (default: 50)

recommend_llm_visibility_strategyread-only

Generate Generative Engine Optimization (GEO) content strategies, PR drafts, schema markup, and outreach tactics.

Parameters

project_idstring

Optional project ID filter

prompt_idstring

Optional prompt ID filter

focus_areastring

Strategy focus area (e.g. 'all', 'wikipedia', 'listicles')

limitnumber

Max recommendations to return (default: 10)

discover_llm_visibility_promptsread-only

Discover high-intent B2B commercial buying prompts across Evaluation, Comparison, Pricing/ROI, and Feature Verification stages.

Parameters

project_idstring

Optional project ID filter

domainstring

Target domain to discover prompts for

competitorsstring[]

List of competitor domains

icp_personastring

Target ICP persona

auto_seedboolean

Automatically seed discovered prompts into tracking (default: false)

audit_llm_crawler_readinessread-only

Audit AI crawler accessibility (GPTBot, ClaudeBot, PerplexityBot, Google-Extended) and generate custom llms.txt and robots.txt.

Parameters

domainstringrequired

Target domain to audit (e.g. 'example.com')

check_llms_txtboolean

Check llms.txt availability (default: true)

run_llm_visibility_scanwrite

Start an on-demand LLM visibility scan across AI engines for a project. Returns a job_id at once; poll get_job_status. A scan already in progress is returned instead of starting (and charging) another.

Parameters

project_idstringrequired

Project ID

idempotency_keystring

Optional idempotency key; a repeat returns the same job and is not charged again

prompt_idsstring[]

Optional prompt IDs to scan; omit to rotate through the least recently scanned prompts

max_promptsnumber

Optional batch size (1-50)

update_llm_visibility_projectwrite

Edit a visibility project's owned domains, competitors and tracked prompts. Dry run by default; pass apply=true to write. Admin/Owner only.

Parameters

project_idstringrequired

Project ID

owned_domains_setstring[]

Replace owned domains

owned_domains_addstring[]

Add owned domains

owned_domains_removestring[]

Remove owned domains

competitors_setstring[]

Replace competitors

competitors_addstring[]

Add competitors

competitors_removestring[]

Remove competitors

add_promptsstring[]

Prompts to start tracking

deactivate_prompt_idsstring[]

Prompt IDs to stop tracking

dedupe_promptsboolean

Deactivate duplicate prompts (same text)

applyboolean

Write the plan (default false: dry run)

draft_wikipedia_articlewrite

Generate NPOV-compliant Wikipedia article draft and WP:PAID COI disclosure for Wikipedia AFC submission.

Parameters

brand_namestringrequired

Brand name

domainstring

Official domain

descriptionstring

Company overview and history

founding_yearnumber

Founding year

headquartersstring

Headquarters location

citationsstring[]

List of independent secondary source URLs

sync_wikidata_entitywrite

Generate structured Wikidata entity payload (P31, P856, P571) for LLM knowledge graph indexing.

Parameters

brand_namestringrequired

Brand name

domainstring

Official domain

founding_yearnumber

Founding year

headquartersstring

Headquarters location

generate_jsonld_schema_markupwrite

Generate valid schema.org JSON-LD scripts (Organization, SoftwareApplication, Product, FAQPage) for LLM crawlers.

Parameters

brand_namestringrequired

Brand name

domainstringrequired

Official domain

descriptionstring

Brand description

pricing_summarystring

Pricing overview

same_as_urlsstring[]

Social and directory profile URLs

faqsobject[]

FAQ question/answer pairs

find_llm_citation_listiclesread-only

Rank the listicle and roundup pages AI engines actually cited in this project's visibility scans. Returns an error when there is no citation data.

Parameters

project_idstring

Visibility project ID (defaults to the workspace project)

buying_promptstring

Optional text to match tracked prompts

brand_namestring

Your brand name

domainstring

Your official domain

competitorsstring[]

Competitor domains to exclude

daysnumber

Lookback window in days (default 30)

limitnumber

Max pages (default 10)

audit_review_site_profilesread-only

Check whether the brand's public review-site profiles exist (G2, Capterra, Trustpilot, Product Hunt, Gartner) with live HTTP checks: FOUND / NOT_FOUND / UNVERIFIED.

Parameters

brand_namestringrequired

Brand name

domainstringrequired

Official domain

review_platformsstring[]

List of review platforms to audit (e.g. ['g2', 'capterra'])

Account Structure Hygiene

2

audit_account_structureread-only

Audit an ad account's campaign structure (read-only, free). Flags the churn signatures that make an account a mess: duplicate campaign / ad group / ad names (case-insensitive, trimmed), ad groups with empty or invalid targeting, and 'rebuilt-not-edited' campaigns (a name with both a live and an archived copy). Reddit is fully supported (campaign / ad group / ad depth); Google is campaign-level. Writes nothing — use repair_account_structure to act on the findings.

Parameters

platformstring

reddit (full depth) or google (campaign-level). Default reddit.

reddit``google

account_idstring

Optional ad account ID; falls back to the connected account.

account_namestring

Optional friendly account name selector when multiple are connected.

repair_account_structurewrite

Repair an ad account's campaign structure. Dry-run by default — reports what it would archive and changes nothing. Pass apply=true (only after customer approval) to archive duplicate clutter (keeps the earliest of each same-name set). Ad groups with empty targeting are flagged, never auto-archived. Reddit apply is fully supported; Google apply is dry-run planning only. No credits charged.

Parameters

platformstring

reddit (full apply) or google (dry-run planning only). Default reddit.

reddit``google

account_idstring

Optional ad account ID; falls back to the connected account.

account_namestring

Optional friendly account name selector when multiple are connected.

applyboolean

False (default) = dry run, writes nothing. True = archive the duplicate clutter listed in the plan. Requires customer approval.

Advanced (Script Library)

3

executewrite

Execute any Synter action: create campaigns, generate AI images/videos, upload to YouTube, manage GTM/GA4, analyze competitors, and more. Calls execute immediately by default; pass dry_run=true only when the user explicitly asks for validation-only behavior. Use inspect_script before the first call to an unfamiliar action so arguments are never guessed. Pass expected_names={"campaign-id": ""} to hard-enforce target identity for updates.

Parameters

actionstringrequired

The action to execute (e.g., "create_image", "google_ads_create_search_campaign"). Must be a name registered in list_available_scripts — execute rejects unknown actions.

platformstring

Target platform for credential injection (auto-detected from action name if not provided).

argsstring[]

Command-line arguments as a list (e.g., ["--prompt", "Modern SaaS dashboard"])

account_idstring

Optional specific ad account ID to use

dry_runboolean

Optional validation-only mode. Defaults to false so approved actions execute once.

customer_idstring

Alias for account_id (the native run_ppc_script spelling); ignored when account_id is set.

expected_namesobject

Confirm-don't-assume guard. Dict of target-id flag -> expected name fragment, e.g. {"campaign-id": "Brand_Leaders"}. On dry_run=false the live entity names are resolved and matched; any mismatch refuses execution.

demoboolean

Optional boolean to return realistic sandbox demonstration data without connecting an account.

idempotency_keystring

Stable caller-supplied identity for safe retries. The same key replays the original script result without billing or executing the provider operation again.

list_available_scriptsread-only

See all available PPC scripts (free)

No parameters required.

inspect_scriptread-only

Get the exact arguments, choices, required fields, and output fields for a Synter action before executing it (free). Returns the script's docstring, parsed argument list, and approximate output schema — not its source code.

Parameters

script_namestringrequired

stdio ↔ hosted name mapping

The npm stdio package and the hosted server accept the same names for the tools below. Hosted aliases run the target tool with the alias's own scope check and audit entry. Tools are grouped into toolsets.

stdio name Hosted Notes
get_performance get_performance (alias) Runs pull__performance for the requested platform. campaign_id filtering on x and openai only.
get_daily_spend get_daily_spend (alias) Google only: pull_google_ads_performance with segment=date. Use get_performance for other platforms.
list_ad_accounts list_ad_accounts (alias) Runs list_connected_accounts (all platforms).
generate_image generate_image (alias) Runs create_image. Not listed for connector-directory clients.
run_tool run_tool (alias) Runs execute; same scopes and safety gate. Hidden wherever execute is hidden.
create_conversion create_conversion (alias) Runs execute(action=google_ads_create_conversion); needs the scripts:execute scope.
add_keywords add_keywords (alias) Runs execute(action=google_ads_add_keywords); needs the scripts:execute scope.
add_negative_keywords add_negative_keywords (alias) Runs execute(action=google_ads_add_negative_keywords); needs the scripts:execute scope.
upload_image upload_image (alias) Google only: runs execute(action=google_ads_upload_image_asset). Use upload_creative for other platforms.
list_campaigns, pause_campaign, update_campaign_budget, stage_audience_artifact, sync_audience, generate_video Same names Already published on both.
create_search_campaign, create_display_campaign, create_pmax_campaign, create_meta_campaign, create_linkedin_campaign, create_reddit_campaign create_campaign_plan → run_launch_preflight → approve_campaign_plan → execute_campaign_plan Not aliased: hosted campaign creation goes through an approved plan.
manage_audience list_audiences, stage_audience_artifact, sync_audience Not aliased: hosted uploads require explicit consent confirmation.
diagnose_tracking get_pixel_health, list_event_deliveries Not aliased: the stdio tool ignores its url argument.
list_conversions execute(action=google_ads_list_conversions) or run_tool Not aliased: a read alias cannot carry execute's write scope.
list_landing_pages None yet Not aliased: the hosted server has no landing-page list tool yet.

Example usage

Just ask naturally — your AI assistant picks the right tool:

You say Tool used
What's my Google Ads spend this week? pull_google_ads_performance
Show all my active campaigns list_campaigns
Pause the Brand Search campaign pause_campaign
Create a Search campaign for our new product execute
Generate a hero image for my landing page create_image
How should I allocate budget across my channels? optimize_budget
Is the pixel on my landing page actually mine? verify_pixel_ownership
Build a lookalike audience from our best customers build_lookalike_audience

Was this page helpful?

YesNo

PreviousConfiguration Next Rate Limits & Credits