Tool Reference
Reference for 154 of the 317 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 account
- Use
get_connection_status, thenverify_platform_accountsfor the platform you need. Confirm the intended account ID; do not assume the default account is correct. Useget_credit_balanceto check usage balance. - Inspect campaigns or performance
- Use
list_campaignswith 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 operation
- Use
list_available_scriptsto discover the action, theninspect_scriptfor 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 it
- Confirm 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; useget_ad_readbackwhere 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
forecast_tool_cost and your balance with get_credit_balance.Catalog scope
https://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()
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 and inspect_script to see an action's exact arguments before calling it.Getting Started
2Start the legacy authenticated email onboarding handoff
Parameters
emailstringYour work email address
Poll until email verification completes, then open the secure OAuth install guide
Parameters
session_tokenstringThe session token returned by synter_onboarding_start
device_codestringThe device_code returned by synter_onboarding_start
Account & Connections
8See ALL connected accounts: ad platforms, analytics (GA4, PostHog), CRM (HubSpot, Attio), and more (free)
Parameters
limitnumberMax items per page (default: 50, max: 500)
offsetnumberOptional zero-based offset; takes precedence over page.
pagenumberPage number (1-indexed, default: 1)
platformstringOptional exact, case-insensitive platform filter (e.g. 'GOOGLE'). Unknown values return no accounts; omitted or empty means all platforms.
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
platformstringOptional platform filter (e.g. "X", "REDDIT", "GOOGLE"). Omit to verify all connected ad platforms.
daysnumberActivity window in days (default: 7).
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.
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
workspacestringrequiredWorkspace id (e.g. "1201") or exact workspace name
Check ALL platform connections: ad platforms, analytics (GA4, PostHog), CRM (HubSpot, Attio), and more (free)
Parameters
demobooleanOptional boolean to return realistic sandbox demonstration data without connecting an account.
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
viewstringDefault status.
statusbalancevendor_consumptiontool_costtool_namestringTool to price (view tool_cost only).
since_daysnumberWindow in days, 1-365, default 30 (view vendor_consumption only).
Superseded by get_billing (still callable, not listed). Check your credit balance and pricing (free)
No parameters required.
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_idstringrequiredThe job ID returned by the async tool (UUID format)
Performance Reporting
24Get 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. When more than one Google Ads account is connected, pass account_name (or account_id) to choose which account to read.
Parameters
daysnumberNumber of days to look back (default: 30). Ignored when date_range or start_date/end_date are provided.
date_rangestringOptional preset window. Explicit start_date/end_date take precedence.
todayyesterdaylast_7_dayslast_14_dayslast_30_dayslast_90_dayslevelstringData granularity (default: campaigns)
campaignsad-groupskeywordsadssearch-termsaccount_idstringOptional specific Google Ads customer ID. If not provided, uses the user's primary connected account.
account_namestringOptional account name for disambiguation when multiple accounts are connected. Pass the name the user mentions (e.g., "leafypod") — the system will match it.
start_datestringOptional fixed window start (YYYY-MM-DD). Requires end_date.
end_datestringOptional fixed window end (YYYY-MM-DD). Requires start_date.
demobooleanOptional boolean to return realistic sandbox demonstration data without connecting an account.
include_ad_textbooleanlevel=ads only. Include headlines/descriptions/final_urls. Defaults to true, or false when segment is set (text repeats per row).
limitnumberOptional max rows per page (1..5000).
offsetnumberRows to skip (pagination). Pass the previous page's next_offset.
segmentstringOptional 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.
dateweekGet 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. When more than one Meta Ads account is connected, pass account_name (or account_id) to choose which account to read.
Parameters
daysnumberNumber of days to look back (default: 30). Ignored when date_range or start_date/end_date are provided.
date_rangestringOptional preset window. Explicit start_date/end_date take precedence.
todayyesterdaylast_7_dayslast_14_dayslast_30_dayslast_90_dayslevelstringData granularity (default: campaign)
campaignad-setadcreativeplacementaccount_idstringOptional specific Meta ad account ID
account_namestringOptional account name for disambiguation when multiple accounts are connected.
start_datestringOptional fixed window start (YYYY-MM-DD). Requires end_date.
end_datestringOptional fixed window end (YYYY-MM-DD). Requires start_date.
demobooleanOptional boolean to return realistic sandbox demonstration data without connecting an account.
campaign_idstringOptional: only return rows for this Meta campaign ID.
breakdownstringtotal (default) = one row per entity over the window; daily = per-day rows.
totaldailylimitnumberRows per page (default 50, max 5000; 0 requests the maximum). Response includes next_offset when more rows exist.
offsetnumberRow offset for paging (default 0).
sort_bystringOptional sort field; ad-level results default to launch_date.
sort_orderstringSort direction (default desc).
ascdescdailybooleanReturn per-day rows. breakdown=daily also enables this behavior.
custom_conversion_idstring | numberOptional Meta custom conversion ID.
custom_event_namestringOptional custom event name to report.
name_prefixstringOptional name prefix filter (e.g. 'B9_') for batch view.
launch_daysnumberOptional filter for ads launched within the last N days.
launch_date_afterstringOptional filter for ads launched on or after YYYY-MM-DD.
placement_breakdownbooleanOptional boolean to attach per-placement breakdowns to each ad row.
roll_upbooleanOptional boolean to roll up ads sharing the same creative across campaigns.
include_long_fieldsbooleanOptional 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_creativebooleanOptional boolean to aggregate metrics across ads by creative ID.
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
platformstringrequiredPlatform the ad was launched on (e.g. "meta").
ad_idstringThe platform ad ID returned by upload_creative / create_*_ad. Optional for Google when ad_group_id, campaign_id or create_result is given.
ad_idsstringComma-separated Meta ad IDs for batch creative readback.
account_idstringOptional specific ad-account ID holding the ad (Google: customer ID).
approved_ctastringOptional brief-approved CTA to verify the launched CTA against.
ad_group_idstringGoogle only: read back the ads in this ad group.
campaign_idstringGoogle only: read back the ads in this campaign.
create_resultstringGoogle only: the JSON result of the create call; ad / ad group / campaign IDs are extracted from it.
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. When more than one LinkedIn account is connected, pass account_name (or account_id) to choose which account to read.
Parameters
daysnumberNumber of days to look back (default: 30). Ignored when date_range or start_date/end_date are provided.
date_rangestringOptional preset window.
todayyesterdaylast_7_dayslast_14_dayslast_30_dayslast_90_dayslevelstringData granularity (default: campaign). Accepts 'campaign' or 'creative'.
campaigncreativeaccount_idstringOptional specific LinkedIn ad account ID
account_namestringOptional account name for disambiguation when multiple accounts are connected.
start_datestringOptional fixed window start (YYYY-MM-DD). Requires end_date.
end_datestringOptional fixed window end (YYYY-MM-DD). Requires start_date.
campaign_group_idsstringOptional comma-separated LinkedIn Campaign Group IDs to filter by; only campaigns within these groups are returned.
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. When more than one X Ads account is connected, pass account_name (or account_id) to choose which account to read.
Parameters
daysnumberNumber of days to look back (default: 30). Ignored when date_range or start_date/end_date are provided.
date_rangestringOptional preset window.
todayyesterdaylast_7_dayslast_14_dayslast_30_dayslast_90_daysaccount_idstringOptional specific X Ads account ID
account_namestringOptional account name for disambiguation when multiple accounts are connected.
start_datestringOptional fixed window start (YYYY-MM-DD). Requires end_date.
end_datestringOptional fixed window end (YYYY-MM-DD). Requires start_date.
campaign_idstringOptional specific campaign ID to filter by.
campaign_idsstringOptional comma-separated list of campaign IDs to filter by.
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. When more than one Reddit Ads account is connected, pass account_name (or account_id) to choose which account to read.
Parameters
daysnumberNumber of days to look back (default: 30). Ignored when date_range or start_date/end_date are provided.
date_rangestringOptional preset window.
todayyesterdaylast_7_dayslast_14_dayslast_30_dayslast_90_daysaccount_idstringOptional specific Reddit ad account ID
account_namestringOptional account name for disambiguation when multiple accounts are connected.
start_datestringOptional fixed window start (YYYY-MM-DD). Requires end_date.
end_datestringOptional fixed window end (YYYY-MM-DD). Requires start_date.
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. When more than one Microsoft Ads account is connected, pass account_name (or account_id) to choose which account to read.
Parameters
daysnumberNumber of days to look back (default: 30). Ignored when date_range or start_date/end_date are provided.
date_rangestringOptional preset window.
todayyesterdaylast_7_dayslast_14_dayslast_30_dayslast_90_daysaccount_idstringOptional specific Microsoft Ads account ID
account_namestringOptional account name for disambiguation when multiple accounts are connected.
start_datestringOptional fixed window start (YYYY-MM-DD). Requires end_date.
end_datestringOptional fixed window end (YYYY-MM-DD). Requires start_date.
breakdownstringOptional breakdown dimension (e.g. conversion_action, device, age_range, gender, geo_country, geo_region, or all).
breakdownsstringAlias for breakdown.
conversion_goalsbooleanOptional flag to include conversion goal breakdown.
levelstringReporting level: 'campaign' (default), 'ad-group', or 'ad'.
limitnumberOptional maximum number of entity rows to return.
offsetnumberNumber of entity rows to skip (default: 0).
campaign_idstringOptional campaign ID to filter results to one campaign.
demobooleanOptional demo mode flag.
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. When more than one TikTok Ads account is connected, pass account_name (or account_id) to choose which account to read.
Parameters
daysnumberNumber of days to look back (default: 30). Ignored when date_range or start_date/end_date are provided.
date_rangestringOptional preset window.
todayyesterdaylast_7_dayslast_14_dayslast_30_dayslast_90_daysaccount_idstringOptional specific TikTok advertiser ID
account_namestringOptional account name for disambiguation when multiple accounts are connected.
start_datestringOptional fixed window start (YYYY-MM-DD). Requires end_date.
end_datestringOptional fixed window end (YYYY-MM-DD). Requires start_date.
Pull Amazon DSP campaign performance data (2 credits)
Parameters
daysnumberNumber of days to look back (default: 30, max: 90)
account_idstringOptional specific Amazon DSP advertiser ID
account_namestringOptional account name for disambiguation.
date_rangestringOptional preset window; overrides days.
todayyesterdaylast_7_dayslast_14_dayslast_30_dayslast_90_dayslast_180_dayslast_365_dayslast_2_yearslast_3_yearsend_datestringOptional end date (YYYY-MM-DD, default: today).
start_datestringOptional start date (YYYY-MM-DD); overrides days.
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. When more than one Amazon Ads account is connected, pass account_name (or account_id) to choose which account to read.
Parameters
daysnumberNumber of days to look back (default: 30, max: 90)
ad_typestringAd type filter (default: ALL)
SPSBSDALLaccount_idstringOptional specific Amazon Ads profile ID
account_namestringOptional account name for disambiguation.
date_rangestringOptional preset window; overrides days.
todayyesterdaylast_7_dayslast_14_dayslast_30_dayslast_90_dayslast_180_dayslast_365_dayslast_2_yearslast_3_yearsend_datestringOptional end date (YYYY-MM-DD, default: today).
start_datestringOptional start date (YYYY-MM-DD); overrides days.
Get Pinterest Ads metrics (2 credits). When more than one Pinterest ad account is connected, pass account_name (or account_id) to choose which account to read.
Parameters
daysnumberlevelstringaccount_idstringaccount_namestringdate_rangestringOptional preset window; overrides days.
todayyesterdaylast_7_dayslast_14_dayslast_30_dayslast_90_dayslast_180_dayslast_365_dayslast_2_yearslast_3_yearsend_datestringOptional end date (YYYY-MM-DD, default: today).
start_datestringOptional start date (YYYY-MM-DD); overrides days.
Get Snapchat Ads metrics (2 credits). Use account_name to specify which account when multiple are connected.
Parameters
daysnumberlevelstringaccount_idstringaccount_namestringdate_rangestringOptional preset window; overrides days.
todayyesterdaylast_7_dayslast_14_dayslast_30_dayslast_90_dayslast_180_dayslast_365_dayslast_2_yearslast_3_yearsend_datestringOptional end date (YYYY-MM-DD, default: today).
start_datestringOptional start date (YYYY-MM-DD); overrides days.
Get Spotify Ads metrics (2 credits). Use account_name to specify which account when multiple are connected.
Parameters
daysnumberaccount_idstringaccount_namestringdate_rangestringOptional preset window; overrides days.
todayyesterdaylast_7_dayslast_14_dayslast_30_dayslast_90_dayslast_180_dayslast_365_dayslast_2_yearslast_3_yearsend_datestringOptional end date (YYYY-MM-DD, default: today).
start_datestringOptional start date (YYYY-MM-DD); overrides days.
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
daysnumberHow many days back to pull (1-365). Defaults to 30.
campaign_idstringOptional — scope insights to one campaign.
ad_group_idstringOptional — scope insights to one ad group.
ad_idstringOptional — scope insights to one ad.
aggregation_levelstringDefaults to ad_account.
ad_accountcampaignad_groupadtime_granularitystringDefaults to script default.
dailynonelimitnumberMax rows to return (defaults to 1000).
account_idstringOptional OpenAI Ads account ID (when multiple connected).
account_namestringOptional friendly account name selector.
date_rangestringOptional preset window; overrides days.
todayyesterdaylast_7_dayslast_14_dayslast_30_dayslast_90_dayslast_180_dayslast_365_dayslast_2_yearslast_3_yearsend_datestringOptional end date (YYYY-MM-DD, default: today).
start_datestringOptional start date (YYYY-MM-DD); overrides days.
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
daysnumberNumber of days to look back (default: 30). Ignored when date_range or start_date/end_date are provided.
date_rangestringOptional preset window.
todayyesterdaylast_7_dayslast_14_dayslast_30_dayslast_90_daysaccount_idstringOptional specific Trade Desk partner ID
account_namestringOptional account name for disambiguation when multiple accounts are connected.
start_datestringOptional fixed window start (YYYY-MM-DD). Requires end_date.
end_datestringOptional fixed window end (YYYY-MM-DD). Requires start_date.
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
daysnumberNumber of days to look back (default: 30). Ignored when date_range or start_date/end_date are provided.
date_rangestringOptional preset window.
todayyesterdaylast_7_dayslast_14_dayslast_30_dayslast_90_daysaccount_idstringOptional specific FreeWheel connection account id.
account_namestringOptional account name for disambiguation.
start_datestringOptional fixed window start (YYYY-MM-DD). Requires end_date.
end_datestringOptional fixed window end (YYYY-MM-DD). Requires start_date.
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_datestringrequiredYYYY-MM-DD (inclusive)
end_datestringrequiredYYYY-MM-DD (inclusive, must be <= yesterday)
google_account_idstringOptional Google Ads customer ID
google_account_namestringOptional Google account name for disambiguation
ttd_advertiser_idstringOptional Trade Desk advertiser ID
ttd_account_namestringOptional TTD account name for disambiguation
Get Display & Video 360 (DV360) metrics (2 credits). Use account_name to specify which account when multiple are connected.
Parameters
daysnumberaccount_idstringaccount_namestringdate_rangestringOptional preset window; overrides days.
todayyesterdaylast_7_dayslast_14_dayslast_30_dayslast_90_dayslast_180_dayslast_365_dayslast_2_yearslast_3_yearsend_datestringOptional end date (YYYY-MM-DD, default: today).
start_datestringOptional start date (YYYY-MM-DD); overrides days.
Get Campaign Manager 360 (CM360) metrics (2 credits). Use account_name to specify which account when multiple are connected.
Parameters
daysnumberaccount_idstringaccount_namestringdate_rangestringOptional preset window; overrides days.
todayyesterdaylast_7_dayslast_14_dayslast_30_dayslast_90_dayslast_180_dayslast_365_dayslast_2_yearslast_3_yearsend_datestringOptional end date (YYYY-MM-DD, default: today).
start_datestringOptional start date (YYYY-MM-DD); overrides days.
Get Walmart Connect Advertising metrics (2 credits). Returns impressions, clicks, spend, conversions, and ROAS per campaign.
Parameters
daysnumberaccount_idstringaccount_namestringdate_rangestringOptional preset window; overrides days.
todayyesterdaylast_7_dayslast_14_dayslast_30_dayslast_90_dayslast_180_dayslast_365_dayslast_2_yearslast_3_yearsend_datestringOptional end date (YYYY-MM-DD, default: today).
start_datestringOptional start date (YYYY-MM-DD); overrides days.
Get Instacart Ads metrics (2 credits). Returns impressions, clicks, spend, attributed orders, and attributed sales per campaign.
Parameters
daysnumberaccount_idstringaccount_namestringdate_rangestringOptional preset window; overrides days.
todayyesterdaylast_7_dayslast_14_dayslast_30_dayslast_90_dayslast_180_dayslast_365_dayslast_2_yearslast_3_yearsend_datestringOptional end date (YYYY-MM-DD, default: today).
start_datestringOptional start date (YYYY-MM-DD); overrides days.
Get Target Roundel retail media metrics (2 credits). Returns impressions, clicks, spend, conversions, and revenue per campaign.
Parameters
daysnumberaccount_idstringaccount_namestringdate_rangestringOptional preset window; overrides days.
todayyesterdaylast_7_dayslast_14_dayslast_30_dayslast_90_dayslast_180_dayslast_365_dayslast_2_yearslast_3_yearsend_datestringOptional end date (YYYY-MM-DD, default: today).
start_datestringOptional start date (YYYY-MM-DD); overrides days.
Get Criteo Commerce Media metrics (2 credits). Returns displays, clicks, cost, conversions, and revenue per campaign.
Parameters
daysnumberaccount_idstringaccount_namestringdate_rangestringOptional preset window; overrides days.
todayyesterdaylast_7_dayslast_14_dayslast_30_dayslast_90_dayslast_180_dayslast_365_dayslast_2_yearslast_3_yearsend_datestringOptional end date (YYYY-MM-DD, default: today).
start_datestringOptional start date (YYYY-MM-DD); overrides days.
Pull LinkedIn Ads Company Engagement report — shows which companies have seen your ads and how engaged they are (2 credits)
Parameters
account_idstringLinkedIn Ads account ID (uses connected account if omitted)
daysnumberLook-back window in days (default: 90)
audience_idstringOptional dmpSegment ID — scope analytics to this audience
countrystringISO country code filter, e.g. "US" or "GB"
min_employeesnumberFilter companies with at least this many employees
max_employeesnumberFilter companies with at most this many employees
engagement_levelstringComma-separated tier filter: "VERY_HIGH,HIGH" or "MEDIUM,LOW"
limitnumberMaximum companies to return (default: 200)
TikTok Ads (Detailed)
6Get 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
daysnumberNumber of days to look back (default: 7)
data_levelstringData level (default: AUCTION_CAMPAIGN)
AUCTION_CAMPAIGNAUCTION_ADGROUPAUCTION_ADaccount_idstringOptional specific TikTok advertiser ID
account_namestringOptional account name for disambiguation.
Get full TikTok ad group configuration (free). Returns targeting, budget, bid, pixel, optimization goal, languages, locations, age groups, identity.
Parameters
adgroup_idstringrequiredThe ad group ID to fetch
account_idstringOptional specific TikTok advertiser ID
account_namestringOptional account name for disambiguation.
List all TikTok ad groups, optionally filtered by campaign (free). Returns ID, name, status, budget, bid, optimization goal.
Parameters
campaign_idstringOptional campaign ID to filter ad groups
account_idstringOptional specific TikTok advertiser ID
account_namestringOptional account name for disambiguation.
List all TikTok ads, optionally filtered by ad group (free). Returns ad_id, ad_name, adgroup_id, campaign_id, status, ad_format.
Parameters
adgroup_idstringOptional ad group ID to filter ads
account_idstringOptional specific TikTok advertiser ID
account_namestringOptional account name for disambiguation.
Update a TikTok ad group: status, budget, locations, age targeting, bid, languages, audiences, optimization goal, pixel tracking (5 credits)
Parameters
adgroup_idstringrequiredThe ad group ID to update
statusstringNew status
ENABLEPAUSEbudgetnumberDaily budget in dollars
locationsstringSpace-separated location IDs (e.g. "6252001 2635167" for US, UK)
age_minnumberMinimum age (e.g. 25). Mapped to TikTok age groups.
age_maxnumberMaximum age (e.g. 55). Use 0 for no upper limit (55+).
bidnumberBid price in dollars
bid_typestringBid strategy
BID_TYPE_NO_BIDBID_TYPE_CUSTOMlanguagesstringSpace-separated language codes (e.g. "en fr de")
audience_idsstringComma-separated custom audience IDs to include
excluded_audience_idsstringComma-separated custom audience IDs to exclude
optimization_goalstringOptimization goal
CLICKCONVERTSHOWREACHVIDEO_VIEWENGAGED_VIEWLEAD_GENERATIONINSTALLIN_APP_EVENTpixel_idstringPixel ID for conversion tracking (numeric or alphanumeric pixel_code)
conversion_eventstringConversion event name (e.g. CompleteRegistration, Purchase). Auto-mapped to TikTok enum.
account_idstringOptional specific TikTok advertiser ID
account_namestringOptional account name for disambiguation.
Get full TikTok campaign configuration by ID (free). Returns name, objective, budget, status, timestamps.
Parameters
campaign_idstringrequiredThe campaign ID to fetch
account_idstringOptional specific TikTok advertiser ID
account_namestringOptional account name for disambiguation.
Campaign Management
6List campaigns for any ad platform (2 credits)
Parameters
platformstringrequiredAd platform
googlemetalinkedinredditmicrosofttiktokxamazon_dspaccount_idstringOptional specific account ID for the platform
statusstringOptional filter by status
ENABLEDPAUSEDREMOVEDaccount_namestringOptional name to select which account when multiple are connected for the same platform
demobooleanOptional boolean to return realistic sandbox demonstration data without connecting an account
Pause a campaign on any ad platform (2 credits)
Parameters
platformstringrequiredAd platform
googlemetalinkedinredditmicrosofttiktokxamazon_dspcampaign_idstringrequiredThe campaign ID to pause
account_idstringOptional specific account ID
account_namestringOptional name to select which account when multiple are connected for the same platform
Create a Meta (Facebook/Instagram) ad in an existing ad set (20 credits)
Parameters
adset_idstringParent 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.
namestringAd name.
creative_idstringExisting creative id to reuse.
page_idstringFacebook Page id, required when building a new creative.
linkstringDestination URL for a new creative.
messagestringPrimary text.
headlinestringHeadline text.
descriptionstringDescription text.
call_to_actionstringCTA enum, e.g. LEARN_MORE, SIGN_UP, SHOP_NOW.
image_urlstringImage URL to upload.
image_hashstringPre-uploaded image hash (alternative to image_url).
video_idstringVideo asset id.
video_urlstringVideo URL to upload.
instagram_user_idstringInstagram account id for IG placements.
qa_passstring|string[]QA pass bindings returned by qa_pass_bindings; not a bypass.
statusstringDefaults to PAUSED — new ads should be reviewed before they spend.
ACTIVEPAUSEDaccount_idstringSpecific ad account id.
account_namestringSelect among several connected Meta accounts by name.
allow_weak_creative_variantsbooleanIn 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_urlstringFeed placement image URL.
feed_image_hashstringPre-uploaded feed placement image hash.
feed_video_idstringFeed placement video asset id.
feed_video_urlstringFeed placement video URL to upload.
story_image_urlstringStory placement image URL.
story_image_hashstringPre-uploaded story placement image hash.
story_video_idstringStory placement video asset id.
story_video_urlstringStory placement video URL to upload.
reel_image_urlstringReel placement image URL.
reel_image_hashstringPre-uploaded reel placement image hash.
reel_video_idstringReel placement video asset id.
reel_video_urlstringReel placement video URL to upload.
vertical_image_urlstringVertical (9:16) image URL.
vertical_image_hashstringPre-uploaded vertical image hash.
vertical_video_idstringVertical video asset id.
vertical_video_urlstringVertical video URL to upload.
gdrive_folder_urlstringGoogle Drive folder URL for bulk asset ingestion.
placement_assets_jsonstringJSON blob mapping placement names to asset specs.
Create a Reddit ad from an existing post in an ad group (20 credits)
Parameters
ad_group_idstringrequiredParent ad group id. A single real id — wildcards rejected.
post_idstringrequiredThe post to promote, e.g. t3_1vbvcb7.
qa_passstring|string[]Verified creative QA pass binding for this action.
namestringAd name.
click_urlstringDestination URL. Reddit rejects a click_url on free-form (TEXT) posts — only link posts carry one.
statusstringDefaults to PAUSED.
ACTIVEPAUSEDcampaign_namestringCampaign name used for UTM auto-append.
no_utmbooleanSkip UTM auto-append.
qa_passstring|string[]QA pass bindings returned by qa_pass_bindings; not a bypass.
account_idstringSpecific ad account id.
account_namestringSelect among several connected Reddit accounts by name.
Enable/resume a paused campaign on any ad platform (2 credits)
Parameters
platformstringrequiredAd platform
googlemetalinkedinredditmicrosofttiktokxamazon_dspcampaign_idstringrequiredThe campaign ID to enable
account_idstringOptional specific account ID
account_namestringOptional name to select which account when multiple are connected for the same platform
Update a campaign's daily budget (5 credits)
Parameters
platformstringrequiredAd platform
googlemetalinkedinredditmicrosofttiktokxamazon_dspcampaign_idstringrequiredThe campaign ID to update
daily_budgetnumberrequiredNew daily budget in account currency (e.g., 50.00 for $50/day)
account_idstringOptional specific account ID
account_namestringOptional name to select which account when multiple are connected for the same platform
Google Tag Manager
6Read 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
resourcestringDefault containers.
containerstagstagaccount_idstringGTM account ID (tags, tag; optional if the connection pins a container)
container_idstringGTM container ID (tags, tag; optional if the connection pins a container)
tag_idstringTag ID (resource tag only, required there)
sourcestringlive (default) or workspace (resource tags only)
liveworkspaceSuperseded 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.
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_idstringGTM account ID (optional if the connection pins a container)
container_idstringGTM container ID (optional if the connection pins a container)
sourcestringlive (published, default) or workspace (unpublished draft)
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_idstringrequiredThe tag ID to fetch (required)
account_idstringGTM account ID (optional if the connection pins a container)
container_idstringGTM container ID (optional if the connection pins a container)
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_idstringrequiredThe tag ID to update (required)
htmlstringrequiredThe new HTML body for the tag (required)
account_idstringGTM account ID (optional if the connection pins a container)
container_idstringGTM container ID (optional if the connection pins a container)
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_idstringGTM account ID (optional if the connection pins a container)
container_idstringGTM container ID (optional if the connection pins a container)
version_namestringOptional name for the published container version
conflict_resolutionstringOptional merge conflict strategy. Use "keep_workspace" only when the user explicitly approved keeping the workspace version for GTM conflicts.
Analytics & Query
4Execute a Google Ads Query Language (GAQL) query (2 credits). Use account_name to specify which account when multiple are connected.
Parameters
querystringrequiredThe GAQL query to execute. Example: SELECT campaign.name, metrics.impressions FROM campaign WHERE segments.date DURING LAST_30_DAYS
account_idstringOptional Google Ads customer ID
account_namestringOptional account name for disambiguation when multiple accounts are connected.
limitnumberMax rows to return per page (1..100000)
offsetnumberNumber of rows to skip for pagination (pass previous next_offset)
page_tokenstringOptional cursor alias for offset
formatstringOutput 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_csvstringOptional server-side CSV path. The file is deleted once read; use download_url for the full export.
customer_idstringOptional Google Ads customer ID (alias of account_id)
List your Google Analytics 4 properties (free)
Parameters
account_idstringOptional specific GA4 account ID
Run a Google Analytics 4 report (free). Supports explicit YYYY-MM-DD start/end dates, relative date tokens (today, yesterday, NdaysAgo), date range presets/spans, and list or comma-separated metrics/dimensions. Pass property_id to query a specific GA4 property instead of the connection default.
Parameters
metricsstring | string[]Metrics as a list or comma-separated string (e.g., ["sessions","totalUsers","conversions"] or "sessions,totalUsers,conversions")
dimensionsstring | string[]Dimensions as a list or comma-separated string (e.g., ["date"] or "date,sessionSource")
daysnumberNumber of days to look back (default: 28 when no dates provided)
start_datestringStart date as strict YYYY-MM-DD (e.g. '2026-10-24') or GA4 relative token ('today', 'yesterday', 'NdaysAgo'). Also accepts startDate.
end_datestringEnd date as strict YYYY-MM-DD (e.g. '2026-10-30') or GA4 relative token ('today', 'yesterday', 'NdaysAgo'). Also accepts endDate.
startDatestringCamelCase alias for start_date
endDatestringCamelCase alias for end_date
date_rangestring | objectDate range string (e.g. '2026-10-24..2026-10-30'), preset ('last_7_days', 'last_14_days', 'last_28_days', 'last_30_days', 'last_90_days', 'today', 'yesterday'), or object with startDate/endDate
account_idstringOptional connection account selector
property_idstring | numberOptional numeric GA4 property ID to report on (overrides the connection's pinned GA4_PROPERTY_ID). Use ga4_get_properties to find it.
List GA4 conversion events (free). Pass property_id to query a specific GA4 property instead of the connection default.
Parameters
account_idstringOptional connection account selector
property_idstring | numberOptional numeric GA4 property ID (overrides the connection's pinned GA4_PROPERTY_ID)
Pixel & Conversion Tracking
6Superseded 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
urlstringrequiredLanding page URL to inspect.
platformstringrequiredAd platform
METAGOOGLE_ADSREDDITTIKTOKLINKEDINaccount_idstringOptional specific account ID; uses the user's active connection if omitted.
page_pixel_idstringID observed on the rendered page. Checked against provider ownership instead of re-extracting from static HTML.
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_keystringOptional pixel site key (sp_...) to scope to one site. If omitted, returns all sites for the workspace.
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
viewstringDefault health.
healthdestinationsdeliveriesownershipsite_keystringOptional pixel site key (sp_...) to scope to one site (health, destinations, deliveries).
statusstringFilter by delivery status (deliveries).
PENDINGSUCCESSRETRYINGFAILEDplatformstringDestination platform (deliveries) or ad platform META, GOOGLE_ADS, REDDIT, TIKTOK, LINKEDIN (ownership, required there).
limitnumberMax rows, default 50, max 200 (deliveries).
urlstringLanding page URL to inspect (ownership, required there).
account_idstringOptional account ID (ownership).
page_pixel_idstringPixel ID observed on the rendered page (ownership).
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_keystringOptional pixel site key (sp_...).
statusstringFilter by delivery status
PENDINGSUCCESSRETRYINGFAILEDplatformstringFilter by destination platform.
limitnumberMax rows (default 50, max 200).
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_keystringOptional pixel site key (sp_...).
user_idnumberOptional user id for stored Stripe first-touch.
emailstringOptional email to match pixel events.
limitnumberMax rows (default 50, max 200).
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
platformstringrequiredGOOGLE, META, LINKEDIN, REDDIT, TIKTOK, SNAPCHAT, etc.
actionstringDefault: upsert
upsertenabledisablesite_keystringsp_... site key; uses first active site for the org if omitted.
customer_idstringGoogle Ads customer ID (digits only, no dashes).
conversion_action_idstringGoogle Ads conversion action resource ID.
pixel_idstringMeta / Reddit / Snapchat / OpenAI Ads pixel ID.
conversion_rule_idstringLinkedIn conversion rule ID.
pixel_codestringTikTok pixel code.
Docs, Sheets & Publishing
7Create 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
kindstringrequireddoc or sheet.
docsheettitlestringrequiredFile title.
contentstringMarkdown content (doc).
htmlstringRaw HTML content (doc).
headersstringComma-separated header row (sheet).
rowsarrayComma-separated data rows (sheet).
json_datastringJSON array of objects (sheet).
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
kindstringDefault drive.
drivesheeturlstringPublic Drive/Docs URL (drive) or Sheet URL (sheet).
file_idstringPicker-attached file id (drive).
spreadsheet_idstringSpreadsheet id (sheet).
rangestringA1 range (sheet).
header_rownumber1-based header row, default 1 (sheet).
max_rowsnumberMaximum rows to return (sheet).
Superseded by create_google_file (still callable, not listed). Create a Google Doc from markdown or HTML content (5 credits)
Parameters
titlestringrequiredDocument title
contentstringMarkdown content for the document. Supports headings, bold, italic, links, lists. Use this for campaign plans, reports, etc.
htmlstringRaw HTML content (alternative to markdown). Use for rich formatting.
share_with_linkbooleanGrant anyone with the link edit access (default false: private to the connected Google account).
Publish a markdown blog post to a connected GitHub repo: commit <content_path>/<slug>.md and open a PR (which triggers the site's deploy). No credits charged.
Parameters
slugstringrequiredURL slug; also the markdown filename (<slug>.md).
titlestringrequiredPost title (rendered + used in front matter and the PR title).
markdownstringrequiredThe article body in markdown (no front matter — it's generated).
descriptionstringMeta description (defaults to the title).
datestringPublish date YYYY-MM-DD (defaults to today).
categorystringContent category (e.g. "guides", "comparisons", "product").
tagsstringComma-separated tags (e.g. "ABM,First-Party Data").
open_prbooleanOpen a PR (default) or push directly to the deploy branch.
content_pathstringOverride the repo dir the markdown lives in (default from connection, e.g. "blog").
base_branchstringOverride the PR base / deploy branch (default from connection, e.g. "main").
Superseded by create_google_file (still callable, not listed). Create a Google Sheet from tabular data (5 credits)
Parameters
titlestringrequiredSpreadsheet title
headersstringComma-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_datastringJSON array of objects as alternative to headers+rows. Example: '[{"Campaign":"Brand","Spend":5000},{"Campaign":"Display","Spend":3200}]'
share_with_linkbooleanGrant anyone with the link edit access (default false: private to the connected Google account).
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_idstringSpreadsheet ID (or pass `url` instead)
urlstringFull Google Sheets URL (alternative to spreadsheet_id)
rangestringA1 range to read, e.g. "Media Plan!A1:H50". Defaults to the first tab.
header_rownumber1-based row within the range holding column headers (default 1)
max_rowsnumberMaximum number of data rows to return
Write values (e.g. campaign IDs / status / spend) back into a range of an existing Google Sheet (2 credits)
Parameters
rangestringrequiredA1 range to write, e.g. "Media Plan!I2:K5"
valuesstringrequiredJSON 2D array of cell values, e.g. '[["LAUNCHED","cmp_123","$0.00"]]'
spreadsheet_idstringSpreadsheet ID (or pass `url` instead)
urlstringFull Google Sheets URL (alternative to spreadsheet_id)
value_input_optionstringDefault: USER_ENTERED
USER_ENTEREDRAWLanding Pages & Domains
8Read 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_idstringEmbed id (required for every view except list).
viewstringDefaults to config with embed_id, list without.
listconfigcodesubmissionspurchaseslimitnumber1-100, default 25 (submissions, purchases).
Generate an AI landing page hosted on your custom domain (600 credits)
Parameters
titlestringrequiredPage title / brand name shown in hero and browser tab
promptstringrequiredDescription of the landing page (what the product/service does, target audience, key benefits). Max 5000 characters.
cta_urlstringrequiredURL the CTA button links to (e.g., signup page)
brand_urlstringAuthoritative 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_textstringCTA button text (default: "Get Started")
stylestringDesign style (default: modern)
modernminimalboldslugstringURL slug (auto-generated from title if omitted). Max 128 chars.
lead_formstringOptional 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_keystringStable 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 a landing page draft, making it live at synterai.com/lp/{slug} (free)
Parameters
slugstringrequiredThe slug of the landing page to publish (returned by create_landing_page)
acknowledge_benchmarkbooleanPublish even though the page lost its last competitor benchmark. Only after the user has been told it lost and agreed.
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
slugstringrequiredThe landing page slug to update
google_conversion_labelstringGoogle Ads conversion label (the part after AW-.../)
fillout_form_idstringFillout form id (the /t/{id} token)
google_pixel_idstringGoogle tag id (AW-...)
meta_pixel_idstringMeta pixel id
linkedin_pixel_idstringLinkedIn partner id
reddit_pixel_idstringReddit pixel id (a2_...)
rotate_webhook_tokenbooleanIssue a new Fillout webhook token
ga4_measurement_idstringWorkspace-owned GA4 web stream measurement ID (G-...).
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
slugstringrequiredThe landing page slug to update
html_contentstringrequiredFull HTML string to replace the current content
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_contentstringrequiredFull HTML string (or a fragment — it will be wrapped).
titlestringOptional page title (defaults to "Uploaded Landing Page").
slugstringOptional URL slug (lowercase, hyphens). Auto-generated from the title + date when omitted. Re-uploading with a slug you own updates that page in place.
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
slugstringrequiredThe landing page slug
domainstringrequiredCustom domain (e.g. "go.acme.com", "landing.mybrand.com")
Check if DNS is configured for a landing page's custom domain. No credits charged.
Parameters
slugstringrequiredThe landing page slug
Audiences & Targeting
7Upload 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
platformstringrequiredTarget platform - "google", "meta", "linkedin", etc.
audience_namestringName for the audience (e.g., "Clay - Q1 Enterprise Leads")
emailsstringComma-separated raw email addresses (will be SHA-256 hashed before upload).
hashed_emailsstringComma-separated SHA-256 hashed emails (lowercase hex).
phonesstringComma-separated raw phone numbers (will be normalized + SHA-256 hashed).
hashed_phonesstringComma-separated SHA-256 hashed phones (lowercase hex).
mobile_idsstringComma-separated mobile advertising IDs (IDFA / GAID, raw). Meta and TikTok require raw MADIDs (not hashed).
hashed_mobile_idsstringComma-separated SHA-256 hashed mobile IDs (Reddit/TikTok only — Meta drops these with a warning).
company_namesstringComma-separated company names (LinkedIn only)
company_domainsstringComma-separated company domains (Google B2B targeting, LinkedIn)
csv_pathstringLocal path to an audience CSV. Best for local/stdio MCP setups that share a filesystem with the file.
csv_urlstringPublic HTTP(S) URL to an audience CSV. Best for hosted MCP calls to mcp.synterai.com.
emails_artifact_idstringOpaque id referring to a private payload of raw emails (one per line). Use for >1k entries.
hashed_emails_artifact_idstringSame as above but for SHA-256 hashed emails.
phones_artifact_idstringArtifact id for raw phone numbers (one per line, country-code prefixed).
hashed_phones_artifact_idstringArtifact id for SHA-256 hashed phones.
mobile_ids_artifact_idstringArtifact id for raw mobile advertising IDs (IDFA / GAID). Meta only.
audience_typestringDefault: EMAIL. Pre-hashed values are detected automatically from CSV column headers.
EMAILCOMPANYLOOKALIKEaccount_idstringOptional 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).
stagefinalizebatch_keystringRequired with batch_action - stable identifier for the batch (e.g., "q1_leads_feb2026")
customer_file_sourcestringMeta only. Origin of the audience data. Default: USER_PROVIDED_ONLY.
USER_PROVIDED_ONLYPARTNER_PROVIDED_ONLYBOTH_USER_AND_PARTNER_PROVIDEDi_have_consentbooleanConfirm 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 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
bodystringrequiredUTF-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_namestringName 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_audiencegoogle_ads_create_customer_matchgoogle_ads_create_standard_retargeting_audiencesgoogle_ads_create_website_visitor_audiencemicrosoft_ads_create_audiencetiktok_ads_create_audiencex_ads_create_audiencettl_secondsnumberHow long the artifact lives before being swept (default 1 hour, max 24 hours).
i_have_consentbooleanConfirm the customer has lawful basis (GDPR Art. 6) and required consent under CCPA / Meta / Google Customer Match terms for every identifier in `body`.
Create a campaign targeting an existing audience (200 credits — campaign launch)
Parameters
platformstringrequiredOnly "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_namestringrequiredName for the campaign
audience_idstringrequiredThe audience ID from sync_audience() result
daily_budgetnumberDaily budget in USD (default: $25)
headlinestringAd headline text
descriptionstringAd description text
final_urlstringLanding page URL
image_urlstringURL of the creative image asset. Required for LinkedIn.
account_idstringOptional specific ad account ID
List existing audiences on an ad platform (2 credits)
Parameters
platformstringAd platform
googlelinkedinmetareddittiktokmicrosofttrade_deskstackadaptamazon_dspxaccount_idstringOptional specific ad account ID
name_containsstringOptional case-insensitive filter on audience name or id
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
platformstringrequiredReddit or Google. Note: Google Ads has no hard-delete API for user lists, so this closes the list instead.
redditgoogleaudience_idstringrequiredThe platform audience id to delete (e.g. Reddit "ca.123…", Google's numeric user list ID).
account_idstringOptional specific ad account ID.
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_idstringrequiredThe 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_idstringThe platform's audience/user-list/custom-audience ID to attach (provide this OR segment_urn, linkedin only).
segment_urnstringadSegment URN to attach (linkedin only, alternative to audience_id).
modestringDefault: add (merge in). Not every mode is supported on every platform yet.
addremovereplacefacetstringLinkedIn-only targeting facet. Default: audienceMatchingSegments
audienceMatchingSegmentsdynamicSegmentsplatformstringAd platform.
linkedingooglemetatiktokredditmicrosoftstackadaptxad_group_idstringThe 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 ML-based lookalike audience from seed customers (10 credits)
Parameters
seed_audiencestringrequiredSource audience ID or name
platformstringrequiredTarget platform (GOOGLE, META, etc.)
expansion_factornumberHow much to expand (1-10x seed size)
Guardrails & Alerts
4Arm 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_idstringrequiredcampaign_idstringrequiredconversion_action_idstringrequiredspend_thresholdnumberrequiredmin_age_hoursnumberplatformstringList campaign-specific automatic pause guardrails and their latest spend, conversion, decision, and verified-pause state. No credits charged.
No parameters required.
Disable a campaign-specific automatic pause guardrail. This does not change the campaign's current platform status. No credits charged.
Parameters
guardrail_idnumberrequiredSet a weekly ad spend alert — notifies via email, Slack, SMS, and/or WhatsApp when total spend exceeds threshold (free)
Parameters
thresholdnumberrequiredWeekly spend threshold in USD (e.g. 10000)
emailstringrequiredEmail address for email alerts
phonestringPhone number in E.164 format for SMS/WhatsApp (e.g. +15551234567)
notifystringComma-separated channels to use: email, slack, sms, whatsapp (default: all)
platformsstringComma-separated platforms to check (default: google,meta,reddit)
Autonomous Agents
3Create 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_idstringSynter campaign/project UUID to scope the agent to. Optional but recommended.
skill_slugstringAutonomous-capable skill to run. Defaults to "campaign-health-monitoring".
cron_expressionstring5-field cron. Defaults to "0 */4 * * *" (every 4h).
namestringOptional human label for the schedule.
descriptionstringOptional description.
platformstringOptional platform scope (e.g. "google", "meta").
approval_modestringDefault "none" for the pacing monitor, "required" otherwise.
requiredoptionalnonenotify_channelsstringComma-separated channels: email, slack, whatsapp, in_app. Defaults to "slack".
notify_on_completionbooleanSend a notification when each run finishes.
organization_idnumberOptional workspace id (defaults to the API key's org).
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_idstringrequiredSchedule UUID from list_autonomous_schedules.
namestringNew human label.
descriptionstringNew description / operating rules the skill reads on each run.
platformstringNew platform scope (e.g. "google", "meta").
cron_expressionstringNew 5-field cron cadence.
approval_modestringNew approval mode.
requiredoptionalnonenotify_channelsstringComma-separated channels: email, slack, whatsapp, in_app.
notify_on_completionbooleanSend a notification when each run finishes.
ends_atstringISO-8601 end timestamp, or empty string to clear.
actionstringLifecycle action applied after any field edits.
stopfreezeresumeskip_nextrun_noworganization_idnumberOptional workspace id (defaults to the API key's org).
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_idnumberOptional workspace id (defaults to the API key's org).
Skills
2Superseded by load_skill (still callable, not listed). List public Synter execution skills and platform SOPs (free)
No parameters required.
Load a public Synter execution skill or platform SOP; omit skill_slug to list them (free)
Parameters
skill_slugstringThe slug of the skill to load (e.g., 'customer-facing-product-updates'). Omit to list skills.
Growth & Company Research
12Synter 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
resourcestringrequiredWhich read to run.
domain_technologiestechnology_changestrust_signalssitesproduct_searchcompany_to_urldomain_keywordsaccount_usagedomainstringDomain (domain_technologies, trust_signals, domain_keywords).
domainsarrayUp to 16 domains (technology_changes).
companystringCompany name (company_to_url).
querystringNatural-language audience (sites) or product query (product_search).
techstringTechnology name (sites).
keywordstringKeyword (sites).
limitnumberResult limit (sites, product_search).
countriesarrayPassed through to the underlying tech intel read; ignored by resources that do not take it.
other_techsarrayPassed through to the underlying tech intel read; ignored by resources that do not take it.
offsetstringPassed through to the underlying tech intel read; ignored by resources that do not take it.
pagenumberPassed through to the underlying tech intel read; ignored by resources that do not take it.
include_metabooleanPassed through to the underlying tech intel read; ignored by resources that do not take it.
commitbooleanPassed through to the underlying tech intel read; ignored by resources that do not take it.
spendstringPassed through to the underlying tech intel read; ignored by resources that do not take it.
revenuestringPassed through to the underlying tech intel read; ignored by resources that do not take it.
employeesstringPassed through to the underlying tech intel read; ignored by resources that do not take it.
live_onlybooleanPassed through to the underlying tech intel read; ignored by resources that do not take it.
include_trustbooleanPassed through to the underlying tech intel read; ignored by resources that do not take it.
include_rawbooleanPassed through to the underlying tech intel read; ignored by resources that do not take it.
sincestringPassed through to the underlying tech intel read; ignored by resources that do not take it.
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_typestringWhat to discover. "icp" (RevenueBase ICP contacts for ad audiences), "jobs" (companies hiring, from job-post data), "listicles", "podcasts", or "all".
icpapollojobslisticlespodcastsallquerystringComma-separated job-title keywords for "icp", or the job-title search query for "jobs".
limitnumberMax results (icp capped at 100000).
min_employeesnumberMin company size for "icp" (default: 50).
max_employeesnumberMax company size for "icp" (default: 2000).
industriesstringOptional comma-separated industry keywords for "icp".
geosstringOptional comma-separated country/region names for "icp".
job_levelsstringOptional comma-separated exact seniority levels for "icp". Defaults to senior VP+ when neither titles nor levels are given.
decision_makers_onlybooleanFor "icp", only return Priority-1 decision makers (default False).
technologiesstringOptional 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_functionsstringOptional comma-separated job functions for "jobs", filtered server-side (e.g. "Engineering").
Enrich a domain with competitive intelligence — SpyFu PPC data, BuiltWith tech stack, Hunter emails, Firecrawl headline. (5 credits)
Parameters
domainstringrequiredDomain to enrich (e.g., "acme.com")
Synter technology-intelligence availability and usage snapshot.
No parameters required.
Synter domain tech-stack lookup — ad pixels, CRM, analytics, CMS/ecommerce tools, spend/meta.
Parameters
domainstringrequiredlive_onlybooleaninclude_trustbooleaninclude_rawbooleanRecent technology additions/removals for domains, with business context.
Parameters
domainsstring[]requiredsincestringSynter domain trust, ecommerce/payment, parked/status, spend and live-tech signals.
Parameters
domainstringrequiredFind websites by technology, natural-language audience, or keyword search.
Parameters
techstringquerystringkeywordstringcountriesstring[]other_techsstring[]limitnumberoffsetstringinclude_metabooleancommitbooleanspendstringrevenuestringemployeesstringFind ecommerce shops and product listings matching a product query.
Parameters
querystringrequiredlimitnumberpagenumberResolve company names to candidate website domains.
Parameters
companystringrequiredFind keywords associated with a website domain.
Parameters
domainstringrequiredFind 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
querystringrequiredmax_resultsnumberentity_typestringpersonbusinessForecasting & Measurement
5Forecast campaign KPIs (spend, CPA, ROAS, clicks, conversions) for 7-30 days with confidence intervals (2 credits)
Parameters
metricstringKPI to forecast
spendcparoasclicksconversionsctrcpchorizonnumberForecast horizon in days (7, 14, or 30)
campaign_idstringOptional specific campaign ID (forecasts all if omitted)
platformstringOptional platform filter (GOOGLE, META, LINKEDIN, etc.)
Cross-channel budget allocation using diminishing returns modeling (5 credits)
Parameters
total_budgetnumberrequiredTotal daily budget in USD
targetstringOptimization target - conversions or roas
constraintsstringOptional JSON string with per-channel USD/day budget bounds. Schema: {"<channel>": {"min": <number>, "max": <number>}}. Must be valid JSON — do not pass natural language text.
dry_runbooleanRecommend-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.
Start or check a multi-armed bandit creative experiment using Thompson sampling (40 credits)
Parameters
campaign_idstringrequiredCampaign ID to run the experiment on
platformstringrequiredAd platform (GOOGLE, META, etc.)
actionstringstart, status, or stop
startstatusstopreward_metricstringMetric to optimize - ctr, conversion_rate, or roas
Multi-touch attribution analysis using Markov chains (5 credits)
Parameters
date_rangestringlast_7_dayslast_30_dayslast_90_daysconversion_typestringOptional filter for specific conversion type
conversion_window_daysnumberConversion 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 incremental ad impact via geo-lift or synthetic control (5 credits)
Parameters
platformstringrequiredAd platform (GOOGLE, META, etc.)
methodstringgeo_lift or synthetic_control
geo_liftsynthetic_controltest_regionsstringComma-separated test region codes
control_regionsstringComma-separated control region codes
Creative Generation
15Generate an AI image for ad creatives using Imagen 4, Flux, or Stable Diffusion. (80 credits)
Parameters
promptstringrequiredImage generation prompt (be specific about style, layout, colors).
sizestringImage dimensions. Defaults to 1200x628 when omitted.
providerstringImage model — imagen (default), flux, sdxl.
namestringOptional asset name for the artifact library.
Generate an AI video ad using Veo, Runway, or Luma. Great for YouTube and social ads.
Parameters
product_namestringrequiredProduct or brand name.
key_benefitstringrequiredMain value proposition.
conceptstringGeneric video framework name from the Node MCP contract.
target_audiencestringOptional audience persona.
durationnumberOptional video duration in seconds.
providerstringOptional video provider override.
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
promptstringrequiredImage description (ai mode) or thematic context hint (system-graphic mode).
platformstringTarget platform. Determines default sizes. Omit to use a single 1200x628 image.
googlemetalinkedinreddittiktokxmicrosoftspotifynamestringAsset name for the artifact library.
providerstringAI image model for mode="ai" — imagen (default), openai (best for text rendering), flux, sdxl. Ignored in system-graphic mode.
sizesstringOverride platform defaults with comma-separated WIDTHxHEIGHT (e.g. "1200x628,1080x1080").
negative_promptstringWhat to avoid in the image (ai mode only).
headlinestringRequired for system-graphic mode. Strongly recommended for all LinkedIn/social ads.
ctastringCTA button text or URL (e.g. "Book a Demo"). Auto-picked from brand if omitted.
subheadlinestringOptional body text below the headline.
modestringDefault: "ai". Use system-graphic for copy-led creatives.
aisystem-graphiceyebrowstringOptional short uppercase label rendered above the headline (system-graphic only).
statstringOptional accent stat tile, e.g. "98%+" or "10×" (system-graphic only).
creative_briefstringCreative System v1 brief as a JSON string, or freeform prose. Controls theme/accent/fonts.
Generate AI video ads using Veo, Luma, Runway, or HeyGen with creative concept templates (130–1100 credits)
Parameters
conceptstringrequiredCreative concept.
ugc-testimonialpasvs-alternativemade-easybefore-afterhook-demo-ctaproduct-demosocial-proofproductstringrequiredProduct or brand name (e.g. "Synter - AI Ad Platform").
platformstringTarget platform for sizing. Default: tiktok.
tiktokinstagram_reelsyoutube_shortsyoutubelinkedinmeta_feedtwitterredditproviderstringVideo model. Veo is the default recommended provider.
veolumarunwayheygenpain_pointstringThe viewer's pain point (for ugc-testimonial and pas concepts).
benefitstringKey benefit your product delivers.
ctastringCall-to-action text.
namestringAsset name for the artifact library.
target_audiencestringWho the ad is targeting (for persona/hook customization).
Generate UGC-style video ads with AI avatars (fal Aurora / HeyGen) (900 credits)
Parameters
productstringrequiredProduct or brand name (e.g. "Synter").
personastringAvatar persona. Determines the script tone and avatar selection if no custom script is given.
b2bagencyperformanceecommercescriptstringCustom script for the avatar to speak. If omitted, a persona script is generated.
avatarstringAvatar name (default: asha).
ashacartertrevinaspect_ratiostringOutput format. Default: 9:16 (vertical).
9:161:116:9namestringAsset name for the artifact library.
Render, watermark, auto-caption, and format video/screen recordings into social clips for X, LinkedIn, TikTok, or Reels (45 credits)
Parameters
source_urlstringrequiredPublic HTTPS URL of source video or screen recording.
aspect_ratiostringTarget aspect ratio. Default: 16:9.
16:99:161:14:5headlinestringOptional text overlay at top of video.
trim_startnumberStart trim offset in seconds. Default: 0.
trim_endnumberEnd trim offset in seconds.
auto_captionbooleanAuto-generate Whisper captions. Default: true.
namestringAsset display name for the artifact library.
idempotency_keystringStable caller-generated key. Reusing it with the same arguments returns the original job without charging or enqueueing again.
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.
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
templatestringrequiredTemplate id from list_remotion_templates, e.g. qr_billboard.
propsobjectProps 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.
fpsnumberFrames per second. Fixed-timing templates reject overrides.
durationnumberDuration in seconds. Fixed-timing templates reject overrides.
mutedbooleanRender without audio. Default: true.
namestringAsset display name prefix.
idempotency_keystringStable key; reusing it with the same arguments returns the original job.
Generate text ad copy (headlines, descriptions, CTAs) for any platform using Claude (20 credits)
Parameters
platformstringrequiredTarget platform.
googlemetalinkedinredditmicrosofttiktokxspotifyproductstringrequiredProduct name and brief description (e.g. "Synter - AI agent operator for ads").
landing_page_urlstringDestination URL for context on value props.
tonestringWriting tone. Default: professional.
professionalconversationalurgentplayfultechnicaleducationalheadlines_countnumberOverride the platform default headline count.
descriptions_countnumberOverride the platform default description count.
keywordsstringComma-separated keywords to weave into the copy.
ctastringPreferred CTA phrasing (e.g. "Book a demo").
competitor_brandstringSingle competitor brand for a Search STAG. Required when keywords look like conquest queries.
Generate a voice-over ad with an AI avatar speaking your script (fal Aurora / HeyGen) (900 credits)
Parameters
scriptstringrequiredThe spoken script for the avatar (15–60 seconds, ~40–150 words).
productstringrequiredProduct name (used for persona context if the script is short).
personastringAvatar tone context. Default: b2b.
b2bagencyperformanceecommerceavatarstringAvatar name. Default: asha.
ashacartertrevinnamestringAsset name for the artifact library.
List generated creative assets (images and videos) from your artifact library, with approval status and platform-deployment mapping (free)
Parameters
asset_typestringFilter by type. Omit for all types.
IMAGEVIDEOlimitnumberMaximum number of results per page (default 20, max 100).
offsetnumberNumber of newest assets to skip, for pagination (default 0).
kindstringassets (default) or remotion_templates (Remotion templates for create_remotion_video; takes no other argument).
assetsremotion_templatesUpload a generated creative asset to an ad platform and attach it to a campaign (5 credits)
Parameters
asset_urlstringrequiredURL of the asset to upload (from create_image_asset / create_video_ad).
qa_passstring|string[]Verified creative QA pass binding for this action.
platformstringrequiredTarget platform.
googlemetalinkedintiktokredditcampaign_idstringrequiredCampaign ID to attach the creative to.
asset_typestringDefault: IMAGE.
IMAGEVIDEOad_group_idstringAd 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_urlstringURL of a vertical (9:16) companion asset, when supported by the platform.
namestringName for the uploaded creative asset.
headlinestringAd headline text (required for LinkedIn).
descriptionstringAd body / description text.
landing_urlstringDestination URL for WEBSITE_VISIT LinkedIn campaigns.
form_idstringLinkedIn 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_idstringSpecific ad-account ID to target. Required when the campaign lives in a non-primary account.
List allowed brand domains for the current workspace. Restricted to workspace admins.
No parameters required.
Add an allowed brand domain to the current workspace. Restricted to workspace admins.
Parameters
domainstringrequiredThe brand domain to allow (e.g. producthunt.com).
website_urlstringOptional website URL on the domain (e.g. https://www.producthunt.com).
Remove an allowed brand domain from the current workspace. Restricted to workspace admins.
Parameters
domainstringrequiredThe brand domain to remove.
Campaign Plans
7Create or update a campaign launch plan (5 credits). Use plan_key for idempotency.
Parameters
plan_keystringrequiredUnique idempotency key (e.g. "zeroclick-q2-2026")
titlestringrequiredHuman-readable plan title
brief_jsonstringOptional JSON string (or already-parsed object) with campaign brief details.
Add or update an entity (campaign, ad, tweet, go_link, etc.) within a campaign plan (free).
Parameters
plan_idstringrequiredThe plan ID (from create_campaign_plan)
logical_keystringrequiredUnique key within the plan (e.g. "x/campaign/brand-awareness")
platformstringrequiredPlatform identifier (x, reddit, meta, google, linkedin, gtm, synter)
entity_typestringrequiredType of entity (campaign, ad_group, ad, tweet, promoted_tweet, website_card, post, pixel_tag, go_link)
remote_idstringPlatform-specific entity ID (after creation)
remote_ref_jsonstringJSON with additional platform references
metadata_jsonstringJSON with entity-specific metadata (activate_script, activate_args, pause_script, etc.)
desired_statestringTarget state for launch
pausedactiveparent_logical_keystringLogical key of parent entity (for dependency ordering)
provider_account_idstringPlatform ad account ID
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_idstringrequiredThe plan ID to publish
expected_versionintegerThe plan version you last read (optimistic concurrency). Omit to publish the current version; a stale value returns code=PLAN_VERSION_MISMATCH.
Launch an approved campaign plan — activates all entities across platforms in dependency order (free).
Parameters
plan_idstringrequiredThe plan ID to execute
execute_tokenstringrequiredThe execute token (from create_campaign_plan response)
qa_override_approvedbooleanSet 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 execution status and per-entity step results for a campaign plan launch (free).
Parameters
plan_idstringrequiredThe plan ID to check
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_idstringThe plan ID. Optional only with include gate_policy, which then returns the gate alone.
includearrayExtra sections: gate_policy.
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_urlstringrequiredSynter LP URL (e.g. "https://synterai.com/lp/my-saas")
business_namestringrequiredBrand name shown in ads (max 25 chars)
trial_daysnumberLength of free trial to promote in ad copy (default: 30)
total_daily_budgetnumberTotal daily budget across all campaigns in USD (default: $50)
month_labelstringLabel for campaign names e.g. "Apr 2026" (defaults to current month)
Documents & Notifications
3Create a document in the Campaign IDE editor (free). Perfect for reports, audits, strategy docs, and plans that can be collaboratively edited.
Parameters
titlestringrequiredDocument title (e.g., "Q1 Performance Report", "Google Ads Audit")
contentstringrequiredDocument content in markdown format. Supports headings, bullet lists, numbered lists, bold, horizontal rules, and tables.
organization_idnumberOptional workspace ID to create the document in.
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_idnumberuuidstringPost 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
channelstringrequiredtextstringrequiredLLM & Brand Visibility (GEO)
14Get workspace LLM visibility overview — Share of Voice (SOV), citations, brand mentions, and top opportunities across ChatGPT, Claude, Perplexity, and AI Overviews.
Parameters
project_idstringOptional project ID filter
daysnumberLookback window in days (default: 30)
List tracked commercial buying prompts and newest per-engine AI answer evidence (ChatGPT, Claude, Perplexity).
Parameters
project_idstringOptional project ID filter
searchstringOptional prompt search filter
active_onlybooleanFilter for active prompts only (default: true)
limitnumberMax items to return (default: 50)
List observed competitive ChatGPT ads, Reddit citations, YouTube citations, and web citations.
Parameters
project_idstringOptional project ID filter
sighting_typestringOptional filter by sighting type (e.g., 'chatgpt_ad')
limitnumberMax items to return (default: 50)
List ranked LLM visibility opportunities, missing citations, and actionable recommendations.
Parameters
project_idstringOptional project ID filter
statusstringFilter by status (e.g. 'open', 'completed')
limitnumberMax items to return (default: 50)
Generate Generative Engine Optimization (GEO) content strategies, PR drafts, schema markup, and outreach tactics.
Parameters
project_idstringOptional project ID filter
prompt_idstringOptional prompt ID filter
focus_areastringStrategy focus area (e.g. 'all', 'wikipedia', 'listicles')
limitnumberMax recommendations to return (default: 10)
Discover high-intent B2B commercial buying prompts across Evaluation, Comparison, Pricing/ROI, and Feature Verification stages.
Parameters
project_idstringOptional project ID filter
domainstringTarget domain to discover prompts for
competitorsstring[]List of competitor domains
icp_personastringTarget ICP persona
auto_seedbooleanAutomatically seed discovered prompts into tracking (default: false)
Audit AI crawler accessibility (GPTBot, ClaudeBot, PerplexityBot, Google-Extended) and generate custom llms.txt and robots.txt.
Parameters
domainstringrequiredTarget domain to audit (e.g. 'example.com')
check_llms_txtbooleanCheck llms.txt availability (default: true)
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_idstringrequiredProject ID
idempotency_keystringOptional 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_promptsnumberOptional batch size (1-50)
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_idstringrequiredProject 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_promptsbooleanDeactivate duplicate prompts (same text)
applybooleanWrite the plan (default false: dry run)
Generate NPOV-compliant Wikipedia article draft and WP:PAID COI disclosure for Wikipedia AFC submission.
Parameters
brand_namestringrequiredBrand name
domainstringOfficial domain
descriptionstringCompany overview and history
founding_yearnumberFounding year
headquartersstringHeadquarters location
citationsstring[]List of independent secondary source URLs
Generate structured Wikidata entity payload (P31, P856, P571) for LLM knowledge graph indexing.
Parameters
brand_namestringrequiredBrand name
domainstringOfficial domain
founding_yearnumberFounding year
headquartersstringHeadquarters location
Generate valid schema.org JSON-LD scripts (Organization, SoftwareApplication, Product, FAQPage) for LLM crawlers.
Parameters
brand_namestringrequiredBrand name
domainstringrequiredOfficial domain
descriptionstringBrand description
pricing_summarystringPricing overview
same_as_urlsstring[]Social and directory profile URLs
faqsobject[]FAQ question/answer pairs
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_idstringVisibility project ID (defaults to the workspace project)
buying_promptstringOptional text to match tracked prompts
brand_namestringYour brand name
domainstringYour official domain
competitorsstring[]Competitor domains to exclude
daysnumberLookback window in days (default 30)
limitnumberMax pages (default 10)
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_namestringrequiredBrand name
domainstringrequiredOfficial domain
review_platformsstring[]List of review platforms to audit (e.g. ['g2', 'capterra'])
Account Structure Hygiene
2Audit 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
platformstringreddit (full depth) or google (campaign-level). Default reddit.
redditgoogleaccount_idstringOptional ad account ID; falls back to the connected account.
account_namestringOptional friendly account name selector when multiple are connected.
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
platformstringreddit (full apply) or google (dry-run planning only). Default reddit.
redditgoogleaccount_idstringOptional ad account ID; falls back to the connected account.
account_namestringOptional friendly account name selector when multiple are connected.
applybooleanFalse (default) = dry run, writes nothing. True = archive the duplicate clutter listed in the plan. Requires customer approval.
Advanced (Script Library)
3Execute 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": "<name fragment>"} to hard-enforce target identity for updates.
Parameters
actionstringrequiredThe 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.
platformstringTarget 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_idstringOptional specific ad account ID to use
dry_runbooleanOptional validation-only mode. Defaults to false so approved actions execute once.
customer_idstringAlias for account_id (the native run_ppc_script spelling); ignored when account_id is set.
expected_namesobjectConfirm-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.
demobooleanOptional boolean to return realistic sandbox demonstration data without connecting an account.
idempotency_keystringStable caller-supplied identity for safe retries. The same key replays the original script result without billing or executing the provider operation again.
See all available PPC scripts (free)
No parameters required.
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_namestringrequiredstdio ↔ 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_<platform>_performance for the requested platform. campaign_id filtering on x and openai only. |
get_daily_spend | get_daily_spend (alias) | Google only: pull_google_ads_performance with segment=date. Use get_performance for other platforms. |
list_ad_accounts | list_ad_accounts (alias) | Runs list_connected_accounts (all platforms). |
generate_image | generate_image (alias) | Runs create_image. Not listed for connector-directory clients. |
run_tool | run_tool (alias) | Runs execute; same scopes and safety gate. Hidden wherever execute is hidden. |
create_conversion | create_conversion (alias) | Runs execute(action=google_ads_create_conversion); needs the scripts:execute scope. |
add_keywords | add_keywords (alias) | Runs execute(action=google_ads_add_keywords); needs the scripts:execute scope. |
add_negative_keywords | add_negative_keywords (alias) | Runs execute(action=google_ads_add_negative_keywords); needs the scripts:execute scope. |
upload_image | upload_image (alias) | Google only: runs execute(action=google_ads_upload_image_asset). Use upload_creative for other platforms. |
list_campaigns, pause_campaign, update_campaign_budget, stage_audience_artifact, sync_audience, generate_video | Same names | Already published on both. |
create_search_campaign, create_display_campaign, create_pmax_campaign, create_meta_campaign, create_linkedin_campaign, create_reddit_campaign | create_campaign_plan → run_launch_preflight → approve_campaign_plan → execute_campaign_plan | Not aliased: hosted campaign creation goes through an approved plan. |
manage_audience | list_audiences, stage_audience_artifact, sync_audience | Not aliased: hosted uploads require explicit consent confirmation. |
diagnose_tracking | get_pixel_health, list_event_deliveries | Not aliased: the stdio tool ignores its url argument. |
list_conversions | execute(action=google_ads_list_conversions) or run_tool | Not aliased: a read alias cannot carry execute's write scope. |
list_landing_pages | None yet | Not aliased: the hosted server has no landing-page list tool yet. |
Example usage
Just ask naturally — your AI assistant picks the right tool:
| You say | Tool used |
|---|---|
| What's my Google Ads spend this week? | pull_google_ads_performance |
| Show all my active campaigns | list_campaigns |
| Pause the Brand Search campaign | pause_campaign |
| Create a Search campaign for our new product | execute |
| Generate a hero image for my landing page | create_image |
| How should I allocate budget across my channels? | optimize_budget |
| Is the pixel on my landing page actually mine? | verify_pixel_ownership |
| Build a lookalike audience from our best customers | build_lookalike_audience |
