{"activeVersionTag":"latest","latestAvailableVersionTag":"latest","collection":{"info":{"_postman_id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","name":"ZenABM API (from spec)","description":"REST API for accessing ZenABM data. Generate an API token at https://app.zenabm.com/api-keys. Endpoints that return weekly breakdowns use Monday–Sunday weeks (weekStart/weekEnd dates).\n\n## Changelog\n\n### 2026-09\n\n- **New:** `POST /abm-stages/manage` applies one change to an ABM stage per call — create, rename, recolor, reorder or delete a stage, set how its blocks combine, or add, replace or remove a condition block or a single condition. Stages, CRM stages, properties and LinkedIn assets are addressed by name instead of id, and the response returns the updated stage with the same condition model as `GET /abm-stages/{id}` plus non-blocking `warnings`. This is the first write endpoint in v1; it is gated by the same API access plan feature as the read endpoints. The body may also be `{ \"operations\": [...] }` with up to 10 operations applied in order (not atomic: earlier steps stay applied when a later one fails), a new `set_stage_conditions` op replaces a stage’s whole rule in one step, and `data` now carries `applied` and `total` next to `stage` and `warnings`.\n- **New:** `hideExcludedCompanies` (boolean, default `false`) hides companies that have a COMPANY exclusion in this organization, matching the \"Excluded\" badge in the UI. Accepted on `GET /companies`, `GET /campaigns/{id}/companies`, `GET /campaign-groups/{id}/companies`, `GET /abm-campaigns/{id}/companies` and `GET /abm-stages/{id}/companies`. On the Ad Set and Campaign endpoints, only exclusions that apply to that Ad Set/Campaign are hidden (team-wide, or scoped specifically to it) — an exclusion scoped elsewhere is left alone.\n- **New:** `GET /deals` returns `costBeforeDeal` and `costAfterDeal` next to the existing `impressionsBeforeDeal`/`clicksBeforeDeal`/`engagementsBeforeDeal`. Both are LinkedIn ad spend in USD, unlike `amount` which follows the team’s display currency.\n\n### 2026-08\n\n- **New:** `GET /abm-stages` and `GET /abm-stages/{id}` return each stage’s full condition model. `blockOperator` (`AND`/`OR`) joins the stage’s `conditionBlocks`, and each block joins its own `conditions` with its `operator`. Every condition carries a `type` and only the fields that type uses; null fields are omitted. Base fields and `currentCompaniesCount` are unchanged, so this is additive.\n- **New:** `CONTACT_PROPERTY` conditions test a HubSpot **contact** property instead of a company property. The condition’s `propertyMapping` carries `propertyObjectType: \"CONTACT\"` and `minMatchingContacts`; the company matches when at least that many of its associated contacts satisfy the mapping. HubSpot only, and the negative operators (`not_equals`, `not_contains`, `not_in_list`, `is_unknown`) stay company-only because an unset value would match almost every company.\n- **Breaking:** `GET /deals` no longer accepts `dealStatus=disqualified`. Deal status is now resolved natively from each CRM as `open`, `won`, `lost` or `any`; any other value returns 400. Deals previously matched by `disqualified` are now filtered by their native CRM status instead.\n- **Attio support.** Attio deals are included in `GET /deals` alongside HubSpot deals and Salesforce opportunities, tagged `source: \"attio\"` and scoped with `source=attio`. Company payloads carry `attioRecordId`, and the company list endpoints accept `attioMatchStatus` (`all`, `matched`, `unmatched`). `crmMatchStatus` keeps its generic name but filters HubSpot alone.\n- **New:** `GET /campaigns/{id}/suggested-bid` returns LinkedIn’s suggested bid for an Ad Set — the same number Campaign Manager shows — plus the allowed bid range, daily budget limits, and the current bid and budget. Read live from LinkedIn on every call. Returns 422 when the Ad Set cannot be priced and 502 when LinkedIn has no pricing for the targeting.\n- `GET /linkedin-metrics` accepts `timeGranularity` (`ALL`, `DAILY`, `MONTHLY`, `YEARLY`) and `metrics`. Either one switches the response from the flat totals object to the timeseries shape `{ startDate, endDate, timeGranularity, fields, rows, totals, truncated }`. It also accepts `linkedInCampaignGroupId` for campaign-level metrics; `linkedInCampaignId` stays ad-set level and the two cannot be combined.\n- `GET /abm-stages/{id}/companies-entering` and `GET /abm-stages/{id}/companies-progressing` accept `campaignType` (`current_abm_stage`, `lifetime_abm_stage`, `specific_campaign`) with `campaignId`. The older `all_abm_campaigns` and `linkedin_influenced` values still work as aliases, and an unknown value falls back to `current_abm_stage` instead of returning an error.\n- Stage scoping is now explicit. On `GET /abm-campaigns/{id}/companies`, `abmStage` and the `abmStages` filter report the company’s stage inside that campaign (a manual override wins), while `lifetimeAbmStage` stays company-wide. `GET /companies` follows the same rule when `abmCampaigns` holds exactly one ID.","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","isPublicCollection":true,"owner":"53042651","team":14127181,"collectionId":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","publishedId":"2sBYAuTBhG","public":true,"publicUrl":"https://documenter-api.postman.tech/view/53042651/2sBYAuTBhG","privateUrl":"https://go.postman.co/documentation/53042651-3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","customColor":{"right-sidebar":"#f4f3ed","top-bar":"#004737","highlight":"#0f8a5f"},"documentationLayout":"classic-double-column","customisation":{"appearance":{"themes":[{"colors":{"right-sidebar":"#f4f3ed","top-bar":"#004737","highlight":"#0f8a5f"},"name":"light"},{"colors":{"right-sidebar":"#003729","top-bar":"#004737","highlight":"#0f8a5f"},"name":"dark"}],"default":"light"},"metaTags":[{"value":"ZenABM API Reference","name":"title"},{"value":"REST API for ZenABM account-based marketing data: companies, campaigns, deals, contacts, job titles and ABM stages.","name":"description"}]},"version":"8.12.6","publishDate":"2026-08-31T08:58:51.000Z","activeVersionTag":"latest","documentationTheme":"light","metaTags":{"title":"ZenABM API Reference","description":"REST API for ZenABM account-based marketing data: companies, campaigns, deals, contacts, job titles and ABM stages."},"logos":{}},"statusCode":200},"environments":[],"user":{"authenticated":false,"permissions":{"publish":false}},"run":{"button":{"js":"https://run.pstmn.io/button.js","css":"https://run.pstmn.io/button.css"}},"web":"https://www.getpostman.com/","team":{"logo":"https://res.cloudinary.com/postman/image/upload/t_team_logo_pubdoc/v1/team/b86a1d55f61676d7c44d04dec8aa6bdb62e920adf8c646aa700456d67733420b","favicon":"https://res.cloudinary.com/postman/image/upload/v1773067586/team/9b9dabd486685eba7d73755b323b2334.ico"},"isEnvFetchError":false,"languages":"[{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"HttpClient\"},{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"RestSharp\"},{\"key\":\"curl\",\"label\":\"cURL\",\"variant\":\"cURL\"},{\"key\":\"dart\",\"label\":\"Dart\",\"variant\":\"http\"},{\"key\":\"go\",\"label\":\"Go\",\"variant\":\"Native\"},{\"key\":\"http\",\"label\":\"HTTP\",\"variant\":\"HTTP\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"OkHttp\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"Unirest\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"Fetch\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"jQuery\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"XHR\"},{\"key\":\"c\",\"label\":\"C\",\"variant\":\"libcurl\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Axios\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Native\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Request\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Unirest\"},{\"key\":\"objective-c\",\"label\":\"Objective-C\",\"variant\":\"NSURLSession\"},{\"key\":\"ocaml\",\"label\":\"OCaml\",\"variant\":\"Cohttp\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"cURL\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"Guzzle\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"HTTP_Request2\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"pecl_http\"},{\"key\":\"powershell\",\"label\":\"PowerShell\",\"variant\":\"RestMethod\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"http.client\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"Requests\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"httr\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"RCurl\"},{\"key\":\"ruby\",\"label\":\"Ruby\",\"variant\":\"Net::HTTP\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"Httpie\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"wget\"},{\"key\":\"swift\",\"label\":\"Swift\",\"variant\":\"URLSession\"}]","languageSettings":[{"key":"csharp","label":"C#","variant":"HttpClient"},{"key":"csharp","label":"C#","variant":"RestSharp"},{"key":"curl","label":"cURL","variant":"cURL"},{"key":"dart","label":"Dart","variant":"http"},{"key":"go","label":"Go","variant":"Native"},{"key":"http","label":"HTTP","variant":"HTTP"},{"key":"java","label":"Java","variant":"OkHttp"},{"key":"java","label":"Java","variant":"Unirest"},{"key":"javascript","label":"JavaScript","variant":"Fetch"},{"key":"javascript","label":"JavaScript","variant":"jQuery"},{"key":"javascript","label":"JavaScript","variant":"XHR"},{"key":"c","label":"C","variant":"libcurl"},{"key":"nodejs","label":"NodeJs","variant":"Axios"},{"key":"nodejs","label":"NodeJs","variant":"Native"},{"key":"nodejs","label":"NodeJs","variant":"Request"},{"key":"nodejs","label":"NodeJs","variant":"Unirest"},{"key":"objective-c","label":"Objective-C","variant":"NSURLSession"},{"key":"ocaml","label":"OCaml","variant":"Cohttp"},{"key":"php","label":"PHP","variant":"cURL"},{"key":"php","label":"PHP","variant":"Guzzle"},{"key":"php","label":"PHP","variant":"HTTP_Request2"},{"key":"php","label":"PHP","variant":"pecl_http"},{"key":"powershell","label":"PowerShell","variant":"RestMethod"},{"key":"python","label":"Python","variant":"http.client"},{"key":"python","label":"Python","variant":"Requests"},{"key":"r","label":"R","variant":"httr"},{"key":"r","label":"R","variant":"RCurl"},{"key":"ruby","label":"Ruby","variant":"Net::HTTP"},{"key":"shell","label":"Shell","variant":"Httpie"},{"key":"shell","label":"Shell","variant":"wget"},{"key":"swift","label":"Swift","variant":"URLSession"}],"languageOptions":[{"label":"C# - HttpClient","value":"csharp - HttpClient - C#"},{"label":"C# - RestSharp","value":"csharp - RestSharp - C#"},{"label":"cURL - cURL","value":"curl - cURL - cURL"},{"label":"Dart - http","value":"dart - http - Dart"},{"label":"Go - Native","value":"go - Native - Go"},{"label":"HTTP - HTTP","value":"http - HTTP - HTTP"},{"label":"Java - OkHttp","value":"java - OkHttp - Java"},{"label":"Java - Unirest","value":"java - Unirest - Java"},{"label":"JavaScript - Fetch","value":"javascript - Fetch - JavaScript"},{"label":"JavaScript - jQuery","value":"javascript - jQuery - JavaScript"},{"label":"JavaScript - XHR","value":"javascript - XHR - JavaScript"},{"label":"C - libcurl","value":"c - libcurl - C"},{"label":"NodeJs - Axios","value":"nodejs - Axios - NodeJs"},{"label":"NodeJs - Native","value":"nodejs - Native - NodeJs"},{"label":"NodeJs - Request","value":"nodejs - Request - NodeJs"},{"label":"NodeJs - Unirest","value":"nodejs - Unirest - NodeJs"},{"label":"Objective-C - NSURLSession","value":"objective-c - NSURLSession - Objective-C"},{"label":"OCaml - Cohttp","value":"ocaml - Cohttp - OCaml"},{"label":"PHP - cURL","value":"php - cURL - PHP"},{"label":"PHP - Guzzle","value":"php - Guzzle - PHP"},{"label":"PHP - HTTP_Request2","value":"php - HTTP_Request2 - PHP"},{"label":"PHP - pecl_http","value":"php - pecl_http - PHP"},{"label":"PowerShell - RestMethod","value":"powershell - RestMethod - PowerShell"},{"label":"Python - http.client","value":"python - http.client - Python"},{"label":"Python - Requests","value":"python - Requests - Python"},{"label":"R - httr","value":"r - httr - R"},{"label":"R - RCurl","value":"r - RCurl - R"},{"label":"Ruby - Net::HTTP","value":"ruby - Net::HTTP - Ruby"},{"label":"Shell - Httpie","value":"shell - Httpie - Shell"},{"label":"Shell - wget","value":"shell - wget - Shell"},{"label":"Swift - URLSession","value":"swift - URLSession - Swift"}],"layoutOptions":[{"value":"classic-single-column","label":"Single Column"},{"value":"classic-double-column","label":"Double Column"}],"versionOptions":[],"environmentOptions":[{"value":"0","label":"No Environment"}],"canonicalUrl":"https://documenter.gw.postman.com/view/metadata/2sBYAuTBhG"}