{"info":{"_postman_id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","name":"ZenABM API (from spec)","description":"<html><head></head><body><p>REST API for accessing ZenABM data. Generate an API token at <a href=\"https://app.zenabm.com/api-keys\">https://app.zenabm.com/api-keys</a>. Endpoints that return weekly breakdowns use Monday–Sunday weeks (weekStart/weekEnd dates).</p>\n<h2 id=\"changelog\">Changelog</h2>\n<h3 id=\"2026-09\">2026-09</h3>\n<ul>\n<li><strong>New:</strong> <code>POST /abm-stages/manage</code> 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 <code>GET /abm-stages/{id}</code> plus non-blocking <code>warnings</code>. 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 <code>{ \"operations\": [...] }</code> with up to 10 operations applied in order (not atomic: earlier steps stay applied when a later one fails), a new <code>set_stage_conditions</code> op replaces a stage’s whole rule in one step, and <code>data</code> now carries <code>applied</code> and <code>total</code> next to <code>stage</code> and <code>warnings</code>.</li>\n<li><strong>New:</strong> <code>hideExcludedCompanies</code> (boolean, default <code>false</code>) hides companies that have a COMPANY exclusion in this organization, matching the \"Excluded\" badge in the UI. Accepted on <code>GET /companies</code>, <code>GET /campaigns/{id}/companies</code>, <code>GET /campaign-groups/{id}/companies</code>, <code>GET /abm-campaigns/{id}/companies</code> and <code>GET /abm-stages/{id}/companies</code>. 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.</li>\n<li><strong>New:</strong> <code>GET /deals</code> returns <code>costBeforeDeal</code> and <code>costAfterDeal</code> next to the existing <code>impressionsBeforeDeal</code>/<code>clicksBeforeDeal</code>/<code>engagementsBeforeDeal</code>. Both are LinkedIn ad spend in USD, unlike <code>amount</code> which follows the team’s display currency.</li>\n</ul>\n<h3 id=\"2026-08\">2026-08</h3>\n<ul>\n<li><strong>New:</strong> <code>GET /abm-stages</code> and <code>GET /abm-stages/{id}</code> return each stage’s full condition model. <code>blockOperator</code> (<code>AND</code>/<code>OR</code>) joins the stage’s <code>conditionBlocks</code>, and each block joins its own <code>conditions</code> with its <code>operator</code>. Every condition carries a <code>type</code> and only the fields that type uses; null fields are omitted. Base fields and <code>currentCompaniesCount</code> are unchanged, so this is additive.</li>\n<li><strong>New:</strong> <code>CONTACT_PROPERTY</code> conditions test a HubSpot <strong>contact</strong> property instead of a company property. The condition’s <code>propertyMapping</code> carries <code>propertyObjectType: \"CONTACT\"</code> and <code>minMatchingContacts</code>; the company matches when at least that many of its associated contacts satisfy the mapping. HubSpot only, and the negative operators (<code>not_equals</code>, <code>not_contains</code>, <code>not_in_list</code>, <code>is_unknown</code>) stay company-only because an unset value would match almost every company.</li>\n<li><strong>Breaking:</strong> <code>GET /deals</code> no longer accepts <code>dealStatus=disqualified</code>. Deal status is now resolved natively from each CRM as <code>open</code>, <code>won</code>, <code>lost</code> or <code>any</code>; any other value returns 400. Deals previously matched by <code>disqualified</code> are now filtered by their native CRM status instead.</li>\n<li><strong>Attio support.</strong> Attio deals are included in <code>GET /deals</code> alongside HubSpot deals and Salesforce opportunities, tagged <code>source: \"attio\"</code> and scoped with <code>source=attio</code>. Company payloads carry <code>attioRecordId</code>, and the company list endpoints accept <code>attioMatchStatus</code> (<code>all</code>, <code>matched</code>, <code>unmatched</code>). <code>crmMatchStatus</code> keeps its generic name but filters HubSpot alone.</li>\n<li><strong>New:</strong> <code>GET /campaigns/{id}/suggested-bid</code> 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.</li>\n<li><code>GET /linkedin-metrics</code> accepts <code>timeGranularity</code> (<code>ALL</code>, <code>DAILY</code>, <code>MONTHLY</code>, <code>YEARLY</code>) and <code>metrics</code>. Either one switches the response from the flat totals object to the timeseries shape <code>{ startDate, endDate, timeGranularity, fields, rows, totals, truncated }</code>. It also accepts <code>linkedInCampaignGroupId</code> for campaign-level metrics; <code>linkedInCampaignId</code> stays ad-set level and the two cannot be combined.</li>\n<li><code>GET /abm-stages/{id}/companies-entering</code> and <code>GET /abm-stages/{id}/companies-progressing</code> accept <code>campaignType</code> (<code>current_abm_stage</code>, <code>lifetime_abm_stage</code>, <code>specific_campaign</code>) with <code>campaignId</code>. The older <code>all_abm_campaigns</code> and <code>linkedin_influenced</code> values still work as aliases, and an unknown value falls back to <code>current_abm_stage</code> instead of returning an error.</li>\n<li>Stage scoping is now explicit. On <code>GET /abm-campaigns/{id}/companies</code>, <code>abmStage</code> and the <code>abmStages</code> filter report the company’s stage inside that campaign (a manual override wins), while <code>lifetimeAbmStage</code> stays company-wide. <code>GET /companies</code> follows the same rule when <code>abmCampaigns</code> holds exactly one ID.</li>\n</ul>\n</body></html>","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[],"owner":"53042651","collectionId":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","publishedId":"2sBYAuTBhG","public":true,"customColor":{"right-sidebar":"#f4f3ed","top-bar":"#004737","highlight":"#0f8a5f"},"publishDate":"2026-08-31T08:58:51.000Z"},"item":[{"name":"Companies","item":[{"name":"List companies with insights","id":"db1be1c1-c4cb-4e39-973e-cce169cffd8e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"https://app.zenabm.com/api/v1/companies?page=1&pageSize=20&period=last30Days&startDate=2018-09-03&endDate=2018-09-03&sortBy=string&sortOrder=desc&search=string&campaigns=cm1abc,cm2def&campaignGroups=string&abmCampaigns=string&abmStages=string&intentId=string&campaignType=all_abm_campaigns&engagementScores=3,4,5&minImpressions=192.19441793910886&maxImpressions=192.19441793910886&minClicks=192.19441793910886&maxClicks=192.19441793910886&minEngagements=192.19441793910886&maxEngagements=192.19441793910886&minCostInUsd=192.19441793910886&maxCostInUsd=192.19441793910886&minCostPerClick=192.19441793910886&maxCostPerClick=192.19441793910886&minCpm=192.19441793910886&maxCpm=192.19441793910886&minClickThroughRate=192.19441793910886&maxClickThroughRate=192.19441793910886&minIntents=192.19441793910886&maxIntents=192.19441793910886&crmMatchStatus=all&salesforceMatchStatus=all&attioMatchStatus=all&hideExcludedCompanies=false&includeWeekly=true","description":"<p>Returns a paginated list of companies with engagement metrics. Filter by campaigns, ABM stages, engagement scores, or CRM match status.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{bearerToken}}"}]},"isInherited":true,"source":{"_postman_id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","name":"ZenABM API (from spec)","type":"collection"}},"urlObject":{"path":["companies"],"host":["https://app.zenabm.com/api/v1"],"query":[{"description":{"content":"<p>Page number (default: 1)</p>\n","type":"text/plain"},"key":"page","value":"1"},{"description":{"content":"<p>Items per page (default: 20, max: 100)</p>\n","type":"text/plain"},"key":"pageSize","value":"20"},{"description":{"content":"<p>Time period preset. Ignored when startDate/endDate are provided.</p>\n","type":"text/plain"},"key":"period","value":"last30Days"},{"description":{"content":"<p>Start date (YYYY-MM-DD). When provided with endDate, overrides the period parameter.</p>\n","type":"text/plain"},"key":"startDate","value":"2018-09-03"},{"description":{"content":"<p>End date (YYYY-MM-DD). When provided with startDate, overrides the period parameter.</p>\n","type":"text/plain"},"key":"endDate","value":"2018-09-03"},{"description":{"content":"<p>Field to sort by (e.g. impressions, clicks, engagements)</p>\n","type":"text/plain"},"key":"sortBy","value":"string"},{"description":{"content":"<p>Sort direction</p>\n","type":"text/plain"},"key":"sortOrder","value":"desc"},{"description":{"content":"<p>Search filter</p>\n","type":"text/plain"},"key":"search","value":"string"},{"description":{"content":"<p>Comma-separated Ad Sets IDs</p>\n","type":"text/plain"},"key":"campaigns","value":"cm1abc,cm2def"},{"description":{"content":"<p>Comma-separated Campaigns IDs</p>\n","type":"text/plain"},"key":"campaignGroups","value":"string"},{"description":{"content":"<p>Comma-separated ABM campaign IDs. With exactly one ID, <code>abmStage</code> and the <code>abmStages</code> filter are scoped to that campaign (same semantics as <code>GET /abm-campaigns/{id}/companies</code>); with several IDs they use the company's overall stage.</p>\n","type":"text/plain"},"key":"abmCampaigns","value":"string"},{"description":{"content":"<p>Comma-separated ABM stage IDs. Matches the same stage <code>abmStage</code> reports: campaign-scoped when <code>abmCampaigns</code> holds exactly one ID, otherwise the overall stage.</p>\n","type":"text/plain"},"key":"abmStages","value":"string"},{"description":{"content":"<p>Only return companies that show this intent signal. Takes a single intent ID — see <code>GET /intents</code>.</p>\n","type":"text/plain"},"key":"intentId","value":"string"},{"description":{"content":"<p>Set to <code>all_abm_campaigns</code> to scope the list to companies targeted by any ABM campaign. Ignored when <code>campaigns</code>, <code>campaignGroups</code>, or <code>abmCampaigns</code> is supplied, because those filters are more specific.</p>\n","type":"text/plain"},"key":"campaignType","value":"all_abm_campaigns"},{"description":{"content":"<p>Comma-separated scores (1–5)</p>\n","type":"text/plain"},"key":"engagementScores","value":"3,4,5"},{"description":{"content":"<p>Only return rows where impressions is greater than or equal to this value.</p>\n","type":"text/plain"},"key":"minImpressions","value":"192.19441793910886"},{"description":{"content":"<p>Only return rows where impressions is less than or equal to this value.</p>\n","type":"text/plain"},"key":"maxImpressions","value":"192.19441793910886"},{"description":{"content":"<p>Only return rows where clicks is greater than or equal to this value.</p>\n","type":"text/plain"},"key":"minClicks","value":"192.19441793910886"},{"description":{"content":"<p>Only return rows where clicks is less than or equal to this value.</p>\n","type":"text/plain"},"key":"maxClicks","value":"192.19441793910886"},{"description":{"content":"<p>Only return rows where engagements is greater than or equal to this value.</p>\n","type":"text/plain"},"key":"minEngagements","value":"192.19441793910886"},{"description":{"content":"<p>Only return rows where engagements is less than or equal to this value.</p>\n","type":"text/plain"},"key":"maxEngagements","value":"192.19441793910886"},{"description":{"content":"<p>Only return rows where cost in USD is greater than or equal to this value.</p>\n","type":"text/plain"},"key":"minCostInUsd","value":"192.19441793910886"},{"description":{"content":"<p>Only return rows where cost in USD is less than or equal to this value.</p>\n","type":"text/plain"},"key":"maxCostInUsd","value":"192.19441793910886"},{"description":{"content":"<p>Only return rows where cost per click (CPC) is greater than or equal to this value.</p>\n","type":"text/plain"},"key":"minCostPerClick","value":"192.19441793910886"},{"description":{"content":"<p>Only return rows where cost per click (CPC) is less than or equal to this value.</p>\n","type":"text/plain"},"key":"maxCostPerClick","value":"192.19441793910886"},{"description":{"content":"<p>Only return rows where cost per 1,000 impressions (CPM) is greater than or equal to this value.</p>\n","type":"text/plain"},"key":"minCpm","value":"192.19441793910886"},{"description":{"content":"<p>Only return rows where cost per 1,000 impressions (CPM) is less than or equal to this value.</p>\n","type":"text/plain"},"key":"maxCpm","value":"192.19441793910886"},{"description":{"content":"<p>Only return rows where click-through rate (CTR, as a percentage) is greater than or equal to this value.</p>\n","type":"text/plain"},"key":"minClickThroughRate","value":"192.19441793910886"},{"description":{"content":"<p>Only return rows where click-through rate (CTR, as a percentage) is less than or equal to this value.</p>\n","type":"text/plain"},"key":"maxClickThroughRate","value":"192.19441793910886"},{"description":{"content":"<p>Only return rows where the number of intent signals is greater than or equal to this value.</p>\n","type":"text/plain"},"key":"minIntents","value":"192.19441793910886"},{"description":{"content":"<p>Only return rows where the number of intent signals is less than or equal to this value.</p>\n","type":"text/plain"},"key":"maxIntents","value":"192.19441793910886"},{"description":{"content":"<p>Filters on the link to HubSpot. <code>matched</code> returns only companies that have a HubSpot company record, <code>unmatched</code> only companies that have none. The name is generic for historic reasons, but this parameter covers HubSpot alone — use <code>salesforceMatchStatus</code> or <code>attioMatchStatus</code> for the other CRMs.</p>\n","type":"text/plain"},"key":"crmMatchStatus","value":"all"},{"description":{"content":"<p>Salesforce match filter</p>\n","type":"text/plain"},"key":"salesforceMatchStatus","value":"all"},{"description":{"content":"<p>Attio match filter</p>\n","type":"text/plain"},"key":"attioMatchStatus","value":"all"},{"description":{"content":"<p>When <code>true</code>, hides companies that have a COMPANY exclusion in this organization (matches the \"Excluded\" badge in the UI).</p>\n","type":"text/plain"},"key":"hideExcludedCompanies","value":"false"},{"description":{"content":"<p>When <code>true</code>, each company in the response is augmented with a <code>weeklyData[]</code> array — one entry per Sunday-anchored bucket in the date range (impressions, clicks, engagements, costInUsd). <code>pageSize</code> is automatically capped at 20 on this path to keep responses small.</p>\n","type":"text/plain"},"key":"includeWeekly","value":"true"}],"variable":[]}},"response":[{"id":"6fb29706-87bb-4a87-ac74-0c473dff19e7","name":"Paginated list of companies with metrics. `weeklyData` is only present when `includeWeekly=true`.","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"https://app.zenabm.com/api/v1/companies?page=1&pageSize=20&period=last30Days&startDate=2018-09-03&endDate=2018-09-03&sortBy=string&sortOrder=desc&search=string&campaigns=cm1abc,cm2def&campaignGroups=string&abmCampaigns=string&abmStages=string&intentId=string&campaignType=all_abm_campaigns&engagementScores=3,4,5&minImpressions=192.19441793910886&maxImpressions=192.19441793910886&minClicks=192.19441793910886&maxClicks=192.19441793910886&minEngagements=192.19441793910886&maxEngagements=192.19441793910886&minCostInUsd=192.19441793910886&maxCostInUsd=192.19441793910886&minCostPerClick=192.19441793910886&maxCostPerClick=192.19441793910886&minCpm=192.19441793910886&maxCpm=192.19441793910886&minClickThroughRate=192.19441793910886&maxClickThroughRate=192.19441793910886&minIntents=192.19441793910886&maxIntents=192.19441793910886&crmMatchStatus=all&salesforceMatchStatus=all&attioMatchStatus=all&hideExcludedCompanies=false&includeWeekly=true","host":["https://app.zenabm.com/api/v1"],"path":["companies"],"query":[{"description":"Page number (default: 1)","key":"page","value":"1"},{"description":"Items per page (default: 20, max: 100)","key":"pageSize","value":"20"},{"description":"Time period preset. Ignored when startDate/endDate are provided.","key":"period","value":"last30Days"},{"description":"Start date (YYYY-MM-DD). When provided with endDate, overrides the period parameter.","key":"startDate","value":"2018-09-03"},{"description":"End date (YYYY-MM-DD). When provided with startDate, overrides the period parameter.","key":"endDate","value":"2018-09-03"},{"description":"Field to sort by (e.g. impressions, clicks, engagements)","key":"sortBy","value":"string"},{"description":"Sort direction","key":"sortOrder","value":"desc"},{"description":"Search filter","key":"search","value":"string"},{"description":"Comma-separated Ad Sets IDs","key":"campaigns","value":"cm1abc,cm2def"},{"description":"Comma-separated Campaigns IDs","key":"campaignGroups","value":"string"},{"description":"Comma-separated ABM campaign IDs. With exactly one ID, `abmStage` and the `abmStages` filter are scoped to that campaign (same semantics as `GET /abm-campaigns/{id}/companies`); with several IDs they use the company's overall stage.","key":"abmCampaigns","value":"string"},{"description":"Comma-separated ABM stage IDs. Matches the same stage `abmStage` reports: campaign-scoped when `abmCampaigns` holds exactly one ID, otherwise the overall stage.","key":"abmStages","value":"string"},{"description":"Only return companies that show this intent signal. Takes a single intent ID — see `GET /intents`.","key":"intentId","value":"string"},{"description":"Set to `all_abm_campaigns` to scope the list to companies targeted by any ABM campaign. Ignored when `campaigns`, `campaignGroups`, or `abmCampaigns` is supplied, because those filters are more specific.","key":"campaignType","value":"all_abm_campaigns"},{"description":"Comma-separated scores (1–5)","key":"engagementScores","value":"3,4,5"},{"description":"Only return rows where impressions is greater than or equal to this value.","key":"minImpressions","value":"192.19441793910886"},{"description":"Only return rows where impressions is less than or equal to this value.","key":"maxImpressions","value":"192.19441793910886"},{"description":"Only return rows where clicks is greater than or equal to this value.","key":"minClicks","value":"192.19441793910886"},{"description":"Only return rows where clicks is less than or equal to this value.","key":"maxClicks","value":"192.19441793910886"},{"description":"Only return rows where engagements is greater than or equal to this value.","key":"minEngagements","value":"192.19441793910886"},{"description":"Only return rows where engagements is less than or equal to this value.","key":"maxEngagements","value":"192.19441793910886"},{"description":"Only return rows where cost in USD is greater than or equal to this value.","key":"minCostInUsd","value":"192.19441793910886"},{"description":"Only return rows where cost in USD is less than or equal to this value.","key":"maxCostInUsd","value":"192.19441793910886"},{"description":"Only return rows where cost per click (CPC) is greater than or equal to this value.","key":"minCostPerClick","value":"192.19441793910886"},{"description":"Only return rows where cost per click (CPC) is less than or equal to this value.","key":"maxCostPerClick","value":"192.19441793910886"},{"description":"Only return rows where cost per 1,000 impressions (CPM) is greater than or equal to this value.","key":"minCpm","value":"192.19441793910886"},{"description":"Only return rows where cost per 1,000 impressions (CPM) is less than or equal to this value.","key":"maxCpm","value":"192.19441793910886"},{"description":"Only return rows where click-through rate (CTR, as a percentage) is greater than or equal to this value.","key":"minClickThroughRate","value":"192.19441793910886"},{"description":"Only return rows where click-through rate (CTR, as a percentage) is less than or equal to this value.","key":"maxClickThroughRate","value":"192.19441793910886"},{"description":"Only return rows where the number of intent signals is greater than or equal to this value.","key":"minIntents","value":"192.19441793910886"},{"description":"Only return rows where the number of intent signals is less than or equal to this value.","key":"maxIntents","value":"192.19441793910886"},{"description":"Filters on the link to HubSpot. `matched` returns only companies that have a HubSpot company record, `unmatched` only companies that have none. The name is generic for historic reasons, but this parameter covers HubSpot alone — use `salesforceMatchStatus` or `attioMatchStatus` for the other CRMs.","key":"crmMatchStatus","value":"all"},{"description":"Salesforce match filter","key":"salesforceMatchStatus","value":"all"},{"description":"Attio match filter","key":"attioMatchStatus","value":"all"},{"description":"When `true`, hides companies that have a COMPANY exclusion in this organization (matches the \"Excluded\" badge in the UI).","key":"hideExcludedCompanies","value":"false"},{"description":"When `true`, each company in the response is augmented with a `weeklyData[]` array — one entry per Sunday-anchored bucket in the date range (impressions, clicks, engagements, costInUsd). `pageSize` is automatically capped at 20 on this path to keep responses small.","key":"includeWeekly","value":"true"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"data\": [\n    {\n      \"id\": \"1337\",\n      \"name\": \"Pied Piper\",\n      \"city\": \"Palo Alto\",\n      \"country\": \"US\",\n      \"website\": \"https://www.piedpiper.com/\",\n      \"linkedInOrgId\": \"4827017\",\n      \"hubspotCompanyId\": \"37411334702\",\n      \"salesforceId\": \"0015f00000AbCdEfGh\",\n      \"attioRecordId\": \"a1b2c3d4-5e6f-4a7b-8c9d-0e1f2a3b4c5d\",\n      \"lifetimeEngagementScore\": 3,\n      \"abmStageId\": \"1337_interested\",\n      \"lifetimeAbmStageId\": \"1337_interested\",\n      \"logoUrl\": \"https://piedpiper.com/assets/images/logo.png\",\n      \"abmStage\": {\n        \"id\": \"1337_interested\",\n        \"name\": \"Interested\",\n        \"color\": \"#10B981\",\n        \"displayOrder\": 3,\n        \"isManuallyOverridden\": false,\n        \"overrideTimestamp\": null\n      },\n      \"lifetimeAbmStage\": {\n        \"id\": \"1337_interested\",\n        \"name\": \"Interested\",\n        \"color\": \"#10B981\",\n        \"displayOrder\": 3\n      },\n      \"intents\": [\n        {\n          \"id\": \"cm9iaw4a50001jr04wqc1k4dt\",\n          \"name\": \"Competitor\"\n        }\n      ],\n      \"impressions\": 109198,\n      \"clicks\": 468,\n      \"engagements\": 2769,\n      \"costInUsd\": 2797.37,\n      \"currentEngagementScore\": 2,\n      \"abmCampaigns\": [\n        {\n          \"id\": \"1337\",\n          \"name\": \"Techcrunch 2025\"\n        }\n      ],\n      \"exclusion\": null,\n      \"weeklyData\": [\n        {\n          \"weekStart\": \"2026-03-03\",\n          \"weekEnd\": \"2026-03-09\",\n          \"impressions\": 142,\n          \"clicks\": 3,\n          \"engagements\": 2,\n          \"costInUsd\": 45.72\n        },\n        {\n          \"weekStart\": \"2026-03-10\",\n          \"weekEnd\": \"2026-03-16\",\n          \"impressions\": 511,\n          \"clicks\": 5,\n          \"engagements\": 12,\n          \"costInUsd\": 10.94\n        }\n      ]\n    }\n  ],\n  \"pagination\": {\n    \"page\": 1,\n    \"pageSize\": 1,\n    \"totalCount\": 35960,\n    \"totalPages\": 35960\n  },\n  \"meta\": {\n    \"timestamp\": \"2026-03-09T18:08:06.901Z\"\n  }\n}"},{"id":"23b98596-3f3f-40ba-a7c5-dcac37ea03e4","name":"Unauthorized","originalRequest":{"method":"GET","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"https://app.zenabm.com/api/v1/companies?page=1&pageSize=20&period=last30Days&startDate=2018-09-03&endDate=2018-09-03&sortBy=string&sortOrder=desc&search=string&campaigns=cm1abc,cm2def&campaignGroups=string&abmCampaigns=string&abmStages=string&intentId=string&campaignType=all_abm_campaigns&engagementScores=3,4,5&minImpressions=192.19441793910886&maxImpressions=192.19441793910886&minClicks=192.19441793910886&maxClicks=192.19441793910886&minEngagements=192.19441793910886&maxEngagements=192.19441793910886&minCostInUsd=192.19441793910886&maxCostInUsd=192.19441793910886&minCostPerClick=192.19441793910886&maxCostPerClick=192.19441793910886&minCpm=192.19441793910886&maxCpm=192.19441793910886&minClickThroughRate=192.19441793910886&maxClickThroughRate=192.19441793910886&minIntents=192.19441793910886&maxIntents=192.19441793910886&crmMatchStatus=all&salesforceMatchStatus=all&attioMatchStatus=all&hideExcludedCompanies=false&includeWeekly=true","host":["https://app.zenabm.com/api/v1"],"path":["companies"],"query":[{"description":"Page number (default: 1)","key":"page","value":"1"},{"description":"Items per page (default: 20, max: 100)","key":"pageSize","value":"20"},{"description":"Time period preset. Ignored when startDate/endDate are provided.","key":"period","value":"last30Days"},{"description":"Start date (YYYY-MM-DD). When provided with endDate, overrides the period parameter.","key":"startDate","value":"2018-09-03"},{"description":"End date (YYYY-MM-DD). When provided with startDate, overrides the period parameter.","key":"endDate","value":"2018-09-03"},{"description":"Field to sort by (e.g. impressions, clicks, engagements)","key":"sortBy","value":"string"},{"description":"Sort direction","key":"sortOrder","value":"desc"},{"description":"Search filter","key":"search","value":"string"},{"description":"Comma-separated Ad Sets IDs","key":"campaigns","value":"cm1abc,cm2def"},{"description":"Comma-separated Campaigns IDs","key":"campaignGroups","value":"string"},{"description":"Comma-separated ABM campaign IDs. With exactly one ID, `abmStage` and the `abmStages` filter are scoped to that campaign (same semantics as `GET /abm-campaigns/{id}/companies`); with several IDs they use the company's overall stage.","key":"abmCampaigns","value":"string"},{"description":"Comma-separated ABM stage IDs. Matches the same stage `abmStage` reports: campaign-scoped when `abmCampaigns` holds exactly one ID, otherwise the overall stage.","key":"abmStages","value":"string"},{"description":"Only return companies that show this intent signal. Takes a single intent ID — see `GET /intents`.","key":"intentId","value":"string"},{"description":"Set to `all_abm_campaigns` to scope the list to companies targeted by any ABM campaign. Ignored when `campaigns`, `campaignGroups`, or `abmCampaigns` is supplied, because those filters are more specific.","key":"campaignType","value":"all_abm_campaigns"},{"description":"Comma-separated scores (1–5)","key":"engagementScores","value":"3,4,5"},{"description":"Only return rows where impressions is greater than or equal to this value.","key":"minImpressions","value":"192.19441793910886"},{"description":"Only return rows where impressions is less than or equal to this value.","key":"maxImpressions","value":"192.19441793910886"},{"description":"Only return rows where clicks is greater than or equal to this value.","key":"minClicks","value":"192.19441793910886"},{"description":"Only return rows where clicks is less than or equal to this value.","key":"maxClicks","value":"192.19441793910886"},{"description":"Only return rows where engagements is greater than or equal to this value.","key":"minEngagements","value":"192.19441793910886"},{"description":"Only return rows where engagements is less than or equal to this value.","key":"maxEngagements","value":"192.19441793910886"},{"description":"Only return rows where cost in USD is greater than or equal to this value.","key":"minCostInUsd","value":"192.19441793910886"},{"description":"Only return rows where cost in USD is less than or equal to this value.","key":"maxCostInUsd","value":"192.19441793910886"},{"description":"Only return rows where cost per click (CPC) is greater than or equal to this value.","key":"minCostPerClick","value":"192.19441793910886"},{"description":"Only return rows where cost per click (CPC) is less than or equal to this value.","key":"maxCostPerClick","value":"192.19441793910886"},{"description":"Only return rows where cost per 1,000 impressions (CPM) is greater than or equal to this value.","key":"minCpm","value":"192.19441793910886"},{"description":"Only return rows where cost per 1,000 impressions (CPM) is less than or equal to this value.","key":"maxCpm","value":"192.19441793910886"},{"description":"Only return rows where click-through rate (CTR, as a percentage) is greater than or equal to this value.","key":"minClickThroughRate","value":"192.19441793910886"},{"description":"Only return rows where click-through rate (CTR, as a percentage) is less than or equal to this value.","key":"maxClickThroughRate","value":"192.19441793910886"},{"description":"Only return rows where the number of intent signals is greater than or equal to this value.","key":"minIntents","value":"192.19441793910886"},{"description":"Only return rows where the number of intent signals is less than or equal to this value.","key":"maxIntents","value":"192.19441793910886"},{"description":"Filters on the link to HubSpot. `matched` returns only companies that have a HubSpot company record, `unmatched` only companies that have none. The name is generic for historic reasons, but this parameter covers HubSpot alone — use `salesforceMatchStatus` or `attioMatchStatus` for the other CRMs.","key":"crmMatchStatus","value":"all"},{"description":"Salesforce match filter","key":"salesforceMatchStatus","value":"all"},{"description":"Attio match filter","key":"attioMatchStatus","value":"all"},{"description":"When `true`, hides companies that have a COMPANY exclusion in this organization (matches the \"Excluded\" badge in the UI).","key":"hideExcludedCompanies","value":"false"},{"description":"When `true`, each company in the response is augmented with a `weeklyData[]` array — one entry per Sunday-anchored bucket in the date range (impressions, clicks, engagements, costInUsd). `pageSize` is automatically capped at 20 on this path to keep responses small.","key":"includeWeekly","value":"true"}]}},"status":"Unauthorized","code":401,"_postman_previewlanguage":"text","header":[],"cookie":[],"responseTime":null,"body":null},{"id":"2213d9f6-f027-423a-9cc8-3d5474bc2344","name":"Rate limit exceeded","originalRequest":{"method":"GET","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"https://app.zenabm.com/api/v1/companies?page=1&pageSize=20&period=last30Days&startDate=2018-09-03&endDate=2018-09-03&sortBy=string&sortOrder=desc&search=string&campaigns=cm1abc,cm2def&campaignGroups=string&abmCampaigns=string&abmStages=string&intentId=string&campaignType=all_abm_campaigns&engagementScores=3,4,5&minImpressions=192.19441793910886&maxImpressions=192.19441793910886&minClicks=192.19441793910886&maxClicks=192.19441793910886&minEngagements=192.19441793910886&maxEngagements=192.19441793910886&minCostInUsd=192.19441793910886&maxCostInUsd=192.19441793910886&minCostPerClick=192.19441793910886&maxCostPerClick=192.19441793910886&minCpm=192.19441793910886&maxCpm=192.19441793910886&minClickThroughRate=192.19441793910886&maxClickThroughRate=192.19441793910886&minIntents=192.19441793910886&maxIntents=192.19441793910886&crmMatchStatus=all&salesforceMatchStatus=all&attioMatchStatus=all&hideExcludedCompanies=false&includeWeekly=true","host":["https://app.zenabm.com/api/v1"],"path":["companies"],"query":[{"description":"Page number (default: 1)","key":"page","value":"1"},{"description":"Items per page (default: 20, max: 100)","key":"pageSize","value":"20"},{"description":"Time period preset. Ignored when startDate/endDate are provided.","key":"period","value":"last30Days"},{"description":"Start date (YYYY-MM-DD). When provided with endDate, overrides the period parameter.","key":"startDate","value":"2018-09-03"},{"description":"End date (YYYY-MM-DD). When provided with startDate, overrides the period parameter.","key":"endDate","value":"2018-09-03"},{"description":"Field to sort by (e.g. impressions, clicks, engagements)","key":"sortBy","value":"string"},{"description":"Sort direction","key":"sortOrder","value":"desc"},{"description":"Search filter","key":"search","value":"string"},{"description":"Comma-separated Ad Sets IDs","key":"campaigns","value":"cm1abc,cm2def"},{"description":"Comma-separated Campaigns IDs","key":"campaignGroups","value":"string"},{"description":"Comma-separated ABM campaign IDs. With exactly one ID, `abmStage` and the `abmStages` filter are scoped to that campaign (same semantics as `GET /abm-campaigns/{id}/companies`); with several IDs they use the company's overall stage.","key":"abmCampaigns","value":"string"},{"description":"Comma-separated ABM stage IDs. Matches the same stage `abmStage` reports: campaign-scoped when `abmCampaigns` holds exactly one ID, otherwise the overall stage.","key":"abmStages","value":"string"},{"description":"Only return companies that show this intent signal. Takes a single intent ID — see `GET /intents`.","key":"intentId","value":"string"},{"description":"Set to `all_abm_campaigns` to scope the list to companies targeted by any ABM campaign. Ignored when `campaigns`, `campaignGroups`, or `abmCampaigns` is supplied, because those filters are more specific.","key":"campaignType","value":"all_abm_campaigns"},{"description":"Comma-separated scores (1–5)","key":"engagementScores","value":"3,4,5"},{"description":"Only return rows where impressions is greater than or equal to this value.","key":"minImpressions","value":"192.19441793910886"},{"description":"Only return rows where impressions is less than or equal to this value.","key":"maxImpressions","value":"192.19441793910886"},{"description":"Only return rows where clicks is greater than or equal to this value.","key":"minClicks","value":"192.19441793910886"},{"description":"Only return rows where clicks is less than or equal to this value.","key":"maxClicks","value":"192.19441793910886"},{"description":"Only return rows where engagements is greater than or equal to this value.","key":"minEngagements","value":"192.19441793910886"},{"description":"Only return rows where engagements is less than or equal to this value.","key":"maxEngagements","value":"192.19441793910886"},{"description":"Only return rows where cost in USD is greater than or equal to this value.","key":"minCostInUsd","value":"192.19441793910886"},{"description":"Only return rows where cost in USD is less than or equal to this value.","key":"maxCostInUsd","value":"192.19441793910886"},{"description":"Only return rows where cost per click (CPC) is greater than or equal to this value.","key":"minCostPerClick","value":"192.19441793910886"},{"description":"Only return rows where cost per click (CPC) is less than or equal to this value.","key":"maxCostPerClick","value":"192.19441793910886"},{"description":"Only return rows where cost per 1,000 impressions (CPM) is greater than or equal to this value.","key":"minCpm","value":"192.19441793910886"},{"description":"Only return rows where cost per 1,000 impressions (CPM) is less than or equal to this value.","key":"maxCpm","value":"192.19441793910886"},{"description":"Only return rows where click-through rate (CTR, as a percentage) is greater than or equal to this value.","key":"minClickThroughRate","value":"192.19441793910886"},{"description":"Only return rows where click-through rate (CTR, as a percentage) is less than or equal to this value.","key":"maxClickThroughRate","value":"192.19441793910886"},{"description":"Only return rows where the number of intent signals is greater than or equal to this value.","key":"minIntents","value":"192.19441793910886"},{"description":"Only return rows where the number of intent signals is less than or equal to this value.","key":"maxIntents","value":"192.19441793910886"},{"description":"Filters on the link to HubSpot. `matched` returns only companies that have a HubSpot company record, `unmatched` only companies that have none. The name is generic for historic reasons, but this parameter covers HubSpot alone — use `salesforceMatchStatus` or `attioMatchStatus` for the other CRMs.","key":"crmMatchStatus","value":"all"},{"description":"Salesforce match filter","key":"salesforceMatchStatus","value":"all"},{"description":"Attio match filter","key":"attioMatchStatus","value":"all"},{"description":"When `true`, hides companies that have a COMPANY exclusion in this organization (matches the \"Excluded\" badge in the UI).","key":"hideExcludedCompanies","value":"false"},{"description":"When `true`, each company in the response is augmented with a `weeklyData[]` array — one entry per Sunday-anchored bucket in the date range (impressions, clicks, engagements, costInUsd). `pageSize` is automatically capped at 20 on this path to keep responses small.","key":"includeWeekly","value":"true"}]}},"status":"Too Many Requests","code":429,"_postman_previewlanguage":"text","header":[],"cookie":[],"responseTime":null,"body":null}],"_postman_id":"db1be1c1-c4cb-4e39-973e-cce169cffd8e"},{"name":"Get company by ID","id":"b18c44ae-9df3-41fd-84ff-780a89e0950d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"https://app.zenabm.com/api/v1/companies/:id","description":"<p>Retrieve a single company by its ID, including full profile and current metrics.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{bearerToken}}"}]},"isInherited":true,"source":{"_postman_id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","name":"ZenABM API (from spec)","type":"collection"}},"urlObject":{"path":["companies",":id"],"host":["https://app.zenabm.com/api/v1"],"query":[],"variable":[{"description":{"content":"<p>Company ID</p>\n","type":"text/plain"},"type":"any","value":"string","key":"id"}]}},"response":[{"id":"37d86951-e5e7-4c73-a1c1-cbe32a3e6aa1","name":"Company details","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"https://app.zenabm.com/api/v1/companies/:id","host":["https://app.zenabm.com/api/v1"],"path":["companies",":id"],"variable":[{"key":"id","value":"string","description":"Company ID"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"data\": {\n    \"id\": \"1337\",\n    \"name\": \"Pied Piper\",\n    \"country\": \"US\",\n    \"city\": \"Palo Alto\",\n    \"website\": \"https://www.piedpiper.com/\",\n    \"logoUrl\": \"https://piedpiper.com/assets/images/logo.png\",\n    \"linkedInOrgId\": \"4827017\",\n    \"hubspotCompanyId\": \"37411334702\",\n    \"attioRecordId\": \"a1b2c3d4-5e6f-4a7b-8c9d-0e1f2a3b4c5d\",\n    \"abmStage\": {\n      \"id\": \"1337_interested\",\n      \"name\": \"Interested\",\n      \"color\": \"#10B981\",\n      \"displayOrder\": 3\n    },\n    \"lifetimeAbmStage\": {\n      \"id\": \"1337_interested\",\n      \"name\": \"Interested\",\n      \"color\": \"#10B981\",\n      \"displayOrder\": 3\n    },\n    \"lifetimeEngagementScore\": 5,\n    \"exclusionCount\": 0\n  },\n  \"meta\": {\n    \"timestamp\": \"2026-03-09T18:34:17.198Z\"\n  }\n}"}],"_postman_id":"b18c44ae-9df3-41fd-84ff-780a89e0950d"},{"name":"Get company metrics overview","id":"4488def3-8333-41eb-879f-642313257415","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"https://app.zenabm.com/api/v1/companies/:id/overview?period=last30Days&startDate=2018-09-03&endDate=2018-09-03","description":"<p>Returns aggregated and weekly metrics for a company over a given time period.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{bearerToken}}"}]},"isInherited":true,"source":{"_postman_id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","name":"ZenABM API (from spec)","type":"collection"}},"urlObject":{"path":["companies",":id","overview"],"host":["https://app.zenabm.com/api/v1"],"query":[{"description":{"content":"<p>Time period preset. Ignored when startDate/endDate are provided.</p>\n","type":"text/plain"},"key":"period","value":"last30Days"},{"description":{"content":"<p>Start date (YYYY-MM-DD). When provided with endDate, overrides the period parameter.</p>\n","type":"text/plain"},"key":"startDate","value":"2018-09-03"},{"description":{"content":"<p>End date (YYYY-MM-DD). When provided with startDate, overrides the period parameter.</p>\n","type":"text/plain"},"key":"endDate","value":"2018-09-03"}],"variable":[{"description":{"content":"<p>Company ID</p>\n","type":"text/plain"},"type":"any","value":"string","key":"id"}]}},"response":[{"id":"db0afe73-ec4a-4c03-9cca-266c78caa616","name":"Company overview with weekly metrics (weekStart, weekEnd)","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"https://app.zenabm.com/api/v1/companies/:id/overview?period=last30Days&startDate=2018-09-03&endDate=2018-09-03","host":["https://app.zenabm.com/api/v1"],"path":["companies",":id","overview"],"query":[{"description":"Time period preset. Ignored when startDate/endDate are provided.","key":"period","value":"last30Days"},{"description":"Start date (YYYY-MM-DD). When provided with endDate, overrides the period parameter.","key":"startDate","value":"2018-09-03"},{"description":"End date (YYYY-MM-DD). When provided with startDate, overrides the period parameter.","key":"endDate","value":"2018-09-03"}],"variable":[{"key":"id","value":"string","description":"Company ID"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"data\": {\n    \"summary\": {\n      \"impressions\": 109198,\n      \"clicks\": 468,\n      \"engagements\": 2769,\n      \"costInUsd\": 2797.37\n    },\n    \"weeklyData\": [\n      {\n        \"weekStart\": \"2025-03-03\",\n        \"weekEnd\": \"2025-03-09\",\n        \"impressions\": 142,\n        \"clicks\": 3,\n        \"engagements\": 2,\n        \"costInUsd\": 45.72\n      },\n      {\n        \"weekStart\": \"2025-03-10\",\n        \"weekEnd\": \"2025-03-16\",\n        \"impressions\": 3607,\n        \"clicks\": 31,\n        \"engagements\": 35,\n        \"costInUsd\": 106.35\n      }\n    ]\n  },\n  \"meta\": {\n    \"timestamp\": \"2026-03-09T18:30:27.973Z\"\n  }\n}"}],"_postman_id":"4488def3-8333-41eb-879f-642313257415"},{"name":"List Ad Sets for a company","id":"d0f84b27-ec10-4668-b45b-d5e61f47550c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"https://app.zenabm.com/api/v1/companies/:id/campaigns?page=1&pageSize=20&period=last30Days&startDate=2018-09-03&endDate=2018-09-03&sortBy=string&sortOrder=desc&search=string","description":"<p>Returns campaigns that a specific company has been exposed to, with per-company metrics.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{bearerToken}}"}]},"isInherited":true,"source":{"_postman_id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","name":"ZenABM API (from spec)","type":"collection"}},"urlObject":{"path":["companies",":id","campaigns"],"host":["https://app.zenabm.com/api/v1"],"query":[{"description":{"content":"<p>Page number (default: 1)</p>\n","type":"text/plain"},"key":"page","value":"1"},{"description":{"content":"<p>Items per page (default: 20, max: 100)</p>\n","type":"text/plain"},"key":"pageSize","value":"20"},{"description":{"content":"<p>Time period preset. Ignored when startDate/endDate are provided.</p>\n","type":"text/plain"},"key":"period","value":"last30Days"},{"description":{"content":"<p>Start date (YYYY-MM-DD). When provided with endDate, overrides the period parameter.</p>\n","type":"text/plain"},"key":"startDate","value":"2018-09-03"},{"description":{"content":"<p>End date (YYYY-MM-DD). When provided with startDate, overrides the period parameter.</p>\n","type":"text/plain"},"key":"endDate","value":"2018-09-03"},{"description":{"content":"<p>Field to sort by (e.g. impressions, clicks, engagements)</p>\n","type":"text/plain"},"key":"sortBy","value":"string"},{"description":{"content":"<p>Sort direction</p>\n","type":"text/plain"},"key":"sortOrder","value":"desc"},{"description":{"content":"<p>Search filter</p>\n","type":"text/plain"},"key":"search","value":"string"}],"variable":[{"description":{"content":"<p>Company ID</p>\n","type":"text/plain"},"type":"any","value":"string","key":"id"}]}},"response":[{"id":"affeaff9-c95e-4542-af02-b177fb63362a","name":"Paginated Ad Sets for company","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"https://app.zenabm.com/api/v1/companies/:id/campaigns?page=1&pageSize=20&period=last30Days&startDate=2018-09-03&endDate=2018-09-03&sortBy=string&sortOrder=desc&search=string","host":["https://app.zenabm.com/api/v1"],"path":["companies",":id","campaigns"],"query":[{"description":"Page number (default: 1)","key":"page","value":"1"},{"description":"Items per page (default: 20, max: 100)","key":"pageSize","value":"20"},{"description":"Time period preset. Ignored when startDate/endDate are provided.","key":"period","value":"last30Days"},{"description":"Start date (YYYY-MM-DD). When provided with endDate, overrides the period parameter.","key":"startDate","value":"2018-09-03"},{"description":"End date (YYYY-MM-DD). When provided with startDate, overrides the period parameter.","key":"endDate","value":"2018-09-03"},{"description":"Field to sort by (e.g. impressions, clicks, engagements)","key":"sortBy","value":"string"},{"description":"Sort direction","key":"sortOrder","value":"desc"},{"description":"Search filter","key":"search","value":"string"}],"variable":[{"key":"id","value":"string","description":"Company ID"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"data\": [\n    {\n      \"id\": \"1337_campaign_id\",\n      \"name\": \"Techcrunch 2025\",\n      \"format\": \"Single Image\",\n      \"impressions\": 5923,\n      \"clicks\": 31,\n      \"engagements\": 58,\n      \"costInUsd\": 436.58,\n      \"intents\": [\n        {\n          \"id\": \"1337\",\n          \"name\": \"Competitor\"\n        }\n      ]\n    }\n  ],\n  \"pagination\": {\n    \"page\": 1,\n    \"pageSize\": 20,\n    \"totalCount\": 114,\n    \"totalPages\": 6\n  },\n  \"meta\": {\n    \"timestamp\": \"2026-03-09T18:41:52.562Z\"\n  }\n}"}],"_postman_id":"d0f84b27-ec10-4668-b45b-d5e61f47550c"},{"name":"List Campaigns for a company","id":"814f9871-f2d6-44fc-923c-045a2cc1ef65","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"https://app.zenabm.com/api/v1/companies/:id/campaign-groups?page=1&pageSize=20&period=last30Days&startDate=2018-09-03&endDate=2018-09-03&sortBy=string&sortOrder=desc&search=string","description":"<p>Optional filters: sortBy, sortOrder, search</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{bearerToken}}"}]},"isInherited":true,"source":{"_postman_id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","name":"ZenABM API (from spec)","type":"collection"}},"urlObject":{"path":["companies",":id","campaign-groups"],"host":["https://app.zenabm.com/api/v1"],"query":[{"description":{"content":"<p>Page number (default: 1)</p>\n","type":"text/plain"},"key":"page","value":"1"},{"description":{"content":"<p>Items per page (default: 20, max: 100)</p>\n","type":"text/plain"},"key":"pageSize","value":"20"},{"description":{"content":"<p>Time period preset. Ignored when startDate/endDate are provided.</p>\n","type":"text/plain"},"key":"period","value":"last30Days"},{"description":{"content":"<p>Start date (YYYY-MM-DD). When provided with endDate, overrides the period parameter.</p>\n","type":"text/plain"},"key":"startDate","value":"2018-09-03"},{"description":{"content":"<p>End date (YYYY-MM-DD). When provided with startDate, overrides the period parameter.</p>\n","type":"text/plain"},"key":"endDate","value":"2018-09-03"},{"description":{"content":"<p>Field to sort by (e.g. impressions, clicks, engagements)</p>\n","type":"text/plain"},"key":"sortBy","value":"string"},{"description":{"content":"<p>Sort direction</p>\n","type":"text/plain"},"key":"sortOrder","value":"desc"},{"description":{"content":"<p>Search filter</p>\n","type":"text/plain"},"key":"search","value":"string"}],"variable":[{"description":{"content":"<p>Company ID</p>\n","type":"text/plain"},"type":"any","value":"string","key":"id"}]}},"response":[{"id":"5593823c-bc9d-4b45-a996-dd920b2237f5","name":"Paginated Campaigns for company","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"https://app.zenabm.com/api/v1/companies/:id/campaign-groups?page=1&pageSize=20&period=last30Days&startDate=2018-09-03&endDate=2018-09-03&sortBy=string&sortOrder=desc&search=string","host":["https://app.zenabm.com/api/v1"],"path":["companies",":id","campaign-groups"],"query":[{"description":"Page number (default: 1)","key":"page","value":"1"},{"description":"Items per page (default: 20, max: 100)","key":"pageSize","value":"20"},{"description":"Time period preset. Ignored when startDate/endDate are provided.","key":"period","value":"last30Days"},{"description":"Start date (YYYY-MM-DD). When provided with endDate, overrides the period parameter.","key":"startDate","value":"2018-09-03"},{"description":"End date (YYYY-MM-DD). When provided with startDate, overrides the period parameter.","key":"endDate","value":"2018-09-03"},{"description":"Field to sort by (e.g. impressions, clicks, engagements)","key":"sortBy","value":"string"},{"description":"Sort direction","key":"sortOrder","value":"desc"},{"description":"Search filter","key":"search","value":"string"}],"variable":[{"key":"id","value":"string","description":"Company ID"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"data\": [\n    {\n      \"id\": \"1337_campaign_group_id\",\n      \"name\": \"Techcrunch 2025 CG\",\n      \"impressions\": 47759,\n      \"clicks\": 273,\n      \"engagements\": 2380,\n      \"costInUsd\": 1580.19\n    }\n  ],\n  \"pagination\": {\n    \"page\": 1,\n    \"pageSize\": 20,\n    \"totalCount\": 35,\n    \"totalPages\": 2\n  },\n  \"meta\": {\n    \"timestamp\": \"2026-03-09T18:44:34.534Z\"\n  }\n}"}],"_postman_id":"814f9871-f2d6-44fc-923c-045a2cc1ef65"},{"name":"List ABM campaigns for a company","id":"7ff4e310-de59-4fe3-a914-ad8dba5fb33b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"https://app.zenabm.com/api/v1/companies/:id/abm-campaigns?page=1&pageSize=20&period=last30Days&startDate=2018-09-03&endDate=2018-09-03&sortBy=string&sortOrder=desc","description":"<p>Optional filters: sortBy, sortOrder</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{bearerToken}}"}]},"isInherited":true,"source":{"_postman_id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","name":"ZenABM API (from spec)","type":"collection"}},"urlObject":{"path":["companies",":id","abm-campaigns"],"host":["https://app.zenabm.com/api/v1"],"query":[{"description":{"content":"<p>Page number (default: 1)</p>\n","type":"text/plain"},"key":"page","value":"1"},{"description":{"content":"<p>Items per page (default: 20, max: 100)</p>\n","type":"text/plain"},"key":"pageSize","value":"20"},{"description":{"content":"<p>Time period preset. Ignored when startDate/endDate are provided.</p>\n","type":"text/plain"},"key":"period","value":"last30Days"},{"description":{"content":"<p>Start date (YYYY-MM-DD). When provided with endDate, overrides the period parameter.</p>\n","type":"text/plain"},"key":"startDate","value":"2018-09-03"},{"description":{"content":"<p>End date (YYYY-MM-DD). When provided with startDate, overrides the period parameter.</p>\n","type":"text/plain"},"key":"endDate","value":"2018-09-03"},{"description":{"content":"<p>Field to sort by (e.g. impressions, clicks, engagements)</p>\n","type":"text/plain"},"key":"sortBy","value":"string"},{"description":{"content":"<p>Sort direction</p>\n","type":"text/plain"},"key":"sortOrder","value":"desc"}],"variable":[{"description":{"content":"<p>Company ID</p>\n","type":"text/plain"},"type":"any","value":"string","key":"id"}]}},"response":[{"id":"fa6a463b-fe61-4e6d-9628-2b0239b1eb4d","name":"Paginated ABM campaigns for company","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"https://app.zenabm.com/api/v1/companies/:id/abm-campaigns?page=1&pageSize=20&period=last30Days&startDate=2018-09-03&endDate=2018-09-03&sortBy=string&sortOrder=desc","host":["https://app.zenabm.com/api/v1"],"path":["companies",":id","abm-campaigns"],"query":[{"description":"Page number (default: 1)","key":"page","value":"1"},{"description":"Items per page (default: 20, max: 100)","key":"pageSize","value":"20"},{"description":"Time period preset. Ignored when startDate/endDate are provided.","key":"period","value":"last30Days"},{"description":"Start date (YYYY-MM-DD). When provided with endDate, overrides the period parameter.","key":"startDate","value":"2018-09-03"},{"description":"End date (YYYY-MM-DD). When provided with startDate, overrides the period parameter.","key":"endDate","value":"2018-09-03"},{"description":"Field to sort by (e.g. impressions, clicks, engagements)","key":"sortBy","value":"string"},{"description":"Sort direction","key":"sortOrder","value":"desc"}],"variable":[{"key":"id","value":"string","description":"Company ID"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"data\": [\n    {\n      \"id\": \"1337_abm_campaign_id\",\n      \"name\": \"Silicon Valley 2025\",\n      \"status\": \"ACTIVE\",\n      \"impressions\": 111554,\n      \"clicks\": 462,\n      \"engagements\": 2763,\n      \"costInUsd\": 2232.13\n    }\n  ],\n  \"pagination\": {\n    \"page\": 1,\n    \"pageSize\": 20,\n    \"totalCount\": 8,\n    \"totalPages\": 1\n  },\n  \"meta\": {\n    \"timestamp\": \"2026-03-09T18:51:43.208Z\"\n  }\n}"}],"_postman_id":"7ff4e310-de59-4fe3-a914-ad8dba5fb33b"},{"name":"Get company timeline","id":"018ceb0b-0b65-4b9c-8281-dfb00629714a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"https://app.zenabm.com/api/v1/companies/:id/timeline?startDate=2018-09-03&endDate=2018-09-03","description":"<p>Returns a chronological list of engagement events for a company within a date range.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{bearerToken}}"}]},"isInherited":true,"source":{"_postman_id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","name":"ZenABM API (from spec)","type":"collection"}},"urlObject":{"path":["companies",":id","timeline"],"host":["https://app.zenabm.com/api/v1"],"query":[{"description":{"content":"<p>Start date (ISO format, default: 30 days ago)</p>\n","type":"text/plain"},"key":"startDate","value":"2018-09-03"},{"description":{"content":"<p>End date (ISO format, default: today)</p>\n","type":"text/plain"},"key":"endDate","value":"2018-09-03"}],"variable":[{"description":{"content":"<p>Company ID</p>\n","type":"text/plain"},"type":"any","value":"string","key":"id"}]}},"response":[{"id":"1831e6c9-7844-415d-b263-4f45ea309a71","name":"Company timeline events","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"https://app.zenabm.com/api/v1/companies/:id/timeline?startDate=2018-09-03&endDate=2018-09-03","host":["https://app.zenabm.com/api/v1"],"path":["companies",":id","timeline"],"query":[{"description":"Start date (ISO format, default: 30 days ago)","key":"startDate","value":"2018-09-03"},{"description":"End date (ISO format, default: today)","key":"endDate","value":"2018-09-03"}],"variable":[{"key":"id","value":"string","description":"Company ID"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"data\": {\n    \"summary\": {\n      \"impressions\": 109617,\n      \"clicks\": 468,\n      \"engagements\": 2769,\n      \"costInUsd\": 2797.37\n    },\n    \"deals\": [],\n    \"stageHistory\": [\n      {\n        \"stageId\": \"1337_identified\",\n        \"stageName\": \"Identified\",\n        \"stageColor\": \"#3B82F6\",\n        \"enteredAt\": \"2025-03-01T00:00:00.000Z\",\n        \"previousStageName\": null\n      },\n      {\n        \"stageId\": \"1337_aware\",\n        \"stageName\": \"Aware\",\n        \"stageColor\": \"#A855F7\",\n        \"enteredAt\": \"2025-04-15T00:00:00.000Z\",\n        \"previousStageName\": \"Identified\"\n      }\n    ]\n  },\n  \"meta\": {\n    \"timestamp\": \"2026-03-09T19:00:28.135Z\"\n  }\n}"}],"_postman_id":"018ceb0b-0b65-4b9c-8281-dfb00629714a"},{"name":"Get company activity log","id":"26f3abad-70d2-4f8b-bfd4-152d2c022398","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"https://app.zenabm.com/api/v1/companies/:id/activity-log?page=1&pageSize=20&startDate=2018-09-03&endDate=2018-09-03","description":"<p>Merged chronological feed of stage changes, deals, intents, and exclusions. Paginated via <code>page</code>/<code>pageSize</code>. Note: <code>totalCount</code>/<code>totalPages</code> are not returned because the feed is merged from multiple sources. Pass <code>startDate</code>/<code>endDate</code> (YYYY-MM-DD) to scope the feed to a window — when a date range is supplied, weekly LinkedIn ad-activity entries (<code>type: \"linkedin_activity_week\"</code>, carrying a <code>metrics</code> object with impressions/clicks/engagements/costInUsd) are merged into the feed.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{bearerToken}}"}]},"isInherited":true,"source":{"_postman_id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","name":"ZenABM API (from spec)","type":"collection"}},"urlObject":{"path":["companies",":id","activity-log"],"host":["https://app.zenabm.com/api/v1"],"query":[{"description":{"content":"<p>Page number (default: 1)</p>\n","type":"text/plain"},"key":"page","value":"1"},{"description":{"content":"<p>Items per page (default: 20, max: 100)</p>\n","type":"text/plain"},"key":"pageSize","value":"20"},{"description":{"content":"<p>Start date (YYYY-MM-DD). When provided with endDate, overrides the period parameter.</p>\n","type":"text/plain"},"key":"startDate","value":"2018-09-03"},{"description":{"content":"<p>End date (YYYY-MM-DD). When provided with startDate, overrides the period parameter.</p>\n","type":"text/plain"},"key":"endDate","value":"2018-09-03"}],"variable":[{"description":{"content":"<p>Company ID</p>\n","type":"text/plain"},"type":"any","value":"string","key":"id"}]}},"response":[{"id":"26217de1-dc71-40fe-bf81-35a0bac1fe1a","name":"Company activity log entries","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"https://app.zenabm.com/api/v1/companies/:id/activity-log?page=1&pageSize=20&startDate=2018-09-03&endDate=2018-09-03","host":["https://app.zenabm.com/api/v1"],"path":["companies",":id","activity-log"],"query":[{"description":"Page number (default: 1)","key":"page","value":"1"},{"description":"Items per page (default: 20, max: 100)","key":"pageSize","value":"20"},{"description":"Start date (YYYY-MM-DD). When provided with endDate, overrides the period parameter.","key":"startDate","value":"2018-09-03"},{"description":"End date (YYYY-MM-DD). When provided with startDate, overrides the period parameter.","key":"endDate","value":"2018-09-03"}],"variable":[{"key":"id","value":"string","description":"Company ID"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"data\": [\n    {\n      \"id\": \"linkedin-activity-clxyz789\",\n      \"type\": \"linkedin_activity_week\",\n      \"date\": \"2026-05-04T00:00:00.000Z\",\n      \"title\": \"LinkedIn ad activity\",\n      \"description\": \"4,210 impressions · 38 clicks · 12 engagements\",\n      \"metrics\": {\n        \"impressions\": 4210,\n        \"clicks\": 38,\n        \"engagements\": 12,\n        \"costInUsd\": 142.87\n      }\n    },\n    {\n      \"id\": \"lifetime-stage-1337\",\n      \"type\": \"lifetime_abm_stage_change\",\n      \"date\": \"2026-03-28T11:00:00.000Z\",\n      \"title\": \"Lifetime ABM Stage changed to Interested\",\n      \"description\": \"Previously: Aware\",\n      \"toStage\": {\n        \"id\": \"1337_interested\",\n        \"name\": \"Interested\",\n        \"color\": \"#10B981\"\n      },\n      \"fromStage\": {\n        \"id\": \"1337_aware\",\n        \"name\": \"Aware\",\n        \"color\": \"#A855F7\"\n      }\n    },\n    {\n      \"id\": \"lifetime-stage-1338\",\n      \"type\": \"lifetime_abm_stage_change\",\n      \"date\": \"2026-03-15T08:00:00.000Z\",\n      \"title\": \"Lifetime ABM Stage changed to Aware\",\n      \"description\": \"Previously: Identified\",\n      \"toStage\": {\n        \"id\": \"1337_aware\",\n        \"name\": \"Aware\",\n        \"color\": \"#A855F7\"\n      },\n      \"fromStage\": {\n        \"id\": \"1337_identified\",\n        \"name\": \"Identified\",\n        \"color\": \"#3B82F6\"\n      }\n    }\n  ],\n  \"pagination\": {\n    \"page\": 1,\n    \"pageSize\": 20\n  },\n  \"meta\": {\n    \"timestamp\": \"2026-04-12T19:02:02.855Z\"\n  }\n}"}],"_postman_id":"26f3abad-70d2-4f8b-bfd4-152d2c022398"},{"name":"Get deals for a company","id":"acd347ce-0412-4797-8300-93b11bf52e6b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"https://app.zenabm.com/api/v1/companies/:id/deals?page=1&pageSize=20&sortBy=createdAt&sortOrder=desc","description":"<p>Optional filters: sortBy, sortOrder</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{bearerToken}}"}]},"isInherited":true,"source":{"_postman_id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","name":"ZenABM API (from spec)","type":"collection"}},"urlObject":{"path":["companies",":id","deals"],"host":["https://app.zenabm.com/api/v1"],"query":[{"description":{"content":"<p>Page number (default: 1)</p>\n","type":"text/plain"},"key":"page","value":"1"},{"description":{"content":"<p>Items per page (default: 20, max: 100)</p>\n","type":"text/plain"},"key":"pageSize","value":"20"},{"description":{"content":"<p>Field to sort by (default: createdAt)</p>\n","type":"text/plain"},"key":"sortBy","value":"createdAt"},{"description":{"content":"<p>Sort direction</p>\n","type":"text/plain"},"key":"sortOrder","value":"desc"}],"variable":[{"description":{"content":"<p>Company ID</p>\n","type":"text/plain"},"type":"any","value":"string","key":"id"}]}},"response":[{"id":"964bb6df-2617-47a1-8719-4d69a6f9d49d","name":"Deals for company","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"https://app.zenabm.com/api/v1/companies/:id/deals?page=1&pageSize=20&sortBy=createdAt&sortOrder=desc","host":["https://app.zenabm.com/api/v1"],"path":["companies",":id","deals"],"query":[{"description":"Page number (default: 1)","key":"page","value":"1"},{"description":"Items per page (default: 20, max: 100)","key":"pageSize","value":"20"},{"description":"Field to sort by (default: createdAt)","key":"sortBy","value":"createdAt"},{"description":"Sort direction","key":"sortOrder","value":"desc"}],"variable":[{"key":"id","value":"string","description":"Company ID"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"data\": {\n    \"data\": [\n      {\n        \"id\": \"clxyz123abc\",\n        \"source\": \"hubspot\",\n        \"dealName\": \"Acme Corp - Enterprise License\",\n        \"externalId\": \"12345678\",\n        \"externalUrl\": \"https://app.hubspot.com/contacts/98765432/record/0-3/12345678/\",\n        \"amount\": 45000,\n        \"linkedinInfluenced\": true,\n        \"abmInfluenced\": true,\n        \"createdAt\": \"2025-03-15T10:30:00.000Z\",\n        \"closedAt\": \"2025-06-20T14:00:00.000Z\",\n        \"company\": {\n          \"id\": \"1337\",\n          \"name\": \"Pied Piper\",\n          \"logoUrl\": \"https://piedpiper.com/assets/images/logo.png\",\n          \"website\": \"https://piedpiper.com\",\n          \"linkedInOrgId\": \"12345\",\n          \"hubspotCompanyId\": \"9876543\",\n          \"country\": \"United States\",\n          \"hubspotPortalId\": \"98765432\"\n        },\n        \"stage\": {\n          \"id\": \"1337_closed_won\",\n          \"name\": \"Closed Won\"\n        },\n        \"campaigns\": [\n          {\n            \"id\": \"1337\",\n            \"name\": \"Q1 Enterprise ABM Campaign\"\n          }\n        ],\n        \"impressionsBeforeDeal\": 8450,\n        \"impressionsAfterDeal\": 3200,\n        \"linkedinImpressionsBeforeDeal\": 5200,\n        \"abmImpressionsBeforeDeal\": 3250,\n        \"linkedinImpressionsAfterDeal\": 1800,\n        \"abmImpressionsAfterDeal\": 1400,\n        \"clicksBeforeDeal\": 142,\n        \"clicksAfterDeal\": 58,\n        \"linkedinClicksBeforeDeal\": 89,\n        \"abmClicksBeforeDeal\": 53,\n        \"linkedinClicksAfterDeal\": 34,\n        \"abmClicksAfterDeal\": 24,\n        \"engagementsBeforeDeal\": 312,\n        \"engagementsAfterDeal\": 95,\n        \"linkedinEngagementsBeforeDeal\": 198,\n        \"abmEngagementsBeforeDeal\": 114,\n        \"linkedinEngagementsAfterDeal\": 60,\n        \"abmEngagementsAfterDeal\": 35\n      }\n    ],\n    \"count\": 3\n  },\n  \"pagination\": {\n    \"page\": 1,\n    \"pageSize\": 20,\n    \"totalCount\": 3,\n    \"totalPages\": 1\n  },\n  \"meta\": {\n    \"timestamp\": \"2026-04-12T12:00:00.000Z\"\n  }\n}"}],"_postman_id":"acd347ce-0412-4797-8300-93b11bf52e6b"},{"name":"Get ABM stages for a company","id":"3715014b-b1c4-4f2b-8c41-8eeabe23915b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"https://app.zenabm.com/api/v1/companies/:id/abm-stages","description":"<p>Returns the ABM stage history for a company, showing progression through your funnel.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{bearerToken}}"}]},"isInherited":true,"source":{"_postman_id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","name":"ZenABM API (from spec)","type":"collection"}},"urlObject":{"path":["companies",":id","abm-stages"],"host":["https://app.zenabm.com/api/v1"],"query":[],"variable":[{"description":{"content":"<p>Company ID</p>\n","type":"text/plain"},"type":"any","value":"string","key":"id"}]}},"response":[{"id":"d812a831-6b69-440e-b72b-c6269ddc73df","name":"ABM stage history for company","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"https://app.zenabm.com/api/v1/companies/:id/abm-stages","host":["https://app.zenabm.com/api/v1"],"path":["companies",":id","abm-stages"],"variable":[{"key":"id","value":"string","description":"Company ID"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"data\": [\n    {\n      \"context\": \"overall\",\n      \"abmStage\": {\n        \"id\": \"cls1abc123\",\n        \"name\": \"Engaged\",\n        \"color\": \"#4CAF50\"\n      },\n      \"previousStage\": {\n        \"id\": \"cls2def456\",\n        \"name\": \"Aware\",\n        \"color\": \"#FFC107\"\n      },\n      \"campaign\": null,\n      \"stageHistory\": [\n        {\n          \"stageId\": \"cls1abc123\",\n          \"stageName\": \"Engaged\",\n          \"color\": \"#4CAF50\",\n          \"date\": \"2025-08-12T09:30:00.000Z\"\n        },\n        {\n          \"stageId\": \"cls2def456\",\n          \"stageName\": \"Aware\",\n          \"color\": \"#FFC107\",\n          \"date\": \"2025-04-20T14:15:00.000Z\"\n        }\n      ],\n      \"latestChangeDate\": \"2025-08-12T09:30:00.000Z\"\n    },\n    {\n      \"context\": \"lifetime\",\n      \"abmStage\": {\n        \"id\": \"cls1abc123\",\n        \"name\": \"Engaged\",\n        \"color\": \"#4CAF50\"\n      },\n      \"previousStage\": null,\n      \"campaign\": null,\n      \"stageHistory\": [],\n      \"latestChangeDate\": null\n    },\n    {\n      \"context\": \"campaign\",\n      \"abmStage\": {\n        \"id\": \"cls3ghi789\",\n        \"name\": \"MQL\",\n        \"color\": \"#2196F3\"\n      },\n      \"previousStage\": {\n        \"id\": \"cls1abc123\",\n        \"name\": \"Engaged\",\n        \"color\": \"#4CAF50\"\n      },\n      \"campaign\": {\n        \"id\": \"cm7abmcamp1\",\n        \"name\": \"Q1 Enterprise ABM Campaign\"\n      },\n      \"stageHistory\": [\n        {\n          \"stageId\": \"cls3ghi789\",\n          \"stageName\": \"MQL\",\n          \"color\": \"#2196F3\",\n          \"date\": \"2025-09-01T11:00:00.000Z\"\n        },\n        {\n          \"stageId\": \"cls1abc123\",\n          \"stageName\": \"Engaged\",\n          \"color\": \"#4CAF50\",\n          \"date\": \"2025-06-15T08:45:00.000Z\"\n        }\n      ],\n      \"latestChangeDate\": \"2025-09-01T11:00:00.000Z\"\n    }\n  ],\n  \"meta\": {\n    \"timestamp\": \"2026-03-09T12:00:00.000Z\"\n  }\n}"}],"_postman_id":"3715014b-b1c4-4f2b-8c41-8eeabe23915b"}],"id":"d84e778d-3339-4b98-afa6-ab7d83a9e6f8","_postman_id":"d84e778d-3339-4b98-afa6-ab7d83a9e6f8","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{bearerToken}}"}]},"isInherited":true,"source":{"_postman_id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","name":"ZenABM API (from spec)","type":"collection"}}},{"name":"Ad Sets","item":[{"name":"List Ad Sets with insights","id":"5d000545-21bc-4ff5-b6b5-a87c4a9bf5ff","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"https://app.zenabm.com/api/v1/campaigns?page=1&pageSize=20&period=last30Days&startDate=2018-09-03&endDate=2018-09-03&sortBy=string&sortOrder=desc&search=string&status=ACTIVE,PAUSED","description":"<p>Returns a paginated list of LinkedIn Ad Sets with aggregated performance metrics for the requested date range. Filter by status (default: ACTIVE,PAUSED) or search by name. Each item includes both ZenABM's internal <code>id</code> (when the ad set has been imported) and the LinkedIn-native <code>linkedInId</code>. To list ad sets within a specific ABM campaign use <code>/abm-campaigns/{id}</code> instead.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{bearerToken}}"}]},"isInherited":true,"source":{"_postman_id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","name":"ZenABM API (from spec)","type":"collection"}},"urlObject":{"path":["campaigns"],"host":["https://app.zenabm.com/api/v1"],"query":[{"description":{"content":"<p>Page number (default: 1)</p>\n","type":"text/plain"},"key":"page","value":"1"},{"description":{"content":"<p>Items per page (default: 20, max: 100)</p>\n","type":"text/plain"},"key":"pageSize","value":"20"},{"description":{"content":"<p>Time period preset. Ignored when startDate/endDate are provided.</p>\n","type":"text/plain"},"key":"period","value":"last30Days"},{"description":{"content":"<p>Start date (YYYY-MM-DD). When provided with endDate, overrides the period parameter.</p>\n","type":"text/plain"},"key":"startDate","value":"2018-09-03"},{"description":{"content":"<p>End date (YYYY-MM-DD). When provided with startDate, overrides the period parameter.</p>\n","type":"text/plain"},"key":"endDate","value":"2018-09-03"},{"description":{"content":"<p>Field to sort by (e.g. impressions, clicks, engagements)</p>\n","type":"text/plain"},"key":"sortBy","value":"string"},{"description":{"content":"<p>Sort direction</p>\n","type":"text/plain"},"key":"sortOrder","value":"desc"},{"description":{"content":"<p>Search filter</p>\n","type":"text/plain"},"key":"search","value":"string"},{"description":{"content":"<p>Comma-separated statuses: ACTIVE,PAUSED,ARCHIVED,DRAFT,COMPLETED. Default: ACTIVE,PAUSED.</p>\n","type":"text/plain"},"key":"status","value":"ACTIVE,PAUSED"}],"variable":[]}},"response":[{"id":"cf9725a1-3c37-4126-b815-12a6748055b1","name":"Paginated list of Ad Sets","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"https://app.zenabm.com/api/v1/campaigns?page=1&pageSize=20&period=last30Days&startDate=2018-09-03&endDate=2018-09-03&sortBy=string&sortOrder=desc&search=string&status=ACTIVE,PAUSED","host":["https://app.zenabm.com/api/v1"],"path":["campaigns"],"query":[{"description":"Page number (default: 1)","key":"page","value":"1"},{"description":"Items per page (default: 20, max: 100)","key":"pageSize","value":"20"},{"description":"Time period preset. Ignored when startDate/endDate are provided.","key":"period","value":"last30Days"},{"description":"Start date (YYYY-MM-DD). When provided with endDate, overrides the period parameter.","key":"startDate","value":"2018-09-03"},{"description":"End date (YYYY-MM-DD). When provided with startDate, overrides the period parameter.","key":"endDate","value":"2018-09-03"},{"description":"Field to sort by (e.g. impressions, clicks, engagements)","key":"sortBy","value":"string"},{"description":"Sort direction","key":"sortOrder","value":"desc"},{"description":"Search filter","key":"search","value":"string"},{"description":"Comma-separated statuses: ACTIVE,PAUSED,ARCHIVED,DRAFT,COMPLETED. Default: ACTIVE,PAUSED.","key":"status","value":"ACTIVE,PAUSED"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"data\": [\n    {\n      \"id\": \"cmf8a9q2k0001of04w7v3lqz9\",\n      \"linkedInId\": \"1336\",\n      \"name\": \"Techcrunch 2025\",\n      \"status\": \"ACTIVE\",\n      \"format\": \"Single Image\",\n      \"servingStatuses\": [\n        \"RUNNABLE\"\n      ],\n      \"parentCampaignLinkedInId\": \"1337\",\n      \"runScheduleStart\": 1735689600000,\n      \"runScheduleEnd\": 1767225600000,\n      \"totalBudgetAmount\": \"5000.00\",\n      \"totalBudgetCurrency\": \"USD\",\n      \"impressions\": 128157,\n      \"clicks\": 501,\n      \"engagements\": 809,\n      \"costInUsd\": 8202.59,\n      \"conversions\": 213,\n      \"ctr\": 0.39,\n      \"cpc\": 16.37\n    }\n  ],\n  \"pagination\": {\n    \"page\": 1,\n    \"pageSize\": 20,\n    \"totalCount\": 472,\n    \"totalPages\": 24\n  },\n  \"meta\": {\n    \"timestamp\": \"2026-03-09T19:06:51.685Z\"\n  }\n}"}],"_postman_id":"5d000545-21bc-4ff5-b6b5-a87c4a9bf5ff"},{"name":"Get Ad Set by ID","id":"469ddf06-b271-47e2-b832-f1a3a1ad2b38","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"https://app.zenabm.com/api/v1/campaigns/:id","description":"<p>Identity and relations only. Delivery settings (budgets, bid, objective, cost type, optimization target, pacing, Audience Expansion, LinkedIn Audience Network), audience size and targeting come from <code>/campaigns/{id}/settings</code>, which reads them live from LinkedIn Campaign Manager.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{bearerToken}}"}]},"isInherited":true,"source":{"_postman_id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","name":"ZenABM API (from spec)","type":"collection"}},"urlObject":{"path":["campaigns",":id"],"host":["https://app.zenabm.com/api/v1"],"query":[],"variable":[{"description":{"content":"<p>Ad Set ID</p>\n","type":"text/plain"},"type":"any","value":"string","key":"id"}]}},"response":[{"id":"49232919-a38c-4019-908e-5d7227e1480f","name":"Ad Set details","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"https://app.zenabm.com/api/v1/campaigns/:id","host":["https://app.zenabm.com/api/v1"],"path":["campaigns",":id"],"variable":[{"key":"id","value":"string","description":"Ad Set ID"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"data\": {\n    \"id\": \"1337\",\n    \"linkedInId\": \"330784953\",\n    \"name\": \"Techcrunch 2025\",\n    \"status\": \"ACTIVE\",\n    \"campaignId\": \"1337\",\n    \"syncStartDate\": \"2025-01-01T00:00:00.000Z\",\n    \"createdAt\": \"2025-01-01T00:00:00.000Z\",\n    \"updatedAt\": \"2025-09-15T00:00:00.000Z\",\n    \"teamId\": \"1337\",\n    \"intentId\": null,\n    \"format\": \"Single Image\",\n    \"campaign\": {\n      \"id\": \"1337\",\n      \"linkedInId\": \"710869393\",\n      \"name\": \"Techcrunch 2025\",\n      \"status\": \"ACTIVE\",\n      \"createdAt\": \"2025-01-01T00:00:00.000Z\",\n      \"updatedAt\": \"2025-09-15T00:00:00.000Z\",\n      \"teamId\": \"1337\",\n      \"syncStartDate\": \"2025-01-01T00:00:00.000Z\",\n      \"intentId\": null\n    },\n    \"intent\": null\n  },\n  \"meta\": {\n    \"timestamp\": \"2026-03-09T19:09:39.624Z\"\n  }\n}"}],"_postman_id":"469ddf06-b271-47e2-b832-f1a3a1ad2b38"},{"name":"Get Ad Set delivery and targeting settings","id":"88d20084-36bf-4e3b-8e96-7cb1f64d816c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"https://app.zenabm.com/api/v1/campaigns/:id/settings","description":"<p>Read LIVE from LinkedIn Campaign Manager on every call, not from ZenABM's sync, so it reflects an edit made minutes ago. Fields listed in <code>unknownSettings</code> were not returned by LinkedIn — treat them as unknown, never as \"off\". <code>audienceSize</code> is the estimated ADDRESSABLE audience, not reach: <code>impressions / audienceSize</code> is only a lower bound on frequency, and exclusions are left out of it (see <code>audienceSizeExcludesApplied</code>). Each targeting facet reports <code>count</code> (values targeted), <code>values</code> (readable names only) and <code>unnamed</code> (values with no name available, most often specific geographic locations). Returns 502 if LinkedIn is unreachable rather than falling back to synced values.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{bearerToken}}"}]},"isInherited":true,"source":{"_postman_id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","name":"ZenABM API (from spec)","type":"collection"}},"urlObject":{"path":["campaigns",":id","settings"],"host":["https://app.zenabm.com/api/v1"],"query":[],"variable":[{"description":{"content":"<p>Ad Set ID</p>\n","type":"text/plain"},"type":"any","value":"string","key":"id"}]}},"response":[{"id":"5ffd5066-8a02-4147-abdb-13f26d06178e","name":"Live Ad Set settings","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"https://app.zenabm.com/api/v1/campaigns/:id/settings","host":["https://app.zenabm.com/api/v1"],"path":["campaigns",":id","settings"],"variable":[{"key":"id","value":"string","description":"Ad Set ID"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"data\": {\n    \"id\": \"1337\",\n    \"linkedInId\": \"330784953\",\n    \"name\": \"Techcrunch 2025\",\n    \"status\": \"ACTIVE\",\n    \"format\": \"Single Image\",\n    \"campaignId\": \"1337\",\n    \"campaign\": {\n      \"id\": \"1337\",\n      \"name\": \"Techcrunch 2025\"\n    },\n    \"source\": \"linkedin\",\n    \"delivery\": {\n      \"dailyBudget\": 90,\n      \"totalBudget\": null,\n      \"unitCost\": 16,\n      \"currency\": \"USD\",\n      \"objectiveType\": \"WEBSITE_VISIT\",\n      \"costType\": \"CPM\",\n      \"optimizationTarget\": \"MAX_CLICK\",\n      \"pacingStrategy\": \"LIFETIME_EVEN_PACED\",\n      \"audienceExpansion\": false,\n      \"offsiteDelivery\": false\n    },\n    \"audienceSize\": 84000,\n    \"audienceSizeUnavailableReason\": null,\n    \"unknownSettings\": [],\n    \"targeting\": {\n      \"included\": {\n        \"jobTitles\": {\n          \"count\": 12,\n          \"values\": [\n            \"Head of Marketing\",\n            \"VP Marketing\"\n          ],\n          \"truncated\": false,\n          \"unnamed\": 0\n        },\n        \"seniorities\": {\n          \"count\": 2,\n          \"values\": [\n            \"Director\",\n            \"VP\"\n          ],\n          \"truncated\": false,\n          \"unnamed\": 0\n        },\n        \"locations\": {\n          \"count\": 3,\n          \"values\": [\n            \"European Union\"\n          ],\n          \"truncated\": false,\n          \"unnamed\": 2\n        }\n      },\n      \"excluded\": {\n        \"jobTitles\": {\n          \"count\": 1,\n          \"values\": [\n            \"Intern\"\n          ],\n          \"truncated\": false,\n          \"unnamed\": 0\n        }\n      }\n    }\n  },\n  \"meta\": {\n    \"timestamp\": \"2026-07-26T09:12:00.000Z\"\n  }\n}"}],"_postman_id":"88d20084-36bf-4e3b-8e96-7cb1f64d816c"},{"name":"Get LinkedIn's suggested bid for an Ad Set","id":"e751d377-b1bd-49fa-9db1-a0375551173f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"https://app.zenabm.com/api/v1/campaigns/:id/suggested-bid","description":"<p>LinkedIn's suggested bid for the Ad Set — the same number Campaign Manager shows — plus the allowed bid range and daily budget limits. Read LIVE on every call: the Ad Set's current targeting, objective and cost type are echoed into LinkedIn's pricing finder, so the answer reflects edits made minutes ago. Also returns the current bid and daily budget for context. Not available for Dynamic Ads. Returns 422 when the Ad Set cannot be priced (Dynamic Ads, unsupported cost/campaign type, missing or oversized targeting), 502 when LinkedIn is unreachable or has no pricing for the targeting.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{bearerToken}}"}]},"isInherited":true,"source":{"_postman_id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","name":"ZenABM API (from spec)","type":"collection"}},"urlObject":{"path":["campaigns",":id","suggested-bid"],"host":["https://app.zenabm.com/api/v1"],"query":[],"variable":[{"description":{"content":"<p>Ad Set ID</p>\n","type":"text/plain"},"type":"any","value":"string","key":"id"}]}},"response":[{"id":"cf2b2cae-b6ee-4914-80f1-81afd10fa0dc","name":"Suggested bid and limits","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"https://app.zenabm.com/api/v1/campaigns/:id/suggested-bid","host":["https://app.zenabm.com/api/v1"],"path":["campaigns",":id","suggested-bid"],"variable":[{"key":"id","value":"string","description":"Ad Set ID"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"data\": {\n    \"success\": true,\n    \"linkedInId\": \"330784953\",\n    \"adSetName\": \"Techcrunch 2025\",\n    \"currency\": \"USD\",\n    \"suggestedBid\": {\n      \"default\": 7.1,\n      \"min\": 7.1,\n      \"max\": 11.14\n    },\n    \"bidLimits\": {\n      \"min\": 4,\n      \"max\": 100\n    },\n    \"dailyBudgetLimits\": {\n      \"default\": 25,\n      \"min\": 10,\n      \"max\": 1000000\n    },\n    \"currentBid\": 16,\n    \"currentDailyBudget\": 90,\n    \"costType\": \"CPM\",\n    \"optimizationTargetType\": \"MAX_CLICK\"\n  },\n  \"meta\": {\n    \"timestamp\": \"2026-08-05T09:12:00.000Z\"\n  }\n}"}],"_postman_id":"e751d377-b1bd-49fa-9db1-a0375551173f"},{"name":"Get Ad Set metrics overview","id":"23815d9c-6d3f-46d8-8b9a-37dfee6a7866","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"https://app.zenabm.com/api/v1/campaigns/:id/overview?period=last30Days&startDate=2018-09-03&endDate=2018-09-03","description":"<p>Performance totals for a single Ad Set over the requested date range (no weekly breakdown).</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{bearerToken}}"}]},"isInherited":true,"source":{"_postman_id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","name":"ZenABM API (from spec)","type":"collection"}},"urlObject":{"path":["campaigns",":id","overview"],"host":["https://app.zenabm.com/api/v1"],"query":[{"description":{"content":"<p>Time period preset. Ignored when startDate/endDate are provided.</p>\n","type":"text/plain"},"key":"period","value":"last30Days"},{"description":{"content":"<p>Start date (YYYY-MM-DD). When provided with endDate, overrides the period parameter.</p>\n","type":"text/plain"},"key":"startDate","value":"2018-09-03"},{"description":{"content":"<p>End date (YYYY-MM-DD). When provided with startDate, overrides the period parameter.</p>\n","type":"text/plain"},"key":"endDate","value":"2018-09-03"}],"variable":[{"description":{"content":"<p>Ad Set ID</p>\n","type":"text/plain"},"type":"any","value":"string","key":"id"}]}},"response":[{"id":"f92bc011-9651-4f1e-95d9-7017aea98864","name":"Ad Set performance summary for the date range","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"https://app.zenabm.com/api/v1/campaigns/:id/overview?period=last30Days&startDate=2018-09-03&endDate=2018-09-03","host":["https://app.zenabm.com/api/v1"],"path":["campaigns",":id","overview"],"query":[{"description":"Time period preset. Ignored when startDate/endDate are provided.","key":"period","value":"last30Days"},{"description":"Start date (YYYY-MM-DD). When provided with endDate, overrides the period parameter.","key":"startDate","value":"2018-09-03"},{"description":"End date (YYYY-MM-DD). When provided with startDate, overrides the period parameter.","key":"endDate","value":"2018-09-03"}],"variable":[{"key":"id","value":"string","description":"Ad Set ID"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"data\": {\n    \"startDate\": \"2026-04-13\",\n    \"endDate\": \"2026-05-13\",\n    \"format\": \"Single Image\",\n    \"impressions\": 102666,\n    \"clicks\": 264,\n    \"engagements\": 1136,\n    \"costInUsd\": 4571.02,\n    \"conversions\": 200,\n    \"ctr\": 0.26,\n    \"cpc\": 17.32\n  },\n  \"meta\": {\n    \"timestamp\": \"2026-05-13T19:08:06.843Z\"\n  }\n}"}],"_postman_id":"23815d9c-6d3f-46d8-8b9a-37dfee6a7866"},{"name":"List companies for a Ad Set","id":"00acfee0-fb65-4dda-8013-72b270bc5c9e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"https://app.zenabm.com/api/v1/campaigns/:id/companies?page=1&pageSize=20&period=last30Days&startDate=2018-09-03&endDate=2018-09-03&sortBy=string&sortOrder=desc&search=string&hideExcludedCompanies=false","description":"<p>Optional filters: sortBy, sortOrder, search</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{bearerToken}}"}]},"isInherited":true,"source":{"_postman_id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","name":"ZenABM API (from spec)","type":"collection"}},"urlObject":{"path":["campaigns",":id","companies"],"host":["https://app.zenabm.com/api/v1"],"query":[{"description":{"content":"<p>Page number (default: 1)</p>\n","type":"text/plain"},"key":"page","value":"1"},{"description":{"content":"<p>Items per page (default: 20, max: 100)</p>\n","type":"text/plain"},"key":"pageSize","value":"20"},{"description":{"content":"<p>Time period preset. Ignored when startDate/endDate are provided.</p>\n","type":"text/plain"},"key":"period","value":"last30Days"},{"description":{"content":"<p>Start date (YYYY-MM-DD). When provided with endDate, overrides the period parameter.</p>\n","type":"text/plain"},"key":"startDate","value":"2018-09-03"},{"description":{"content":"<p>End date (YYYY-MM-DD). When provided with startDate, overrides the period parameter.</p>\n","type":"text/plain"},"key":"endDate","value":"2018-09-03"},{"description":{"content":"<p>Field to sort by (e.g. impressions, clicks, engagements)</p>\n","type":"text/plain"},"key":"sortBy","value":"string"},{"description":{"content":"<p>Sort direction</p>\n","type":"text/plain"},"key":"sortOrder","value":"desc"},{"description":{"content":"<p>Search filter</p>\n","type":"text/plain"},"key":"search","value":"string"},{"description":{"content":"<p>When <code>true</code>, hides companies with a COMPANY exclusion that applies to this Ad Set — a team-wide exclusion, or one scoped specifically to this Ad Set (matches the \"Excluded\" badge in the UI). An exclusion scoped to a different Ad Set or Campaign does not apply here.</p>\n","type":"text/plain"},"key":"hideExcludedCompanies","value":"false"}],"variable":[{"description":{"content":"<p>Ad Set ID</p>\n","type":"text/plain"},"type":"any","value":"string","key":"id"}]}},"response":[{"id":"bf84e143-255b-495c-aa78-9b06866e99ee","name":"Paginated companies for Ad Set","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"https://app.zenabm.com/api/v1/campaigns/:id/companies?page=1&pageSize=20&period=last30Days&startDate=2018-09-03&endDate=2018-09-03&sortBy=string&sortOrder=desc&search=string&hideExcludedCompanies=false","host":["https://app.zenabm.com/api/v1"],"path":["campaigns",":id","companies"],"query":[{"description":"Page number (default: 1)","key":"page","value":"1"},{"description":"Items per page (default: 20, max: 100)","key":"pageSize","value":"20"},{"description":"Time period preset. Ignored when startDate/endDate are provided.","key":"period","value":"last30Days"},{"description":"Start date (YYYY-MM-DD). When provided with endDate, overrides the period parameter.","key":"startDate","value":"2018-09-03"},{"description":"End date (YYYY-MM-DD). When provided with startDate, overrides the period parameter.","key":"endDate","value":"2018-09-03"},{"description":"Field to sort by (e.g. impressions, clicks, engagements)","key":"sortBy","value":"string"},{"description":"Sort direction","key":"sortOrder","value":"desc"},{"description":"Search filter","key":"search","value":"string"},{"description":"When `true`, hides companies with a COMPANY exclusion that applies to this Ad Set — a team-wide exclusion, or one scoped specifically to this Ad Set (matches the \"Excluded\" badge in the UI). An exclusion scoped to a different Ad Set or Campaign does not apply here.","key":"hideExcludedCompanies","value":"false"}],"variable":[{"key":"id","value":"string","description":"Ad Set ID"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"data\": [\n    {\n      \"id\": \"1337\",\n      \"name\": \"Pied Piper\",\n      \"city\": \"San Francisco\",\n      \"country\": \"US\",\n      \"website\": \"https://www.piedpiper.com/\",\n      \"linkedInOrgId\": \"4827017\",\n      \"hubspotCompanyId\": \"37411334702\",\n      \"attioRecordId\": \"a1b2c3d4-5e6f-4a7b-8c9d-0e1f2a3b4c5d\",\n      \"logoUrl\": \"https://piedpiper.com/assets/images/logo.png\",\n      \"lifetimeEngagementScore\": 2,\n      \"abmStage\": {\n        \"id\": \"1337_aware\",\n        \"name\": \"Aware\",\n        \"color\": \"#A855F7\",\n        \"displayOrder\": 2\n      },\n      \"lifetimeAbmStage\": {\n        \"id\": \"1337_interested\",\n        \"name\": \"Interested\",\n        \"color\": \"#10B981\",\n        \"displayOrder\": 3\n      },\n      \"impressions\": 0,\n      \"clicks\": 0,\n      \"engagements\": 0,\n      \"costInUsd\": 0,\n      \"clickThroughRate\": 0,\n      \"costPerClick\": 0,\n      \"cpm\": 0,\n      \"intents\": []\n    }\n  ],\n  \"pagination\": {\n    \"page\": 1,\n    \"pageSize\": 20,\n    \"totalCount\": 501,\n    \"totalPages\": 26\n  },\n  \"meta\": {\n    \"timestamp\": \"2026-03-09T19:10:47.810Z\"\n  }\n}"}],"_postman_id":"00acfee0-fb65-4dda-8013-72b270bc5c9e"},{"name":"Get job title insights for a Ad Set","id":"838e1510-ff39-4bd9-aa15-f7e82de5e4bb","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"https://app.zenabm.com/api/v1/campaigns/:id/job-titles?page=1&pageSize=20&period=last30Days&startDate=2018-09-03&endDate=2018-09-03&sortBy=string&sortOrder=desc&search=string&minImpressions=192.19441793910886&maxImpressions=192.19441793910886&minClicks=192.19441793910886&maxClicks=192.19441793910886&minEngagements=192.19441793910886&maxEngagements=192.19441793910886&minCostInUsd=192.19441793910886&maxCostInUsd=192.19441793910886&minCostPerClick=192.19441793910886&maxCostPerClick=192.19441793910886&minClickThroughRate=192.19441793910886&maxClickThroughRate=192.19441793910886","description":"<p>Returns job title engagement breakdown for a specific campaign.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{bearerToken}}"}]},"isInherited":true,"source":{"_postman_id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","name":"ZenABM API (from spec)","type":"collection"}},"urlObject":{"path":["campaigns",":id","job-titles"],"host":["https://app.zenabm.com/api/v1"],"query":[{"description":{"content":"<p>Page number (default: 1)</p>\n","type":"text/plain"},"key":"page","value":"1"},{"description":{"content":"<p>Items per page (default: 20, max: 100)</p>\n","type":"text/plain"},"key":"pageSize","value":"20"},{"description":{"content":"<p>Time period preset. Ignored when startDate/endDate are provided.</p>\n","type":"text/plain"},"key":"period","value":"last30Days"},{"description":{"content":"<p>Start date (YYYY-MM-DD). When provided with endDate, overrides the period parameter.</p>\n","type":"text/plain"},"key":"startDate","value":"2018-09-03"},{"description":{"content":"<p>End date (YYYY-MM-DD). When provided with startDate, overrides the period parameter.</p>\n","type":"text/plain"},"key":"endDate","value":"2018-09-03"},{"description":{"content":"<p>Field to sort by (e.g. impressions, clicks, engagements)</p>\n","type":"text/plain"},"key":"sortBy","value":"string"},{"description":{"content":"<p>Sort direction</p>\n","type":"text/plain"},"key":"sortOrder","value":"desc"},{"description":{"content":"<p>Search filter</p>\n","type":"text/plain"},"key":"search","value":"string"},{"description":{"content":"<p>Only return rows where impressions is greater than or equal to this value.</p>\n","type":"text/plain"},"key":"minImpressions","value":"192.19441793910886"},{"description":{"content":"<p>Only return rows where impressions is less than or equal to this value.</p>\n","type":"text/plain"},"key":"maxImpressions","value":"192.19441793910886"},{"description":{"content":"<p>Only return rows where clicks is greater than or equal to this value.</p>\n","type":"text/plain"},"key":"minClicks","value":"192.19441793910886"},{"description":{"content":"<p>Only return rows where clicks is less than or equal to this value.</p>\n","type":"text/plain"},"key":"maxClicks","value":"192.19441793910886"},{"description":{"content":"<p>Only return rows where engagements is greater than or equal to this value.</p>\n","type":"text/plain"},"key":"minEngagements","value":"192.19441793910886"},{"description":{"content":"<p>Only return rows where engagements is less than or equal to this value.</p>\n","type":"text/plain"},"key":"maxEngagements","value":"192.19441793910886"},{"description":{"content":"<p>Only return rows where cost in USD is greater than or equal to this value.</p>\n","type":"text/plain"},"key":"minCostInUsd","value":"192.19441793910886"},{"description":{"content":"<p>Only return rows where cost in USD is less than or equal to this value.</p>\n","type":"text/plain"},"key":"maxCostInUsd","value":"192.19441793910886"},{"description":{"content":"<p>Only return rows where cost per click (CPC) is greater than or equal to this value.</p>\n","type":"text/plain"},"key":"minCostPerClick","value":"192.19441793910886"},{"description":{"content":"<p>Only return rows where cost per click (CPC) is less than or equal to this value.</p>\n","type":"text/plain"},"key":"maxCostPerClick","value":"192.19441793910886"},{"description":{"content":"<p>Only return rows where click-through rate (CTR, as a percentage) is greater than or equal to this value.</p>\n","type":"text/plain"},"key":"minClickThroughRate","value":"192.19441793910886"},{"description":{"content":"<p>Only return rows where click-through rate (CTR, as a percentage) is less than or equal to this value.</p>\n","type":"text/plain"},"key":"maxClickThroughRate","value":"192.19441793910886"}],"variable":[{"description":{"content":"<p>Ad Set ID</p>\n","type":"text/plain"},"type":"any","value":"string","key":"id"}]}},"response":[{"id":"f6468a80-141e-495c-bd4a-814765df2fa7","name":"Job title insights for Ad Set","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"https://app.zenabm.com/api/v1/campaigns/:id/job-titles?page=1&pageSize=20&period=last30Days&startDate=2018-09-03&endDate=2018-09-03&sortBy=string&sortOrder=desc&search=string&minImpressions=192.19441793910886&maxImpressions=192.19441793910886&minClicks=192.19441793910886&maxClicks=192.19441793910886&minEngagements=192.19441793910886&maxEngagements=192.19441793910886&minCostInUsd=192.19441793910886&maxCostInUsd=192.19441793910886&minCostPerClick=192.19441793910886&maxCostPerClick=192.19441793910886&minClickThroughRate=192.19441793910886&maxClickThroughRate=192.19441793910886","host":["https://app.zenabm.com/api/v1"],"path":["campaigns",":id","job-titles"],"query":[{"description":"Page number (default: 1)","key":"page","value":"1"},{"description":"Items per page (default: 20, max: 100)","key":"pageSize","value":"20"},{"description":"Time period preset. Ignored when startDate/endDate are provided.","key":"period","value":"last30Days"},{"description":"Start date (YYYY-MM-DD). When provided with endDate, overrides the period parameter.","key":"startDate","value":"2018-09-03"},{"description":"End date (YYYY-MM-DD). When provided with startDate, overrides the period parameter.","key":"endDate","value":"2018-09-03"},{"description":"Field to sort by (e.g. impressions, clicks, engagements)","key":"sortBy","value":"string"},{"description":"Sort direction","key":"sortOrder","value":"desc"},{"description":"Search filter","key":"search","value":"string"},{"description":"Only return rows where impressions is greater than or equal to this value.","key":"minImpressions","value":"192.19441793910886"},{"description":"Only return rows where impressions is less than or equal to this value.","key":"maxImpressions","value":"192.19441793910886"},{"description":"Only return rows where clicks is greater than or equal to this value.","key":"minClicks","value":"192.19441793910886"},{"description":"Only return rows where clicks is less than or equal to this value.","key":"maxClicks","value":"192.19441793910886"},{"description":"Only return rows where engagements is greater than or equal to this value.","key":"minEngagements","value":"192.19441793910886"},{"description":"Only return rows where engagements is less than or equal to this value.","key":"maxEngagements","value":"192.19441793910886"},{"description":"Only return rows where cost in USD is greater than or equal to this value.","key":"minCostInUsd","value":"192.19441793910886"},{"description":"Only return rows where cost in USD is less than or equal to this value.","key":"maxCostInUsd","value":"192.19441793910886"},{"description":"Only return rows where cost per click (CPC) is greater than or equal to this value.","key":"minCostPerClick","value":"192.19441793910886"},{"description":"Only return rows where cost per click (CPC) is less than or equal to this value.","key":"maxCostPerClick","value":"192.19441793910886"},{"description":"Only return rows where click-through rate (CTR, as a percentage) is greater than or equal to this value.","key":"minClickThroughRate","value":"192.19441793910886"},{"description":"Only return rows where click-through rate (CTR, as a percentage) is less than or equal to this value.","key":"maxClickThroughRate","value":"192.19441793910886"}],"variable":[{"key":"id","value":"string","description":"Ad Set ID"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"data\": [\n    {\n      \"jobTitleUrn\": \"urn:li:title:1337\",\n      \"jobTitleName\": \"CEO\",\n      \"impressions\": 12450,\n      \"clicks\": 87,\n      \"engagements\": 342,\n      \"costInUsd\": 891.45,\n      \"averageDwellTime\": 4.2,\n      \"videoViews\": null,\n      \"videoStarts\": null,\n      \"videoFirstQuartileCompletions\": null,\n      \"videoMidpointCompletions\": null,\n      \"videoThirdQuartileCompletions\": null,\n      \"videoCompletions\": null,\n      \"exclusion\": null\n    }\n  ],\n  \"pagination\": {\n    \"page\": 1,\n    \"pageSize\": 20,\n    \"totalCount\": 2,\n    \"totalPages\": 1\n  },\n  \"meta\": {\n    \"timestamp\": \"2026-03-09T12:00:00.000Z\"\n  }\n}"}],"_postman_id":"838e1510-ff39-4bd9-aa15-f7e82de5e4bb"},{"name":"Ad Set monthly spend","id":"7e392e07-9fc6-4357-a7df-74d4dcd718a8","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"https://app.zenabm.com/api/v1/ad-spend?page=1&pageSize=20&period=last30Days&startDate=2018-09-03&endDate=2018-09-03&linkedInId=123456","description":"<p>Returns ad spend for LinkedIn Ad Sets within the requested date range. Response includes a <code>summary</code> of totals across the whole range and a <code>byAdSet</code> array — one entry per ad set, each carrying its own totals plus monthly buckets (<code>year</code>, <code>month</code>, <code>period</code> like <code>\"2026-05\"</code>). Pagination scopes <code>byAdSet</code> (summary always reflects the full range). Each ad set includes both ZenABM's internal <code>id</code> (when imported) and the LinkedIn-native <code>linkedInId</code>. Filter to a single ad set with the <code>linkedInId</code> query param.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{bearerToken}}"}]},"isInherited":true,"source":{"_postman_id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","name":"ZenABM API (from spec)","type":"collection"}},"urlObject":{"path":["ad-spend"],"host":["https://app.zenabm.com/api/v1"],"query":[{"description":{"content":"<p>Page number (default: 1)</p>\n","type":"text/plain"},"key":"page","value":"1"},{"description":{"content":"<p>Items per page (default: 20, max: 100)</p>\n","type":"text/plain"},"key":"pageSize","value":"20"},{"description":{"content":"<p>Time period preset. Ignored when startDate/endDate are provided.</p>\n","type":"text/plain"},"key":"period","value":"last30Days"},{"description":{"content":"<p>Start date (YYYY-MM-DD). When provided with endDate, overrides the period parameter.</p>\n","type":"text/plain"},"key":"startDate","value":"2018-09-03"},{"description":{"content":"<p>End date (YYYY-MM-DD). When provided with startDate, overrides the period parameter.</p>\n","type":"text/plain"},"key":"endDate","value":"2018-09-03"},{"description":{"content":"<p>Filter to a single Ad Set by its LinkedIn numeric ID.</p>\n","type":"text/plain"},"key":"linkedInId","value":"123456"}],"variable":[]}},"response":[{"id":"89a8c480-0448-419a-b6fd-e74cf32a9de6","name":"Ad spend summary + per-ad-set monthly breakdown","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"https://app.zenabm.com/api/v1/ad-spend?page=1&pageSize=20&period=last30Days&startDate=2018-09-03&endDate=2018-09-03&linkedInId=123456","host":["https://app.zenabm.com/api/v1"],"path":["ad-spend"],"query":[{"description":"Page number (default: 1)","key":"page","value":"1"},{"description":"Items per page (default: 20, max: 100)","key":"pageSize","value":"20"},{"description":"Time period preset. Ignored when startDate/endDate are provided.","key":"period","value":"last30Days"},{"description":"Start date (YYYY-MM-DD). When provided with endDate, overrides the period parameter.","key":"startDate","value":"2018-09-03"},{"description":"End date (YYYY-MM-DD). When provided with startDate, overrides the period parameter.","key":"endDate","value":"2018-09-03"},{"description":"Filter to a single Ad Set by its LinkedIn numeric ID.","key":"linkedInId","value":"123456"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"data\": {\n    \"summary\": {\n      \"costInUsd\": 18420.5,\n      \"impressions\": 412000,\n      \"clicks\": 1980,\n      \"engagements\": 3640,\n      \"monthCount\": 3,\n      \"adSetCount\": 4,\n      \"startDate\": \"2026-03-01\",\n      \"endDate\": \"2026-05-31\"\n    },\n    \"byAdSet\": [\n      {\n        \"id\": \"cmf8a9q2k0001of04w7v3lqz9\",\n        \"linkedInId\": \"123456\",\n        \"name\": \"Techcrunch 2025\",\n        \"status\": \"ACTIVE\",\n        \"format\": \"Single Image\",\n        \"totals\": {\n          \"costInUsd\": 9871.25,\n          \"impressions\": 220000,\n          \"clicks\": 1102,\n          \"engagements\": 1840\n        },\n        \"monthly\": [\n          {\n            \"year\": 2026,\n            \"month\": 5,\n            \"period\": \"2026-05\",\n            \"costInUsd\": 4250.75,\n            \"impressions\": 102000,\n            \"clicks\": 540,\n            \"engagements\": 810\n          },\n          {\n            \"year\": 2026,\n            \"month\": 4,\n            \"period\": \"2026-04\",\n            \"costInUsd\": 3120,\n            \"impressions\": 68000,\n            \"clicks\": 312,\n            \"engagements\": 540\n          },\n          {\n            \"year\": 2026,\n            \"month\": 3,\n            \"period\": \"2026-03\",\n            \"costInUsd\": 2500.5,\n            \"impressions\": 50000,\n            \"clicks\": 250,\n            \"engagements\": 490\n          }\n        ]\n      }\n    ]\n  },\n  \"pagination\": {\n    \"page\": 1,\n    \"pageSize\": 20,\n    \"totalCount\": 4,\n    \"totalPages\": 1\n  },\n  \"meta\": {\n    \"timestamp\": \"2026-05-13T19:06:51.685Z\"\n  }\n}"}],"_postman_id":"7e392e07-9fc6-4357-a7df-74d4dcd718a8"},{"name":"Aggregated LinkedIn metrics for a date range","id":"05a918a5-231b-4f50-bedf-a0a964fa53bd","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"https://app.zenabm.com/api/v1/linkedin-metrics?period=last30Days&timeGranularity=ALL&metrics=impressions,clicks,costInUsd&startDate=2026-03-31&endDate=2026-04-06&linkedInCampaignId=123456&linkedInCampaignGroupId=654321&includeReach=true","description":"<p>Returns aggregated impressions, clicks, engagements, conversions, and cost for the specified date range, read live from LinkedIn. Optionally filter by a single LinkedIn ad set or campaign ID. Set <code>includeReach=true</code> to also get unique member reach and frequency.</p>\n<p><strong>Two response shapes.</strong> With <code>timeGranularity=ALL</code> (the default) and no <code>metrics</code> parameter, the response is the flat totals object shown below. Setting <code>timeGranularity</code> to <code>DAILY</code>/<code>MONTHLY</code>/<code>YEARLY</code> <strong>or</strong> passing <code>metrics</code> switches the response to the timeseries shape: <code>{ startDate, endDate, timeGranularity, fields, rows, totals, truncated }</code>, where <code>rows</code> holds one <code>{ periodStart, periodEnd, &lt;metric&gt;: number }</code> object per period and <code>totals</code> sums each requested metric over the whole range. <code>includeReach</code> only works with the flat shape.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{bearerToken}}"}]},"isInherited":true,"source":{"_postman_id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","name":"ZenABM API (from spec)","type":"collection"}},"urlObject":{"path":["linkedin-metrics"],"host":["https://app.zenabm.com/api/v1"],"query":[{"description":{"content":"<p>Time period preset. Ignored when startDate/endDate are provided.</p>\n","type":"text/plain"},"key":"period","value":"last30Days"},{"description":{"content":"<p>How to split the range. ALL returns one total (flat response shape). DAILY/MONTHLY/YEARLY return one row per period (timeseries response shape). LinkedIn keeps DAILY data for 6 months only; older ranges fall back to month boundaries.</p>\n","type":"text/plain"},"key":"timeGranularity","value":"ALL"},{"description":{"content":"<p>Comma-separated metric fields to fetch (e.g. <code>impressions,clicks,oneClickLeads</code>), max 19 per request. Passing this switches the response to the timeseries shape even with <code>timeGranularity=ALL</code>. Defaults to impressions, clicks, costInUsd, totalEngagements.</p>\n","type":"text/plain"},"key":"metrics","value":"impressions,clicks,costInUsd"},{"description":{"content":"<p>Start of date range (inclusive). Format: YYYY-MM-DD. Supply with <code>endDate</code> to override <code>period</code>. When neither is supplied, the range falls back to <code>period</code> (last 30 days by default).</p>\n","type":"text/plain"},"key":"startDate","value":"2026-03-31"},{"description":{"content":"<p>End of date range (inclusive). Format: YYYY-MM-DD. Supply with <code>startDate</code> to override <code>period</code>.</p>\n","type":"text/plain"},"key":"endDate","value":"2026-04-06"},{"description":{"content":"<p>LinkedIn's own ad set ID (numeric, from urn:li:sponsoredCampaign). When provided, metrics are returned for this ad set only. Cannot be combined with linkedInCampaignGroupId.</p>\n","type":"text/plain"},"key":"linkedInCampaignId","value":"123456"},{"description":{"content":"<p>LinkedIn's own campaign ID (numeric, from urn:li:sponsoredCampaignGroup). When provided, metrics are returned for this campaign only. Cannot be combined with linkedInCampaignId.</p>\n","type":"text/plain"},"key":"linkedInCampaignGroupId","value":"654321"},{"description":{"content":"<p>Set to <code>true</code> to also return <code>reach</code> (unique members who saw an ad) and <code>frequency</code> (impressions / reach). Off by default because it costs one extra LinkedIn request; without it both fields come back null. Reach is deduplicated within one response and can NEVER be added up: reach for two ranges, or for several campaigns, does not sum to the reach of the whole, because a member seen twice is still one person. Whenever reach is null, <code>reachUnavailableReason</code> says why — the other totals are always returned.</p>\n","type":"text/plain"},"key":"includeReach","value":"true"}],"variable":[]}},"response":[{"id":"bdf24a5e-34bd-4f01-ad77-6b979b2eb65b","name":"Aggregated metrics for the date range","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"https://app.zenabm.com/api/v1/linkedin-metrics?period=last30Days&timeGranularity=ALL&metrics=impressions,clicks,costInUsd&startDate=2026-03-31&endDate=2026-04-06&linkedInCampaignId=123456&linkedInCampaignGroupId=654321&includeReach=true","host":["https://app.zenabm.com/api/v1"],"path":["linkedin-metrics"],"query":[{"description":"Time period preset. Ignored when startDate/endDate are provided.","key":"period","value":"last30Days"},{"description":"How to split the range. ALL returns one total (flat response shape). DAILY/MONTHLY/YEARLY return one row per period (timeseries response shape). LinkedIn keeps DAILY data for 6 months only; older ranges fall back to month boundaries.","key":"timeGranularity","value":"ALL"},{"description":"Comma-separated metric fields to fetch (e.g. `impressions,clicks,oneClickLeads`), max 19 per request. Passing this switches the response to the timeseries shape even with `timeGranularity=ALL`. Defaults to impressions, clicks, costInUsd, totalEngagements.","key":"metrics","value":"impressions,clicks,costInUsd"},{"description":"Start of date range (inclusive). Format: YYYY-MM-DD. Supply with `endDate` to override `period`. When neither is supplied, the range falls back to `period` (last 30 days by default).","key":"startDate","value":"2026-03-31"},{"description":"End of date range (inclusive). Format: YYYY-MM-DD. Supply with `startDate` to override `period`.","key":"endDate","value":"2026-04-06"},{"description":"LinkedIn's own ad set ID (numeric, from urn:li:sponsoredCampaign). When provided, metrics are returned for this ad set only. Cannot be combined with linkedInCampaignGroupId.","key":"linkedInCampaignId","value":"123456"},{"description":"LinkedIn's own campaign ID (numeric, from urn:li:sponsoredCampaignGroup). When provided, metrics are returned for this campaign only. Cannot be combined with linkedInCampaignId.","key":"linkedInCampaignGroupId","value":"654321"},{"description":"Set to `true` to also return `reach` (unique members who saw an ad) and `frequency` (impressions / reach). Off by default because it costs one extra LinkedIn request; without it both fields come back null. Reach is deduplicated within one response and can NEVER be added up: reach for two ranges, or for several campaigns, does not sum to the reach of the whole, because a member seen twice is still one person. Whenever reach is null, `reachUnavailableReason` says why — the other totals are always returned.","key":"includeReach","value":"true"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"data\": {\n    \"startDate\": \"2026-03-31\",\n    \"endDate\": \"2026-04-06\",\n    \"costInUsd\": 2450.75,\n    \"impressions\": 45200,\n    \"clicks\": 890,\n    \"engagements\": 2100,\n    \"conversions\": 34,\n    \"reach\": 8000,\n    \"frequency\": 5.65\n  },\n  \"meta\": {\n    \"timestamp\": \"2026-04-08T12:00:00.000Z\"\n  }\n}"}],"_postman_id":"05a918a5-231b-4f50-bedf-a0a964fa53bd"}],"id":"9c31b8ca-117d-4910-b1df-c824d651188e","_postman_id":"9c31b8ca-117d-4910-b1df-c824d651188e","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{bearerToken}}"}]},"isInherited":true,"source":{"_postman_id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","name":"ZenABM API (from spec)","type":"collection"}}},{"name":"Creatives","item":[{"name":"List ad creatives","id":"1901f967-d910-4472-9c68-97852867dbae","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"https://app.zenabm.com/api/v1/creatives?cursor=string&pageSize=20&adSetId=string&campaignId=string","description":"<p>Returns a cursor-paginated catalog of the individual ad creatives (the actual ads) in the LinkedIn ad account. Each item includes the LinkedIn-native <code>linkedInId</code>, the full <code>creativeUrn</code>, name, ad format, status, serving state, and the parent ad set + campaign (with both ZenABM <code>id</code> — when imported — and <code>linkedInId</code>). Each response carries a <code>nextCursor</code>: pass it back as the <code>cursor</code> query parameter to fetch the next page (<code>hasMore</code> is false on the last page). Optionally scope to one ad set (<code>adSetId</code>) or campaign (<code>campaignId</code>).</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{bearerToken}}"}]},"isInherited":true,"source":{"_postman_id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","name":"ZenABM API (from spec)","type":"collection"}},"urlObject":{"path":["creatives"],"host":["https://app.zenabm.com/api/v1"],"query":[{"description":{"content":"<p>Pagination cursor from a previous response's <code>nextCursor</code>. Omit to fetch the first page.</p>\n","type":"text/plain"},"key":"cursor","value":"string"},{"description":{"content":"<p>Creatives per page (1–100, default: 20).</p>\n","type":"text/plain"},"key":"pageSize","value":"20"},{"description":{"content":"<p>Filter to a single ad set. Accepts the ZenABM ad set ID or the LinkedIn numeric ID.</p>\n","type":"text/plain"},"key":"adSetId","value":"string"},{"description":{"content":"<p>Filter to a single campaign. Accepts the ZenABM campaign ID or the LinkedIn numeric ID.</p>\n","type":"text/plain"},"key":"campaignId","value":"string"}],"variable":[]}},"response":[{"id":"01c2c841-0d77-463f-8f12-67169406c3c7","name":"Cursor-paginated catalog of ad creatives","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"https://app.zenabm.com/api/v1/creatives?cursor=string&pageSize=20&adSetId=string&campaignId=string","host":["https://app.zenabm.com/api/v1"],"path":["creatives"],"query":[{"description":"Pagination cursor from a previous response's `nextCursor`. Omit to fetch the first page.","key":"cursor","value":"string"},{"description":"Creatives per page (1–100, default: 20).","key":"pageSize","value":"20"},{"description":"Filter to a single ad set. Accepts the ZenABM ad set ID or the LinkedIn numeric ID.","key":"adSetId","value":"string"},{"description":"Filter to a single campaign. Accepts the ZenABM campaign ID or the LinkedIn numeric ID.","key":"campaignId","value":"string"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"data\": [\n    {\n      \"linkedInId\": \"415956593\",\n      \"creativeUrn\": \"urn:li:sponsoredCreative:415956593\",\n      \"name\": \"Techcrunch 2025 — Hero Image\",\n      \"format\": \"Single Image\",\n      \"status\": \"ACTIVE\",\n      \"isServing\": true,\n      \"adLibraryUrl\": \"https://www.linkedin.com/ad-library/detail/415956593\",\n      \"adSetId\": \"cmf8a9q2k0001of04w7v3lqz9\",\n      \"adSetLinkedInId\": \"330784953\",\n      \"adSetName\": \"Techcrunch 2025\",\n      \"campaignId\": \"cmf8a9q2k0002of04abcd1234\",\n      \"campaignLinkedInId\": \"710869393\",\n      \"campaignName\": \"Techcrunch 2025 CG\"\n    }\n  ],\n  \"pagination\": {\n    \"pageSize\": 20,\n    \"nextCursor\": \"DgFNuuqsfrRuO-q0RxpSj-yaR4TXEtmKuIF4U9-t404\",\n    \"hasMore\": true\n  },\n  \"meta\": {\n    \"timestamp\": \"2026-05-14T19:06:51.685Z\"\n  }\n}"}],"_postman_id":"1901f967-d910-4472-9c68-97852867dbae"}],"id":"5e6e5bf8-da6d-427f-a7ee-79ac89e13387","_postman_id":"5e6e5bf8-da6d-427f-a7ee-79ac89e13387","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{bearerToken}}"}]},"isInherited":true,"source":{"_postman_id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","name":"ZenABM API (from spec)","type":"collection"}}},{"name":"Campaigns","item":[{"name":"List Campaigns with insights","id":"957a25a7-0a6d-4ab3-9aae-fb5fa8ddf488","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"https://app.zenabm.com/api/v1/campaign-groups?page=1&pageSize=20&period=last30Days&startDate=2018-09-03&endDate=2018-09-03&sortBy=string&sortOrder=desc&search=string&status=ACTIVE,PAUSED","description":"<p>Returns a paginated list of LinkedIn Campaigns with aggregated performance metrics for the requested date range. Filter by status (default: ACTIVE,PAUSED) or search by name. Each item includes both ZenABM's internal <code>id</code> (when the campaign has been imported) and the LinkedIn-native <code>linkedInId</code>. To list campaigns within a specific ABM campaign use <code>/abm-campaigns/{id}</code> instead.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{bearerToken}}"}]},"isInherited":true,"source":{"_postman_id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","name":"ZenABM API (from spec)","type":"collection"}},"urlObject":{"path":["campaign-groups"],"host":["https://app.zenabm.com/api/v1"],"query":[{"description":{"content":"<p>Page number (default: 1)</p>\n","type":"text/plain"},"key":"page","value":"1"},{"description":{"content":"<p>Items per page (default: 20, max: 100)</p>\n","type":"text/plain"},"key":"pageSize","value":"20"},{"description":{"content":"<p>Time period preset. Ignored when startDate/endDate are provided.</p>\n","type":"text/plain"},"key":"period","value":"last30Days"},{"description":{"content":"<p>Start date (YYYY-MM-DD). When provided with endDate, overrides the period parameter.</p>\n","type":"text/plain"},"key":"startDate","value":"2018-09-03"},{"description":{"content":"<p>End date (YYYY-MM-DD). When provided with startDate, overrides the period parameter.</p>\n","type":"text/plain"},"key":"endDate","value":"2018-09-03"},{"description":{"content":"<p>Field to sort by (e.g. impressions, clicks, engagements)</p>\n","type":"text/plain"},"key":"sortBy","value":"string"},{"description":{"content":"<p>Sort direction</p>\n","type":"text/plain"},"key":"sortOrder","value":"desc"},{"description":{"content":"<p>Search filter</p>\n","type":"text/plain"},"key":"search","value":"string"},{"description":{"content":"<p>Comma-separated statuses: ACTIVE,PAUSED,ARCHIVED,DRAFT,COMPLETED. Default: ACTIVE,PAUSED.</p>\n","type":"text/plain"},"key":"status","value":"ACTIVE,PAUSED"}],"variable":[]}},"response":[{"id":"a723b1ef-d3eb-45f1-a486-8668927ba2f7","name":"Paginated list of Campaigns","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"https://app.zenabm.com/api/v1/campaign-groups?page=1&pageSize=20&period=last30Days&startDate=2018-09-03&endDate=2018-09-03&sortBy=string&sortOrder=desc&search=string&status=ACTIVE,PAUSED","host":["https://app.zenabm.com/api/v1"],"path":["campaign-groups"],"query":[{"description":"Page number (default: 1)","key":"page","value":"1"},{"description":"Items per page (default: 20, max: 100)","key":"pageSize","value":"20"},{"description":"Time period preset. Ignored when startDate/endDate are provided.","key":"period","value":"last30Days"},{"description":"Start date (YYYY-MM-DD). When provided with endDate, overrides the period parameter.","key":"startDate","value":"2018-09-03"},{"description":"End date (YYYY-MM-DD). When provided with startDate, overrides the period parameter.","key":"endDate","value":"2018-09-03"},{"description":"Field to sort by (e.g. impressions, clicks, engagements)","key":"sortBy","value":"string"},{"description":"Sort direction","key":"sortOrder","value":"desc"},{"description":"Search filter","key":"search","value":"string"},{"description":"Comma-separated statuses: ACTIVE,PAUSED,ARCHIVED,DRAFT,COMPLETED. Default: ACTIVE,PAUSED.","key":"status","value":"ACTIVE,PAUSED"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"data\": [\n    {\n      \"id\": \"cmf7gpqd80002lv04x9zwt8mh\",\n      \"linkedInId\": \"1337\",\n      \"name\": \"TechCrunch 2025\",\n      \"status\": \"ACTIVE\",\n      \"servingStatuses\": [\n        \"RUNNABLE\"\n      ],\n      \"runScheduleStart\": 1735689600000,\n      \"runScheduleEnd\": 1767225600000,\n      \"totalBudgetAmount\": \"50000.00\",\n      \"totalBudgetCurrency\": \"USD\",\n      \"impressions\": 583180,\n      \"clicks\": 4838,\n      \"engagements\": 30566,\n      \"costInUsd\": 25033.73,\n      \"conversions\": 1229,\n      \"ctr\": 0.83,\n      \"cpc\": 5.17\n    }\n  ],\n  \"pagination\": {\n    \"page\": 1,\n    \"pageSize\": 20,\n    \"totalCount\": 87,\n    \"totalPages\": 5\n  },\n  \"meta\": {\n    \"timestamp\": \"2026-03-09T19:22:18.111Z\"\n  }\n}"}],"_postman_id":"957a25a7-0a6d-4ab3-9aae-fb5fa8ddf488"},{"name":"Get Campaign by ID","id":"af6f4021-7cc9-414f-a91d-eff067571dc8","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"https://app.zenabm.com/api/v1/campaign-groups/:id","description":"<p>Returns a single Campaign with its child Ad Sets in the <code>adSets</code> array (id, linkedInId, name, status, human-readable format).</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{bearerToken}}"}]},"isInherited":true,"source":{"_postman_id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","name":"ZenABM API (from spec)","type":"collection"}},"urlObject":{"path":["campaign-groups",":id"],"host":["https://app.zenabm.com/api/v1"],"query":[],"variable":[{"description":{"content":"<p>Campaign ID</p>\n","type":"text/plain"},"type":"any","value":"string","key":"id"}]}},"response":[{"id":"d369116c-3cb5-4a5b-bdb4-95bef8e37487","name":"Campaign details","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"https://app.zenabm.com/api/v1/campaign-groups/:id","host":["https://app.zenabm.com/api/v1"],"path":["campaign-groups",":id"],"variable":[{"key":"id","value":"string","description":"Campaign ID"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"data\": {\n    \"id\": \"1337\",\n    \"linkedInId\": \"734789393\",\n    \"name\": \"TechCrunch 2025\",\n    \"status\": \"ACTIVE\",\n    \"createdAt\": \"2025-01-01T00:00:00.000Z\",\n    \"updatedAt\": \"2025-09-15T00:00:00.000Z\",\n    \"teamId\": \"1337\",\n    \"syncStartDate\": \"2025-01-01T00:00:00.000Z\",\n    \"intentId\": \"1337\",\n    \"intent\": {\n      \"id\": \"1337\",\n      \"name\": \"Competitor\",\n      \"description\": \"\",\n      \"createdAt\": \"2025-01-01T00:00:00.000Z\",\n      \"updatedAt\": \"2025-09-15T00:00:00.000Z\",\n      \"teamId\": \"1337\"\n    },\n    \"adSets\": [\n      {\n        \"id\": \"cmf8a9q2k0001of04w7v3lqz9\",\n        \"linkedInId\": \"330784953\",\n        \"name\": \"Techcrunch 2025 — Decision Makers\",\n        \"status\": \"ACTIVE\",\n        \"format\": \"Single Image\"\n      },\n      {\n        \"id\": \"cmf8a9q2k0002of04abcd1234\",\n        \"linkedInId\": \"330784954\",\n        \"name\": \"Techcrunch 2025 — Thought Leadership\",\n        \"status\": \"PAUSED\",\n        \"format\": \"Thought Leader Ad\"\n      }\n    ]\n  },\n  \"meta\": {\n    \"timestamp\": \"2026-03-09T19:26:12.572Z\"\n  }\n}"}],"_postman_id":"af6f4021-7cc9-414f-a91d-eff067571dc8"},{"name":"Get Campaign metrics overview","id":"268448e7-7bca-4b15-9932-bcb604d21559","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"https://app.zenabm.com/api/v1/campaign-groups/:id/overview?period=last30Days&startDate=2018-09-03&endDate=2018-09-03","description":"<p>Performance totals for a single Campaign over the requested date range — aggregated to a single <code>summary</code> (no weekly breakdown).</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{bearerToken}}"}]},"isInherited":true,"source":{"_postman_id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","name":"ZenABM API (from spec)","type":"collection"}},"urlObject":{"path":["campaign-groups",":id","overview"],"host":["https://app.zenabm.com/api/v1"],"query":[{"description":{"content":"<p>Time period preset. Ignored when startDate/endDate are provided.</p>\n","type":"text/plain"},"key":"period","value":"last30Days"},{"description":{"content":"<p>Start date (YYYY-MM-DD). When provided with endDate, overrides the period parameter.</p>\n","type":"text/plain"},"key":"startDate","value":"2018-09-03"},{"description":{"content":"<p>End date (YYYY-MM-DD). When provided with startDate, overrides the period parameter.</p>\n","type":"text/plain"},"key":"endDate","value":"2018-09-03"}],"variable":[{"description":{"content":"<p>Campaign ID</p>\n","type":"text/plain"},"type":"any","value":"string","key":"id"}]}},"response":[{"id":"2db265f1-1af3-42e6-bcfc-2e6c378c0373","name":"Campaign performance summary for the date range","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"https://app.zenabm.com/api/v1/campaign-groups/:id/overview?period=last30Days&startDate=2018-09-03&endDate=2018-09-03","host":["https://app.zenabm.com/api/v1"],"path":["campaign-groups",":id","overview"],"query":[{"description":"Time period preset. Ignored when startDate/endDate are provided.","key":"period","value":"last30Days"},{"description":"Start date (YYYY-MM-DD). When provided with endDate, overrides the period parameter.","key":"startDate","value":"2018-09-03"},{"description":"End date (YYYY-MM-DD). When provided with startDate, overrides the period parameter.","key":"endDate","value":"2018-09-03"}],"variable":[{"key":"id","value":"string","description":"Campaign ID"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"data\": {\n    \"startDate\": \"2026-04-13\",\n    \"endDate\": \"2026-05-13\",\n    \"impressions\": 583180,\n    \"clicks\": 4838,\n    \"engagements\": 30566,\n    \"costInUsd\": 25033.73,\n    \"conversions\": 1229,\n    \"ctr\": 0.83,\n    \"cpc\": 5.17\n  },\n  \"meta\": {\n    \"timestamp\": \"2026-05-13T19:27:07.553Z\"\n  }\n}"}],"_postman_id":"268448e7-7bca-4b15-9932-bcb604d21559"},{"name":"List companies for a Campaign","id":"8d82aab9-a996-4fa4-a6e3-df9a76b3f671","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"https://app.zenabm.com/api/v1/campaign-groups/:id/companies?page=1&pageSize=20&period=last30Days&startDate=2018-09-03&endDate=2018-09-03&sortBy=string&sortOrder=desc&search=string&hideExcludedCompanies=false","description":"<p>Optional filters: sortBy, sortOrder, search</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{bearerToken}}"}]},"isInherited":true,"source":{"_postman_id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","name":"ZenABM API (from spec)","type":"collection"}},"urlObject":{"path":["campaign-groups",":id","companies"],"host":["https://app.zenabm.com/api/v1"],"query":[{"description":{"content":"<p>Page number (default: 1)</p>\n","type":"text/plain"},"key":"page","value":"1"},{"description":{"content":"<p>Items per page (default: 20, max: 100)</p>\n","type":"text/plain"},"key":"pageSize","value":"20"},{"description":{"content":"<p>Time period preset. Ignored when startDate/endDate are provided.</p>\n","type":"text/plain"},"key":"period","value":"last30Days"},{"description":{"content":"<p>Start date (YYYY-MM-DD). When provided with endDate, overrides the period parameter.</p>\n","type":"text/plain"},"key":"startDate","value":"2018-09-03"},{"description":{"content":"<p>End date (YYYY-MM-DD). When provided with startDate, overrides the period parameter.</p>\n","type":"text/plain"},"key":"endDate","value":"2018-09-03"},{"description":{"content":"<p>Field to sort by (e.g. impressions, clicks, engagements)</p>\n","type":"text/plain"},"key":"sortBy","value":"string"},{"description":{"content":"<p>Sort direction</p>\n","type":"text/plain"},"key":"sortOrder","value":"desc"},{"description":{"content":"<p>Search filter</p>\n","type":"text/plain"},"key":"search","value":"string"},{"description":{"content":"<p>When <code>true</code>, hides companies with a COMPANY exclusion that applies to this Campaign — a team-wide exclusion, or one scoped specifically to this Campaign (matches the \"Excluded\" badge in the UI). An exclusion scoped to a different Campaign or Ad Set does not apply here.</p>\n","type":"text/plain"},"key":"hideExcludedCompanies","value":"false"}],"variable":[{"description":{"content":"<p>Campaign ID</p>\n","type":"text/plain"},"type":"any","value":"string","key":"id"}]}},"response":[{"id":"9b11f421-780a-4846-a1a5-df4cd3a15638","name":"Paginated companies for Campaign","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"https://app.zenabm.com/api/v1/campaign-groups/:id/companies?page=1&pageSize=20&period=last30Days&startDate=2018-09-03&endDate=2018-09-03&sortBy=string&sortOrder=desc&search=string&hideExcludedCompanies=false","host":["https://app.zenabm.com/api/v1"],"path":["campaign-groups",":id","companies"],"query":[{"description":"Page number (default: 1)","key":"page","value":"1"},{"description":"Items per page (default: 20, max: 100)","key":"pageSize","value":"20"},{"description":"Time period preset. Ignored when startDate/endDate are provided.","key":"period","value":"last30Days"},{"description":"Start date (YYYY-MM-DD). When provided with endDate, overrides the period parameter.","key":"startDate","value":"2018-09-03"},{"description":"End date (YYYY-MM-DD). When provided with startDate, overrides the period parameter.","key":"endDate","value":"2018-09-03"},{"description":"Field to sort by (e.g. impressions, clicks, engagements)","key":"sortBy","value":"string"},{"description":"Sort direction","key":"sortOrder","value":"desc"},{"description":"Search filter","key":"search","value":"string"},{"description":"When `true`, hides companies with a COMPANY exclusion that applies to this Campaign — a team-wide exclusion, or one scoped specifically to this Campaign (matches the \"Excluded\" badge in the UI). An exclusion scoped to a different Campaign or Ad Set does not apply here.","key":"hideExcludedCompanies","value":"false"}],"variable":[{"key":"id","value":"string","description":"Campaign ID"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"data\": [\n    {\n      \"id\": \"1337\",\n      \"name\": \"Pied Piper\",\n      \"city\": \"San Francisco\",\n      \"country\": \"US\",\n      \"website\": \"https://www.piedpiper.com/\",\n      \"linkedInOrgId\": \"4827017\",\n      \"hubspotCompanyId\": \"37411334702\",\n      \"attioRecordId\": \"a1b2c3d4-5e6f-4a7b-8c9d-0e1f2a3b4c5d\",\n      \"logoUrl\": \"https://piedpiper.com/assets/images/logo.png\",\n      \"lifetimeEngagementScore\": 2,\n      \"impressions\": 47759,\n      \"clicks\": 273,\n      \"engagements\": 2380,\n      \"costInUsd\": 1580.19,\n      \"clickThroughRate\": 0.572,\n      \"costPerClick\": 5.79,\n      \"cpm\": 33.09,\n      \"intents\": [\n        {\n          \"id\": \"1337\",\n          \"name\": \"Competitor\"\n        }\n      ],\n      \"abmStage\": {\n        \"id\": \"1337_interested\",\n        \"name\": \"Interested\",\n        \"color\": \"#10B981\",\n        \"displayOrder\": 3\n      },\n      \"lifetimeAbmStage\": {\n        \"id\": \"1337_interested\",\n        \"name\": \"Interested\",\n        \"color\": \"#10B981\",\n        \"displayOrder\": 3\n      }\n    }\n  ],\n  \"pagination\": {\n    \"page\": 1,\n    \"pageSize\": 20,\n    \"totalCount\": 4101,\n    \"totalPages\": 206\n  },\n  \"meta\": {\n    \"timestamp\": \"2026-03-09T19:28:09.356Z\"\n  }\n}"}],"_postman_id":"8d82aab9-a996-4fa4-a6e3-df9a76b3f671"},{"name":"Get job title insights for a campaign group","id":"9a3d17be-b039-497b-af5b-9a41fd9154b1","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"https://app.zenabm.com/api/v1/campaign-groups/:id/job-titles?page=1&pageSize=20&period=last30Days&startDate=2018-09-03&endDate=2018-09-03&sortBy=string&sortOrder=desc&search=string&minImpressions=192.19441793910886&maxImpressions=192.19441793910886&minClicks=192.19441793910886&maxClicks=192.19441793910886&minEngagements=192.19441793910886&maxEngagements=192.19441793910886&minCostInUsd=192.19441793910886&maxCostInUsd=192.19441793910886&minCostPerClick=192.19441793910886&maxCostPerClick=192.19441793910886&minClickThroughRate=192.19441793910886&maxClickThroughRate=192.19441793910886","description":"<p>Optional filters: sortBy, sortOrder</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{bearerToken}}"}]},"isInherited":true,"source":{"_postman_id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","name":"ZenABM API (from spec)","type":"collection"}},"urlObject":{"path":["campaign-groups",":id","job-titles"],"host":["https://app.zenabm.com/api/v1"],"query":[{"description":{"content":"<p>Page number (default: 1)</p>\n","type":"text/plain"},"key":"page","value":"1"},{"description":{"content":"<p>Items per page (default: 20, max: 100)</p>\n","type":"text/plain"},"key":"pageSize","value":"20"},{"description":{"content":"<p>Time period preset. Ignored when startDate/endDate are provided.</p>\n","type":"text/plain"},"key":"period","value":"last30Days"},{"description":{"content":"<p>Start date (YYYY-MM-DD). When provided with endDate, overrides the period parameter.</p>\n","type":"text/plain"},"key":"startDate","value":"2018-09-03"},{"description":{"content":"<p>End date (YYYY-MM-DD). When provided with startDate, overrides the period parameter.</p>\n","type":"text/plain"},"key":"endDate","value":"2018-09-03"},{"description":{"content":"<p>Field to sort by (e.g. impressions, clicks, engagements)</p>\n","type":"text/plain"},"key":"sortBy","value":"string"},{"description":{"content":"<p>Sort direction</p>\n","type":"text/plain"},"key":"sortOrder","value":"desc"},{"description":{"content":"<p>Search filter</p>\n","type":"text/plain"},"key":"search","value":"string"},{"description":{"content":"<p>Only return rows where impressions is greater than or equal to this value.</p>\n","type":"text/plain"},"key":"minImpressions","value":"192.19441793910886"},{"description":{"content":"<p>Only return rows where impressions is less than or equal to this value.</p>\n","type":"text/plain"},"key":"maxImpressions","value":"192.19441793910886"},{"description":{"content":"<p>Only return rows where clicks is greater than or equal to this value.</p>\n","type":"text/plain"},"key":"minClicks","value":"192.19441793910886"},{"description":{"content":"<p>Only return rows where clicks is less than or equal to this value.</p>\n","type":"text/plain"},"key":"maxClicks","value":"192.19441793910886"},{"description":{"content":"<p>Only return rows where engagements is greater than or equal to this value.</p>\n","type":"text/plain"},"key":"minEngagements","value":"192.19441793910886"},{"description":{"content":"<p>Only return rows where engagements is less than or equal to this value.</p>\n","type":"text/plain"},"key":"maxEngagements","value":"192.19441793910886"},{"description":{"content":"<p>Only return rows where cost in USD is greater than or equal to this value.</p>\n","type":"text/plain"},"key":"minCostInUsd","value":"192.19441793910886"},{"description":{"content":"<p>Only return rows where cost in USD is less than or equal to this value.</p>\n","type":"text/plain"},"key":"maxCostInUsd","value":"192.19441793910886"},{"description":{"content":"<p>Only return rows where cost per click (CPC) is greater than or equal to this value.</p>\n","type":"text/plain"},"key":"minCostPerClick","value":"192.19441793910886"},{"description":{"content":"<p>Only return rows where cost per click (CPC) is less than or equal to this value.</p>\n","type":"text/plain"},"key":"maxCostPerClick","value":"192.19441793910886"},{"description":{"content":"<p>Only return rows where click-through rate (CTR, as a percentage) is greater than or equal to this value.</p>\n","type":"text/plain"},"key":"minClickThroughRate","value":"192.19441793910886"},{"description":{"content":"<p>Only return rows where click-through rate (CTR, as a percentage) is less than or equal to this value.</p>\n","type":"text/plain"},"key":"maxClickThroughRate","value":"192.19441793910886"}],"variable":[{"description":{"content":"<p>Campaign ID</p>\n","type":"text/plain"},"type":"any","value":"string","key":"id"}]}},"response":[{"id":"cc323530-c981-4fc3-994f-b355661b3f02","name":"Job title insights for campaign group","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"https://app.zenabm.com/api/v1/campaign-groups/:id/job-titles?page=1&pageSize=20&period=last30Days&startDate=2018-09-03&endDate=2018-09-03&sortBy=string&sortOrder=desc&search=string&minImpressions=192.19441793910886&maxImpressions=192.19441793910886&minClicks=192.19441793910886&maxClicks=192.19441793910886&minEngagements=192.19441793910886&maxEngagements=192.19441793910886&minCostInUsd=192.19441793910886&maxCostInUsd=192.19441793910886&minCostPerClick=192.19441793910886&maxCostPerClick=192.19441793910886&minClickThroughRate=192.19441793910886&maxClickThroughRate=192.19441793910886","host":["https://app.zenabm.com/api/v1"],"path":["campaign-groups",":id","job-titles"],"query":[{"description":"Page number (default: 1)","key":"page","value":"1"},{"description":"Items per page (default: 20, max: 100)","key":"pageSize","value":"20"},{"description":"Time period preset. Ignored when startDate/endDate are provided.","key":"period","value":"last30Days"},{"description":"Start date (YYYY-MM-DD). When provided with endDate, overrides the period parameter.","key":"startDate","value":"2018-09-03"},{"description":"End date (YYYY-MM-DD). When provided with startDate, overrides the period parameter.","key":"endDate","value":"2018-09-03"},{"description":"Field to sort by (e.g. impressions, clicks, engagements)","key":"sortBy","value":"string"},{"description":"Sort direction","key":"sortOrder","value":"desc"},{"description":"Search filter","key":"search","value":"string"},{"description":"Only return rows where impressions is greater than or equal to this value.","key":"minImpressions","value":"192.19441793910886"},{"description":"Only return rows where impressions is less than or equal to this value.","key":"maxImpressions","value":"192.19441793910886"},{"description":"Only return rows where clicks is greater than or equal to this value.","key":"minClicks","value":"192.19441793910886"},{"description":"Only return rows where clicks is less than or equal to this value.","key":"maxClicks","value":"192.19441793910886"},{"description":"Only return rows where engagements is greater than or equal to this value.","key":"minEngagements","value":"192.19441793910886"},{"description":"Only return rows where engagements is less than or equal to this value.","key":"maxEngagements","value":"192.19441793910886"},{"description":"Only return rows where cost in USD is greater than or equal to this value.","key":"minCostInUsd","value":"192.19441793910886"},{"description":"Only return rows where cost in USD is less than or equal to this value.","key":"maxCostInUsd","value":"192.19441793910886"},{"description":"Only return rows where cost per click (CPC) is greater than or equal to this value.","key":"minCostPerClick","value":"192.19441793910886"},{"description":"Only return rows where cost per click (CPC) is less than or equal to this value.","key":"maxCostPerClick","value":"192.19441793910886"},{"description":"Only return rows where click-through rate (CTR, as a percentage) is greater than or equal to this value.","key":"minClickThroughRate","value":"192.19441793910886"},{"description":"Only return rows where click-through rate (CTR, as a percentage) is less than or equal to this value.","key":"maxClickThroughRate","value":"192.19441793910886"}],"variable":[{"key":"id","value":"string","description":"Campaign ID"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"data\": [\n    {\n      \"jobTitleUrn\": \"urn:li:title:123\",\n      \"jobTitleName\": \"VP of Marketing\",\n      \"impressions\": 12450,\n      \"clicks\": 87,\n      \"engagements\": 342,\n      \"costInUsd\": 891.45,\n      \"averageDwellTime\": 4.2,\n      \"videoViews\": null,\n      \"videoStarts\": null,\n      \"videoFirstQuartileCompletions\": null,\n      \"videoMidpointCompletions\": null,\n      \"videoThirdQuartileCompletions\": null,\n      \"videoCompletions\": null,\n      \"exclusion\": null\n    }\n  ],\n  \"pagination\": {\n    \"page\": 1,\n    \"pageSize\": 20,\n    \"totalCount\": 2,\n    \"totalPages\": 1\n  },\n  \"meta\": {\n    \"timestamp\": \"2026-03-09T12:00:00.000Z\"\n  }\n}"}],"_postman_id":"9a3d17be-b039-497b-af5b-9a41fd9154b1"}],"id":"d78c93b2-fff6-4289-a4d7-f970640a7646","_postman_id":"d78c93b2-fff6-4289-a4d7-f970640a7646","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{bearerToken}}"}]},"isInherited":true,"source":{"_postman_id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","name":"ZenABM API (from spec)","type":"collection"}}},{"name":"Deals","item":[{"name":"List deals with insights","id":"027beb36-965d-4efc-bcd7-689192f102f4","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"https://app.zenabm.com/api/v1/deals?page=1&pageSize=20&sortBy=createdAt&sortOrder=desc&search=string&source=all&startDate=2025-01-01&endDate=2025-12-31&dateFrom=2025-01-01&dateTo=2025-12-31&abmCampaignId=string&abmCampaigns=string&minAmount=192.19441793910886&maxAmount=192.19441793910886&dealStatus=won,lost&influenceFilter=LINKEDIN,ABM&hideZeroAmount=true","description":"<p>Returns a paginated list of CRM deals with influence attribution data. Deals from every connected CRM come back in one list: HubSpot deals, Salesforce opportunities and Attio deals. Each deal carries <code>source</code>, <code>externalId</code> (its record ID in that CRM) and <code>externalUrl</code> (a link straight to the record), so you can match a deal back to the CRM it came from. <code>costBeforeDeal</code>/<code>costAfterDeal</code> are LinkedIn ad spend in USD, always — unlike <code>amount</code>, they do not follow the team's display currency.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{bearerToken}}"}]},"isInherited":true,"source":{"_postman_id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","name":"ZenABM API (from spec)","type":"collection"}},"urlObject":{"path":["deals"],"host":["https://app.zenabm.com/api/v1"],"query":[{"description":{"content":"<p>Page number (default: 1)</p>\n","type":"text/plain"},"key":"page","value":"1"},{"description":{"content":"<p>Items per page (default: 20, max: 100)</p>\n","type":"text/plain"},"key":"pageSize","value":"20"},{"description":{"content":"<p>Field to sort by (default: createdAt)</p>\n","type":"text/plain"},"key":"sortBy","value":"createdAt"},{"description":{"content":"<p>Sort direction</p>\n","type":"text/plain"},"key":"sortOrder","value":"desc"},{"description":{"content":"<p>Search filter</p>\n","type":"text/plain"},"key":"search","value":"string"},{"description":{"content":"<p>Filter deals by CRM source (default: all). HubSpot deals, Salesforce opportunities and Attio deals are returned in one list.</p>\n","type":"text/plain"},"key":"source","value":"all"},{"description":{"content":"<p>Start date filter (YYYY-MM-DD). Supply with <code>endDate</code>; a partial range is ignored. Preferred over <code>dateFrom</code>, which is kept for backward compatibility.</p>\n","type":"text/plain"},"key":"startDate","value":"2025-01-01"},{"description":{"content":"<p>End date filter (YYYY-MM-DD). Supply with <code>startDate</code>; a partial range is ignored. Preferred over <code>dateTo</code>, which is kept for backward compatibility.</p>\n","type":"text/plain"},"key":"endDate","value":"2025-12-31"},{"description":{"content":"<p>Deprecated alias for <code>startDate</code>. Used only when <code>startDate</code> is absent.</p>\n","type":"text/plain"},"key":"dateFrom","value":"2025-01-01"},{"description":{"content":"<p>Deprecated alias for <code>endDate</code>. Used only when <code>endDate</code> is absent.</p>\n","type":"text/plain"},"key":"dateTo","value":"2025-12-31"},{"description":{"content":"<p>Filter by a single ABM campaign. When set, it overrides <code>abmCampaigns</code>.</p>\n","type":"text/plain"},"key":"abmCampaignId","value":"string"},{"description":{"content":"<p>Comma-separated ABM campaign IDs. Ignored when <code>abmCampaignId</code> is set.</p>\n","type":"text/plain"},"key":"abmCampaigns","value":"string"},{"description":{"content":"<p>Only return rows where the deal amount is greater than or equal to this value.</p>\n","type":"text/plain"},"key":"minAmount","value":"192.19441793910886"},{"description":{"content":"<p>Only return rows where the deal amount is less than or equal to this value.</p>\n","type":"text/plain"},"key":"maxAmount","value":"192.19441793910886"},{"description":{"content":"<p>Comma-separated deal statuses: <code>open</code>, <code>won</code>, <code>lost</code> or <code>any</code>. Resolved from each CRM natively — HubSpot stage <code>isClosed</code> + <code>probability</code>, Salesforce <code>IsClosed</code>/<code>IsWon</code>, Attio status title. Any other value returns 400.</p>\n","type":"text/plain"},"key":"dealStatus","value":"won,lost"},{"description":{"content":"<p>Attribution type filter</p>\n","type":"text/plain"},"key":"influenceFilter","value":"LINKEDIN,ABM"},{"description":{"content":"<p>Hide $0 deals (default: true)</p>\n","type":"text/plain"},"key":"hideZeroAmount","value":"true"}],"variable":[]}},"response":[{"id":"0fa55f95-6237-4cc2-b9a8-192dd55a5d6d","name":"Paginated list of deals","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"https://app.zenabm.com/api/v1/deals?page=1&pageSize=20&sortBy=createdAt&sortOrder=desc&search=string&source=all&startDate=2025-01-01&endDate=2025-12-31&dateFrom=2025-01-01&dateTo=2025-12-31&abmCampaignId=string&abmCampaigns=string&minAmount=192.19441793910886&maxAmount=192.19441793910886&dealStatus=won,lost&influenceFilter=LINKEDIN,ABM&hideZeroAmount=true","host":["https://app.zenabm.com/api/v1"],"path":["deals"],"query":[{"description":"Page number (default: 1)","key":"page","value":"1"},{"description":"Items per page (default: 20, max: 100)","key":"pageSize","value":"20"},{"description":"Field to sort by (default: createdAt)","key":"sortBy","value":"createdAt"},{"description":"Sort direction","key":"sortOrder","value":"desc"},{"description":"Search filter","key":"search","value":"string"},{"description":"Filter deals by CRM source (default: all). HubSpot deals, Salesforce opportunities and Attio deals are returned in one list.","key":"source","value":"all"},{"description":"Start date filter (YYYY-MM-DD). Supply with `endDate`; a partial range is ignored. Preferred over `dateFrom`, which is kept for backward compatibility.","key":"startDate","value":"2025-01-01"},{"description":"End date filter (YYYY-MM-DD). Supply with `startDate`; a partial range is ignored. Preferred over `dateTo`, which is kept for backward compatibility.","key":"endDate","value":"2025-12-31"},{"description":"Deprecated alias for `startDate`. Used only when `startDate` is absent.","key":"dateFrom","value":"2025-01-01"},{"description":"Deprecated alias for `endDate`. Used only when `endDate` is absent.","key":"dateTo","value":"2025-12-31"},{"description":"Filter by a single ABM campaign. When set, it overrides `abmCampaigns`.","key":"abmCampaignId","value":"string"},{"description":"Comma-separated ABM campaign IDs. Ignored when `abmCampaignId` is set.","key":"abmCampaigns","value":"string"},{"description":"Only return rows where the deal amount is greater than or equal to this value.","key":"minAmount","value":"192.19441793910886"},{"description":"Only return rows where the deal amount is less than or equal to this value.","key":"maxAmount","value":"192.19441793910886"},{"description":"Comma-separated deal statuses: `open`, `won`, `lost` or `any`. Resolved from each CRM natively — HubSpot stage `isClosed` + `probability`, Salesforce `IsClosed`/`IsWon`, Attio status title. Any other value returns 400.","key":"dealStatus","value":"won,lost"},{"description":"Attribution type filter","key":"influenceFilter","value":"LINKEDIN,ABM"},{"description":"Hide $0 deals (default: true)","key":"hideZeroAmount","value":"true"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"data\": [\n    {\n      \"id\": \"clxyz789deal\",\n      \"source\": \"hubspot\",\n      \"dealName\": \"Hooli - Enterprise License\",\n      \"externalId\": \"12345678\",\n      \"externalUrl\": \"https://app.hubspot.com/contacts/98765432/record/0-3/12345678/\",\n      \"company\": {\n        \"id\": \"cm7abc123\",\n        \"name\": \"Hooli\",\n        \"logoUrl\": \"https://media.licdn.com/dms/image/hooli-logo.png\",\n        \"website\": \"https://hooli.com\",\n        \"linkedInOrgId\": \"12345\"\n      },\n      \"amount\": 45000,\n      \"linkedinInfluenced\": true,\n      \"abmInfluenced\": true,\n      \"createdAt\": \"2025-03-15T10:30:00.000Z\",\n      \"closedAt\": \"2025-06-20T14:00:00.000Z\",\n      \"stage\": {\n        \"id\": \"cls123stage\",\n        \"name\": \"Closed Won\"\n      },\n      \"campaigns\": [\n        {\n          \"id\": \"cm7abm1\",\n          \"name\": \"Q1 Enterprise ABM\"\n        }\n      ],\n      \"impressionsBeforeDeal\": 8450,\n      \"clicksBeforeDeal\": 142,\n      \"engagementsBeforeDeal\": 312\n    },\n    {\n      \"id\": \"clxyz789opp\",\n      \"source\": \"salesforce\",\n      \"dealName\": \"Pied Piper - Platform Deal\",\n      \"externalId\": \"0065f00000AbCdEf\",\n      \"externalUrl\": \"https://mycompany.lightning.force.com/lightning/r/Opportunity/0065f00000AbCdEf/view\",\n      \"company\": {\n        \"id\": \"cm7def456\",\n        \"name\": \"Pied Piper\",\n        \"logoUrl\": \"https://media.licdn.com/dms/image/pp-logo.png\",\n        \"website\": \"https://piedpiper.com\",\n        \"linkedInOrgId\": \"67890\"\n      },\n      \"amount\": 72000,\n      \"linkedinInfluenced\": true,\n      \"abmInfluenced\": false,\n      \"createdAt\": \"2025-04-02T09:15:00.000Z\",\n      \"closedAt\": null,\n      \"stage\": {\n        \"id\": \"sf-stage-Negotiation\",\n        \"name\": \"Negotiation\"\n      },\n      \"campaigns\": [],\n      \"impressionsBeforeDeal\": 5100,\n      \"clicksBeforeDeal\": 74,\n      \"engagementsBeforeDeal\": 160\n    },\n    {\n      \"id\": \"clxyz789attio\",\n      \"source\": \"attio\",\n      \"dealName\": \"Initech - Annual Contract\",\n      \"externalId\": \"a1b2c3d4-5e6f-4a7b-8c9d-0e1f2a3b4c5d\",\n      \"externalUrl\": \"https://app.attio.com/initech/deals/record/a1b2c3d4-5e6f-4a7b-8c9d-0e1f2a3b4c5d\",\n      \"company\": {\n        \"id\": \"cm7ghi789\",\n        \"name\": \"Initech\",\n        \"logoUrl\": \"https://media.licdn.com/dms/image/initech-logo.png\",\n        \"website\": \"https://initech.com\",\n        \"linkedInOrgId\": \"24680\"\n      },\n      \"amount\": 31000,\n      \"linkedinInfluenced\": false,\n      \"abmInfluenced\": true,\n      \"createdAt\": \"2025-05-11T08:00:00.000Z\",\n      \"closedAt\": null,\n      \"stage\": {\n        \"id\": \"attio-status-in-progress\",\n        \"name\": \"In Progress\"\n      },\n      \"campaigns\": [\n        {\n          \"id\": \"cm7abm2\",\n          \"name\": \"Mid-Market ABM\"\n        }\n      ],\n      \"impressionsBeforeDeal\": 2400,\n      \"clicksBeforeDeal\": 38,\n      \"engagementsBeforeDeal\": 91\n    }\n  ],\n  \"pagination\": {\n    \"page\": 1,\n    \"pageSize\": 20,\n    \"totalCount\": 3,\n    \"totalPages\": 1\n  },\n  \"meta\": {\n    \"timestamp\": \"2026-03-09T12:00:00.000Z\"\n  }\n}"}],"_postman_id":"027beb36-965d-4efc-bcd7-689192f102f4"}],"id":"5f8dd1c1-ee0e-4de6-97dc-00f60a873c64","_postman_id":"5f8dd1c1-ee0e-4de6-97dc-00f60a873c64","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{bearerToken}}"}]},"isInherited":true,"source":{"_postman_id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","name":"ZenABM API (from spec)","type":"collection"}}},{"name":"Job Titles","item":[{"name":"List job titles with insights","id":"077378ca-5ebb-4d82-b1b5-56075ad3c206","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"https://app.zenabm.com/api/v1/job-titles?page=1&pageSize=20&period=last30Days&startDate=2018-09-03&endDate=2018-09-03&sortBy=string&sortOrder=desc&search=string&campaigns=string&campaignGroups=string&minImpressions=192.19441793910886&maxImpressions=192.19441793910886&minClicks=192.19441793910886&maxClicks=192.19441793910886&minEngagements=192.19441793910886&maxEngagements=192.19441793910886&minCostInUsd=192.19441793910886&maxCostInUsd=192.19441793910886&minCostPerClick=192.19441793910886&maxCostPerClick=192.19441793910886&minClickThroughRate=192.19441793910886&maxClickThroughRate=192.19441793910886&includeWeekly=true","description":"<p>Optional filters: Ad Sets (comma-separated IDs), Campaigns (comma-separated IDs)</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{bearerToken}}"}]},"isInherited":true,"source":{"_postman_id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","name":"ZenABM API (from spec)","type":"collection"}},"urlObject":{"path":["job-titles"],"host":["https://app.zenabm.com/api/v1"],"query":[{"description":{"content":"<p>Page number (default: 1)</p>\n","type":"text/plain"},"key":"page","value":"1"},{"description":{"content":"<p>Items per page (default: 20, max: 100)</p>\n","type":"text/plain"},"key":"pageSize","value":"20"},{"description":{"content":"<p>Time period preset. Ignored when startDate/endDate are provided.</p>\n","type":"text/plain"},"key":"period","value":"last30Days"},{"description":{"content":"<p>Start date (YYYY-MM-DD). When provided with endDate, overrides the period parameter.</p>\n","type":"text/plain"},"key":"startDate","value":"2018-09-03"},{"description":{"content":"<p>End date (YYYY-MM-DD). When provided with startDate, overrides the period parameter.</p>\n","type":"text/plain"},"key":"endDate","value":"2018-09-03"},{"description":{"content":"<p>Field to sort by (e.g. impressions, clicks, engagements)</p>\n","type":"text/plain"},"key":"sortBy","value":"string"},{"description":{"content":"<p>Sort direction</p>\n","type":"text/plain"},"key":"sortOrder","value":"desc"},{"description":{"content":"<p>Search filter</p>\n","type":"text/plain"},"key":"search","value":"string"},{"description":{"content":"<p>Filter by Ad Sets IDs</p>\n","type":"text/plain"},"key":"campaigns","value":"string"},{"description":{"content":"<p>Filter by Campaigns IDs</p>\n","type":"text/plain"},"key":"campaignGroups","value":"string"},{"description":{"content":"<p>Only return rows where impressions is greater than or equal to this value.</p>\n","type":"text/plain"},"key":"minImpressions","value":"192.19441793910886"},{"description":{"content":"<p>Only return rows where impressions is less than or equal to this value.</p>\n","type":"text/plain"},"key":"maxImpressions","value":"192.19441793910886"},{"description":{"content":"<p>Only return rows where clicks is greater than or equal to this value.</p>\n","type":"text/plain"},"key":"minClicks","value":"192.19441793910886"},{"description":{"content":"<p>Only return rows where clicks is less than or equal to this value.</p>\n","type":"text/plain"},"key":"maxClicks","value":"192.19441793910886"},{"description":{"content":"<p>Only return rows where engagements is greater than or equal to this value.</p>\n","type":"text/plain"},"key":"minEngagements","value":"192.19441793910886"},{"description":{"content":"<p>Only return rows where engagements is less than or equal to this value.</p>\n","type":"text/plain"},"key":"maxEngagements","value":"192.19441793910886"},{"description":{"content":"<p>Only return rows where cost in USD is greater than or equal to this value.</p>\n","type":"text/plain"},"key":"minCostInUsd","value":"192.19441793910886"},{"description":{"content":"<p>Only return rows where cost in USD is less than or equal to this value.</p>\n","type":"text/plain"},"key":"maxCostInUsd","value":"192.19441793910886"},{"description":{"content":"<p>Only return rows where cost per click (CPC) is greater than or equal to this value.</p>\n","type":"text/plain"},"key":"minCostPerClick","value":"192.19441793910886"},{"description":{"content":"<p>Only return rows where cost per click (CPC) is less than or equal to this value.</p>\n","type":"text/plain"},"key":"maxCostPerClick","value":"192.19441793910886"},{"description":{"content":"<p>Only return rows where click-through rate (CTR, as a percentage) is greater than or equal to this value.</p>\n","type":"text/plain"},"key":"minClickThroughRate","value":"192.19441793910886"},{"description":{"content":"<p>Only return rows where click-through rate (CTR, as a percentage) is less than or equal to this value.</p>\n","type":"text/plain"},"key":"maxClickThroughRate","value":"192.19441793910886"},{"description":{"content":"<p>When <code>true</code>, each job title in the response is augmented with a <code>weeklyData[]</code> array — one entry per Sunday-anchored bucket in the date range (impressions, clicks, engagements, costInUsd). <code>pageSize</code> is automatically capped at 20 on this path to keep responses small.</p>\n","type":"text/plain"},"key":"includeWeekly","value":"true"}],"variable":[]}},"response":[{"id":"e1a78e71-e142-4d68-b25d-91d520a02324","name":"Paginated list of job titles. `weeklyData` is only present when `includeWeekly=true`.","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"https://app.zenabm.com/api/v1/job-titles?page=1&pageSize=20&period=last30Days&startDate=2018-09-03&endDate=2018-09-03&sortBy=string&sortOrder=desc&search=string&campaigns=string&campaignGroups=string&minImpressions=192.19441793910886&maxImpressions=192.19441793910886&minClicks=192.19441793910886&maxClicks=192.19441793910886&minEngagements=192.19441793910886&maxEngagements=192.19441793910886&minCostInUsd=192.19441793910886&maxCostInUsd=192.19441793910886&minCostPerClick=192.19441793910886&maxCostPerClick=192.19441793910886&minClickThroughRate=192.19441793910886&maxClickThroughRate=192.19441793910886&includeWeekly=true","host":["https://app.zenabm.com/api/v1"],"path":["job-titles"],"query":[{"description":"Page number (default: 1)","key":"page","value":"1"},{"description":"Items per page (default: 20, max: 100)","key":"pageSize","value":"20"},{"description":"Time period preset. Ignored when startDate/endDate are provided.","key":"period","value":"last30Days"},{"description":"Start date (YYYY-MM-DD). When provided with endDate, overrides the period parameter.","key":"startDate","value":"2018-09-03"},{"description":"End date (YYYY-MM-DD). When provided with startDate, overrides the period parameter.","key":"endDate","value":"2018-09-03"},{"description":"Field to sort by (e.g. impressions, clicks, engagements)","key":"sortBy","value":"string"},{"description":"Sort direction","key":"sortOrder","value":"desc"},{"description":"Search filter","key":"search","value":"string"},{"description":"Filter by Ad Sets IDs","key":"campaigns","value":"string"},{"description":"Filter by Campaigns IDs","key":"campaignGroups","value":"string"},{"description":"Only return rows where impressions is greater than or equal to this value.","key":"minImpressions","value":"192.19441793910886"},{"description":"Only return rows where impressions is less than or equal to this value.","key":"maxImpressions","value":"192.19441793910886"},{"description":"Only return rows where clicks is greater than or equal to this value.","key":"minClicks","value":"192.19441793910886"},{"description":"Only return rows where clicks is less than or equal to this value.","key":"maxClicks","value":"192.19441793910886"},{"description":"Only return rows where engagements is greater than or equal to this value.","key":"minEngagements","value":"192.19441793910886"},{"description":"Only return rows where engagements is less than or equal to this value.","key":"maxEngagements","value":"192.19441793910886"},{"description":"Only return rows where cost in USD is greater than or equal to this value.","key":"minCostInUsd","value":"192.19441793910886"},{"description":"Only return rows where cost in USD is less than or equal to this value.","key":"maxCostInUsd","value":"192.19441793910886"},{"description":"Only return rows where cost per click (CPC) is greater than or equal to this value.","key":"minCostPerClick","value":"192.19441793910886"},{"description":"Only return rows where cost per click (CPC) is less than or equal to this value.","key":"maxCostPerClick","value":"192.19441793910886"},{"description":"Only return rows where click-through rate (CTR, as a percentage) is greater than or equal to this value.","key":"minClickThroughRate","value":"192.19441793910886"},{"description":"Only return rows where click-through rate (CTR, as a percentage) is less than or equal to this value.","key":"maxClickThroughRate","value":"192.19441793910886"},{"description":"When `true`, each job title in the response is augmented with a `weeklyData[]` array — one entry per Sunday-anchored bucket in the date range (impressions, clicks, engagements, costInUsd). `pageSize` is automatically capped at 20 on this path to keep responses small.","key":"includeWeekly","value":"true"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"data\": [\n    {\n      \"jobTitleUrn\": \"urn:li:title:123\",\n      \"jobTitleName\": \"VP of Marketing\",\n      \"impressions\": 12450,\n      \"clicks\": 87,\n      \"engagements\": 342,\n      \"costInUsd\": 891.45,\n      \"averageDwellTime\": 4.2,\n      \"videoViews\": null,\n      \"videoStarts\": null,\n      \"videoFirstQuartileCompletions\": null,\n      \"videoMidpointCompletions\": null,\n      \"videoThirdQuartileCompletions\": null,\n      \"videoCompletions\": null,\n      \"exclusion\": null,\n      \"weeklyData\": [\n        {\n          \"weekStart\": \"2026-03-03\",\n          \"weekEnd\": \"2026-03-09\",\n          \"impressions\": 1820,\n          \"clicks\": 12,\n          \"engagements\": 47,\n          \"costInUsd\": 132.18\n        },\n        {\n          \"weekStart\": \"2026-03-10\",\n          \"weekEnd\": \"2026-03-16\",\n          \"impressions\": 2010,\n          \"clicks\": 15,\n          \"engagements\": 52,\n          \"costInUsd\": 148.92\n        }\n      ]\n    }\n  ],\n  \"pagination\": {\n    \"page\": 1,\n    \"pageSize\": 20,\n    \"totalCount\": 1,\n    \"totalPages\": 1\n  },\n  \"meta\": {\n    \"timestamp\": \"2026-03-09T12:00:00.000Z\"\n  }\n}"}],"_postman_id":"077378ca-5ebb-4d82-b1b5-56075ad3c206"},{"name":"Get job title performance overview","id":"4d83d8b7-dd15-4055-8fb1-233fc31b1fa8","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"https://app.zenabm.com/api/v1/job-titles/:id/overview?period=last30Days&startDate=2018-09-03&endDate=2018-09-03","description":"<p>Performance totals for a single job title over the date range — aggregated across the whole ad account (impressions, clicks, engagements, cost, conversions, CTR, CPC). The path <code>id</code> is the job title URN. Returns zeroes if the job title had no activity in the window.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{bearerToken}}"}]},"isInherited":true,"source":{"_postman_id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","name":"ZenABM API (from spec)","type":"collection"}},"urlObject":{"path":["job-titles",":id","overview"],"host":["https://app.zenabm.com/api/v1"],"query":[{"description":{"content":"<p>Time period preset. Ignored when startDate/endDate are provided.</p>\n","type":"text/plain"},"key":"period","value":"last30Days"},{"description":{"content":"<p>Start date (YYYY-MM-DD). When provided with endDate, overrides the period parameter.</p>\n","type":"text/plain"},"key":"startDate","value":"2018-09-03"},{"description":{"content":"<p>End date (YYYY-MM-DD). When provided with startDate, overrides the period parameter.</p>\n","type":"text/plain"},"key":"endDate","value":"2018-09-03"}],"variable":[{"description":{"content":"<p>Job title URN</p>\n","type":"text/plain"},"type":"any","value":"string","key":"id"}]}},"response":[{"id":"9cb899fe-f7fb-4ab4-9335-2b86930eee5d","name":"Job title performance summary for the date range","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"https://app.zenabm.com/api/v1/job-titles/:id/overview?period=last30Days&startDate=2018-09-03&endDate=2018-09-03","host":["https://app.zenabm.com/api/v1"],"path":["job-titles",":id","overview"],"query":[{"description":"Time period preset. Ignored when startDate/endDate are provided.","key":"period","value":"last30Days"},{"description":"Start date (YYYY-MM-DD). When provided with endDate, overrides the period parameter.","key":"startDate","value":"2018-09-03"},{"description":"End date (YYYY-MM-DD). When provided with startDate, overrides the period parameter.","key":"endDate","value":"2018-09-03"}],"variable":[{"key":"id","value":"string","description":"Job title URN"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"data\": {\n    \"jobTitleUrn\": \"urn:li:title:123\",\n    \"startDate\": \"2026-04-13\",\n    \"endDate\": \"2026-05-13\",\n    \"impressions\": 18420,\n    \"clicks\": 96,\n    \"engagements\": 312,\n    \"costInUsd\": 742.18,\n    \"conversions\": 4,\n    \"ctr\": 0.52,\n    \"cpc\": 7.73\n  },\n  \"meta\": {\n    \"timestamp\": \"2026-05-13T12:00:00.000Z\"\n  }\n}"}],"_postman_id":"4d83d8b7-dd15-4055-8fb1-233fc31b1fa8"},{"name":"Get Ad Set insights for a job title","id":"4d17a199-4c42-46ad-9ff4-e94a81ce62f1","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"https://app.zenabm.com/api/v1/job-titles/:id/campaigns?period=last30Days&startDate=2018-09-03&endDate=2018-09-03&sortBy=string&sortOrder=desc&search=string","description":"<p>Ad sets this job title was exposed to, with per-job-title delivery metrics. The path <code>id</code> is the job title URN. Optional filters: sortBy, sortOrder, search. Job title interactions are stored as weekly totals anchored on the Sunday that ends each Monday–Sunday week, so a date range selects whole weeks rather than exact days. <code>meta.dateRange</code> reports what was actually summed: the range you asked for, the range covered, and how many weeks that was. When <code>weeksCovered</code> is 0 no week ended inside your range, so the totals are empty by definition — widen the range rather than reading it as no activity.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{bearerToken}}"}]},"isInherited":true,"source":{"_postman_id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","name":"ZenABM API (from spec)","type":"collection"}},"urlObject":{"path":["job-titles",":id","campaigns"],"host":["https://app.zenabm.com/api/v1"],"query":[{"description":{"content":"<p>Time period preset. Ignored when startDate/endDate are provided.</p>\n","type":"text/plain"},"key":"period","value":"last30Days"},{"description":{"content":"<p>Start date (YYYY-MM-DD). Must be sent together with endDate; a half-supplied range is ignored and the period preset applies instead. Job title interactions are stored as weekly totals, so a week is included when the day it ends on falls inside the range. Totals are never split across a partial week, and a range shorter than a week can return nothing.</p>\n","type":"text/plain"},"key":"startDate","value":"2018-09-03"},{"description":{"content":"<p>End date (YYYY-MM-DD). Must be sent together with startDate. Selects whole weeks, exactly like startDate.</p>\n","type":"text/plain"},"key":"endDate","value":"2018-09-03"},{"description":{"content":"<p>Field to sort by (e.g. impressions, clicks, engagements)</p>\n","type":"text/plain"},"key":"sortBy","value":"string"},{"description":{"content":"<p>Sort direction</p>\n","type":"text/plain"},"key":"sortOrder","value":"desc"},{"description":{"content":"<p>Search filter</p>\n","type":"text/plain"},"key":"search","value":"string"}],"variable":[{"description":{"content":"<p>Job title URN</p>\n","type":"text/plain"},"type":"any","value":"string","key":"id"}]}},"response":[{"id":"17a39ee0-4f68-4eaf-8fa0-14c45b4660c6","name":"Ad Set insights for job title","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"https://app.zenabm.com/api/v1/job-titles/:id/campaigns?period=last30Days&startDate=2018-09-03&endDate=2018-09-03&sortBy=string&sortOrder=desc&search=string","host":["https://app.zenabm.com/api/v1"],"path":["job-titles",":id","campaigns"],"query":[{"description":"Time period preset. Ignored when startDate/endDate are provided.","key":"period","value":"last30Days"},{"description":"Start date (YYYY-MM-DD). Must be sent together with endDate; a half-supplied range is ignored and the period preset applies instead. Job title interactions are stored as weekly totals, so a week is included when the day it ends on falls inside the range. Totals are never split across a partial week, and a range shorter than a week can return nothing.","key":"startDate","value":"2018-09-03"},{"description":"End date (YYYY-MM-DD). Must be sent together with startDate. Selects whole weeks, exactly like startDate.","key":"endDate","value":"2018-09-03"},{"description":"Field to sort by (e.g. impressions, clicks, engagements)","key":"sortBy","value":"string"},{"description":"Sort direction","key":"sortOrder","value":"desc"},{"description":"Search filter","key":"search","value":"string"}],"variable":[{"key":"id","value":"string","description":"Job title URN"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"data\": [\n    {\n      \"id\": \"1337\",\n      \"name\": \"TechCrunch 2025\",\n      \"format\": \"Single Image\",\n      \"impressions\": 12450,\n      \"clicks\": 87,\n      \"engagements\": 342,\n      \"costInUsd\": 891.45,\n      \"ctr\": 0.7,\n      \"cpc\": 10.25,\n      \"averageDwellTime\": 4.2,\n      \"videoViews\": 0,\n      \"videoStarts\": 0,\n      \"videoFirstQuartileCompletions\": 0,\n      \"videoMidpointCompletions\": 0,\n      \"videoThirdQuartileCompletions\": 0,\n      \"videoCompletions\": 0\n    }\n  ],\n  \"meta\": {\n    \"timestamp\": \"2026-03-09T12:00:00.000Z\",\n    \"dateRange\": {\n      \"granularity\": \"weekly\",\n      \"weekAnchor\": \"sunday\",\n      \"requestedStartDate\": \"2026-04-01\",\n      \"requestedEndDate\": \"2026-04-15\",\n      \"coveredStartDate\": \"2026-03-30\",\n      \"coveredEndDate\": \"2026-04-12\",\n      \"weeksCovered\": 2\n    }\n  }\n}"}],"_postman_id":"4d17a199-4c42-46ad-9ff4-e94a81ce62f1"},{"name":"Get Campaign insights for a job title","id":"1f57d5fb-a33c-4667-ad20-72bdab2c7114","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"https://app.zenabm.com/api/v1/job-titles/:id/campaign-groups?period=last30Days&startDate=2018-09-03&endDate=2018-09-03&sortBy=string&sortOrder=desc&search=string","description":"<p>Optional filters: sortBy, sortOrder, search. Job title interactions are stored as weekly totals anchored on the Sunday that ends each Monday–Sunday week, so a date range selects whole weeks rather than exact days. <code>meta.dateRange</code> reports what was actually summed: the range you asked for, the range covered, and how many weeks that was. When <code>weeksCovered</code> is 0 no week ended inside your range, so the totals are empty by definition — widen the range rather than reading it as no activity.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{bearerToken}}"}]},"isInherited":true,"source":{"_postman_id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","name":"ZenABM API (from spec)","type":"collection"}},"urlObject":{"path":["job-titles",":id","campaign-groups"],"host":["https://app.zenabm.com/api/v1"],"query":[{"description":{"content":"<p>Time period preset. Ignored when startDate/endDate are provided.</p>\n","type":"text/plain"},"key":"period","value":"last30Days"},{"description":{"content":"<p>Start date (YYYY-MM-DD). Must be sent together with endDate; a half-supplied range is ignored and the period preset applies instead. Job title interactions are stored as weekly totals, so a week is included when the day it ends on falls inside the range. Totals are never split across a partial week, and a range shorter than a week can return nothing.</p>\n","type":"text/plain"},"key":"startDate","value":"2018-09-03"},{"description":{"content":"<p>End date (YYYY-MM-DD). Must be sent together with startDate. Selects whole weeks, exactly like startDate.</p>\n","type":"text/plain"},"key":"endDate","value":"2018-09-03"},{"description":{"content":"<p>Field to sort by (e.g. impressions, clicks, engagements)</p>\n","type":"text/plain"},"key":"sortBy","value":"string"},{"description":{"content":"<p>Sort direction</p>\n","type":"text/plain"},"key":"sortOrder","value":"desc"},{"description":{"content":"<p>Search filter</p>\n","type":"text/plain"},"key":"search","value":"string"}],"variable":[{"description":{"content":"<p>Job title ID</p>\n","type":"text/plain"},"type":"any","value":"string","key":"id"}]}},"response":[{"id":"b94c46e6-f10a-45a2-a7c1-720415005d7d","name":"Campaign insights for job title","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"https://app.zenabm.com/api/v1/job-titles/:id/campaign-groups?period=last30Days&startDate=2018-09-03&endDate=2018-09-03&sortBy=string&sortOrder=desc&search=string","host":["https://app.zenabm.com/api/v1"],"path":["job-titles",":id","campaign-groups"],"query":[{"description":"Time period preset. Ignored when startDate/endDate are provided.","key":"period","value":"last30Days"},{"description":"Start date (YYYY-MM-DD). Must be sent together with endDate; a half-supplied range is ignored and the period preset applies instead. Job title interactions are stored as weekly totals, so a week is included when the day it ends on falls inside the range. Totals are never split across a partial week, and a range shorter than a week can return nothing.","key":"startDate","value":"2018-09-03"},{"description":"End date (YYYY-MM-DD). Must be sent together with startDate. Selects whole weeks, exactly like startDate.","key":"endDate","value":"2018-09-03"},{"description":"Field to sort by (e.g. impressions, clicks, engagements)","key":"sortBy","value":"string"},{"description":"Sort direction","key":"sortOrder","value":"desc"},{"description":"Search filter","key":"search","value":"string"}],"variable":[{"key":"id","value":"string","description":"Job title ID"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"data\": [\n    {\n      \"id\": \"1337\",\n      \"name\": \"TechCrunch 2025\",\n      \"impressions\": 12450,\n      \"clicks\": 87,\n      \"engagements\": 342,\n      \"costInUsd\": 891.45,\n      \"ctr\": 0.7,\n      \"cpc\": 10.25,\n      \"averageDwellTime\": 4.2,\n      \"videoViews\": 0,\n      \"videoStarts\": 0,\n      \"videoFirstQuartileCompletions\": 0,\n      \"videoMidpointCompletions\": 0,\n      \"videoThirdQuartileCompletions\": 0,\n      \"videoCompletions\": 0\n    }\n  ],\n  \"meta\": {\n    \"timestamp\": \"2026-03-09T12:00:00.000Z\",\n    \"dateRange\": {\n      \"granularity\": \"weekly\",\n      \"weekAnchor\": \"sunday\",\n      \"requestedStartDate\": \"2026-04-01\",\n      \"requestedEndDate\": \"2026-04-15\",\n      \"coveredStartDate\": \"2026-03-30\",\n      \"coveredEndDate\": \"2026-04-12\",\n      \"weeksCovered\": 2\n    }\n  }\n}"}],"_postman_id":"1f57d5fb-a33c-4667-ad20-72bdab2c7114"}],"id":"900aed14-5722-440e-8557-6821f1a8c5a9","_postman_id":"900aed14-5722-440e-8557-6821f1a8c5a9","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{bearerToken}}"}]},"isInherited":true,"source":{"_postman_id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","name":"ZenABM API (from spec)","type":"collection"}}},{"name":"ABM Campaigns","item":[{"name":"List ABM campaigns with insights","id":"32c21b08-3607-42a5-8cbe-8e64658bc145","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"https://app.zenabm.com/api/v1/abm-campaigns?page=1&pageSize=20&period=last30Days&startDate=2018-09-03&endDate=2018-09-03&sortBy=string&sortOrder=desc&search=string&status=ACTIVE&minNumberOfLinkedinCampaigns=192.19441793910886&maxNumberOfLinkedinCampaigns=192.19441793910886&minNumberOfLinkedinCampaignGroups=192.19441793910886&maxNumberOfLinkedinCampaignGroups=192.19441793910886&minCompaniesTargeted=192.19441793910886&maxCompaniesTargeted=192.19441793910886&minTotalPipeline=192.19441793910886&maxTotalPipeline=192.19441793910886&minTotalRevenue=192.19441793910886&maxTotalRevenue=192.19441793910886&minTotalAdSpend=192.19441793910886&maxTotalAdSpend=192.19441793910886&minRoas=192.19441793910886&maxRoas=192.19441793910886","description":"<p>Optional filters: status (ACTIVE,PAUSED,COMPLETED)</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{bearerToken}}"}]},"isInherited":true,"source":{"_postman_id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","name":"ZenABM API (from spec)","type":"collection"}},"urlObject":{"path":["abm-campaigns"],"host":["https://app.zenabm.com/api/v1"],"query":[{"description":{"content":"<p>Page number (default: 1)</p>\n","type":"text/plain"},"key":"page","value":"1"},{"description":{"content":"<p>Items per page (default: 20, max: 100)</p>\n","type":"text/plain"},"key":"pageSize","value":"20"},{"description":{"content":"<p>Time period preset. Ignored when startDate/endDate are provided.</p>\n","type":"text/plain"},"key":"period","value":"last30Days"},{"description":{"content":"<p>Start date (YYYY-MM-DD). When provided with endDate, overrides the period parameter.</p>\n","type":"text/plain"},"key":"startDate","value":"2018-09-03"},{"description":{"content":"<p>End date (YYYY-MM-DD). When provided with startDate, overrides the period parameter.</p>\n","type":"text/plain"},"key":"endDate","value":"2018-09-03"},{"description":{"content":"<p>Field to sort by (e.g. impressions, clicks, engagements)</p>\n","type":"text/plain"},"key":"sortBy","value":"string"},{"description":{"content":"<p>Sort direction</p>\n","type":"text/plain"},"key":"sortOrder","value":"desc"},{"description":{"content":"<p>Search filter</p>\n","type":"text/plain"},"key":"search","value":"string"},{"description":{"content":"<p>Comma-separated statuses: ACTIVE,PAUSED,COMPLETED</p>\n","type":"text/plain"},"key":"status","value":"ACTIVE"},{"description":{"content":"<p>Only return rows where the number of Ad Sets (response field <code>numberOfAdSets</code>) is greater than or equal to this value.</p>\n","type":"text/plain"},"key":"minNumberOfLinkedinCampaigns","value":"192.19441793910886"},{"description":{"content":"<p>Only return rows where the number of Ad Sets (response field <code>numberOfAdSets</code>) is less than or equal to this value.</p>\n","type":"text/plain"},"key":"maxNumberOfLinkedinCampaigns","value":"192.19441793910886"},{"description":{"content":"<p>Only return rows where the number of Campaigns (response field <code>numberOfCampaigns</code>) is greater than or equal to this value.</p>\n","type":"text/plain"},"key":"minNumberOfLinkedinCampaignGroups","value":"192.19441793910886"},{"description":{"content":"<p>Only return rows where the number of Campaigns (response field <code>numberOfCampaigns</code>) is less than or equal to this value.</p>\n","type":"text/plain"},"key":"maxNumberOfLinkedinCampaignGroups","value":"192.19441793910886"},{"description":{"content":"<p>Only return rows where the number of companies targeted is greater than or equal to this value.</p>\n","type":"text/plain"},"key":"minCompaniesTargeted","value":"192.19441793910886"},{"description":{"content":"<p>Only return rows where the number of companies targeted is less than or equal to this value.</p>\n","type":"text/plain"},"key":"maxCompaniesTargeted","value":"192.19441793910886"},{"description":{"content":"<p>Only return rows where total pipeline value is greater than or equal to this value.</p>\n","type":"text/plain"},"key":"minTotalPipeline","value":"192.19441793910886"},{"description":{"content":"<p>Only return rows where total pipeline value is less than or equal to this value.</p>\n","type":"text/plain"},"key":"maxTotalPipeline","value":"192.19441793910886"},{"description":{"content":"<p>Only return rows where total closed-won revenue is greater than or equal to this value.</p>\n","type":"text/plain"},"key":"minTotalRevenue","value":"192.19441793910886"},{"description":{"content":"<p>Only return rows where total closed-won revenue is less than or equal to this value.</p>\n","type":"text/plain"},"key":"maxTotalRevenue","value":"192.19441793910886"},{"description":{"content":"<p>Only return rows where total ad spend is greater than or equal to this value.</p>\n","type":"text/plain"},"key":"minTotalAdSpend","value":"192.19441793910886"},{"description":{"content":"<p>Only return rows where total ad spend is less than or equal to this value.</p>\n","type":"text/plain"},"key":"maxTotalAdSpend","value":"192.19441793910886"},{"description":{"content":"<p>Only return rows where return on ad spend (ROAS) is greater than or equal to this value.</p>\n","type":"text/plain"},"key":"minRoas","value":"192.19441793910886"},{"description":{"content":"<p>Only return rows where return on ad spend (ROAS) is less than or equal to this value.</p>\n","type":"text/plain"},"key":"maxRoas","value":"192.19441793910886"}],"variable":[]}},"response":[{"id":"81bfe620-b3fe-4fd4-8430-a4b8ffb08dcc","name":"Paginated list of ABM campaigns","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"https://app.zenabm.com/api/v1/abm-campaigns?page=1&pageSize=20&period=last30Days&startDate=2018-09-03&endDate=2018-09-03&sortBy=string&sortOrder=desc&search=string&status=ACTIVE&minNumberOfLinkedinCampaigns=192.19441793910886&maxNumberOfLinkedinCampaigns=192.19441793910886&minNumberOfLinkedinCampaignGroups=192.19441793910886&maxNumberOfLinkedinCampaignGroups=192.19441793910886&minCompaniesTargeted=192.19441793910886&maxCompaniesTargeted=192.19441793910886&minTotalPipeline=192.19441793910886&maxTotalPipeline=192.19441793910886&minTotalRevenue=192.19441793910886&maxTotalRevenue=192.19441793910886&minTotalAdSpend=192.19441793910886&maxTotalAdSpend=192.19441793910886&minRoas=192.19441793910886&maxRoas=192.19441793910886","host":["https://app.zenabm.com/api/v1"],"path":["abm-campaigns"],"query":[{"description":"Page number (default: 1)","key":"page","value":"1"},{"description":"Items per page (default: 20, max: 100)","key":"pageSize","value":"20"},{"description":"Time period preset. Ignored when startDate/endDate are provided.","key":"period","value":"last30Days"},{"description":"Start date (YYYY-MM-DD). When provided with endDate, overrides the period parameter.","key":"startDate","value":"2018-09-03"},{"description":"End date (YYYY-MM-DD). When provided with startDate, overrides the period parameter.","key":"endDate","value":"2018-09-03"},{"description":"Field to sort by (e.g. impressions, clicks, engagements)","key":"sortBy","value":"string"},{"description":"Sort direction","key":"sortOrder","value":"desc"},{"description":"Search filter","key":"search","value":"string"},{"description":"Comma-separated statuses: ACTIVE,PAUSED,COMPLETED","key":"status","value":"ACTIVE"},{"description":"Only return rows where the number of Ad Sets (response field `numberOfAdSets`) is greater than or equal to this value.","key":"minNumberOfLinkedinCampaigns","value":"192.19441793910886"},{"description":"Only return rows where the number of Ad Sets (response field `numberOfAdSets`) is less than or equal to this value.","key":"maxNumberOfLinkedinCampaigns","value":"192.19441793910886"},{"description":"Only return rows where the number of Campaigns (response field `numberOfCampaigns`) is greater than or equal to this value.","key":"minNumberOfLinkedinCampaignGroups","value":"192.19441793910886"},{"description":"Only return rows where the number of Campaigns (response field `numberOfCampaigns`) is less than or equal to this value.","key":"maxNumberOfLinkedinCampaignGroups","value":"192.19441793910886"},{"description":"Only return rows where the number of companies targeted is greater than or equal to this value.","key":"minCompaniesTargeted","value":"192.19441793910886"},{"description":"Only return rows where the number of companies targeted is less than or equal to this value.","key":"maxCompaniesTargeted","value":"192.19441793910886"},{"description":"Only return rows where total pipeline value is greater than or equal to this value.","key":"minTotalPipeline","value":"192.19441793910886"},{"description":"Only return rows where total pipeline value is less than or equal to this value.","key":"maxTotalPipeline","value":"192.19441793910886"},{"description":"Only return rows where total closed-won revenue is greater than or equal to this value.","key":"minTotalRevenue","value":"192.19441793910886"},{"description":"Only return rows where total closed-won revenue is less than or equal to this value.","key":"maxTotalRevenue","value":"192.19441793910886"},{"description":"Only return rows where total ad spend is greater than or equal to this value.","key":"minTotalAdSpend","value":"192.19441793910886"},{"description":"Only return rows where total ad spend is less than or equal to this value.","key":"maxTotalAdSpend","value":"192.19441793910886"},{"description":"Only return rows where return on ad spend (ROAS) is greater than or equal to this value.","key":"minRoas","value":"192.19441793910886"},{"description":"Only return rows where return on ad spend (ROAS) is less than or equal to this value.","key":"maxRoas","value":"192.19441793910886"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"data\": [\n    {\n      \"id\": \"cm7abm001\",\n      \"name\": \"Q1 Enterprise ABM Campaign\",\n      \"status\": \"ACTIVE\",\n      \"startDate\": \"2025-01-15T00:00:00.000Z\",\n      \"endDate\": \"2025-06-30T00:00:00.000Z\",\n      \"description\": \"Targeting enterprise accounts in fintech\",\n      \"teamId\": \"team123\",\n      \"numberOfTargetAccounts\": 120,\n      \"createdAt\": \"2025-01-10T08:00:00.000Z\",\n      \"updatedAt\": \"2025-03-01T12:00:00.000Z\",\n      \"numberOfAdSets\": 5,\n      \"numberOfCampaigns\": 2,\n      \"companiesTargeted\": 85,\n      \"totalPipeline\": 450000,\n      \"totalRevenue\": 180000,\n      \"totalAdSpend\": 12500,\n      \"pipePerSpent\": 36,\n      \"averageAcv\": 45000,\n      \"roas\": 14.4\n    }\n  ],\n  \"pagination\": {\n    \"page\": 1,\n    \"pageSize\": 20,\n    \"totalCount\": 1,\n    \"totalPages\": 1\n  },\n  \"meta\": {\n    \"timestamp\": \"2026-03-09T12:00:00.000Z\"\n  }\n}"}],"_postman_id":"32c21b08-3607-42a5-8cbe-8e64658bc145"},{"name":"Get ABM campaign by ID","id":"d192f192-caab-40b0-8167-8a80e40dc0be","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"https://app.zenabm.com/api/v1/abm-campaigns/:id","description":"<p>Returns the ABM campaign plus the LinkedIn entities the user assigned to it. An ABM campaign can be backed by campaigns (<code>linkedinCampaigns</code>), ad sets (<code>linkedinAdSets</code>), or both — each array is a direct membership, not a parent/child hierarchy. Either can be empty.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{bearerToken}}"}]},"isInherited":true,"source":{"_postman_id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","name":"ZenABM API (from spec)","type":"collection"}},"urlObject":{"path":["abm-campaigns",":id"],"host":["https://app.zenabm.com/api/v1"],"query":[],"variable":[{"description":{"content":"<p>ABM campaign ID</p>\n","type":"text/plain"},"type":"any","value":"string","key":"id"}]}},"response":[{"id":"088f54cb-4840-44b5-8923-c9585ca0633f","name":"ABM campaign details","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"https://app.zenabm.com/api/v1/abm-campaigns/:id","host":["https://app.zenabm.com/api/v1"],"path":["abm-campaigns",":id"],"variable":[{"key":"id","value":"string","description":"ABM campaign ID"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"data\": {\n    \"abmCampaign\": {\n      \"id\": \"1337\",\n      \"name\": \"Silicon Valley 2025\",\n      \"status\": \"ACTIVE\",\n      \"startDate\": \"2025-01-15T00:00:00.000Z\",\n      \"endDate\": \"2025-06-30T00:00:00.000Z\",\n      \"description\": \"Targeting enterprise accounts in fintech\",\n      \"teamId\": \"team123\",\n      \"numberOfTargetAccounts\": 120,\n      \"createdAt\": \"2025-01-10T08:00:00.000Z\",\n      \"updatedAt\": \"2025-03-01T12:00:00.000Z\"\n    },\n    \"linkedinCampaigns\": [\n      {\n        \"id\": \"1337\",\n        \"name\": \"Silicon Valley 2025 CG\"\n      }\n    ],\n    \"linkedinAdSets\": [\n      {\n        \"id\": \"1337\",\n        \"name\": \"Silicon Valley 2025\",\n        \"format\": \"Single Image\"\n      }\n    ]\n  },\n  \"meta\": {\n    \"timestamp\": \"2026-03-09T12:00:00.000Z\"\n  }\n}"}],"_postman_id":"d192f192-caab-40b0-8167-8a80e40dc0be"},{"name":"Get ABM campaign performance overview","id":"d713719d-3d87-4264-84cc-aa2ebd443c90","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"https://app.zenabm.com/api/v1/abm-campaigns/:id/overview?period=last30Days&startDate=2018-09-03&endDate=2018-09-03","description":"<p>Performance for the date range: <code>metrics</code> (LinkedIn delivery — impressions, clicks, engagements, cost, conversions, CTR, CPC across the ad sets + campaigns assigned to this ABM campaign) and <code>effectiveness</code> (business outcomes — companiesTargeted, totalPipeline, totalRevenue, totalAdSpend, pipePerSpent, averageAcv, roas). Currency note: <code>metrics.costInUsd</code> and <code>effectiveness.totalAdSpend</code> are always USD; <code>effectiveness.totalPipeline</code>, <code>totalRevenue</code>, and <code>averageAcv</code> are in the team <code>displayCurrency</code> (HubSpot deal amounts converted at sync time). <code>pipePerSpent</code> and <code>roas</code> are therefore ratios across the two currencies — treat as approximate unless <code>displayCurrency</code> is USD.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{bearerToken}}"}]},"isInherited":true,"source":{"_postman_id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","name":"ZenABM API (from spec)","type":"collection"}},"urlObject":{"path":["abm-campaigns",":id","overview"],"host":["https://app.zenabm.com/api/v1"],"query":[{"description":{"content":"<p>Time period preset. Ignored when startDate/endDate are provided.</p>\n","type":"text/plain"},"key":"period","value":"last30Days"},{"description":{"content":"<p>Start date (YYYY-MM-DD). When provided with endDate, overrides the period parameter.</p>\n","type":"text/plain"},"key":"startDate","value":"2018-09-03"},{"description":{"content":"<p>End date (YYYY-MM-DD). When provided with startDate, overrides the period parameter.</p>\n","type":"text/plain"},"key":"endDate","value":"2018-09-03"}],"variable":[{"description":{"content":"<p>ABM campaign ID</p>\n","type":"text/plain"},"type":"any","value":"string","key":"id"}]}},"response":[{"id":"aa8533e1-cd55-4c33-9bba-88ebe154323a","name":"ABM campaign performance for the date range","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"https://app.zenabm.com/api/v1/abm-campaigns/:id/overview?period=last30Days&startDate=2018-09-03&endDate=2018-09-03","host":["https://app.zenabm.com/api/v1"],"path":["abm-campaigns",":id","overview"],"query":[{"description":"Time period preset. Ignored when startDate/endDate are provided.","key":"period","value":"last30Days"},{"description":"Start date (YYYY-MM-DD). When provided with endDate, overrides the period parameter.","key":"startDate","value":"2018-09-03"},{"description":"End date (YYYY-MM-DD). When provided with startDate, overrides the period parameter.","key":"endDate","value":"2018-09-03"}],"variable":[{"key":"id","value":"string","description":"ABM campaign ID"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"data\": {\n    \"id\": \"cmoga3ilc004vju04cjrajud2\",\n    \"name\": \"ABM Intent May 26\",\n    \"startDate\": \"2026-04-13\",\n    \"endDate\": \"2026-05-13\",\n    \"displayCurrency\": \"USD\",\n    \"metrics\": {\n      \"impressions\": 231753,\n      \"clicks\": 555,\n      \"engagements\": 861,\n      \"costInUsd\": 2189.62,\n      \"conversions\": 3,\n      \"ctr\": 0.24,\n      \"cpc\": 3.95\n    },\n    \"effectiveness\": {\n      \"companiesTargeted\": 412,\n      \"totalPipeline\": 184000,\n      \"totalRevenue\": 52000,\n      \"totalAdSpend\": 2189.62,\n      \"pipePerSpent\": 84.03,\n      \"averageAcv\": 26000,\n      \"roas\": 23.75\n    }\n  },\n  \"meta\": {\n    \"timestamp\": \"2026-05-13T12:00:00.000Z\"\n  }\n}"}],"_postman_id":"d713719d-3d87-4264-84cc-aa2ebd443c90"},{"name":"Get ABM campaign stages breakdown","id":"31864f39-7270-4597-9a16-b5becdc92e0c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"https://app.zenabm.com/api/v1/abm-campaigns/:id/stages-breakdown?period=last30Days&startDate=2018-09-03&endDate=2018-09-03","description":"<p>Returns a breakdown of companies across each ABM funnel stage.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{bearerToken}}"}]},"isInherited":true,"source":{"_postman_id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","name":"ZenABM API (from spec)","type":"collection"}},"urlObject":{"path":["abm-campaigns",":id","stages-breakdown"],"host":["https://app.zenabm.com/api/v1"],"query":[{"description":{"content":"<p>Time period preset. Ignored when startDate/endDate are provided.</p>\n","type":"text/plain"},"key":"period","value":"last30Days"},{"description":{"content":"<p>Start date (YYYY-MM-DD). When provided with endDate, overrides the period parameter.</p>\n","type":"text/plain"},"key":"startDate","value":"2018-09-03"},{"description":{"content":"<p>End date (YYYY-MM-DD). When provided with startDate, overrides the period parameter.</p>\n","type":"text/plain"},"key":"endDate","value":"2018-09-03"}],"variable":[{"description":{"content":"<p>ABM campaign ID</p>\n","type":"text/plain"},"type":"any","value":"string","key":"id"}]}},"response":[{"id":"ed406580-8ce5-42e4-b22d-3eb264dbe5e3","name":"Stages breakdown for ABM campaign","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"https://app.zenabm.com/api/v1/abm-campaigns/:id/stages-breakdown?period=last30Days&startDate=2018-09-03&endDate=2018-09-03","host":["https://app.zenabm.com/api/v1"],"path":["abm-campaigns",":id","stages-breakdown"],"query":[{"description":"Time period preset. Ignored when startDate/endDate are provided.","key":"period","value":"last30Days"},{"description":"Start date (YYYY-MM-DD). When provided with endDate, overrides the period parameter.","key":"startDate","value":"2018-09-03"},{"description":"End date (YYYY-MM-DD). When provided with startDate, overrides the period parameter.","key":"endDate","value":"2018-09-03"}],"variable":[{"key":"id","value":"string","description":"ABM campaign ID"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"data\": {\n    \"data\": [\n      {\n        \"stageId\": \"1337\",\n        \"stageName\": \"Aware\",\n        \"color\": \"#FFC107\",\n        \"isConfigured\": true,\n        \"currentPeriod\": 45,\n        \"previousPeriod\": 32,\n        \"change\": 13,\n        \"changePercentage\": 40.6\n      }\n    ],\n    \"viewType\": \"unified\",\n    \"periods\": {\n      \"current\": {\n        \"label\": \"Mar 2025\",\n        \"dateRange\": {\n          \"from\": \"2025-03-01\",\n          \"to\": \"2025-03-31\"\n        }\n      },\n      \"previous\": {\n        \"label\": \"Feb 2025\",\n        \"dateRange\": {\n          \"from\": \"2025-02-01\",\n          \"to\": \"2025-02-28\"\n        }\n      }\n    }\n  },\n  \"meta\": {\n    \"timestamp\": \"2026-03-09T12:00:00.000Z\"\n  }\n}"}],"_postman_id":"31864f39-7270-4597-9a16-b5becdc92e0c"},{"name":"List companies for an ABM campaign","id":"4ef2817b-8009-4c7d-b0c0-dc993a4abf9d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"https://app.zenabm.com/api/v1/abm-campaigns/:id/companies?page=1&pageSize=20&period=last30Days&startDate=2018-09-03&endDate=2018-09-03&sortBy=string&sortOrder=desc&search=string&engagementScores=3,4,5&abmStages=string&intentId=string&minImpressions=192.19441793910886&maxImpressions=192.19441793910886&minClicks=192.19441793910886&maxClicks=192.19441793910886&minEngagements=192.19441793910886&maxEngagements=192.19441793910886&minCostInUsd=192.19441793910886&maxCostInUsd=192.19441793910886&minCostPerClick=192.19441793910886&maxCostPerClick=192.19441793910886&minCpm=192.19441793910886&maxCpm=192.19441793910886&minClickThroughRate=192.19441793910886&maxClickThroughRate=192.19441793910886&minIntents=192.19441793910886&maxIntents=192.19441793910886&crmMatchStatus=all&salesforceMatchStatus=all&attioMatchStatus=all&hideExcludedCompanies=false","description":"<p>Returns a paginated list of companies with engagement metrics and intent data for a specific ABM campaign. Aggregates data from all linked LinkedIn campaigns and campaign groups. <code>abmStage</code> is the company's stage within this campaign — <code>null</code> until the company has one here — and a manual stage override on the company takes precedence; <code>lifetimeAbmStage</code> stays company-wide.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{bearerToken}}"}]},"isInherited":true,"source":{"_postman_id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","name":"ZenABM API (from spec)","type":"collection"}},"urlObject":{"path":["abm-campaigns",":id","companies"],"host":["https://app.zenabm.com/api/v1"],"query":[{"description":{"content":"<p>Page number (default: 1)</p>\n","type":"text/plain"},"key":"page","value":"1"},{"description":{"content":"<p>Items per page (default: 20, max: 100)</p>\n","type":"text/plain"},"key":"pageSize","value":"20"},{"description":{"content":"<p>Time period preset. Ignored when startDate/endDate are provided.</p>\n","type":"text/plain"},"key":"period","value":"last30Days"},{"description":{"content":"<p>Start date (YYYY-MM-DD). When provided with endDate, overrides the period parameter.</p>\n","type":"text/plain"},"key":"startDate","value":"2018-09-03"},{"description":{"content":"<p>End date (YYYY-MM-DD). When provided with startDate, overrides the period parameter.</p>\n","type":"text/plain"},"key":"endDate","value":"2018-09-03"},{"description":{"content":"<p>Field to sort by (e.g. impressions, clicks, engagements)</p>\n","type":"text/plain"},"key":"sortBy","value":"string"},{"description":{"content":"<p>Sort direction</p>\n","type":"text/plain"},"key":"sortOrder","value":"desc"},{"description":{"content":"<p>Search filter</p>\n","type":"text/plain"},"key":"search","value":"string"},{"description":{"content":"<p>Comma-separated scores (1–5)</p>\n","type":"text/plain"},"key":"engagementScores","value":"3,4,5"},{"description":{"content":"<p>Comma-separated ABM stage IDs. Filters on the company's stage within this campaign (manual overrides take precedence), matching the <code>abmStage</code> field in the response.</p>\n","type":"text/plain"},"key":"abmStages","value":"string"},{"description":{"content":"<p>Only return companies that show this intent signal. Takes a single intent ID — see <code>GET /intents</code>.</p>\n","type":"text/plain"},"key":"intentId","value":"string"},{"description":{"content":"<p>Only return rows where impressions is greater than or equal to this value.</p>\n","type":"text/plain"},"key":"minImpressions","value":"192.19441793910886"},{"description":{"content":"<p>Only return rows where impressions is less than or equal to this value.</p>\n","type":"text/plain"},"key":"maxImpressions","value":"192.19441793910886"},{"description":{"content":"<p>Only return rows where clicks is greater than or equal to this value.</p>\n","type":"text/plain"},"key":"minClicks","value":"192.19441793910886"},{"description":{"content":"<p>Only return rows where clicks is less than or equal to this value.</p>\n","type":"text/plain"},"key":"maxClicks","value":"192.19441793910886"},{"description":{"content":"<p>Only return rows where engagements is greater than or equal to this value.</p>\n","type":"text/plain"},"key":"minEngagements","value":"192.19441793910886"},{"description":{"content":"<p>Only return rows where engagements is less than or equal to this value.</p>\n","type":"text/plain"},"key":"maxEngagements","value":"192.19441793910886"},{"description":{"content":"<p>Only return rows where cost in USD is greater than or equal to this value.</p>\n","type":"text/plain"},"key":"minCostInUsd","value":"192.19441793910886"},{"description":{"content":"<p>Only return rows where cost in USD is less than or equal to this value.</p>\n","type":"text/plain"},"key":"maxCostInUsd","value":"192.19441793910886"},{"description":{"content":"<p>Only return rows where cost per click (CPC) is greater than or equal to this value.</p>\n","type":"text/plain"},"key":"minCostPerClick","value":"192.19441793910886"},{"description":{"content":"<p>Only return rows where cost per click (CPC) is less than or equal to this value.</p>\n","type":"text/plain"},"key":"maxCostPerClick","value":"192.19441793910886"},{"description":{"content":"<p>Only return rows where cost per 1,000 impressions (CPM) is greater than or equal to this value.</p>\n","type":"text/plain"},"key":"minCpm","value":"192.19441793910886"},{"description":{"content":"<p>Only return rows where cost per 1,000 impressions (CPM) is less than or equal to this value.</p>\n","type":"text/plain"},"key":"maxCpm","value":"192.19441793910886"},{"description":{"content":"<p>Only return rows where click-through rate (CTR, as a percentage) is greater than or equal to this value.</p>\n","type":"text/plain"},"key":"minClickThroughRate","value":"192.19441793910886"},{"description":{"content":"<p>Only return rows where click-through rate (CTR, as a percentage) is less than or equal to this value.</p>\n","type":"text/plain"},"key":"maxClickThroughRate","value":"192.19441793910886"},{"description":{"content":"<p>Only return rows where the number of intent signals is greater than or equal to this value.</p>\n","type":"text/plain"},"key":"minIntents","value":"192.19441793910886"},{"description":{"content":"<p>Only return rows where the number of intent signals is less than or equal to this value.</p>\n","type":"text/plain"},"key":"maxIntents","value":"192.19441793910886"},{"description":{"content":"<p>Filters on the link to HubSpot. <code>matched</code> returns only companies that have a HubSpot company record, <code>unmatched</code> only companies that have none. The name is generic for historic reasons, but this parameter covers HubSpot alone — use <code>salesforceMatchStatus</code> or <code>attioMatchStatus</code> for the other CRMs.</p>\n","type":"text/plain"},"key":"crmMatchStatus","value":"all"},{"description":{"content":"<p>Salesforce match filter</p>\n","type":"text/plain"},"key":"salesforceMatchStatus","value":"all"},{"description":{"content":"<p>Attio match filter</p>\n","type":"text/plain"},"key":"attioMatchStatus","value":"all"},{"description":{"content":"<p>When <code>true</code>, hides companies that have a COMPANY exclusion in this organization (matches the \"Excluded\" badge in the UI).</p>\n","type":"text/plain"},"key":"hideExcludedCompanies","value":"false"}],"variable":[{"description":{"content":"<p>ABM campaign ID</p>\n","type":"text/plain"},"type":"any","value":"string","key":"id"}]}},"response":[{"id":"ed774c92-e18a-48f2-a019-ac186cf92575","name":"Paginated companies for this ABM campaign","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"https://app.zenabm.com/api/v1/abm-campaigns/:id/companies?page=1&pageSize=20&period=last30Days&startDate=2018-09-03&endDate=2018-09-03&sortBy=string&sortOrder=desc&search=string&engagementScores=3,4,5&abmStages=string&intentId=string&minImpressions=192.19441793910886&maxImpressions=192.19441793910886&minClicks=192.19441793910886&maxClicks=192.19441793910886&minEngagements=192.19441793910886&maxEngagements=192.19441793910886&minCostInUsd=192.19441793910886&maxCostInUsd=192.19441793910886&minCostPerClick=192.19441793910886&maxCostPerClick=192.19441793910886&minCpm=192.19441793910886&maxCpm=192.19441793910886&minClickThroughRate=192.19441793910886&maxClickThroughRate=192.19441793910886&minIntents=192.19441793910886&maxIntents=192.19441793910886&crmMatchStatus=all&salesforceMatchStatus=all&attioMatchStatus=all&hideExcludedCompanies=false","host":["https://app.zenabm.com/api/v1"],"path":["abm-campaigns",":id","companies"],"query":[{"description":"Page number (default: 1)","key":"page","value":"1"},{"description":"Items per page (default: 20, max: 100)","key":"pageSize","value":"20"},{"description":"Time period preset. Ignored when startDate/endDate are provided.","key":"period","value":"last30Days"},{"description":"Start date (YYYY-MM-DD). When provided with endDate, overrides the period parameter.","key":"startDate","value":"2018-09-03"},{"description":"End date (YYYY-MM-DD). When provided with startDate, overrides the period parameter.","key":"endDate","value":"2018-09-03"},{"description":"Field to sort by (e.g. impressions, clicks, engagements)","key":"sortBy","value":"string"},{"description":"Sort direction","key":"sortOrder","value":"desc"},{"description":"Search filter","key":"search","value":"string"},{"description":"Comma-separated scores (1–5)","key":"engagementScores","value":"3,4,5"},{"description":"Comma-separated ABM stage IDs. Filters on the company's stage within this campaign (manual overrides take precedence), matching the `abmStage` field in the response.","key":"abmStages","value":"string"},{"description":"Only return companies that show this intent signal. Takes a single intent ID — see `GET /intents`.","key":"intentId","value":"string"},{"description":"Only return rows where impressions is greater than or equal to this value.","key":"minImpressions","value":"192.19441793910886"},{"description":"Only return rows where impressions is less than or equal to this value.","key":"maxImpressions","value":"192.19441793910886"},{"description":"Only return rows where clicks is greater than or equal to this value.","key":"minClicks","value":"192.19441793910886"},{"description":"Only return rows where clicks is less than or equal to this value.","key":"maxClicks","value":"192.19441793910886"},{"description":"Only return rows where engagements is greater than or equal to this value.","key":"minEngagements","value":"192.19441793910886"},{"description":"Only return rows where engagements is less than or equal to this value.","key":"maxEngagements","value":"192.19441793910886"},{"description":"Only return rows where cost in USD is greater than or equal to this value.","key":"minCostInUsd","value":"192.19441793910886"},{"description":"Only return rows where cost in USD is less than or equal to this value.","key":"maxCostInUsd","value":"192.19441793910886"},{"description":"Only return rows where cost per click (CPC) is greater than or equal to this value.","key":"minCostPerClick","value":"192.19441793910886"},{"description":"Only return rows where cost per click (CPC) is less than or equal to this value.","key":"maxCostPerClick","value":"192.19441793910886"},{"description":"Only return rows where cost per 1,000 impressions (CPM) is greater than or equal to this value.","key":"minCpm","value":"192.19441793910886"},{"description":"Only return rows where cost per 1,000 impressions (CPM) is less than or equal to this value.","key":"maxCpm","value":"192.19441793910886"},{"description":"Only return rows where click-through rate (CTR, as a percentage) is greater than or equal to this value.","key":"minClickThroughRate","value":"192.19441793910886"},{"description":"Only return rows where click-through rate (CTR, as a percentage) is less than or equal to this value.","key":"maxClickThroughRate","value":"192.19441793910886"},{"description":"Only return rows where the number of intent signals is greater than or equal to this value.","key":"minIntents","value":"192.19441793910886"},{"description":"Only return rows where the number of intent signals is less than or equal to this value.","key":"maxIntents","value":"192.19441793910886"},{"description":"Filters on the link to HubSpot. `matched` returns only companies that have a HubSpot company record, `unmatched` only companies that have none. The name is generic for historic reasons, but this parameter covers HubSpot alone — use `salesforceMatchStatus` or `attioMatchStatus` for the other CRMs.","key":"crmMatchStatus","value":"all"},{"description":"Salesforce match filter","key":"salesforceMatchStatus","value":"all"},{"description":"Attio match filter","key":"attioMatchStatus","value":"all"},{"description":"When `true`, hides companies that have a COMPANY exclusion in this organization (matches the \"Excluded\" badge in the UI).","key":"hideExcludedCompanies","value":"false"}],"variable":[{"key":"id","value":"string","description":"ABM campaign ID"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"data\": [\n    {\n      \"id\": \"1337\",\n      \"name\": \"Pied Piper\",\n      \"city\": \"Palo Alto\",\n      \"country\": \"US\",\n      \"website\": \"https://www.piedpiper.com/\",\n      \"linkedInOrgId\": \"4827017\",\n      \"hubspotCompanyId\": \"37411334702\",\n      \"attioRecordId\": \"a1b2c3d4-5e6f-4a7b-8c9d-0e1f2a3b4c5d\",\n      \"lifetimeEngagementScore\": 3,\n      \"logoUrl\": \"https://piedpiper.com/assets/images/logo.png\",\n      \"abmStage\": {\n        \"id\": \"1337_interested\",\n        \"name\": \"Interested\",\n        \"color\": \"#10B981\",\n        \"displayOrder\": 3\n      },\n      \"lifetimeAbmStage\": {\n        \"id\": \"1337_interested\",\n        \"name\": \"Interested\",\n        \"color\": \"#10B981\",\n        \"displayOrder\": 3\n      },\n      \"intents\": [\n        {\n          \"id\": \"cm9iaw4a50001jr04wqc1k4dt\",\n          \"name\": \"Competitor\"\n        }\n      ],\n      \"impressions\": 109198,\n      \"clicks\": 468,\n      \"engagements\": 2769,\n      \"costInUsd\": 2797.37,\n      \"currentEngagementScore\": 2\n    }\n  ],\n  \"pagination\": {\n    \"page\": 1,\n    \"pageSize\": 20,\n    \"totalCount\": 85,\n    \"totalPages\": 5\n  },\n  \"meta\": {\n    \"timestamp\": \"2026-03-10T12:00:00.000Z\"\n  }\n}"},{"id":"35ece7fd-cb70-40c9-a4ca-a8fd5561d02a","name":"ABM campaign not found","originalRequest":{"method":"GET","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"https://app.zenabm.com/api/v1/abm-campaigns/:id/companies?page=1&pageSize=20&period=last30Days&startDate=2018-09-03&endDate=2018-09-03&sortBy=string&sortOrder=desc&search=string&engagementScores=3,4,5&abmStages=string&intentId=string&minImpressions=192.19441793910886&maxImpressions=192.19441793910886&minClicks=192.19441793910886&maxClicks=192.19441793910886&minEngagements=192.19441793910886&maxEngagements=192.19441793910886&minCostInUsd=192.19441793910886&maxCostInUsd=192.19441793910886&minCostPerClick=192.19441793910886&maxCostPerClick=192.19441793910886&minCpm=192.19441793910886&maxCpm=192.19441793910886&minClickThroughRate=192.19441793910886&maxClickThroughRate=192.19441793910886&minIntents=192.19441793910886&maxIntents=192.19441793910886&crmMatchStatus=all&salesforceMatchStatus=all&attioMatchStatus=all&hideExcludedCompanies=false","host":["https://app.zenabm.com/api/v1"],"path":["abm-campaigns",":id","companies"],"query":[{"description":"Page number (default: 1)","key":"page","value":"1"},{"description":"Items per page (default: 20, max: 100)","key":"pageSize","value":"20"},{"description":"Time period preset. Ignored when startDate/endDate are provided.","key":"period","value":"last30Days"},{"description":"Start date (YYYY-MM-DD). When provided with endDate, overrides the period parameter.","key":"startDate","value":"2018-09-03"},{"description":"End date (YYYY-MM-DD). When provided with startDate, overrides the period parameter.","key":"endDate","value":"2018-09-03"},{"description":"Field to sort by (e.g. impressions, clicks, engagements)","key":"sortBy","value":"string"},{"description":"Sort direction","key":"sortOrder","value":"desc"},{"description":"Search filter","key":"search","value":"string"},{"description":"Comma-separated scores (1–5)","key":"engagementScores","value":"3,4,5"},{"description":"Comma-separated ABM stage IDs. Filters on the company's stage within this campaign (manual overrides take precedence), matching the `abmStage` field in the response.","key":"abmStages","value":"string"},{"description":"Only return companies that show this intent signal. Takes a single intent ID — see `GET /intents`.","key":"intentId","value":"string"},{"description":"Only return rows where impressions is greater than or equal to this value.","key":"minImpressions","value":"192.19441793910886"},{"description":"Only return rows where impressions is less than or equal to this value.","key":"maxImpressions","value":"192.19441793910886"},{"description":"Only return rows where clicks is greater than or equal to this value.","key":"minClicks","value":"192.19441793910886"},{"description":"Only return rows where clicks is less than or equal to this value.","key":"maxClicks","value":"192.19441793910886"},{"description":"Only return rows where engagements is greater than or equal to this value.","key":"minEngagements","value":"192.19441793910886"},{"description":"Only return rows where engagements is less than or equal to this value.","key":"maxEngagements","value":"192.19441793910886"},{"description":"Only return rows where cost in USD is greater than or equal to this value.","key":"minCostInUsd","value":"192.19441793910886"},{"description":"Only return rows where cost in USD is less than or equal to this value.","key":"maxCostInUsd","value":"192.19441793910886"},{"description":"Only return rows where cost per click (CPC) is greater than or equal to this value.","key":"minCostPerClick","value":"192.19441793910886"},{"description":"Only return rows where cost per click (CPC) is less than or equal to this value.","key":"maxCostPerClick","value":"192.19441793910886"},{"description":"Only return rows where cost per 1,000 impressions (CPM) is greater than or equal to this value.","key":"minCpm","value":"192.19441793910886"},{"description":"Only return rows where cost per 1,000 impressions (CPM) is less than or equal to this value.","key":"maxCpm","value":"192.19441793910886"},{"description":"Only return rows where click-through rate (CTR, as a percentage) is greater than or equal to this value.","key":"minClickThroughRate","value":"192.19441793910886"},{"description":"Only return rows where click-through rate (CTR, as a percentage) is less than or equal to this value.","key":"maxClickThroughRate","value":"192.19441793910886"},{"description":"Only return rows where the number of intent signals is greater than or equal to this value.","key":"minIntents","value":"192.19441793910886"},{"description":"Only return rows where the number of intent signals is less than or equal to this value.","key":"maxIntents","value":"192.19441793910886"},{"description":"Filters on the link to HubSpot. `matched` returns only companies that have a HubSpot company record, `unmatched` only companies that have none. The name is generic for historic reasons, but this parameter covers HubSpot alone — use `salesforceMatchStatus` or `attioMatchStatus` for the other CRMs.","key":"crmMatchStatus","value":"all"},{"description":"Salesforce match filter","key":"salesforceMatchStatus","value":"all"},{"description":"Attio match filter","key":"attioMatchStatus","value":"all"},{"description":"When `true`, hides companies that have a COMPANY exclusion in this organization (matches the \"Excluded\" badge in the UI).","key":"hideExcludedCompanies","value":"false"}],"variable":[{"key":"id","value":"string","description":"ABM campaign ID"}]}},"status":"Not Found","code":404,"_postman_previewlanguage":"text","header":[],"cookie":[],"responseTime":null,"body":null}],"_postman_id":"4ef2817b-8009-4c7d-b0c0-dc993a4abf9d"},{"name":"List job titles for an ABM campaign","id":"94a61050-8dfd-46a5-b11f-7286be888094","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"https://app.zenabm.com/api/v1/abm-campaigns/:id/job-titles?page=1&pageSize=20&period=last30Days&startDate=2018-09-03&endDate=2018-09-03&sortBy=string&sortOrder=desc&search=string&minImpressions=192.19441793910886&maxImpressions=192.19441793910886&minClicks=192.19441793910886&maxClicks=192.19441793910886&minEngagements=192.19441793910886&maxEngagements=192.19441793910886&minCostInUsd=192.19441793910886&maxCostInUsd=192.19441793910886&minCostPerClick=192.19441793910886&maxCostPerClick=192.19441793910886&minClickThroughRate=192.19441793910886&maxClickThroughRate=192.19441793910886","description":"<p>Returns a paginated list of job titles with engagement metrics for a specific ABM campaign. Aggregates data from all linked LinkedIn campaigns and campaign groups.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{bearerToken}}"}]},"isInherited":true,"source":{"_postman_id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","name":"ZenABM API (from spec)","type":"collection"}},"urlObject":{"path":["abm-campaigns",":id","job-titles"],"host":["https://app.zenabm.com/api/v1"],"query":[{"description":{"content":"<p>Page number (default: 1)</p>\n","type":"text/plain"},"key":"page","value":"1"},{"description":{"content":"<p>Items per page (default: 20, max: 100)</p>\n","type":"text/plain"},"key":"pageSize","value":"20"},{"description":{"content":"<p>Time period preset. Ignored when startDate/endDate are provided.</p>\n","type":"text/plain"},"key":"period","value":"last30Days"},{"description":{"content":"<p>Start date (YYYY-MM-DD). When provided with endDate, overrides the period parameter.</p>\n","type":"text/plain"},"key":"startDate","value":"2018-09-03"},{"description":{"content":"<p>End date (YYYY-MM-DD). When provided with startDate, overrides the period parameter.</p>\n","type":"text/plain"},"key":"endDate","value":"2018-09-03"},{"description":{"content":"<p>Field to sort by (e.g. impressions, clicks, engagements)</p>\n","type":"text/plain"},"key":"sortBy","value":"string"},{"description":{"content":"<p>Sort direction</p>\n","type":"text/plain"},"key":"sortOrder","value":"desc"},{"description":{"content":"<p>Search filter</p>\n","type":"text/plain"},"key":"search","value":"string"},{"description":{"content":"<p>Only return rows where impressions is greater than or equal to this value.</p>\n","type":"text/plain"},"key":"minImpressions","value":"192.19441793910886"},{"description":{"content":"<p>Only return rows where impressions is less than or equal to this value.</p>\n","type":"text/plain"},"key":"maxImpressions","value":"192.19441793910886"},{"description":{"content":"<p>Only return rows where clicks is greater than or equal to this value.</p>\n","type":"text/plain"},"key":"minClicks","value":"192.19441793910886"},{"description":{"content":"<p>Only return rows where clicks is less than or equal to this value.</p>\n","type":"text/plain"},"key":"maxClicks","value":"192.19441793910886"},{"description":{"content":"<p>Only return rows where engagements is greater than or equal to this value.</p>\n","type":"text/plain"},"key":"minEngagements","value":"192.19441793910886"},{"description":{"content":"<p>Only return rows where engagements is less than or equal to this value.</p>\n","type":"text/plain"},"key":"maxEngagements","value":"192.19441793910886"},{"description":{"content":"<p>Only return rows where cost in USD is greater than or equal to this value.</p>\n","type":"text/plain"},"key":"minCostInUsd","value":"192.19441793910886"},{"description":{"content":"<p>Only return rows where cost in USD is less than or equal to this value.</p>\n","type":"text/plain"},"key":"maxCostInUsd","value":"192.19441793910886"},{"description":{"content":"<p>Only return rows where cost per click (CPC) is greater than or equal to this value.</p>\n","type":"text/plain"},"key":"minCostPerClick","value":"192.19441793910886"},{"description":{"content":"<p>Only return rows where cost per click (CPC) is less than or equal to this value.</p>\n","type":"text/plain"},"key":"maxCostPerClick","value":"192.19441793910886"},{"description":{"content":"<p>Only return rows where click-through rate (CTR, as a percentage) is greater than or equal to this value.</p>\n","type":"text/plain"},"key":"minClickThroughRate","value":"192.19441793910886"},{"description":{"content":"<p>Only return rows where click-through rate (CTR, as a percentage) is less than or equal to this value.</p>\n","type":"text/plain"},"key":"maxClickThroughRate","value":"192.19441793910886"}],"variable":[{"description":{"content":"<p>ABM campaign ID</p>\n","type":"text/plain"},"type":"any","value":"string","key":"id"}]}},"response":[{"id":"dbddc341-77d4-4497-8216-f65b76dbf96a","name":"Paginated job titles for this ABM campaign","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"https://app.zenabm.com/api/v1/abm-campaigns/:id/job-titles?page=1&pageSize=20&period=last30Days&startDate=2018-09-03&endDate=2018-09-03&sortBy=string&sortOrder=desc&search=string&minImpressions=192.19441793910886&maxImpressions=192.19441793910886&minClicks=192.19441793910886&maxClicks=192.19441793910886&minEngagements=192.19441793910886&maxEngagements=192.19441793910886&minCostInUsd=192.19441793910886&maxCostInUsd=192.19441793910886&minCostPerClick=192.19441793910886&maxCostPerClick=192.19441793910886&minClickThroughRate=192.19441793910886&maxClickThroughRate=192.19441793910886","host":["https://app.zenabm.com/api/v1"],"path":["abm-campaigns",":id","job-titles"],"query":[{"description":"Page number (default: 1)","key":"page","value":"1"},{"description":"Items per page (default: 20, max: 100)","key":"pageSize","value":"20"},{"description":"Time period preset. Ignored when startDate/endDate are provided.","key":"period","value":"last30Days"},{"description":"Start date (YYYY-MM-DD). When provided with endDate, overrides the period parameter.","key":"startDate","value":"2018-09-03"},{"description":"End date (YYYY-MM-DD). When provided with startDate, overrides the period parameter.","key":"endDate","value":"2018-09-03"},{"description":"Field to sort by (e.g. impressions, clicks, engagements)","key":"sortBy","value":"string"},{"description":"Sort direction","key":"sortOrder","value":"desc"},{"description":"Search filter","key":"search","value":"string"},{"description":"Only return rows where impressions is greater than or equal to this value.","key":"minImpressions","value":"192.19441793910886"},{"description":"Only return rows where impressions is less than or equal to this value.","key":"maxImpressions","value":"192.19441793910886"},{"description":"Only return rows where clicks is greater than or equal to this value.","key":"minClicks","value":"192.19441793910886"},{"description":"Only return rows where clicks is less than or equal to this value.","key":"maxClicks","value":"192.19441793910886"},{"description":"Only return rows where engagements is greater than or equal to this value.","key":"minEngagements","value":"192.19441793910886"},{"description":"Only return rows where engagements is less than or equal to this value.","key":"maxEngagements","value":"192.19441793910886"},{"description":"Only return rows where cost in USD is greater than or equal to this value.","key":"minCostInUsd","value":"192.19441793910886"},{"description":"Only return rows where cost in USD is less than or equal to this value.","key":"maxCostInUsd","value":"192.19441793910886"},{"description":"Only return rows where cost per click (CPC) is greater than or equal to this value.","key":"minCostPerClick","value":"192.19441793910886"},{"description":"Only return rows where cost per click (CPC) is less than or equal to this value.","key":"maxCostPerClick","value":"192.19441793910886"},{"description":"Only return rows where click-through rate (CTR, as a percentage) is greater than or equal to this value.","key":"minClickThroughRate","value":"192.19441793910886"},{"description":"Only return rows where click-through rate (CTR, as a percentage) is less than or equal to this value.","key":"maxClickThroughRate","value":"192.19441793910886"}],"variable":[{"key":"id","value":"string","description":"ABM campaign ID"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"data\": [\n    {\n      \"jobTitleUrn\": \"urn:li:title:123\",\n      \"jobTitleName\": \"VP of Marketing\",\n      \"impressions\": 12450,\n      \"clicks\": 87,\n      \"engagements\": 342,\n      \"costInUsd\": 891.45,\n      \"averageDwellTime\": 4.2,\n      \"videoViews\": null,\n      \"videoStarts\": null,\n      \"videoFirstQuartileCompletions\": null,\n      \"videoMidpointCompletions\": null,\n      \"videoThirdQuartileCompletions\": null,\n      \"videoCompletions\": null,\n      \"exclusion\": null\n    }\n  ],\n  \"pagination\": {\n    \"page\": 1,\n    \"pageSize\": 20,\n    \"totalCount\": 45,\n    \"totalPages\": 3\n  },\n  \"meta\": {\n    \"timestamp\": \"2026-03-10T12:00:00.000Z\"\n  }\n}"},{"id":"68983b34-8bb3-4420-8092-319c07fff988","name":"ABM campaign not found","originalRequest":{"method":"GET","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"https://app.zenabm.com/api/v1/abm-campaigns/:id/job-titles?page=1&pageSize=20&period=last30Days&startDate=2018-09-03&endDate=2018-09-03&sortBy=string&sortOrder=desc&search=string&minImpressions=192.19441793910886&maxImpressions=192.19441793910886&minClicks=192.19441793910886&maxClicks=192.19441793910886&minEngagements=192.19441793910886&maxEngagements=192.19441793910886&minCostInUsd=192.19441793910886&maxCostInUsd=192.19441793910886&minCostPerClick=192.19441793910886&maxCostPerClick=192.19441793910886&minClickThroughRate=192.19441793910886&maxClickThroughRate=192.19441793910886","host":["https://app.zenabm.com/api/v1"],"path":["abm-campaigns",":id","job-titles"],"query":[{"description":"Page number (default: 1)","key":"page","value":"1"},{"description":"Items per page (default: 20, max: 100)","key":"pageSize","value":"20"},{"description":"Time period preset. Ignored when startDate/endDate are provided.","key":"period","value":"last30Days"},{"description":"Start date (YYYY-MM-DD). When provided with endDate, overrides the period parameter.","key":"startDate","value":"2018-09-03"},{"description":"End date (YYYY-MM-DD). When provided with startDate, overrides the period parameter.","key":"endDate","value":"2018-09-03"},{"description":"Field to sort by (e.g. impressions, clicks, engagements)","key":"sortBy","value":"string"},{"description":"Sort direction","key":"sortOrder","value":"desc"},{"description":"Search filter","key":"search","value":"string"},{"description":"Only return rows where impressions is greater than or equal to this value.","key":"minImpressions","value":"192.19441793910886"},{"description":"Only return rows where impressions is less than or equal to this value.","key":"maxImpressions","value":"192.19441793910886"},{"description":"Only return rows where clicks is greater than or equal to this value.","key":"minClicks","value":"192.19441793910886"},{"description":"Only return rows where clicks is less than or equal to this value.","key":"maxClicks","value":"192.19441793910886"},{"description":"Only return rows where engagements is greater than or equal to this value.","key":"minEngagements","value":"192.19441793910886"},{"description":"Only return rows where engagements is less than or equal to this value.","key":"maxEngagements","value":"192.19441793910886"},{"description":"Only return rows where cost in USD is greater than or equal to this value.","key":"minCostInUsd","value":"192.19441793910886"},{"description":"Only return rows where cost in USD is less than or equal to this value.","key":"maxCostInUsd","value":"192.19441793910886"},{"description":"Only return rows where cost per click (CPC) is greater than or equal to this value.","key":"minCostPerClick","value":"192.19441793910886"},{"description":"Only return rows where cost per click (CPC) is less than or equal to this value.","key":"maxCostPerClick","value":"192.19441793910886"},{"description":"Only return rows where click-through rate (CTR, as a percentage) is greater than or equal to this value.","key":"minClickThroughRate","value":"192.19441793910886"},{"description":"Only return rows where click-through rate (CTR, as a percentage) is less than or equal to this value.","key":"maxClickThroughRate","value":"192.19441793910886"}],"variable":[{"key":"id","value":"string","description":"ABM campaign ID"}]}},"status":"Not Found","code":404,"_postman_previewlanguage":"text","header":[],"cookie":[],"responseTime":null,"body":null}],"_postman_id":"94a61050-8dfd-46a5-b11f-7286be888094"}],"id":"ae73afc1-03f8-4aec-a642-022cfab5190d","_postman_id":"ae73afc1-03f8-4aec-a642-022cfab5190d","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{bearerToken}}"}]},"isInherited":true,"source":{"_postman_id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","name":"ZenABM API (from spec)","type":"collection"}}},{"name":"ABM Stages","item":[{"name":"List ABM stages","id":"d378dc26-b202-453b-8731-b84526b90b02","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"https://app.zenabm.com/api/v1/abm-stages","description":"<p>Returns every ABM stage for the team, each with its full condition model. <code>blockOperator</code> (<code>AND</code>/<code>OR</code>) joins the stage's <code>conditionBlocks</code>; each block joins its own <code>conditions</code> with its <code>operator</code> (<code>AND</code>/<code>OR</code>). Each condition carries a <code>type</code> plus only the fields relevant to that type (null fields are omitted). Condition types: <code>LINKEDIN_METRICS</code>, <code>LIFECYCLE_STAGE</code>, <code>DEAL_STAGE</code>, <code>CUSTOM_PROPERTY</code> (HubSpot company property), <code>CONTACT_PROPERTY</code> (HubSpot contact property, matches when at least <code>minMatchingContacts</code> of the company's contacts satisfy the mapping), <code>ATTIO_COMPANY_PROPERTY</code>, <code>ATTIO_DEAL_STAGE</code>. Property-mapping <code>operator</code> values include <code>equals</code>, <code>not_equals</code>, <code>contains</code>, <code>not_contains</code>, <code>greater_than</code>, <code>greater_than_or_equal</code>, <code>less_than</code>, <code>less_than_or_equal</code>, <code>between</code>, <code>in_list</code>, <code>not_in_list</code>, <code>is_known</code>, <code>is_unknown</code>. All ids returned (<code>scopeIds</code>, <code>dealStageIds</code>, <code>pipelineIds</code>, <code>lifecycleStageIds</code>, mapping ids) are this team's own ids.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{bearerToken}}"}]},"isInherited":true,"source":{"_postman_id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","name":"ZenABM API (from spec)","type":"collection"}},"urlObject":{"path":["abm-stages"],"host":["https://app.zenabm.com/api/v1"],"query":[],"variable":[]}},"response":[{"id":"88ce44ce-ee06-48ac-a6fa-aecb358ec5d6","name":"List of ABM stages with their condition model","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":"https://app.zenabm.com/api/v1/abm-stages"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"data\": [\n    {\n      \"id\": \"cls1abc\",\n      \"name\": \"Aware\",\n      \"color\": \"#FFC107\",\n      \"displayOrder\": 1,\n      \"createdAt\": \"2025-01-05T08:00:00.000Z\",\n      \"updatedAt\": \"2025-01-05T08:00:00.000Z\",\n      \"blockOperator\": \"OR\",\n      \"conditionBlocks\": [\n        {\n          \"operator\": \"OR\",\n          \"conditions\": [\n            {\n              \"type\": \"LINKEDIN_METRICS\",\n              \"metric\": \"IMPRESSIONS\",\n              \"comparison\": \"GREATER_THAN_OR_EQUAL\",\n              \"minValue\": 100,\n              \"windowDays\": 30,\n              \"scope\": \"INHERIT_CAMPAIGN\"\n            }\n          ]\n        }\n      ]\n    },\n    {\n      \"id\": \"cls2def\",\n      \"name\": \"Engaged\",\n      \"color\": \"#4CAF50\",\n      \"displayOrder\": 2,\n      \"createdAt\": \"2025-01-05T08:00:00.000Z\",\n      \"updatedAt\": \"2025-01-05T08:00:00.000Z\",\n      \"blockOperator\": \"AND\",\n      \"conditionBlocks\": [\n        {\n          \"operator\": \"AND\",\n          \"conditions\": [\n            {\n              \"type\": \"CONTACT_PROPERTY\",\n              \"propertyMapping\": {\n                \"id\": \"map_contact_1\",\n                \"hubspotPropertyName\": \"seniority\",\n                \"operator\": \"is_known\",\n                \"propertyObjectType\": \"CONTACT\",\n                \"minMatchingContacts\": 2\n              }\n            },\n            {\n              \"type\": \"DEAL_STAGE\",\n              \"dealStageIds\": [\n                \"hs_stage_123\"\n              ],\n              \"matchAnyOpenDeal\": false\n            }\n          ]\n        }\n      ]\n    }\n  ],\n  \"meta\": {\n    \"timestamp\": \"2026-03-09T12:00:00.000Z\"\n  }\n}"}],"_postman_id":"d378dc26-b202-453b-8731-b84526b90b02"},{"name":"Get ABM stage by ID","id":"0bd69025-f240-404c-9f77-af9db164e515","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"https://app.zenabm.com/api/v1/abm-stages/:id","description":"<p>Returns the ABM stage with <code>currentCompaniesCount</code> (companies currently in this stage) and its full condition model. <code>blockOperator</code> (<code>AND</code>/<code>OR</code>) joins the <code>conditionBlocks</code>; each block joins its <code>conditions</code> with its <code>operator</code> (<code>AND</code>/<code>OR</code>). Each condition carries a <code>type</code> plus only the fields relevant to that type (null fields are omitted):</p>\n<ul>\n<li><code>LINKEDIN_METRICS</code>: <code>metric</code>, <code>comparison</code>, <code>minValue</code>, <code>maxValue</code>, <code>windowDays</code> (rolling window; omitted = since campaign start), <code>scope</code> (<code>INHERIT_CAMPAIGN</code> | <code>LINKEDIN_CAMPAIGN_GROUPS</code> | <code>LINKEDIN_AD_SETS</code> | <code>ABM_CAMPAIGNS</code>), <code>scopeIds</code>.</li>\n<li><code>LIFECYCLE_STAGE</code>: <code>lifecycleStageIds</code>.</li>\n<li><code>DEAL_STAGE</code>: <code>dealStageIds</code>, <code>pipelineIds</code> (pipelines that scope a <code>matchAnyOpenDeal</code> condition; omitted means any tracked pipeline), <code>matchAnyOpenDeal</code>.</li>\n<li><code>ATTIO_DEAL_STAGE</code>: <code>attioDealStatusIds</code>, <code>attioMatchAnyOpenDeal</code>.</li>\n<li><code>CUSTOM_PROPERTY</code> (HubSpot company) / <code>CONTACT_PROPERTY</code> (HubSpot contact): a <code>propertyMapping</code> with <code>hubspotPropertyName</code>, <code>operator</code>, <code>propertyObjectType</code> (<code>COMPANY</code> | <code>CONTACT</code>), <code>minMatchingContacts</code> (contact-property match threshold), and any of <code>expectedValue</code>, <code>expectedValues</code>, <code>numericThreshold</code>, <code>numericThresholdMax</code>.</li>\n<li><code>ATTIO_COMPANY_PROPERTY</code>: an <code>attioPropertyMapping</code> with <code>attributeSlug</code>, <code>attributeTitle</code>, <code>operator</code>, and value fields.\nProperty-mapping <code>operator</code> values include <code>equals</code>, <code>not_equals</code>, <code>contains</code>, <code>not_contains</code>, <code>greater_than</code>, <code>greater_than_or_equal</code>, <code>less_than</code>, <code>less_than_or_equal</code>, <code>between</code>, <code>in_list</code>, <code>not_in_list</code>, <code>is_known</code>, <code>is_unknown</code>.</li>\n</ul>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{bearerToken}}"}]},"isInherited":true,"source":{"_postman_id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","name":"ZenABM API (from spec)","type":"collection"}},"urlObject":{"path":["abm-stages",":id"],"host":["https://app.zenabm.com/api/v1"],"query":[],"variable":[{"description":{"content":"<p>ABM stage ID</p>\n","type":"text/plain"},"type":"any","value":"string","key":"id"}]}},"response":[{"id":"1484e382-f353-4329-80aa-20dffbda3867","name":"ABM stage details with its condition model","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"https://app.zenabm.com/api/v1/abm-stages/:id","host":["https://app.zenabm.com/api/v1"],"path":["abm-stages",":id"],"variable":[{"key":"id","value":"string","description":"ABM stage ID"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"data\": {\n    \"id\": \"cls1abc\",\n    \"name\": \"Aware\",\n    \"color\": \"#FFC107\",\n    \"displayOrder\": 1,\n    \"createdAt\": \"2025-01-05T08:00:00.000Z\",\n    \"updatedAt\": \"2025-01-05T08:00:00.000Z\",\n    \"blockOperator\": \"OR\",\n    \"conditionBlocks\": [\n      {\n        \"operator\": \"AND\",\n        \"conditions\": [\n          {\n            \"type\": \"LINKEDIN_METRICS\",\n            \"metric\": \"ENGAGEMENTS\",\n            \"comparison\": \"GREATER_THAN_OR_EQUAL\",\n            \"minValue\": 5,\n            \"windowDays\": 90,\n            \"scope\": \"LINKEDIN_AD_SETS\",\n            \"scopeIds\": [\n              \"512103383\"\n            ]\n          },\n          {\n            \"type\": \"CONTACT_PROPERTY\",\n            \"propertyMapping\": {\n              \"id\": \"map_contact_1\",\n              \"hubspotPropertyName\": \"seniority\",\n              \"operator\": \"is_known\",\n              \"propertyObjectType\": \"CONTACT\",\n              \"minMatchingContacts\": 2\n            }\n          }\n        ]\n      },\n      {\n        \"operator\": \"OR\",\n        \"conditions\": [\n          {\n            \"type\": \"LIFECYCLE_STAGE\",\n            \"lifecycleStageIds\": [\n              \"hs_lifecycle_mql\"\n            ]\n          },\n          {\n            \"type\": \"DEAL_STAGE\",\n            \"dealStageIds\": [\n              \"hs_stage_123\"\n            ],\n            \"matchAnyOpenDeal\": false\n          },\n          {\n            \"type\": \"CUSTOM_PROPERTY\",\n            \"propertyMapping\": {\n              \"id\": \"map_company_1\",\n              \"hubspotPropertyName\": \"numberofemployees\",\n              \"operator\": \"between\",\n              \"propertyObjectType\": \"COMPANY\",\n              \"minMatchingContacts\": 1,\n              \"numericThreshold\": 50,\n              \"numericThresholdMax\": 500\n            }\n          }\n        ]\n      }\n    ],\n    \"currentCompaniesCount\": 45\n  },\n  \"meta\": {\n    \"timestamp\": \"2026-03-09T12:00:00.000Z\"\n  }\n}"},{"id":"5ab79738-cb2a-4e71-b3c5-8677fdf7d595","name":"ABM stage not found","originalRequest":{"method":"GET","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"https://app.zenabm.com/api/v1/abm-stages/:id","host":["https://app.zenabm.com/api/v1"],"path":["abm-stages",":id"],"variable":[{"key":"id","value":"string","description":"ABM stage ID"}]}},"status":"Not Found","code":404,"_postman_previewlanguage":"text","header":[],"cookie":[],"responseTime":null,"body":null}],"_postman_id":"0bd69025-f240-404c-9f77-af9db164e515"},{"name":"List companies currently in an ABM stage","id":"3e29759e-2b62-4dad-9dc4-106ae6ba14ad","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"https://app.zenabm.com/api/v1/abm-stages/:id/companies?page=1&pageSize=20&sortBy=string&sortOrder=desc&search=string&hideExcludedCompanies=false","description":"<p>Returns a paginated list of companies whose current ABM stage matches the given stage ID. Supports search and sorting.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{bearerToken}}"}]},"isInherited":true,"source":{"_postman_id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","name":"ZenABM API (from spec)","type":"collection"}},"urlObject":{"path":["abm-stages",":id","companies"],"host":["https://app.zenabm.com/api/v1"],"query":[{"description":{"content":"<p>Page number (default: 1)</p>\n","type":"text/plain"},"key":"page","value":"1"},{"description":{"content":"<p>Items per page (default: 20, max: 100)</p>\n","type":"text/plain"},"key":"pageSize","value":"20"},{"description":{"content":"<p>Field to sort by (e.g. impressions, clicks, engagements)</p>\n","type":"text/plain"},"key":"sortBy","value":"string"},{"description":{"content":"<p>Sort direction</p>\n","type":"text/plain"},"key":"sortOrder","value":"desc"},{"description":{"content":"<p>Search filter</p>\n","type":"text/plain"},"key":"search","value":"string"},{"description":{"content":"<p>When <code>true</code>, hides companies that have a COMPANY exclusion in this organization (matches the \"Excluded\" badge in the UI).</p>\n","type":"text/plain"},"key":"hideExcludedCompanies","value":"false"}],"variable":[{"description":{"content":"<p>ABM stage ID</p>\n","type":"text/plain"},"type":"any","value":"string","key":"id"}]}},"response":[{"id":"d1a837aa-ef3b-4b1e-af46-399d6b027b68","name":"Paginated companies in this ABM stage","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"https://app.zenabm.com/api/v1/abm-stages/:id/companies?page=1&pageSize=20&sortBy=string&sortOrder=desc&search=string&hideExcludedCompanies=false","host":["https://app.zenabm.com/api/v1"],"path":["abm-stages",":id","companies"],"query":[{"description":"Page number (default: 1)","key":"page","value":"1"},{"description":"Items per page (default: 20, max: 100)","key":"pageSize","value":"20"},{"description":"Field to sort by (e.g. impressions, clicks, engagements)","key":"sortBy","value":"string"},{"description":"Sort direction","key":"sortOrder","value":"desc"},{"description":"Search filter","key":"search","value":"string"},{"description":"When `true`, hides companies that have a COMPANY exclusion in this organization (matches the \"Excluded\" badge in the UI).","key":"hideExcludedCompanies","value":"false"}],"variable":[{"key":"id","value":"string","description":"ABM stage ID"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"data\": [\n    {\n      \"id\": \"1337\",\n      \"name\": \"Pied Piper\",\n      \"city\": \"Palo Alto\",\n      \"country\": \"US\",\n      \"website\": \"https://www.piedpiper.com/\",\n      \"linkedInOrgId\": \"4827017\",\n      \"hubspotCompanyId\": \"37411334702\",\n      \"attioRecordId\": \"a1b2c3d4-5e6f-4a7b-8c9d-0e1f2a3b4c5d\",\n      \"logoUrl\": \"https://piedpiper.com/assets/images/logo.png\",\n      \"lifetimeEngagementScore\": 3,\n      \"abmStage\": {\n        \"id\": \"1337_interested\",\n        \"name\": \"Interested\",\n        \"color\": \"#10B981\",\n        \"displayOrder\": 3\n      },\n      \"lifetimeAbmStage\": {\n        \"id\": \"1337_interested\",\n        \"name\": \"Interested\",\n        \"color\": \"#10B981\",\n        \"displayOrder\": 3\n      }\n    }\n  ],\n  \"pagination\": {\n    \"page\": 1,\n    \"pageSize\": 20,\n    \"totalCount\": 45,\n    \"totalPages\": 3\n  },\n  \"meta\": {\n    \"timestamp\": \"2026-03-10T12:00:00.000Z\"\n  }\n}"},{"id":"f096f6b7-4168-4f3f-9bc7-2b59c894af2d","name":"ABM stage not found","originalRequest":{"method":"GET","header":[{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"https://app.zenabm.com/api/v1/abm-stages/:id/companies?page=1&pageSize=20&sortBy=string&sortOrder=desc&search=string&hideExcludedCompanies=false","host":["https://app.zenabm.com/api/v1"],"path":["abm-stages",":id","companies"],"query":[{"description":"Page number (default: 1)","key":"page","value":"1"},{"description":"Items per page (default: 20, max: 100)","key":"pageSize","value":"20"},{"description":"Field to sort by (e.g. impressions, clicks, engagements)","key":"sortBy","value":"string"},{"description":"Sort direction","key":"sortOrder","value":"desc"},{"description":"Search filter","key":"search","value":"string"},{"description":"When `true`, hides companies that have a COMPANY exclusion in this organization (matches the \"Excluded\" badge in the UI).","key":"hideExcludedCompanies","value":"false"}],"variable":[{"key":"id","value":"string","description":"ABM stage ID"}]}},"status":"Not Found","code":404,"_postman_previewlanguage":"text","header":[],"cookie":[],"responseTime":null,"body":null}],"_postman_id":"3e29759e-2b62-4dad-9dc4-106ae6ba14ad"},{"name":"Get companies entering an ABM stage","id":"26fd58b8-94cc-4488-95a8-8be4d58cec23","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"https://app.zenabm.com/api/v1/abm-stages/:id/companies-entering?startDate=2018-09-03&endDate=2018-09-03&campaignType=current_abm_stage&campaignId=string&page=1&pageSize=20","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{bearerToken}}"}]},"isInherited":true,"source":{"_postman_id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","name":"ZenABM API (from spec)","type":"collection"}},"urlObject":{"path":["abm-stages",":id","companies-entering"],"host":["https://app.zenabm.com/api/v1"],"query":[{"description":{"content":"<p>Start date (ISO format, default: 30 days ago)</p>\n","type":"text/plain"},"key":"startDate","value":"2018-09-03"},{"description":{"content":"<p>End date (ISO format, default: today)</p>\n","type":"text/plain"},"key":"endDate","value":"2018-09-03"},{"description":{"content":"<p>Which stage to read (default: <code>current_abm_stage</code>).</p>\n<ul>\n<li><code>current_abm_stage</code> — the stage the company is in now.</li>\n<li><code>lifetime_abm_stage</code> — the furthest stage the company has ever reached.</li>\n<li><code>specific_campaign</code> — the stage the company holds inside one ABM campaign. Send <code>campaignId</code> with it; without a campaign id it falls back to <code>current_abm_stage</code>.</li>\n</ul>\n<p>Two older values still work. <code>all_abm_campaigns</code> now means the same as <code>current_abm_stage</code>. <code>linkedin_influenced</code> now means the same as <code>lifetime_abm_stage</code>, and no longer restricts the result to companies with a LinkedIn page. An unknown value falls back to <code>current_abm_stage</code> instead of returning an error.</p>\n","type":"text/plain"},"key":"campaignType","value":"current_abm_stage"},{"description":{"content":"<p>ABM campaign ID. Used only with <code>campaignType=specific_campaign</code>.</p>\n","type":"text/plain"},"key":"campaignId","value":"string"},{"description":{"content":"<p>Page number (default: 1)</p>\n","type":"text/plain"},"key":"page","value":"1"},{"description":{"content":"<p>Items per page (default: 20, max: 100)</p>\n","type":"text/plain"},"key":"pageSize","value":"20"}],"variable":[{"description":{"content":"<p>ABM stage ID</p>\n","type":"text/plain"},"type":"any","value":"string","key":"id"}]}},"response":[{"id":"a226836b-8cd2-437b-8ebd-bf54599e4fb5","name":"Companies entering stage","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"https://app.zenabm.com/api/v1/abm-stages/:id/companies-entering?startDate=2018-09-03&endDate=2018-09-03&campaignType=current_abm_stage&campaignId=string&page=1&pageSize=20","host":["https://app.zenabm.com/api/v1"],"path":["abm-stages",":id","companies-entering"],"query":[{"description":"Start date (ISO format, default: 30 days ago)","key":"startDate","value":"2018-09-03"},{"description":"End date (ISO format, default: today)","key":"endDate","value":"2018-09-03"},{"description":"Which stage to read (default: `current_abm_stage`).\n\n- `current_abm_stage` — the stage the company is in now.\n- `lifetime_abm_stage` — the furthest stage the company has ever reached.\n- `specific_campaign` — the stage the company holds inside one ABM campaign. Send `campaignId` with it; without a campaign id it falls back to `current_abm_stage`.\n\nTwo older values still work. `all_abm_campaigns` now means the same as `current_abm_stage`. `linkedin_influenced` now means the same as `lifetime_abm_stage`, and no longer restricts the result to companies with a LinkedIn page. An unknown value falls back to `current_abm_stage` instead of returning an error.","key":"campaignType","value":"current_abm_stage"},{"description":"ABM campaign ID. Used only with `campaignType=specific_campaign`.","key":"campaignId","value":"string"},{"description":"Page number (default: 1)","key":"page","value":"1"},{"description":"Items per page (default: 20, max: 100)","key":"pageSize","value":"20"}],"variable":[{"key":"id","value":"string","description":"ABM stage ID"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"data\": {\n    \"companies\": [\n      {\n        \"id\": \"cm7abc123\",\n        \"name\": \"Acme Corp\",\n        \"logoUrl\": \"https://media.licdn.com/dms/image/acme-logo.png\",\n        \"website\": \"https://acme.com\",\n        \"hubspotCompanyId\": \"9876543\",\n        \"attioRecordId\": \"a1b2c3d4-5e6f-4a7b-8c9d-0e1f2a3b4c5d\",\n        \"country\": \"United States\",\n        \"previousStage\": {\n          \"id\": \"cls1abc\",\n          \"name\": \"Aware\",\n          \"color\": \"#FFC107\"\n        },\n        \"dateEntered\": \"2026-03-12T09:30:00.000Z\"\n      },\n      {\n        \"id\": \"cm7xyz456\",\n        \"name\": \"Globex Industries\",\n        \"logoUrl\": \"https://media.licdn.com/dms/image/globex-logo.png\",\n        \"website\": \"https://globex.com\",\n        \"hubspotCompanyId\": \"1234567\",\n        \"attioRecordId\": null,\n        \"country\": \"Germany\",\n        \"previousStage\": null,\n        \"dateEntered\": \"2026-03-08T14:15:00.000Z\"\n      }\n    ],\n    \"hubspotPortalId\": \"98765432\",\n    \"attioWorkspaceSlug\": \"acme-gmbh\",\n    \"totalCount\": 42\n  },\n  \"pagination\": {\n    \"page\": 1,\n    \"pageSize\": 20,\n    \"totalCount\": 42,\n    \"totalPages\": 3\n  },\n  \"meta\": {\n    \"timestamp\": \"2026-04-12T12:00:00.000Z\"\n  }\n}"}],"_postman_id":"26fd58b8-94cc-4488-95a8-8be4d58cec23"},{"name":"Get companies progressing from an ABM stage","id":"c6b29305-6ca0-48bb-bc86-2f0b2c9abead","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"https://app.zenabm.com/api/v1/abm-stages/:id/companies-progressing?startDate=2018-09-03&endDate=2018-09-03&campaignType=current_abm_stage&campaignId=string&page=1&pageSize=20","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{bearerToken}}"}]},"isInherited":true,"source":{"_postman_id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","name":"ZenABM API (from spec)","type":"collection"}},"urlObject":{"path":["abm-stages",":id","companies-progressing"],"host":["https://app.zenabm.com/api/v1"],"query":[{"description":{"content":"<p>Start date (ISO format, default: 30 days ago)</p>\n","type":"text/plain"},"key":"startDate","value":"2018-09-03"},{"description":{"content":"<p>End date (ISO format, default: today)</p>\n","type":"text/plain"},"key":"endDate","value":"2018-09-03"},{"description":{"content":"<p>Which stage to read (default: <code>current_abm_stage</code>).</p>\n<ul>\n<li><code>current_abm_stage</code> — the stage the company is in now.</li>\n<li><code>lifetime_abm_stage</code> — the furthest stage the company has ever reached.</li>\n<li><code>specific_campaign</code> — the stage the company holds inside one ABM campaign. Send <code>campaignId</code> with it; without a campaign id it falls back to <code>current_abm_stage</code>.</li>\n</ul>\n<p>Two older values still work. <code>all_abm_campaigns</code> now means the same as <code>current_abm_stage</code>. <code>linkedin_influenced</code> now means the same as <code>lifetime_abm_stage</code>, and no longer restricts the result to companies with a LinkedIn page. An unknown value falls back to <code>current_abm_stage</code> instead of returning an error.</p>\n","type":"text/plain"},"key":"campaignType","value":"current_abm_stage"},{"description":{"content":"<p>ABM campaign ID. Used only with <code>campaignType=specific_campaign</code>.</p>\n","type":"text/plain"},"key":"campaignId","value":"string"},{"description":{"content":"<p>Page number (default: 1)</p>\n","type":"text/plain"},"key":"page","value":"1"},{"description":{"content":"<p>Items per page (default: 20, max: 100)</p>\n","type":"text/plain"},"key":"pageSize","value":"20"}],"variable":[{"description":{"content":"<p>ABM stage ID</p>\n","type":"text/plain"},"type":"any","value":"string","key":"id"}]}},"response":[{"id":"53694dc1-3b92-490c-b545-75d7e1184b3e","name":"Companies progressing from stage","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"https://app.zenabm.com/api/v1/abm-stages/:id/companies-progressing?startDate=2018-09-03&endDate=2018-09-03&campaignType=current_abm_stage&campaignId=string&page=1&pageSize=20","host":["https://app.zenabm.com/api/v1"],"path":["abm-stages",":id","companies-progressing"],"query":[{"description":"Start date (ISO format, default: 30 days ago)","key":"startDate","value":"2018-09-03"},{"description":"End date (ISO format, default: today)","key":"endDate","value":"2018-09-03"},{"description":"Which stage to read (default: `current_abm_stage`).\n\n- `current_abm_stage` — the stage the company is in now.\n- `lifetime_abm_stage` — the furthest stage the company has ever reached.\n- `specific_campaign` — the stage the company holds inside one ABM campaign. Send `campaignId` with it; without a campaign id it falls back to `current_abm_stage`.\n\nTwo older values still work. `all_abm_campaigns` now means the same as `current_abm_stage`. `linkedin_influenced` now means the same as `lifetime_abm_stage`, and no longer restricts the result to companies with a LinkedIn page. An unknown value falls back to `current_abm_stage` instead of returning an error.","key":"campaignType","value":"current_abm_stage"},{"description":"ABM campaign ID. Used only with `campaignType=specific_campaign`.","key":"campaignId","value":"string"},{"description":"Page number (default: 1)","key":"page","value":"1"},{"description":"Items per page (default: 20, max: 100)","key":"pageSize","value":"20"}],"variable":[{"key":"id","value":"string","description":"ABM stage ID"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"data\": {\n    \"companies\": [\n      {\n        \"id\": \"cm7abc123\",\n        \"name\": \"Acme Corp\",\n        \"website\": \"https://acme.com\",\n        \"country\": \"United States\",\n        \"linkedInOrgId\": \"12345\",\n        \"logoUrl\": \"https://media.licdn.com/dms/image/acme-logo.png\",\n        \"hubspotCompanyId\": \"9876543\",\n        \"attioRecordId\": \"a1b2c3d4-5e6f-4a7b-8c9d-0e1f2a3b4c5d\",\n        \"nextStage\": {\n          \"id\": \"cls3ghi\",\n          \"name\": \"MQL\",\n          \"color\": \"#2196F3\"\n        },\n        \"dateLeft\": \"2026-03-25T11:00:00.000Z\"\n      }\n    ],\n    \"hubspotPortalId\": \"98765432\",\n    \"attioWorkspaceSlug\": \"acme-gmbh\",\n    \"totalCount\": 1\n  },\n  \"pagination\": {\n    \"page\": 1,\n    \"pageSize\": 20,\n    \"totalCount\": 1,\n    \"totalPages\": 1\n  },\n  \"meta\": {\n    \"timestamp\": \"2026-04-12T12:00:00.000Z\"\n  }\n}"}],"_postman_id":"c6b29305-6ca0-48bb-bc86-2f0b2c9abead"},{"name":"Get ABM stage history","id":"f8636a21-de90-40b3-921c-2d11772460a5","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"https://app.zenabm.com/api/v1/abm-stages/:id/history?startDate=2018-09-03&endDate=2018-09-03&page=1&pageSize=20","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{bearerToken}}"}]},"isInherited":true,"source":{"_postman_id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","name":"ZenABM API (from spec)","type":"collection"}},"urlObject":{"path":["abm-stages",":id","history"],"host":["https://app.zenabm.com/api/v1"],"query":[{"description":{"content":"<p>Start date (ISO format, default: 30 days ago)</p>\n","type":"text/plain"},"key":"startDate","value":"2018-09-03"},{"description":{"content":"<p>End date (ISO format, default: today)</p>\n","type":"text/plain"},"key":"endDate","value":"2018-09-03"},{"description":{"content":"<p>Page number (default: 1)</p>\n","type":"text/plain"},"key":"page","value":"1"},{"description":{"content":"<p>Items per page (default: 20, max: 100)</p>\n","type":"text/plain"},"key":"pageSize","value":"20"}],"variable":[{"description":{"content":"<p>ABM stage ID</p>\n","type":"text/plain"},"type":"any","value":"string","key":"id"}]}},"response":[{"id":"3c0c279e-00b4-4621-a3de-18d323b5cf92","name":"Stage transition events — each entry is one company moving from `previousStage` to `abmStage`. `previousStage` is null for the company’s first stage entry.","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"https://app.zenabm.com/api/v1/abm-stages/:id/history?startDate=2018-09-03&endDate=2018-09-03&page=1&pageSize=20","host":["https://app.zenabm.com/api/v1"],"path":["abm-stages",":id","history"],"query":[{"description":"Start date (ISO format, default: 30 days ago)","key":"startDate","value":"2018-09-03"},{"description":"End date (ISO format, default: today)","key":"endDate","value":"2018-09-03"},{"description":"Page number (default: 1)","key":"page","value":"1"},{"description":"Items per page (default: 20, max: 100)","key":"pageSize","value":"20"}],"variable":[{"key":"id","value":"string","description":"ABM stage ID"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"data\": [\n    {\n      \"eventDate\": \"2026-03-28T09:30:00.000Z\",\n      \"company\": {\n        \"id\": \"cm7abc123\",\n        \"name\": \"Acme Corp\"\n      },\n      \"abmStage\": {\n        \"id\": \"cls2def\",\n        \"name\": \"Engaged\",\n        \"color\": \"#4CAF50\"\n      },\n      \"previousStage\": {\n        \"id\": \"cls1abc\",\n        \"name\": \"Aware\",\n        \"color\": \"#FFC107\"\n      }\n    },\n    {\n      \"eventDate\": \"2026-03-20T14:15:00.000Z\",\n      \"company\": {\n        \"id\": \"cm7xyz456\",\n        \"name\": \"Globex Industries\"\n      },\n      \"abmStage\": {\n        \"id\": \"cls2def\",\n        \"name\": \"Engaged\",\n        \"color\": \"#4CAF50\"\n      },\n      \"previousStage\": null\n    }\n  ],\n  \"pagination\": {\n    \"page\": 1,\n    \"pageSize\": 20,\n    \"totalCount\": 92,\n    \"totalPages\": 5\n  },\n  \"meta\": {\n    \"timestamp\": \"2026-04-12T12:00:00.000Z\"\n  }\n}"}],"_postman_id":"f8636a21-de90-40b3-921c-2d11772460a5"},{"name":"Manage an ABM stage","id":"a9320261-b374-4a55-aec3-584d2ba2c65a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"op\": \"rename_stage\",\n  \"stageRef\": {\n    \"name\": \"Aware\"\n  },\n  \"name\": \"Engaged\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"https://app.zenabm.com/api/v1/abm-stages/manage","description":"<p>Applies one or more changes to the ABM stage funnel. The body is either a single operation object (not wrapped) or <code>{ \"operations\": [...] }</code> with 1–10 of them. Each operation is discriminated on <code>op</code>: <code>create_stage</code>, <code>rename_stage</code>, <code>recolor_stage</code>, <code>delete_stage</code>, <code>reorder_stage</code>, <code>set_stage_block_operator</code>, <code>set_stage_conditions</code>, <code>add_condition_block</code>, <code>remove_condition_block</code>, <code>set_block_operator</code>, <code>add_condition</code>, <code>replace_condition</code>, <code>remove_condition</code>. This is the first write endpoint in v1. It is gated by the same API access plan feature as the read endpoints.</p>\n<p><strong>Batches.</strong> Operations in <code>operations</code> apply in order, and each one sees the result of the one before it — so after a <code>remove_condition_block</code> the later block indexes shift, and a stage created earlier in the batch can be addressed by name later in it. A batch is <strong>not atomic</strong>: when a step fails, the earlier steps stay applied and the error reports which step failed. Read the stage back before you retry. To rewrite a whole rule, prefer one <code>set_stage_conditions</code> over a batch of remove + add operations.</p>\n<p><strong>Names, not ids.</strong> Stages, lifecycle stages, deal stages, pipelines, properties, Attio attributes, Ad Sets, Campaigns and ABM campaigns are all addressed by name. Stage names match case-insensitively; a unique prefix or substring also resolves. A <code>stageRef</code> may carry an <code>id</code> instead when you already have one. An unknown or ambiguous name returns 422 <code>UNRESOLVED_REFERENCE</code> and the message lists the available candidates.</p>\n<p><strong>Fixed stages.</strong> <code>Identified</code> is always first and <code>Customer</code>, <code>Lost</code> and <code>Disqualified</code> are always last. They cannot be moved, renamed or deleted, and a <code>position</code> that would displace them returns 422 <code>INVALID_OPERATION</code>.</p>\n<p><strong>Indexes.</strong> <code>blockIndex</code> and <code>conditionIndex</code> are 0-based positions in <code>conditionBlocks</code> and in a block’s <code>conditions</code>, exactly as <code>GET /abm-stages/{id}</code> returns them. Read the stage first, then address the block or condition by position. An out-of-range index returns 422 <code>INVALID_OPERATION</code>. <code>replace_condition</code> swaps one condition in place: send the full new condition, or the existing one with a single field changed. <code>set_stage_conditions</code> replaces every block on the stage with the <code>blocks</code> you send (and optionally sets <code>blockOperator</code>), so no index is needed.</p>\n<p><strong>Conditions.</strong> A <code>contact_property</code> condition matches when at least <code>minMatchingContacts</code> (default 1) of the company’s contacts satisfy it. A <code>deal_stage</code> condition needs <code>pipelineNames</code> when the same stage name repeats across pipelines. A <code>linkedin_metric</code> condition with a scope other than <code>INHERIT_CAMPAIGN</code> needs at least one entry in <code>scopeNames</code>.</p>\n<p><strong>Response.</strong> <code>data.applied</code> and <code>data.total</code> count the operations that ran and the operations in the request (both <code>1</code> for a single operation). <code>data.stage</code> is the stage re-read after the last operation, with the same condition model as <code>GET /abm-stages/{id}</code> (<code>null</code> only when the last operation was <code>delete_stage</code>). <code>data.warnings</code> is non-blocking: it names what a <code>delete_stage</code> removed, and it flags a condition that points at something that no longer exists (a deleted lifecycle stage, deal stage, property or LinkedIn asset) so you can fix it with <code>replace_condition</code> or <code>set_stage_conditions</code>.</p>\n<p><strong>Errors.</strong> A failed step uses the same status codes as a single operation: 400 <code>INVALID_INPUT</code>, 422 <code>UNRESOLVED_REFERENCE</code> / <code>INVALID_OPERATION</code>, 403 <code>FEATURE_NOT_AVAILABLE</code> / <code>PLAN_NOT_ALLOWED</code>, 404 <code>NOT_FOUND</code>, 502 <code>CRM_UNAVAILABLE</code>. When the request holds more than one operation, the message starts with <code>Step N of M (&lt;op&gt;): </code>.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{bearerToken}}"}]},"isInherited":true,"source":{"_postman_id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","name":"ZenABM API (from spec)","type":"collection"}},"urlObject":{"path":["abm-stages","manage"],"host":["https://app.zenabm.com/api/v1"],"query":[],"variable":[]}},"response":[{"id":"70ed67ac-1872-4481-918a-719c2333e4b1","name":"Every operation was applied. `stage` is the stage after the last one (`null` when that was `delete_stage`), plus any non-blocking warnings.","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"body":{"mode":"raw","raw":"{\n  \"op\": \"rename_stage\",\n  \"stageRef\": {\n    \"name\": \"Aware\"\n  },\n  \"name\": \"Engaged\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"https://app.zenabm.com/api/v1/abm-stages/manage"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"data\": {\n    \"applied\": 1,\n    \"total\": 1,\n    \"stage\": {\n      \"id\": \"cls2def\",\n      \"name\": \"Engaged\",\n      \"color\": \"#4CAF50\",\n      \"displayOrder\": 2,\n      \"isSystem\": false,\n      \"blockOperator\": \"AND\",\n      \"conditionBlocks\": [\n        {\n          \"operator\": \"AND\",\n          \"conditions\": [\n            {\n              \"type\": \"LINKEDIN_METRICS\",\n              \"metric\": \"CLICKS\",\n              \"comparison\": \"GREATER_THAN_OR_EQUAL\",\n              \"minValue\": 3,\n              \"windowDays\": 30,\n              \"scope\": \"ABM_CAMPAIGNS\",\n              \"scopeIds\": [\n                \"cm7abm001\"\n              ]\n            },\n            {\n              \"type\": \"CONTACT_PROPERTY\",\n              \"propertyMapping\": {\n                \"id\": \"map_contact_1\",\n                \"hubspotPropertyName\": \"seniority\",\n                \"operator\": \"is_known\",\n                \"propertyObjectType\": \"CONTACT\",\n                \"minMatchingContacts\": 2\n              }\n            }\n          ]\n        }\n      ]\n    },\n    \"warnings\": []\n  },\n  \"meta\": {\n    \"timestamp\": \"2026-09-01T12:00:00.000Z\"\n  }\n}"},{"id":"f18109c2-1f26-4705-8368-687514d751c6","name":"The body does not match the operation or batch schema (`INVALID_INPUT`). The message names the failing path. In a batch it starts with `Step N of M (<op>): `.","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"body":{"mode":"raw","raw":"{\n  \"op\": \"rename_stage\",\n  \"stageRef\": {\n    \"name\": \"Aware\"\n  },\n  \"name\": \"Engaged\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"https://app.zenabm.com/api/v1/abm-stages/manage"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"error\": {\n    \"status\": 400,\n    \"code\": \"INVALID_INPUT\",\n    \"message\": \"BETWEEN needs maxValue. at condition.maxValue\"\n  }\n}"},{"id":"7d18b971-4998-4757-a149-96a08e660cfe","name":"Unauthorized","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"body":{"mode":"raw","raw":"{\n  \"op\": \"rename_stage\",\n  \"stageRef\": {\n    \"name\": \"Aware\"\n  },\n  \"name\": \"Engaged\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"https://app.zenabm.com/api/v1/abm-stages/manage"},"status":"Unauthorized","code":401,"_postman_previewlanguage":"text","header":[],"cookie":[],"responseTime":null,"body":null},{"id":"5dd7ce6f-1f3b-4a93-8377-13ef68165fcb","name":"Either API access is not included in the plan (`FEATURE_NOT_AVAILABLE`), or the operation edits an already-configured custom stage, which needs the Growth or Pro plan (`PLAN_NOT_ALLOWED`). A pristine system stage can still be edited on any plan.","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"body":{"mode":"raw","raw":"{\n  \"op\": \"rename_stage\",\n  \"stageRef\": {\n    \"name\": \"Aware\"\n  },\n  \"name\": \"Engaged\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"https://app.zenabm.com/api/v1/abm-stages/manage"},"status":"Forbidden","code":403,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"error\": {\n    \"status\": 403,\n    \"code\": \"PLAN_NOT_ALLOWED\",\n    \"message\": \"This action is only available on Growth and Pro plans\"\n  }\n}"},{"id":"6aa64c11-a0fb-44f3-bf6f-d40d3ddf2099","name":"The stage or a referenced object was not found (`NOT_FOUND`). In a batch the earlier steps stay applied and the message starts with `Step N of M (<op>): `.","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"body":{"mode":"raw","raw":"{\n  \"op\": \"rename_stage\",\n  \"stageRef\": {\n    \"name\": \"Aware\"\n  },\n  \"name\": \"Engaged\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"https://app.zenabm.com/api/v1/abm-stages/manage"},"status":"Not Found","code":404,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"error\": {\n    \"status\": 404,\n    \"code\": \"NOT_FOUND\",\n    \"message\": \"Stage not found.\"\n  }\n}"},{"id":"1ffe5b26-553e-4047-a94c-4fc053cc64bb","name":"Method not allowed — only POST is accepted","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"body":{"mode":"raw","raw":"{\n  \"op\": \"rename_stage\",\n  \"stageRef\": {\n    \"name\": \"Aware\"\n  },\n  \"name\": \"Engaged\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"https://app.zenabm.com/api/v1/abm-stages/manage"},"status":"Method Not Allowed","code":405,"_postman_previewlanguage":"text","header":[],"cookie":[],"responseTime":null,"body":null},{"id":"11799457-9630-40b0-bcba-aeee3396999c","name":"The operation cannot be applied. `UNRESOLVED_REFERENCE`: a name did not resolve to exactly one record; the message lists the available candidates. `INVALID_OPERATION`: a fixed stage cannot be moved, renamed or deleted, an index is out of range, or a posit","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"body":{"mode":"raw","raw":"{\n  \"op\": \"rename_stage\",\n  \"stageRef\": {\n    \"name\": \"Aware\"\n  },\n  \"name\": \"Engaged\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"https://app.zenabm.com/api/v1/abm-stages/manage"},"status":"Unprocessable Entity (WebDAV) (RFC 4918)","code":422,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"error\": {\n    \"status\": 422,\n    \"code\": \"UNRESOLVED_REFERENCE\",\n    \"message\": \"Step 2 of 2 (add_condition): No lifecycle stage matches \\\"SQL\\\". Available lifecycle stages: Subscriber, Lead, Marketing Qualified Lead, Sales Qualified Lead, Opportunity, Customer.\"\n  }\n}"},{"id":"79a01e6d-87e7-4904-b33f-9f9f42fea78d","name":"Rate limit exceeded","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"body":{"mode":"raw","raw":"{\n  \"op\": \"rename_stage\",\n  \"stageRef\": {\n    \"name\": \"Aware\"\n  },\n  \"name\": \"Engaged\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"https://app.zenabm.com/api/v1/abm-stages/manage"},"status":"Too Many Requests","code":429,"_postman_previewlanguage":"text","header":[],"cookie":[],"responseTime":null,"body":null},{"id":"da1d378c-c308-43b7-af81-3e87bcb34d78","name":"The CRM could not be reached while resolving a name (`CRM_UNAVAILABLE`), for example a HubSpot lifecycle stage, deal stage, pipeline or property lookup failed. Retry later. In a batch the earlier steps stay applied.","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"body":{"mode":"raw","raw":"{\n  \"op\": \"rename_stage\",\n  \"stageRef\": {\n    \"name\": \"Aware\"\n  },\n  \"name\": \"Engaged\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"https://app.zenabm.com/api/v1/abm-stages/manage"},"status":"Bad Gateway","code":502,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"error\": {\n    \"status\": 502,\n    \"code\": \"CRM_UNAVAILABLE\",\n    \"message\": \"HubSpot did not respond while loading deal pipelines. Try again in a few minutes.\"\n  }\n}"}],"_postman_id":"a9320261-b374-4a55-aec3-584d2ba2c65a"}],"id":"d0cf0ac4-c1a8-45a7-bc21-9e325cdfabf7","_postman_id":"d0cf0ac4-c1a8-45a7-bc21-9e325cdfabf7","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{bearerToken}}"}]},"isInherited":true,"source":{"_postman_id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","name":"ZenABM API (from spec)","type":"collection"}}},{"name":"Intents","item":[{"name":"List intents","id":"fb865675-b863-4ea0-a437-9027efa36c56","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"https://app.zenabm.com/api/v1/intents","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{bearerToken}}"}]},"isInherited":true,"source":{"_postman_id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","name":"ZenABM API (from spec)","type":"collection"}},"urlObject":{"path":["intents"],"host":["https://app.zenabm.com/api/v1"],"query":[],"variable":[]}},"response":[{"id":"1dfc4420-6c61-4d57-bd6c-c8dbfc09aa70","name":"List of intents for team","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":"https://app.zenabm.com/api/v1/intents"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"data\": [\n    {\n      \"id\": \"int001\",\n      \"name\": \"Product Demo Interest\",\n      \"description\": \"\",\n      \"companyCount\": 142,\n      \"adSets\": [\n        {\n          \"id\": \"cm7lc001\",\n          \"name\": \"Evergreen 2025 - Competitor Switching\"\n        }\n      ],\n      \"campaigns\": [\n        {\n          \"id\": \"cm7lcg001\",\n          \"name\": \"Fintech Enterprise Group\"\n        }\n      ]\n    }\n  ],\n  \"meta\": {\n    \"timestamp\": \"2026-03-09T12:00:00.000Z\"\n  }\n}"}],"_postman_id":"fb865675-b863-4ea0-a437-9027efa36c56"},{"name":"Get intent by ID","id":"97dbeff1-f764-499b-8f9c-3902f00022b0","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"https://app.zenabm.com/api/v1/intents/:id","description":"<p>Returns the intent with the ad sets and campaigns it is assigned to, plus <code>companyCount</code> — the number of companies tagged with this intent.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{bearerToken}}"}]},"isInherited":true,"source":{"_postman_id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","name":"ZenABM API (from spec)","type":"collection"}},"urlObject":{"path":["intents",":id"],"host":["https://app.zenabm.com/api/v1"],"query":[],"variable":[{"description":{"content":"<p>Intent ID</p>\n","type":"text/plain"},"type":"any","value":"string","key":"id"}]}},"response":[{"id":"bc72f4eb-3c25-4883-85db-bab0928fb7f9","name":"Intent details","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"https://app.zenabm.com/api/v1/intents/:id","host":["https://app.zenabm.com/api/v1"],"path":["intents",":id"],"variable":[{"key":"id","value":"string","description":"Intent ID"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"data\": {\n    \"id\": \"int001\",\n    \"name\": \"Product Demo Interest\",\n    \"description\": \"\",\n    \"companyCount\": 142,\n    \"adSets\": [\n      {\n        \"id\": \"cm7lc001\",\n        \"name\": \"Evergreen 2025 - Competitor Switching\"\n      }\n    ],\n    \"campaigns\": [\n      {\n        \"id\": \"cm7lcg001\",\n        \"name\": \"Fintech Enterprise Group\"\n      }\n    ]\n  },\n  \"meta\": {\n    \"timestamp\": \"2026-03-09T12:00:00.000Z\"\n  }\n}"}],"_postman_id":"97dbeff1-f764-499b-8f9c-3902f00022b0"}],"id":"7e18e7ba-a4fb-4004-8cf3-624d42217143","_postman_id":"7e18e7ba-a4fb-4004-8cf3-624d42217143","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{bearerToken}}"}]},"isInherited":true,"source":{"_postman_id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","name":"ZenABM API (from spec)","type":"collection"}}},{"name":"Contacts","item":[{"name":"List contacts with source touchpoints","id":"74c978ae-de9e-4309-9c95-754b20cf74bc","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"https://app.zenabm.com/api/v1/contacts?page=1&pageSize=20&search=string&startDate=2026-04-01T00:00:00.000Z&endDate=2026-05-01T00:00:00.000Z&sortBy=totalClicks&sortOrder=desc&touchpoints=PAID_SEARCH,AI_REFERRALS|AI: ChatGPT&currentAbmStages=string&lifetimeAbmStages=string&hasDeal=all","description":"<p>Returns a paginated list of HubSpot contacts with source touchpoint totals, company context, ABM stage context, and related deals.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{bearerToken}}"}]},"isInherited":true,"source":{"_postman_id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","name":"ZenABM API (from spec)","type":"collection"}},"urlObject":{"path":["contacts"],"host":["https://app.zenabm.com/api/v1"],"query":[{"description":{"content":"<p>Page number (default: 1)</p>\n","type":"text/plain"},"key":"page","value":"1"},{"description":{"content":"<p>Items per page (default: 20, max: 100)</p>\n","type":"text/plain"},"key":"pageSize","value":"20"},{"description":{"content":"<p>Search filter</p>\n","type":"text/plain"},"key":"search","value":"string"},{"description":{"content":"<p>Start of the source event window (inclusive). ISO-8601 string.</p>\n","type":"text/plain"},"key":"startDate","value":"2026-04-01T00:00:00.000Z"},{"description":{"content":"<p>End of the source event window (inclusive). ISO-8601 string.</p>\n","type":"text/plain"},"key":"endDate","value":"2026-05-01T00:00:00.000Z"},{"key":"sortBy","value":"totalClicks"},{"description":{"content":"<p>Sort direction</p>\n","type":"text/plain"},"key":"sortOrder","value":"desc"},{"description":{"content":"<p>Comma-separated touchpoint keys. Examples: PAID_SEARCH, PAID_SOCIAL|LinkedIn Ads, AI_REFERRALS|AI: ChatGPT.</p>\n","type":"text/plain"},"key":"touchpoints","value":"PAID_SEARCH,AI_REFERRALS|AI: ChatGPT"},{"description":{"content":"<p>Comma-separated current ABM stage IDs.</p>\n","type":"text/plain"},"key":"currentAbmStages","value":"string"},{"description":{"content":"<p>Comma-separated lifetime ABM stage IDs.</p>\n","type":"text/plain"},"key":"lifetimeAbmStages","value":"string"},{"description":{"content":"<p>Filter contacts by their company's deal status. <code>*_in_period</code> variants use the page's <code>startDate</code>/<code>endDate</code> window — <code>created_in_period</code> matches <code>hubspotCreatedAt</code>, <code>won_in_period</code>/<code>lost_in_period</code> match <code>hubspotClosedAt</code> on won / lost deals. Won and lost are resolved from each CRM natively — HubSpot stage <code>isClosed</code> + <code>probability</code>, Salesforce <code>IsClosed</code>/<code>IsWon</code>, Attio status title.</p>\n","type":"text/plain"},"key":"hasDeal","value":"all"}],"variable":[]}},"response":[{"id":"43b50333-7321-4750-af6d-aca817f32adc","name":"Paginated contacts with source touchpoints","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"https://app.zenabm.com/api/v1/contacts?page=1&pageSize=20&search=string&startDate=2026-04-01T00:00:00.000Z&endDate=2026-05-01T00:00:00.000Z&sortBy=totalClicks&sortOrder=desc&touchpoints=PAID_SEARCH,AI_REFERRALS|AI: ChatGPT&currentAbmStages=string&lifetimeAbmStages=string&hasDeal=all","host":["https://app.zenabm.com/api/v1"],"path":["contacts"],"query":[{"description":"Page number (default: 1)","key":"page","value":"1"},{"description":"Items per page (default: 20, max: 100)","key":"pageSize","value":"20"},{"description":"Search filter","key":"search","value":"string"},{"description":"Start of the source event window (inclusive). ISO-8601 string.","key":"startDate","value":"2026-04-01T00:00:00.000Z"},{"description":"End of the source event window (inclusive). ISO-8601 string.","key":"endDate","value":"2026-05-01T00:00:00.000Z"},{"key":"sortBy","value":"totalClicks"},{"description":"Sort direction","key":"sortOrder","value":"desc"},{"description":"Comma-separated touchpoint keys. Examples: PAID_SEARCH, PAID_SOCIAL|LinkedIn Ads, AI_REFERRALS|AI: ChatGPT.","key":"touchpoints","value":"PAID_SEARCH,AI_REFERRALS|AI: ChatGPT"},{"description":"Comma-separated current ABM stage IDs.","key":"currentAbmStages","value":"string"},{"description":"Comma-separated lifetime ABM stage IDs.","key":"lifetimeAbmStages","value":"string"},{"description":"Filter contacts by their company's deal status. `*_in_period` variants use the page's `startDate`/`endDate` window — `created_in_period` matches `hubspotCreatedAt`, `won_in_period`/`lost_in_period` match `hubspotClosedAt` on won / lost deals. Won and lost are resolved from each CRM natively — HubSpot stage `isClosed` + `probability`, Salesforce `IsClosed`/`IsWon`, Attio status title.","key":"hasDeal","value":"all"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"data\": [\n    {\n      \"id\": \"cnt001\",\n      \"hubspotContactId\": \"5510123\",\n      \"firstName\": \"Ada\",\n      \"lastName\": \"Lovelace\",\n      \"name\": \"Ada Lovelace\",\n      \"email\": \"ada@piedpiper.com\",\n      \"companyId\": \"cmp001\",\n      \"companyName\": \"Pied Piper\",\n      \"companyLogoUrl\": \"https://piedpiper.com/logo.png\",\n      \"companyHubspotId\": \"37411334702\",\n      \"companyAbmStage\": {\n        \"id\": \"stage_interested\",\n        \"name\": \"Interested\",\n        \"color\": \"#10B981\",\n        \"displayOrder\": 3\n      },\n      \"companyLifetimeAbmStage\": {\n        \"id\": \"stage_evaluating\",\n        \"name\": \"Evaluating\",\n        \"color\": \"#6366F1\",\n        \"displayOrder\": 4\n      },\n      \"companyHasAnyDeal\": true,\n      \"companyDeals\": [\n        {\n          \"id\": \"deal001\",\n          \"hubspotId\": \"982173\",\n          \"hubspotPortalId\": 243811,\n          \"dealName\": \"Pied Piper - Enterprise\",\n          \"hubspotCreatedAt\": \"2026-04-15T10:00:00.000Z\",\n          \"hubspotClosedAt\": null,\n          \"status\": \"open\"\n        }\n      ],\n      \"totalClicks\": 12,\n      \"touchpoints\": [\n        {\n          \"sourceType\": \"PAID_SEARCH\",\n          \"label\": \"PAID_SEARCH\",\n          \"count\": 6\n        },\n        {\n          \"sourceType\": \"AI_REFERRALS\",\n          \"label\": \"AI: ChatGPT\",\n          \"count\": 4\n        }\n      ],\n      \"touchpointEvents\": [\n        {\n          \"id\": \"evt001\",\n          \"sourceType\": \"PAID_SEARCH\",\n          \"label\": \"PAID_SEARCH\",\n          \"detail1\": \"google\",\n          \"detail2\": \"brand campaign\",\n          \"eventTimestamp\": \"2026-04-29T12:30:00.000Z\"\n        }\n      ],\n      \"lastEventAt\": \"2026-04-29T12:30:00.000Z\"\n    }\n  ],\n  \"pagination\": {\n    \"page\": 1,\n    \"pageSize\": 20,\n    \"totalCount\": 42,\n    \"totalPages\": 3\n  },\n  \"meta\": {\n    \"timestamp\": \"2026-05-04T12:00:00.000Z\"\n  }\n}"}],"_postman_id":"74c978ae-de9e-4309-9c95-754b20cf74bc"},{"name":"Get contact journey","id":"e78d2f64-0ed8-4120-9c36-7237634f80e9","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"https://app.zenabm.com/api/v1/contacts/:id","description":"<p>Returns a single contact with company context, source events, related deals, and a weekly source-event timeline.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{bearerToken}}"}]},"isInherited":true,"source":{"_postman_id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","name":"ZenABM API (from spec)","type":"collection"}},"urlObject":{"path":["contacts",":id"],"host":["https://app.zenabm.com/api/v1"],"query":[],"variable":[{"description":{"content":"<p>Contact ID</p>\n","type":"text/plain"},"type":"any","value":"string","key":"id"}]}},"response":[{"id":"dafad9c6-147b-460a-8507-74b0d6b552ff","name":"Contact journey detail","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"https://app.zenabm.com/api/v1/contacts/:id","host":["https://app.zenabm.com/api/v1"],"path":["contacts",":id"],"variable":[{"key":"id","value":"string","description":"Contact ID"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"data\": {\n    \"id\": \"cnt001\",\n    \"hubspotContactId\": \"5510123\",\n    \"hubspotPortalId\": \"243811\",\n    \"firstName\": \"Ada\",\n    \"lastName\": \"Lovelace\",\n    \"email\": \"ada@piedpiper.com\",\n    \"company\": {\n      \"id\": \"cmp001\",\n      \"name\": \"Pied Piper\",\n      \"website\": \"https://piedpiper.com\",\n      \"hubspotCompanyId\": \"37411334702\",\n      \"logoUrl\": \"https://piedpiper.com/logo.png\"\n    },\n    \"sourceEvents\": [\n      {\n        \"sourceType\": \"AI_REFERRALS\",\n        \"label\": \"AI: ChatGPT\",\n        \"detail1\": \"chatgpt.com\",\n        \"detail2\": \"/pricing\",\n        \"eventTimestamp\": \"2026-04-30T15:12:00.000Z\"\n      },\n      {\n        \"sourceType\": \"PAID_SEARCH\",\n        \"label\": \"PAID_SEARCH\",\n        \"detail1\": \"google\",\n        \"detail2\": \"brand campaign\",\n        \"eventTimestamp\": \"2026-04-29T12:30:00.000Z\"\n      }\n    ],\n    \"deals\": [\n      {\n        \"id\": \"deal001\",\n        \"hubspotId\": \"982173\",\n        \"hubspotPortalId\": 243811,\n        \"dealName\": \"Pied Piper - Enterprise\",\n        \"amount\": 25000,\n        \"hubspotCreatedAt\": \"2026-04-15T10:00:00.000Z\",\n        \"hubspotClosedAt\": null,\n        \"stageName\": \"Proposal\",\n        \"isWon\": false,\n        \"isLost\": false\n      }\n    ],\n    \"weeklyTimeline\": [\n      {\n        \"weekStart\": \"2026-04-27\",\n        \"clicks\": 8\n      },\n      {\n        \"weekStart\": \"2026-05-04\",\n        \"clicks\": 4\n      }\n    ],\n    \"totalClicks\": 12\n  },\n  \"meta\": {\n    \"timestamp\": \"2026-05-04T12:00:00.000Z\"\n  }\n}"},{"id":"4f294b82-bba2-4f51-a0db-9541bae82494","name":"Contact not found","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"https://app.zenabm.com/api/v1/contacts/:id","host":["https://app.zenabm.com/api/v1"],"path":["contacts",":id"],"variable":[{"key":"id","value":"string","description":"Contact ID"}]}},"status":"Not Found","code":404,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"error\": {\n    \"status\": 404,\n    \"code\": \"NOT_FOUND\",\n    \"message\": \"Contact not found\"\n  }\n}"}],"_postman_id":"e78d2f64-0ed8-4120-9c36-7237634f80e9"}],"id":"9b05c74a-d2c2-4bdd-aa72-7bb88ae25599","_postman_id":"9b05c74a-d2c2-4bdd-aa72-7bb88ae25599","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{bearerToken}}"}]},"isInherited":true,"source":{"_postman_id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","name":"ZenABM API (from spec)","type":"collection"}}},{"name":"Sources","item":[{"name":"List contact source aggregates","id":"8615aeab-c4d8-4560-af8b-1279e6237459","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"https://app.zenabm.com/api/v1/sources?startDate=2026-04-01T00:00:00.000Z&endDate=2026-05-01T00:00:00.000Z","description":"<p>Returns aggregated contact source events grouped by source type. Each row reports total clicks, distinct contacts, and distinct companies. Filter by an optional date range.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{bearerToken}}"}]},"isInherited":true,"source":{"_postman_id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","name":"ZenABM API (from spec)","type":"collection"}},"urlObject":{"path":["sources"],"host":["https://app.zenabm.com/api/v1"],"query":[{"description":{"content":"<p>Start of the event window (inclusive). ISO-8601 string.</p>\n","type":"text/plain"},"key":"startDate","value":"2026-04-01T00:00:00.000Z"},{"description":{"content":"<p>End of the event window (inclusive). ISO-8601 string.</p>\n","type":"text/plain"},"key":"endDate","value":"2026-05-01T00:00:00.000Z"}],"variable":[]}},"response":[{"id":"6878601b-372e-4d26-92b7-4b781572bc34","name":"Aggregated source totals","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"https://app.zenabm.com/api/v1/sources?startDate=2026-04-01T00:00:00.000Z&endDate=2026-05-01T00:00:00.000Z","host":["https://app.zenabm.com/api/v1"],"path":["sources"],"query":[{"description":"Start of the event window (inclusive). ISO-8601 string.","key":"startDate","value":"2026-04-01T00:00:00.000Z"},{"description":"End of the event window (inclusive). ISO-8601 string.","key":"endDate","value":"2026-05-01T00:00:00.000Z"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"data\": [\n    {\n      \"key\": \"PAID_SEARCH\",\n      \"sourceType\": \"PAID_SEARCH\",\n      \"label\": \"PAID_SEARCH\",\n      \"clicks\": 1240,\n      \"contacts\": 87,\n      \"companies\": 54\n    },\n    {\n      \"key\": \"AI_REFERRALS:AI: ChatGPT\",\n      \"sourceType\": \"AI_REFERRALS\",\n      \"label\": \"AI: ChatGPT\",\n      \"clicks\": 612,\n      \"contacts\": 45,\n      \"companies\": 38\n    }\n  ],\n  \"meta\": {\n    \"timestamp\": \"2026-05-04T12:00:00.000Z\"\n  }\n}"}],"_postman_id":"8615aeab-c4d8-4560-af8b-1279e6237459"},{"name":"Get source detail by type","id":"4e31c437-904b-4d72-8cff-aafe86e5a357","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"https://app.zenabm.com/api/v1/sources/:sourceType?label=AI: ChatGPT&period=last30Days&startDate=2026-04-01T00:00:00.000Z&endDate=2026-05-01T00:00:00.000Z","description":"<p>Returns the contacts, companies, and weekly timeline for a single source type within an optional date range. Capped at the most recent 500 events.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{bearerToken}}"}]},"isInherited":true,"source":{"_postman_id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","name":"ZenABM API (from spec)","type":"collection"}},"urlObject":{"path":["sources",":sourceType"],"host":["https://app.zenabm.com/api/v1"],"query":[{"description":{"content":"<p>Optional label filter. Use for split source rows such as PAID_SOCIAL|LinkedIn Ads or AI_REFERRALS|AI: ChatGPT.</p>\n","type":"text/plain"},"key":"label","value":"AI: ChatGPT"},{"description":{"content":"<p>Time period preset. Ignored when startDate/endDate are provided.</p>\n","type":"text/plain"},"key":"period","value":"last30Days"},{"description":{"content":"<p>Start of the event window (inclusive). ISO-8601 string. Supply with <code>endDate</code> to override <code>period</code>.</p>\n","type":"text/plain"},"key":"startDate","value":"2026-04-01T00:00:00.000Z"},{"description":{"content":"<p>End of the event window (inclusive). ISO-8601 string.</p>\n","type":"text/plain"},"key":"endDate","value":"2026-05-01T00:00:00.000Z"}],"variable":[{"description":{"content":"<p>Source type identifier (e.g. PAID_SEARCH, PAID_SOCIAL, ORGANIC_SEARCH, AI_REFERRALS, REFERRALS, DIRECT_TRAFFIC, EMAIL_MARKETING, SOCIAL_MEDIA, OFFLINE, OTHER_CAMPAIGNS).</p>\n","type":"text/plain"},"type":"any","value":"PAID_SEARCH","key":"sourceType"}]}},"response":[{"id":"55906843-6393-4cad-a0b0-78d54dba8e10","name":"Source detail with contact and company breakdowns","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"https://app.zenabm.com/api/v1/sources/:sourceType?label=AI: ChatGPT&period=last30Days&startDate=2026-04-01T00:00:00.000Z&endDate=2026-05-01T00:00:00.000Z","host":["https://app.zenabm.com/api/v1"],"path":["sources",":sourceType"],"query":[{"description":"Optional label filter. Use for split source rows such as PAID_SOCIAL|LinkedIn Ads or AI_REFERRALS|AI: ChatGPT.","key":"label","value":"AI: ChatGPT"},{"description":"Time period preset. Ignored when startDate/endDate are provided.","key":"period","value":"last30Days"},{"description":"Start of the event window (inclusive). ISO-8601 string. Supply with `endDate` to override `period`.","key":"startDate","value":"2026-04-01T00:00:00.000Z"},{"description":"End of the event window (inclusive). ISO-8601 string.","key":"endDate","value":"2026-05-01T00:00:00.000Z"}],"variable":[{"key":"sourceType","value":"PAID_SEARCH","description":"Source type identifier (e.g. PAID_SEARCH, PAID_SOCIAL, ORGANIC_SEARCH, AI_REFERRALS, REFERRALS, DIRECT_TRAFFIC, EMAIL_MARKETING, SOCIAL_MEDIA, OFFLINE, OTHER_CAMPAIGNS)."}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"data\": {\n    \"contacts\": [\n      {\n        \"contactId\": \"cnt001\",\n        \"hubspotContactId\": \"5510123\",\n        \"name\": \"Ada Lovelace\",\n        \"email\": \"ada@piedpiper.com\",\n        \"companyName\": \"Pied Piper\",\n        \"companyId\": \"cmp001\",\n        \"clicks\": 12,\n        \"lastEvent\": \"2026-05-03T19:11:24.000Z\"\n      }\n    ],\n    \"companies\": [\n      {\n        \"companyId\": \"cmp001\",\n        \"name\": \"Pied Piper\",\n        \"website\": \"https://piedpiper.com\",\n        \"clicks\": 41,\n        \"contacts\": 7\n      }\n    ],\n    \"timeline\": [\n      {\n        \"weekStart\": \"2026-04-27\",\n        \"clicks\": 18\n      },\n      {\n        \"weekStart\": \"2026-05-04\",\n        \"clicks\": 23\n      }\n    ],\n    \"totalClicks\": 41,\n    \"totalContacts\": 7,\n    \"totalCompanies\": 1\n  },\n  \"meta\": {\n    \"timestamp\": \"2026-05-04T12:00:00.000Z\"\n  }\n}"}],"_postman_id":"4e31c437-904b-4d72-8cff-aafe86e5a357"}],"id":"938b878c-e097-4a82-a1d3-418fffab9093","_postman_id":"938b878c-e097-4a82-a1d3-418fffab9093","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{bearerToken}}"}]},"isInherited":true,"source":{"_postman_id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","name":"ZenABM API (from spec)","type":"collection"}}},{"name":"Ad Library","item":[{"name":"Search the LinkedIn Ad Library by advertiser","id":"9eee8fa0-dff1-42eb-a045-d57ec94a7c95","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"https://app.zenabm.com/api/v1/ad-library/by-advertiser?company=string&companyId=string&countries=string&startDate=2018-09-03&endDate=2018-09-03&limit=25","description":"<p>Profile a competitor's ads. Searches LinkedIn's public Ad Library by advertiser name (fuzzy match) and returns normalized ad metadata (format, EU/EEA impression ranges + per-country split, first/last impression dates, and which targeting facets were used). LinkedIn's advertiser search is fuzzy, so responses include an <code>advertisers</code> list — pick the right <code>companyId</code> from it and pass it back to filter to the exact advertiser. Country and date filters are applied over the returned ads. Impression/targeting data is EU/EEA-only (DSA); US-only advertisers return null statistics (treat as unknown, not zero).</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{bearerToken}}"}]},"isInherited":true,"source":{"_postman_id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","name":"ZenABM API (from spec)","type":"collection"}},"urlObject":{"path":["ad-library","by-advertiser"],"host":["https://app.zenabm.com/api/v1"],"query":[{"description":{"content":"<p>Advertiser name, vanity slug, or a linkedin.com/company/... URL to search for.</p>\n","type":"text/plain"},"key":"company","value":"string"},{"description":{"content":"<p>Canonical LinkedIn company ID to filter results to the exact advertiser (guards against fuzzy-name collisions). Auto-derived when <code>company</code> is a /company/ URL.</p>\n","type":"text/plain"},"key":"companyId","value":"string"},{"description":{"content":"<p>Comma-separated ISO 3166-1 alpha-2 codes (e.g. \"DE,FR\"). Keeps ads with EU/EEA impressions in any listed country.</p>\n","type":"text/plain"},"key":"countries","value":"string"},{"description":{"content":"<p>Start date (YYYY-MM-DD). When provided with endDate, overrides the period parameter.</p>\n","type":"text/plain"},"key":"startDate","value":"2018-09-03"},{"description":{"content":"<p>End date (YYYY-MM-DD). When provided with startDate, overrides the period parameter.</p>\n","type":"text/plain"},"key":"endDate","value":"2018-09-03"},{"description":{"content":"<p>Max ads to return after filtering (default: 25, max: 100).</p>\n","type":"text/plain"},"key":"limit","value":"25"}],"variable":[]}},"response":[{"id":"6f3a7109-c375-4a5e-92fe-1da7122b32f9","name":"Ad Library search results","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"https://app.zenabm.com/api/v1/ad-library/by-advertiser?company=string&companyId=string&countries=string&startDate=2018-09-03&endDate=2018-09-03&limit=25","host":["https://app.zenabm.com/api/v1"],"path":["ad-library","by-advertiser"],"query":[{"description":"Advertiser name, vanity slug, or a linkedin.com/company/... URL to search for.","key":"company","value":"string"},{"description":"Canonical LinkedIn company ID to filter results to the exact advertiser (guards against fuzzy-name collisions). Auto-derived when `company` is a /company/<id> URL.","key":"companyId","value":"string"},{"description":"Comma-separated ISO 3166-1 alpha-2 codes (e.g. \"DE,FR\"). Keeps ads with EU/EEA impressions in any listed country.","key":"countries","value":"string"},{"description":"Start date (YYYY-MM-DD). When provided with endDate, overrides the period parameter.","key":"startDate","value":"2018-09-03"},{"description":"End date (YYYY-MM-DD). When provided with startDate, overrides the period parameter.","key":"endDate","value":"2018-09-03"},{"description":"Max ads to return after filtering (default: 25, max: 100).","key":"limit","value":"25"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"data\": {\n    \"ads\": [\n      {\n        \"adId\": \"1443175013\",\n        \"adUrl\": \"https://www.linkedin.com/ad-library/detail/1443175013\",\n        \"isRestricted\": false,\n        \"type\": \"SPONSORED_VIDEO\",\n        \"advertiser\": {\n          \"name\": \"Userpilot\",\n          \"url\": \"https://www.linkedin.com/company/27027108\",\n          \"companyId\": \"27027108\",\n          \"payer\": \"Userpilot Inc\"\n        },\n        \"statistics\": {\n          \"firstImpressionAt\": 1781795275387,\n          \"latestImpressionAt\": 1783846658226,\n          \"totalImpressions\": {\n            \"from\": 0,\n            \"to\": 1000\n          },\n          \"impressionsByCountry\": [\n            {\n              \"country\": \"DE\",\n              \"percentage\": 4.45\n            }\n          ]\n        },\n        \"targeting\": [\n          {\n            \"facet\": \"Location\",\n            \"isIncluded\": true,\n            \"isExcluded\": false,\n            \"includedSegments\": [\n              \"Germany\"\n            ],\n            \"excludedSegments\": []\n          }\n        ]\n      }\n    ],\n    \"advertisers\": [\n      {\n        \"name\": \"Userpilot\",\n        \"url\": \"https://www.linkedin.com/company/27027108\",\n        \"companyId\": \"27027108\",\n        \"adCount\": 24\n      }\n    ],\n    \"total\": 1617,\n    \"scanned\": 25,\n    \"returned\": 1,\n    \"truncated\": true\n  },\n  \"meta\": {\n    \"timestamp\": \"2026-07-12T12:00:00.000Z\"\n  }\n}"},{"id":"1070c0ec-13e3-4f3e-b47b-97e14b8833b4","name":"Missing company parameter or no LinkedIn connection","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"https://app.zenabm.com/api/v1/ad-library/by-advertiser?company=string&companyId=string&countries=string&startDate=2018-09-03&endDate=2018-09-03&limit=25","host":["https://app.zenabm.com/api/v1"],"path":["ad-library","by-advertiser"],"query":[{"description":"Advertiser name, vanity slug, or a linkedin.com/company/... URL to search for.","key":"company","value":"string"},{"description":"Canonical LinkedIn company ID to filter results to the exact advertiser (guards against fuzzy-name collisions). Auto-derived when `company` is a /company/<id> URL.","key":"companyId","value":"string"},{"description":"Comma-separated ISO 3166-1 alpha-2 codes (e.g. \"DE,FR\"). Keeps ads with EU/EEA impressions in any listed country.","key":"countries","value":"string"},{"description":"Start date (YYYY-MM-DD). When provided with endDate, overrides the period parameter.","key":"startDate","value":"2018-09-03"},{"description":"End date (YYYY-MM-DD). When provided with startDate, overrides the period parameter.","key":"endDate","value":"2018-09-03"},{"description":"Max ads to return after filtering (default: 25, max: 100).","key":"limit","value":"25"}]}},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"error\": {\n    \"status\": 400,\n    \"code\": \"BAD_REQUEST\",\n    \"message\": \"The \\\"company\\\" query parameter is required.\"\n  }\n}"}],"_postman_id":"9eee8fa0-dff1-42eb-a045-d57ec94a7c95"},{"name":"Search the LinkedIn Ad Library by keyword","id":"d3b8696c-ceea-4fd3-91e3-6f5e5df93157","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"https://app.zenabm.com/api/v1/ad-library/by-keyword?keyword=string&advertiser=string&countries=string&startDate=2018-09-03&endDate=2018-09-03&limit=25","description":"<p>Discover who advertises on a topic. Full-text searches LinkedIn's public Ad Library ad copy and returns the same normalized ad metadata as /ad-library/by-advertiser. Optionally narrow to a single advertiser. Country and date filters are applied over the returned ads. Impression/targeting data is EU/EEA-only (DSA).</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{bearerToken}}"}]},"isInherited":true,"source":{"_postman_id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","name":"ZenABM API (from spec)","type":"collection"}},"urlObject":{"path":["ad-library","by-keyword"],"host":["https://app.zenabm.com/api/v1"],"query":[{"description":{"content":"<p>Full-text phrase to match in ad copy.</p>\n","type":"text/plain"},"key":"keyword","value":"string"},{"description":{"content":"<p>Optional advertiser name to narrow keyword results (ANDed with the keyword).</p>\n","type":"text/plain"},"key":"advertiser","value":"string"},{"description":{"content":"<p>Comma-separated ISO 3166-1 alpha-2 codes (e.g. \"DE,FR\"). Keeps ads with EU/EEA impressions in any listed country.</p>\n","type":"text/plain"},"key":"countries","value":"string"},{"description":{"content":"<p>Start date (YYYY-MM-DD). When provided with endDate, overrides the period parameter.</p>\n","type":"text/plain"},"key":"startDate","value":"2018-09-03"},{"description":{"content":"<p>End date (YYYY-MM-DD). When provided with startDate, overrides the period parameter.</p>\n","type":"text/plain"},"key":"endDate","value":"2018-09-03"},{"description":{"content":"<p>Max ads to return after filtering (default: 25, max: 100).</p>\n","type":"text/plain"},"key":"limit","value":"25"}],"variable":[]}},"response":[{"id":"a1de72be-8508-4f3d-b95c-2bbb56be797f","name":"Ad Library search results","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"https://app.zenabm.com/api/v1/ad-library/by-keyword?keyword=string&advertiser=string&countries=string&startDate=2018-09-03&endDate=2018-09-03&limit=25","host":["https://app.zenabm.com/api/v1"],"path":["ad-library","by-keyword"],"query":[{"description":"Full-text phrase to match in ad copy.","key":"keyword","value":"string"},{"description":"Optional advertiser name to narrow keyword results (ANDed with the keyword).","key":"advertiser","value":"string"},{"description":"Comma-separated ISO 3166-1 alpha-2 codes (e.g. \"DE,FR\"). Keeps ads with EU/EEA impressions in any listed country.","key":"countries","value":"string"},{"description":"Start date (YYYY-MM-DD). When provided with endDate, overrides the period parameter.","key":"startDate","value":"2018-09-03"},{"description":"End date (YYYY-MM-DD). When provided with startDate, overrides the period parameter.","key":"endDate","value":"2018-09-03"},{"description":"Max ads to return after filtering (default: 25, max: 100).","key":"limit","value":"25"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"data\": {\n    \"ads\": [\n      {\n        \"adId\": \"1442648153\",\n        \"adUrl\": \"https://www.linkedin.com/ad-library/detail/1442648153\",\n        \"isRestricted\": false,\n        \"type\": \"SPONSORED_STATUS_UPDATE\",\n        \"advertiser\": {\n          \"name\": \"Personio\",\n          \"url\": \"https://www.linkedin.com/company/10180448\",\n          \"companyId\": \"10180448\",\n          \"payer\": \"Personio SE & Co. KG\"\n        },\n        \"statistics\": null,\n        \"targeting\": []\n      }\n    ],\n    \"advertisers\": [\n      {\n        \"name\": \"Personio\",\n        \"url\": \"https://www.linkedin.com/company/10180448\",\n        \"companyId\": \"10180448\",\n        \"adCount\": 12\n      }\n    ],\n    \"total\": 410199,\n    \"scanned\": 25,\n    \"returned\": 1,\n    \"truncated\": true\n  },\n  \"meta\": {\n    \"timestamp\": \"2026-07-12T12:00:00.000Z\"\n  }\n}"},{"id":"e5cfe47f-f6fd-4d6a-9618-2e15e2411cc7","name":"Missing keyword parameter or no LinkedIn connection","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"https://app.zenabm.com/api/v1/ad-library/by-keyword?keyword=string&advertiser=string&countries=string&startDate=2018-09-03&endDate=2018-09-03&limit=25","host":["https://app.zenabm.com/api/v1"],"path":["ad-library","by-keyword"],"query":[{"description":"Full-text phrase to match in ad copy.","key":"keyword","value":"string"},{"description":"Optional advertiser name to narrow keyword results (ANDed with the keyword).","key":"advertiser","value":"string"},{"description":"Comma-separated ISO 3166-1 alpha-2 codes (e.g. \"DE,FR\"). Keeps ads with EU/EEA impressions in any listed country.","key":"countries","value":"string"},{"description":"Start date (YYYY-MM-DD). When provided with endDate, overrides the period parameter.","key":"startDate","value":"2018-09-03"},{"description":"End date (YYYY-MM-DD). When provided with startDate, overrides the period parameter.","key":"endDate","value":"2018-09-03"},{"description":"Max ads to return after filtering (default: 25, max: 100).","key":"limit","value":"25"}]}},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"error\": {\n    \"status\": 400,\n    \"code\": \"BAD_REQUEST\",\n    \"message\": \"The \\\"keyword\\\" query parameter is required.\"\n  }\n}"}],"_postman_id":"d3b8696c-ceea-4fd3-91e3-6f5e5df93157"}],"id":"294e6fb5-560f-4185-ae4e-0f03c63fdfc4","_postman_id":"294e6fb5-560f-4185-ae4e-0f03c63fdfc4","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{bearerToken}}"}]},"isInherited":true,"source":{"_postman_id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","name":"ZenABM API (from spec)","type":"collection"}}},{"name":"Dashboard","item":[{"name":"Get dashboard overview","id":"759cc9bb-dad1-48f7-b3c1-56f72208da97","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"https://app.zenabm.com/api/v1/dashboard?startDate=2018-09-03&endDate=2018-09-03","description":"<p>Returns a high-level overview with top companies, total metrics, and ad spend for the given date range.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{bearerToken}}"}]},"isInherited":true,"source":{"_postman_id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","name":"ZenABM API (from spec)","type":"collection"}},"urlObject":{"path":["dashboard"],"host":["https://app.zenabm.com/api/v1"],"query":[{"description":{"content":"<p>Start date (default: 30 days ago)</p>\n","type":"text/plain"},"key":"startDate","value":"2018-09-03"},{"description":{"content":"<p>End date (default: today)</p>\n","type":"text/plain"},"key":"endDate","value":"2018-09-03"}],"variable":[]}},"response":[{"id":"89814d8b-ecf7-4367-bd01-c481714d9967","name":"Dashboard overview with top companies, metrics, and ad spend","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: bearer","key":"Authorization","value":"Bearer <token>"}],"url":{"raw":"https://app.zenabm.com/api/v1/dashboard?startDate=2018-09-03&endDate=2018-09-03","host":["https://app.zenabm.com/api/v1"],"path":["dashboard"],"query":[{"description":"Start date (default: 30 days ago)","key":"startDate","value":"2018-09-03"},{"description":"End date (default: today)","key":"endDate","value":"2018-09-03"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"data\": {\n    \"topEngagedCompanies\": [\n      {\n        \"id\": \"1337\",\n        \"name\": \"Pied Piper\",\n        \"city\": \"San Francisco\",\n        \"country\": \"United States\",\n        \"website\": \"https://piedpiper.com\",\n        \"logoUrl\": \"https://piedpiper.com/assets/images/logo.png\",\n        \"linkedInOrgId\": \"12345\",\n        \"hubspotCompanyId\": \"9876543\",\n        \"salesforceId\": \"0015f00000AbCdEfGh\",\n        \"attioRecordId\": \"a1b2c3d4-5e6f-4a7b-8c9d-0e1f2a3b4c5d\",\n        \"impressions\": 24500,\n        \"clicks\": 312,\n        \"engagements\": 890,\n        \"costInUsd\": 3450.75,\n        \"lifetimeEngagementScore\": 87,\n        \"lifetimeAbmStage\": null,\n        \"abmStage\": {\n          \"id\": \"cls2def\",\n          \"name\": \"Engaged\",\n          \"color\": \"#4CAF50\",\n          \"displayOrder\": 2\n        },\n        \"intents\": [\n          {\n            \"id\": \"int001\",\n            \"name\": \"Product Demo Interest\"\n          }\n        ],\n        \"abmCampaigns\": [\n          {\n            \"id\": \"cm7abm001\",\n            \"name\": \"Q1 Enterprise ABM\"\n          }\n        ]\n      }\n    ],\n    \"linkedInMetrics\": {\n      \"current\": {\n        \"impressions\": 145000,\n        \"clicks\": 2100,\n        \"engagements\": 5800,\n        \"costInUsd\": 28500\n      },\n      \"previous\": {\n        \"impressions\": 120000,\n        \"clicks\": 1800,\n        \"engagements\": 4900,\n        \"costInUsd\": 24000\n      }\n    }\n  },\n  \"meta\": {\n    \"timestamp\": \"2026-03-09T12:00:00.000Z\"\n  }\n}"}],"_postman_id":"759cc9bb-dad1-48f7-b3c1-56f72208da97"}],"id":"367ae76d-7507-4a60-a6c5-3bad0aae5c6d","_postman_id":"367ae76d-7507-4a60-a6c5-3bad0aae5c6d","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{bearerToken}}"}]},"isInherited":true,"source":{"_postman_id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","id":"3ec71edb-85df-42f3-86ed-ff1e36e2ba3f","name":"ZenABM API (from spec)","type":"collection"}}}],"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{bearerToken}}"}]}},"variable":[{"key":"baseUrl","value":"https://app.zenabm.com/api/v1","type":"any"}]}