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>/
Parameters
slugstringrequired
URL slug; also the markdown filename (
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: {"
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": "
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_ |
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