{"info":{"_postman_id":"b188d139-a966-4327-96e6-e2c968c284aa","name":"Letterhead API","description":"<html><head></head><body><p>Our API is released with stability in mind for folks to build around our service. We improve and introduce new usable methods regularly.</p>\n<p>If you find something odd, think something's missing, or want to make a feature request, <a href=\"https://help.tryletterhead.com/kb-tickets/new\">leave a note</a>.</p>\n<h2 id=\"authorization\">Authorization</h2>\n<p>All of our <strong>API requests</strong> look for a <em>Bearer token.</em> Organization administrators can <a href=\"https://help.tryletterhead.com/api-key-management\">generate API keys at any time</a>.</p>\n</body></html>","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[],"owner":"39607124","collectionId":"b188d139-a966-4327-96e6-e2c968c284aa","publishedId":"2sAYdfpqTW","public":true,"customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"},"publishDate":"2025-09-29T16:56:16.000Z"},"item":[{"name":"Agents (Coming Soon)","item":[{"name":"Activate agent","event":[{"id":"067d72d0-cb13-48aa-9460-543ec1874c60","listen":"test","script":{"id":"53d2f832-9a72-479d-b22e-df181f93efbb","exec":["pm.test(\"Status code is 2xx or 404\", function () {","    const code = pm.response.code;","    pm.expect(","        code,","        `Expected status 2xx or 404 but got ${code}`","    ).to.satisfy((c) => (c >= 200 && c < 300) || c === 404);","});",""],"type":"text/javascript","packages":{},"requests":{}}}],"id":"7c3719e8-35de-4bc5-b91c-5716b2196a10","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"api\": true\r\n}\r\n","options":{"raw":{"language":"json"}}},"url":"https://{{serverPrefix}}.api.tryletterhead.com/api/v3/agents//actions/activate","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{apiKey}}"}]},"isInherited":true,"source":{"_postman_id":"b188d139-a966-4327-96e6-e2c968c284aa","id":"b188d139-a966-4327-96e6-e2c968c284aa","name":"Letterhead API","type":"collection"}},"urlObject":{"protocol":"https","path":["api","v3","agents","","actions","activate"],"host":["{{serverPrefix}}","api","tryletterhead","com"],"query":[{"disabled":true,"key":"","value":""}],"variable":[]}},"response":[],"_postman_id":"7c3719e8-35de-4bc5-b91c-5716b2196a10"},{"name":"Create agent","event":[{"listen":"test","script":{"id":"38b0b037-9e48-4749-9c31-8412655ac5f2","exec":["pm.test(\"Status code is 2xx or 409\", function () {","    const code = pm.response.code;","    pm.expect(","        (code >= 200 && code < 300) || code === 409,","        `expected status 2xx or 409 but found ${code}`","    ).to.be.true;","});",""],"type":"text/javascript","packages":{},"requests":{}}}],"id":"98f52bf2-ae7d-4f86-9a20-1277a7b48f24","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"api","value":"true","type":"text","uuid":"6c48b618-a9a9-400d-bca8-a8e8101a1331"},{"key":"type","value":"0","type":"text","uuid":"b6fa1654-3f8a-48f4-b3f1-499cdef42d2b"}]},"url":"https://{{serverPrefix}}.api.tryletterhead.com/api/v3/agents","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{apiKey}}"}]},"isInherited":true,"source":{"_postman_id":"b188d139-a966-4327-96e6-e2c968c284aa","id":"b188d139-a966-4327-96e6-e2c968c284aa","name":"Letterhead API","type":"collection"}},"urlObject":{"protocol":"https","path":["api","v3","agents"],"host":["{{serverPrefix}}","api","tryletterhead","com"],"query":[],"variable":[]}},"response":[{"id":"c842125b-99a4-4072-a2f5-1277913bb0be","name":"Create agent","originalRequest":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"api","value":"true","type":"text","uuid":"6c48b618-a9a9-400d-bca8-a8e8101a1331"},{"key":"type","value":"0","type":"text","uuid":"b6fa1654-3f8a-48f4-b3f1-499cdef42d2b"}]},"url":"https://{{serverPrefix}}.api.tryletterhead.com/api/v3/agents"},"status":"Conflict","code":409,"_postman_previewlanguage":null,"header":[{"key":":status","value":409},{"key":"server","value":"nginx/1.27.3"},{"key":"content-type","value":"application/json"},{"key":"x-powered-by","value":"PHP/7.4.33"},{"key":"access-control-allow-origin","value":"*"},{"key":"access-control-allow-credentials","value":"true"},{"key":"access-control-max-age","value":"86400"},{"key":"cache-control","value":"no-cache, private"},{"key":"date","value":"Thu, 26 Mar 2026 16:07:49 GMT"},{"key":"via","value":"1.1 google"},{"key":"alt-svc","value":"h3=\":443\"; ma=2592000"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [],\n    \"items\": [],\n    \"message\": \"Cannot create an all-channels agent when channel-specific agents of this type exist.\",\n    \"total\": 0\n}"}],"_postman_id":"98f52bf2-ae7d-4f86-9a20-1277a7b48f24"},{"name":"Deactivate agent","event":[{"id":"cdb75eef-44bf-411a-857f-ded3fe71c3e2","listen":"test","script":{"id":"84815e89-8e94-40a3-94e6-136e44f44386","exec":[""],"type":"text/javascript","packages":{},"requests":{}}}],"id":"200ab85f-6a92-43c6-941a-f2304abb27a9","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"api\": true\r\n}\r\n","options":{"raw":{"language":"json"}}},"url":"https://{{serverPrefix}}.api.tryletterhead.com/api/v3/agents//actions/deactivate","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{apiKey}}"}]},"isInherited":true,"source":{"_postman_id":"b188d139-a966-4327-96e6-e2c968c284aa","id":"b188d139-a966-4327-96e6-e2c968c284aa","name":"Letterhead API","type":"collection"}},"urlObject":{"protocol":"https","path":["api","v3","agents","","actions","deactivate"],"host":["{{serverPrefix}}","api","tryletterhead","com"],"query":[{"disabled":true,"key":"","value":""}],"variable":[]}},"response":[],"_postman_id":"200ab85f-6a92-43c6-941a-f2304abb27a9"},{"name":"Delete agent","event":[{"id":"0c196e44-46ce-4486-9a01-a92dd86e5c8f","listen":"test","script":{"id":"16a8cf6c-b3d6-4402-ad2c-253c0b84d36f","exec":[""],"type":"text/javascript","packages":{},"requests":{}}}],"id":"66c22cd5-9532-4b78-a828-31090335efc8","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"body":{"mode":"raw","raw":"{\r\n    \"api\": true\r\n}\r\n","options":{"raw":{"language":"json"}}},"url":"https://{{serverPrefix}}.api.tryletterhead.com/api/v3/agents/agentUuid","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{apiKey}}"}]},"isInherited":true,"source":{"_postman_id":"b188d139-a966-4327-96e6-e2c968c284aa","id":"b188d139-a966-4327-96e6-e2c968c284aa","name":"Letterhead API","type":"collection"}},"urlObject":{"protocol":"https","path":["api","v3","agents","agentUuid"],"host":["{{serverPrefix}}","api","tryletterhead","com"],"query":[{"disabled":true,"key":"","value":""}],"variable":[]}},"response":[],"_postman_id":"66c22cd5-9532-4b78-a828-31090335efc8"},{"name":"Get agent","event":[{"id":"13908f09-663c-49d8-8dfc-7eee1efc02ee","listen":"test","script":{"type":"text/javascript","exec":["pm.test(\"Status code is 2xx or 404\", function () {","    pm.expect((pm.response.code >= 200 && pm.response.code < 300) || pm.response.code === 404).to.be.true;","});"]}}],"id":"49eb8735-bdc2-4691-8cb0-24f8ea0c2efe","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://{{serverPrefix}}.api.tryletterhead.com/api/v3/agents/?api=true","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{apiKey}}"}]},"isInherited":true,"source":{"_postman_id":"b188d139-a966-4327-96e6-e2c968c284aa","id":"b188d139-a966-4327-96e6-e2c968c284aa","name":"Letterhead API","type":"collection"}},"urlObject":{"protocol":"https","path":["api","v3","agents",""],"host":["{{serverPrefix}}","api","tryletterhead","com"],"query":[{"key":"api","value":"true"}],"variable":[]}},"response":[],"_postman_id":"49eb8735-bdc2-4691-8cb0-24f8ea0c2efe"},{"name":"List all agents","event":[{"id":"fb60768d-93bb-4674-a94a-8bb998536dc2","listen":"test","script":{"id":"7b0aca43-ec23-44ff-802a-37884e3c8e72","exec":["pm.test(\"Status code is 2xx\", function () {","    pm.response.to.be.success;","});",""],"type":"text/javascript","packages":{},"requests":{}}}],"id":"3600fdae-e71b-43ac-b40c-b1caed9e008e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://{{serverPrefix}}.api.tryletterhead.com/api/v3/agents?api=true","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{apiKey}}"}]},"isInherited":true,"source":{"_postman_id":"b188d139-a966-4327-96e6-e2c968c284aa","id":"b188d139-a966-4327-96e6-e2c968c284aa","name":"Letterhead API","type":"collection"}},"urlObject":{"protocol":"https","path":["api","v3","agents"],"host":["{{serverPrefix}}","api","tryletterhead","com"],"query":[{"key":"api","value":"true"}],"variable":[]}},"response":[],"_postman_id":"3600fdae-e71b-43ac-b40c-b1caed9e008e"},{"name":"Update agent","event":[{"id":"4dc22f2c-ad9c-488b-b39b-331a9572f5d9","listen":"test","script":{"id":"cc0ae2d2-6c1c-4f78-a73c-c46bbdfd5ee3","exec":["pm.test(\"Status code is 2xx\", function () {","    pm.response.to.be.success;","});",""],"type":"text/javascript","packages":{},"requests":{}}}],"id":"154ce1d7-772d-457d-b1d4-6badf7409f2a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"api\": true,\r\n    \"name\": \"Updated Agent Name\",\r\n    \"guidelines\": \"New instructions for the AI.\",\r\n    \"runMode\": 1,\r\n    \"channels\": [\r\n        {{channel}}\r\n    ]\r\n}\r\n","options":{"raw":{"language":"json"}}},"url":"https://{{serverPrefix}}.api.tryletterhead.com/api/v3/agents/","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{apiKey}}"}]},"isInherited":true,"source":{"_postman_id":"b188d139-a966-4327-96e6-e2c968c284aa","id":"b188d139-a966-4327-96e6-e2c968c284aa","name":"Letterhead API","type":"collection"}},"urlObject":{"protocol":"https","path":["api","v3","agents",""],"host":["{{serverPrefix}}","api","tryletterhead","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"154ce1d7-772d-457d-b1d4-6badf7409f2a"}],"id":"ad77a65a-99eb-4a2e-8fd2-a244f98043e7","event":[{"listen":"prerequest","script":{"id":"bbf39d6a-e520-44af-88a1-3f5e529015b7","type":"text/javascript","packages":{},"requests":{},"exec":[""]}},{"listen":"test","script":{"id":"0f8a1ac9-1c28-49fa-a944-af428c555c87","type":"text/javascript","requests":{},"exec":[""]}}],"_postman_id":"ad77a65a-99eb-4a2e-8fd2-a244f98043e7","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{apiKey}}"}]},"isInherited":true,"source":{"_postman_id":"b188d139-a966-4327-96e6-e2c968c284aa","id":"b188d139-a966-4327-96e6-e2c968c284aa","name":"Letterhead API","type":"collection"}}},{"name":"Audience","item":[{"name":"Create or Update Audience Member","id":"62908198-a987-48da-9591-8b887b50d0a8","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"api","value":"true","description":"<p><strong>required</strong> | When set to <code>true</code>, this endpoint will accept authorization with your API Key.</p>\n","type":"text"},{"key":"channels[]","value":"{{channel}}","description":"<p><strong>required</strong> <code>string[]</code>| The slug or the unique identifier of a channel belonging to your organization.</p>\n","type":"text"},{"key":"email","value":"taylorswift@example.com","description":"<p><strong>required</strong> | The email address of your audience member.</p>\n","type":"text"},{"key":"channelSubscriberStatus ","value":"1","description":"<p><strong>required</strong> | The intended subscription status of your audience member. </p>\n","type":"text"},{"key":"welcome","value":"false","description":"<p>When set to <code>true</code>, trigger a Welcome email when a new audience member is added. The \"Welcome\" automation must be configured in a given channel. Note that when <code>true</code> this will send regardless of the audience member's subscription status. </p>\n","type":"text"},{"key":"name","value":"","type":"text"},{"key":"surname","value":"","type":"text"},{"key":"addressLine1","value":"","type":"text"},{"key":"addressLine2","value":"","type":"text"},{"key":"age","value":"","type":"text"},{"key":"attitudes","value":"","type":"text"},{"key":"beliefs","value":"","type":"text"},{"key":"birthday","value":"","type":"text"},{"key":"businessWebsite","value":"","type":"text"},{"key":"children","value":"","type":"text"},{"key":"city","value":"","type":"text"},{"key":"contentTopics","value":"","type":"text"},{"key":"country","value":"","type":"text"},{"key":"CRMID","value":"","type":"text"},{"key":"customBehavior1","value":"","type":"text"},{"key":"customBehavior2","value":"","type":"text"},{"key":"customBehavior3","value":"","type":"text"},{"key":"customBehavior4","value":"","type":"text"},{"key":"customID1","value":"","type":"text"},{"key":"customID2","value":"","type":"text"},{"key":"customID3","value":"","type":"text"},{"key":"customID4","value":"","type":"text"},{"key":"customWebProfile1","value":"","type":"text"},{"key":"customWebProfile2","value":"","type":"text"},{"key":"customWebProfile3","value":"","type":"text"},{"key":"customWebProfile4","value":"","type":"text"},{"key":"deliveryPreference","value":"","type":"text"},{"key":"education","value":"","type":"text"},{"key":"ethnicity","value":"","type":"text"},{"key":"events","value":"","type":"text"},{"key":"facebookProfileName","value":"","type":"text"},{"key":"gender","value":"","type":"text"},{"key":"githubProfileName","value":"","type":"text"},{"key":"googleProfileName","value":"","type":"text"},{"key":"homePhone","value":"","type":"text"},{"key":"honorific","value":"","type":"text"},{"key":"instagramProfileName","value":"","type":"text"},{"key":"instagramProfileName","value":"","type":"text"},{"key":"interests","value":"","type":"text"},{"key":"jobCompanyOrOrganizationName","value":"","type":"text"},{"key":"jobTitle","value":"","type":"text"},{"key":"language","value":"","type":"text"},{"key":"latitude","value":"","type":"text"},{"key":"linkedInProfileName","value":"","type":"text"},{"key":"longitude","value":"","type":"text"},{"key":"maritalStatus","value":"","type":"text"},{"key":"memberStatus","value":"","type":"text"},{"key":"memberStatusChangedDate","value":"","type":"text"},{"key":"mobilePhone","value":"","type":"text"},{"key":"mostEngagedSources","value":"","type":"text"},{"key":"mostEngagedTopics","value":"","type":"text"},{"key":"notes","value":"","type":"text"},{"key":"pets","value":"","type":"text"},{"key":"politicalAffiliation","value":"","type":"text"},{"key":"postalCode","value":"","type":"text"},{"key":"pronouns","value":"","type":"text"},{"key":"purchases","value":"","type":"text"},{"key":"race","value":"","type":"text"},{"key":"referralSource","value":"","type":"text"},{"key":"referralStatus","value":"","type":"text"},{"key":"referredByEmail","value":"","type":"text"},{"key":"referredByFirstName","value":"","type":"text"},{"key":"referredByLastName","value":"","type":"text"},{"key":"region","value":"","type":"text"},{"key":"religion","value":"","type":"text"},{"key":"sexualOrientation","value":"","type":"text"},{"key":"snapchatProfileName","value":"","type":"text"},{"key":"stateProvince","value":"","type":"text"},{"key":"suffix","value":"","type":"text"},{"key":"tikTokProfileName","value":"","type":"text"},{"key":"timeZone","value":"","type":"text"},{"key":"twitterProfileName","value":"","type":"text"},{"key":"website","value":"","type":"text"},{"key":"websiteProfileName","value":"","type":"text"},{"key":"workPhone","value":"","type":"text"}]},"url":"https://{{serverPrefix}}.api.tryletterhead.com/api/v3/audience","description":"<p>Create or update an audience member for a given organization. Our <strong>v3</strong> API requires a company-level API key.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{apiKey}}"}]},"isInherited":true,"source":{"_postman_id":"b188d139-a966-4327-96e6-e2c968c284aa","id":"b188d139-a966-4327-96e6-e2c968c284aa","name":"Letterhead API","type":"collection"}},"urlObject":{"protocol":"https","path":["api","v3","audience"],"host":["{{serverPrefix}}","api","tryletterhead","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"62908198-a987-48da-9591-8b887b50d0a8"},{"name":"List Segments","event":[{"listen":"test","script":{"id":"1f2279a1-6b35-4dfc-bc37-cae99c0709e4","exec":["pm.test(\"Status code is 200\", function () {\r","    pm.response.to.have.status(200);\r","});"],"type":"text/javascript","packages":{},"requests":{}}}],"id":"01251bba-1d4a-4621-96d3-608271a74107","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://{{serverPrefix}}.api.tryletterhead.com/api/v3/audience/segments?api=true","description":"<p>List your custom audience <strong>segments</strong> across all of your channels. At present, our API doesn't include <em>dynamic</em> segments that Letterhead provides. Our <strong>v3</strong> API requires a company-level API key.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{apiKey}}"}]},"isInherited":true,"source":{"_postman_id":"b188d139-a966-4327-96e6-e2c968c284aa","id":"b188d139-a966-4327-96e6-e2c968c284aa","name":"Letterhead API","type":"collection"}},"urlObject":{"protocol":"https","path":["api","v3","audience","segments"],"host":["{{serverPrefix}}","api","tryletterhead","com"],"query":[{"key":"api","value":"true"}],"variable":[]}},"response":[{"id":"678cf7e5-2cdb-4af8-a7d7-7de9be01ee37","name":"List Segments","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://{{serverPrefix}}.api.tryletterhead.com/api/v3/audience/segments?api=true","protocol":"https","host":["{{serverPrefix}}","api","tryletterhead","com"],"path":["api","v3","audience","segments"],"query":[{"key":"api","value":"true"}]}},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"server","value":"nginx/1.27.3"},{"key":"content-type","value":"application/json"},{"key":"x-powered-by","value":"PHP/7.4.33"},{"key":"access-control-allow-origin","value":"*"},{"key":"access-control-allow-credentials","value":"true"},{"key":"access-control-max-age","value":"86400"},{"key":"cache-control","value":"no-cache, private"},{"key":"date","value":"Thu, 16 Apr 2026 19:04:43 GMT"},{"key":"via","value":"1.1 google"},{"key":"Alt-Svc","value":"h3=\":443\"; ma=2592000"},{"key":"Transfer-Encoding","value":"chunked"}],"cookie":[],"responseTime":null,"body":"{\n    \"items\": [\n        {\n            \"uniqueId\": 1,\n            \"channel\": \"black-bitter-coffee\",\n            \"name\": \"Testaroo\",\n            \"createdAt\": \"2025-07-24 01:28:39\",\n            \"updatedAt\": \"2025-11-15 03:00:31\",\n            \"criteria\": [\n                {\n                    \"attribute\": \"tags\",\n                    \"category\": \"tags\",\n                    \"operator\": \"IN\",\n                    \"value\": [\n                        \"Staff\"\n                    ]\n                },\n                {\n                    \"attribute\": \"tags\",\n                    \"category\": \"tags\",\n                    \"operator\": \"IN\",\n                    \"value\": [\n                        \"Border-collies\"\n                    ]\n                },\n                {\n                    \"attribute\": \"age\",\n                    \"category\": \"commonFields\",\n                    \"operator\": \">\",\n                    \"value\": \"3\"\n                }\n            ],\n            \"isOrBoolean\": false\n        },\n    ],\n    \"message\": \"\",\n    \"total\": 1\n}"}],"_postman_id":"01251bba-1d4a-4621-96d3-608271a74107"}],"id":"49bc0f32-593c-4c6d-91a8-c6ae32b7217f","_postman_id":"49bc0f32-593c-4c6d-91a8-c6ae32b7217f","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{apiKey}}"}]},"isInherited":true,"source":{"_postman_id":"b188d139-a966-4327-96e6-e2c968c284aa","id":"b188d139-a966-4327-96e6-e2c968c284aa","name":"Letterhead API","type":"collection"}}},{"name":"Automations","item":[{"name":"Change automation template","event":[{"listen":"test","script":{"id":"3ad8afd0-ce38-44f7-b5da-43f6192cb901","exec":["// ---- Change automation template: success response validations (200) ----","","pm.test(\"Response is JSON\", function () {","  pm.response.to.be.json;","});","","const json = pm.response.json();","","pm.test(\"Body has keys: items, message, total\", function () {","  pm.expect(json).to.be.an(\"object\");","  pm.expect(json).to.have.property(\"items\");","  pm.expect(json).to.have.property(\"message\");","  pm.expect(json).to.have.property(\"total\");","});","","pm.test(\"items is null\", function () {","  // For the 422 response, the API returns items as an array (often empty)","  pm.expect(pm.response.code).to.equal(422);","  pm.expect(json.items).to.be.an(\"array\");","});","","pm.test(\"total is number 0\", function () {","  pm.expect(json.total).to.be.a(\"number\");","  pm.expect(json.total).to.equal(0);","});","","pm.test(\"message is a string\", function () {","  pm.expect(json.message).to.be.a(\"string\");","});","","pm.test(\"If status is 200, message is exact success string\", function () {","  if (pm.response.code === 200) {","    pm.expect(json.message).to.equal(\"Automation template has been updated\");","  } else {","    // Not a failure for non-200 runs; this script is focused on the 200 example.","    pm.expect(true).to.equal(true);","  }","});",""],"type":"text/javascript","packages":{},"requests":{}}}],"id":"4afb5bf1-c2eb-4fcf-9b0a-29c59050786f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"api","value":"true","description":"<p><strong>required</strong> | When set to <code>true</code>, this endpoint will accept authorization with your API Key.</p>\n","type":"text","uuid":"7d4032a7-510f-491e-8002-a0ba68aa5a9d"},{"key":"templateId","value":"abcdefhik","description":"<p><strong>required</strong> | <code>string</code> | The identifier of the template to set for the automation.</p>\n","type":"text","uuid":"74f0f70a-f7ca-4ad4-a57f-77261f34a0eb"}]},"url":"https://{{serverPrefix}}.api.tryletterhead.com/api/v3/automations/{{automationUniqueId}}/actions/change-template","description":"<p>Using the <strong>v3 API</strong>, which requires a key generated from the company-level, this endpoint allows you to change the active template of an automation.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{apiKey}}"}]},"isInherited":true,"source":{"_postman_id":"b188d139-a966-4327-96e6-e2c968c284aa","id":"b188d139-a966-4327-96e6-e2c968c284aa","name":"Letterhead API","type":"collection"}},"urlObject":{"protocol":"https","path":["api","v3","automations","{{automationUniqueId}}","actions","change-template"],"host":["{{serverPrefix}}","api","tryletterhead","com"],"query":[],"variable":[]}},"response":[{"id":"e06c5a92-8f88-4ebb-b990-0ba687f55a61","name":"200 Success","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\"items\":null,\"message\":\"Automation template has been updated\",\"total\":0}","options":{"raw":{"language":"json"}}},"url":"https://{{serverPrefix}}.api.tryletterhead.com/api/v3/automations/{{automationUuid}}/actions/change-active-template"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","enabled":true}],"cookie":[],"responseTime":null,"body":"{\"items\":null,\"message\":\"Automation template has been updated\",\"total\":0}"},{"id":"856da0b3-77ad-4741-ab02-55f33de162e2","name":"400 Template not found","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\"items\":null,\"message\":\"Template with ID {templateId} not found.\",\"total\":0}","options":{"raw":{"language":"json"}}},"url":"https://{{serverPrefix}}.api.tryletterhead.com/api/v3/automations/{{automationUuid}}/actions/change-active-template"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","enabled":true}],"cookie":[],"responseTime":null,"body":"{\"items\":null,\"message\":\"Template with ID {templateId} not found.\",\"total\":0}"},{"id":"2dc5a2c1-b861-436d-9606-bddb2cd2259f","name":"404 Automation not found","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\"items\":null,\"message\":\"RecordNotFoundException — \\\"Automation with unique ID {uniqueId} not found.\\\"\",\"total\":0}","options":{"raw":{"language":"json"}}},"url":"https://{{serverPrefix}}.api.tryletterhead.com/api/v3/automations/{{automationUuid}}/actions/change-active-template"},"status":"Not Found","code":404,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","enabled":true}],"cookie":[],"responseTime":null,"body":"{\"items\":null,\"message\":\"RecordNotFoundException — \\\"Automation with unique ID {uniqueId} not found.\\\"\",\"total\":0}"},{"id":"e875ab25-f747-485c-bc9a-bf599925ba73","name":"422 Automation not in error state","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\"items\":null,\"message\":\"Cannot change template for automation {uniqueId}: automation is not in error state.\",\"total\":0}","options":{"raw":{"language":"json"}}},"url":"https://{{serverPrefix}}.api.tryletterhead.com/api/v3/automations/{{automationUuid}}/actions/change-active-template"},"status":"Unprocessable Entity (WebDAV) (RFC 4918)","code":422,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","enabled":true}],"cookie":[],"responseTime":null,"body":"{\"items\":null,\"message\":\"Cannot change template for automation {uniqueId}: automation is not in error state.\",\"total\":0}"},{"id":"fcdae63a-22f7-44ea-8a23-81e22741f231","name":"400 Template not active","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\"items\":null,\"message\":\"Template {templateId} is not active.\",\"total\":0}","options":{"raw":{"language":"json"}}},"url":"https://{{serverPrefix}}.api.tryletterhead.com/api/v3/automations/{{automationUuid}}/actions/change-active-template"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","enabled":true}],"cookie":[],"responseTime":null,"body":"{\"items\":null,\"message\":\"Template {templateId} is not active.\",\"total\":0}"}],"_postman_id":"4afb5bf1-c2eb-4fcf-9b0a-29c59050786f"},{"name":"Reactivate and Restart Automation","event":[{"id":"cce5658b-034e-42dc-a064-ef9f957b62da","listen":"test","script":{"id":"0d09a9c6-f22b-4345-8480-ef461d6354d3","exec":["// Prod smoke monitor tests for \"Reactivate and Restart Automation\"","// Goal: PASS only on 202. Explicitly FAIL on 404. Keep robust JSON / Content-Type assertions.","","pm.test(\"Status code is 202 (only passing status)\", function () {","  pm.expect(pm.response.code, `Expected 202 but got ${pm.response.code}`).to.eql(202);","});","","pm.test(\"Does not return 404\", function () {","  pm.expect(pm.response.code, \"404 indicates automation/template not found\").to.not.eql(404);","});","","pm.test(\"Content-Type is JSON\", function () {","  const ct = pm.response.headers.get(\"Content-Type\") || pm.response.headers.get(\"content-type\") || \"\";","  pm.expect(ct.toLowerCase()).to.include(\"application/json\");","});","","let json;","pm.test(\"Response body is valid JSON\", function () {","  pm.expect(function () { json = pm.response.json(); }).to.not.throw();","  pm.expect(json).to.be.an(\"object\");","});","","// Validate 202 response contract","pm.test(\"202 contract: keys message/items/total\", function () {","  pm.expect(pm.response.code).to.eql(202);","","  // Ensure json has been parsed even if previous test failed/was skipped","  if (!json) json = pm.response.json();","","  pm.expect(json).to.have.property(\"message\");","  pm.expect(json.message).to.be.a(\"string\").and.to.have.length.greaterThan(0);","","  pm.expect(json).to.have.property(\"items\");","  // In the 202 case, items may be null (no items to return) or an array","  pm.expect(json.items === null || Array.isArray(json.items), \"items should be null or an array\").to.eql(true);","","  pm.expect(json).to.have.property(\"total\");","  pm.expect(json.total).to.be.a(\"number\");","","  // Basic consistency check only when items is an array","  if (Array.isArray(json.items)) {","    pm.expect(json.total).to.eql(json.items.length);","","    // Ensure each item is an object (avoid overfitting to specific item fields)","    json.items.forEach((item) => pm.expect(item).to.be.an(\"object\"));","  }","});",""],"type":"text/javascript","packages":{},"requests":{}}}],"id":"ca06b3ca-7cec-4e8b-b8c7-31015a279543","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"api","value":"true","description":"<p><strong>required</strong> | When set to <code>true</code>, this endpoint will accept authorization with your API Key.</p>\n","type":"text","uuid":"beab2c67-f373-4e27-93a9-9de9bf788e1a"}]},"url":"https://{{serverPrefix}}.api.tryletterhead.com/api/v3/automations/{{automationUniqueId}}/actions/reactivate-and-restart","description":"<p>This endpoint restarts the specified automation, in the event that as part of editorial -- someone didn't republish a change -- the automation disabled itself. Yep - this is a pretty specific use-case. The unpublished template will be published and then subsequently available to future automation use - and then the automation itself will be re-enabled.</p>\n<p>Our <code>v3</code> endpoints require a company-level API key.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{apiKey}}"}]},"isInherited":true,"source":{"_postman_id":"b188d139-a966-4327-96e6-e2c968c284aa","id":"b188d139-a966-4327-96e6-e2c968c284aa","name":"Letterhead API","type":"collection"}},"urlObject":{"protocol":"https","path":["api","v3","automations","{{automationUniqueId}}","actions","reactivate-and-restart"],"host":["{{serverPrefix}}","api","tryletterhead","com"],"query":[],"variable":[]}},"response":[{"id":"68a882dc-5087-4cfa-8d49-f700bb7ef5e9","name":"202 - Reactivated and restarted","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\"api\":true}","options":{"raw":{"language":"json"}}},"url":"https://{{serverPrefix}}.api.tryletterhead.com/api/v3/automations/{{automationUuid}}/actions/reactivate-and-restart"},"status":"Accepted","code":202,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","enabled":true}],"cookie":[],"responseTime":null,"body":"{\n  \"items\": null,\n  \"message\": \"Automation reactivated and restarted successfully\",\n  \"total\": 0\n}"}],"_postman_id":"ca06b3ca-7cec-4e8b-b8c7-31015a279543"}],"id":"19055b69-94c3-421d-9ad1-610a1f030a10","description":"<p>Our <strong>Letters API</strong> -- <code>api/v2/letters/...</code> -- allows developers to interact with an organization's newsletters outside of the constraint of its Channel.</p>\n","_postman_id":"19055b69-94c3-421d-9ad1-610a1f030a10","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{apiKey}}"}]},"isInherited":true,"source":{"_postman_id":"b188d139-a966-4327-96e6-e2c968c284aa","id":"b188d139-a966-4327-96e6-e2c968c284aa","name":"Letterhead API","type":"collection"}}},{"name":"Curations","item":[{"name":"v3","item":[{"name":"Curate","event":[{"listen":"test","script":{"id":"bcfadc1b-a4e8-47f5-a458-680b40b5817e","exec":["pm.test(\"Status code is 2xx\", function () {","    pm.expect(pm.response.code).to.be.within(200, 299);","});","","pm.test(\"Response body has total === 1\", function () {","    const jsonData = pm.response.json();","    pm.expect(jsonData).to.have.property(\"total\");","    pm.expect(jsonData.total).to.eql(1);","});",""],"type":"text/javascript","packages":{},"requests":{}}}],"id":"cf1c9923-3d8b-42d8-951c-d87a2e1ee290","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"api","value":"true","description":"<p><strong>required</strong> | When <code>true</code>, instructs the endpoint that you're authenticating with an organization key as opposed to some other method. In almost all cases you will want to set this value to <code>true</code>. </p>\n","type":"text","uuid":"98cdc92b-593f-4d28-82b5-5ab0c70955fa"},{"key":"channels[]","value":"{{channel}}","description":"<p><strong>required</strong> | <code>string[]</code> | An array of channel identifiers (or channel \"slugs\") across which to create a curation.</p>\n","type":"text","uuid":"a3e57a4e-84a3-461d-b543-6b563c1c660c"},{"key":"url","value":"https://css-tricks.com/whats-important-7","description":"<p><strong>required</strong> | URL to the content you would like Letterhead to crawl. We will fetch what we can glean from the site's Open Graph. </p>\n","type":"text","uuid":"fdd27d16-d723-4846-a871-85f8334f16e3"},{"key":"author","value":"","description":"<p><strong>optional</strong>  | The author of the piece of content.</p>\n","type":"text","uuid":"55d1a49b-3e04-40cb-aad1-ff811eb04af2"},{"key":"customFields[my-field]","value":"","description":"<p><strong>optional</strong> | <code>string</code> | Pass a custom field name and it's string value to store it with your curation. Note: Letterhead accepts only fields that are declared in your company curation settings. Other fields will be ignored. Custom fields are <code>lowercase-and-sluggified</code>. Example: \"Sponsor Name\" becomes <code>sponsor-name</code>.</p>\n","type":"text","uuid":"d5a6ef2a-1e3f-44c4-8461-0019faf0135e"},{"key":"content","value":"","description":"<p><strong>optional</strong> | <code>html</code> content for the curation, only <code>p</code> and formatting elements are allowed. You would use this if </p>\n","type":"text","uuid":"0e1a3568-f09a-4a06-8e65-b21a75a0f755"},{"key":"excerpt","value":"","description":"<p><strong>optional</strong> | Plain text excerpt of the curated content. Will overwrite what we fetch from the URL.</p>\n","type":"text","uuid":"ec40f2f7-c38d-48ba-9707-f8dd3ecad142"},{"key":"image","value":"","description":"<p><strong>optional</strong> | The URL of a featured image to associate with this piece of content.</p>\n","type":"text","uuid":"afdb67b3-fb9f-48d8-a732-d2856c6740d6"},{"key":"imageAlt","value":"","description":"<p><strong>optional</strong> | <code>string[]</code></p>\n","type":"text","uuid":"3f8ded4e-5159-4e04-be18-3137e8b9d3f4"},{"key":"imageCaption","value":"","description":"<p><strong>optional</strong> | <code>string[]</code></p>\n","type":"text","uuid":"f96048b2-d580-4b55-ab3f-79debfddbe9b"},{"key":"siteName","value":"","description":"<p><strong>optional</strong> | The name of the site the curated content originated from.</p>\n","type":"text","uuid":"485bf1f6-8aec-42e9-b90f-5c851c7e7ce8"},{"key":"publicationDate","value":"","description":"<p><strong>optional</strong> | The <code>Y-md H:i:s</code> formatted date of publication.</p>\n","type":"text","uuid":"17f8ff16-cff2-4bff-83c6-38cae36c278a"},{"key":"tags","value":"","description":"<p><strong>optional</strong> | <code>string[]</code> | An optional array of <code>string</code> tags with which to associate this piece of content. Example: <code>['dogs', 'canines']</code></p>\n","type":"text","uuid":"44dc46ef-31a5-4480-aef6-ff4dbd12c6eb"},{"key":"title","value":"","description":"<p><strong>optional</strong> | Title of the curated content. Will overwrite what we fetch from the URL.</p>\n","type":"text","uuid":"57b7338f-2e47-4cbf-8b84-67a0177e9062"}]},"url":"https://{{serverPrefix}}.api.tryletterhead.com/api/v3/curations","description":"<p>Create a curation for any channel within the company. Note that the <code>v3</code> api requires a key generated from within the company-level settings.</p>\n<p>Provided that you are curating the same <code>url</code>, Letterhead will not create a <em>duplicate</em> curation, and you can use this endpoint to also update one if it is already in the system.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{apiKey}}"}]},"isInherited":true,"source":{"_postman_id":"b188d139-a966-4327-96e6-e2c968c284aa","id":"b188d139-a966-4327-96e6-e2c968c284aa","name":"Letterhead API","type":"collection"}},"urlObject":{"protocol":"https","path":["api","v3","curations"],"host":["{{serverPrefix}}","api","tryletterhead","com"],"query":[],"variable":[]}},"response":[{"id":"b47beab6-433d-46f7-9305-cac0179f31d8","name":"Curate","originalRequest":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"api","value":"true","description":"**required** | When `true`, instructs the endpoint that you're authenticating with an organization key as opposed to some other method. In almost all cases you will want to set this value to `true`. ","type":"text","uuid":"98cdc92b-593f-4d28-82b5-5ab0c70955fa"},{"key":"channels[]","value":"{{channel}}","description":"**required** | `string[]` | An array of channel identifiers (or channel \"slugs\") across which to create a curation.","type":"text","uuid":"a3e57a4e-84a3-461d-b543-6b563c1c660c"},{"key":"url","value":"https://css-tricks.com/whats-important-7","description":"**required** | URL to the content you would like Letterhead to crawl. We will fetch what we can glean from the site's Open Graph. ","type":"text","uuid":"fdd27d16-d723-4846-a871-85f8334f16e3"},{"key":"author","value":"","description":"**optional**  | The author of the piece of content.","type":"text","uuid":"55d1a49b-3e04-40cb-aad1-ff811eb04af2"},{"key":"customFields[my-field]","value":"","description":"**optional** | `string` | Pass a custom field name and it's string value to store it with your curation. Note: Letterhead accepts only fields that are declared in your company curation settings. Other fields will be ignored. Custom fields are `lowercase-and-sluggified`. Example: \"Sponsor Name\" becomes `sponsor-name`.","type":"text","uuid":"d5a6ef2a-1e3f-44c4-8461-0019faf0135e"},{"key":"content","value":"","description":"**optional** | `html` content for the curation, only `p` and formatting elements are allowed. You would use this if ","type":"text","uuid":"0e1a3568-f09a-4a06-8e65-b21a75a0f755"},{"key":"excerpt","value":"","description":"**optional** | Plain text excerpt of the curated content. Will overwrite what we fetch from the URL.","type":"text","uuid":"ec40f2f7-c38d-48ba-9707-f8dd3ecad142"},{"key":"image","value":"","description":"**optional** | The URL of a featured image to associate with this piece of content.","type":"text","uuid":"afdb67b3-fb9f-48d8-a732-d2856c6740d6"},{"key":"imageAlt","value":"","description":"**optional** | `string[]`","type":"text","uuid":"3f8ded4e-5159-4e04-be18-3137e8b9d3f4"},{"key":"imageCaption","value":"","description":"**optional** | `string[]`","type":"text","uuid":"f96048b2-d580-4b55-ab3f-79debfddbe9b"},{"key":"siteName","value":"","description":"**optional** | The name of the site the curated content originated from.","type":"text","uuid":"485bf1f6-8aec-42e9-b90f-5c851c7e7ce8"},{"key":"publicationDate","value":"","description":"**optional** | The `Y-md H:i:s` formatted date of publication.","type":"text","uuid":"17f8ff16-cff2-4bff-83c6-38cae36c278a"},{"key":"tags","value":"","description":"**optional** | `string[]` | An optional array of `string` tags with which to associate this piece of content. Example: `['dogs', 'canines']`","type":"text","uuid":"44dc46ef-31a5-4480-aef6-ff4dbd12c6eb"},{"key":"title","value":"","description":"**optional** | Title of the curated content. Will overwrite what we fetch from the URL.","type":"text","uuid":"57b7338f-2e47-4cbf-8b84-67a0177e9062"}]},"url":"https://{{serverPrefix}}.api.tryletterhead.com/api/v3/curations"},"status":"Created","code":201,"_postman_previewlanguage":null,"header":[{"key":"server","value":"nginx/1.27.3"},{"key":"content-type","value":"application/json"},{"key":"x-powered-by","value":"PHP/7.4.33"},{"key":"access-control-allow-origin","value":"*"},{"key":"access-control-allow-credentials","value":"true"},{"key":"access-control-max-age","value":"86400"},{"key":"cache-control","value":"no-cache, private"},{"key":"date","value":"Thu, 16 Apr 2026 19:26:08 GMT"},{"key":"via","value":"1.1 google"},{"key":"Alt-Svc","value":"h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000"},{"key":"Transfer-Encoding","value":"chunked"}],"cookie":[],"responseTime":null,"body":"{\n    \"items\": {\n        \"archived\": false,\n        \"archiveDate\": \"2026-05-16\",\n        \"author\": \"\",\n        \"content\": \"\",\n        \"createdAt\": \"2026-04-16 18:47:02\",\n        \"curated\": true,\n        \"dateOfAggregatePublication\": \"2026-04-16 19:26:07\",\n        \"excerpt\": \"\",\n        \"feedUniqueId\": \"\",\n        \"image\": \"\",\n        \"imageAlt\": \"\",\n        \"imageCaption\": \"\",\n        \"originalUrl\": \"https://css-tricks.com/whats-important-7\",\n        \"organizationId\": 0,\n        \"publicationDate\": \"2026-04-16 19:26:07\",\n        \"siteName\": \"\",\n        \"source\": 0,\n        \"title\": \"\",\n        \"type\": 0,\n        \"uniqueId\": \"myy0qwwlzu\",\n        \"updatedAt\": \"2026-04-16 19:26:07\",\n        \"customFields\": {\n            \"sponsor-name\": \"Alx Michaelson\"\n        },\n        \"tags\": []\n    },\n    \"message\": \"Curation created.\",\n    \"total\": 1\n}"}],"_postman_id":"cf1c9923-3d8b-42d8-951c-d87a2e1ee290"},{"name":"Curate in bulk","event":[{"listen":"test","script":{"id":"0fb53439-e080-418b-87e6-dabfd1bef325","exec":["pm.test(\"Status code is 202 Accepted\", function () {","    pm.response.to.have.status(202);","});",""],"type":"text/javascript","packages":{},"requests":{}}}],"id":"5fe1efa0-727b-4ba9-af0b-1b7afa335466","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"api\": true,\n  \"curations\": [\n    {\n      \"url\": \"https://example.com/article-one\",\n      \"title\": \"First Article\",\n      \"channels\": [\n        \"{{channel}}\"\n      ]\n    },\n    {\n      \"url\": \"https://example.com/article-two\",\n      \"title\": \"Second Article\",\n      \"excerpt\": \"A brief summary of the second article.\",\n      \"tags\": [\n        \"politics\",\n        \"local\"\n      ],\n      \"overwriteTags\": true\n    },\n    {\n      \"url\": \"https://example.com/article-three\",\n      \"channels\": [\n        \"{{channel}}\"\n      ]\n    }\n  ]\n}","options":{"raw":{"language":"json"}}},"url":"https://{{serverPrefix}}.api.tryletterhead.com/api/v3/curations/bulk","description":"<p>Create multiple curations for any channel within the company. Note that the <code>v3</code> api requires a key generated from within the company-level settings.</p>\n<p>Provided that you are curating the same <code>url</code>, Letterhead will not create a <em>duplicate</em> curation, and you can use this endpoint to also update one if it is already in the system.</p>\n<p>It accepts the same parameters as the <code>Curate</code> endpoint.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{apiKey}}"}]},"isInherited":true,"source":{"_postman_id":"b188d139-a966-4327-96e6-e2c968c284aa","id":"b188d139-a966-4327-96e6-e2c968c284aa","name":"Letterhead API","type":"collection"}},"urlObject":{"protocol":"https","path":["api","v3","curations","bulk"],"host":["{{serverPrefix}}","api","tryletterhead","com"],"query":[],"variable":[]}},"response":[{"id":"ce5167cf-07bf-4435-b0d5-7a11a0bf9d91","name":"202 Accepted","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"curations\": [\n    {\n      \"url\": \"https://example.com/article-one\",\n      \"title\": \"First Article\",\n      \"channels\": [\"news\", \"tech\"]\n    },\n    {\n      \"url\": \"https://example.com/article-two\",\n      \"title\": \"Second Article\",\n      \"excerpt\": \"A brief summary of the second article.\",\n      \"tags\": [\"politics\", \"local\"],\n      \"overwriteTags\": true\n    },\n    {\n      \"url\": \"https://example.com/article-three\",\n      \"channels\": [\"sports\"]\n    }\n  ]\n}","options":{"raw":{"language":"json"}}},"url":"https://{{serverPrefix}}.tryletterhead.com/api/v3/curations/bulk"},"status":"Accepted","code":202,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","enabled":true}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"3 curations accepted for processing\",\n    \"status\": 202,\n    \"total\": 4\n}\n"}],"_postman_id":"5fe1efa0-727b-4ba9-af0b-1b7afa335466"},{"name":"Discover (beta)","id":"60146007-081a-49a7-8f43-63e2d1dc48c9","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"api","value":"true","description":"<p><strong>required</strong> | When <code>true</code>, instructs the endpoint that you're authenticating with an organization key as opposed to some other method. In almost all cases you will want to set this value to <code>true</code>. </p>\n","type":"text","uuid":"98cdc92b-593f-4d28-82b5-5ab0c70955fa"},{"key":"channels[]","value":"letterhead-example-newsletter","description":"<p><strong>required</strong> | <code>string[]</code> | An array of channel identifiers (or channel \"slugs\") across which to create a curation.</p>\n","type":"text","uuid":"bf12352a-fa2b-4988-9c59-ed32ee078eba"},{"key":"count","value":"1","description":"<p><strong>required</strong> | The number of articles you want Letterhead to try to curate for you. Minimum 1, maximum 10.</p>\n","type":"text","uuid":"57b7338f-2e47-4cbf-8b84-67a0177e9062"},{"key":"subject","value":"Coffee Bean Growth","description":"<p><strong>required</strong> | The subject for Letterhead to search.</p>\n","type":"text","uuid":"f0414606-c95a-444f-9889-253be7bf93fc"}]},"url":"https://{{serverPrefix}}.api.tryletterhead.com/api/v3/curations/discover","description":"<p>Given a subject, Letterhead will try to curate a number of relevant articles to the <code>channels</code> you instruct the API. We try to ensure they are relevant and recent, but <strong>please note this API is in beta</strong>, and we can't guarantee that these curations will always hit the mark.</p>\n<p>Note that the <code>v3</code> api requires a key generated from within the company-level settings, which are available only to Letterhead customers on a certain plan.</p>\n<p><strong>Version note</strong>: at present, you can only pass <em>one</em> channel identifier to <code>channels</code>. Shortly, you will able to pass multiple, or <em>none</em> - which will represent \"all channels.\"</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{apiKey}}"}]},"isInherited":true,"source":{"_postman_id":"b188d139-a966-4327-96e6-e2c968c284aa","id":"b188d139-a966-4327-96e6-e2c968c284aa","name":"Letterhead API","type":"collection"}},"urlObject":{"protocol":"https","path":["api","v3","curations","discover"],"host":["{{serverPrefix}}","api","tryletterhead","com"],"query":[],"variable":[]}},"response":[{"id":"a8197c5e-f057-4c27-bae7-8c5e5d46551f","name":"Discover (beta)","originalRequest":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"api","value":"true","description":"**required** | When `true`, instructs the endpoint that you're authenticating with an organization key as opposed to some other method. In almost all cases you will want to set this value to `true`. ","type":"text","uuid":"98cdc92b-593f-4d28-82b5-5ab0c70955fa"},{"key":"channels[]","value":"letterhead-example-newsletter","description":"**required** | `string[]` | An array of channel identifiers (or channel \"slugs\") across which to create a curation.","type":"text","uuid":"bf12352a-fa2b-4988-9c59-ed32ee078eba"},{"key":"count","value":"3","description":"**required** | The number of articles you want Letterhead to try to curate for you. Minimum 1, maximum 10.","type":"text","uuid":"57b7338f-2e47-4cbf-8b84-67a0177e9062"},{"key":"subject","value":"Florida Panthers","description":"**required** | The subject for Letterhead to search.","type":"text","uuid":"f0414606-c95a-444f-9889-253be7bf93fc"}]},"url":"https://{{serverPrefix}}.api.tryletterhead.com/api/v3/curations/discover"},"_postman_previewlanguage":"","header":[],"cookie":[{"expires":"Invalid Date","domain":"","path":""}],"responseTime":null,"body":"{\r\n    \"items\": [\r\n        \"https:\\/\\/www.reuters.com\\/sports\\/nhl\\/sergei-bobrovsky-panthers-shut-out-kings-2025-01-30\\/\",\r\n        \"https:\\/\\/apnews.com\\/article\\/1d6c30f9baef4cd7126a4697080a1653\",\r\n        \"https:\\/\\/www.axios.com\\/local\\/miami\\/2025\\/06\\/18\\/florida-panthers-stanley-cup-win\"\r\n    ],\r\n    \"message\": \"We found and are curating recent stories for you around Florida Panthers.\",\r\n    \"total\": 3\r\n}"}],"_postman_id":"60146007-081a-49a7-8f43-63e2d1dc48c9"},{"name":"Update curation","id":"a3ce71ed-e1a8-48df-b2d8-9cdafe3f9022","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"api","value":"true","description":"<p><strong>required</strong> | When <code>true</code>, instructs the endpoint that you're authenticating with an organization key as opposed to some other method. In almost all cases you will want to set this value to <code>true</code>. </p>\n","type":"text","uuid":"98cdc92b-593f-4d28-82b5-5ab0c70955fa"},{"key":"url","value":"https://letterhead.ai","description":"<p><strong>required</strong> | URL to the content you would like Letterhead to crawl. We will fetch what we can glean from the site's Open Graph. </p>\n","type":"text","uuid":"fdd27d16-d723-4846-a871-85f8334f16e3"},{"key":"channels[]","value":"letterhead-example-newsletter","description":"<p><strong>required</strong> | <code>string[]</code> | An array of channel identifiers (or channel \"slugs\") across which to create a curation.</p>\n","type":"text","uuid":"5c4aa0a3-1ec7-4d50-8c14-4851c17a3ad5"},{"key":"content","value":"","description":"<p><strong>optional</strong> | <code>html</code> content for the curation, only <code>p</code> and formatting elements are allowed. You would use this if </p>\n","type":"text","uuid":"0e1a3568-f09a-4a06-8e65-b21a75a0f755"},{"key":"excerpt","value":"","description":"<p><strong>optional</strong> | Plain text excerpt of the curated content. Will overwrite what we fetch from the URL.</p>\n","type":"text","uuid":"ec40f2f7-c38d-48ba-9707-f8dd3ecad142"},{"key":"image","value":"","description":"<p><strong>optional</strong> | The URL of a featured image to associate with this piece of content.</p>\n","type":"text","uuid":"afdb67b3-fb9f-48d8-a732-d2856c6740d6"},{"key":"siteName","value":"","description":"<p><strong>optional</strong> | The name of the site the curated content originated from.</p>\n","type":"text","uuid":"485bf1f6-8aec-42e9-b90f-5c851c7e7ce8"},{"key":"publicationDate","value":"","description":"<p><strong>optional</strong> | The <code>Y-md H:i:s</code> formatted date of publication.</p>\n","type":"text","uuid":"17f8ff16-cff2-4bff-83c6-38cae36c278a"},{"key":"tags","value":"","description":"<p><strong>optional</strong> | <code>string[]</code> | An optional array of <code>string</code> tags with which to associate this piece of content. Example: <code>['dogs', 'canines']</code></p>\n","type":"text","uuid":"44dc46ef-31a5-4480-aef6-ff4dbd12c6eb"},{"key":"title","value":"","description":"<p><strong>optional</strong> | Title of the curated content. Will overwrite what we fetch from the URL.</p>\n","type":"text","uuid":"57b7338f-2e47-4cbf-8b84-67a0177e9062"}]},"url":"https://{{serverPrefix}}.api.tryletterhead.com/api/v3/curations","description":"<p>Create a curation for any channel within the company. Note that the <code>v3</code> api requires a key generated from within the company-level settings, which are available only to folks with that given plan.</p>\n<p>Provided that you are curating the same <code>url</code>, Letterhead will not create a <em>duplicate</em> curation, and you can use this endpoint to also update one if it is already in the system.</p>\n<p><strong>Version note</strong>: at present, you can only pass <em>one</em> channel identifier to <code>channels</code>. Shortly, you will able to pass multiple, or <em>none</em> - which will represent \"all channels.\"</p>\n<p><code>scrape</code> is not presently an option, but will be added.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{apiKey}}"}]},"isInherited":true,"source":{"_postman_id":"b188d139-a966-4327-96e6-e2c968c284aa","id":"b188d139-a966-4327-96e6-e2c968c284aa","name":"Letterhead API","type":"collection"}},"urlObject":{"protocol":"https","path":["api","v3","curations"],"host":["{{serverPrefix}}","api","tryletterhead","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"a3ce71ed-e1a8-48df-b2d8-9cdafe3f9022"}],"id":"97a1e7c8-009e-4a4d-be91-53d8a99783db","description":"<p>The <code>v3</code> API is identical to the <code>v2</code> API in almost every way other than scope. <code>v3</code> endpoints accommodate company-wide management, and require keys generated from within a company's administrative settings.</p>\n","_postman_id":"97a1e7c8-009e-4a4d-be91-53d8a99783db","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{apiKey}}"}]},"isInherited":true,"source":{"_postman_id":"b188d139-a966-4327-96e6-e2c968c284aa","id":"b188d139-a966-4327-96e6-e2c968c284aa","name":"Letterhead API","type":"collection"}}},{"name":"v2","item":[{"name":"Curate content (v2)","id":"dc79cf0a-942a-443d-bedd-cf1de3087594","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"api","value":"true","description":"<p><strong>required</strong> | When <code>true</code>, instructs the endpoint that you're authenticating with an organization key as opposed to some other method. In almost all cases you will want to set this value to <code>true</code>. </p>\n","type":"text","uuid":"98cdc92b-593f-4d28-82b5-5ab0c70955fa"},{"key":"channels[]","value":"{{channel}}","description":"<p><strong>required</strong> | <code>string[]</code> | An array of channel identifiers (or channel \"slugs\") across which to create a curation.</p>\n","type":"text","uuid":"a3e57a4e-84a3-461d-b543-6b563c1c660c"},{"key":"url","value":"https://letterhead.ai","description":"<p><strong>required</strong> | URL to the content you would like Letterhead to crawl. We will fetch what we can glean from the site's Open Graph. </p>\n","type":"text","uuid":"fdd27d16-d723-4846-a871-85f8334f16e3"},{"key":"content","value":"","description":"<p><strong>optional</strong> | <code>html</code> content for the curation, only <code>p</code> and formatting elements are allowed. You would use this if </p>\n","type":"text","uuid":"0e1a3568-f09a-4a06-8e65-b21a75a0f755"},{"key":"excerpt","value":"","description":"<p><strong>optional</strong> | Plain text excerpt of the curated content. Will overwrite what we fetch from the URL.</p>\n","type":"text","uuid":"ec40f2f7-c38d-48ba-9707-f8dd3ecad142"},{"key":"image","value":"","description":"<p><strong>optional</strong> | The URL of a featured image to associate with this piece of content.</p>\n","type":"text","uuid":"afdb67b3-fb9f-48d8-a732-d2856c6740d6"},{"key":"siteName","value":"","description":"<p><strong>optional</strong> | The name of the site the curated content originated from.</p>\n","type":"text","uuid":"485bf1f6-8aec-42e9-b90f-5c851c7e7ce8"},{"key":"publicationDate","value":"","description":"<p><strong>optional</strong> | The <code>Y-md H:i:s</code> formatted date of publication.</p>\n","type":"text","uuid":"17f8ff16-cff2-4bff-83c6-38cae36c278a"},{"key":"tags","value":"","description":"<p><strong>optional</strong> | <code>string[]</code> | An optional array of <code>string</code> tags with which to associate this piece of content. Example: <code>['dogs', 'canines']</code></p>\n","type":"text","uuid":"44dc46ef-31a5-4480-aef6-ff4dbd12c6eb"},{"key":"title","value":"","description":"<p><strong>optional</strong> | Title of the curated content. Will overwrite what we fetch from the URL.</p>\n","type":"text","uuid":"57b7338f-2e47-4cbf-8b84-67a0177e9062"}]},"url":"https://{{serverPrefix}}.api.tryletterhead.com/api/v2/curations","description":"<p>Create a curation for any channel within an organization. Note that the <code>v2</code> api requires a key generated from within the organization-level settings.</p>\n<p>Provided that you are curating the same <code>url</code>, Letterhead will not create a <em>duplicate</em> curation, and you can use this endpoint to also update one if it is already in the system.</p>\n<p><strong>Version note</strong>: at present, you can only pass <em>one</em> channel identifier to <code>channels</code>. Shortly, you will able to pass multiple, or <em>none</em> - which will represent \"all channels.\"</p>\n<p><code>scrape</code> is not presently an option, but will be added.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{apiKey}}"}]},"isInherited":true,"source":{"_postman_id":"b188d139-a966-4327-96e6-e2c968c284aa","id":"b188d139-a966-4327-96e6-e2c968c284aa","name":"Letterhead API","type":"collection"}},"urlObject":{"protocol":"https","path":["api","v2","curations"],"host":["{{serverPrefix}}","api","tryletterhead","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"dc79cf0a-942a-443d-bedd-cf1de3087594"}],"id":"c367b465-32b6-46c5-b169-df8182a41280","description":"<p>The <code>v2</code> API and the <code>v3</code> API are almost identical except for scope. The <code>v2</code> API accommodates organization-wide management, and requires keys generated from the organization level.</p>\n","_postman_id":"c367b465-32b6-46c5-b169-df8182a41280","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{apiKey}}"}]},"isInherited":true,"source":{"_postman_id":"b188d139-a966-4327-96e6-e2c968c284aa","id":"b188d139-a966-4327-96e6-e2c968c284aa","name":"Letterhead API","type":"collection"}}}],"id":"abbbf164-a65e-4074-8f74-e50dba1fb01b","description":"<p><em><strong>Curations</strong></em> allow companies to <a href=\"https://letterhead.ai/automatable-curations\">distribute content across one or more newsletters</a>. While there are curation endpoints under the <a href=\"https://tryletterhead.postman.co/workspace/7c42fa58-9499-4bd1-8bc4-f8bac8d5cf99/folder/39607124-e35858bc-6896-46af-9d65-2df9413d9f1b?action=share&amp;source=copy-link&amp;creator=17084946&amp;ctx=documentation\"><i>Channels</i></a> namespace that allow users to manage a specific channel's content, this top-level endpoint allows for curations management across the entire company.</p>\n","_postman_id":"abbbf164-a65e-4074-8f74-e50dba1fb01b","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{apiKey}}"}]},"isInherited":true,"source":{"_postman_id":"b188d139-a966-4327-96e6-e2c968c284aa","id":"b188d139-a966-4327-96e6-e2c968c284aa","name":"Letterhead API","type":"collection"}}},{"name":"Channels","item":[{"name":"v3","item":[{"name":"Delete a channel","id":"8f43683e-6d1b-4ae9-8a05-0f493fcd63c3","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"body":{"mode":"formdata","formdata":[{"key":"api","value":"true","description":"<p><strong>required</strong> | When set to <code>true</code>, this endpoint will accept authorization with your API Key.</p>\n","type":"text"}]},"url":"https://{{serverPrefix}}.api.tryletterhead.com/api/v3/channels/{{channel}}","description":"<p>This API deletes a channel with the provided channel identifier. Note that <code>v3</code> endpoints require company-wide level administrative keys, which prevents channel deletion on anything but the highest privileges.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{apiKey}}"}]},"isInherited":true,"source":{"_postman_id":"b188d139-a966-4327-96e6-e2c968c284aa","id":"b188d139-a966-4327-96e6-e2c968c284aa","name":"Letterhead API","type":"collection"}},"urlObject":{"protocol":"https","path":["api","v3","channels","{{channel}}"],"host":["{{serverPrefix}}","api","tryletterhead","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"8f43683e-6d1b-4ae9-8a05-0f493fcd63c3"}],"id":"860f90ab-7737-4382-aa85-040560284704","description":"<p>The <code>v3</code> API is identical to the <code>v2</code> API in almost every way other than scope. <code>v3</code> endpoints accommodate company-wide management, and require keys generated from within a company's administrative settings.</p>\n","_postman_id":"860f90ab-7737-4382-aa85-040560284704","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{apiKey}}"}]},"isInherited":true,"source":{"_postman_id":"b188d139-a966-4327-96e6-e2c968c284aa","id":"b188d139-a966-4327-96e6-e2c968c284aa","name":"Letterhead API","type":"collection"}}},{"name":"v2","item":[{"name":"Audience","item":[{"name":"Members","item":[{"name":"Deprecated | Add or update audience member","id":"6642b8e5-eb42-41ef-a54e-ea3b9c4a6629","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"channelSubscriberStatus","value":"0","description":"<p>Your subscriber's subscription status is represented by a number (we know, not super intuitive ...). Our api will reject attempts to subscribe a person who has been unsubscribed or bounced.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Status</th>\n<th>Value</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Not subscribed</td>\n<td>0</td>\n</tr>\n<tr>\n<td>Subscribed</td>\n<td>1</td>\n</tr>\n<tr>\n<td>Unsubscribed</td>\n<td>2</td>\n</tr>\n<tr>\n<td>Bounced</td>\n<td>3</td>\n</tr>\n<tr>\n<td>Pending confirmation</td>\n<td>4</td>\n</tr>\n</tbody>\n</table>\n</div>","type":"text"},{"key":"customFields[custom-field-6]","value":"Custom field value","type":"text"},{"key":"email","value":"noodle@example.com","description":"<p>The full, qualified email address of your new or existing subscriber. We use this to identify them: if we can't find a match, we'll add your person; otherwise, we'll update them - everything but the email itself.</p>\n","type":"text","contentType":""},{"key":"name","value":"Noodle the Pug II","description":"<p>Your subscriber's name. You can pass an empty value, but you must pass the key.</p>\n","type":"text"},{"key":"welcome","value":"false","description":"<p>Whether to trigger your \"Welcome letter.\" This takes effect only if you set the person's status to subscribed.</p>\n","type":"text"},{"key":"api","value":"false","description":"<p>When <code>true</code>, instructs the endpoint that you're authenticating with an organization key as opposed to some other method. In almost all cases you will want to set this value to <code>true</code>. </p>\n","type":"text"}]},"url":"https://{{serverPrefix}}.api.tryletterhead.com/api/v2/channels/{{channel}}/audience","description":"<p><strong>Deprecation notice:</strong> this endpoint has been deprecated in favor of the top-level api/v2/audience endpoint, which allows developers to manage audience members across an entire organization. This endpoint will remain available, but its features will stay limited.</p>\n<p>You can add a new or update an existing subscriber with an email address - in a limited fashion. Right now, we only let you change their subscription status and name, but we will introduce new properties soon. Please let us know what you'd like to see.</p>\n<p><strong>Note:</strong> the <code>/subscribers</code> example below can be used as an alias to <code>/audience</code> . You may have seen references to such an endpoint. It still exists in <code>v2</code>, we just prefer to use a more general \"audience\" term to reflect people who might not technically be subscribers to a newsletter.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{apiKey}}"}]},"isInherited":true,"source":{"_postman_id":"b188d139-a966-4327-96e6-e2c968c284aa","id":"b188d139-a966-4327-96e6-e2c968c284aa","name":"Letterhead API","type":"collection"}},"urlObject":{"protocol":"https","path":["api","v2","channels","{{channel}}","audience"],"host":["{{serverPrefix}}","api","tryletterhead","com"],"query":[],"variable":[]}},"response":[{"id":"3e2cd97b-f0fe-4410-984e-2323d3ed502f","name":"Adding new","originalRequest":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"email","value":"noodle@example.com","description":"The full, qualified email address of your new or existing subscriber. We use this to identify them: if we can't find a match, we'll add your person; otherwise, we'll update them - everything but the email itself.","type":"text","contentType":""},{"key":"channelSubscriberStatus","value":"4","description":"Your subscriber's subscription status is represented by a number (we know, not super intuitive ...). Our api will reject attempts to subscribe a person who has been unsubscribed or bounced.\n\n\nStatus | Value\n------  | ------\nNot subscribed | 0\nSubscribed | 1\nUnsubscribed | 2\nBounced | 3\nPending confirmation | 4","type":"text"},{"key":"name","value":"Noodle the Pug","description":"Your subscriber's name. You can pass an empty value, but you must pass the key.","type":"text"}],"options":{"raw":{"language":"javascript"}}},"url":"https://{{serverPrefix}}.tryletterhead.com/api/v2/channels/{{channel}}/audience"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Server","value":"nginx/1.14.0 (Ubuntu)"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"Access-Control-Max-Age","value":"86400"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Date","value":"Thu, 21 Oct 2021 01:51:30 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"channelSubscriberStatus\": 4,\n    \"createdAt\": \"2021-10-21 01:51:30\",\n    \"email\": \"noodle@example.com\",\n    \"name\": \"Noodle the Pug\",\n    \"updatedAt\": \"2021-10-21 01:51:30\",\n}"},{"id":"b4733e19-3016-486e-9c86-51b64c92d6b5","name":"Update existing","originalRequest":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"email","value":"noodle@example.com","description":"The full, qualified email address of your new or existing subscriber. We use this to identify them: if we can't find a match, we'll add your person; otherwise, we'll update them - everything but the email itself.","type":"text","contentType":""},{"key":"channelSubscriberStatus","value":"0","description":"Your subscriber's subscription status is represented by a number (we know, not super intuitive ...). Our api will reject attempts to subscribe a person who has been unsubscribed or bounced.\n\n\nStatus | Value\n------  | ------\nNot subscribed | 0\nSubscribed | 1\nUnsubscribed | 2\nBounced | 3\nPending confirmation | 4","type":"text"},{"key":"name","value":"Noodle the Pug II","description":"Your subscriber's name. You can pass an empty value, but you must pass the key.","type":"text"}],"options":{"raw":{"language":"javascript"}}},"url":"https://{{serverPrefix}}.tryletterhead.com/api/v2/channels/{{channel}}/audience"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Server","value":"nginx/1.14.0 (Ubuntu)"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"Access-Control-Max-Age","value":"86400"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Date","value":"Thu, 21 Oct 2021 01:54:20 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"channelSubscriberStatus\": 0,\n    \"email\": \"noodle@example.com\",\n    \"name\": \"Noodle the Pug II\",\n    \"updatedAt\": \"2021-10-21 01:54:20\",\n}"},{"id":"9eb0b5f2-8562-4851-81f5-3171e5dcc524","name":"Update existing - \"subscribers\" endpoint","originalRequest":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"email","value":"noodle@example.com","description":"The full, qualified email address of your new or existing subscriber. We use this to identify them: if we can't find a match, we'll add your person; otherwise, we'll update them - everything but the email itself.","type":"text","contentType":""},{"key":"channelSubscriberStatus","value":"0","description":"Your subscriber's subscription status is represented by a number (we know, not super intuitive ...). Our api will reject attempts to subscribe a person who has been unsubscribed or bounced.\n\n\nStatus | Value\n------  | ------\nNot subscribed | 0\nSubscribed | 1\nUnsubscribed | 2\nBounced | 3\nPending confirmation | 4","type":"text"},{"key":"name","value":"Noodle the Pug II","description":"Your subscriber's name. You can pass an empty value, but you must pass the key.","type":"text"}],"options":{"raw":{"language":"javascript"}}},"url":"https://{{serverPrefix}}.tryletterhead.com/api/v2/channels/{{channel}}/audience"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Server","value":"nginx/1.14.0 (Ubuntu)"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"Access-Control-Max-Age","value":"86400"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Date","value":"Thu, 21 Oct 2021 01:54:20 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"channelSubscriberStatus\": 0,\n    \"email\": \"noodle@example.com\",\n    \"name\": \"Noodle the Pug II\",\n    \"updatedAt\": \"2021-10-21 01:54:20\",\n}"}],"_postman_id":"6642b8e5-eb42-41ef-a54e-ea3b9c4a6629"},{"name":"Search audience members","id":"8910a915-e5ed-4ffc-aeb9-653576fdf3d7","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://{{serverPrefix}}.api.tryletterhead.com/api/v2/channels/{{channel}}/audience/?api=true&count =1&name&page&status&surname&tags","description":"<p>You can look up an existing audience member by their email address.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{apiKey}}"}]},"isInherited":true,"source":{"_postman_id":"b188d139-a966-4327-96e6-e2c968c284aa","id":"b188d139-a966-4327-96e6-e2c968c284aa","name":"Letterhead API","type":"collection"}},"urlObject":{"protocol":"https","path":["api","v2","channels","{{channel}}","audience",""],"host":["{{serverPrefix}}","api","tryletterhead","com"],"query":[{"description":{"content":"<p><strong>required</strong> | When <code>true</code>, instructs the endpoint that you're authenticating with an organization key as opposed to some other method. In almost all cases you will want to set this value to <code>true</code>. </p>\n","type":"text/plain"},"key":"api","value":"true"},{"description":{"content":"<p><strong>optional</strong> | The number of records to return. Default is <code>10</code>. </p>\n","type":"text/plain"},"key":"count ","value":"1"},{"description":{"content":"<p><strong>optional</strong> | The first name of the audience member.</p>\n","type":"text/plain"},"key":"name","value":null},{"description":{"content":"<p><strong>optional</strong> | <code>integer</code> | The page number for paginated results.</p>\n","type":"text/plain"},"key":"page","value":null},{"description":{"content":"<p><strong>optional</strong> | <code>integer</code> | The newsletter subscription status of an audience member.</p>\n","type":"text/plain"},"key":"status","value":null},{"description":{"content":"<p><strong>optional</strong> | The last name of the audience member.</p>\n","type":"text/plain"},"key":"surname","value":null},{"description":{"content":"<p><strong>optional</strong> | <code>string[]</code> | An array of tags matching audience members. This is an <code>OR</code> boolean search, so <code>['cats', 'dogs']</code> would be cats OR dogs.</p>\n","type":"text/plain"},"key":"tags","value":null}],"variable":[]}},"response":[{"id":"abb641b1-6026-43e3-a044-b77565cba164","name":"Search","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://api.tryletterhead.com/api/v2/channels/black-bitter-coffee/audience/?api=true","protocol":"https","host":["api","tryletterhead","com"],"path":["api","v2","channels","black-bitter-coffee","audience",""],"query":[{"key":"api","value":"true","description":"**required** | When `true`, instructs the endpoint that you're authenticating with an organization key as opposed to some other method. In almost all cases you will want to set this value to `true`. "},{"key":"count ","value":"","description":"**optional** | The number of records to return. Default is `10`. ","disabled":true},{"key":"name","value":null,"description":"**optional** | The first name of the audience member.","disabled":true},{"key":"page","value":null,"description":"**optional** | `integer` | The page number for paginated results.","disabled":true},{"key":"status","value":null,"description":"**optional** | `integer` | The newsletter subscription status of an audience member.","disabled":true},{"key":"surname","value":null,"description":"**optional** | The last name of the audience member.","disabled":true},{"key":"tags","value":null,"description":"**optional** | `string[]` | An array of tags matching audience members. This is an `OR` boolean search, so `['cats', 'dogs']` would be cats OR dogs.","disabled":true}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Server","value":"nginx/1.14.0 (Ubuntu)"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"Access-Control-Max-Age","value":"86400"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Date","value":"Sat, 16 Sep 2023 04:31:21 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"subscribers\": [\n        {\n            \"channelSubscriberStatus\": 3,\n            \"channelTags\": null,\n            \"createdAt\": \"2023-08-24 10:13:12\",\n            \"commonFields\": {\n                \"addressLine1\": null,\n                \"addressLine2\": null,\n                \"age\": 39,\n                \"attitudes\": null,\n                \"beliefs\": null,\n                \"birthday\": null,\n                \"businessWebsite\": null,\n                \"children\": null,\n                \"city\": null,\n                \"contentTopics\": null,\n                \"country\": null,\n                \"CRMID\": null,\n                \"customBehavior1\": null,\n                \"customBehavior2\": null,\n                \"customBehavior3\": null,\n                \"customBehavior4\": null,\n                \"customID1\": null,\n                \"customID2\": null,\n                \"customID3\": null,\n                \"customID4\": null,\n                \"customWebProfile1\": null,\n                \"customWebProfile2\": null,\n                \"customWebProfile3\": null,\n                \"customWebProfile4\": null,\n                \"deliveryPreference\": null,\n                \"education\": null,\n                \"ethnicity\": null,\n                \"events\": null,\n                \"facebookProfileName\": null,\n                \"gender\": null,\n                \"githubProfileName\": null,\n                \"googleProfileName\": null,\n                \"honorific\": null,\n                \"homePhone\": null,\n                \"income\": null,\n                \"instagramProfileName\": null,\n                \"interests\": null,\n                \"jobCompanyOrOrganizationName\": null,\n                \"jobTitle\": null,\n                \"language\": null,\n                \"lastCampaignDelivered\": null,\n                \"lastCampaignOpened\": null,\n                \"lastClickDate\": null,\n                \"lastContact\": null,\n                \"lastDeliveryDate\": null,\n                \"lastEventDate\": null,\n                \"lastIPAddress\": null,\n                \"lastLinkClicked\": null,\n                \"lastOpenDate\": null,\n                \"lastPurchaseDate\": null,\n                \"letterheadID\": null,\n                \"latitude\": null,\n                \"linkedInProfileName\": null,\n                \"longitude\": null,\n                \"maritalStatus\": null,\n                \"memberStatus\": null,\n                \"memberStatusChangedDate\": null,\n                \"mobilePhone\": null,\n                \"mostEngagedSources\": null,\n                \"mostEngagedTopics\": null,\n                \"notes\": null,\n                \"optInIP\": null,\n                \"optInTime\": null,\n                \"pets\": null,\n                \"politicalAffiliation\": null,\n                \"postalCode\": null,\n                \"pronouns\": null,\n                \"purchases\": null,\n                \"race\": null,\n                \"referralSource\": null,\n                \"referralStatus\": null,\n                \"referredByEmail\": null,\n                \"referredByFirstName\": null,\n                \"referredByLastName\": null,\n                \"region\": null,\n                \"religion\": null,\n                \"sexualOrientation\": null,\n                \"snapchatProfileName\": null,\n                \"stateProvince\": null,\n                \"subscriberStatus\": null,\n                \"subscriberStatusChangedDate\": null,\n                \"subscribedIP\": null,\n                \"subscribedTime\": null,\n                \"suffix\": null,\n                \"timeZone\": null,\n                \"tikTokProfileName\": null,\n                \"twitterProfileName\": null,\n                \"unsubscribeIP\": null,\n                \"unsubscribeTime\": null,\n                \"website\": null,\n                \"websiteProfileName\": null,\n                \"workPhone\": null\n            },\n            \"engagementOptIn\": 1,\n            \"email\": \"awesome@subscriber.com\",\n            \"name\": \"Rishi\",\n            \"surname\": \"Jones\",\n            \"updatedAt\": \"2023-08-24 18:13:21\",\n        }\n    ],\n    \"total\": 103\n}"}],"_postman_id":"8910a915-e5ed-4ffc-aeb9-653576fdf3d7"}],"id":"8aac8bff-d57e-48f9-a48f-d57228b70732","_postman_id":"8aac8bff-d57e-48f9-a48f-d57228b70732","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{apiKey}}"}]},"isInherited":true,"source":{"_postman_id":"b188d139-a966-4327-96e6-e2c968c284aa","id":"b188d139-a966-4327-96e6-e2c968c284aa","name":"Letterhead API","type":"collection"}}},{"name":"Tags","item":[{"name":"Create/Update Tag","id":"34c57ab7-f97c-4a92-9929-55fdd1ba2f59","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"url":"https://{{serverPrefix}}.api.tryletterhead.com/api/v2/channels/{{channel}}/audience/tag?tag=string&email=email&api=false","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{apiKey}}"}]},"isInherited":true,"source":{"_postman_id":"b188d139-a966-4327-96e6-e2c968c284aa","id":"b188d139-a966-4327-96e6-e2c968c284aa","name":"Letterhead API","type":"collection"}},"urlObject":{"protocol":"https","path":["api","v2","channels","{{channel}}","audience","tag"],"host":["{{serverPrefix}}","api","tryletterhead","com"],"query":[{"description":{"content":"<p>Tag to create/update</p>\n","type":"text/plain"},"key":"tag","value":"string"},{"description":{"content":"<p>User email address</p>\n","type":"text/plain"},"key":"email","value":"email"},{"description":{"content":"<p>When <code>true</code>, instructs the endpoint that you're authenticating with an organization key as opposed to some other method. In almost all cases you will want to set this value to <code>true</code>. </p>\n","type":"text/plain"},"key":"api","value":"false"}],"variable":[]}},"response":[],"_postman_id":"34c57ab7-f97c-4a92-9929-55fdd1ba2f59"},{"name":"Remove Tag","id":"6be5e020-0460-46e5-ae01-e417b6408d58","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"url":"https://{{serverPrefix}}.api.tryletterhead.com/api/v2/channels/{{channel}}/audience/tag/remove?tag=string&email=email&api=false","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{apiKey}}"}]},"isInherited":true,"source":{"_postman_id":"b188d139-a966-4327-96e6-e2c968c284aa","id":"b188d139-a966-4327-96e6-e2c968c284aa","name":"Letterhead API","type":"collection"}},"urlObject":{"protocol":"https","path":["api","v2","channels","{{channel}}","audience","tag","remove"],"host":["{{serverPrefix}}","api","tryletterhead","com"],"query":[{"description":{"content":"<p>Tag to create/update</p>\n","type":"text/plain"},"key":"tag","value":"string"},{"description":{"content":"<p>User email address</p>\n","type":"text/plain"},"key":"email","value":"email"},{"description":{"content":"<p>When <code>true</code>, instructs the endpoint that you're authenticating with an organization key as opposed to some other method. In almost all cases you will want to set this value to <code>true</code>. </p>\n","type":"text/plain"},"key":"api","value":"false"}],"variable":[]}},"response":[],"_postman_id":"6be5e020-0460-46e5-ae01-e417b6408d58"}],"id":"7f1c0f36-81ce-424e-9ca5-d04695f4febb","_postman_id":"7f1c0f36-81ce-424e-9ca5-d04695f4febb","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{apiKey}}"}]},"isInherited":true,"source":{"_postman_id":"b188d139-a966-4327-96e6-e2c968c284aa","id":"b188d139-a966-4327-96e6-e2c968c284aa","name":"Letterhead API","type":"collection"}}}],"id":"37261061-f9b0-4a85-b716-d3dcac0d5241","description":"<p>We encourage you to manage your relationship with your channel's subscribers, and for folks who want to build around or integrate with other services, we try to give you both helpful and safe ways to go about it.</p>\n","_postman_id":"37261061-f9b0-4a85-b716-d3dcac0d5241","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{apiKey}}"}]},"isInherited":true,"source":{"_postman_id":"b188d139-a966-4327-96e6-e2c968c284aa","id":"b188d139-a966-4327-96e6-e2c968c284aa","name":"Letterhead API","type":"collection"}}},{"name":"Curations","item":[{"name":"Add curation","id":"efaca25b-895e-406b-809b-51e411b0bd10","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"api","value":"true","description":"<p><strong>required</strong> | When <code>true</code>, instructs the endpoint that you're authenticating with an organization key as opposed to some other method. In almost all cases you will want to set this value to <code>true</code>. </p>\n","type":"text"},{"key":"url","value":"https://css-tricks.com/how-to-make-a-folder-slit-effect-with-css/","description":"<p><strong>required</strong> | URL to the content you would like Letterhead to crawl. We will fetch what we can glean from the site's Open Graph. </p>\n","type":"text"},{"key":"content","value":"","description":"<p><strong>optional</strong> | <code>html</code> content for the curation, only <code>p</code> and formatting elements are allowed. You would use this if </p>\n","type":"text"},{"key":"excerpt","value":"","description":"<p><strong>optional</strong> | Plain text excerpt of the curated content. Will overwrite what we fetch from the URL.</p>\n","type":"text"},{"key":"image","value":"","description":"<p><strong>optional</strong> | The URL of a featured image to associate with this piece of content.</p>\n","type":"text"},{"key":"siteName","value":"Black Bitter Coffee","description":"<p><strong>optional</strong> | The name of the site the curated content originated from.</p>\n","type":"text","uuid":"e0a526e9-d548-4988-ac92-10b4425642b0"},{"key":"publicationDate","value":"","description":"<p><strong>optional</strong> | The <code>Y-md H:i:s</code> formatted date of publication.</p>\n","type":"text"},{"key":"tags","value":"","description":"<p><strong>optional</strong> | <code>string[]</code> |  An optional array of <code>string</code> tags with which to associate this piece of content. Example: <code>['dogs', 'canines']</code></p>\n","type":"text"},{"key":"title","value":"","description":"<p><strong>optional</strong> | Title of the curated content. Will overwrite what we fetch from the URL.</p>\n","type":"text"},{"key":"crawl","value":"","description":"<p><strong>optional</strong> | When <code>false</code>, this disables the initial crawl of the content from the URL parameter.</p>\n","type":"text","uuid":"8ea68b21-024a-4a18-8b00-95f4199a83ba"},{"key":"scrape","value":"","description":"<p><strong>optional</strong> | When <code>false</code>, this disables the initial crawl of the content from the URL parameter. An alias of the <code>crawl</code> parameter.</p>\n","type":"text","uuid":"cf7f8730-a18d-4c66-967a-4340e3a3f21f"}]},"url":"https://{{serverPrefix}}.api.tryletterhead.com/api/v2/channels/{{channel}}/aggregates","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{apiKey}}"}]},"isInherited":true,"source":{"_postman_id":"b188d139-a966-4327-96e6-e2c968c284aa","id":"b188d139-a966-4327-96e6-e2c968c284aa","name":"Letterhead API","type":"collection"}},"urlObject":{"protocol":"https","path":["api","v2","channels","{{channel}}","aggregates"],"host":["{{serverPrefix}}","api","tryletterhead","com"],"query":[],"variable":[]}},"response":[{"id":"c211ab8e-edd6-40f6-988e-ebfc72ce0968","name":"New Request","originalRequest":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"api","value":"false","description":"Whether you're authenticating with your API key.","type":"text"},{"key":"url","value":"https://css-tricks.com/how-to-make-a-folder-slit-effect-with-css/","description":"The URL you'd like to curate.","type":"text"},{"key":"passport","value":"false","type":"text","disabled":true}]},"url":"https://{{serverPrefix}}.tryletterhead.com/api/v2/channels/{{channel}}/aggregates"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Server","value":"nginx/1.14.0 (Ubuntu)"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"Access-Control-Max-Age","value":"86400"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Date","value":"Fri, 21 Oct 2022 02:41:24 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"archived\": false,\n    \"createdAt\": \"2022-10-21 02:41:24\",\n    \"curated\": true,\n    \"dateOfAggregatePublication\": \"2022-10-19T05:56:37-07:00\",\n    \"deletedAt\": null,\n    \"excerpt\": \"When you put something — say a regular sheet of paper — in a manilla folder, a part of that thing might peek out of the folder a little bit. The same sort of\",\n    \"feedUniqueId\": \"\",\n    \"image\": \"https://css-tricks.com/wp-json/social-image-generator/v1/image/374376\",\n    \"originalUrl\": \"https://css-tricks.com/how-to-make-a-folder-slit-effect-with-css/\",\n    \"publicationDate\": \"2022-10-19 12:56:37\",\n    \"siteName\": \"CSS-Tricks\",\n    \"title\": \"How to Make a Folder “Slit” Effect With CSS\",\n    \"uniqueId\": \"s26syiyb63\",\n    \"updatedAt\": \"2022-10-21 02:41:24\",\n    \"useBy\": null\n}"}],"_postman_id":"efaca25b-895e-406b-809b-51e411b0bd10"},{"name":"Update curation","id":"88248c65-a7b3-44f5-a79b-bb1ba2b2931b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"api","value":"true","description":"<p><strong>required</strong> | When <code>true</code>, instructs the endpoint that you're authenticating with an organization key as opposed to some other method. In almost all cases you will want to set this value to <code>true</code>. </p>\n","type":"text"},{"key":"url","value":"https://example.org","description":"<p><strong>required</strong> | URL to the content you would like Letterhead to crawl. We will fetch what we can glean from the site's Open Graph. </p>\n","type":"text"},{"key":"content","value":"<p>I have been <b>curated</b>.</p>","description":"<p><strong>optional</strong> | <code>html</code> content for the curation, only <code>p</code> and formatting elements are allowed.</p>\n","type":"text"},{"key":"excerpt","value":"The excerpt is often mapped with an RSS feed's description node - but not always.","description":"<p><strong>optional</strong> | Plain text excerpt of the curated content. Will overwrite what we fetch from the URL.</p>\n","type":"text"},{"key":"image","value":"https://letterhead.ai/hubfs/Letterhead_CTA9_July2023/images/footer_logo.svg","description":"<p><strong>optional</strong> | The URL of a featured image to associate with this piece of content.</p>\n","type":"text"},{"key":"publicationDate","value":"2024-02-05 00:00:00","description":"<p><strong>optional</strong> | The <code>Y-m-d H:i:s</code> formatted date of publication.</p>\n","type":"text"},{"key":"siteName","value":"Black Bitter Coffee","description":"<p><strong>optional</strong> | The name of the site the curated content originated from.</p>\n","type":"text","uuid":"e3ad6c2b-4e02-4320-a959-463450e8b61d"},{"key":"tags[]","value":"delightfully-caffeinated","description":"<p><strong>optional</strong> | <code>string[]</code> |  An optional array of <code>string</code> tags with which to associate this piece of content. Example: <code>['dogs', 'canines']</code></p>\n","type":"text"},{"key":"title","value":"Is this the tastiest coffee ever?","description":"<p><strong>optional</strong> | Title of the curated content.</p>\n","type":"text"}]},"url":"https://{{serverPrefix}}.api.tryletterhead.com/api/v2/channels/{{channel}}/aggregates/{{curationUuid}}","description":"<h3 id=\"create-or-update-a-content-aggregate\">Create or update a content aggregate</h3>\n<p>This endpoint allows you to update a curation for a specific channel.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{apiKey}}"}]},"isInherited":true,"source":{"_postman_id":"b188d139-a966-4327-96e6-e2c968c284aa","id":"b188d139-a966-4327-96e6-e2c968c284aa","name":"Letterhead API","type":"collection"}},"urlObject":{"protocol":"https","path":["api","v2","channels","{{channel}}","aggregates","{{curationUuid}}"],"host":["{{serverPrefix}}","api","tryletterhead","com"],"query":[],"variable":[]}},"response":[{"id":"21dedeae-6526-4522-a8eb-f91a42f8af81","name":"Update curation","originalRequest":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"api","value":"true","description":"**required** | When `true`, instructs the endpoint that you're authenticating with an organization key as opposed to some other method. In almost all cases you will want to set this value to `true`. ","type":"text"},{"key":"url","value":"https://example.org","description":"**required** | URL to the content you would like Letterhead to crawl. We will fetch what we can glean from the site's Open Graph. ","type":"text"},{"key":"content","value":"<p>I have been <b>curated</b>.</p>","description":"**optional** | `html` content for the curation, only `p` and formatting elements are allowed.","type":"text"},{"key":"excerpt","value":"The excerpt is often mapped with an RSS feed's description node - but not always.","description":"**optional** | Plain text excerpt of the curated content. Will overwrite what we fetch from the URL.","type":"text"},{"key":"image","value":"https://letterhead.ai/hubfs/Letterhead_CTA9_July2023/images/footer_logo.svg","description":"**optional** | The URL of a featured image to associate with this piece of content.","type":"text"},{"key":"publicationDate","value":"2024-02-05 00:00:00","description":"**optional** | The `Y-m-d H:i:s` formatted date of publication.","type":"text"},{"key":"siteName","value":"Black Bitter Coffee","description":"**optional** | The name of the site the curated content originated from.","type":"text","uuid":"e3ad6c2b-4e02-4320-a959-463450e8b61d"},{"key":"tags[]","value":"delightfully-caffeinated","description":"**optional** | `string[]` |  An optional array of `string` tags with which to associate this piece of content. Example: `['dogs', 'canines']`","type":"text"},{"key":"title","value":"Is this the tastiest coffee ever?","description":"**optional** | Title of the curated content.","type":"text"}]},"url":"https://{{serverPrefix}}.tryletterhead.com/api/v2/channels/{{channel}}/aggregates/{{curationUuid}}"},"status":"Accepted","code":202,"_postman_previewlanguage":"json","header":[{"key":"Server","value":"nginx/1.14.0 (Ubuntu)"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"Access-Control-Max-Age","value":"86400"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Date","value":"Wed, 05 Feb 2025 16:51:20 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"items\": {\n        \"archived\": false,\n        \"content\": \"<p>I have been <b>curated</b>.</p>\",\n        \"createdAt\": \"2025-01-07 00:01:12\",\n        \"curated\": false,\n        \"dateOfAggregatePublication\": \"2025-02-05 16:51:20\",\n        \"excerpt\": \"The excerpt is often mapped with an RSS feed's description node - but not always.\",\n        \"feedUniqueId\": \"\",\n        \"image\": \"https://letterhead.ai/hubfs/Letterhead_CTA9_July2023/images/footer_logo.svg\",\n        \"originalUrl\": \"https://css-tricks.com/how-to-make-a-folder-slit-effect-with-css/\",\n        \"publicationDate\": \"2024-02-05 00:00:00\",\n        \"siteName\": \"Black Bitter Coffee\",\n        \"title\": \"Is this the tastiest coffee ever?\",\n        \"uniqueId\": \"b8ee3a270d8615d23bf17335b2986bc3\",\n        \"updatedAt\": \"2025-01-07 00:01:12\",\n        \"tags\": [\n            \"delightfully-caffeinated\"\n        ]\n    },\n    \"message\": \"Your curation was successfully updated.\",\n    \"total\": 1\n}"}],"_postman_id":"88248c65-a7b3-44f5-a79b-bb1ba2b2931b"}],"id":"a68b3a02-58c7-47c0-a6eb-dfc503e15a5f","description":"<p>Letterhead makes it a little easier for publishers to make content by letting you curate pages from around the web.</p>\n","_postman_id":"a68b3a02-58c7-47c0-a6eb-dfc503e15a5f","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{apiKey}}"}]},"isInherited":true,"source":{"_postman_id":"b188d139-a966-4327-96e6-e2c968c284aa","id":"b188d139-a966-4327-96e6-e2c968c284aa","name":"Letterhead API","type":"collection"}}},{"name":"Letters","item":[{"name":"Metrics","item":[{"name":"Click metrics","id":"3b61e167-a0b6-4d76-96ef-f7c136118765","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://{{serverPrefix}}.api.tryletterhead.com/api/v2/channels/{{channel}}/letters/{{letterUuid}}/metrics/clicks?api=false","description":"<p>View the click metrics of a <em>published</em> letter, given its UUID. For each URL that has been clicked at lease once, we'll return totals and uniques. These metrics aren't real time, and they will update periodically throughout the day.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{apiKey}}"}]},"isInherited":true,"source":{"_postman_id":"b188d139-a966-4327-96e6-e2c968c284aa","id":"b188d139-a966-4327-96e6-e2c968c284aa","name":"Letterhead API","type":"collection"}},"urlObject":{"protocol":"https","path":["api","v2","channels","{{channel}}","letters","{{letterUuid}}","metrics","clicks"],"host":["{{serverPrefix}}","api","tryletterhead","com"],"query":[{"description":{"content":"<p>When <code>true</code>, instructs the endpoint that you're authenticating with an organization key as opposed to some other method. In almost all cases you will want to set this value to <code>true</code>. When <code>false</code>, you must provide a one-time use token.</p>\n","type":"text/plain"},"key":"api","value":"false"}],"variable":[]}},"response":[{"id":"36f6a640-cce7-4ac0-a041-a7ce93a9eae6","name":"Click metrics","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://api.tryletterhead.com/api/v2/channels/{{channel}}/letters/{{letterUuid}}/metrics/clicks?api=false","protocol":"https","host":["api","tryletterhead","com"],"path":["api","v2","channels","{{channel}}","letters","{{letterUuid}}","metrics","clicks"],"query":[{"key":"api","value":"false","description":"When `true`, instructs the endpoint that you're authenticating with an organization key as opposed to some other method. In almost all cases you will want to set this value to `true`. If `false`, you must provide a one-time use token."}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Host","value":"localhost:8000"},{"key":"Date","value":"Mon, 11 Mar 2024 19:37:04 GMT"},{"key":"Date","value":"Mon, 11 Mar 2024 19:37:04 GMT"},{"key":"Connection","value":"close"},{"key":"X-Powered-By","value":"PHP/7.4.33"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"Access-Control-Max-Age","value":"86400"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"items\": [\n        {\n            \"url\": \"https://en.wikipedia.org/wiki/Tiger\",\n            \"total\": 67,\n            \"uniques\": 52\n        },\n        {\n            \"url\": \"https://en.wikipedia.org/wiki/Lion\",\n            \"total\": 49,\n            \"uniques\": 36\n        },\n        {\n            \"url\": \"https://en.wikipedia.org/wiki/Bear\",\n            \"total\": 40,\n            \"uniques\": 30\n        }\n    ],\n    \"message\": \"Do something kind today\",\n    \"total\": 3\n}"}],"_postman_id":"3b61e167-a0b6-4d76-96ef-f7c136118765"}],"id":"f63d128e-e497-4488-9eeb-f4f0af64eb7f","_postman_id":"f63d128e-e497-4488-9eeb-f4f0af64eb7f","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{apiKey}}"}]},"isInherited":true,"source":{"_postman_id":"b188d139-a966-4327-96e6-e2c968c284aa","id":"b188d139-a966-4327-96e6-e2c968c284aa","name":"Letterhead API","type":"collection"}}},{"name":"Retrieve a letter by its ID","id":"600d28d1-d084-4c4c-bf4a-119dce3d6659","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://{{serverPrefix}}.api.tryletterhead.com/api/v2/channels/{{channel}}/letters/1234?api=false","description":"<p>List or search through newsletters based on their publication status or keywords.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{apiKey}}"}]},"isInherited":true,"source":{"_postman_id":"b188d139-a966-4327-96e6-e2c968c284aa","id":"b188d139-a966-4327-96e6-e2c968c284aa","name":"Letterhead API","type":"collection"}},"urlObject":{"protocol":"https","path":["api","v2","channels","{{channel}}","letters","1234"],"host":["{{serverPrefix}}","api","tryletterhead","com"],"query":[{"description":{"content":"<p>When <code>true</code>, instructs the endpoint that you're authenticating with an organization key as opposed to some other method. In almost all cases you will want to set this value to <code>true</code>. </p>\n","type":"text/plain"},"key":"api","value":"false"}],"variable":[]}},"response":[{"id":"0742099c-c86a-4f57-b10e-1283f565d8ce","name":"Retrieve a letter","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://api.tryletterhead.com/api/v2/channels/{{channel}}/letters/1234?api=true","protocol":"https","host":["api","tryletterhead","com"],"path":["api","v2","channels","{{channel}}","letters","1234"],"query":[{"key":"api","value":"true","description":"Whether you are authorizing by api (silly huh?)"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Server","value":"nginx/1.14.0 (Ubuntu)"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"Access-Control-Max-Age","value":"86400"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Date","value":"Thu, 22 Sep 2022 02:49:47 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"campaignId\": \"6cuswtvr7p\",\n    \"createdAt\": \"2022-09-14 19:54:12\",\n    \"copyRendered\": \"\",\n    \"delta\": \"\",\n    \"deletedAt\": null,\n    \"emailTemplate\": \"<!-- full rendered html -->\",\n    \"emailServiceProvider\": 3,\n    \"id\": 4991,\n    \"includePromotions\": true,\n    \"insights\": {\n        \"readability\": {\n            \"ease\": 86,\n            \"time\": \"1 minute read\"\n        }\n    },\n    \"publicationDate\": \"2023-09-20 12:00:00\",\n    \"publicationDateOffset\": \"-05:00\",\n    \"publicationDateTzCode\": \"America/New_York\",\n    \"publicationStatus\": 2,\n    \"publicationEvent\": 0,\n    \"publishIntent\": \"email\",\n    \"private\": false,\n    \"promotions\": \"\",\n    \"segmentId\": 0,\n    \"segmentName\": \"\",\n    \"slug\": \"\",\n    \"subtitle\": \"Yes it is\",\n    \"specialBanner\": \"\",\n    \"title\": \"This is a scheduled newsletter\",\n    \"updatedAt\": \"2022-09-14 19:54:12\",\n    \"uniqueId\": \"6cuswtvr7p\"\n}"}],"_postman_id":"600d28d1-d084-4c4c-bf4a-119dce3d6659"},{"name":"Retrieve a letter by its Uuid","id":"c3edc922-63cd-4254-b97d-599345272fc2","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://{{serverPrefix}}.api.tryletterhead.com/api/v2/channels/{{channel}}/letters/?api=false","description":"<p>List or search through newsletters based on their publication status or keywords.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{apiKey}}"}]},"isInherited":true,"source":{"_postman_id":"b188d139-a966-4327-96e6-e2c968c284aa","id":"b188d139-a966-4327-96e6-e2c968c284aa","name":"Letterhead API","type":"collection"}},"urlObject":{"protocol":"https","path":["api","v2","channels","{{channel}}","letters",""],"host":["{{serverPrefix}}","api","tryletterhead","com"],"query":[{"description":{"content":"<p>When <code>true</code>, instructs the endpoint that you're authenticating with an organization key as opposed to some other method. In almost all cases you will want to set this value to <code>true</code>. </p>\n","type":"text/plain"},"key":"api","value":"false"}],"variable":[]}},"response":[{"id":"b1b4c3bc-8ab1-4449-ac1d-c6b02267e6be","name":"Retrieve a letter","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://api.tryletterhead.com/api/v2/channels/{{channel}}/letters/1234?api=true","protocol":"https","host":["api","tryletterhead","com"],"path":["api","v2","channels","{{channel}}","letters","1234"],"query":[{"key":"api","value":"true","description":"Whether you are authorizing by api (silly huh?)"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Server","value":"nginx/1.14.0 (Ubuntu)"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"Access-Control-Max-Age","value":"86400"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Date","value":"Thu, 22 Sep 2022 02:49:47 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"campaignId\": \"6cuswtvr7p\",\n    \"createdAt\": \"2022-09-14 19:54:12\",\n    \"copyRendered\": \"\",\n    \"delta\": \"\",\n    \"deletedAt\": null,\n    \"emailTemplate\": \"<!-- full rendered html -->\",\n    \"emailServiceProvider\": 3,\n    \"id\": 4991,\n    \"includePromotions\": true,\n    \"insights\": {\n        \"readability\": {\n            \"ease\": 86,\n            \"time\": \"1 minute read\"\n        }\n    },\n    \"publicationDate\": \"2023-09-20 12:00:00\",\n    \"publicationDateOffset\": \"-05:00\",\n    \"publicationDateTzCode\": \"America/New_York\",\n    \"publicationStatus\": 2,\n    \"publicationEvent\": 0,\n    \"publishIntent\": \"email\",\n    \"private\": false,\n    \"promotions\": \"\",\n    \"segmentId\": 0,\n    \"segmentName\": \"\",\n    \"slug\": \"\",\n    \"subtitle\": \"Yes it is\",\n    \"specialBanner\": \"\",\n    \"title\": \"This is a scheduled newsletter\",\n    \"updatedAt\": \"2022-09-14 19:54:12\",\n    \"uniqueId\": \"6cuswtvr7p\"\n}"}],"_postman_id":"c3edc922-63cd-4254-b97d-599345272fc2"},{"name":"List all letters","id":"77ea8554-ea3f-4ed0-a07e-3f50496cd7a1","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://{{serverPrefix}}.api.tryletterhead.com/api/v2/channels/{{channel}}/letters?filter=6&keyword&letterUuid&limit=10&includePrivate=true&page=1&passport=false&api=false","description":"<p>List or search through newsletters based on their publication status or keywords.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{apiKey}}"}]},"isInherited":true,"source":{"_postman_id":"b188d139-a966-4327-96e6-e2c968c284aa","id":"b188d139-a966-4327-96e6-e2c968c284aa","name":"Letterhead API","type":"collection"}},"urlObject":{"protocol":"https","path":["api","v2","channels","{{channel}}","letters"],"host":["{{serverPrefix}}","api","tryletterhead","com"],"query":[{"description":{"content":"<p>Publication status of results to include (1 = published; 2 = scheduled; 4 = review; 6 = all statuses)</p>\n","type":"text/plain"},"key":"filter","value":"6"},{"description":{"content":"<p>Optional keyword by which to search results</p>\n","type":"text/plain"},"key":"keyword","value":null},{"description":{"content":"<p>Filter results to include only the letter matching the specified UUID.</p>\n","type":"text/plain"},"key":"letterUuid","value":null},{"description":{"content":"<p>Number of results to return</p>\n","type":"text/plain"},"key":"limit","value":"10"},{"description":{"content":"<p>Whether to include newsletters marked \"private.\"</p>\n","type":"text/plain"},"key":"includePrivate","value":"true"},{"description":{"content":"<p>Paginated page number</p>\n","type":"text/plain"},"key":"page","value":"1"},{"description":{"content":"<p>Whether to authenticate with a passport rather than an API key</p>\n","type":"text/plain"},"key":"passport","value":"false"},{"description":{"content":"<p>When <code>true</code>, instructs the endpoint that you're authenticating with an organization key as opposed to some other method. In almost all cases you will want to set this value to <code>true</code>. </p>\n","type":"text/plain"},"key":"api","value":"false"}],"variable":[]}},"response":[{"id":"3592cf02-8e72-49af-8b94-053f534e3805","name":"List all letters","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://{{serverPrefix}}.tryletterhead.com/api/v2/channels/{{channel}}/letters?filter=6&keyword&limit=10&includePrivate=true&page=1&passport=false&api=true","protocol":"https","host":["{{serverPrefix}}","tryletterhead","com"],"path":["api","v2","channels","{{channel}}","letters"],"query":[{"key":"filter","value":"6","description":"Publication status of results to include (1 = published; 2 = scheduled; 4 = review; 6 = all statuses)"},{"key":"keyword","value":null,"description":"Optional keyword by which to search results"},{"key":"limit","value":"10","description":"Number of results to return"},{"key":"includePrivate","value":"true","description":"Whether to include newsletters marked \"private.\""},{"key":"page","value":"1","description":"Paginated page number"},{"key":"passport","value":"false","description":"Whether to authenticate with a passport rather than an API key"},{"key":"api","value":"true"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Server","value":"nginx/1.14.0 (Ubuntu)"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"Access-Control-Max-Age","value":"86400"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Date","value":"Thu, 22 Sep 2022 02:34:04 GMT"}],"cookie":[],"responseTime":null,"body":"{\n    \"items\": [\n        {\n            \"campaignId\": \"6cuswtvr7p\",\n            \"createdAt\": \"2022-09-14 19:54:12\",\n            \"copyRendered\": \"\",\n            \"deletedAt\": null,\n            \"emailTemplate\": \"<!--The full html of the email -->\",\n            \"emailServiceProvider\": 3,\n            \"id\": 4991,\n            \"includePromotions\": true,\n            \"insights\": {\n                \"readability\": {\n                    \"ease\": 86,\n                    \"time\": \"1 minute read\"\n                }\n            },\n            \"publicationDate\": \"2023-09-20 12:00:00\",\n            \"publicationDateOffset\": \"-05:00\",\n            \"publicationDateTzCode\": \"America/New_York\",\n            \"publicationStatus\": 2,\n            \"publicationEvent\": 0,\n            \"publishIntent\": \"email\",\n            \"private\": false,\n            \"promotions\": \"\",\n            \"segmentId\": 0,\n            \"segmentName\": \"Entire Audience\",\n            \"slug\": \"\",\n            \"subtitle\": \"Yes it is\",\n            \"specialBanner\": \"\",\n            \"sections\": \"[{ /* the newsletter as javascript */ }]\",\n            \"title\": \"This is a scheduled newsletter\",\n            \"updatedAt\": \"2022-09-14 19:54:12\",\n            \"uniqueId\": \"6cuswtvr7p\"\n        }\n    ],\n    \"total\": 292\n}"}],"_postman_id":"77ea8554-ea3f-4ed0-a07e-3f50496cd7a1"}],"id":"b186fffc-f7dc-4a74-addf-89f7d33d69e6","description":"<p>StartFragment</p>\n<p>You can integrate around the newsletters you make to bake it into dashboards or other services you might use. At the moment, our <strong>Letters API</strong> is read-only.</p>\n<p>EndFragme</p>\n","_postman_id":"b186fffc-f7dc-4a74-addf-89f7d33d69e6","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{apiKey}}"}]},"isInherited":true,"source":{"_postman_id":"b188d139-a966-4327-96e6-e2c968c284aa","id":"b188d139-a966-4327-96e6-e2c968c284aa","name":"Letterhead API","type":"collection"}}}],"id":"430fa413-2814-4183-a695-29f5ec4b1c97","description":"<p>The <code>v2</code> API and the <code>v3</code> API are almost identical except for scope. The <code>v2</code> API accommodates organization-wide management, and requires keys generated from the organization level.</p>\n","_postman_id":"430fa413-2814-4183-a695-29f5ec4b1c97","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{apiKey}}"}]},"isInherited":true,"source":{"_postman_id":"b188d139-a966-4327-96e6-e2c968c284aa","id":"b188d139-a966-4327-96e6-e2c968c284aa","name":"Letterhead API","type":"collection"}}}],"id":"e35858bc-6896-46af-9d65-2df9413d9f1b","_postman_id":"e35858bc-6896-46af-9d65-2df9413d9f1b","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{apiKey}}"}]},"isInherited":true,"source":{"_postman_id":"b188d139-a966-4327-96e6-e2c968c284aa","id":"b188d139-a966-4327-96e6-e2c968c284aa","name":"Letterhead API","type":"collection"}}},{"name":"Letters","item":[{"name":"v3","item":[{"name":"Generate Template From Archive URL (Coming Soon)","event":[{"listen":"test","script":{"id":"aa421fd0-27fa-43ea-bfef-b8a7f8cb26bc","exec":["pm.test(\"Status code is 201 (template generated)\", function () {","    pm.response.to.have.status(201);","});",""],"type":"text/javascript","packages":{},"requests":{}}}],"id":"8680e34d-0ef3-41c9-8d96-dcfa3a7977b9","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"api","value":"true","description":"<p><strong>required</strong> | When set to <code>true</code>, this endpoint will accept authorization with your API Key.</p>\n","type":"text"},{"key":"url","value":"{{archiveUrl}}","type":"text"}]},"url":"https://{{serverPrefix}}.api.tryletterhead.com/api/v3/letters/templates/actions/generate-from-url","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{apiKey}}"}]},"isInherited":true,"source":{"_postman_id":"b188d139-a966-4327-96e6-e2c968c284aa","id":"b188d139-a966-4327-96e6-e2c968c284aa","name":"Letterhead API","type":"collection"}},"urlObject":{"protocol":"https","path":["api","v3","letters","templates","actions","generate-from-url"],"host":["{{serverPrefix}}","api","tryletterhead","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"8680e34d-0ef3-41c9-8d96-dcfa3a7977b9"},{"name":"List active templates","event":[{"listen":"test","script":{"id":"3bcd4417-868a-4d92-b662-9e7eb9bc401e","exec":["pm.test('Status code is 200', function () {","    pm.response.to.have.status(200);","});","","pm.test('Content-Type is application/json', function () {","    pm.expect(pm.response.headers.get('Content-Type') || '').to.match(/application\\/json/i);","});",""],"type":"text/javascript","packages":{},"requests":{}}}],"id":"d1a3cb8a-76d8-4e70-8625-b198d4dc733d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"body":{"mode":"formdata","formdata":[]},"url":"https://{{serverPrefix}}.api.tryletterhead.com/api/v3/letters/templates/active?api=true&channels[]=letterhead-example-newsletter","description":"<p>Using the <strong>v3</strong> api, which requires a company-level API key, you can list all of your <em>active</em> newsletter templates.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{apiKey}}"}]},"isInherited":true,"source":{"_postman_id":"b188d139-a966-4327-96e6-e2c968c284aa","id":"b188d139-a966-4327-96e6-e2c968c284aa","name":"Letterhead API","type":"collection"}},"urlObject":{"protocol":"https","path":["api","v3","letters","templates","active"],"host":["{{serverPrefix}}","api","tryletterhead","com"],"query":[{"description":{"content":"<p><strong>required</strong> | When set to <code>true</code>, this endpoint will accept authorization with your API Key.</p>\n","type":"text/plain"},"key":"api","value":"true"},{"description":{"content":"<p><strong>required</strong> | <code>string[]</code> | An array of channel identifiers (or channel \"slugs\").</p>\n","type":"text/plain"},"key":"channels[]","value":"letterhead-example-newsletter"}],"variable":[]}},"response":[{"id":"178ee808-f670-48b6-9156-8c279b302632","name":"200 Active templates","originalRequest":{"method":"DELETE","header":[],"body":{"mode":"formdata","formdata":[]},"url":{"raw":"https://{{serverPrefix}}.api.tryletterhead.com/api/v3/letters/templates/active?channels[]=letterhead-example-newsletter","protocol":"https","host":["{{serverPrefix}}","api","tryletterhead","com"],"path":["api","v3","letters","templates","active"],"query":[{"key":"channels[]","value":"letterhead-example-newsletter","type":"text"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n  \"items\": [\n    {\n      \"abTestUuid\": \"\",\n      \"abTestMetrics\": [],\n      \"automationUniqueId\": \"\",\n      \"blocks\": [],\n      \"brandName\": \"My Brand\",\n      \"brandSlug\": \"my-brand\",\n      \"campaignId\": \"\",\n      \"channelId\": 123,\n      \"channelName\": \"My Channel\",\n      \"channelSlug\": \"my-channel-slug\",\n      \"claimant\": \"\",\n      \"createdAt\": \"2026-01-15 10:00:00\",\n      \"copyRendered\": \"\",\n      \"delta\": \"\",\n      \"deletedAt\": null,\n      \"esp\": \"\",\n      \"emailTemplate\": \"\",\n      \"hasAbTest\": false,\n      \"id\": 456,\n      \"includePromotions\": false,\n      \"insights\": [],\n      \"isClaimed\": false,\n      \"isCompanyLetter\": true,\n      \"openGraphImageUrl\": \"\",\n      \"openGraphHeadline\": \"\",\n      \"openGraphDescription\": \"\",\n      \"publicationDate\": \"\",\n      \"publicationDateOffset\": \"\",\n      \"publicationDateTzCode\": \"\",\n      \"publicationStatus\": 9,\n      \"publicationEvent\": \"\",\n      \"publishIntent\": \"\",\n      \"private\": false,\n      \"promotions\": [],\n      \"publishingRetries\": 0,\n      \"segmentId\": 0,\n      \"segmentName\": \"\",\n      \"settings\": {},\n      \"sharedChannels\": [],\n      \"subjectB\": \"\",\n      \"subtitle\": \"Template subtitle\",\n      \"title\": \"My Template\",\n      \"updatedAt\": \"2026-02-20 14:30:00\",\n      \"uniqueId\": \"abc-123-def-456\",\n      \"useComposer\": false,\n      \"commentCount\": 0\n    }\n  ],\n  \"message\": \"Active templates retrieved.\",\n  \"total\": 1\n}"}],"_postman_id":"d1a3cb8a-76d8-4e70-8625-b198d4dc733d"},{"name":"Subject Line Analysis (Coming Soon)","event":[{"listen":"test","script":{"id":"9eaa2982-e68d-4c0c-931b-f54c4b696dc6","exec":["// Subject Line Analysis (Coming Soon) — Post-response Tests","","pm.test('Status is 200', function () {","    pm.response.to.have.status(200);","});","","pm.test('Response is JSON', function () {","    pm.response.to.be.json;","});","","pm.test('Has required top-level properties', function () {","    var jsonData = pm.response.json();","    pm.expect(jsonData).to.be.an('object');","    pm.expect(jsonData).to.have.property('items');","    pm.expect(jsonData).to.have.property('message');","    pm.expect(jsonData).to.have.property('total');","});","","pm.test('Top-level property types are correct', function () {","    var jsonData = pm.response.json();","","    pm.expect(jsonData.items).to.be.an('object');","    pm.expect(jsonData.message).to.be.a('string');","    pm.expect(jsonData.total).to.be.a('number');","});","","pm.test('items.analysis is a non-empty string', function () {","    var jsonData = pm.response.json();","","    pm.expect(jsonData.items).to.be.an('object');","    pm.expect(jsonData.items).to.have.property('analysis');","    pm.expect(jsonData.items.analysis).to.be.a('string');","    pm.expect(jsonData.items.analysis.trim().length).to.be.greaterThan(0);","});","","pm.test('message is a non-empty string', function () {","    var jsonData = pm.response.json();","","    pm.expect(jsonData.message).to.be.a('string');","    pm.expect(jsonData.message.trim().length).to.be.greaterThan(0);","});","","pm.test('total is a number >= 0', function () {","    var jsonData = pm.response.json();","","    pm.expect(jsonData.total).to.be.a('number');","    pm.expect(jsonData.total).to.be.at.least(0);","});","","pm.test('Basic consistency: total aligns with analysis presence', function () {","    var jsonData = pm.response.json();","","    var analysis = (jsonData.items && typeof jsonData.items.analysis === 'string')","        ? jsonData.items.analysis.trim()","        : '';","","    if (jsonData.total === 0) {","        // If total indicates \"no items\", analysis should not be meaningfully present.","        pm.expect(analysis.length).to.equal(0);","    } else {","        // If total indicates items exist, analysis should be present.","        pm.expect(analysis.length).to.be.greaterThan(0);","    }","});","","pm.test('Optional: analysis loosely references subject (if subject can be parsed)', function () {","    var jsonData = pm.response.json();","","    // Derive subject from the raw request body (if available) without failing if parsing fails.","    var subject = null;","    try {","        var rawBody = pm.request && pm.request.body && pm.request.body.raw;","        if (typeof rawBody === 'string' && rawBody.trim().length) {","            var parsedBody = JSON.parse(rawBody);","            if (parsedBody && typeof parsedBody.subject === 'string') {","                subject = parsedBody.subject.trim();","            }","        }","    } catch (e) {","        // Intentionally ignore parsing errors.","    }","","    // This check is best-effort and non-blocking.","    if (!subject) {","        pm.expect(true).to.eql(true);","        return;","    }","","    var analysis = (jsonData.items && typeof jsonData.items.analysis === 'string')","        ? jsonData.items.analysis","        : '';","","    // Very loose mention check: ensure at least one meaningful token from subject appears in analysis.","    var tokens = subject","        .toLowerCase()","        .split(/\\s+/)","        .map(function (t) { return t.replace(/[^a-z0-9]/gi, ''); })","        .filter(function (t) { return t.length >= 4; });","","    if (!tokens.length) {","        pm.expect(true).to.eql(true);","        return;","    }","","    var analysisLower = String(analysis).toLowerCase();","    var mentioned = tokens.some(function (t) { return analysisLower.indexOf(t) !== -1; });","","    pm.expect(mentioned, 'Expected analysis to mention at least one meaningful token from subject').to.eql(true);","});",""],"type":"text/javascript","packages":{},"requests":{}}}],"id":"071f18ee-16af-4872-bfcc-79ad5bf5fe97","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"api\": true,\r\n    \"subject\": \"Your newsletter subject line here\",\r\n    \"isTopPerformer\": true\r\n}","options":{"raw":{"language":"json"}}},"url":"https://{{serverPrefix}}.api.tryletterhead.com/api/v3/letters/subject-line-analyses","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{apiKey}}"}]},"isInherited":true,"source":{"_postman_id":"b188d139-a966-4327-96e6-e2c968c284aa","id":"b188d139-a966-4327-96e6-e2c968c284aa","name":"Letterhead API","type":"collection"}},"urlObject":{"protocol":"https","path":["api","v3","letters","subject-line-analyses"],"host":["{{serverPrefix}}","api","tryletterhead","com"],"query":[],"variable":[]}},"response":[{"id":"889adb88-de9d-4b21-9373-9b4d00b026c1","name":"Subject Line Analysis (Coming Soon)","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"api\": true,\r\n    \"subject\": \"Your newsletter subject line here\",\r\n    \"isTopPerformer\": true\r\n}","options":{"raw":{"language":"json"}}},"url":"https://{{serverPrefix}}.api.tryletterhead.com/api/v3/letters/subject-line-analyses"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"server","value":"nginx/1.27.3"},{"key":"content-type","value":"application/json"},{"key":"x-powered-by","value":"PHP/7.4.33"},{"key":"access-control-allow-origin","value":"*"},{"key":"access-control-allow-credentials","value":"true"},{"key":"access-control-max-age","value":"86400"},{"key":"cache-control","value":"no-cache, private"},{"key":"date","value":"Wed, 18 Mar 2026 23:01:30 GMT"},{"key":"via","value":"1.1 google"},{"key":"Alt-Svc","value":"h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000"},{"key":"Transfer-Encoding","value":"chunked"}],"cookie":[],"responseTime":null,"body":"{\n    \"items\": {\n        \"analysis\": \"The subject line \\\"Your newsletter subject line here\\\" likely performed well due to its clear personalization, making recipients feel directly addressed and engaged. While it doesn't employ urgency or curiosity, its straightforwardness and relevance suggest that subscribers recognized it as directly related to their interests, enhancing open rates. The medium length keeps it concise, while the informative tone assures recipients of its value, contributing positively to their decision to open the email.\"\n    },\n    \"message\": \"Do something kind today\",\n    \"total\": 1\n}"}],"_postman_id":"071f18ee-16af-4872-bfcc-79ad5bf5fe97"},{"name":"Subject Line Performances (Coming Soon)","event":[{"listen":"test","script":{"id":"9eaa2982-e68d-4c0c-931b-f54c4b696dc6","exec":["pm.test(\"Status is 200\", function () {","  pm.response.to.have.status(200);","});","","pm.test(\"Response is JSON\", function () {","  pm.response.to.be.json;","  pm.expect(function () { pm.response.json(); }).to.not.throw();","});","","// Parse once and reuse across tests","let json;","pm.test(\"Parse response JSON\", function () {","  json = pm.response.json();","  pm.expect(json).to.be.an(\"object\");","});","","pm.test(\"Has required top-level properties\", function () {","  pm.expect(json).to.be.an(\"object\");","","  pm.expect(json).to.have.property(\"items\");","  pm.expect(json).to.have.property(\"message\");","  pm.expect(json).to.have.property(\"total\");","","  pm.expect(json.items).to.be.an(\"object\");","  pm.expect(json.message).to.be.a(\"string\");","  pm.expect(json.message.trim(), \"message should be non-empty\").to.not.equal(\"\");","  pm.expect(json.total).to.be.a(\"number\");","});","","pm.test(\"items has top and bottom arrays\", function () {","  pm.expect(json.items).to.be.an(\"object\");","","  pm.expect(json.items).to.have.property(\"top\");","  pm.expect(json.items).to.have.property(\"bottom\");","","  pm.expect(json.items.top).to.be.an(\"array\");","  pm.expect(json.items.bottom).to.be.an(\"array\");","});","","pm.test(\"top/bottom arrays have max length 5\", function () {","  pm.expect(json.items.top.length, \"items.top length\").to.be.at.most(5);","  pm.expect(json.items.bottom.length, \"items.bottom length\").to.be.at.most(5);","});","","pm.test(\"total equals top.length + bottom.length (when total present)\", function () {","  if (Object.prototype.hasOwnProperty.call(json, \"total\") && json.total !== null) {","    pm.expect(json.total, \"total should equal top.length + bottom.length\").to.equal(","      json.items.top.length + json.items.bottom.length","    );","  }","});","","pm.test(\"top/bottom entries have valid types and ranges\", function () {","  const validateEntry = (entry, which, idx) => {","    pm.expect(entry, `${which}[${idx}] should be an object`).to.be.an(\"object\");","","    // Required fields (current response shape)","    pm.expect(entry, `${which}[${idx}] missing subject`).to.have.property(\"subject\");","    pm.expect(entry, `${which}[${idx}] missing openRate`).to.have.property(\"openRate\");","    pm.expect(entry, `${which}[${idx}] missing sent`).to.have.property(\"sent\");","    pm.expect(entry, `${which}[${idx}] missing letter`).to.have.property(\"letter\");","    pm.expect(entry, `${which}[${idx}] missing channel`).to.have.property(\"channel\");","    pm.expect(entry, `${which}[${idx}] missing organization`).to.have.property(\"organization\");","","    // Types","    pm.expect(entry.subject, `${which}[${idx}].subject should be string`).to.be.a(\"string\");","    pm.expect(entry.openRate, `${which}[${idx}].openRate should be number`).to.be.a(\"number\");","    pm.expect(entry.sent, `${which}[${idx}].sent should be number`).to.be.a(\"number\");","    pm.expect(entry.letter, `${which}[${idx}].letter should be string`).to.be.a(\"string\");","    pm.expect(entry.channel, `${which}[${idx}].channel should be string`).to.be.a(\"string\");","    pm.expect(entry.organization, `${which}[${idx}].organization should be string`).to.be.a(\"string\");","","    // String non-empty","    pm.expect(entry.subject.trim(), `${which}[${idx}].subject should be non-empty`).to.not.equal(\"\");","    pm.expect(entry.letter.trim(), `${which}[${idx}].letter should be non-empty`).to.not.equal(\"\");","    pm.expect(entry.channel.trim(), `${which}[${idx}].channel should be non-empty`).to.not.equal(\"\");","    pm.expect(entry.organization.trim(), `${which}[${idx}].organization should be non-empty`).to.not.equal(\"\");","","    // Ranges","    pm.expect(entry.openRate, `${which}[${idx}].openRate should be between 0 and 100`).to.be.within(0, 100);","","    // sent integer >= 0","    pm.expect(Number.isInteger(entry.sent), `${which}[${idx}].sent should be an integer`).to.equal(true);","    pm.expect(entry.sent, `${which}[${idx}].sent should be >= 0`).to.be.at.least(0);","  };","","  json.items.top.forEach((entry, idx) => validateEntry(entry, \"items.top\", idx));","  json.items.bottom.forEach((entry, idx) => validateEntry(entry, \"items.bottom\", idx));","});",""],"type":"text/javascript","packages":{},"requests":{}}}],"id":"53fd6f5a-1b21-4130-ae0b-f45c54b5a9e3","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://{{serverPrefix}}.api.tryletterhead.com/api/v3/letters/subject-line-performances?api=true","description":"<p>This endpoint returns the top 5 and bottom 5 performing subject lines for the authenticated company, ranked by open rate. As a <code>v3</code> endpoint, it requires a company-derived API key.</p>\n<p>It returns two arrays — <code>top</code> and <code>bottom</code> — each containing up to 5 items with the subject line text, open rate percentage, send count, and associated newsletters, channels, and organizations.</p>\n<p>No analysis is included; this is purely metrics-driven.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{apiKey}}"}]},"isInherited":true,"source":{"_postman_id":"b188d139-a966-4327-96e6-e2c968c284aa","id":"b188d139-a966-4327-96e6-e2c968c284aa","name":"Letterhead API","type":"collection"}},"urlObject":{"protocol":"https","path":["api","v3","letters","subject-line-performances"],"host":["{{serverPrefix}}","api","tryletterhead","com"],"query":[{"description":{"content":"<p><strong>required</strong> | When set to <code>true</code>, this endpoint will accept authorization with your API Key.</p>\n","type":"text/plain"},"key":"api","value":"true"}],"variable":[]}},"response":[{"id":"7f6171a9-f363-4cd6-bae4-31fea6dfacbf","name":"Subject Line Performances (Coming Soon)","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://{{serverPrefix}}.api.tryletterhead.com/api/v3/letters/subject-line-performances?api=true","protocol":"https","host":["{{serverPrefix}}","api","tryletterhead","com"],"path":["api","v3","letters","subject-line-performances"],"query":[{"key":"api","value":"true","description":"**required** | When set to `true`, this endpoint will accept authorization with your API Key."}]}},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"server","value":"nginx/1.27.3"},{"key":"content-type","value":"application/json"},{"key":"x-powered-by","value":"PHP/7.4.33"},{"key":"access-control-allow-origin","value":"*"},{"key":"access-control-allow-credentials","value":"true"},{"key":"access-control-max-age","value":"86400"},{"key":"cache-control","value":"no-cache, private"},{"key":"date","value":"Wed, 18 Mar 2026 23:06:01 GMT"},{"key":"via","value":"1.1 google"},{"key":"Alt-Svc","value":"h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000"},{"key":"Transfer-Encoding","value":"chunked"}],"cookie":[],"responseTime":null,"body":"{\n    \"items\": {\n        \"top\": [\n            {\n                \"subject\": \"Draft 720\",\n                \"openRate\": 100,\n                \"sent\": 1,\n                \"letter\": \"vkky0g63zs\",\n                \"channel\": \"black-bitter-iced-tea-times\",\n                \"organization\": \"black-bitter-coffee-brand\"\n            },\n            {\n                \"subject\": \"F1 Unlocked Template\",\n                \"openRate\": 100,\n                \"sent\": 13,\n                \"letter\": \"nrhi21smx3\",\n                \"channel\": \"black-bitter-coffee\",\n                \"organization\": \"black-bitter-coffee-brand\"\n            },\n            {\n                \"subject\": \"Harsh E2E Test\",\n                \"openRate\": 100,\n                \"sent\": 1,\n                \"letter\": \"0xlfgg8owg\",\n                \"channel\": \"black-bitter-coffee\",\n                \"organization\": \"black-bitter-coffee-brand\"\n            },\n            {\n                \"subject\": \"F1 Unlocked Template\",\n                \"openRate\": 92,\n                \"sent\": 13,\n                \"letter\": \"ndefdg8zl0\",\n                \"channel\": \"black-bitter-coffee\",\n                \"organization\": \"black-bitter-coffee-brand\"\n            },\n            {\n                \"subject\": \"F1 Unlocked Template\",\n                \"openRate\": 92,\n                \"sent\": 13,\n                \"letter\": \"2tebekvmiu\",\n                \"channel\": \"black-bitter-coffee\",\n                \"organization\": \"black-bitter-coffee-brand\"\n            }\n        ],\n        \"bottom\": [\n            {\n                \"subject\": \"Anna's Cupcake Shop\",\n                \"openRate\": 0,\n                \"sent\": 0,\n                \"letter\": \"dtqw2gzyqu\",\n                \"channel\": \"black-bitter-tea\",\n                \"organization\": \"black-bitter-coffee-brand\"\n            },\n            {\n                \"subject\": \"F1 Unlocked Template\",\n                \"openRate\": 0,\n                \"sent\": 0,\n                \"letter\": \"17nsgad7m9\",\n                \"channel\": \"black-bitter-coffee\",\n                \"organization\": \"black-bitter-coffee-brand\"\n            },\n            {\n                \"subject\": \"A New Right Quick\",\n                \"openRate\": 0,\n                \"sent\": 3,\n                \"letter\": \"n3wdcbv4bs\",\n                \"channel\": \"black-bitter-coffee\",\n                \"organization\": \"black-bitter-coffee-brand\"\n            },\n            {\n                \"subject\": \"Create and Monetize Great Newsletters Easily\",\n                \"openRate\": 0,\n                \"sent\": 3,\n                \"letter\": \"4f3fsndi0s\",\n                \"channel\": \"black-bitter-coffee\",\n                \"organization\": \"black-bitter-coffee-brand\"\n            },\n            {\n                \"subject\": \"F1 Unlocked Template\",\n                \"openRate\": 0,\n                \"sent\": 0,\n                \"letter\": \"5gr5nkngrf\",\n                \"channel\": \"black-bitter-coffee\",\n                \"organization\": \"black-bitter-coffee-brand\"\n            }\n        ]\n    },\n    \"message\": \"Do something kind today\",\n    \"total\": 10\n}"}],"_postman_id":"53fd6f5a-1b21-4130-ae0b-f45c54b5a9e3"},{"name":"Trigger Preflight Agents","event":[{"listen":"test","script":{"id":"4eeebcce-31f1-42de-b527-b0019fe3291b","exec":["/**"," * Trigger Preflight Agents — Post-response tests"," * Strict validation runs only on HTTP 201."," */","","const status = pm.response.code;","","pm.test(\"Status is not 5xx\", function () {","    pm.expect(status, `Unexpected 5xx response: ${status}`).to.be.below(500);","});","","if (status !== 201) {","    pm.test(\"Skipped strict validation (status was not 201)\", function () {","        pm.expect(status).to.not.eql(201);","    });","} else {","    let json;","","    pm.test(\"Response is valid JSON\", function () {","        pm.expect(() => {","            json = pm.response.json();","        }).to.not.throw();","    });","","    // Only run strict assertions if JSON parsing succeeded","    if (json !== undefined) {","        const expectedKeys = [","            \"ids\",","            \"resourceType\",","            \"status\",","            \"summary\",","            \"validationCode\",","            \"dispatchedAt\",","            \"startedAt\",","            \"completedAt\",","            \"createdAt\",","            \"updatedAt\",","            \"judgments\"","        ];","","        pm.test(\"Body is an object containing at least the expected keys\", function () {","            pm.expect(json).to.be.an(\"object\");","            pm.expect(Array.isArray(json)).to.be.false;","","            // allow additional keys, but require all expected keys","            expectedKeys.forEach((k) => {","                pm.expect(json, `Missing key: ${k}`).to.have.property(k);","            });","        });","","        const isIsoDateTime = (value) => {","            if (typeof value !== \"string\") return false;","            // Basic ISO 8601 datetime check; allows fractional seconds and timezone offsets.","            const isoRegex = /^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{1,9})?(?:Z|[+-]\\d{2}:\\d{2})$/;","            if (!isoRegex.test(value)) return false;","            return !Number.isNaN(Date.parse(value));","        };","","        const isNullOrString = (value) => value === null || typeof value === \"string\";","        const isNullOrIsoDateTime = (value) => value === null || isIsoDateTime(value);","","        pm.test(\"Type validation\"...(truncated). ",""],"type":"text/javascript","packages":{},"requests":{}}}],"id":"91842eea-c3e6-412c-ba6d-9578200a8bf3","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"api","value":"true","description":"<p><strong>required</strong> | When set to <code>true</code>, this endpoint will accept authorization with your API Key.</p>\n","type":"text","uuid":"daf1eb41-5c33-4242-889b-fd83726a2c51"}]},"url":"https://{{serverPrefix}}.api.tryletterhead.com/api/v3/letters/{{letterUuid}}/agents/actions/run-preflight","description":"<p>Provided you have any preflight agents, this endpoint allows you to trigger them. The newsletter must be in a preflight <em>status</em> - that is, <code>scheduling</code> - for the agents to actually run.</p>\n<p><code>v3</code> endpoints expect a company API key.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{apiKey}}"}]},"isInherited":true,"source":{"_postman_id":"b188d139-a966-4327-96e6-e2c968c284aa","id":"b188d139-a966-4327-96e6-e2c968c284aa","name":"Letterhead API","type":"collection"}},"urlObject":{"protocol":"https","path":["api","v3","letters","{{letterUuid}}","agents","actions","run-preflight"],"host":["{{serverPrefix}}","api","tryletterhead","com"],"query":[],"variable":[]}},"response":[{"id":"76a7629e-7829-4644-9a21-10504e8180d0","name":"Trigger Preflight Agents","originalRequest":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"api","value":"true","description":"**required** | When set to `true`, this endpoint will accept authorization with your API Key.","type":"text","uuid":"daf1eb41-5c33-4242-889b-fd83726a2c51"},{"key":"agentUniqueId","value":"","description":"**required** | The identifier of the agent.","type":"text","uuid":"869c4a94-dcd9-4405-a188-6e4a2bccc39d"}]},"url":"https://{{serverPrefix}}.api.tryletterhead.com/api/v3/letters/{{letterUuid}}/agents/actions/run-preflight"},"status":"Created","code":201,"_postman_previewlanguage":null,"header":[{"key":":status","value":201},{"key":"server","value":"nginx/1.27.3"},{"key":"content-type","value":"application/json"},{"key":"x-powered-by","value":"PHP/7.4.33"},{"key":"access-control-allow-origin","value":"*"},{"key":"access-control-allow-credentials","value":"true"},{"key":"access-control-max-age","value":"86400"},{"key":"cache-control","value":"no-cache, private"},{"key":"date","value":"Thu, 26 Mar 2026 15:02:52 GMT"},{"key":"via","value":"1.1 google"},{"key":"alt-svc","value":"h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000"}],"cookie":[],"responseTime":null,"body":"{\n    \"items\": {\n        \"uniqueId\": \"vq5rnof1op\",\n        \"agentUniqueId\": \"8vbkbo1yqz\",\n        \"resourceType\": 0,\n        \"resourceUniqueId\": \"35f725edbi\",\n        \"status\": 0,\n        \"summary\": null,\n        \"validationCode\": 200,\n        \"dispatchedAt\": null,\n        \"startedAt\": null,\n        \"completedAt\": null,\n        \"judgments\": [],\n        \"createdAt\": \"2026-03-26 15:02:52\",\n        \"updatedAt\": \"2026-03-26 15:02:52\"\n    },\n    \"message\": \"\",\n    \"total\": 10\n}"}],"_postman_id":"91842eea-c3e6-412c-ba6d-9578200a8bf3"},{"name":"List Agent Activity on a Letter","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test(\"Status code is 200\", function () {","  pm.response.to.have.status(200);","});",""]}}],"id":"e501ca01-7260-45e3-bb38-bf587d663159","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://{{serverPrefix}}.api.tryletterhead.com/api/v3/letters/{{letterUuid}}/agents/runs?api=true","description":"<p>Provided you have any preflight agents, this endpoint allows you to trigger them. The newsletter must be in a preflight <em>status</em> - that is, <code>scheduling</code> - for the agents to actually run.</p>\n<p><code>v3</code> endpoints expect a company API key.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{apiKey}}"}]},"isInherited":true,"source":{"_postman_id":"b188d139-a966-4327-96e6-e2c968c284aa","id":"b188d139-a966-4327-96e6-e2c968c284aa","name":"Letterhead API","type":"collection"}},"urlObject":{"protocol":"https","path":["api","v3","letters","{{letterUuid}}","agents","runs"],"host":["{{serverPrefix}}","api","tryletterhead","com"],"query":[{"description":{"content":"<p><strong>required</strong> | When set to <code>true</code>, this endpoint will accept authorization with your API Key.</p>\n","type":"text/plain"},"key":"api","value":"true"}],"variable":[]}},"response":[{"id":"215d33a1-0e69-4a4a-94c1-3c8fed63b3de","name":"List Agent Activity on a Letter","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://{{serverPrefix}}.api.tryletterhead.com/api/v3/letters/{{letterUuid}}/agents/runs?api=true","protocol":"https","host":["{{serverPrefix}}","api","tryletterhead","com"],"path":["api","v3","letters","{{letterUuid}}","agents","runs"],"query":[{"key":"api","value":"true","description":"**required** | When set to `true`, this endpoint will accept authorization with your API Key."}]}},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":":status","value":200},{"key":"server","value":"nginx/1.27.3"},{"key":"content-type","value":"application/json"},{"key":"x-powered-by","value":"PHP/7.4.33"},{"key":"access-control-allow-origin","value":"*"},{"key":"access-control-allow-credentials","value":"true"},{"key":"access-control-max-age","value":"86400"},{"key":"cache-control","value":"no-cache, private"},{"key":"date","value":"Thu, 26 Mar 2026 15:31:55 GMT"},{"key":"via","value":"1.1 google"},{"key":"alt-svc","value":"h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000"}],"cookie":[],"responseTime":null,"body":"{\n    \"items\": [\n        {\n            \"uniqueId\": \"vq5rnof1op\",\n            \"agentUniqueId\": \"8vbkbo1yqz\",\n            \"resourceType\": 0,\n            \"resourceUniqueId\": \"35f725edbi\",\n            \"status\": 1,\n            \"summary\": \"The newsletter has several important areas needing attention, primarily focused on link validity and clarity in messaging. The subject line is also a concern as it is too short, which can affect deliverability. Addressing these issues will enhance the overall quality and effectiveness of the newsletter.\",\n            \"validationCode\": 200,\n            \"dispatchedAt\": \"2026-03-26 15:02:52\",\n            \"startedAt\": \"2026-03-26 15:02:56\",\n            \"completedAt\": \"2026-03-26 15:03:02\",\n            \"judgments\": [\n                {\n                    \"uniqueId\": \"yygmhgew0t\",\n                    \"severity\": 2,\n                    \"confidence\": 85,\n                    \"category\": \"links\",\n                    \"finding\": \"The 'View in browser' link is not valid (isValid: false).\",\n                    \"suggestion\": \"Ensure the link is correctly set up to direct users to the newsletter content.\",\n                    \"state\": 0,\n                    \"createdAt\": \"2026-03-26 15:03:02\",\n                    \"updatedAt\": \"2026-03-26 15:03:02\"\n                },\n                {\n                    \"uniqueId\": \"r377izgox0\",\n                    \"severity\": 2,\n                    \"confidence\": 80,\n                    \"category\": \"content\",\n                    \"finding\": \"The subject line is too short and may trigger spam filters, impacting reader trust.\",\n                    \"suggestion\": \"Consider revising the subject line to make it longer and more engaging without using spam-triggering language.\",\n                    \"state\": 0,\n                    \"createdAt\": \"2026-03-26 15:03:02\",\n                    \"updatedAt\": \"2026-03-26 15:03:02\"\n                },\n                {\n                    \"uniqueId\": \"7n1si3bgkq\",\n                    \"severity\": 3,\n                    \"confidence\": 75,\n                    \"category\": \"clarity\",\n                    \"finding\": \"The statement 'Start writing something great...' in the footer is vague and lacks a clear call to action.\",\n                    \"suggestion\": \"Replace this text with a specific call to action, such as 'Explore our latest promotions!' to direct reader engagement.\",\n                    \"state\": 0,\n                    \"createdAt\": \"2026-03-26 15:03:02\",\n                    \"updatedAt\": \"2026-03-26 15:03:02\"\n                }\n            ],\n            \"createdAt\": \"2026-03-26 15:02:52\",\n            \"updatedAt\": \"2026-03-26 15:03:02\"\n        }\n    ],\n    \"message\": \"\",\n    \"total\": 1\n}"}],"_postman_id":"e501ca01-7260-45e3-bb38-bf587d663159"}],"id":"48242ec7-d181-4d45-b424-b8b460fa9a4b","description":"<p>The <code>v3</code> API is identical to the <code>v2</code> API in almost every way other than scope. <code>v3</code> endpoints accommodate company-wide management, and require keys generated from within a company's administrative settings.</p>\n","_postman_id":"48242ec7-d181-4d45-b424-b8b460fa9a4b","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{apiKey}}"}]},"isInherited":true,"source":{"_postman_id":"b188d139-a966-4327-96e6-e2c968c284aa","id":"b188d139-a966-4327-96e6-e2c968c284aa","name":"Letterhead API","type":"collection"}}},{"name":"v2","item":[{"name":"Delete letter","id":"278d5801-322c-43dc-9d7c-9d8fdd0ccbfe","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"body":{"mode":"formdata","formdata":[]},"url":"https://{{serverPrefix}}.api.tryletterhead.com/api/v2/letters/{{letterUuid}}/actions/delete","description":"<p>This route allows administrators to delete a letter by its unique identifier.</p>\n<p><strong>What is the letter or template's unique identifier?</strong> The unique identifier is an alphanumeric string, often around ten digits. It looks like <code>abcdefhijk</code>.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{apiKey}}"}]},"isInherited":true,"source":{"_postman_id":"b188d139-a966-4327-96e6-e2c968c284aa","id":"b188d139-a966-4327-96e6-e2c968c284aa","name":"Letterhead API","type":"collection"}},"urlObject":{"protocol":"https","path":["api","v2","letters","{{letterUuid}}","actions","delete"],"host":["{{serverPrefix}}","api","tryletterhead","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"278d5801-322c-43dc-9d7c-9d8fdd0ccbfe"},{"name":"Schedule letter","id":"d5c96088-c85b-45f4-935d-01b8b063c362","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"date","value":"{{ publicationDate }}","description":"<p><strong>required</strong> | Declare the time to schedule the campaign for delivery in ISO 8601 format.</p>\n<p>Example: <code>2024-05-29T15:15:00</code></p>\n<p>The time is locale to the Channel's timezone, for now, and must be at least 5 minutes in the future.</p>\n","type":"text"},{"key":"segment","value":"{{ segmentUuid }}","description":"<p><strong>required</strong> | Identify the audience segment you wish to target by passing its identifier. If you pass <code>null</code>, the Letter will send to its entire audience.</p>\n","type":"text","contentType":""},{"key":"subject","value":"","description":"<p><strong>optional</strong> | Set the subject of your letter. If not present, the letter's subject will be dynamically set based on the first heading found in the content.</p>\n","type":"text"}]},"url":"https://{{serverPrefix}}.api.tryletterhead.com/api/v2/letters/{{letterUuid}}/actions/schedule","description":"<p>Schedule an existing letter by its unique identifier, <em>or</em> generate and schedule a new letter by using the unique identifier of a template.</p>\n<p><strong>What is the letter or template's unique identifier?</strong> The unique identifier is an alphanumeric string, often around ten digits. It looks like <code>abcdefhijk</code>.</p>\n<p><strong>How does the API behave when a given letter or template has a specific status?</strong></p>\n<ul>\n<li><p>If the letter is a <em>draft</em>, or it's already been scheduled but not yet published, then Letterhead will reschedule that letter for the desired time.</p>\n</li>\n<li><p>If the letter has already been <em>published</em>, then Letterhead won't resend it, and the API will return a <code>400</code> .</p>\n</li>\n<li><p>If the template is <em>active</em>, then Letterhead will use that template to create an all-new email, produce it, and schedule it at the desired time.</p>\n</li>\n<li><p>If the template is <em>inactive</em>, however, then Letterhead will assume your organization doesn't want it used and our API will return a <code>400</code>.</p>\n</li>\n</ul>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{apiKey}}"}]},"isInherited":true,"source":{"_postman_id":"b188d139-a966-4327-96e6-e2c968c284aa","id":"b188d139-a966-4327-96e6-e2c968c284aa","name":"Letterhead API","type":"collection"}},"urlObject":{"protocol":"https","path":["api","v2","letters","{{letterUuid}}","actions","schedule"],"host":["{{serverPrefix}}","api","tryletterhead","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"d5c96088-c85b-45f4-935d-01b8b063c362"},{"name":"Send letter","id":"f3c28908-a33f-440a-b701-54ed717d90d2","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"segment","value":"{{ segmentUuid }}","description":"<p><strong>required</strong> | Identify the audience segment you wish to target by passing its identifier. If you pass <code>null</code>, the Letter will send to its entire audience.</p>\n","type":"text","contentType":""},{"key":"subject","value":"","description":"<p><strong>optional</strong> | Set the subject of your letter. If not present, the letter's subject will be dynamically set based on the first heading found in the content.</p>\n","type":"text"}]},"url":"https://{{serverPrefix}}.api.tryletterhead.com/api/v2/letters/{{letterUuid}}/actions/send","description":"<p>Send an existing letter immediately by its unique identifier, <em>or</em> generate and send a new letter by using the unique identifier of a template.</p>\n<p><strong>What is the letter or template's unique identifier?</strong> The unique identifier is an alphanumeric string, often around ten digits. It looks like <code>abcdefhijk</code>.</p>\n<p><strong>How does the API behave when a given letter or template has a specific status?</strong></p>\n<ul>\n<li><p>If the letter is a <em>draft</em>, or it's already been scheduled but not yet published, then Letterhead will reschedule that letter for the desired time.</p>\n</li>\n<li><p>If the letter has already been <em>published</em>, then Letterhead won't resend it, and the API will return a <code>400</code> .</p>\n</li>\n<li><p>If the template is <em>active</em>, then Letterhead will use that template to create an all-new email, produce it, and schedule it at the desired time.</p>\n</li>\n<li><p>If the template is <em>inactive</em>, however, then Letterhead will assume your organization doesn't want it used and our API will return a <code>400</code>.</p>\n</li>\n</ul>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{apiKey}}"}]},"isInherited":true,"source":{"_postman_id":"b188d139-a966-4327-96e6-e2c968c284aa","id":"b188d139-a966-4327-96e6-e2c968c284aa","name":"Letterhead API","type":"collection"}},"urlObject":{"protocol":"https","path":["api","v2","letters","{{letterUuid}}","actions","send"],"host":["{{serverPrefix}}","api","tryletterhead","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"f3c28908-a33f-440a-b701-54ed717d90d2"},{"name":"Unschedule letter","id":"a3a3beb3-ee6f-435e-8695-23684d09f8ef","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[]},"url":"https://{{serverPrefix}}.api.tryletterhead.com/api/v2/letters/{{letterUuid}}/actions/unschedule","description":"<p>Schedule an existing letter by its unique identifier, <em>or</em> generate and schedule a new letter by using the unique identifier of a template.</p>\n<p><strong>What is the letter or template's unique identifier?</strong> The unique identifier is an alphanumeric string, often around ten digits. It looks like <code>abcdefhijk</code>.</p>\n<p><strong>How does the API behave when a given letter or template has a specific status?</strong></p>\n<ul>\n<li><p>If the letter is a <em>draft</em>, or it's already been scheduled but not yet published, then Letterhead will reschedule that letter for the desired time.</p>\n</li>\n<li><p>If the letter has already been <em>published</em>, then Letterhead won't resend it, and the API will return a <code>400</code> .</p>\n</li>\n<li><p>If the template is <em>active</em>, then Letterhead will use that template to create an all-new email, produce it, and schedule it at the desired time.</p>\n</li>\n<li><p>If the template is <em>inactive</em>, however, then Letterhead will assume your organization doesn't want it used and our API will return a <code>400</code>.</p>\n</li>\n</ul>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{apiKey}}"}]},"isInherited":true,"source":{"_postman_id":"b188d139-a966-4327-96e6-e2c968c284aa","id":"b188d139-a966-4327-96e6-e2c968c284aa","name":"Letterhead API","type":"collection"}},"urlObject":{"protocol":"https","path":["api","v2","letters","{{letterUuid}}","actions","unschedule"],"host":["{{serverPrefix}}","api","tryletterhead","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"a3a3beb3-ee6f-435e-8695-23684d09f8ef"}],"id":"b1980a17-4d92-4c5a-af8b-6d11ca306107","description":"<p>The <code>v2</code> API and the <code>v3</code> API are almost identical except for scope. The <code>v2</code> API accommodates organization-wide management, and requires keys generated from the organization level.</p>\n","_postman_id":"b1980a17-4d92-4c5a-af8b-6d11ca306107","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{apiKey}}"}]},"isInherited":true,"source":{"_postman_id":"b188d139-a966-4327-96e6-e2c968c284aa","id":"b188d139-a966-4327-96e6-e2c968c284aa","name":"Letterhead API","type":"collection"}}}],"id":"a346d990-d01f-4371-abeb-1fe4f84043c2","description":"<p>Our <strong>Letters API</strong> -- <code>api/v2/letters/...</code> -- allows developers to interact with an organization's newsletters outside of the constraint of its Channel.</p>\n","_postman_id":"a346d990-d01f-4371-abeb-1fe4f84043c2","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{apiKey}}"}]},"isInherited":true,"source":{"_postman_id":"b188d139-a966-4327-96e6-e2c968c284aa","id":"b188d139-a966-4327-96e6-e2c968c284aa","name":"Letterhead API","type":"collection"}}},{"name":"Marketing","item":[{"name":"v2","item":[{"name":"Send email","id":"ec071fa2-7c45-4b52-be15-9572d30d08d8","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"emails","value":"","description":"<p><strong>required</strong> | <code>array</code> List of email addresses you wish to target. </p>\n<p><em>Note</em>: while \"emails\" implies a plurality, Letterhead presently accepts only one email address.</p>\n","type":"text","contentType":""},{"key":"html","value":"","description":"<p><strong>required</strong> | <code>string</code> The raw, valid HTML body of your email, starting with its opening <code>doctype</code>. Your email must comply with CANSPAM.</p>\n","type":"text"},{"key":"channel","value":"","description":"<p><strong>required</strong> | <code>string</code> The channel identifier (or \"channel slug\") where the recipients of this email are subscribed.</p>\n","type":"text"},{"key":"subject","value":"","description":"<p><strong>required</strong> | <code>string</code> The email subject of the newsletter. Maximum 191 characters.</p>\n","type":"text"}]},"url":"https://{{serverPrefix}}.api.tryletterhead.com/api/v2/marketing/actions/send","description":"<p>Send a marketing email with your own HTML.</p>\n<p>The emails provided must be current subscribers of the corresponding channel, or Letterhead will return a <code>400</code>.</p>\n<p>Your HTML must comply with all regional laws in addition to CANSPAM.</p>\n<p>Remember that Gmail will \"clip\" an email that's greater than 102kb. Letterhead won't compress HTML you compose, so be sure to take its filesize in consideration.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{apiKey}}"}]},"isInherited":true,"source":{"_postman_id":"b188d139-a966-4327-96e6-e2c968c284aa","id":"b188d139-a966-4327-96e6-e2c968c284aa","name":"Letterhead API","type":"collection"}},"urlObject":{"protocol":"https","path":["api","v2","marketing","actions","send"],"host":["{{serverPrefix}}","api","tryletterhead","com"],"query":[],"variable":[]}},"response":[{"id":"23a4ba34-fd84-4734-8403-e10c0316e970","name":"Email successfully sent","originalRequest":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"emails[]","value":"jdoe@example.com","description":"**required** | `array` List of email addresses you wish to target. \n\n*Note*: while \"emails\" implies a plurality, Letterhead presently accepts only one email address.","type":"text","contentType":""},{"key":"html","value":"<html><head><title>Amazing Newsletter Survey</title></head><body><h1>How are you enjoying our newsletter?</h1><p>We're hoping you have some kind words to say.</p></body></html>","description":"**required** | `string` The raw, valid HTML body of your email, starting with its opening `doctype`. Your email must comply with CANSPAM.","type":"text"},{"key":"channel","value":"black-bitter-coffee-times","description":"**required** | `string` The channel identifier (or \"channel slug\") where the recipients of this email are subscribed.","type":"text"},{"key":"subject","value":"Can we ask you a question?","description":"**required** | `string` The email subject of the newsletter. Maximum 191 characters.","type":"text"}]},"url":"https://{{serverPrefix}}.tryletterhead.com/api/v2/marketing/actions/send"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Server","value":"nginx/1.14.0 (Ubuntu)"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"Access-Control-Max-Age","value":"86400"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Date","value":"Mon, 26 Aug 2024 18:18:33 GMT"}],"cookie":[],"responseTime":null,"body":"\"Your letter with given HTML is scheduled to publish in 5 minutes.\""}],"_postman_id":"ec071fa2-7c45-4b52-be15-9572d30d08d8"}],"id":"08c9081b-035b-4340-bd43-e84b755ce85e","description":"<p>The <code>v2</code> API and the <code>v3</code> API are almost identical except for scope. The <code>v2</code> API accommodates organization-wide management, and requires keys generated from the organization level.</p>\n","_postman_id":"08c9081b-035b-4340-bd43-e84b755ce85e","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{apiKey}}"}]},"isInherited":true,"source":{"_postman_id":"b188d139-a966-4327-96e6-e2c968c284aa","id":"b188d139-a966-4327-96e6-e2c968c284aa","name":"Letterhead API","type":"collection"}}}],"id":"0d6dec0c-c774-459c-ab28-fc0b8335d415","description":"<p>Our <strong>Marketing API</strong> -- <code>api/v2/marketing/...</code> -- is designed around an organization's marketing need that might exist outside of its regular newsletter strategy.</p>\n<p>This API is currently only available on request.</p>\n","_postman_id":"0d6dec0c-c774-459c-ab28-fc0b8335d415","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{apiKey}}"}]},"isInherited":true,"source":{"_postman_id":"b188d139-a966-4327-96e6-e2c968c284aa","id":"b188d139-a966-4327-96e6-e2c968c284aa","name":"Letterhead API","type":"collection"}}},{"name":"Metrics","item":[{"name":"Get metrics","event":[{"listen":"test","script":{"id":"b0a7b713-f904-4154-bbb3-6547a7f4d99d","exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});",""],"type":"text/javascript","packages":{},"requests":{}}}],"id":"f5ef9e27-09ed-4024-b293-7ad2dedd1f04","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"api","value":"true","description":"<p><strong>required</strong> | When set to <code>true</code>, this endpoint will accept authorization with your API Key.</p>\n","type":"text","uuid":"91a4ecd2-9487-4d5a-a810-0f5ccbc5e6bd"},{"key":"from","value":"2026-02-26","description":"<p><strong>required</strong> | <code>string</code> | Period start date (inclusive).</p>\n","type":"text","uuid":"28d7b786-a05c-4937-a7a8-c24ecf86c0c2"},{"key":"to","value":"2026-03-26","description":"<p><strong>required</strong> | <code>string</code> | Period end date (inclusive), must be &gt;= <code>from</code>, max 90 days.</p>\n","type":"text","uuid":"13bdd798-ae98-49e5-b7bc-adcaf45032bc"},{"key":"channels[]","value":"{{channel}}","description":"<p><code>string[]</code> | Optionally filter your metrics with a list of channels (by their identifiers). </p>\n","type":"text","uuid":"75a2a5ab-1eaf-49a1-93bb-c1a4daeed06f"},{"key":"direction","value":"desc","description":"<p><code>string</code> | Change sort direction by optionally specifying \"asc\" or \"desc.\" Descending is default.</p>\n","type":"text","uuid":"0c939e51-c635-4e80-839f-5eb98576342b"},{"key":"groupBy","value":"channel","description":"<p><code>string</code> | Pass <code>channel</code> to include per-channel breakdown</p>\n","type":"text","uuid":"2f2087dd-e33d-4b84-aa23-3bdd85ea2c83"},{"key":"limit","value":"5","description":"<p><code>integer</code> | Items per page for the channel breakdown. Max of 25.</p>\n","type":"text","uuid":"3c2eff8e-682b-48d8-8d02-d47291f88189"},{"key":"page","value":"1","description":"<p><code>integer</code> | Page number for channel breakdown, as those will be paginated.</p>\n","type":"text","uuid":"a90a3aee-935c-4942-a613-6713bbaf8298"},{"key":"sortBy","value":"opens","description":"<p><code>string</code> | Sort by \"opens\" or \"channel\" for a channel breakdown. Defaults to \"opens.\"</p>\n","type":"text","uuid":"29dc9862-2308-4b8d-82bc-a3ec37e11094"}]},"url":"https://{{serverPrefix}}.api.tryletterhead.com/api/v3/metrics","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{apiKey}}"}]},"isInherited":true,"source":{"_postman_id":"b188d139-a966-4327-96e6-e2c968c284aa","id":"b188d139-a966-4327-96e6-e2c968c284aa","name":"Letterhead API","type":"collection"}},"urlObject":{"protocol":"https","path":["api","v3","metrics"],"host":["{{serverPrefix}}","api","tryletterhead","com"],"query":[],"variable":[]}},"response":[{"id":"42b48346-d848-4820-945e-9f652849d5f1","name":"Get metrics","originalRequest":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"api","value":"true","description":"**required** | When set to `true`, this endpoint will accept authorization with your API Key.","type":"text","uuid":"91a4ecd2-9487-4d5a-a810-0f5ccbc5e6bd"},{"key":"from","value":"2026-02-26","description":"**required** | `string` | Period start date (inclusive).","type":"text","uuid":"28d7b786-a05c-4937-a7a8-c24ecf86c0c2"},{"key":"to","value":"2026-03-26","description":"**required** | `string` | Period end date (inclusive), must be >= `from`, max 90 days.","type":"text","uuid":"13bdd798-ae98-49e5-b7bc-adcaf45032bc"},{"key":"","value":"","type":"text","uuid":"75a2a5ab-1eaf-49a1-93bb-c1a4daeed06f","disabled":true}]},"url":"https://{{serverPrefix}}.api.tryletterhead.com/api/v3/metrics"},"status":"OK","code":200,"_postman_previewlanguage":"","header":[{"key":":status","value":200},{"key":"content-type","value":"application/json"}],"cookie":[{"expires":"Invalid Date","domain":"","path":""}],"responseTime":null,"body":"{\n    \"items\": {\n        \"currentPeriod\": {\n            \"totals\": {\n                \"accepted\": 172,\n                \"bounced\": 0,\n                \"clicks\": 6,\n                \"clicksUnique\": 2,\n                \"opensUnique\": 139,\n                \"opensUniqueConfirmed\": 139,\n                \"unsubscribes\": 0\n            },\n            \"daily\": [\n                {\n                    \"date\": \"2026-02-27\",\n                    \"accepted\": 0,\n                    \"bounced\": 0,\n                    \"clicks\": 0,\n                    \"clicksUnique\": 0,\n                    \"opensUnique\": 0,\n                    \"opensUniqueConfirmed\": 0\n                },\n                {\n                    \"date\": \"2026-02-28\",\n                    \"accepted\": 0,\n                    \"bounced\": 0,\n                    \"clicks\": 0,\n                    \"clicksUnique\": 0,\n                    \"opensUnique\": 0,\n                    \"opensUniqueConfirmed\": 0\n                },\n                {\n                    \"date\": \"2026-03-01\",\n                    \"accepted\": 0,\n                    \"bounced\": 0,\n                    \"clicks\": 0,\n                    \"clicksUnique\": 0,\n                    \"opensUnique\": 0,\n                    \"opensUniqueConfirmed\": 0\n                },\n                {\n                    \"date\": \"2026-03-02\",\n                    \"accepted\": 0,\n                    \"bounced\": 0,\n                    \"clicks\": 0,\n                    \"clicksUnique\": 0,\n                    \"opensUnique\": 0,\n                    \"opensUniqueConfirmed\": 0\n                },\n                {\n                    \"date\": \"2026-03-05\",\n                    \"accepted\": 0,\n                    \"bounced\": 0,\n                    \"clicks\": 0,\n                    \"clicksUnique\": 0,\n                    \"opensUnique\": 0,\n                    \"opensUniqueConfirmed\": 0\n                },\n                {\n                    \"date\": \"2026-03-06\",\n                    \"accepted\": 0,\n                    \"bounced\": 0,\n                    \"clicks\": 0,\n                    \"clicksUnique\": 0,\n                    \"opensUnique\": 0,\n                    \"opensUniqueConfirmed\": 0\n                },\n                {\n                    \"date\": \"2026-03-07\",\n                    \"accepted\": 0,\n                    \"bounced\": 0,\n                    \"clicks\": 0,\n                    \"clicksUnique\": 0,\n                    \"opensUnique\": 0,\n                    \"opensUniqueConfirmed\": 0\n                },\n                {\n                    \"date\": \"2026-03-08\",\n                    \"accepted\": 15,\n                    \"bounced\": 0,\n                    \"clicks\": 0,\n                    \"clicksUnique\": 0,\n                    \"opensUnique\": 11,\n                    \"opensUniqueConfirmed\": 11\n                },\n                {\n                    \"date\": \"2026-03-09\",\n                    \"accepted\": 13,\n                    \"bounced\": 0,\n                    \"clicks\": 0,\n                    \"clicksUnique\": 0,\n                    \"opensUnique\": 9,\n                    \"opensUniqueConfirmed\": 9\n                },\n                {\n                    \"date\": \"2026-03-10\",\n                    \"accepted\": 1,\n                    \"bounced\": 0,\n                    \"clicks\": 0,\n                    \"clicksUnique\": 0,\n                    \"opensUnique\": 1,\n                    \"opensUniqueConfirmed\": 1\n                },\n                {\n                    \"date\": \"2026-03-11\",\n                    \"accepted\": 0,\n                    \"bounced\": 0,\n                    \"clicks\": 0,\n                    \"clicksUnique\": 0,\n                    \"opensUnique\": 0,\n                    \"opensUniqueConfirmed\": 0\n                },\n                {\n                    \"date\": \"2026-03-12\",\n                    \"accepted\": 13,\n                    \"bounced\": 0,\n                    \"clicks\": 6,\n                    \"clicksUnique\": 2,\n                    \"opensUnique\": 12,\n                    \"opensUniqueConfirmed\": 12\n                },\n                {\n                    \"date\": \"2026-03-13\",\n                    \"accepted\": 13,\n                    \"bounced\": 0,\n                    \"clicks\": 0,\n                    \"clicksUnique\": 0,\n                    \"opensUnique\": 12,\n                    \"opensUniqueConfirmed\": 12\n                },\n                {\n                    \"date\": \"2026-03-14\",\n                    \"accepted\": 12,\n                    \"bounced\": 0,\n                    \"clicks\": 0,\n                    \"clicksUnique\": 0,\n                    \"opensUnique\": 10,\n                    \"opensUniqueConfirmed\": 10\n                },\n                {\n                    \"date\": \"2026-03-15\",\n                    \"accepted\": 14,\n                    \"bounced\": 0,\n                    \"clicks\": 0,\n                    \"clicksUnique\": 0,\n                    \"opensUnique\": 11,\n                    \"opensUniqueConfirmed\": 11\n                },\n                {\n                    \"date\": \"2026-03-16\",\n                    \"accepted\": 12,\n                    \"bounced\": 0,\n                    \"clicks\": 0,\n                    \"clicksUnique\": 0,\n                    \"opensUnique\": 9,\n                    \"opensUniqueConfirmed\": 9\n                },\n                {\n                    \"date\": \"2026-03-17\",\n                    \"accepted\": 5,\n                    \"bounced\": 0,\n                    \"clicks\": 0,\n                    \"clicksUnique\": 0,\n                    \"opensUnique\": 4,\n                    \"opensUniqueConfirmed\": 4\n                },\n                {\n                    \"date\": \"2026-03-18\",\n                    \"accepted\": 0,\n                    \"bounced\": 0,\n                    \"clicks\": 0,\n                    \"clicksUnique\": 0,\n                    \"opensUnique\": 0,\n                    \"opensUniqueConfirmed\": 0\n                },\n                {\n                    \"date\": \"2026-03-19\",\n                    \"accepted\": 12,\n                    \"bounced\": 0,\n                    \"clicks\": 0,\n                    \"clicksUnique\": 0,\n                    \"opensUnique\": 11,\n                    \"opensUniqueConfirmed\": 11\n                },\n                {\n                    \"date\": \"2026-03-20\",\n                    \"accepted\": 12,\n                    \"bounced\": 0,\n                    \"clicks\": 0,\n                    \"clicksUnique\": 0,\n                    \"opensUnique\": 11,\n                    \"opensUniqueConfirmed\": 11\n                },\n                {\n                    \"date\": \"2026-03-21\",\n                    \"accepted\": 12,\n                    \"bounced\": 0,\n                    \"clicks\": 0,\n                    \"clicksUnique\": 0,\n                    \"opensUnique\": 10,\n                    \"opensUniqueConfirmed\": 10\n                },\n                {\n                    \"date\": \"2026-03-22\",\n                    \"accepted\": 14,\n                    \"bounced\": 0,\n                    \"clicks\": 0,\n                    \"clicksUnique\": 0,\n                    \"opensUnique\": 8,\n                    \"opensUniqueConfirmed\": 8\n                },\n                {\n                    \"date\": \"2026-03-23\",\n                    \"accepted\": 12,\n                    \"bounced\": 0,\n                    \"clicks\": 0,\n                    \"clicksUnique\": 0,\n                    \"opensUnique\": 9,\n                    \"opensUniqueConfirmed\": 9\n                },\n                {\n                    \"date\": \"2026-03-24\",\n                    \"accepted\": 0,\n                    \"bounced\": 0,\n                    \"clicks\": 0,\n                    \"clicksUnique\": 0,\n                    \"opensUnique\": 0,\n                    \"opensUniqueConfirmed\": 0\n                },\n                {\n                    \"date\": \"2026-03-25\",\n                    \"accepted\": 0,\n                    \"bounced\": 0,\n                    \"clicks\": 0,\n                    \"clicksUnique\": 0,\n                    \"opensUnique\": 0,\n                    \"opensUniqueConfirmed\": 0\n                },\n                {\n                    \"date\": \"2026-03-26\",\n                    \"accepted\": 12,\n                    \"bounced\": 0,\n                    \"clicks\": 0,\n                    \"clicksUnique\": 0,\n                    \"opensUnique\": 11,\n                    \"opensUniqueConfirmed\": 11\n                }\n            ]\n        },\n        \"priorPeriod\": {\n            \"totals\": {\n                \"accepted\": 160,\n                \"bounced\": 1,\n                \"clicks\": 0,\n                \"clicksUnique\": 0,\n                \"opensUnique\": 119,\n                \"opensUniqueConfirmed\": 117,\n                \"unsubscribes\": 0\n            }\n        }\n    },\n    \"message\": \"Do something kind today\",\n    \"total\": 1\n}"},{"id":"e4dd577d-400c-4e65-9d16-2e09d4f77a3b","name":"With channel breakdown","originalRequest":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"api","value":"true","description":"**required** | When set to `true`, this endpoint will accept authorization with your API Key.","type":"text","uuid":"91a4ecd2-9487-4d5a-a810-0f5ccbc5e6bd"},{"key":"from","value":"2026-02-26","description":"**required** | `string` | Period start date (inclusive).","type":"text","uuid":"28d7b786-a05c-4937-a7a8-c24ecf86c0c2"},{"key":"to","value":"2026-03-26","description":"**required** | `string` | Period end date (inclusive), must be >= `from`, max 90 days.","type":"text","uuid":"13bdd798-ae98-49e5-b7bc-adcaf45032bc"},{"key":"channels[]","value":"{{channel}}","description":"`string[]` | Optionally filter your metrics with a list of channels (by their identifiers). ","type":"text","uuid":"75a2a5ab-1eaf-49a1-93bb-c1a4daeed06f"},{"key":"direction","value":"desc","description":"`string` | Change sort direction by optionally specifying \"asc\" or \"desc.\" Descending is default.","type":"text","uuid":"0c939e51-c635-4e80-839f-5eb98576342b"},{"key":"groupBy","value":"channel","description":"`string` | Pass `channel` to include per-channel breakdown","type":"text","uuid":"2f2087dd-e33d-4b84-aa23-3bdd85ea2c83"},{"key":"limit","value":"5","description":"`integer` | Items per page for the channel breakdown. Max of 25.","type":"text","uuid":"3c2eff8e-682b-48d8-8d02-d47291f88189"},{"key":"page","value":"1","description":"`integer` | Page number for channel breakdown, as those will be paginated.","type":"text","uuid":"a90a3aee-935c-4942-a613-6713bbaf8298"},{"key":"sortBy","value":"opens","description":"`string` | Sort by \"opens\" or \"channel\" for a channel breakdown. Defaults to \"opens.\"","type":"text","uuid":"29dc9862-2308-4b8d-82bc-a3ec37e11094"}]},"url":"https://{{serverPrefix}}.api.tryletterhead.com/api/v3/metrics"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":":status","value":200},{"key":"server","value":"nginx/1.27.3"},{"key":"content-type","value":"application/json"},{"key":"x-powered-by","value":"PHP/7.4.33"},{"key":"access-control-allow-origin","value":"*"},{"key":"access-control-allow-credentials","value":"true"},{"key":"access-control-max-age","value":"86400"},{"key":"cache-control","value":"no-cache, private"},{"key":"date","value":"Thu, 26 Mar 2026 19:10:35 GMT"},{"key":"via","value":"1.1 google"},{"key":"alt-svc","value":"h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000"}],"cookie":[],"responseTime":null,"body":"{\n    \"items\": {\n        \"currentPeriod\": {\n            \"totals\": {\n                \"accepted\": 0,\n                \"bounced\": 0,\n                \"clicks\": 0,\n                \"clicksUnique\": 0,\n                \"opensUnique\": 0,\n                \"opensUniqueConfirmed\": 0,\n                \"unsubscribes\": 0\n            },\n            \"daily\": []\n        },\n        \"priorPeriod\": {\n            \"totals\": {\n                \"accepted\": 0,\n                \"bounced\": 0,\n                \"clicks\": 0,\n                \"clicksUnique\": 0,\n                \"opensUnique\": 0,\n                \"opensUniqueConfirmed\": 0,\n                \"unsubscribes\": 0\n            }\n        },\n        \"channels\": {\n            \"items\": [],\n            \"total\": 0\n        }\n    },\n    \"message\": \"Do something kind today\",\n    \"total\": 1\n}"}],"_postman_id":"f5ef9e27-09ed-4024-b293-7ad2dedd1f04"}],"id":"63e8b5d9-efb3-496f-b5f5-512407f01c35","_postman_id":"63e8b5d9-efb3-496f-b5f5-512407f01c35","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{apiKey}}"}]},"isInherited":true,"source":{"_postman_id":"b188d139-a966-4327-96e6-e2c968c284aa","id":"b188d139-a966-4327-96e6-e2c968c284aa","name":"Letterhead API","type":"collection"}}},{"name":"Organizations","item":[{"name":"v2","item":[{"name":"Audience","item":[{"name":"Confirm pending subscribers","id":"c5f11eef-593b-4e76-918a-40ab286e4d43","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"api","value":"true","type":"text"}]},"url":"https://{{serverPrefix}}.api.tryletterhead.com/api/v2/organizations/my-awesome-organization/audience/confirm-pending-subscribers","description":"<p>This action allows organizations to \"confirm\" all subscribers awaiting confirmation of their intent to subscribe (we also call this \"pending optin\") across the entire organization.</p>\n<p>The only response is a <code>200</code>, and it may take several minutes to process.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{apiKey}}"}]},"isInherited":true,"source":{"_postman_id":"b188d139-a966-4327-96e6-e2c968c284aa","id":"b188d139-a966-4327-96e6-e2c968c284aa","name":"Letterhead API","type":"collection"}},"urlObject":{"protocol":"https","path":["api","v2","organizations","my-awesome-organization","audience","confirm-pending-subscribers"],"host":["{{serverPrefix}}","api","tryletterhead","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"c5f11eef-593b-4e76-918a-40ab286e4d43"},{"name":"Growth metrics","id":"3b86b09e-f121-4d7b-b313-36c39b199ebd","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://{{serverPrefix}}.api.tryletterhead.com/api/v2/organizations/my-awesome-organization/metrics/audience?displayOrganization=1","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{apiKey}}"}]},"isInherited":true,"source":{"_postman_id":"b188d139-a966-4327-96e6-e2c968c284aa","id":"b188d139-a966-4327-96e6-e2c968c284aa","name":"Letterhead API","type":"collection"}},"urlObject":{"protocol":"https","path":["api","v2","organizations","my-awesome-organization","metrics","audience"],"host":["{{serverPrefix}}","api","tryletterhead","com"],"query":[{"disabled":true,"description":{"content":"<p><strong>required</strong> | When <code>true</code>, instructs the endpoint that you're authenticating with an organization key as opposed to some other method. In almost all cases you will want to set this value to <code>true</code>.</p>\n","type":"text/plain"},"key":"api","value":"true"},{"disabled":true,"description":{"content":"<p><strong>optional</strong> | Starting point of the range following the <code>YYYY-MM-DD</code> format. 30 days ago if not specified</p>\n","type":"text/plain"},"key":"from","value":""},{"disabled":true,"description":{"content":"<p><strong>optional</strong> | Ending point of the range following the <code>YYYY-MM-DD</code> format. Today if not specified</p>\n","type":"text/plain"},"key":"to","value":""},{"disabled":true,"description":{"content":"<p><strong>optional</strong> | An array of channel slugs matching. Each channel slug can be input as an array item: channels[0], channels[1], ..., channels[n].</p>\n","type":"text/plain"},"key":"channels[]","value":"example-channel-slug"},{"description":{"content":"<p><strong>optional</strong> | When no channels, displayOrganization has to be 1 (true). 0 for false.</p>\n","type":"text/plain"},"key":"displayOrganization","value":"1"}],"variable":[]}},"response":[],"_postman_id":"3b86b09e-f121-4d7b-b313-36c39b199ebd"}],"id":"bdd434a8-24cc-43dd-b38e-0f19d433398a","_postman_id":"bdd434a8-24cc-43dd-b38e-0f19d433398a","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{apiKey}}"}]},"isInherited":true,"source":{"_postman_id":"b188d139-a966-4327-96e6-e2c968c284aa","id":"b188d139-a966-4327-96e6-e2c968c284aa","name":"Letterhead API","type":"collection"}}},{"name":"Channels","item":[{"name":"Metrics","item":[{"name":"Audience","item":[{"name":"Growth metrics","id":"649d7119-ef21-4e27-9482-4f91f0c8066d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://{{serverPrefix}}.api.tryletterhead.com/api/v2/organizations/my-awesome-organization/channels/{{channel}}/metrics/audience?api=true&from&to","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{apiKey}}"}]},"isInherited":true,"source":{"_postman_id":"b188d139-a966-4327-96e6-e2c968c284aa","id":"b188d139-a966-4327-96e6-e2c968c284aa","name":"Letterhead API","type":"collection"}},"urlObject":{"protocol":"https","path":["api","v2","organizations","my-awesome-organization","channels","{{channel}}","metrics","audience"],"host":["{{serverPrefix}}","api","tryletterhead","com"],"query":[{"description":{"content":"<p><strong>required</strong> | When <code>true</code>, instructs the endpoint that you're authenticating with an organization key as opposed to some other method. In almost all cases you will want to set this value to <code>true</code>.</p>\n","type":"text/plain"},"key":"api","value":"true"},{"description":{"content":"<p><strong>optional</strong> | Starting point of the range following the <code>YYYY-MM-DD</code> format. 30 days ago if not specified</p>\n","type":"text/plain"},"key":"from","value":""},{"description":{"content":"<p><strong>optional</strong> | Ending point of the range following the <code>YYYY-MM-DD</code> format. Today if not specified</p>\n","type":"text/plain"},"key":"to","value":""}],"variable":[]}},"response":[],"_postman_id":"649d7119-ef21-4e27-9482-4f91f0c8066d"}],"id":"f780edfe-940d-4ecc-b476-0c90bef5ac06","_postman_id":"f780edfe-940d-4ecc-b476-0c90bef5ac06","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{apiKey}}"}]},"isInherited":true,"source":{"_postman_id":"b188d139-a966-4327-96e6-e2c968c284aa","id":"b188d139-a966-4327-96e6-e2c968c284aa","name":"Letterhead API","type":"collection"}}}],"id":"db92046a-4df4-4c78-b28f-4077ed31cd07","_postman_id":"db92046a-4df4-4c78-b28f-4077ed31cd07","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{apiKey}}"}]},"isInherited":true,"source":{"_postman_id":"b188d139-a966-4327-96e6-e2c968c284aa","id":"b188d139-a966-4327-96e6-e2c968c284aa","name":"Letterhead API","type":"collection"}}},{"name":"List all channels","id":"7a652267-13f0-44b1-84c2-0b08676488c8","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://{{serverPrefix}}.api.tryletterhead.com/api/v2/organizations/my-awesome-organization/channels?api=true","description":"<p>The organization is at the highest level, and all channels belong to an organization. This method allows you to get an array of all channels and their <code>slug</code>s belonging to an organization</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{apiKey}}"}]},"isInherited":true,"source":{"_postman_id":"b188d139-a966-4327-96e6-e2c968c284aa","id":"b188d139-a966-4327-96e6-e2c968c284aa","name":"Letterhead API","type":"collection"}},"urlObject":{"protocol":"https","path":["api","v2","organizations","my-awesome-organization","channels"],"host":["{{serverPrefix}}","api","tryletterhead","com"],"query":[{"description":{"content":"<p>When <code>true</code>, instructs the endpoint that you're authenticating with an organization key as opposed to some other method. In almost all cases you will want to set this value to <code>true</code>. </p>\n","type":"text/plain"},"key":"api","value":"true"}],"variable":[]}},"response":[{"id":"2011811f-b85f-4219-bb7e-4f85f835cd40","name":"List all channels - 200 response","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://{{serverPrefix}}.tryletterhead.com/api/v2/organizations/my-awesome-organization/channels?api=true","protocol":"https","host":["{{serverPrefix}}","tryletterhead","com"],"path":["api","v2","organizations","my-awesome-organization","channels"],"query":[{"key":"api","value":"true","description":"When `true`, instructs the endpoint that you're authenticating with an organization key as opposed to some other method. In almost all cases you will want to set this value to `true`. "}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Server","value":"nginx/1.14.0 (Ubuntu)"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"Access-Control-Max-Age","value":"86400"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Date","value":"Wed, 25 Jan 2023 13:10:32 GMT"}],"cookie":[],"responseTime":null,"body":"[\n    {\n        \"title\": \"Example Coffee Times\",\n        \"channelSlug\": \"example-coffee\"\n    },\n    {\n        \"title\": \"Example Bitter Tea Times\",\n        \"channelSlug\": \"example-bitter-tea\"\n    }\n]"}],"_postman_id":"7a652267-13f0-44b1-84c2-0b08676488c8"}],"id":"9caa5420-e309-45b8-9069-c9a7484dce67","_postman_id":"9caa5420-e309-45b8-9069-c9a7484dce67","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{apiKey}}"}]},"isInherited":true,"source":{"_postman_id":"b188d139-a966-4327-96e6-e2c968c284aa","id":"b188d139-a966-4327-96e6-e2c968c284aa","name":"Letterhead API","type":"collection"}}}],"id":"e9e4aa2d-3712-41d7-9197-53b513d75fbc","description":"<p>The <code>v2</code> API and the <code>v3</code> API are almost identical except for scope. The <code>v2</code> API accommodates organization-wide management, and requires keys generated from the organization level.</p>\n","_postman_id":"e9e4aa2d-3712-41d7-9197-53b513d75fbc","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{apiKey}}"}]},"isInherited":true,"source":{"_postman_id":"b188d139-a966-4327-96e6-e2c968c284aa","id":"b188d139-a966-4327-96e6-e2c968c284aa","name":"Letterhead API","type":"collection"}}}],"id":"7cae8c3c-1ec7-4f26-8c5b-36e4001da5dc","_postman_id":"7cae8c3c-1ec7-4f26-8c5b-36e4001da5dc","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{apiKey}}"}]},"isInherited":true,"source":{"_postman_id":"b188d139-a966-4327-96e6-e2c968c284aa","id":"b188d139-a966-4327-96e6-e2c968c284aa","name":"Letterhead API","type":"collection"}}}],"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{apiKey}}"}]}},"event":[{"listen":"prerequest","script":{"id":"9c3a4707-e748-48ed-9c88-56666fcdce34","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"08428004-5842-4f8c-8d5d-de89f7637368","type":"text/javascript","exec":[""]}}],"variable":[{"key":"key","value":"{{apiKey}}"},{"key":"subscriberEmail","value":"you@example.com"},{"key":"serverPrefix","value":"{{serverPrefix}}"},{"key":"channelSlug","value":"{{channel}}"},{"key":"letterId","value":"1234"},{"key":"customFieldSlug","value":"my-field"},{"key":"organization-slug","value":"my-awesome-organization"},{"key":"publication date","value":"date "},{"key":"Date","value":"date "},{"key":"date","value":"Date"},{"key":"{{ publicationDate }}","value":"{{ publicationDate }}"},{"key":"uniqueId","value":""},{"key":"agentUuid","value":""},{"key":"customFieldValue","value":""}]}