Torvex
Server Details
Traffic OS for media buyers: track, automate, manage campaigns, analyze ROI, and scale.
- Status
- Healthy
- OAuth
- Works in Glama
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-06-18
- URL
- ChatGPT
- –
- Claude
- –
TDQS
Score is being calculated.
Available Tools
130 toolsack_meta_commandAcknowledge Meta commandIdempotentInspect
Report the outcome of one claimed Facebook command: ok=true marks it done and updates the local campaign / adset / ad mirror; ok=false with final=true (Graph refused it) marks it failed and alerts the profile owner, final=false (transport failure) puts it back for another attempt.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Command id from claim_meta_commands | |
| ok | Yes | ||
| error | No | What went wrong (ok=false) | |
| final | No | ok=false only: true = Facebook refused (no retry), false = transport failure (retry on a later claim). Default true. | |
| result | No | Graph's answer (ok=true), kept for the audit |
apply_flow_schemeApply flow schemeDestructiveIdempotentInspect
Apply a flow scheme to a campaign: REPLACES the campaign's whole routing tree with a copy of the scheme's flows and adopts its rotation settings. Later scheme edits don't propagate. Use list_flow_schemes to find the scheme id.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Campaign id | |
| flow_scheme_id | Yes |
attach_auto_ruleAttach auto ruleIdempotentInspect
Attach an auto rule to a campaign (idempotent). The rule starts evaluating that campaign on its next sweep.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Auto-rule id | |
| campaign_id | Yes |
block_campaign_placementsBlock campaign placementsDestructiveIdempotentInspect
Block placements (source ids) on an API-type campaign — mirrored to the ad network best-effort. The blacklist is created automatically on first use. Up to 100 sites per call.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Campaign id | |
| sites | Yes | Placement / source ids to block |
claim_meta_commandsClaim Meta commandsInspect
Lease the Facebook writes Torvex queued for the tokenless (browser-extension) Meta profile of a logged-in FB user — pause / resume and daily-budget changes decided by the campaign list, an Auto Rule or a rollback, comment moderation (hide / delete / reply) and the raw Graph requests of an autolaunch (graph_call / graph_upload with a signed media_url, handed out once) for cabinets with no Graph token. What the Torvex browser extension polls every minute; each command must be performed in the Ads Manager session and acknowledged with ack_meta_command. A claimed command is leased for 10 minutes, then handed out again (3 attempts); unclaimed commands expire after 24 h and alert the profile owner.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max commands per claim (1–100) | |
| fb_user | Yes |
clone_campaignClone campaignInspect
Duplicate a campaign with its whole routing tree, pixels, postbacks, tags and backup domains. The copy is a plain manual campaign with a fresh alias and starts PAUSED unless status=active is given. Blocked (422 domain_problem) while the source domain is flagged by monitoring.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Source campaign id | |
| name | No | Name for the copy (default "<source> (copy)") | |
| status | No | Default paused |
create_aff_networkCreate affiliate networkInspect
Create an affiliate network. Only name is required; click_id_param (the query parameter the network expects the click id in) defaults to click_id.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| tags | No | ||
| notes | No | ||
| group_id | No | ||
| postback_url | No | Postback URL template to configure at the network | |
| click_id_param | No | Query parameter the network expects the click id in (default click_id) | |
| extra_url_params | No | Extra query string appended to offer URLs | |
| postback_ips_whitelist | No | Comma-separated IPs allowed to send postbacks (empty = any) |
create_auto_ruleCreate auto ruleInspect
Create an auto rule: conditions over campaign metrics for a time window, checked every run_every_minutes, firing an action. Campaign-level actions: pause_traffic, resume_traffic, increase_bid, decrease_bid, notify. Placement-level actions (evaluated per source_id): block_zone, whitelist_zone, unblock_zone, increase_zone_bid, decrease_zone_bid. Bid actions need action_params.bid_step and an API (or DSP) campaign. campaign_ids attaches it right away — a rule only runs on attached campaigns.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| tags | No | ||
| action | Yes | ||
| status | No | ||
| ranking | No | Placement actions only: act on just the worst / best N placements that pass the conditions, e.g. {"metric":"cpa","direction":"worst","limit":5,"min_clicks":100} = the 5 worst-CPA placements with at least 100 clicks. For cpa/cpc/cpm/cost lower is better (a placement that spent without converting is the worst CPA); for the rest higher is better. null = every matching placement. | |
| group_id | No | ||
| schedule | No | When the scheduler may run the rule, in the workspace timezone: days = ISO weekdays 1 (Mon)…7 (Sun), empty = every day; windows = [{from:"HH:MM", to:"HH:MM"}], empty = whole day; a window with to <= from runs over midnight. null = always. | |
| conditions | Yes | All conditions must hold (AND) | |
| campaign_ids | No | Campaigns to attach on create | |
| action_params | No | Parameters the action needs. Bid actions (increase_bid / decrease_bid / increase_zone_bid / decrease_zone_bid): bid_step (>0, required), bid_step_unit (amount|percent), bid_limit (ceiling for an increase, floor for a decrease). Placement list actions (block_zone / whitelist_zone / unblock_zone): site_list_id — the list to write into, default the campaign's own. switch_rotation: flow_scheme_id (required) — the flow scheme copied over the campaign's flows, applied once per scheme. Keys the action does not use are dropped. | |
| time_interval | Yes | Metrics window | |
| run_every_minutes | Yes | ||
| on_success_pause_rule | No | Pause the rule after it fires | |
| on_success_pause_campaign | No | Pause the campaign after it fires |
create_campaignCreate campaignInspect
Create a manual tracker campaign. Only name is required — domain defaults to the workspace default, cost model to none, rotation to by_position. Give offer_id (and optionally landing_id) to build the default flow with that single destination, or send a full flows tree (flows → rules → destinations; see get_campaign include=flows for the shape). Returns the campaign with its click_url.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| tags | No | Tag ids (see list_tags) | |
| alias | No | Short code used in the click URL /c/{alias}; generated when omitted. Globally unique. | |
| flows | No | Routing tree, evaluated in order. Exactly one flow should be is_default (catch-all, no rules). On update the list is complete: rows match by id, omitted rows are deleted. | |
| notes | No | ||
| pixels | No | Attached conversion pixels (complete list on update) | |
| group_id | No | ||
| offer_id | No | Create shortcut: route the default flow to this offer (ignored when flows is sent) | |
| cost_type | No | How click cost is booked (auto = from the {cost} macro) | |
| domain_id | No | Tracking domain (see list_domains; defaults to the workspace default on create) | |
| postbacks | No | Campaign-level outgoing postbacks (complete list on update) | |
| cost_value | No | Cost per click / per 1000 (cpc / cpm) or per conversion (cpa); % for revshare | |
| landing_id | No | Create shortcut: show this landing before the offer (needs offer_id) | |
| auto_metric | No | ||
| sticky_flow | No | Cookie-pin a returning visitor to the flow and destination they got first (priority flows still win) | |
| site_list_id | No | Site list attached to the campaign | |
| traffic_loss | No | 0–100 % traffic-loss compensation; null = inherit the traffic source | |
| cost_currency | No | Default USD | |
| flow_rotation | No | auto = EPC/CR bandit split of each flow's destinations | |
| network_links | No | Ids of campaigns already running on the campaign's API traffic source, exactly as the network shows them — network actions (start/stop, stats, bids, lists) then act on them. Complete list: replaces the manual links, [] clears them, omit to leave them as they are. A link turns a manual campaign into an api one; removing the last turns it back. Ignored for sources without an API connection. | |
| remember_offer | No | Keep a returning visitor on the offer they first got | |
| auto_min_clicks | No | auto rotation: clicks before exploiting (default 100) | |
| back_button_url | No | Back button target http(s) URL, macros allowed (target = url) | |
| uniqueness_mode | No | ||
| uniqueness_scope | No | ||
| backup_domain_ids | No | Ordered failover pool for automatic domain switching (max 20) | |
| traffic_source_id | No | ||
| uniqueness_period | No | Hours (1–8760, default 24) | |
| back_button_target | No | Back button: where a visitor pressing Back on a served landing / PWA install page is sent; null = off | |
| auto_explore_percent | No | auto rotation: exploration share 0–50 (default 10) | |
| back_button_offer_id | No | Back button target offer (target = offer) | |
| back_button_campaign_id | No | Back button target campaign (target = campaign; not the campaign itself) | |
| sticky_flow_keep_click_id | No | Sticky flow: a return visit resumes the original click id instead of minting a new click | |
| sticky_flow_skip_inactive | No | Sticky flow: route afresh when the sticky flow is paused (default true); false keeps serving it |
create_campaign_from_metaCreate campaign from MetaInspect
One click from an Ads Manager row: create a tracker campaign named after the Facebook campaign (manual type, the workspace's Meta traffic source, the healthy default domain, a default flow with no destination yet) and link the FB campaign to it under the tokenless profile of the logged-in FB user. Returns the campaign, its click URL (put it in the ad) and the editor URL; needs the campaigns.create permission and counts against the plan's campaign cap.
| Name | Required | Description | Default |
|---|---|---|---|
| fb_user | Yes | ||
| ad_account_id | Yes | ||
| fb_campaign_id | Yes | ||
| fb_campaign_name | No | Becomes the tracker campaign name |
create_creativeCreate creativeInspect
Save a creative into the Creatives Library — the one-click 'Save to Torvex' of the browser extension (Facebook Ad Library, the FB / Instagram feed, TikTok Creative Center, Ads Manager) and the API twin of the library's upload form. Media arrive as public URLs (media_urls, fetched server-side — images and MP4 / MOV / WebM video, 100 MB each, up to 10) and the ad copy as title / body / description / cta; source, source_url, advertiser and external_id (the site's own ad id, e.g. the Ad Library ID) record where it came from — a second save with the same external_id returns the existing creative (duplicate=true). Needs the creatives manage permission.
| Name | Required | Description | Default |
|---|---|---|---|
| cta | No | Facebook call-to-action, as the site spells it or as a code | |
| body | No | Facebook: Primary text | |
| name | No | Defaults to "<advertiser> — <source> <date>" | |
| title | No | Facebook: Headline | |
| format | No | Default facebook | |
| source | No | ||
| status | No | ||
| language | No | ||
| folder_id | No | ||
| advertiser | No | Page / brand name | |
| media_urls | No | Public image / video URLs to download | |
| source_url | No | The page the creative was clipped from | |
| description | No | ||
| external_id | No | The site's own id of the ad (Ad Library ID) — dedupe key |
create_domainCreate domainInspect
Add a tracking domain. type=system (default) assigns a free random subdomain that works immediately. type=custom connects a domain the user owns: a DNS zone is created and the response's ns_servers must be set at the registrar before the domain verifies. Buying a domain is panel-only.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | The domain name (custom only), e.g. trk.example.com | |
| type | No | Default system | |
| dns_provider_id | No | Optional DNS provider to record for a custom domain |
create_flow_schemeCreate flow schemeInspect
Create a reusable flow scheme (a routing tree that can be applied to campaigns). Send flows as for a campaign: [{name, is_default, match: all|any, rules: [{field, operator, value}], destinations: [{type, offer_id|landing_id|…, weight}]}].
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| tags | No | ||
| flows | No | Routing tree, evaluated in order. Exactly one flow should be is_default (catch-all, no rules). On update the list is complete: rows match by id, omitted rows are deleted. | |
| status | No | ||
| group_id | No | ||
| auto_metric | No | ||
| description | No | ||
| flow_rotation | No | ||
| auto_min_clicks | No | ||
| auto_explore_percent | No |
create_groupCreate groupInspect
Create an entity group (groups are per entity type: campaigns, offers, landings, flow_schemes, pixels, auto_rules, traffic_sources, aff_networks, …). Name must be unique within the type.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| type | Yes |
create_landingCreate landingInspect
Create a landing: a URL-type landing (an external page; {offer_url} and other macros are substituted in links — name and url required) or, with type game, a game landing rendered from a game pack (name and game_pack_id required; game_settings keys come from list_game_packs). Uploaded landings need a zip and are panel-only.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | https:// page URL (URL-type landings) | |
| name | Yes | ||
| tags | No | ||
| type | No | Create only: url (default) or game | |
| notes | No | ||
| status | No | ||
| group_id | No | ||
| language | No | Locale code, e.g. en | |
| pwa_name | No | Game landings: install (add-to-home-screen) title | |
| collect_push | No | Inject the push-subscription collector | |
| game_pack_id | No | Game landings: pack id from list_game_packs | |
| game_settings | No | Game landings: {key: text} limited to the pack settings keys (+ soundEnabled / soundSpin / soundWin when the pack has sounds); unknown keys are dropped | |
| heatmap_enabled | No | ||
| protect_enabled | No | URL-type landings: token protection — only visitors sent by the campaign reach the offer (and, with the PHP script from the panel installed, the page); everyone else gets the campaign whitepage | |
| push_activation | No | ||
| game_localizations | No | Game landings: [{locale, settings}] per-language overrides picked by the visitor's browser language; empty values inherit the default texts | |
| protect_ttl_minutes | No | Token lifetime, 5–1440 minutes (default 30) |
create_offerCreate offerInspect
Create an offer. Only name is required — payout_type defaults to Auto (the payout comes with the postback, no planned amount), status to active. Use {click_id} and other {macros} in the URL. payout is in payout_currency (default USD); incoming postbacks without a currency parameter are converted from it. A local offer (dest_kind local) is a page the tracker hosts: pass its ZIP (with index.html at the root) as zip_base64.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | Offer URL; {click_id} and other {macros} are substituted per click | |
| name | Yes | ||
| tags | No | ||
| notes | No | ||
| payout | No | Expected payout in payout_currency | |
| status | No | ||
| group_id | No | ||
| cap_limit | No | ||
| countries | No | ISO alpha-2 codes | |
| dest_kind | No | redirect (default) sends the click to url; action performs a server-side action; telegram attributes a Telegram channel; local serves an uploaded ZIP page hosted by the tracker (send zip_base64) | |
| languages | No | ||
| cap_period | No | ||
| zip_base64 | No | Local offers: the page ZIP (index.html at the root), base64-encoded, up to 10 MB | |
| cap_enabled | No | Enable conversion caps (needs cap_period + cap_limit) | |
| payout_type | No | Auto (payout from the postback, default), CPA, CPL, RevShare, CPC or Fixed | |
| cap_priority | No | ||
| collect_push | No | Local offers: collect web-push subscriptions on the page | |
| redirect_type | No | Redirect mechanism for dest_kind redirect (default http) | |
| aff_network_id | No | ||
| heatmap_enabled | No | Local offers: collect click / scroll heatmap data on the page | |
| payout_currency | No | ISO code the network pays this offer in (default USD); postbacks without a currency parameter are converted from it | |
| push_activation | No | Local offers: when the push prompt shows | |
| cap_alt_offer_id | No | Fallback offer when capped |
create_pixelCreate pixelInspect
Create a conversion pixel (facebook_capi, tiktok_events, google_ga4, google_ads, moloco, reddit_capi, twitter_capi, snapchat_capi, pinterest_capi, bigo_events, kwai_events). config holds the platform settings: facebook_capi {pixel_id, access_token}, tiktok_events {pixel_id, access_token}, google_ga4 {measurement_id, api_secret}, google_ads {customer_id, conversion_action_id, login_customer_id?, client_id, client_secret, refresh_token, consent?} (offline click conversions via the Data Manager API), moloco {platform_id, api_key}, reddit_capi {account_id, access_token}, twitter_capi {pixel_id, consumer_key, consumer_secret, access_token, access_token_secret, event_id?} (event mapping values are X event ids), snapchat_capi {pixel_id, access_token}, pinterest_capi {ad_account_id, access_token}, bigo_events {pixel_id}, kwai_events {pixel_id, access_token}. Secrets are write-only.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| tags | No | ||
| config | No | Platform settings (pixel_id / access_token / measurement_id / api_secret / customer_id / conversion_action_id / client_id / client_secret / refresh_token / platform_id / api_key / account_id / ad_account_id / consumer_key / consumer_secret / access_token_secret / event_id); secrets write-only | |
| status | No | ||
| currency | No | Value currency (default USD) | |
| group_id | No | ||
| platform | Yes | ||
| send_value | No | Send the payout as the event value | |
| payout_percent | No | 0–500, share of the payout sent as value |
create_tagCreate tagInspect
Create a workspace tag (one shared pool across entity types). Colour is picked from the fixed palette at random when omitted.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| color | No | Hex colour from the fixed palette |
create_traffic_sourceCreate traffic sourceInspect
Create a traffic source. Only name is required. template_id copies the provider, API capabilities and default parameter mapping from a platform template (list_traffic_source_templates); mapping fields given explicitly override it. For API-backed templates the api_key is verified live (422 invalid_api_key). Without a template the source is custom (no network API).
| Name | Required | Description | Default |
|---|---|---|---|
| cost | No | Incoming query parameter name that carries cost (parameter mapping) | |
| name | Yes | ||
| sub1 | No | Incoming query parameter name that carries sub1 | |
| sub2 | No | Incoming query parameter name that carries sub2 | |
| sub3 | No | Incoming query parameter name that carries sub3 | |
| sub4 | No | Incoming query parameter name that carries sub4 | |
| sub5 | No | Incoming query parameter name that carries sub5 | |
| sub6 | No | Incoming query parameter name that carries sub6 | |
| sub7 | No | Incoming query parameter name that carries sub7 | |
| sub8 | No | Incoming query parameter name that carries sub8 | |
| sub9 | No | Incoming query parameter name that carries sub9 | |
| tags | No | ||
| sub10 | No | Incoming query parameter name that carries sub10 | |
| sub11 | No | Incoming query parameter name that carries sub11 | |
| sub12 | No | Incoming query parameter name that carries sub12 | |
| sub13 | No | Incoming query parameter name that carries sub13 | |
| sub14 | No | Incoming query parameter name that carries sub14 | |
| sub15 | No | Incoming query parameter name that carries sub15 | |
| format | No | Incoming query parameter name that carries format (parameter mapping) | |
| api_key | No | Network API key (API-backed templates only); write-only, verified live | |
| zone_id | No | Incoming query parameter name that carries zone_id (parameter mapping) | |
| group_id | No | ||
| proxy_id | No | Tech → Proxies id (list_proxies) the network API calls of this source leave through; null = direct | |
| postbacks | No | Source postback URLs (complete list on update) | |
| source_id | No | Incoming query parameter name that carries source_id (parameter mapping) | |
| campaign_id | No | Incoming query parameter name that carries campaign_id (parameter mapping) | |
| creative_id | No | Incoming query parameter name that carries creative_id (parameter mapping) | |
| external_id | No | Incoming query parameter name that carries external_id (parameter mapping) | |
| template_id | No | ||
| traffic_loss | No | 0–100 % traffic-loss compensation applied to click cost | |
| user_activity | No | Incoming query parameter name that carries user_activity (parameter mapping) | |
| payout_percent | No | 0–500 share of the payout reported | |
| postback_percent | No | 0–100 share of conversions forwarded to the source |
delete_creative_mediaDelete creative mediaDestructiveInspect
Permanently remove one media file from a creative (by media id from get_creative). Future auto-launches will no longer include it; ads already created on the network are untouched.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Creative id | |
| media_id | Yes | Media id (from get_creative) |
detach_auto_ruleDetach auto ruleDestructiveIdempotentInspect
Detach an auto rule from a campaign.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Auto-rule id | |
| campaign_id | Yes |
get_aff_networkGet affiliate networkRead-onlyIdempotentInspect
One affiliate network: click-id parameter, extra URL params, postback URL template, postback IP whitelist, notes, group and tags.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Affiliate network id |
get_auto_ruleGet auto ruleRead-onlyIdempotentInspect
One auto-rule with its conditions, action, schedule and attached campaigns (incl. each pair's last run result).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Auto-rule id |
get_balanceGet balanceRead-onlyIdempotentInspect
The token owner's wallet + referral balance (USD).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
get_campaignGet campaignRead-onlyIdempotentInspect
One campaign by numeric id. Set include to pull the routing tree (flows with rules and destinations), attached pixels, postbacks and creatives.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Campaign id | |
| include | No | Comma-separated: flows,pixels,postbacks,creatives |
get_campaign_blacklistGet campaign blacklistRead-onlyIdempotentInspect
Current placement (source id) blacklist of an API-type campaign.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Campaign id |
get_campaign_preflightCheck campaign before launchRead-onlyIdempotentInspect
Pre-launch check of one campaign: is it ready for real traffic? Checks status, tracking domain health, routing completeness, paused offers/landings in routing, click id reaching offer URLs, postbacks received (30 days), pixel/postback back to the traffic source, cost model and a test click (30 days). ready=false when any check has status fail; warn is advisory.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Campaign id |
get_clickGet click detailsRead-onlyIdempotentInspect
One click's full story: the scored hit row with decoded fingerprint flags, plus every conversion registered on it.
| Name | Required | Description | Default |
|---|---|---|---|
| click_id | Yes | Click UUID |
get_cohortsGet cohorts and LTVRead-onlyIdempotentInspect
Cohort & LTV analytics. A cohort is everything that entered on the same day (or week): subject=clicks follows a traffic day — cumulative LTV/ROI per click, repeat conversions and how much of the payoff had landed by day N, with revenue attributed back to the day of the CLICK (standard reports attribute it to the day the conversion arrived); subject=registration follows sign-ups (Lead) to their deposits; subject=ftd follows first deposits (Sale) to their redeposits (Upsell) — the deposit / repeat-purchase vocabulary: summary.arpu = LTV per FTD, returns_per_entity = redeposits per FTD, active_rate = FTD→redeposit rate, summary.ladder = LTV earned inside D0 / D1-7 / D8-30 / D31-90, life_days = redeposits by day of life; subject=push follows a subscriber base; subject=pwa follows PWA installs. split_by returns a second table whose rows are one dimension value instead of a day (each row carries its own ladder, active_rate and returns_per_entity — the channel comparison). Cells a cohort has not reached yet are null.
| Name | Required | Description | Default |
|---|---|---|---|
| os | No | ||
| isp | No | ||
| pwa | No | PWA id | |
| city | No | ||
| site | No | Placement / zone id as passed by the ad network | |
| sub1 | No | Filter by sub1 | |
| sub2 | No | Filter by sub2 | |
| sub3 | No | Filter by sub3 | |
| sub4 | No | Filter by sub4 | |
| sub5 | No | Filter by sub5 | |
| sub6 | No | Filter by sub6 | |
| sub7 | No | Filter by sub7 | |
| sub8 | No | Filter by sub8 | |
| sub9 | No | Filter by sub9 | |
| user | No | Workspace member id(s), comma-separated — the campaign owner at click time (needs the "See statistics per team member" permission; ignored otherwise) | |
| offer | No | Offer id | |
| sub10 | No | Filter by sub10 | |
| sub11 | No | Filter by sub11 | |
| sub12 | No | Filter by sub12 | |
| sub13 | No | Filter by sub13 | |
| sub14 | No | Filter by sub14 | |
| sub15 | No | Filter by sub15 | |
| device | No | mobile / tablet / desktop | |
| period | No | Reporting period (default 7days). Use 'custom' with date_from/date_to. | |
| source | No | Traffic source id | |
| browser | No | ||
| country | No | Country ISO alpha-2 code, e.g. ES | |
| date_to | No | YYYY-MM-DD (with period=custom) | |
| horizon | No | Days/weeks after the cohort day to return (default 30 / 12, max 90 / 26) | |
| landing | No | Landing id | |
| subject | No | What a cohort is made of (default clicks) | |
| campaign | No | Campaign ALIAS (the short code, not the numeric id) | |
| creative | No | Creative id from the click URL | |
| language | No | ||
| pwa_tags | No | Comma-separated tag ids — pwas carrying any of them | |
| referrer | No | ||
| split_by | No | Also return a matrix whose rows are this dimension | |
| utm_term | No | Exact utm_term value from the click URL | |
| date_from | No | YYYY-MM-DD (with period=custom) | |
| pwa_group | No | Pwa group id | |
| smartlink | No | Smartlink id | |
| source_id | No | Source id as passed by the ad network | |
| offer_tags | No | Comma-separated tag ids — offers carrying any of them | |
| utm_medium | No | Exact utm_medium value from the click URL | |
| utm_source | No | Exact utm_source value from the click URL | |
| ad_campaign | No | The ad network's own campaign id (external_campaign_id) | |
| aff_network | No | Affiliate network id | |
| granularity | No | Cohort granularity (default day) | |
| offer_group | No | Offer group id | |
| source_tags | No | Comma-separated tag ids — sources carrying any of them | |
| unique_only | No | Count unique clicks only | |
| utm_content | No | Exact utm_content value from the click URL | |
| exclude_bots | No | Exclude bot traffic (bots are counted by default) | |
| landing_tags | No | Comma-separated tag ids — landings carrying any of them | |
| source_group | No | Source group id | |
| utm_campaign | No | Exact utm_campaign value from the click URL | |
| campaign_tags | No | Comma-separated tag ids — campaigns carrying any of them | |
| landing_group | No | Landing group id | |
| campaign_group | No | Campaign group id | |
| smartlink_tags | No | Comma-separated tag ids — smartlinks carrying any of them | |
| connection_type | No | ||
| smartlink_group | No | Smartlink group id |
get_creativeGet creativeRead-onlyIdempotentInspect
One creative with its ordered media list. Each media row carries a 1-based position — Meta auto-launch ad #N uses the media at position N (as of launch time).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Creative id |
get_domainGet domainRead-onlyIdempotentInspect
One tracking domain with health / monitoring state, nameservers (custom domains), crawler policy and default-page settings.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Domain id |
get_flow_schemeGet flow schemeRead-onlyIdempotentInspect
One flow scheme with its full flows JSON tree (rules, destinations, rotation).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Flow scheme id |
get_landingGet landingRead-onlyIdempotentInspect
One landing with its URL, push-collection and heatmap settings, notes, group and tags.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Landing id |
get_meGet account and workspaceRead-onlyIdempotentInspect
Who this token belongs to: user, resolved workspace, all addressable workspaces (for the X-Workspace-Id header) and the token abilities.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
get_meta_overlayGet Meta overlayInspect
Tracker metrics keyed by FACEBOOK ids — the 'Torvex columns' the browser extension draws under every Ads Manager row: clicks, uniques, leads, approvals, hold, revenue, cost, profit, ROI, EPC, CR per FB campaign / ad set / ad id (the conversions an ad blocker hides from the Pixel). Grouped by the dimension the Meta source template fills ({{campaign.id}} → ad_campaign, {{adset.id}} → sub2, {{ad.id}} → creative), restricted to the given ids; catalog lists the cabinet's mirrored names at that level for name → id matching.
| Name | Required | Description | Default |
|---|---|---|---|
| ids | No | Facebook ids at that level (digits) | |
| level | Yes | ||
| period | No | Reporting period (default 7days). Use 'custom' with date_from/date_to. | |
| date_to | No | YYYY-MM-DD (with period=custom) | |
| date_from | No | YYYY-MM-DD (with period=custom) | |
| with_series | No | Also return `series`: per-id daily clicks / conversions / revenue / profit for the last 7 days (the row sparkline) | |
| ad_account_id | No | FB ad account id — returns its mirrored names for the level in `catalog` |
get_offerGet offerRead-onlyIdempotentInspect
Full offer detail: destination settings (redirect/action), conversion cap with its current usage (cap_used), languages, notes.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Offer id |
get_pixelGet pixelRead-onlyIdempotentInspect
One pixel with its platform config (secret keys such as access tokens come back as an empty string when set), value settings, group and tags.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Pixel id |
get_push_analyticsGet push analyticsRead-onlyIdempotentInspect
Web-push post-click attribution: conversions (regs = Lead, ftds = Sale, redeps = Upsell) attributed to push clicks (anchor=click, default) or push shows (anchor=show) that preceded them by at most window hours (1–720, default 24; last-touch — the latest anchor of the same subscriber wins). Returns the period summary with rates (reg_rate / ftd_rate per anchor, ctr, epc = revenue per anchor), % changes vs the previous period, a daily series, one row per mailing and the cumulative conversion-lag curve (share of attributed conversions that landed within N hours). A conversion is linked to a subscriber either through a tracker link the notification opened (/c/… — the click carries the push marker) or through the click the subscription was collected on.
| Name | Required | Description | Default |
|---|---|---|---|
| anchor | No | What starts the window: the push click (default) or the push show | |
| period | No | Reporting period (default 7days). Use 'custom' with date_from/date_to. | |
| window | No | Attribution window in hours (default 24) | |
| date_to | No | YYYY-MM-DD (with period=custom) | |
| mailing | No | Only this push mailing id | |
| date_from | No | YYYY-MM-DD (with period=custom) |
get_push_overviewGet push overviewRead-onlyIdempotentInspect
Web-push subscription counters: total, active, new / unsubscribed in the last 7 days.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
get_pwa_retentionGet PWA retentionRead-onlyIdempotentInspect
PWA install cohorts & retention: per-cohort day-N (or week-N) retention matrix, aggregate retention/LTV curve, DAU/WAU/MAU, open rate, CPI/ARPU/ARPPU. Cohorts = PWA installs in the period; opens are followed up to today. Cells for days a cohort has not reached yet are null.
| Name | Required | Description | Default |
|---|---|---|---|
| os | No | ||
| isp | No | ||
| pwa | No | PWA id | |
| city | No | ||
| site | No | Placement / zone id as passed by the ad network | |
| sub1 | No | Filter by sub1 | |
| sub2 | No | Filter by sub2 | |
| sub3 | No | Filter by sub3 | |
| sub4 | No | Filter by sub4 | |
| sub5 | No | Filter by sub5 | |
| sub6 | No | Filter by sub6 | |
| sub7 | No | Filter by sub7 | |
| sub8 | No | Filter by sub8 | |
| sub9 | No | Filter by sub9 | |
| user | No | Workspace member id(s), comma-separated — the campaign owner at click time (needs the "See statistics per team member" permission; ignored otherwise) | |
| offer | No | Offer id | |
| sub10 | No | Filter by sub10 | |
| sub11 | No | Filter by sub11 | |
| sub12 | No | Filter by sub12 | |
| sub13 | No | Filter by sub13 | |
| sub14 | No | Filter by sub14 | |
| sub15 | No | Filter by sub15 | |
| device | No | mobile / tablet / desktop | |
| period | No | Reporting period (default 7days). Use 'custom' with date_from/date_to. | |
| source | No | Traffic source id | |
| browser | No | ||
| country | No | Country ISO alpha-2 code, e.g. ES | |
| date_to | No | YYYY-MM-DD (with period=custom) | |
| horizon | No | Days/weeks after install to return (default 30 / 12, max 90 / 26) | |
| landing | No | Landing id | |
| campaign | No | Campaign ALIAS (the short code, not the numeric id) | |
| creative | No | Creative id from the click URL | |
| language | No | ||
| pwa_tags | No | Comma-separated tag ids — pwas carrying any of them | |
| referrer | No | ||
| utm_term | No | Exact utm_term value from the click URL | |
| date_from | No | YYYY-MM-DD (with period=custom) | |
| pwa_group | No | Pwa group id | |
| smartlink | No | Smartlink id | |
| source_id | No | Source id as passed by the ad network | |
| offer_tags | No | Comma-separated tag ids — offers carrying any of them | |
| utm_medium | No | Exact utm_medium value from the click URL | |
| utm_source | No | Exact utm_source value from the click URL | |
| ad_campaign | No | The ad network's own campaign id (external_campaign_id) | |
| aff_network | No | Affiliate network id | |
| granularity | No | Cohort granularity (default day) | |
| offer_group | No | Offer group id | |
| source_tags | No | Comma-separated tag ids — sources carrying any of them | |
| unique_only | No | Count unique clicks only | |
| utm_content | No | Exact utm_content value from the click URL | |
| exclude_bots | No | Exclude bot traffic (bots are counted by default) | |
| landing_tags | No | Comma-separated tag ids — landings carrying any of them | |
| source_group | No | Source group id | |
| utm_campaign | No | Exact utm_campaign value from the click URL | |
| campaign_tags | No | Comma-separated tag ids — campaigns carrying any of them | |
| landing_group | No | Landing group id | |
| campaign_group | No | Campaign group id | |
| smartlink_tags | No | Comma-separated tag ids — smartlinks carrying any of them | |
| connection_type | No | ||
| smartlink_group | No | Smartlink group id |
get_reportGet reportRead-onlyIdempotentInspect
Drill-down report: group by one or more dimensions; rows come back for the dimension at level (0-based), path carries the parent row keys when drilling deeper. Every row has key, label and the full metric set. compare=true adds the previous period (same length right before; the previous calendar month for this_month/last_month): each row gets prev (its metrics then, null = no traffic then) — date/week/month rows are matched to the same position in the previous window (22 Sep vs 15 Sep for 7days), drill-down paths are translated the same way — plus prev_totals and prev_range. The basis for "what changed / what dropped vs last week" questions.
| Name | Required | Description | Default |
|---|---|---|---|
| os | No | ||
| isp | No | ||
| city | No | ||
| path | No | Parent row keys for levels above `level` | |
| site | No | Placement / zone id as passed by the ad network | |
| sub1 | No | Filter by sub1 | |
| sub2 | No | Filter by sub2 | |
| sub3 | No | Filter by sub3 | |
| sub4 | No | Filter by sub4 | |
| sub5 | No | Filter by sub5 | |
| sub6 | No | Filter by sub6 | |
| sub7 | No | Filter by sub7 | |
| sub8 | No | Filter by sub8 | |
| sub9 | No | Filter by sub9 | |
| user | No | Workspace member id(s), comma-separated — the campaign owner at click time (needs the "See statistics per team member" permission; ignored otherwise) | |
| level | No | Which group_by level to return rows for (default 0) | |
| offer | No | Offer id | |
| sub10 | No | Filter by sub10 | |
| sub11 | No | Filter by sub11 | |
| sub12 | No | Filter by sub12 | |
| sub13 | No | Filter by sub13 | |
| sub14 | No | Filter by sub14 | |
| sub15 | No | Filter by sub15 | |
| device | No | mobile / tablet / desktop | |
| period | No | Reporting period (default 7days). Use 'custom' with date_from/date_to. | |
| source | No | Traffic source id | |
| browser | No | ||
| compare | No | Also return the previous period per row (`prev`) and in total (prev_totals) | |
| country | No | Country ISO alpha-2 code, e.g. ES | |
| date_to | No | YYYY-MM-DD (with period=custom) | |
| landing | No | Landing id | |
| campaign | No | Campaign ALIAS (the short code, not the numeric id) | |
| creative | No | Creative id from the click URL | |
| group_by | Yes | Dimension per drill-down level (`user` = the workspace member owning the campaign; needs the "See statistics per team member" permission) | |
| language | No | ||
| pwa_tags | No | Comma-separated tag ids — pwas carrying any of them | |
| referrer | No | ||
| utm_term | No | Exact utm_term value from the click URL | |
| date_from | No | YYYY-MM-DD (with period=custom) | |
| date_mode | No | Date attribution: 'conversion' (default) counts each conversion on the day its postback arrived; 'click' books it on the date of the click it belongs to | |
| pwa_group | No | Pwa group id | |
| smartlink | No | Smartlink id | |
| source_id | No | Source id as passed by the ad network | |
| offer_tags | No | Comma-separated tag ids — offers carrying any of them | |
| utm_medium | No | Exact utm_medium value from the click URL | |
| utm_source | No | Exact utm_source value from the click URL | |
| ad_campaign | No | The ad network's own campaign id (external_campaign_id) | |
| aff_network | No | Affiliate network id | |
| offer_group | No | Offer group id | |
| source_tags | No | Comma-separated tag ids — sources carrying any of them | |
| unique_only | No | Count unique clicks only | |
| utm_content | No | Exact utm_content value from the click URL | |
| exclude_bots | No | Exclude bot traffic (bots are counted by default) | |
| landing_tags | No | Comma-separated tag ids — landings carrying any of them | |
| source_group | No | Source group id | |
| utm_campaign | No | Exact utm_campaign value from the click URL | |
| campaign_tags | No | Comma-separated tag ids — campaigns carrying any of them | |
| landing_group | No | Landing group id | |
| campaign_group | No | Campaign group id | |
| smartlink_tags | No | Comma-separated tag ids — smartlinks carrying any of them | |
| connection_type | No | ||
| smartlink_group | No | Smartlink group id |
get_site_listGet site listRead-onlyIdempotentInspect
One site list with its full sites / zones / IPs values.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | List id |
get_statisticsGet statisticsRead-onlyIdempotentInspect
Aggregated analytics for a period: clicks, unique clicks, conversions, cost, revenue, profit, ROI and derived metrics. Optionally grouped by one dimension.
| Name | Required | Description | Default |
|---|---|---|---|
| os | No | ||
| isp | No | ||
| city | No | ||
| site | No | Placement / zone id as passed by the ad network | |
| sub1 | No | Filter by sub1 | |
| sub2 | No | Filter by sub2 | |
| sub3 | No | Filter by sub3 | |
| sub4 | No | Filter by sub4 | |
| sub5 | No | Filter by sub5 | |
| sub6 | No | Filter by sub6 | |
| sub7 | No | Filter by sub7 | |
| sub8 | No | Filter by sub8 | |
| sub9 | No | Filter by sub9 | |
| user | No | Workspace member id(s), comma-separated — the campaign owner at click time (needs the "See statistics per team member" permission; ignored otherwise) | |
| offer | No | Offer id | |
| sub10 | No | Filter by sub10 | |
| sub11 | No | Filter by sub11 | |
| sub12 | No | Filter by sub12 | |
| sub13 | No | Filter by sub13 | |
| sub14 | No | Filter by sub14 | |
| sub15 | No | Filter by sub15 | |
| device | No | mobile / tablet / desktop | |
| period | No | Reporting period (default 7days). Use 'custom' with date_from/date_to. | |
| source | No | Traffic source id | |
| browser | No | ||
| country | No | Country ISO alpha-2 code, e.g. ES | |
| date_to | No | YYYY-MM-DD (with period=custom) | |
| landing | No | Landing id | |
| campaign | No | Campaign ALIAS (the short code, not the numeric id) | |
| creative | No | Creative id from the click URL | |
| group_by | No | ||
| language | No | ||
| pwa_tags | No | Comma-separated tag ids — pwas carrying any of them | |
| referrer | No | ||
| utm_term | No | Exact utm_term value from the click URL | |
| date_from | No | YYYY-MM-DD (with period=custom) | |
| date_mode | No | Date attribution: 'conversion' (default) counts each conversion on the day its postback arrived; 'click' books it on the date of the click it belongs to | |
| pwa_group | No | Pwa group id | |
| smartlink | No | Smartlink id | |
| source_id | No | Source id as passed by the ad network | |
| offer_tags | No | Comma-separated tag ids — offers carrying any of them | |
| utm_medium | No | Exact utm_medium value from the click URL | |
| utm_source | No | Exact utm_source value from the click URL | |
| ad_campaign | No | The ad network's own campaign id (external_campaign_id) | |
| aff_network | No | Affiliate network id | |
| offer_group | No | Offer group id | |
| source_tags | No | Comma-separated tag ids — sources carrying any of them | |
| unique_only | No | Count unique clicks only | |
| utm_content | No | Exact utm_content value from the click URL | |
| exclude_bots | No | Exclude bot traffic (bots are counted by default) | |
| landing_tags | No | Comma-separated tag ids — landings carrying any of them | |
| source_group | No | Source group id | |
| utm_campaign | No | Exact utm_campaign value from the click URL | |
| campaign_tags | No | Comma-separated tag ids — campaigns carrying any of them | |
| landing_group | No | Landing group id | |
| campaign_group | No | Campaign group id | |
| smartlink_tags | No | Comma-separated tag ids — smartlinks carrying any of them | |
| connection_type | No | ||
| smartlink_group | No | Smartlink group id |
get_subscriptionGet subscriptionRead-onlyIdempotentInspect
The organization's plan, seats, billing period and expiry.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
get_traffic_sourceGet traffic sourceRead-onlyIdempotentInspect
One traffic source with its parameter mapping (which incoming query params carry source_id, zone_id, cost, sub1…), postback settings and postback URLs. The API key is never returned (has_api_key says whether one is stored).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Traffic source id |
import_conversionsImport conversionsInspect
Import up to 100 conversions by click_id, exactly as if the affiliate network had postbacked them. transaction_id is the idempotency key per click + type (the same one again reports 'duplicate', a new one is a distinct conversion even for a one-per-click type). Repeats without it follow the type's duplicate policy (Tracker → Conversion types): book again, update the existing conversion, or book as another type (a second sale as upsell — the result then carries reclassified_from). Per-item results: created / updated / duplicate / blocked / not_found / error.
| Name | Required | Description | Default |
|---|---|---|---|
| conversions | Yes | ||
| fire_pixels | No | Also fire pixel events (default true; off for backfills) | |
| fire_postbacks | No | Also fire outgoing postbacks (default true; off for backfills) |
import_google_costsImport Google costsDestructiveInspect
Book Google Ads daily spend into click costs — the rows the Torvex Google Ads Script reads inside the advertiser's own account (one row per day × Google campaign × ad group). Google campaigns are matched to tracker campaigns by the {campaignid} ValueTrack parameter carried on the clicks themselves (a Google campaign feeding several tracker campaigns is split by click share), with the '(TID: N)' campaign-name marker as fallback; unmatched ones are reported back. Non-USD accounts are converted at the current rate; a request must carry every row of a Google campaign for the days it covers (a day is set, not incremented).
| Name | Required | Description | Default |
|---|---|---|---|
| rows | Yes | ||
| currency | No | Account billing currency; converted to USD at the current rate (code bad_currency when the rate is unknown) | |
| timezone | No | IANA timezone of the Google Ads account (its report days are in it); missing → workspace timezone | |
| customer_id | No | Google Ads customer id (dashes optional) — for the audit log only |
import_meta_costsImport Meta costsDestructiveInspect
Book Facebook (Meta) daily spend into click costs WITHOUT a Graph token — the rows the Torvex browser extension reads from a logged-in Ads Manager session (one row per day × FB campaign × ad set). FB campaigns are matched to tracker campaigns via launches, manual links or the '(TID: N)' name marker; unmatched ones are reported back. USD cabinets only; a request must carry every row of a FB campaign for the days it covers (a day is set, not incremented).
| Name | Required | Description | Default |
|---|---|---|---|
| rows | Yes | ||
| currency | No | Cabinet currency; anything but USD is rejected (code bad_currency) | |
| timezone | No | IANA timezone of the ad account (FB report days are in it); missing → workspace timezone | |
| ad_account_id | No | FB ad account id (with or without the act_ prefix) — for the audit log only |
link_meta_campaignLink Meta campaignIdempotentInspect
Link one Facebook campaign to an existing tracker campaign (manual or meta type) under the tokenless profile of the logged-in FB user — the cost sync books its spend from the next run, the Ads Manager overlay and the status mirror pick it up at once. Idempotent per (campaign, FB id).
| Name | Required | Description | Default |
|---|---|---|---|
| fb_user | Yes | ||
| campaign_id | Yes | Tracker campaign id | |
| ad_account_id | Yes | ||
| fb_campaign_id | Yes | ||
| fb_campaign_name | No | Name snapshot kept on the link |
list_aff_networksList affiliate networksRead-onlyIdempotentInspect
List affiliate networks (id, name, offer count).
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (default 1) | |
| search | No | Filter by name | |
| per_page | No | Rows per page (default 50, max 100) |
list_audit_logList audit logRead-onlyIdempotentInspect
Workspace audit log: who changed what.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (default 1) | |
| user | No | Acting user id | |
| action | No | e.g. offer.created | |
| search | No | Filter by name | |
| per_page | No | Rows per page (default 50, max 100) | |
| resource_type | No |
list_auto_rule_runsList auto rule runsRead-onlyIdempotentInspect
Auto-rule firing log, newest first: every run that changed something (status applied / rolled_back) or had a network write refused (failed) — the condition verdicts behind it, the placements / bids / status it touched and whether it can still be rolled back (rollback itself is panel-only). "Conditions not met" runs are not logged; the rule keeps each attached campaign's last result (last_result) instead.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (default 1) | |
| search | No | Filter by name | |
| status | No | ||
| rule_id | No | Only this auto rule | |
| per_page | No | Rows per page (default 50, max 100) | |
| campaign_id | No | Only this campaign (numeric id) |
list_auto_rulesList auto rulesRead-onlyIdempotentInspect
The auto-rule library (scheduled campaign-optimization rules).
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (default 1) | |
| search | No | Filter by name | |
| per_page | No | Rows per page (default 50, max 100) |
list_campaignsList campaignsRead-onlyIdempotentInspect
List tracker campaigns (paginated, newest first). Each row has id, name, alias, type, status, traffic source, domain and click URL.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (default 1) | |
| search | No | Match name or alias | |
| status | No | ||
| per_page | No | Rows per page (default 50, max 100) |
list_campaign_setupsList campaign setupsRead-onlyIdempotentInspect
Saved network-upload presets (campaign setups).
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (default 1) | |
| search | No | Filter by name | |
| per_page | No | Rows per page (default 50, max 100) |
list_clicksList clicksRead-onlyIdempotentInspect
Raw click rows, newest first, cursor-paginated: each response carries next_cursor for the following page (null on the last page). Bots included unless exclude_bots.
| Name | Required | Description | Default |
|---|---|---|---|
| os | No | ||
| isp | No | ||
| city | No | ||
| site | No | Placement / zone id as passed by the ad network | |
| sub1 | No | Filter by sub1 | |
| sub2 | No | Filter by sub2 | |
| sub3 | No | Filter by sub3 | |
| sub4 | No | Filter by sub4 | |
| sub5 | No | Filter by sub5 | |
| sub6 | No | Filter by sub6 | |
| sub7 | No | Filter by sub7 | |
| sub8 | No | Filter by sub8 | |
| sub9 | No | Filter by sub9 | |
| user | No | Workspace member id(s), comma-separated — the campaign owner at click time (needs the "See statistics per team member" permission; ignored otherwise) | |
| limit | No | Default 100 | |
| offer | No | Offer id | |
| sub10 | No | Filter by sub10 | |
| sub11 | No | Filter by sub11 | |
| sub12 | No | Filter by sub12 | |
| sub13 | No | Filter by sub13 | |
| sub14 | No | Filter by sub14 | |
| sub15 | No | Filter by sub15 | |
| cursor | No | next_cursor from the previous page | |
| device | No | mobile / tablet / desktop | |
| period | No | Reporting period (default 7days). Use 'custom' with date_from/date_to. | |
| source | No | Traffic source id | |
| browser | No | ||
| country | No | Country ISO alpha-2 code, e.g. ES | |
| date_to | No | YYYY-MM-DD (with period=custom) | |
| landing | No | Landing id | |
| campaign | No | Campaign ALIAS (the short code, not the numeric id) | |
| click_id | No | Fetch one click exactly | |
| creative | No | Creative id from the click URL | |
| language | No | ||
| pwa_tags | No | Comma-separated tag ids — pwas carrying any of them | |
| referrer | No | ||
| utm_term | No | Exact utm_term value from the click URL | |
| date_from | No | YYYY-MM-DD (with period=custom) | |
| pwa_group | No | Pwa group id | |
| smartlink | No | Smartlink id | |
| source_id | No | Source id as passed by the ad network | |
| lp_clicked | No | Only landing-page exit clicks | |
| offer_tags | No | Comma-separated tag ids — offers carrying any of them | |
| utm_medium | No | Exact utm_medium value from the click URL | |
| utm_source | No | Exact utm_source value from the click URL | |
| ad_campaign | No | The ad network's own campaign id (external_campaign_id) | |
| aff_network | No | Affiliate network id | |
| offer_group | No | Offer group id | |
| source_tags | No | Comma-separated tag ids — sources carrying any of them | |
| unique_only | No | Count unique clicks only | |
| utm_content | No | Exact utm_content value from the click URL | |
| exclude_bots | No | Exclude bot traffic (bots are counted by default) | |
| landing_tags | No | Comma-separated tag ids — landings carrying any of them | |
| source_group | No | Source group id | |
| utm_campaign | No | Exact utm_campaign value from the click URL | |
| campaign_tags | No | Comma-separated tag ids — campaigns carrying any of them | |
| landing_group | No | Landing group id | |
| campaign_group | No | Campaign group id | |
| smartlink_tags | No | Comma-separated tag ids — smartlinks carrying any of them | |
| connection_type | No | ||
| smartlink_group | No | Smartlink group id |
list_conversionsList conversionsRead-onlyIdempotentInspect
Raw conversion rows (leads, sales, rejects, upsells), newest first, cursor-paginated (next_cursor, null on the last page).
| Name | Required | Description | Default |
|---|---|---|---|
| os | No | ||
| isp | No | ||
| city | No | ||
| site | No | Placement / zone id as passed by the ad network | |
| sub1 | No | Filter by sub1 | |
| sub2 | No | Filter by sub2 | |
| sub3 | No | Filter by sub3 | |
| sub4 | No | Filter by sub4 | |
| sub5 | No | Filter by sub5 | |
| sub6 | No | Filter by sub6 | |
| sub7 | No | Filter by sub7 | |
| sub8 | No | Filter by sub8 | |
| sub9 | No | Filter by sub9 | |
| user | No | Workspace member id(s), comma-separated — the campaign owner at click time (needs the "See statistics per team member" permission; ignored otherwise) | |
| event | No | ||
| limit | No | ||
| offer | No | Offer id | |
| sub10 | No | Filter by sub10 | |
| sub11 | No | Filter by sub11 | |
| sub12 | No | Filter by sub12 | |
| sub13 | No | Filter by sub13 | |
| sub14 | No | Filter by sub14 | |
| sub15 | No | Filter by sub15 | |
| cursor | No | ||
| device | No | mobile / tablet / desktop | |
| period | No | Reporting period (default 7days). Use 'custom' with date_from/date_to. | |
| source | No | Traffic source id | |
| status | No | ||
| browser | No | ||
| country | No | Country ISO alpha-2 code, e.g. ES | |
| date_to | No | YYYY-MM-DD (with period=custom) | |
| landing | No | Landing id | |
| campaign | No | Campaign ALIAS (the short code, not the numeric id) | |
| click_id | No | ||
| creative | No | Creative id from the click URL | |
| language | No | ||
| pwa_tags | No | Comma-separated tag ids — pwas carrying any of them | |
| referrer | No | ||
| utm_term | No | Exact utm_term value from the click URL | |
| date_from | No | YYYY-MM-DD (with period=custom) | |
| pwa_group | No | Pwa group id | |
| smartlink | No | Smartlink id | |
| source_id | No | Source id as passed by the ad network | |
| offer_tags | No | Comma-separated tag ids — offers carrying any of them | |
| utm_medium | No | Exact utm_medium value from the click URL | |
| utm_source | No | Exact utm_source value from the click URL | |
| ad_campaign | No | The ad network's own campaign id (external_campaign_id) | |
| aff_network | No | Affiliate network id | |
| offer_group | No | Offer group id | |
| source_tags | No | Comma-separated tag ids — sources carrying any of them | |
| unique_only | No | Count unique clicks only | |
| utm_content | No | Exact utm_content value from the click URL | |
| exclude_bots | No | Exclude bot traffic (bots are counted by default) | |
| landing_tags | No | Comma-separated tag ids — landings carrying any of them | |
| source_group | No | Source group id | |
| utm_campaign | No | Exact utm_campaign value from the click URL | |
| campaign_tags | No | Comma-separated tag ids — campaigns carrying any of them | |
| landing_group | No | Landing group id | |
| campaign_group | No | Campaign group id | |
| smartlink_tags | No | Comma-separated tag ids — smartlinks carrying any of them | |
| connection_type | No | ||
| smartlink_group | No | Smartlink group id |
list_countriesList countriesRead-onlyIdempotentInspect
Country ISO codes and names (for offer targeting).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
list_creativesList creativesRead-onlyIdempotentInspect
Creatives Library entries (paginated). Rows include format, folder, media count.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (default 1) | |
| folder | No | Folder id | |
| format | No | ||
| search | No | Filter by name | |
| status | No | ||
| per_page | No | Rows per page (default 50, max 100) |
list_currenciesList currenciesRead-onlyIdempotentInspect
Active currencies with their USD rates. All stored amounts are USD.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
list_dns_providersList DNS providersRead-onlyIdempotentInspect
DNS providers (names only; API keys are never returned).
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (default 1) | |
| search | No | Filter by name | |
| per_page | No | Rows per page (default 50, max 100) |
list_domain_providersList domain providersRead-onlyIdempotentInspect
Domain registrars (names only; API keys are never returned).
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (default 1) | |
| search | No | Filter by name | |
| per_page | No | Rows per page (default 50, max 100) |
list_domainsList domainsRead-onlyIdempotentInspect
List tracking domains with health state (problem: gsb_blocked / no_dns / unreachable / ssl_error / null).
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (default 1) | |
| type | No | ||
| search | No | Filter by name | |
| healthy | No | Only domains safe to run traffic on | |
| per_page | No | Rows per page (default 50, max 100) |
list_dsp_requestsList DSP requestsRead-onlyIdempotentInspect
Inbound DSP bid request log.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Rows per page (default 100, max 500) | |
| dsp_id | No | ||
| offset | No | ||
| period | No | Reporting period (default 7days). Use 'custom' with date_from/date_to. | |
| status | No | ||
| country | No | ||
| date_to | No | YYYY-MM-DD (with period=custom) | |
| date_from | No | YYYY-MM-DD (with period=custom) |
list_dspsList dspsRead-onlyIdempotentInspect
DSP configuration (inbound API keys are never returned).
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (default 1) | |
| search | No | Filter by name | |
| per_page | No | Rows per page (default 50, max 100) |
list_flow_schemesList flow schemesRead-onlyIdempotentInspect
Flow schemes (reusable routing trees).
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (default 1) | |
| search | No | Filter by name | |
| per_page | No | Rows per page (default 50, max 100) |
list_game_packsList game packsRead-onlyIdempotentInspect
Game packs (playable wheel / slot / crash templates) available to the workspace: id, slug, name, collection, game_type, whether it is the workspace's own upload, the editable settings schema (key, label, default, group, type, options) and the preview image. A pack id is what create_landing with type game takes.
| Name | Required | Description | Default |
|---|---|---|---|
| search | No | Filter by name | |
| game_type | No | ||
| collection | No | Exact collection name |
list_groupsList groupsRead-onlyIdempotentInspect
Entity groups (per entity type).
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (default 1) | |
| type | No | Entity type key, e.g. campaigns, offers, landings | |
| search | No | Filter by name | |
| per_page | No | Rows per page (default 50, max 100) |
list_landingsList landingsRead-onlyIdempotentInspect
List landings (paginated). Rows include type (url / uploaded / AI-generated with its generation status / game) and language.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (default 1) | |
| type | No | ||
| search | No | Filter by name | |
| status | No | ||
| per_page | No | Rows per page (default 50, max 100) |
list_lead_typesList lead typesRead-onlyIdempotentInspect
Per-network pixel lead-type values (e.g. facebook Purchase, kwai EVENT_CHECKOUT).
| Name | Required | Description | Default |
|---|---|---|---|
| network | No | e.g. facebook, tiktok, kwai |
list_meta_accountsList Meta accountsRead-onlyIdempotentInspect
Meta (Facebook) accounts with health state and mirrored ad accounts (balances, spend). Tokens are never returned.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (default 1) | |
| search | No | Filter by name | |
| per_page | No | Rows per page (default 50, max 100) |
list_meta_agenciesList Meta agenciesRead-onlyIdempotentInspect
The workspace's Meta agencies — id, name, commission percent, active flag — the picker behind register_meta_cabinet's agency_id (what the Torvex browser extension shows in its settings after the workspace). Inactive agencies are flagged, not hidden, so a saved pick keeps resolving.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
list_meta_commentsList Meta commentsRead-onlyIdempotentInspect
Mirrored comments on active Meta ads.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (default 1) | |
| search | No | Search in comment text | |
| account | No | Meta account id | |
| per_page | No | Rows per page (default 50, max 100) | |
| platform | No | ||
| hidden_only | No |
list_meta_launchesList Meta launchesRead-onlyIdempotentInspect
Meta campaign launch history with status, result and errors.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (default 1) | |
| search | No | Filter by name | |
| status | No | ||
| account | No | Meta account id | |
| per_page | No | Rows per page (default 50, max 100) |
list_meta_linksList Meta linksInspect
What the given Facebook campaign ids are linked to in the tracker (campaign_meta_links — the campaign editor's Facebook picker rows) plus the manual / meta tracker campaigns a link can point at (q narrows by name or alias). What the Torvex browser extension shows on every Ads Manager campaign row; an 'unmatched' FB campaign in the cost sync is exactly a missing link.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Filter the tracker campaigns by name / alias | |
| ids | No | Facebook campaign ids |
list_meta_rulesList Meta rulesRead-onlyIdempotentInspect
Facebook auto-rules (conditions, actions, schedule).
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (default 1) | |
| search | No | Filter by name | |
| per_page | No | Rows per page (default 50, max 100) |
list_notificationsList notificationsRead-onlyIdempotentInspect
Bell notifications (domain alerts, offer caps, Meta account health, billing). meta.unread carries the badge count.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (default 1) | |
| search | No | Filter by name | |
| per_page | No | Rows per page (default 50, max 100) | |
| unread_only | No |
list_offersList offersRead-onlyIdempotentInspect
List offers (paginated). Rows include affiliate network, URL, payout, countries and the conversion cap: cap_enabled, cap_period (day/week/month/total, counted in the workspace timezone), cap_limit, cap_used (conversions already counted this period; null without a cap) and cap_alt_offer_id (the fallback offer once the cap is hit).
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (default 1) | |
| search | No | Filter by name | |
| status | No | ||
| country | No | ISO alpha-2 code | |
| network | No | Affiliate network id | |
| per_page | No | Rows per page (default 50, max 100) |
list_outgoing_postbacksList outgoing postbacksRead-onlyIdempotentInspect
Outgoing postback attempts to traffic-source / campaign postback URLs (HTTP code, attempt number, error).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Rows per page (default 100, max 500) | |
| offset | No | ||
| period | No | Reporting period (default 7days). Use 'custom' with date_from/date_to. | |
| status | No | ||
| date_to | No | YYYY-MM-DD (with period=custom) | |
| campaign | No | Campaign alias | |
| click_id | No | ||
| date_from | No | YYYY-MM-DD (with period=custom) |
list_pixel_eventsList pixel eventsRead-onlyIdempotentInspect
Pixel fire attempts (Facebook CAPI, TikTok, GA4, …).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Rows per page (default 100, max 500) | |
| offset | No | ||
| period | No | Reporting period (default 7days). Use 'custom' with date_from/date_to. | |
| status | No | ||
| date_to | No | YYYY-MM-DD (with period=custom) | |
| campaign | No | Campaign alias | |
| click_id | No | ||
| platform | No | ||
| date_from | No | YYYY-MM-DD (with period=custom) |
list_pixelsList pixelsRead-onlyIdempotentInspect
Pixel catalog (id, name, platform). Pixel credentials are never returned.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (default 1) | |
| search | No | Filter by name | |
| per_page | No | Rows per page (default 50, max 100) |
list_postbacksList postbacksRead-onlyIdempotentInspect
Incoming postback log: what the affiliate network actually sent (success / error / duplicate), with the booked USD payout, the original amount + currency, any error, and the full request URL as called (url: domain, path, parameters).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Rows per page (default 100, max 500) | |
| offset | No | ||
| period | No | Reporting period (default 7days). Use 'custom' with date_from/date_to. | |
| status | No | ||
| date_to | No | YYYY-MM-DD (with period=custom) | |
| campaign | No | Campaign alias | |
| click_id | No | ||
| date_from | No | YYYY-MM-DD (with period=custom) |
list_proxiesList proxiesRead-onlyIdempotentInspect
Proxies (passwords are never returned).
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (default 1) | |
| search | No | Filter by name | |
| per_page | No | Rows per page (default 50, max 100) |
list_push_mailingsList push mailingsRead-onlyIdempotentInspect
Push mailings with delivery counters (targets, sent, shown, clicked, revenue).
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (default 1) | |
| type | No | ||
| search | No | Filter by name | |
| status | No | ||
| per_page | No | Rows per page (default 50, max 100) |
list_pwaList PWARead-onlyIdempotentInspect
PWA app landings.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (default 1) | |
| search | No | Filter by name | |
| per_page | No | Rows per page (default 50, max 100) |
list_root_filesList root filesRead-onlyIdempotentInspect
Root files served on tracking domains.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (default 1) | |
| search | No | Filter by name | |
| per_page | No | Rows per page (default 50, max 100) |
list_site_listsList site listsRead-onlyIdempotentInspect
Site lists (placement black/white lists).
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (default 1) | |
| search | No | Filter by name | |
| per_page | No | Rows per page (default 50, max 100) |
list_smartlinksList smartlinksRead-onlyIdempotentInspect
Smartlinks with rotation settings.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (default 1) | |
| search | No | Filter by name | |
| per_page | No | Rows per page (default 50, max 100) |
list_ssp_auctionsList SSP auctionsRead-onlyIdempotentInspect
SSP auctions with their ordered feeds.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (default 1) | |
| search | No | Filter by name | |
| per_page | No | Rows per page (default 50, max 100) |
list_ssp_bidsList SSP bidsRead-onlyIdempotentInspect
SSP auction bid log — one row per feed response (win / lose / below_min_price / no_bid / timeout / error).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Rows per page (default 100, max 500) | |
| offset | No | ||
| period | No | Reporting period (default 7days). Use 'custom' with date_from/date_to. | |
| status | No | ||
| country | No | ||
| date_to | No | YYYY-MM-DD (with period=custom) | |
| feed_id | No | ||
| date_from | No | YYYY-MM-DD (with period=custom) | |
| auction_id | No |
list_ssp_feedsList SSP feedsRead-onlyIdempotentInspect
SSP feeds with targeting and economics (discreps, min prices).
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (default 1) | |
| search | No | Filter by name | |
| per_page | No | Rows per page (default 50, max 100) |
list_tagsList tagsRead-onlyIdempotentInspect
The workspace-wide tag pool.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (default 1) | |
| search | No | Filter by name | |
| per_page | No | Rows per page (default 50, max 100) |
list_traffic_sourcesList traffic sourcesRead-onlyIdempotentInspect
List traffic sources (id, name, provider).
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (default 1) | |
| search | No | Filter by name | |
| per_page | No | Rows per page (default 50, max 100) |
list_traffic_source_templatesList traffic source templatesRead-onlyIdempotentInspect
Platform templates for creating a traffic source (Push.House, PropellerAds, Meta, TikTok, …): id, provider, whether it has an API integration and the default parameter mapping. Pass a template id as template_id to create_traffic_source.
| Name | Required | Description | Default |
|---|---|---|---|
| search | No | Filter by name |
list_transactionsList transactionsRead-onlyIdempotentInspect
Wallet transaction history.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (default 1) | |
| type | No | Transaction type filter | |
| search | No | Filter by name | |
| per_page | No | Rows per page (default 50, max 100) |
list_whitepagesList whitepagesRead-onlyIdempotentInspect
Whitepages, incl. AI generation status.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (default 1) | |
| type | No | ||
| search | No | Filter by name | |
| per_page | No | Rows per page (default 50, max 100) |
list_workspace_invitationsList workspace invitationsRead-onlyIdempotentInspect
Workspace invitations with pending / accepted state.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
list_workspace_membersList workspace membersRead-onlyIdempotentInspect
Current workspace members with their role.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
list_workspace_rolesList workspace rolesRead-onlyIdempotentInspect
Workspace roles with their permission lists and per-section resource access (level full/read/own/none + allow/deny entity ids).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
preview_auto_rulePreview auto ruleRead-onlyIdempotentInspect
Dry run of an auto rule against one campaign, right now: the current metric values for the rule's window, each condition's pass/fail, the placements a zone action would touch and what the action WOULD do. Changes nothing; shows whether a rule would fire before it is attached and why it did / didn't fire.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Auto-rule id | |
| campaign_id | Yes |
preview_segment_costsPreview segment costsRead-onlyIdempotentInspect
Preview a segment cost update WITHOUT changing anything: how many clicks would carry the cost, how many days they span and what the segment currently books. The segment = period + any analytics filters (campaign alias(es) comma-separated, offer, site/zone, source_id, creative, subs, geo, groups, tags, …). The dry run of a segment cost update.
| Name | Required | Description | Default |
|---|---|---|---|
| os | No | ||
| isp | No | ||
| city | No | ||
| site | No | Placement / zone id as passed by the ad network | |
| sub1 | No | Filter by sub1 | |
| sub2 | No | Filter by sub2 | |
| sub3 | No | Filter by sub3 | |
| sub4 | No | Filter by sub4 | |
| sub5 | No | Filter by sub5 | |
| sub6 | No | Filter by sub6 | |
| sub7 | No | Filter by sub7 | |
| sub8 | No | Filter by sub8 | |
| sub9 | No | Filter by sub9 | |
| user | No | Workspace member id(s), comma-separated — the campaign owner at click time (needs the "See statistics per team member" permission; ignored otherwise) | |
| offer | No | Offer id | |
| sub10 | No | Filter by sub10 | |
| sub11 | No | Filter by sub11 | |
| sub12 | No | Filter by sub12 | |
| sub13 | No | Filter by sub13 | |
| sub14 | No | Filter by sub14 | |
| sub15 | No | Filter by sub15 | |
| device | No | mobile / tablet / desktop | |
| period | No | Reporting period (default 7days). Use 'custom' with date_from/date_to. | |
| source | No | Traffic source id | |
| browser | No | ||
| country | No | Country ISO alpha-2 code, e.g. ES | |
| date_to | No | YYYY-MM-DD (with period=custom) | |
| landing | No | Landing id | |
| campaign | No | Campaign ALIAS(es), comma-separated for several | |
| creative | No | Creative id from the click URL | |
| language | No | ||
| pwa_tags | No | Comma-separated tag ids — pwas carrying any of them | |
| referrer | No | ||
| utm_term | No | Exact utm_term value from the click URL | |
| date_from | No | YYYY-MM-DD (with period=custom) | |
| pwa_group | No | Pwa group id | |
| smartlink | No | Smartlink id | |
| source_id | No | Source id as passed by the ad network | |
| offer_tags | No | Comma-separated tag ids — offers carrying any of them | |
| utm_medium | No | Exact utm_medium value from the click URL | |
| utm_source | No | Exact utm_source value from the click URL | |
| ad_campaign | No | The ad network's own campaign id (external_campaign_id) | |
| aff_network | No | Affiliate network id | |
| offer_group | No | Offer group id | |
| source_tags | No | Comma-separated tag ids — sources carrying any of them | |
| unique_only | No | Only unique clicks carry cost; repeat visits in the segment are zeroed by a set | |
| utm_content | No | Exact utm_content value from the click URL | |
| include_bots | No | Let bot clicks carry cost too (default false — networks never bill crawlers) | |
| landing_tags | No | Comma-separated tag ids — landings carrying any of them | |
| source_group | No | Source group id | |
| utm_campaign | No | Exact utm_campaign value from the click URL | |
| campaign_tags | No | Comma-separated tag ids — campaigns carrying any of them | |
| landing_group | No | Landing group id | |
| campaign_group | No | Campaign group id | |
| smartlink_tags | No | Comma-separated tag ids — smartlinks carrying any of them | |
| connection_type | No | ||
| smartlink_group | No | Smartlink group id |
reconcile_conversionsReconcile conversionsDestructiveIdempotentInspect
Edit already-registered conversions: approve/reject and adjust payout after reconciling with the affiliate network. Addressed by click_id + event; applied asynchronously (queued). Up to 100 per call.
| Name | Required | Description | Default |
|---|---|---|---|
| updates | Yes |
register_meta_cabinetRegister Meta cabinetInspect
Register (or refresh) a Facebook ad account's campaign catalog WITHOUT a Graph token — id, name, status, objective, daily / lifetime budget — what the Torvex browser extension reads from a logged-in Ads Manager session before posting costs. Lands under a tokenless Meta profile keyed by the FB user id (created on first call), so the campaign editor's Facebook picker can link these FB campaigns to tracker campaigns and import_meta_costs then matches them. The campaign list is the cabinet's complete list: campaigns missing from it are dropped from the mirror unless partial is set. Adsets of the same cabinet go through report_meta_adsets, ads through report_meta_ads.
| Name | Required | Description | Default |
|---|---|---|---|
| pages | No | The FB user's pages (/me/accounts) — the launch wizard's page picker for this profile | |
| pixels | No | The cabinet's pixels (/act_X/adspixels) — complete list, the wizard's pixel picker | |
| fb_user | Yes | ||
| partial | No | true on every chunk but the last when one cabinet is split over several requests (no pruning) | |
| agency_id | No | Meta agency (list_meta_agencies) whose commission the profile's cabinets pay — set on the profile before the costs of the same run, so the first sync books spend with the markup; omit / null to keep what Meta → Accounts set | |
| campaigns | Yes | ||
| ad_account | Yes |
report_meta_accessReport Meta accessInspect
Report the access picture of every Business Manager a logged-in FB user belongs to WITHOUT a Graph token — the BM's people (role, two-factor status, pending invites) and every ad account / page / pixel's assigned users and partner businesses (what the Torvex browser extension sends once a day). Lands under the same tokenless Meta profile as register_meta_cabinet; Torvex derives the findings (admin without 2FA, stale invite, partner access, access outside the BM, broad rights) and raises a meta_access_risk alert on a NEW high-risk finding of a profile audited before. The payload is the whole picture — grants missing from it are removed.
| Name | Required | Description | Default |
|---|---|---|---|
| fb_user | No | ||
| warnings | No | Edges the session could not read | |
| businesses | No |
report_meta_adsReport Meta adsInspect
Mirror one Facebook ad account's ads WITHOUT a Graph token — id, status, effective status, Meta's review feedback (why an ad was rejected), creative thumbnail — what the Torvex browser extension reads from a logged-in Ads Manager session on its health timer. Lands under the same tokenless Meta profile as register_meta_cabinet; an ad already mirrored that flips into DISAPPROVED / WITH_ISSUES raises an 'ad rejected' notice to the profile owner. The list is the cabinet's complete live-ad list: ads missing from a non-partial report are dropped from the mirror.
| Name | Required | Description | Default |
|---|---|---|---|
| ads | Yes | ||
| fb_user | Yes | ||
| partial | No | true on every chunk but the last when one cabinet is split over several requests (no pruning) | |
| ad_account_id | Yes | FB ad account id (with or without act_) |
report_meta_adsetsReport Meta adsetsInspect
Mirror one Facebook ad account's adsets WITHOUT a Graph token — id, campaign id, name, status, effective status, daily / lifetime budget — what the Torvex browser extension reads from a logged-in Ads Manager session on every cost sync. Lands under the same tokenless Meta profile as register_meta_cabinet, completing the campaign → adset → ad tree on the Meta pages for cabinets without any token. The list is the cabinet's complete adset list: adsets missing from a non-partial report are dropped from the mirror.
| Name | Required | Description | Default |
|---|---|---|---|
| adsets | Yes | ||
| fb_user | Yes | ||
| partial | No | true on every chunk but the last when one cabinet is split over several requests (no pruning) | |
| ad_account_id | Yes | FB ad account id (with or without act_) |
report_meta_ad_statsReport Meta ad statsInspect
Report one Facebook ad account's AD-level daily delivery WITHOUT a Graph token — impressions, link clicks, spend and reach per ad and day, what the Torvex browser extension reads from a logged-in Ads Manager session on every cost sync. Rows land in the same per-ad store the Graph cost sync fills (ad_daily_stats), so the Creatives library stats and the Meta → Ads burnout check work for cabinets without a token (frequency derived from reach). A (ad, day) is set to the latest report; spend in the cabinet currency.
| Name | Required | Description | Default |
|---|---|---|---|
| rows | Yes | ||
| fb_user | Yes | ||
| ad_account_id | Yes | FB ad account id (with or without act_) |
report_meta_cabinet_healthReport Meta cabinet healthInspect
Report the health of every Facebook ad account a logged-in FB user can see WITHOUT a Graph token — status, disable reason, spend cap and amount spent, billing threshold, unsettled balance, daily spend limit, prepay/postpay, country, currency, timezone, payment method and Business Manager (what the Torvex browser extension sends on its health timer). Lands in the same tokenless Meta profile as register_meta_cabinet; a block, billing failure, spend cap crossing 90 %, recovery or payment-method change on a cabinet already known raises a cabinet alert to the profile owner. Money in the cabinet's currency, whole units; cabinets missing from the payload are left untouched.
| Name | Required | Description | Default |
|---|---|---|---|
| fb_user | Yes | ||
| profile | No | The FB user's own advertising restriction read off the Account Quality page (not per cabinet) | |
| ad_accounts | Yes |
report_meta_commentsReport Meta commentsInspect
Report the comments on the posts behind one Facebook ad account's ACTIVE ads WITHOUT a Graph token — FB dark-post comments and Instagram media comments of the last 7 days, what the Torvex browser extension reads from a logged-in Ads Manager session on its comments timer. Rows land in the Meta → Comments feed under the tokenless profile of register_meta_cabinet; the workspace's auto-moderation rules (stop words, links, phones — hide / delete / reply) run on the new ones and, the profile having no token, their actions are queued for the extension (claim_meta_commands). pages = the FB user's own pages, so the brand's own comments are never moderated.
| Name | Required | Description | Default |
|---|---|---|---|
| pages | No | The FB user's pages (/me/accounts) — own-author exclusion | |
| fb_user | Yes | ||
| comments | Yes | ||
| ad_account_id | Yes | FB ad account id (with or without act_) |
report_meta_statsReport Meta statsInspect
Report one Facebook ad account's campaign-level daily metrics WITHOUT a Graph token — impressions, reach, clicks, link clicks, spend and the raw actions list per FB campaign and day, what the Torvex browser extension reads from a logged-in Ads Manager session on every cost sync. Lands under the same tokenless Meta profile as register_meta_cabinet; the campaign list's network cells (clicks, leads, impressions, reach, CTR, CPM, frequency, results) read them for tracker campaigns linked to those FB campaigns. A (campaign, day) is set to the latest report; spend here is informational — click costs come from import_meta_costs.
| Name | Required | Description | Default |
|---|---|---|---|
| rows | Yes | ||
| fb_user | Yes | ||
| currency | No | Cabinet billing currency of the spend values (informational) | |
| ad_account_id | Yes | FB ad account id (with or without act_) |
searchSearch workspaceRead-onlyIdempotentInspect
Global workspace search: resolve a name fragment to typed entities (campaigns, offers, landings, smartlinks, pixels, sources, networks, domains) — up to 5 matches per type.
| Name | Required | Description | Default |
|---|---|---|---|
| q | Yes | Search query (2+ characters) |
set_campaign_costsSet campaign costsDestructiveInspect
Set (or add to) a campaign's total traffic cost per day — for sources without an API integration. The day total is spread across that day's clicks so ROI/CPC/profit become real. Applied asynchronously (result 'queued'). Up to 31 days per call, 90-day editable window.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | 'set' replaces the day total (default), 'add' increments it | |
| items | Yes | ||
| campaign_id | Yes |
set_campaigns_status_bulkSet status of several campaignsDestructiveIdempotentInspect
Start or pause up to 100 campaigns at once. Per-id results: an id from another workspace reports not_found without failing the rest.
| Name | Required | Description | Default |
|---|---|---|---|
| ids | Yes | ||
| status | Yes |
set_campaign_statusSet campaign statusDestructiveIdempotentInspect
Start or pause a campaign. API-type campaigns are also mirrored to the ad network (best-effort; network issues come back in warnings while the local change stands).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Campaign id | |
| status | Yes |
set_segment_costsSet segment costsDestructiveInspect
Book a known spend onto a traffic SEGMENT — period + any analytics filters, across campaigns ("I spent $500 on offer 3 / zone 1234 last week, lay it out"). 'set' makes the segment's total cost exactly amount (other clicks in the segment zeroed), 'add' puts it on top. 'even' spreads per click; 'proportional' scales each click's current cost so an ad-network sync's shape survives and only the total moves. Bots never carry cost unless include_bots; unique_only restricts carriers to unique clicks; landing-exit clicks never carry cost. Applied asynchronously (result 'queued'), 90-day editable window. Works like per-campaign cost booking, for arbitrary segments.
| Name | Required | Description | Default |
|---|---|---|---|
| os | No | ||
| isp | No | ||
| city | No | ||
| mode | No | 'set' (default) makes the segment total exactly `amount`; 'add' increments it | |
| site | No | Placement / zone id as passed by the ad network | |
| sub1 | No | Filter by sub1 | |
| sub2 | No | Filter by sub2 | |
| sub3 | No | Filter by sub3 | |
| sub4 | No | Filter by sub4 | |
| sub5 | No | Filter by sub5 | |
| sub6 | No | Filter by sub6 | |
| sub7 | No | Filter by sub7 | |
| sub8 | No | Filter by sub8 | |
| sub9 | No | Filter by sub9 | |
| user | No | Workspace member id(s), comma-separated — the campaign owner at click time (needs the "See statistics per team member" permission; ignored otherwise) | |
| offer | No | Offer id | |
| sub10 | No | Filter by sub10 | |
| sub11 | No | Filter by sub11 | |
| sub12 | No | Filter by sub12 | |
| sub13 | No | Filter by sub13 | |
| sub14 | No | Filter by sub14 | |
| sub15 | No | Filter by sub15 | |
| amount | Yes | USD | |
| device | No | mobile / tablet / desktop | |
| period | No | Reporting period (default 7days). Use 'custom' with date_from/date_to. | |
| source | No | Traffic source id | |
| browser | No | ||
| country | No | Country ISO alpha-2 code, e.g. ES | |
| date_to | No | YYYY-MM-DD (with period=custom) | |
| landing | No | Landing id | |
| campaign | No | Campaign ALIAS(es), comma-separated for several | |
| creative | No | Creative id from the click URL | |
| language | No | ||
| pwa_tags | No | Comma-separated tag ids — pwas carrying any of them | |
| referrer | No | ||
| utm_term | No | Exact utm_term value from the click URL | |
| date_from | No | YYYY-MM-DD (with period=custom) | |
| pwa_group | No | Pwa group id | |
| smartlink | No | Smartlink id | |
| source_id | No | Source id as passed by the ad network | |
| offer_tags | No | Comma-separated tag ids — offers carrying any of them | |
| utm_medium | No | Exact utm_medium value from the click URL | |
| utm_source | No | Exact utm_source value from the click URL | |
| ad_campaign | No | The ad network's own campaign id (external_campaign_id) | |
| aff_network | No | Affiliate network id | |
| offer_group | No | Offer group id | |
| source_tags | No | Comma-separated tag ids — sources carrying any of them | |
| unique_only | No | Only unique clicks carry cost; repeat visits in the segment are zeroed by a set | |
| utm_content | No | Exact utm_content value from the click URL | |
| distribution | No | 'even' (default) per click; 'proportional' to each click's current cost | |
| include_bots | No | Let bot clicks carry cost too (default false — networks never bill crawlers) | |
| landing_tags | No | Comma-separated tag ids — landings carrying any of them | |
| source_group | No | Source group id | |
| utm_campaign | No | Exact utm_campaign value from the click URL | |
| campaign_tags | No | Comma-separated tag ids — campaigns carrying any of them | |
| landing_group | No | Landing group id | |
| campaign_group | No | Campaign group id | |
| smartlink_tags | No | Comma-separated tag ids — smartlinks carrying any of them | |
| connection_type | No | ||
| smartlink_group | No | Smartlink group id |
unblock_campaign_placementUnblock campaign placementDestructiveIdempotentInspect
Remove one placement from an API-type campaign's blacklist (mirrored to the ad network best-effort).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Campaign id | |
| site | Yes | Placement / source id to unblock |
unlink_meta_campaignUnlink Meta campaignDestructiveIdempotentInspect
Remove the link between one Facebook campaign and one tracker campaign.
| Name | Required | Description | Default |
|---|---|---|---|
| campaign_id | Yes | ||
| fb_campaign_id | Yes |
update_aff_networkUpdate affiliate networkDestructiveIdempotentInspect
Edit an affiliate network (partial).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Affiliate network id | |
| name | No | ||
| tags | No | ||
| notes | No | ||
| group_id | No | ||
| postback_url | No | Postback URL template to configure at the network | |
| click_id_param | No | Query parameter the network expects the click id in (default click_id) | |
| extra_url_params | No | Extra query string appended to offer URLs | |
| postback_ips_whitelist | No | Comma-separated IPs allowed to send postbacks (empty = any) |
update_auto_ruleUpdate auto ruleDestructiveIdempotentInspect
Edit an auto rule (partial). A sent conditions list replaces the stored one.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Auto-rule id | |
| name | No | ||
| tags | No | ||
| action | No | ||
| status | No | ||
| ranking | No | Placement actions only: act on just the worst / best N placements that pass the conditions, e.g. {"metric":"cpa","direction":"worst","limit":5,"min_clicks":100} = the 5 worst-CPA placements with at least 100 clicks. For cpa/cpc/cpm/cost lower is better (a placement that spent without converting is the worst CPA); for the rest higher is better. null = every matching placement. | |
| group_id | No | ||
| schedule | No | When the scheduler may run the rule, in the workspace timezone: days = ISO weekdays 1 (Mon)…7 (Sun), empty = every day; windows = [{from:"HH:MM", to:"HH:MM"}], empty = whole day; a window with to <= from runs over midnight. null = always. | |
| conditions | No | All conditions must hold (AND) | |
| action_params | No | Parameters the action needs. Bid actions (increase_bid / decrease_bid / increase_zone_bid / decrease_zone_bid): bid_step (>0, required), bid_step_unit (amount|percent), bid_limit (ceiling for an increase, floor for a decrease). Placement list actions (block_zone / whitelist_zone / unblock_zone): site_list_id — the list to write into, default the campaign's own. switch_rotation: flow_scheme_id (required) — the flow scheme copied over the campaign's flows, applied once per scheme. Keys the action does not use are dropped. | |
| time_interval | No | Metrics window | |
| run_every_minutes | No | ||
| on_success_pause_rule | No | Pause the rule after it fires | |
| on_success_pause_campaign | No | Pause the campaign after it fires |
update_campaignUpdate campaignDestructiveIdempotentInspect
Edit a campaign. Partial: only the sent fields change. flows / pixels / postbacks, when sent, REPLACE the stored lists entirely (rows match by id, omitted rows are deleted) — fetch the current tree with get_campaign include=flows first and send it back whole with your changes. Status is changed via set_campaign_status.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Campaign id | |
| name | No | ||
| tags | No | Tag ids (see list_tags) | |
| alias | No | Short code used in the click URL /c/{alias}; generated when omitted. Globally unique. | |
| flows | No | Routing tree, evaluated in order. Exactly one flow should be is_default (catch-all, no rules). On update the list is complete: rows match by id, omitted rows are deleted. | |
| notes | No | ||
| pixels | No | Attached conversion pixels (complete list on update) | |
| group_id | No | ||
| owner_id | No | Hand the campaign to another workspace member (user id from list_workspace_members). Needs edit rights on the campaign; a non-admin may only pick members of their own team. Click history keeps the owner at click time unless rewrite_history is true. | |
| cost_type | No | How click cost is booked (auto = from the {cost} macro) | |
| domain_id | No | Tracking domain (see list_domains; defaults to the workspace default on create) | |
| postbacks | No | Campaign-level outgoing postbacks (complete list on update) | |
| cost_value | No | Cost per click / per 1000 (cpc / cpm) or per conversion (cpa); % for revshare | |
| auto_metric | No | ||
| sticky_flow | No | Cookie-pin a returning visitor to the flow and destination they got first (priority flows still win) | |
| site_list_id | No | Site list attached to the campaign | |
| traffic_loss | No | 0–100 % traffic-loss compensation; null = inherit the traffic source | |
| cost_currency | No | Default USD | |
| flow_rotation | No | auto = EPC/CR bandit split of each flow's destinations | |
| network_links | No | Ids of campaigns already running on the campaign's API traffic source, exactly as the network shows them — network actions (start/stop, stats, bids, lists) then act on them. Complete list: replaces the manual links, [] clears them, omit to leave them as they are. A link turns a manual campaign into an api one; removing the last turns it back. Ignored for sources without an API connection. | |
| remember_offer | No | Keep a returning visitor on the offer they first got | |
| auto_min_clicks | No | auto rotation: clicks before exploiting (default 100) | |
| back_button_url | No | Back button target http(s) URL, macros allowed (target = url) | |
| rewrite_history | No | With owner_id: also re-stamp the clicks and conversions already booked onto the new owner (asynchronous; lands within minutes). Default false. | |
| uniqueness_mode | No | ||
| uniqueness_scope | No | ||
| backup_domain_ids | No | Ordered failover pool for automatic domain switching (max 20) | |
| traffic_source_id | No | ||
| uniqueness_period | No | Hours (1–8760, default 24) | |
| back_button_target | No | Back button: where a visitor pressing Back on a served landing / PWA install page is sent; null = off | |
| auto_explore_percent | No | auto rotation: exploration share 0–50 (default 10) | |
| back_button_offer_id | No | Back button target offer (target = offer) | |
| back_button_campaign_id | No | Back button target campaign (target = campaign; not the campaign itself) | |
| sticky_flow_keep_click_id | No | Sticky flow: a return visit resumes the original click id instead of minting a new click | |
| sticky_flow_skip_inactive | No | Sticky flow: route afresh when the sticky flow is paused (default true); false keeps serving it |
update_creativeUpdate creativeDestructiveIdempotentInspect
Edit creative metadata — partial update (name, title, body, description, cta, ad_macros, status, language, countries, folder). On a facebook creative title/body/description/cta are the ad copy (Headline / Primary text / Description / Call to action) a Meta launch uses in preference to the bundle texts. Media files are managed in the panel; use delete_creative_media to remove one.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Creative id | |
| cta | No | Facebook call-to-action button | |
| body | No | Facebook: Primary text | |
| name | No | ||
| title | No | Facebook: Headline | |
| status | No | ||
| language | No | ||
| ad_macros | No | Appended to the Meta / TikTok ad link as ad_macros=<value> on launch; offer URLs read it as {ad_macros}. Empty clears it | |
| countries | No | ISO alpha-2 codes | |
| folder_id | No | ||
| pwa_author | No | ||
| description | No | Facebook ad Description |
update_domainUpdate domainDestructiveIdempotentInspect
Edit a domain's crawler policy and default page (what it serves at the root / non-tracking paths): default_type action (with default_action 404/200/500), campaign, landing or whitepage with the matching id; null clears it.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Domain id | |
| crawlers | No | robots policy for search crawlers | |
| default_type | No | ||
| default_action | No | ||
| default_landing_id | No | ||
| default_campaign_id | No | ||
| default_whitepage_id | No |
update_flow_schemeUpdate flow schemeDestructiveIdempotentInspect
Edit a flow scheme (partial). A sent flows tree replaces the stored one entirely. Campaigns that already applied the scheme keep their own copy.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Flow scheme id | |
| name | No | ||
| tags | No | ||
| flows | No | Routing tree, evaluated in order. Exactly one flow should be is_default (catch-all, no rules). On update the list is complete: rows match by id, omitted rows are deleted. | |
| status | No | ||
| group_id | No | ||
| auto_metric | No | ||
| description | No | ||
| flow_rotation | No | ||
| auto_min_clicks | No | ||
| auto_explore_percent | No |
update_groupUpdate groupDestructiveIdempotentInspect
Rename a group.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Group id | |
| name | Yes |
update_landingUpdate landingDestructiveIdempotentInspect
Edit a landing (partial). url can be changed on URL-type landings only; game_pack_id / game_settings / game_localizations / pwa_name on game landings only (settings are re-validated against the pack); the type never changes.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Landing id | |
| url | No | https:// page URL (URL-type landings) | |
| name | No | ||
| tags | No | ||
| type | No | Create only: url (default) or game | |
| notes | No | ||
| status | No | ||
| group_id | No | ||
| language | No | Locale code, e.g. en | |
| pwa_name | No | Game landings: install (add-to-home-screen) title | |
| collect_push | No | Inject the push-subscription collector | |
| game_pack_id | No | Game landings: pack id from list_game_packs | |
| game_settings | No | Game landings: {key: text} limited to the pack settings keys (+ soundEnabled / soundSpin / soundWin when the pack has sounds); unknown keys are dropped | |
| heatmap_enabled | No | ||
| protect_enabled | No | URL-type landings: token protection — only visitors sent by the campaign reach the offer (and, with the PHP script from the panel installed, the page); everyone else gets the campaign whitepage | |
| push_activation | No | ||
| game_localizations | No | Game landings: [{locale, settings}] per-language overrides picked by the visitor's browser language; empty values inherit the default texts | |
| protect_ttl_minutes | No | Token lifetime, 5–1440 minutes (default 30) |
update_offerUpdate offerDestructiveIdempotentInspect
Edit an offer — partial update, only the fields you send change.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Offer id | |
| url | No | Offer URL; {click_id} and other {macros} are substituted per click | |
| name | No | ||
| tags | No | ||
| notes | No | ||
| payout | No | Expected payout in payout_currency | |
| status | No | ||
| group_id | No | ||
| cap_limit | No | ||
| countries | No | ISO alpha-2 codes | |
| dest_kind | No | redirect (default) sends the click to url; action performs a server-side action; telegram attributes a Telegram channel; local serves an uploaded ZIP page hosted by the tracker (send zip_base64) | |
| languages | No | ||
| cap_period | No | ||
| zip_base64 | No | Local offers: the page ZIP (index.html at the root), base64-encoded, up to 10 MB | |
| cap_enabled | No | Enable conversion caps (needs cap_period + cap_limit) | |
| payout_type | No | Auto (payout from the postback, default), CPA, CPL, RevShare, CPC or Fixed | |
| cap_priority | No | ||
| collect_push | No | Local offers: collect web-push subscriptions on the page | |
| redirect_type | No | Redirect mechanism for dest_kind redirect (default http) | |
| aff_network_id | No | ||
| heatmap_enabled | No | Local offers: collect click / scroll heatmap data on the page | |
| payout_currency | No | ISO code the network pays this offer in (default USD); postbacks without a currency parameter are converted from it | |
| push_activation | No | Local offers: when the push prompt shows | |
| cap_alt_offer_id | No | Fallback offer when capped |
update_pixelUpdate pixelDestructiveIdempotentInspect
Edit a pixel (partial). A sent config replaces the stored one, except that blank secret keys keep the stored secret.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Pixel id | |
| name | No | ||
| tags | No | ||
| config | No | Platform settings (pixel_id / access_token / measurement_id / api_secret / customer_id / conversion_action_id / client_id / client_secret / refresh_token / platform_id / api_key / account_id / ad_account_id / consumer_key / consumer_secret / access_token_secret / event_id); secrets write-only | |
| status | No | ||
| currency | No | Value currency (default USD) | |
| group_id | No | ||
| platform | No | ||
| send_value | No | Send the payout as the event value | |
| payout_percent | No | 0–500, share of the payout sent as value |
update_tagUpdate tagDestructiveIdempotentInspect
Rename or recolour a tag (partial).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Tag id | |
| name | No | ||
| color | No |
update_traffic_sourceUpdate traffic sourceDestructiveIdempotentInspect
Edit a traffic source (partial). A sent postbacks list replaces the stored one; a blank api_key keeps the stored key, a new one is verified live for API-backed sources. Changing proxy_id re-verifies the key through the new proxy.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Traffic source id | |
| cost | No | Incoming query parameter name that carries cost (parameter mapping) | |
| name | No | ||
| sub1 | No | Incoming query parameter name that carries sub1 | |
| sub2 | No | Incoming query parameter name that carries sub2 | |
| sub3 | No | Incoming query parameter name that carries sub3 | |
| sub4 | No | Incoming query parameter name that carries sub4 | |
| sub5 | No | Incoming query parameter name that carries sub5 | |
| sub6 | No | Incoming query parameter name that carries sub6 | |
| sub7 | No | Incoming query parameter name that carries sub7 | |
| sub8 | No | Incoming query parameter name that carries sub8 | |
| sub9 | No | Incoming query parameter name that carries sub9 | |
| tags | No | ||
| sub10 | No | Incoming query parameter name that carries sub10 | |
| sub11 | No | Incoming query parameter name that carries sub11 | |
| sub12 | No | Incoming query parameter name that carries sub12 | |
| sub13 | No | Incoming query parameter name that carries sub13 | |
| sub14 | No | Incoming query parameter name that carries sub14 | |
| sub15 | No | Incoming query parameter name that carries sub15 | |
| format | No | Incoming query parameter name that carries format (parameter mapping) | |
| api_key | No | Network API key (API-backed templates only); write-only, verified live | |
| zone_id | No | Incoming query parameter name that carries zone_id (parameter mapping) | |
| group_id | No | ||
| proxy_id | No | Tech → Proxies id (list_proxies) the network API calls of this source leave through; null = direct | |
| postbacks | No | Source postback URLs (complete list on update) | |
| source_id | No | Incoming query parameter name that carries source_id (parameter mapping) | |
| campaign_id | No | Incoming query parameter name that carries campaign_id (parameter mapping) | |
| creative_id | No | Incoming query parameter name that carries creative_id (parameter mapping) | |
| external_id | No | Incoming query parameter name that carries external_id (parameter mapping) | |
| traffic_loss | No | 0–100 % traffic-loss compensation applied to click cost | |
| user_activity | No | Incoming query parameter name that carries user_activity (parameter mapping) | |
| payout_percent | No | 0–500 share of the payout reported | |
| postback_percent | No | 0–100 share of conversions forwarded to the source |
upload_offer_archiveUpload offer archiveDestructiveIdempotentInspect
Replace the page of a local offer (dest_kind local) with a new ZIP archive — index.html at the root, assets beside it; {click_id} and other {macros} in the HTML are filled per click. zip_base64 takes up to 10 MB; larger archives go to the REST endpoint as multipart zip_file.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Offer id | |
| zip_base64 | Yes | The ZIP archive, base64-encoded |
Publisher details
- Operator
- Torvex · Publisher source
- Operator website
- https://torvex.io
- Vendor relationship
- First-party
- Documentation
- https://torvex.io/docs/api/mcp
- Trust center
- Not available
- Restrictions
- Requires a Torvex account. Sign-in is OAuth 2.1 (dynamic client registration); the user picks one workspace and the permissions, and tools are limited to what their role in that workspace allows.
Related MCP Connectors
Analyse ads and manage creatives across Meta, Google Ads, AppLovin, Unity, Mintegral and TikTok.
Manage Google, Meta, Amazon, TikTok, LinkedIn & ChatGPT ads. 430 tools for campaigns & analytics.
Hosted MCP for nine ad networks. BYOA, flat SaaS — no percent of spend, no fake ROAS.
Manage Google, Meta, TikTok, Microsoft, Pinterest, Amazon, LinkedIn & Reddit ads from your AI
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceManage ad campaigns across Meta, Google, and TikTok, create campaigns, analyze performance, spy on competitors, and generate AI creatives.19MIT
- AlicenseAqualityAmaintenanceEnables media buyers to manage affset campaigns, zones, stats, payouts, targeting, and team via natural language, pulling stats and cutting underperforming zones without the dashboard.2973 npmMIT
- FlicenseNot gradedqualityAmaintenanceCross-source attribution across 37+ business tools. True ROAS in 14 seconds. Not a dashboard. A decision.28-
- AlicenseAqualityBmaintenanceCross-platform ad management MCP server for Google Ads and Meta Ads. Campaign analytics, A/B testing with z-test, anomaly detection, and budget reallocation. 15 tools, 60 tests.1796 npmMIT
Glama MCP Gateway
Add one secure layer between your agents and this server.