Все инструменты, которые предоставляет коннектор Propush MCP, сформированы напрямую из текущего реестра.
Операции записи отмечены отдельно; всё остальное — только чтение. Названия и описания инструментов — на английском.
get_sites только чтениеGet list of all your sites in Propush SSP. Returns site ID, URL, verification status (1=Pending, 2=Verified), and a type field: site, landing, constructor, or null in any other case. Only verified (2) sites of type site or landing can take new zones (see create_onclick_zone); moderation approval is required for that too, and it is not reported here.
The id here is the site id get_zones reports as site_id, but it is NOT the site_id get_statistics reports or accepts — see get_statistics before filtering a report by site.
Paginated server-side, ordered by id. The response carries meta { page, page_size, total_items, total_pages, has_more }; page_size defaults to 100 and is capped at 500. To fetch everything, keep page_size fixed and walk page from 1 to total_pages.
Параметры
page — Page number (default: 1)page_size — Sites per page (default: 100, maximum: 500). Larger values are clamped to the maximum.get_zones только чтениеGet list of all zones (ad tags). Each zone has an ID (the number get_statistics reports and accepts as zone_id), title, site_id (the same id get_sites returns, and not the site_id get_statistics reports), direction_id (72=Push Notifications, 73=Traffic Back), active status, site_direction_id (the number get_statistics reports as affiliate_id) and postback_url ({id, url}, or null when no postback is set — the ground truth for the postback tools).
Paginated server-side, ordered by id. The response carries meta { page, page_size, total_items, total_pages, has_more }; page_size defaults to 100 and is capped at 500. To fetch everything, keep page_size fixed and walk page from 1 to total_pages. Prefer the site_id filter over walking many pages when you only need one site's zones.
Параметры
page — Page number (default: 1)page_size — Zones per page (default: 100, maximum: 500). Larger values are clamped to the maximum.site_id — Return only zones belonging to this sitecreate_onclick_zone записьCreate a new onclick (TrafficBack) zone under one of your sites. Returns the new zone's id, title, and creation timestamp.
The site must be a plain site or landing page (type 'site' or 'landing' in get_sites — constructor and other placements are refused with 400), owner-verified (user_verification_status 2) and approved by moderation. A site that is not verified, still under moderation or rejected gets a 403 whose hint names the reason, e.g. 'This site has not been verified yet. Please verify site ownership before creating zones.' Moderation status is not part of get_sites, so that hint is the only place it shows up; the site's state has to change before a retry can succeed.
Параметры
site_id — Publisher site IDtitle — Zone title (max 100 characters)get_constructors только чтениеList all your Propush landing constructors. Each constructor has an id, human-friendly name, type (landing template, e.g. 'social-survey'), creation timestamp, and its generated zones — each with id, title, direction, isActive, and postbackUrl ({id, url} or null when none is set). Requires constructor access (see is_constructor_available from get_me).
Без параметров
get_constructor только чтениеGet a single Propush landing constructor by ID — its id, name, type (landing template, e.g. 'social-survey'), creation timestamp, and generated zones (each with id, title, direction, isActive, and postbackUrl: {id, url} or null when none is set). Requires constructor access (see is_constructor_available from get_me).
Параметры
constructor_id — Constructor IDget_trending_geos только чтениеGet the latest published Propush "trending GEOs" weekly digest — week-over-week impression-volume and CPM momentum in push traffic by country. Returns metadata (slug, publishedAt) and a data payload. The data structure is digest-specific and is not covered by backward-compatibility guarantees — it may change without notice, so read the values as they come rather than relying on a fixed shape. Requires constructor access (see is_constructor_available from get_me).
Без параметров
get_balance только чтениеGet current account balance in USD.
Без параметров
get_me только чтениеGet the authenticated account's id, API access level, and constructor availability. access_level is one of '' (no SSP API role), 'base' (standard endpoints), or 'extended' (all endpoints, including grouping by request_var and multi-field grouping in get_statistics). is_constructor_available is true when the account may use the Propush landing-constructor tools (get_constructors, get_constructor); when false those tools return an access error.
Без параметров
get_statistics только чтениеGet statistics for your zones and sites with grouping and filtering.
Every row carries these metrics: prerequests, impressions, subscriptions, money (USD earnings), push_already_subscribed, push_first_impressions, push_unsubscriptions.
Rows also carry whatever you grouped by, and some of those fields are raw IDs. Look them up before putting them in a report:
- os_id arrives with os next to it, the OS name (e.g. 'android') — use the name. It is null when the OS was not detected (os_id 0), and that traffic cannot be filtered at all. The os filter takes names, not IDs; get_os lists them.
- country_id is a bare number. get_countries turns it into a country name and ISO code. Filtering does not need that lookup: the countries filter takes ISO codes directly.
- affiliate_id identifies a site-and-direction pair. The same number appears as site_direction_id in get_zones. It has no filter of its own, so narrow with zone_ids and directions instead.
- zone_id is the id get_zones returns — take the zone's title, and the site it belongs to, from there.
- site_id is NOT the id get_sites and get_zones report: statistics numbers sites in a space of its own, so the two never match, and passing a get_sites id as site_ids is refused with "The selected choice is invalid." It has no dictionary of its own — it resolves to a nameable site only through the zones: group by zone_id and read each zone's site_id and title from get_zones (grouping by [site_id, zone_id] gives the pairing directly, but multi-field grouping needs the 'extended' access level). That roll-up is also how to report per site; to narrow to one site you already know, pass that site's zones as zone_ids. site_ids only accepts values that came out of a site_id grouping.
tz works only when date_from is within the last 7 days. On an older range the API rejects the whole call with "Time zone is available only in the weekly period." That message is about the date range, not the offset, so a different offset or a retry will not help — either leave tz out (dates are then EST) or move date_from closer to today.
Examples:
- Daily earnings: { date_from: "2024-01-01", date_to: "2024-01-07", group_by: ["date_time"] }
- By country: { ..., group_by: ["country_id"] }
- Specific zones: { ..., group_by: ["zone_id"], zone_ids: [123, 456] }
The response is { result: [ ...rows ], meta: { total_items, total_pages, page_size, page } }. page_size is capped at 200 rows so that one page fits the client's result-size limit — check meta for the window that was actually applied. For a report that spans pages, keep page_size as it is and walk page from 1 to meta.total_pages, though narrowing the dates, the filters or group_by usually beats paging through everything.
Параметры
date_from — Date FROM in YYYY-MM-DD format (EST timezone)date_to — Date TO in YYYY-MM-DD format (EST timezone)group_by — Fields to group by. Valid values: date_time | zone_id | site_id | country_id | os_id | affiliate_id | request_var | subscription_date. Grouping by 'request_var' or by multiple fields requires the 'extended' API access level (check via get_me).zone_ids — Filter by zone IDssite_ids — Filter by the `site_id` values a `site_id` grouping returned. These are NOT the ids get_sites and get_zones report — one of those is refused with "The selected choice is invalid." To narrow to a site you already know, filter by its zones with `zone_ids` instead.countries — 2-letter ISO 3166 Alpha-2 country codes, e.g. ['us', 'in']directions — Direction filter. 'onclick' for TrafficBack, 'nativeads' for Push Notifications.request_vars — Filter by source ID stringsos — Filter by OS name, e.g. ['android', 'ios']. These are the names get_os lists and grouped rows carry in `os`. Traffic with an undetected OS has no name, so it cannot be filtered. An unknown name comes back with the list of valid ones.tz — UTC offset written as '+HHMM' or '-HHMM' (e.g. '+0300'), anywhere from '-1200' to '+1400'. Named zones like 'America/New_York' do not work. Only accepted when `date_from` is within the last 7 days; on an older range the API rejects the whole call, so leave it out there. Without it, dates are EST.page — Page number (default: 1)page_size — Rows per page (default: 100, maximum: 200). Larger values are clamped to the maximum.get_countries только чтениеGet every available country with its numeric ID and ISO 3166 Alpha-2 code. Use it to read the country_id field of get_statistics rows grouped by country — those rows carry the numeric ID only, and it is environment-specific, so this list is the only way to name them. Filtering does not need this tool: get_statistics takes ISO codes directly.
Без параметров
get_os только чтениеGet every operating system that statistics can be grouped or filtered by: numeric ID, value (the name get_statistics rows carry in os and its os filter accepts, e.g. 'android') and title (display form, e.g. 'Android'). Requires a Propush account. Filtering does not need this tool: get_statistics takes the names directly — use it to see what names exist.
Без параметров
set_zone_postback деструктивнаяCreate or replace the postback URL for one zone. The URL can carry the postback macros, substituted at request time: {ymid} (click id), {request_var} (source id), {geo} (country), {sub_cnt} (user rank) — the 'Instructions for postback propush.me' help article (search_docs) explains them. Only onclick (TrafficBack) zones are supported.
Параметры
site_id — Publisher site IDzone_id — Zone IDurl — Postback URL, e.g. 'https://example.com?ymid={ymid}'delete_zone_postback деструктивнаяDelete the postback URL for one zone. Answers 404 when the zone has no postback set. Only onclick (TrafficBack) zones are supported.
Параметры
site_id — Publisher site IDzone_id — Zone IDbulk_set_zones_postback деструктивнаяSet the same postback URL on multiple zones at once (upsert). All-or-nothing: if any zone fails validation, no changes are made. The URL takes the same macros as set_zone_postback. Only onclick (TrafficBack) zones are supported.
Параметры
site_id — Publisher site IDzone_ids — Zone IDs to assign the postback URL tourl — Postback URL to assign to all listed zonesbulk_delete_zones_postback деструктивнаяDelete postback URLs for multiple zones in one call. All-or-nothing: every zone must already have a postback, otherwise the whole request is rejected.
Параметры
site_id — Publisher site IDzone_ids — Zone IDs whose postback URL should be deletedsearch_docs только чтениеSearch Propush documentation (Landing Constructor docs + Help Center articles). Returns ranked title+snippet hits with the resource URI of each match — use the read_doc tool with a URI to fetch full Markdown. Landing Constructor docs are searched only for accounts with constructor access (see is_constructor_available from get_me); other accounts get Help Center hits only.
Параметры
query — Keywords or phrase to search for, e.g. 'postback macros', 'trafficback'limit — Max number of results (default 10)read_doc только чтениеFetch the full Markdown of a Propush documentation entry by URI (the URIs returned in search_docs.hits[].uri). Thin adapter over resources/read for clients that only speak tools/call. Landing Constructor entries require constructor access (see get_me); without it the call returns an access error.
Параметры
uri — A propush://docs/<source>/<slug> URI from search_docs.hits[].uri