{
"error": {
"code": "INVALID_REQUEST",
"message": "The request was invalid.",
"documentationUrl": "https://developer.folk.app/api-reference/errors#bad-request",
"requestId": "123e4567-e89b-12d3-a456-426614174000",
"timestamp": "2025-10-01T12:00:00Z"
}
}
{
"error": {
"code": "UNAUTHORIZED",
"message": "No valid API key provided.",
"documentationUrl": "https://developer.folk.app/api-reference/errors#unauthorized",
"requestId": "123e4567-e89b-12d3-a456-426614174000",
"timestamp": "2025-10-01T12:00:00Z"
}
}
{
"error": {
"code": "FORBIDDEN",
"message": "The API key doesn’t have permissions to perform the request.",
"documentationUrl": "https://developer.folk.app/api-reference/errors#forbidden",
"requestId": "123e4567-e89b-12d3-a456-426614174000",
"timestamp": "2025-10-01T12:00:00Z"
}
}
{
"error": {
"code": "RESOURCE_NOT_FOUND",
"message": "The requested resource was not found.",
"documentationUrl": "https://developer.folk.app/api-reference/errors#not-found",
"requestId": "123e4567-e89b-12d3-a456-426614174000",
"timestamp": "2025-10-01T12:00:00Z"
}
}
{
"error": {
"code": "UNPROCESSABLE_ENTITY",
"message": "Invalid query parameters",
"documentationUrl": "https://developer.folk.app/api-reference/errors#unprocessable-entity",
"details": {
"issues": [
{
"code": "too_small",
"minimum": 1,
"type": "number",
"inclusive": true,
"exact": false,
"message": "Number must be greater than or equal to 1",
"path": [
"limit"
]
}
]
},
"requestId": "123e4567-e89b-12d3-a456-426614174000",
"timestamp": "2025-10-01T12:00:00Z"
}
}
{
"error": {
"code": "SERVICE_UNAVAILABLE",
"message": "The service is currently unavailable.",
"documentationUrl": "https://developer.folk.app/api-reference/errors#service-unavailable",
"requestId": "123e4567-e89b-12d3-a456-426614174000",
"timestamp": "2025-10-01T12:00:00Z"
}
}
Campaigns
(Beta) List the messages of a campaign
Retrieve a paginated list of the messages of a campaign, one per recipient and per step, ordered by step. Messages to deleted contacts are listed with recipient.contact: null.
This endpoint is currently in open beta. The API surface may change as we iterate based on feedback.
{
"error": {
"code": "INVALID_REQUEST",
"message": "The request was invalid.",
"documentationUrl": "https://developer.folk.app/api-reference/errors#bad-request",
"requestId": "123e4567-e89b-12d3-a456-426614174000",
"timestamp": "2025-10-01T12:00:00Z"
}
}
{
"error": {
"code": "UNAUTHORIZED",
"message": "No valid API key provided.",
"documentationUrl": "https://developer.folk.app/api-reference/errors#unauthorized",
"requestId": "123e4567-e89b-12d3-a456-426614174000",
"timestamp": "2025-10-01T12:00:00Z"
}
}
{
"error": {
"code": "FORBIDDEN",
"message": "The API key doesn’t have permissions to perform the request.",
"documentationUrl": "https://developer.folk.app/api-reference/errors#forbidden",
"requestId": "123e4567-e89b-12d3-a456-426614174000",
"timestamp": "2025-10-01T12:00:00Z"
}
}
{
"error": {
"code": "RESOURCE_NOT_FOUND",
"message": "The requested resource was not found.",
"documentationUrl": "https://developer.folk.app/api-reference/errors#not-found",
"requestId": "123e4567-e89b-12d3-a456-426614174000",
"timestamp": "2025-10-01T12:00:00Z"
}
}
{
"error": {
"code": "UNPROCESSABLE_ENTITY",
"message": "Invalid query parameters",
"documentationUrl": "https://developer.folk.app/api-reference/errors#unprocessable-entity",
"details": {
"issues": [
{
"code": "too_small",
"minimum": 1,
"type": "number",
"inclusive": true,
"exact": false,
"message": "Number must be greater than or equal to 1",
"path": [
"limit"
]
}
]
},
"requestId": "123e4567-e89b-12d3-a456-426614174000",
"timestamp": "2025-10-01T12:00:00Z"
}
}
{
"error": {
"code": "SERVICE_UNAVAILABLE",
"message": "The service is currently unavailable.",
"documentationUrl": "https://developer.folk.app/api-reference/errors#service-unavailable",
"requestId": "123e4567-e89b-12d3-a456-426614174000",
"timestamp": "2025-10-01T12:00:00Z"
}
}
A cursor for pagination across multiple pages of results. Don’t include this parameter on the first call. Use the pagination.nextLink value returned in a previous response to request subsequent results.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Folk Developer Portal","description":"Developer portal and API reference of folk","colors":{"primary":"#000000","light":"#ffffff","dark":"#222222"},"logo":{"light":"https://mintcdn.com/folk-cf968f5e/I7wFhRmtMuOvy2tG/assets/logo-light.svg?fit=max\u0026auto=format\u0026n=I7wFhRmtMuOvy2tG\u0026q=85\u0026s=08eda1dcbb1eefceac8ca5fea9c103d8","dark":"https://mintcdn.com/folk-cf968f5e/I7wFhRmtMuOvy2tG/assets/logo-dark.svg?fit=max\u0026auto=format\u0026n=I7wFhRmtMuOvy2tG\u0026q=85\u0026s=f7a85c0692d36cf4ae95ba0cb3a13827"},"favicon":{"light":"https://mintcdn.com/folk-cf968f5e/HcSGFJR-HRVkFe3E/assets/favicon-light.svg?fit=max\u0026auto=format\u0026n=HcSGFJR-HRVkFe3E\u0026q=85\u0026s=f507f5945e391292cf6679ecee54f2a0","dark":"https://mintcdn.com/folk-cf968f5e/HcSGFJR-HRVkFe3E/assets/favicon-dark.svg?fit=max\u0026auto=format\u0026n=HcSGFJR-HRVkFe3E\u0026q=85\u0026s=26f07b15afad6f7a4467054d25a0f955"},"api":{"playground":{"display":"interactive"},"examples":{"defaults":"all","languages":["curl","javascript","python","ruby","go","php"]}},"navbar":{"links":[{"href":"intercom://show","label":"Chat with support"},{"href":"https://www.folk.app/contact-sales","label":"Get a demo"}],"primary":{"type":"button","label":"Open app","href":"https://app.folk.app"}},"footer":{"socials":{"linkedin":"https://www.linkedin.com/company/folkhq","x":"https://twitter.com/folkhq","youtube":"https://www.youtube.com/channel/UCs3bswOUZvkouum7Rdx4i5w"}},"integrations":{"intercom":{"appId":"rn8e78eq"}},"contextual":{"options":["copy","view","chatgpt","claude"],"display":"header"},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"folk-cf968f5e","hasAudioNarration":false,"actualSubdomain":"folk-cf968f5e","customDomains":["developer.folk.app"],"gitSource":{"type":"github","owner":"folkapp-mintlify-prod","repo":"api-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6adf97e943e9400227447b11","collectionId":"c83d8b32-0b82-4286-a0a3-b474a1178bd0","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6adf97e943e9400227447b11"},"entitlements":{},"buildId":"6ae31dbecf19676b2b588155","clientVersion":"0.0.4006","searchFilterCounts":[{"language":"default","tag":"API Reference","count":82},{"language":"default","tag":"Available endpoints","count":71},{"language":"default","tag":"Guides","count":15},{"language":"default","tag":"Introduction","count":11},{"language":"default","tag":"Webhooks","count":9},{"language":"default","tag":"Companies","count":8},{"language":"default","tag":"Custom objects","count":8},{"language":"default","tag":"People","count":8},{"language":"default","tag":"Core concepts","count":8},{"language":"default","tag":"Tasks","count":7}]},"assistantConfig":{},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":"/* vietnamese */\n@font-face {\n font-family: 'Bricolage Grotesque';\n font-style: normal;\n font-weight: 200 800;\n font-stretch: 100%;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/bricolagegrotesque/v9/3y9K6as8bTXq_nANBjzKo3IeZx8z6up5BeSl9D4dj_x9PpZBMlGHInHEVA.woff2) format('woff2');\n unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;\n}\n/* latin-ext */\n@font-face {\n font-family: 'Bricolage Grotesque';\n font-style: normal;\n font-weight: 200 800;\n font-stretch: 100%;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/bricolagegrotesque/v9/3y9K6as8bTXq_nANBjzKo3IeZx8z6up5BeSl9D4dj_x9PpZBMlGGInHEVA.woff2) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: 'Bricolage Grotesque';\n font-style: normal;\n font-weight: 200 800;\n font-stretch: 100%;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/bricolagegrotesque/v9/3y9K6as8bTXq_nANBjzKo3IeZx8z6up5BeSl9D4dj_x9PpZBMlGIInE.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n:root{--font-family-headings-custom:'Bricolage Grotesque', sans-serif}h1,h2,h3,h4,h5,h6{font-optical-sizing:auto;font-weight:600;font-style:normal;font-variation-settings:'wdth' 100}.dark{--background-dark:25 25 25}#home-cta-button,.dark #topbar-cta-button>a>span{border:1px solid rgb(var(--gray-800))}.prose :where(a):not(:where([class~='not-prose'], [class~='not-prose'] *)){border-color:rgb(var(--primary-dark))}.dark .prose :where(a):not(:where([class~='not-prose'], [class~='not-prose'] *)){border-color:rgb(var(--primary-light))}.nav-tag-pill-text{font-weight:500!important;text-shadow:none;color:#fff!important;background-color:#2563eb!important}.dark .nav-tag-pill-text{background-color:#3b82f6!important}"}],"page":{"pagePath":"api-reference/campaigns/list-the-messages-of-a-campaign","slug":"/api-reference/campaigns/list-the-messages-of-a-campaign","pageMetadata":{"title":"(Beta) List the messages of a campaign","description":"Retrieve a paginated list of the messages of a campaign, one per recipient and per step, ordered by step. Messages to deleted contacts are listed with `recipient.contact: null`.\u003cbr/>\u003cWarning>This endpoint is currently in open beta. The API surface may change as we iterate based on feedback.\u003c/Warning>","deprecated":null,"version":null,"tag":"Beta","sidebarTitle":"List the messages of a campaign","openapi":"/schemas/2025-06-09.json get /v1/campaigns/{campaignId}/messages","href":"/api-reference/campaigns/list-the-messages-of-a-campaign","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n }, {Warning} = _components;\n if (!Warning) _missingMdxReference(\"Warning\", true);\n return _jsxs(_components.p, {\n children: [\"Retrieve a paginated list of the messages of a campaign, one per recipient and per step, ordered by step. Messages to deleted contacts are listed with \", _jsx(_components.code, {\n children: \"recipient.contact: null\"\n }), \".\", _jsx(\"br\", {}), _jsx(Warning, {\n children: \"This endpoint is currently in open beta. The API surface may change as we iterate based on feedback.\"\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\nfunction _missingMdxReference(id, component) {\n throw new Error(\"Expected \" + (component ? \"component\" : \"object\") + \" `\" + id + \"` to be defined: you likely forgot to import, pass, or provide it.\");\n}\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"(Beta) List the messages of a campaign","description":"Retrieve a paginated list of the messages of a campaign, one per recipient and per step, ordered by step. Messages to deleted contacts are listed with `recipient.contact: null`.\u003cbr/>\u003cWarning>This endpoint is currently in open beta. The API surface may change as we iterate based on feedback.\u003c/Warning>","deprecated":null,"version":null,"tag":"Beta","sidebarTitle":"List the messages of a campaign","openapi":"/schemas/2025-06-09.json get /v1/campaigns/{campaignId}/messages","href":"/api-reference/campaigns/list-the-messages-of-a-campaign","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":["/_mintlify/custom/folk-cf968f5e/c239747596c4df94/intercom.js"],"openApiReferenceData":{"operation":{"security":["a6260932-0e8e-49c1-b7ba-f77f1f380043"],"x-mint":{"metadata":{"tag":"Beta","title":"(Beta) List the messages of a campaign","sidebarTitle":"List the messages of a campaign"}},"operationId":"listCampaignMessages","summary":"List the messages of a campaign","description":"Retrieve a paginated list of the messages of a campaign, one per recipient and per step, ordered by step. Messages to deleted contacts are listed with `recipient.contact: null`.\u003cbr/>\u003cWarning>This endpoint is currently in open beta. The API surface may change as we iterate based on feedback.\u003c/Warning>","tags":["Campaigns"],"parameters":["eacb1cf7-f991-4f77-9206-aa0e34376bf0","2405ea1c-e935-4366-b0af-ba29a686d4c7","b3306076-27ce-4989-ba7c-7bbb3b59498f","e6ef6b7a-1ffb-4a7b-98b2-d81f5f3eb0af","59f9cb93-133a-447d-b3b9-8300bcc86e25","363c0d37-4000-4ed0-b92a-3fbd7c56bb8b"],"responses":{"200":"3ce4fb57-1dbf-41a2-8522-94a532bb5352","400":"a5175908-aff9-465d-9712-812db64d0ec7","401":"f773d9f4-faee-4043-aca6-59d23ee3344d","403":"68406f58-375a-46fd-9457-c08b57c9067e","404":"a6a2f9ab-dd5e-4217-b8cf-98ae7f7e5324","422":"cdb6ef13-76b6-44ed-a6df-ba9be2bc42e9","429":"b02263ff-1e46-430a-abfc-3ddfd8adf291","500":"d67c13d6-ef99-40a5-be0b-f12564499ea9","503":"a8fa4643-5a2b-45a8-9cd4-f2ca50b02451"},"method":"get","type":"path","servers":["9ff6af81-d226-4589-a8c5-5e6c925a5653"],"path":"/v1/campaigns/{campaignId}/messages","baseUrlOptions":["https://api.folk.app"],"title":"List the messages of a campaign","codeSamples":[],"requestExampleLanguages":["bash","javascript","python","ruby","go","php"],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"eacb1cf7-f991-4f77-9206-aa0e34376bf0":{"schema":{"type":"string","minLength":40,"maxLength":40,"isRequired":true,"description":"The ID of the campaign.","uniqueKey":"","typeLabel":"string"},"required":true,"description":"The ID of the campaign.","name":"campaignId","in":"path"},"2405ea1c-e935-4366-b0af-ba29a686d4c7":{"schema":{"type":"integer","minimum":1,"maximum":100,"default":20,"isRequired":false,"description":"The number of items to return.","uniqueKey":"","typeLabel":"integer"},"required":false,"description":"The number of items to return.","example":20,"name":"limit","in":"query"},"b3306076-27ce-4989-ba7c-7bbb3b59498f":{"schema":{"type":"string","maxLength":512,"isRequired":false,"description":"A cursor for pagination across multiple pages of results. Don’t include this parameter on the first call. Use the `pagination.nextLink` value returned in a previous response to request subsequent results.","uniqueKey":"","typeLabel":"string"},"required":false,"description":"A cursor for pagination across multiple pages of results. Don’t include this parameter on the first call. Use the `pagination.nextLink` value returned in a previous response to request subsequent results.","example":"eyJvZmZzZXQiOjN9","name":"cursor","in":"query"},"e6ef6b7a-1ffb-4a7b-98b2-d81f5f3eb0af":{"schema":{"type":"integer","minimum":1,"maximum":100,"isRequired":false,"description":"Only list the messages of the step at this position.","uniqueKey":"","typeLabel":"integer"},"required":false,"description":"Only list the messages of the step at this position.","example":1,"name":"step","in":"query"},"59f9cb93-133a-447d-b3b9-8300bcc86e25":{"schema":{"type":"string","minLength":40,"maxLength":40,"isRequired":false,"description":"Only list the messages to this person or company. Messages to deleted contacts match no recipient.","uniqueKey":"","typeLabel":"string"},"required":false,"description":"Only list the messages to this person or company. Messages to deleted contacts match no recipient.","example":"per_55175e81-9a52-4ac3-930e-82792c23499b","name":"recipientId","in":"query"},"363c0d37-4000-4ed0-b92a-3fbd7c56bb8b":{"schema":{"type":"string","enum":["draft","sent","not_sent"],"isRequired":false,"description":"Only list the messages with this status. One of: draft, sent, not_sent.","uniqueKey":"","typeLabel":"enum\u003cstring>"},"required":false,"description":"Only list the messages with this status. One of: draft, sent, not_sent.","example":"not_sent","name":"status","in":"query"}},"responses":{"3ce4fb57-1dbf-41a2-8522-94a532bb5352":{"description":"A page of messages of the campaign.","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer","example":1000},"description":"The maximum number of requests that you can make in the current rate limit window."},"X-RateLimit-Remaining":{"schema":{"type":"integer","example":998},"description":"The number of requests remaining in the current rate limit window."},"X-RateLimit-Reset":{"schema":{"type":"integer","example":1747322958},"description":"The time at which the current rate limit window resets, in UTC epoch seconds."},"X-RateLimit-Limit-Burst":{"schema":{"type":"integer","example":20},"description":"The maximum number of requests that you can make in the current burst rate limit window."},"X-RateLimit-Remaining-Burst":{"schema":{"type":"integer","example":18},"description":"The number of requests remaining in the current burst rate limit window."},"X-RateLimit-Reset-Burst":{"schema":{"type":"integer","example":1747322902},"description":"The time at which the current burst rate limit window resets, in UTC epoch seconds."},"RateLimit-Policy":{"schema":{"type":"string","example":"\"default\";q=600;w=60, \"burst\";q=20;w=2"},"description":"The rate limit policies applied to the request, as defined by the IETF RateLimit header fields draft. `q` is the number of requests allowed per window and `w` the window length in seconds."},"RateLimit":{"schema":{"type":"string","example":"\"default\";r=598;t=42, \"burst\";r=18;t=1"},"description":"The current usage of each rate limit policy, as defined by the IETF RateLimit header fields draft. `r` is the number of requests remaining and `t` the number of seconds until the window resets."},"Retry-After":{"schema":{"type":"integer","example":60},"description":"The number of seconds to wait before making a new request after hitting the rate limit."}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","isRequired":true,"uniqueKey":"data.\\items.items.[INDEX].id","typeLabel":"string"},"campaignId":{"type":"string","isRequired":true,"uniqueKey":"data.\\items.items.[INDEX].campaignId","typeLabel":"string"},"step":{"type":"integer","minimum":1,"description":"The position of the step the message belongs to.","example":1,"isRequired":true,"uniqueKey":"data.\\items.items.[INDEX].step","typeLabel":"integer"},"recipient":{"type":"object","properties":{"contact":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","example":"per_55175e81-9a52-4ac3-930e-82792c23499b","isRequired":true,"uniqueKey":"data.\\items.items.[INDEX].recipient.contact.oneOf.0.id","typeLabel":"string"},"entityType":{"type":"string","enum":["person","company"],"description":"Whether the recipients are people or companies.","example":"person","isRequired":true,"uniqueKey":"data.\\items.items.[INDEX].recipient.contact.oneOf.0.entityType","typeLabel":"enum\u003cstring>"}},"required":["id","entityType"],"description":"The person or company the message is for, or null once it was deleted.","isRequired":true,"uniqueKey":"data.\\items.items.[INDEX].recipient.contact.oneOf.0","typeLabel":"object"},{"type":"null","properties":{"id":{"type":"string","example":"per_55175e81-9a52-4ac3-930e-82792c23499b"},"entityType":{"type":"string","enum":["person","company"],"description":"Whether the recipients are people or companies.","example":"person"}},"required":["id","entityType"],"description":"The person or company the message is for, or null once it was deleted.","isRequired":true,"uniqueKey":"data.\\items.items.[INDEX].recipient.contact.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.\\items.items.[INDEX].recipient.contact","typeLabel":"object | null"},"name":{"oneOf":[{"type":"string","description":"The recipient's name: the one the message was addressed to once sent or not sent, the contact's current one while draft.","example":"John Doe","isRequired":true,"uniqueKey":"data.\\items.items.[INDEX].recipient.name.oneOf.0","typeLabel":"string"},{"type":"null","description":"The recipient's name: the one the message was addressed to once sent or not sent, the contact's current one while draft.","example":"John Doe","isRequired":true,"uniqueKey":"data.\\items.items.[INDEX].recipient.name.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.\\items.items.[INDEX].recipient.name","typeLabel":"string | null"},"email":{"oneOf":[{"type":"string","description":"The recipient's email address: the one the message was addressed to once sent or not sent, the contact's current primary one while draft.","example":"john.doe@example.com","isRequired":true,"uniqueKey":"data.\\items.items.[INDEX].recipient.email.oneOf.0","typeLabel":"string"},{"type":"null","description":"The recipient's email address: the one the message was addressed to once sent or not sent, the contact's current primary one while draft.","example":"john.doe@example.com","isRequired":true,"uniqueKey":"data.\\items.items.[INDEX].recipient.email.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.\\items.items.[INDEX].recipient.email","typeLabel":"string | null"}},"required":["contact","name","email"],"description":"Who the message is addressed to.","isRequired":true,"uniqueKey":"data.\\items.items.[INDEX].recipient","typeLabel":"object"},"sender":{"oneOf":[{"type":"object","properties":{"id":{"oneOf":[{"type":"string","description":"The ID of the sender, or null once it was deleted. `email` and `displayName` are then those the email was set up with.","example":"snd_4c3b2a19-8f7e-4d6c-9b5a-1e2f3d4c5b6a","isRequired":true,"uniqueKey":"data.\\items.items.[INDEX].sender.oneOf.0.id.oneOf.0","typeLabel":"string"},{"type":"null","description":"The ID of the sender, or null once it was deleted. `email` and `displayName` are then those the email was set up with.","example":"snd_4c3b2a19-8f7e-4d6c-9b5a-1e2f3d4c5b6a","isRequired":true,"uniqueKey":"data.\\items.items.[INDEX].sender.oneOf.0.id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.\\items.items.[INDEX].sender.oneOf.0.id","typeLabel":"string | null"},"email":{"type":"string","description":"The email address the email is sent from.","example":"john.doe@example.com","isRequired":true,"uniqueKey":"data.\\items.items.[INDEX].sender.oneOf.0.email","typeLabel":"string"},"displayName":{"oneOf":[{"type":"string","description":"The name the email is sent under.","example":"John Doe","isRequired":true,"uniqueKey":"data.\\items.items.[INDEX].sender.oneOf.0.displayName.oneOf.0","typeLabel":"string"},{"type":"null","description":"The name the email is sent under.","example":"John Doe","isRequired":true,"uniqueKey":"data.\\items.items.[INDEX].sender.oneOf.0.displayName.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.\\items.items.[INDEX].sender.oneOf.0.displayName","typeLabel":"string | null"}},"required":["id","email","displayName"],"description":"Who the message is from: the address sending used, once it was attempted; the step's sender otherwise, while draft or when stopped before sending. `id` is null once the sender was deleted. Null when there is no sender.","isRequired":true,"uniqueKey":"data.\\items.items.[INDEX].sender.oneOf.0","typeLabel":"object"},{"type":"null","properties":{"id":{"oneOf":[{"type":"string","description":"The ID of the sender, or null once it was deleted. `email` and `displayName` are then those the email was set up with.","example":"snd_4c3b2a19-8f7e-4d6c-9b5a-1e2f3d4c5b6a"},{"type":"null","description":"The ID of the sender, or null once it was deleted. `email` and `displayName` are then those the email was set up with.","example":"snd_4c3b2a19-8f7e-4d6c-9b5a-1e2f3d4c5b6a"}]},"email":{"type":"string","description":"The email address the email is sent from.","example":"john.doe@example.com"},"displayName":{"oneOf":[{"type":"string","description":"The name the email is sent under.","example":"John Doe"},{"type":"null","description":"The name the email is sent under.","example":"John Doe"}]}},"required":["id","email","displayName"],"description":"Who the message is from: the address sending used, once it was attempted; the step's sender otherwise, while draft or when stopped before sending. `id` is null once the sender was deleted. Null when there is no sender.","isRequired":true,"uniqueKey":"data.\\items.items.[INDEX].sender.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.\\items.items.[INDEX].sender","typeLabel":"object | null"},"subject":{"type":"string","description":"The subject of the message, in plain text.","example":"Quick question, John","isRequired":true,"uniqueKey":"data.\\items.items.[INDEX].subject","typeLabel":"string"},"body":{"type":"string","description":"The body of the message, in HTML. A signed body ends with `\u003cp>{{signature}}\u003c/p>`.","example":"\u003cp>Hi John,\u003c/p>\u003cp>{{signature}}\u003c/p>","isRequired":true,"uniqueKey":"data.\\items.items.[INDEX].body","typeLabel":"string"},"cc":{"type":"array","items":{"type":"string","uniqueKey":"data.\\items.items.[INDEX].cc.items.[INDEX]","typeLabel":"string"},"description":"Email addresses copied on the message.","example":[],"isRequired":true,"uniqueKey":"data.\\items.items.[INDEX].cc","typeLabel":"string[]"},"bcc":{"type":"array","items":{"type":"string","uniqueKey":"data.\\items.items.[INDEX].bcc.items.[INDEX]","typeLabel":"string"},"description":"Email addresses blind-copied on the message.","example":[],"isRequired":true,"uniqueKey":"data.\\items.items.[INDEX].bcc","typeLabel":"string[]"},"status":{"type":"string","enum":["draft","sent","not_sent"],"description":"The status of the message. One of: draft, sent, not_sent.","example":"draft","isRequired":true,"uniqueKey":"data.\\items.items.[INDEX].status","typeLabel":"enum\u003cstring>"},"notSentReason":{"oneOf":[{"type":"string","description":"Why the message was not sent, when its status is `not_sent`. Known values: no_recipient, recipient_not_found, recipient_no_email, recipient_invalid_email, too_many_copies, invalid_sender, stopped, stopped_after_reply, previous_messages_not_sent, dropped_unsubscribed_address, dropped_bounced_address, dropped_spam_reporting_address, dropped_spam_content, dropped_invalid, bounce_invalid_address, bounce_technical, bounce_content, bounce_reputation, bounce_frequency_or_volume_too_high, bounce_mailbox_unavailable, bounce_unclassified, send_failed. New values may be added in the future: handle unknown values gracefully. Treat unknown ones as `send_failed`.","example":null,"isRequired":true,"uniqueKey":"data.\\items.items.[INDEX].notSentReason.oneOf.0","typeLabel":"string"},{"type":"null","description":"Why the message was not sent, when its status is `not_sent`. Known values: no_recipient, recipient_not_found, recipient_no_email, recipient_invalid_email, too_many_copies, invalid_sender, stopped, stopped_after_reply, previous_messages_not_sent, dropped_unsubscribed_address, dropped_bounced_address, dropped_spam_reporting_address, dropped_spam_content, dropped_invalid, bounce_invalid_address, bounce_technical, bounce_content, bounce_reputation, bounce_frequency_or_volume_too_high, bounce_mailbox_unavailable, bounce_unclassified, send_failed. New values may be added in the future: handle unknown values gracefully. Treat unknown ones as `send_failed`.","example":null,"isRequired":true,"uniqueKey":"data.\\items.items.[INDEX].notSentReason.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.\\items.items.[INDEX].notSentReason","typeLabel":"string | null"},"unsubscribed":{"type":"boolean","description":"Whether the recipient unsubscribed through the link in this message. The message stays sent.","example":false,"isRequired":true,"uniqueKey":"data.\\items.items.[INDEX].unsubscribed","typeLabel":"boolean"}},"required":["id","campaignId","step","recipient","sender","subject","body","cc","bcc","status","notSentReason","unsubscribed"],"description":"A message of a campaign: the email of one step for one recipient, with the variables of the step filled in for that recipient. There is one message per recipient and per step.","example":{"id":"msg_1d2c3b4a-5e6f-4a7b-8c9d-0e1f2a3b4c5d","campaignId":"cmp_9b2f1c1e-2b8a-4d1e-8f5a-3c2d1e0f9a8b","step":1,"recipient":{"contact":{"id":"per_55175e81-9a52-4ac3-930e-82792c23499b","entityType":"person"},"name":"John Doe","email":"john.doe@example.com"},"sender":{"id":"snd_4c3b2a19-8f7e-4d6c-9b5a-1e2f3d4c5b6a","email":"john.doe@example.com","displayName":"John Doe"},"subject":"Quick question, John","body":"\u003cp>Hi John,\u003c/p>\u003cp>{{signature}}\u003c/p>","cc":[],"bcc":[],"status":"draft","notSentReason":null,"unsubscribed":false},"uniqueKey":"data.\\items.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"data.\\items","typeLabel":"object[]"},"pagination":{"type":"object","properties":{"nextLink":{"type":"string","uniqueKey":"data.pagination.nextLink","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.pagination","typeLabel":"object"}},"required":["items","pagination"],"example":{"items":[{"id":"msg_1d2c3b4a-5e6f-4a7b-8c9d-0e1f2a3b4c5d","campaignId":"cmp_9b2f1c1e-2b8a-4d1e-8f5a-3c2d1e0f9a8b","step":1,"recipient":{"contact":{"id":"per_55175e81-9a52-4ac3-930e-82792c23499b","entityType":"person"},"name":"John Doe","email":"john.doe@example.com"},"sender":{"id":"snd_4c3b2a19-8f7e-4d6c-9b5a-1e2f3d4c5b6a","email":"john.doe@example.com","displayName":"John Doe"},"subject":"Quick question, John","body":"\u003cp>Hi John,\u003c/p>\u003cp>{{signature}}\u003c/p>","cc":[],"bcc":[],"status":"draft","notSentReason":null,"unsubscribed":false}],"pagination":{"nextLink":"https://api.folk.app/v1/campaigns/cmp_9b2f1c1e-2b8a-4d1e-8f5a-3c2d1e0f9a8b/messages?limit=20\u0026cursor=eyJvZmZzZXQiOjIwfQ%3D%3D"}},"isRequired":true,"uniqueKey":"data","typeLabel":"object"},"deprecations":{"type":"array","items":{"type":"string","uniqueKey":"deprecations.items.[INDEX]","typeLabel":"string"},"example":["This field is deprecated"],"uniqueKey":"deprecations","typeLabel":"string[]"}},"required":["data"],"uniqueKey":"","typeLabel":"object"},"example":{"data":{"items":[{"id":"msg_1d2c3b4a-5e6f-4a7b-8c9d-0e1f2a3b4c5d","campaignId":"cmp_9b2f1c1e-2b8a-4d1e-8f5a-3c2d1e0f9a8b","step":1,"recipient":{"contact":{"id":"per_55175e81-9a52-4ac3-930e-82792c23499b","entityType":"person"},"name":"John Doe","email":"john.doe@example.com"},"sender":{"id":"snd_4c3b2a19-8f7e-4d6c-9b5a-1e2f3d4c5b6a","email":"john.doe@example.com","displayName":"John Doe"},"subject":"Quick question, John","body":"\u003cp>Hi John,\u003c/p>\u003cp>{{signature}}\u003c/p>","cc":[],"bcc":[],"status":"draft","notSentReason":null,"unsubscribed":false}],"pagination":{"nextLink":"https://api.folk.app/v1/campaigns/cmp_9b2f1c1e-2b8a-4d1e-8f5a-3c2d1e0f9a8b/messages?limit=20\u0026cursor=eyJvZmZzZXQiOjIwfQ%3D%3D"}}},"examples":{"Example":{"title":"Example","value":{"data":{"items":[{"id":"msg_1d2c3b4a-5e6f-4a7b-8c9d-0e1f2a3b4c5d","campaignId":"cmp_9b2f1c1e-2b8a-4d1e-8f5a-3c2d1e0f9a8b","step":1,"recipient":{"contact":{"id":"per_55175e81-9a52-4ac3-930e-82792c23499b","entityType":"person"},"name":"John Doe","email":"john.doe@example.com"},"sender":{"id":"snd_4c3b2a19-8f7e-4d6c-9b5a-1e2f3d4c5b6a","email":"john.doe@example.com","displayName":"John Doe"},"subject":"Quick question, John","body":"\u003cp>Hi John,\u003c/p>\u003cp>{{signature}}\u003c/p>","cc":[],"bcc":[],"status":"draft","notSentReason":null,"unsubscribed":false}],"pagination":{"nextLink":"https://api.folk.app/v1/campaigns/cmp_9b2f1c1e-2b8a-4d1e-8f5a-3c2d1e0f9a8b/messages?limit=20\u0026cursor=eyJvZmZzZXQiOjIwfQ%3D%3D"}}}}},"exampleType":"examples"}},"exampleType":"examples"},"a5175908-aff9-465d-9712-812db64d0ec7":{"description":"The request was unacceptable, often due to missing an invalid parameter.","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer","example":1000},"description":"The maximum number of requests that you can make in the current rate limit window."},"X-RateLimit-Remaining":{"schema":{"type":"integer","example":998},"description":"The number of requests remaining in the current rate limit window."},"X-RateLimit-Reset":{"schema":{"type":"integer","example":1747322958},"description":"The time at which the current rate limit window resets, in UTC epoch seconds."},"X-RateLimit-Limit-Burst":{"schema":{"type":"integer","example":20},"description":"The maximum number of requests that you can make in the current burst rate limit window."},"X-RateLimit-Remaining-Burst":{"schema":{"type":"integer","example":18},"description":"The number of requests remaining in the current burst rate limit window."},"X-RateLimit-Reset-Burst":{"schema":{"type":"integer","example":1747322902},"description":"The time at which the current burst rate limit window resets, in UTC epoch seconds."},"RateLimit-Policy":{"schema":{"type":"string","example":"\"default\";q=600;w=60, \"burst\";q=20;w=2"},"description":"The rate limit policies applied to the request, as defined by the IETF RateLimit header fields draft. `q` is the number of requests allowed per window and `w` the window length in seconds."},"RateLimit":{"schema":{"type":"string","example":"\"default\";r=598;t=42, \"burst\";r=18;t=1"},"description":"The current usage of each rate limit policy, as defined by the IETF RateLimit header fields draft. `r` is the number of requests remaining and `t` the number of seconds until the window resets."},"Retry-After":{"schema":{"type":"integer","example":60},"description":"The number of seconds to wait before making a new request after hitting the rate limit."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","example":"TOO_MANY_REQUESTS","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","example":"You have exceeded your rate limit.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"documentationUrl":{"type":"string","format":"uri","example":"https://developer.folk.app/api-reference/errors#rate-limiting","isRequired":true,"uniqueKey":"error.documentationUrl","typeLabel":"string\u003curi>"},"requestId":{"type":"string","format":"uuid","example":"123e4567-e89b-12d3-a456-426614174000","isRequired":true,"uniqueKey":"error.requestId","typeLabel":"string\u003cuuid>"},"timestamp":{"type":"string","format":"date-time","example":"2025-10-01T12:00:00Z","isRequired":true,"uniqueKey":"error.timestamp","typeLabel":"string\u003cdate-time>"},"details":{"type":"object","additionalProperties":true,"example":{"policy":"burst","limit":20,"remaining":0,"windowSeconds":2,"retryAfter":"2025-10-01T12:00:02.000Z"},"uniqueKey":"error.details","typeLabel":"object"}},"required":["code","message","documentationUrl","requestId","timestamp"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"description":"Error response containing error details.","uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"INVALID_REQUEST","message":"The request was invalid.","documentationUrl":"https://developer.folk.app/api-reference/errors#bad-request","requestId":"123e4567-e89b-12d3-a456-426614174000","timestamp":"2025-10-01T12:00:00Z"}},"examples":{"Example":{"title":"Example","value":{"error":{"code":"INVALID_REQUEST","message":"The request was invalid.","documentationUrl":"https://developer.folk.app/api-reference/errors#bad-request","requestId":"123e4567-e89b-12d3-a456-426614174000","timestamp":"2025-10-01T12:00:00Z"}}}},"exampleType":"examples"}},"exampleType":"examples"},"f773d9f4-faee-4043-aca6-59d23ee3344d":{"description":"No valid API key provided.","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer","example":1000},"description":"The maximum number of requests that you can make in the current rate limit window."},"X-RateLimit-Remaining":{"schema":{"type":"integer","example":998},"description":"The number of requests remaining in the current rate limit window."},"X-RateLimit-Reset":{"schema":{"type":"integer","example":1747322958},"description":"The time at which the current rate limit window resets, in UTC epoch seconds."},"X-RateLimit-Limit-Burst":{"schema":{"type":"integer","example":20},"description":"The maximum number of requests that you can make in the current burst rate limit window."},"X-RateLimit-Remaining-Burst":{"schema":{"type":"integer","example":18},"description":"The number of requests remaining in the current burst rate limit window."},"X-RateLimit-Reset-Burst":{"schema":{"type":"integer","example":1747322902},"description":"The time at which the current burst rate limit window resets, in UTC epoch seconds."},"RateLimit-Policy":{"schema":{"type":"string","example":"\"default\";q=600;w=60, \"burst\";q=20;w=2"},"description":"The rate limit policies applied to the request, as defined by the IETF RateLimit header fields draft. `q` is the number of requests allowed per window and `w` the window length in seconds."},"RateLimit":{"schema":{"type":"string","example":"\"default\";r=598;t=42, \"burst\";r=18;t=1"},"description":"The current usage of each rate limit policy, as defined by the IETF RateLimit header fields draft. `r` is the number of requests remaining and `t` the number of seconds until the window resets."},"Retry-After":{"schema":{"type":"integer","example":60},"description":"The number of seconds to wait before making a new request after hitting the rate limit."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","example":"TOO_MANY_REQUESTS","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","example":"You have exceeded your rate limit.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"documentationUrl":{"type":"string","format":"uri","example":"https://developer.folk.app/api-reference/errors#rate-limiting","isRequired":true,"uniqueKey":"error.documentationUrl","typeLabel":"string\u003curi>"},"requestId":{"type":"string","format":"uuid","example":"123e4567-e89b-12d3-a456-426614174000","isRequired":true,"uniqueKey":"error.requestId","typeLabel":"string\u003cuuid>"},"timestamp":{"type":"string","format":"date-time","example":"2025-10-01T12:00:00Z","isRequired":true,"uniqueKey":"error.timestamp","typeLabel":"string\u003cdate-time>"},"details":{"type":"object","additionalProperties":true,"example":{"policy":"burst","limit":20,"remaining":0,"windowSeconds":2,"retryAfter":"2025-10-01T12:00:02.000Z"},"uniqueKey":"error.details","typeLabel":"object"}},"required":["code","message","documentationUrl","requestId","timestamp"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"description":"Error response containing error details.","uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"UNAUTHORIZED","message":"No valid API key provided.","documentationUrl":"https://developer.folk.app/api-reference/errors#unauthorized","requestId":"123e4567-e89b-12d3-a456-426614174000","timestamp":"2025-10-01T12:00:00Z"}},"examples":{"Example":{"title":"Example","value":{"error":{"code":"UNAUTHORIZED","message":"No valid API key provided.","documentationUrl":"https://developer.folk.app/api-reference/errors#unauthorized","requestId":"123e4567-e89b-12d3-a456-426614174000","timestamp":"2025-10-01T12:00:00Z"}}}},"exampleType":"examples"}},"exampleType":"examples"},"68406f58-375a-46fd-9457-c08b57c9067e":{"description":"The API key doesn’t have permissions to perform the request.","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer","example":1000},"description":"The maximum number of requests that you can make in the current rate limit window."},"X-RateLimit-Remaining":{"schema":{"type":"integer","example":998},"description":"The number of requests remaining in the current rate limit window."},"X-RateLimit-Reset":{"schema":{"type":"integer","example":1747322958},"description":"The time at which the current rate limit window resets, in UTC epoch seconds."},"X-RateLimit-Limit-Burst":{"schema":{"type":"integer","example":20},"description":"The maximum number of requests that you can make in the current burst rate limit window."},"X-RateLimit-Remaining-Burst":{"schema":{"type":"integer","example":18},"description":"The number of requests remaining in the current burst rate limit window."},"X-RateLimit-Reset-Burst":{"schema":{"type":"integer","example":1747322902},"description":"The time at which the current burst rate limit window resets, in UTC epoch seconds."},"RateLimit-Policy":{"schema":{"type":"string","example":"\"default\";q=600;w=60, \"burst\";q=20;w=2"},"description":"The rate limit policies applied to the request, as defined by the IETF RateLimit header fields draft. `q` is the number of requests allowed per window and `w` the window length in seconds."},"RateLimit":{"schema":{"type":"string","example":"\"default\";r=598;t=42, \"burst\";r=18;t=1"},"description":"The current usage of each rate limit policy, as defined by the IETF RateLimit header fields draft. `r` is the number of requests remaining and `t` the number of seconds until the window resets."},"Retry-After":{"schema":{"type":"integer","example":60},"description":"The number of seconds to wait before making a new request after hitting the rate limit."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","example":"TOO_MANY_REQUESTS","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","example":"You have exceeded your rate limit.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"documentationUrl":{"type":"string","format":"uri","example":"https://developer.folk.app/api-reference/errors#rate-limiting","isRequired":true,"uniqueKey":"error.documentationUrl","typeLabel":"string\u003curi>"},"requestId":{"type":"string","format":"uuid","example":"123e4567-e89b-12d3-a456-426614174000","isRequired":true,"uniqueKey":"error.requestId","typeLabel":"string\u003cuuid>"},"timestamp":{"type":"string","format":"date-time","example":"2025-10-01T12:00:00Z","isRequired":true,"uniqueKey":"error.timestamp","typeLabel":"string\u003cdate-time>"},"details":{"type":"object","additionalProperties":true,"example":{"policy":"burst","limit":20,"remaining":0,"windowSeconds":2,"retryAfter":"2025-10-01T12:00:02.000Z"},"uniqueKey":"error.details","typeLabel":"object"}},"required":["code","message","documentationUrl","requestId","timestamp"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"description":"Error response containing error details.","uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"FORBIDDEN","message":"The API key doesn’t have permissions to perform the request.","documentationUrl":"https://developer.folk.app/api-reference/errors#forbidden","requestId":"123e4567-e89b-12d3-a456-426614174000","timestamp":"2025-10-01T12:00:00Z"}},"examples":{"Example":{"title":"Example","value":{"error":{"code":"FORBIDDEN","message":"The API key doesn’t have permissions to perform the request.","documentationUrl":"https://developer.folk.app/api-reference/errors#forbidden","requestId":"123e4567-e89b-12d3-a456-426614174000","timestamp":"2025-10-01T12:00:00Z"}}}},"exampleType":"examples"}},"exampleType":"examples"},"a6a2f9ab-dd5e-4217-b8cf-98ae7f7e5324":{"description":"The requested resource doesn’t exist.","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer","example":1000},"description":"The maximum number of requests that you can make in the current rate limit window."},"X-RateLimit-Remaining":{"schema":{"type":"integer","example":998},"description":"The number of requests remaining in the current rate limit window."},"X-RateLimit-Reset":{"schema":{"type":"integer","example":1747322958},"description":"The time at which the current rate limit window resets, in UTC epoch seconds."},"X-RateLimit-Limit-Burst":{"schema":{"type":"integer","example":20},"description":"The maximum number of requests that you can make in the current burst rate limit window."},"X-RateLimit-Remaining-Burst":{"schema":{"type":"integer","example":18},"description":"The number of requests remaining in the current burst rate limit window."},"X-RateLimit-Reset-Burst":{"schema":{"type":"integer","example":1747322902},"description":"The time at which the current burst rate limit window resets, in UTC epoch seconds."},"RateLimit-Policy":{"schema":{"type":"string","example":"\"default\";q=600;w=60, \"burst\";q=20;w=2"},"description":"The rate limit policies applied to the request, as defined by the IETF RateLimit header fields draft. `q` is the number of requests allowed per window and `w` the window length in seconds."},"RateLimit":{"schema":{"type":"string","example":"\"default\";r=598;t=42, \"burst\";r=18;t=1"},"description":"The current usage of each rate limit policy, as defined by the IETF RateLimit header fields draft. `r` is the number of requests remaining and `t` the number of seconds until the window resets."},"Retry-After":{"schema":{"type":"integer","example":60},"description":"The number of seconds to wait before making a new request after hitting the rate limit."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","example":"TOO_MANY_REQUESTS","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","example":"You have exceeded your rate limit.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"documentationUrl":{"type":"string","format":"uri","example":"https://developer.folk.app/api-reference/errors#rate-limiting","isRequired":true,"uniqueKey":"error.documentationUrl","typeLabel":"string\u003curi>"},"requestId":{"type":"string","format":"uuid","example":"123e4567-e89b-12d3-a456-426614174000","isRequired":true,"uniqueKey":"error.requestId","typeLabel":"string\u003cuuid>"},"timestamp":{"type":"string","format":"date-time","example":"2025-10-01T12:00:00Z","isRequired":true,"uniqueKey":"error.timestamp","typeLabel":"string\u003cdate-time>"},"details":{"type":"object","additionalProperties":true,"example":{"policy":"burst","limit":20,"remaining":0,"windowSeconds":2,"retryAfter":"2025-10-01T12:00:02.000Z"},"uniqueKey":"error.details","typeLabel":"object"}},"required":["code","message","documentationUrl","requestId","timestamp"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"description":"Error response containing error details.","uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"RESOURCE_NOT_FOUND","message":"The requested resource was not found.","documentationUrl":"https://developer.folk.app/api-reference/errors#not-found","requestId":"123e4567-e89b-12d3-a456-426614174000","timestamp":"2025-10-01T12:00:00Z"}},"examples":{"Example":{"title":"Example","value":{"error":{"code":"RESOURCE_NOT_FOUND","message":"The requested resource was not found.","documentationUrl":"https://developer.folk.app/api-reference/errors#not-found","requestId":"123e4567-e89b-12d3-a456-426614174000","timestamp":"2025-10-01T12:00:00Z"}}}},"exampleType":"examples"}},"exampleType":"examples"},"cdb6ef13-76b6-44ed-a6df-ba9be2bc42e9":{"description":"The request was unacceptable, often due to missing or invalid parameters.","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer","example":1000},"description":"The maximum number of requests that you can make in the current rate limit window."},"X-RateLimit-Remaining":{"schema":{"type":"integer","example":998},"description":"The number of requests remaining in the current rate limit window."},"X-RateLimit-Reset":{"schema":{"type":"integer","example":1747322958},"description":"The time at which the current rate limit window resets, in UTC epoch seconds."},"X-RateLimit-Limit-Burst":{"schema":{"type":"integer","example":20},"description":"The maximum number of requests that you can make in the current burst rate limit window."},"X-RateLimit-Remaining-Burst":{"schema":{"type":"integer","example":18},"description":"The number of requests remaining in the current burst rate limit window."},"X-RateLimit-Reset-Burst":{"schema":{"type":"integer","example":1747322902},"description":"The time at which the current burst rate limit window resets, in UTC epoch seconds."},"RateLimit-Policy":{"schema":{"type":"string","example":"\"default\";q=600;w=60, \"burst\";q=20;w=2"},"description":"The rate limit policies applied to the request, as defined by the IETF RateLimit header fields draft. `q` is the number of requests allowed per window and `w` the window length in seconds."},"RateLimit":{"schema":{"type":"string","example":"\"default\";r=598;t=42, \"burst\";r=18;t=1"},"description":"The current usage of each rate limit policy, as defined by the IETF RateLimit header fields draft. `r` is the number of requests remaining and `t` the number of seconds until the window resets."},"Retry-After":{"schema":{"type":"integer","example":60},"description":"The number of seconds to wait before making a new request after hitting the rate limit."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","example":"TOO_MANY_REQUESTS","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","example":"You have exceeded your rate limit.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"documentationUrl":{"type":"string","format":"uri","example":"https://developer.folk.app/api-reference/errors#rate-limiting","isRequired":true,"uniqueKey":"error.documentationUrl","typeLabel":"string\u003curi>"},"requestId":{"type":"string","format":"uuid","example":"123e4567-e89b-12d3-a456-426614174000","isRequired":true,"uniqueKey":"error.requestId","typeLabel":"string\u003cuuid>"},"timestamp":{"type":"string","format":"date-time","example":"2025-10-01T12:00:00Z","isRequired":true,"uniqueKey":"error.timestamp","typeLabel":"string\u003cdate-time>"},"details":{"type":"object","additionalProperties":true,"example":{"policy":"burst","limit":20,"remaining":0,"windowSeconds":2,"retryAfter":"2025-10-01T12:00:02.000Z"},"uniqueKey":"error.details","typeLabel":"object"}},"required":["code","message","documentationUrl","requestId","timestamp"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"description":"Error response containing error details.","uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"UNPROCESSABLE_ENTITY","message":"Invalid query parameters","documentationUrl":"https://developer.folk.app/api-reference/errors#unprocessable-entity","details":{"issues":[{"code":"too_small","minimum":1,"type":"number","inclusive":true,"exact":false,"message":"Number must be greater than or equal to 1","path":["limit"]}]},"requestId":"123e4567-e89b-12d3-a456-426614174000","timestamp":"2025-10-01T12:00:00Z"}},"examples":{"Example":{"title":"Example","value":{"error":{"code":"UNPROCESSABLE_ENTITY","message":"Invalid query parameters","documentationUrl":"https://developer.folk.app/api-reference/errors#unprocessable-entity","details":{"issues":[{"code":"too_small","minimum":1,"type":"number","inclusive":true,"exact":false,"message":"Number must be greater than or equal to 1","path":["limit"]}]},"requestId":"123e4567-e89b-12d3-a456-426614174000","timestamp":"2025-10-01T12:00:00Z"}}}},"exampleType":"examples"}},"exampleType":"examples"},"b02263ff-1e46-430a-abfc-3ddfd8adf291":{"description":"Too many requests hit the API too quickly. We recommend an exponential backoff of your requests.","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer","example":1000},"description":"The maximum number of requests that you can make in the current rate limit window."},"X-RateLimit-Remaining":{"schema":{"type":"integer","example":998},"description":"The number of requests remaining in the current rate limit window."},"X-RateLimit-Reset":{"schema":{"type":"integer","example":1747322958},"description":"The time at which the current rate limit window resets, in UTC epoch seconds."},"X-RateLimit-Limit-Burst":{"schema":{"type":"integer","example":20},"description":"The maximum number of requests that you can make in the current burst rate limit window."},"X-RateLimit-Remaining-Burst":{"schema":{"type":"integer","example":18},"description":"The number of requests remaining in the current burst rate limit window."},"X-RateLimit-Reset-Burst":{"schema":{"type":"integer","example":1747322902},"description":"The time at which the current burst rate limit window resets, in UTC epoch seconds."},"RateLimit-Policy":{"schema":{"type":"string","example":"\"default\";q=600;w=60, \"burst\";q=20;w=2"},"description":"The rate limit policies applied to the request, as defined by the IETF RateLimit header fields draft. `q` is the number of requests allowed per window and `w` the window length in seconds."},"RateLimit":{"schema":{"type":"string","example":"\"default\";r=598;t=42, \"burst\";r=18;t=1"},"description":"The current usage of each rate limit policy, as defined by the IETF RateLimit header fields draft. `r` is the number of requests remaining and `t` the number of seconds until the window resets."},"Retry-After":{"schema":{"type":"integer","example":60},"description":"The number of seconds to wait before making a new request after hitting the rate limit."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","example":"TOO_MANY_REQUESTS","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","example":"You have exceeded your rate limit.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"documentationUrl":{"type":"string","format":"uri","example":"https://developer.folk.app/api-reference/errors#rate-limiting","isRequired":true,"uniqueKey":"error.documentationUrl","typeLabel":"string\u003curi>"},"requestId":{"type":"string","format":"uuid","example":"123e4567-e89b-12d3-a456-426614174000","isRequired":true,"uniqueKey":"error.requestId","typeLabel":"string\u003cuuid>"},"timestamp":{"type":"string","format":"date-time","example":"2025-10-01T12:00:00Z","isRequired":true,"uniqueKey":"error.timestamp","typeLabel":"string\u003cdate-time>"},"details":{"type":"object","properties":{"policy":{"type":"string","enum":["default","burst"],"description":"The name of the rate limit policy.","isRequired":true,"uniqueKey":"error.details.policy","typeLabel":"enum\u003cstring>"},"limit":{"type":"integer","description":"The maximum number of requests allowed per window.","isRequired":true,"uniqueKey":"error.details.limit","typeLabel":"integer"},"remaining":{"type":"integer","description":"The number of requests remaining in the current window.","isRequired":true,"uniqueKey":"error.details.remaining","typeLabel":"integer"},"windowSeconds":{"type":"integer","description":"The length of the window, in seconds.","isRequired":true,"uniqueKey":"error.details.windowSeconds","typeLabel":"integer"},"retryAfter":{"type":"string","format":"date-time","description":"When the current window resets.","isRequired":true,"uniqueKey":"error.details.retryAfter","typeLabel":"string\u003cdate-time>"},"policies":{"type":"array","items":{"type":"object","properties":{"policy":{"type":"string","enum":["default","burst"],"description":"The name of the rate limit policy.","isRequired":true,"uniqueKey":"error.details.policies.items.[INDEX].policy","typeLabel":"enum\u003cstring>"},"limit":{"type":"integer","description":"The maximum number of requests allowed per window.","isRequired":true,"uniqueKey":"error.details.policies.items.[INDEX].limit","typeLabel":"integer"},"remaining":{"type":"integer","description":"The number of requests remaining in the current window.","isRequired":true,"uniqueKey":"error.details.policies.items.[INDEX].remaining","typeLabel":"integer"},"windowSeconds":{"type":"integer","description":"The length of the window, in seconds.","isRequired":true,"uniqueKey":"error.details.policies.items.[INDEX].windowSeconds","typeLabel":"integer"},"retryAfter":{"type":"string","format":"date-time","description":"When the current window resets.","isRequired":true,"uniqueKey":"error.details.policies.items.[INDEX].retryAfter","typeLabel":"string\u003cdate-time>"}},"required":["policy","limit","remaining","windowSeconds","retryAfter"],"uniqueKey":"error.details.policies.items.[INDEX]","typeLabel":"object"},"description":"The status of every rate limit policy applied to the request.","isRequired":true,"uniqueKey":"error.details.policies","typeLabel":"object[]"}},"required":["policy","limit","remaining","windowSeconds","retryAfter","policies"],"description":"The exceeded rate limit policy. When several are exceeded, the one resetting last.","isRequired":true,"uniqueKey":"error.details","typeLabel":"object"}},"required":["code","message","documentationUrl","requestId","timestamp","details"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"description":"Error response returned when a rate limit is exceeded.","uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"TOO_MANY_REQUESTS","message":"You have exceeded your rate limit.","documentationUrl":"https://developer.folk.app/api-reference/errors#rate-limiting","requestId":"123e4567-e89b-12d3-a456-426614174000","timestamp":"2025-10-01T12:00:00Z","details":{"policy":"burst","limit":20,"remaining":0,"windowSeconds":2,"retryAfter":"2025-10-01T12:00:02.000Z","policies":[{"policy":"default","limit":600,"remaining":412,"windowSeconds":60,"retryAfter":"2025-10-01T12:01:00.000Z"},{"policy":"burst","limit":20,"remaining":0,"windowSeconds":2,"retryAfter":"2025-10-01T12:00:02.000Z"}]}}},"examples":{"Example":{"title":"Example","value":{"error":{"code":"TOO_MANY_REQUESTS","message":"You have exceeded your rate limit.","documentationUrl":"https://developer.folk.app/api-reference/errors#rate-limiting","requestId":"123e4567-e89b-12d3-a456-426614174000","timestamp":"2025-10-01T12:00:00Z","details":{"policy":"burst","limit":20,"remaining":0,"windowSeconds":2,"retryAfter":"2025-10-01T12:00:02.000Z","policies":[{"policy":"default","limit":600,"remaining":412,"windowSeconds":60,"retryAfter":"2025-10-01T12:01:00.000Z"},{"policy":"burst","limit":20,"remaining":0,"windowSeconds":2,"retryAfter":"2025-10-01T12:00:02.000Z"}]}}}}},"exampleType":"examples"}},"exampleType":"examples"},"d67c13d6-ef99-40a5-be0b-f12564499ea9":{"description":"Something went wrong on our end.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","example":"TOO_MANY_REQUESTS","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","example":"You have exceeded your rate limit.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"documentationUrl":{"type":"string","format":"uri","example":"https://developer.folk.app/api-reference/errors#rate-limiting","isRequired":true,"uniqueKey":"error.documentationUrl","typeLabel":"string\u003curi>"},"requestId":{"type":"string","format":"uuid","example":"123e4567-e89b-12d3-a456-426614174000","isRequired":true,"uniqueKey":"error.requestId","typeLabel":"string\u003cuuid>"},"timestamp":{"type":"string","format":"date-time","example":"2025-10-01T12:00:00Z","isRequired":true,"uniqueKey":"error.timestamp","typeLabel":"string\u003cdate-time>"},"details":{"type":"object","additionalProperties":true,"example":{"policy":"burst","limit":20,"remaining":0,"windowSeconds":2,"retryAfter":"2025-10-01T12:00:02.000Z"},"uniqueKey":"error.details","typeLabel":"object"}},"required":["code","message","documentationUrl","requestId","timestamp"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"description":"Error response containing error details.","uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"INTERNAL_SERVER_ERROR","message":"An internal server error occurred.","documentationUrl":"https://developer.folk.app/api-reference/errors#internal-server-error","requestId":"123e4567-e89b-12d3-a456-426614174000","timestamp":"2025-10-01T12:00:00Z"}},"examples":{"Example":{"title":"Example","value":{"error":{"code":"INTERNAL_SERVER_ERROR","message":"An internal server error occurred.","documentationUrl":"https://developer.folk.app/api-reference/errors#internal-server-error","requestId":"123e4567-e89b-12d3-a456-426614174000","timestamp":"2025-10-01T12:00:00Z"}}}},"exampleType":"examples"}},"exampleType":"examples"},"a8fa4643-5a2b-45a8-9cd4-f2ca50b02451":{"description":"The server is overloaded or down for maintenance.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","example":"TOO_MANY_REQUESTS","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","example":"You have exceeded your rate limit.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"documentationUrl":{"type":"string","format":"uri","example":"https://developer.folk.app/api-reference/errors#rate-limiting","isRequired":true,"uniqueKey":"error.documentationUrl","typeLabel":"string\u003curi>"},"requestId":{"type":"string","format":"uuid","example":"123e4567-e89b-12d3-a456-426614174000","isRequired":true,"uniqueKey":"error.requestId","typeLabel":"string\u003cuuid>"},"timestamp":{"type":"string","format":"date-time","example":"2025-10-01T12:00:00Z","isRequired":true,"uniqueKey":"error.timestamp","typeLabel":"string\u003cdate-time>"},"details":{"type":"object","additionalProperties":true,"example":{"policy":"burst","limit":20,"remaining":0,"windowSeconds":2,"retryAfter":"2025-10-01T12:00:02.000Z"},"uniqueKey":"error.details","typeLabel":"object"}},"required":["code","message","documentationUrl","requestId","timestamp"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"description":"Error response containing error details.","uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"SERVICE_UNAVAILABLE","message":"The service is currently unavailable.","documentationUrl":"https://developer.folk.app/api-reference/errors#service-unavailable","requestId":"123e4567-e89b-12d3-a456-426614174000","timestamp":"2025-10-01T12:00:00Z"}},"examples":{"Example":{"title":"Example","value":{"error":{"code":"SERVICE_UNAVAILABLE","message":"The service is currently unavailable.","documentationUrl":"https://developer.folk.app/api-reference/errors#service-unavailable","requestId":"123e4567-e89b-12d3-a456-426614174000","timestamp":"2025-10-01T12:00:00Z"}}}},"exampleType":"examples"}},"exampleType":"examples"}},"security":{"a6260932-0e8e-49c1-b7ba-f77f1f380043":{"bearerApiKeyAuth":{"type":"http","scheme":"bearer","description":"API key for authentication","scopes":[],"schemeName":"bearerApiKeyAuth"}}},"servers":{"9ff6af81-d226-4589-a8c5-5e6c925a5653":{"url":"https://api.folk.app","description":"Folk's public API production base URL.","x-internal":false}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","description":"API key for authentication","scopes":[],"schemeName":"bearerApiKeyAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"API key for authentication","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearerApiKeyAuth","name":"Authorization"}],"title":"bearerApiKeyAuth"}]},"originalFileLocation":"schemas/2025-06-09.json"},"subdomain":"folk-cf968f5e","siteName":"Folk Developer Portal","title":"(Beta) List the messages of a campaign - Folk Developer Portal","navMaps":{"firstHrefInVersion":{"2025-06-09":{"href":"/api-reference/campaigns/list-the-messages-of-a-campaign","matchLevel":0}},"firstHrefInLanguage":{}},"lastModified":"2026-10-29T10:19:49.387Z","originalFileLocation":"api-reference/campaigns/list-the-messages-of-a-campaign.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Retrieve a paginated list of the messages of a campaign, one per recipient and per step, ordered by step. Messages to deleted contacts are listed with recipient.contact: null.This endpoint is currently in open beta. The API surface may change as we iterate based on feedback.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Folk Developer Portal\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/folk-cf968f5e/2qJ3PKRZLvFhl3LP/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/folk-cf968f5e/2qJ3PKRZLvFhl3LP/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/folk-cf968f5e/2qJ3PKRZLvFhl3LP/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/folk-cf968f5e/2qJ3PKRZLvFhl3LP/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/folk-cf968f5e/2qJ3PKRZLvFhl3LP/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/folk-cf968f5e/2qJ3PKRZLvFhl3LP/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/folk-cf968f5e/2qJ3PKRZLvFhl3LP/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/folk-cf968f5e/2qJ3PKRZLvFhl3LP/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/folk-cf968f5e/2qJ3PKRZLvFhl3LP/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"(Beta) List the messages of a campaign - Folk Developer Portal\">\u003cmeta data-mint-head property=\"og:description\" content=\"Retrieve a paginated list of the messages of a campaign, one per recipient and per step, ordered by step. Messages to deleted contacts are listed with recipient.contact: null.This endpoint is currently in open beta. The API surface may change as we iterate based on feedback.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Folk Developer Portal\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://developer.folk.app/api-reference/campaigns/list-the-messages-of-a-campaign\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://folk-cf968f5e.mintlify.app/_mintlify/api/og/v2?division=Campaigns\u0026amp;title=%28Beta%29+List+the+messages+of+a+campaign\u0026amp;description=Retrieve+a+paginated+list+of+the+messages+of+a+campaign%2C+one+per+recipient+and+per+step%2C+ordered+by+step.+Messages+to+deleted+contacts+are+listed+with+%60recipien\u0026amp;theme=85df8d899a1a67ad96f0c424\u0026amp;signature=daac62ef7106babaac119a6fe562dfde2453d0fd71f4cba437c6eb219f055999\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"(Beta) List the messages of a campaign - Folk Developer Portal\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Retrieve a paginated list of the messages of a campaign, one per recipient and per step, ordered by step. Messages to deleted contacts are listed with recipient.contact: null.This endpoint is currently in open beta. The API surface may change as we iterate based on feedback.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://folk-cf968f5e.mintlify.app/_mintlify/api/og/v2?division=Campaigns\u0026amp;title=%28Beta%29+List+the+messages+of+a+campaign\u0026amp;description=Retrieve+a+paginated+list+of+the+messages+of+a+campaign%2C+one+per+recipient+and+per+step%2C+ordered+by+step.+Messages+to+deleted+contacts+are+listed+with+%60recipien\u0026amp;theme=85df8d899a1a67ad96f0c424\u0026amp;signature=daac62ef7106babaac119a6fe562dfde2453d0fd71f4cba437c6eb219f055999\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/folk-cf968f5e/2qJ3PKRZLvFhl3LP/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Folk Developer Portal\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#000000\">\u003clink data-mint-head rel=\"canonical\" href=\"https://developer.folk.app/api-reference/campaigns/list-the-messages-of-a-campaign\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/campaigns/list-the-messages-of-a-campaign.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://developer.folk.app/#organization\",\"name\":\"Folk Developer Portal\",\"url\":\"https://developer.folk.app\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/folk-cf968f5e/I7wFhRmtMuOvy2tG/assets/logo-light.svg?fit=max\u0026auto=format\u0026n=I7wFhRmtMuOvy2tG\u0026q=85\u0026s=08eda1dcbb1eefceac8ca5fea9c103d8\"}},{\"@type\":\"WebSite\",\"@id\":\"https://developer.folk.app#website\",\"name\":\"Folk Developer Portal\",\"url\":\"https://developer.folk.app\",\"publisher\":{\"@id\":\"https://developer.folk.app/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://developer.folk.app/api-reference/campaigns/list-the-messages-of-a-campaign#webpage\",\"url\":\"https://developer.folk.app/api-reference/campaigns/list-the-messages-of-a-campaign\",\"name\":\"(Beta) List the messages of a campaign\",\"description\":\"Retrieve a paginated list of the messages of a campaign, one per recipient and per step, ordered by step. Messages to deleted contacts are listed with recipient.contact: null.This endpoint is currently in open beta. The API surface may change as we iterate based on feedback.\",\"dateModified\":\"2026-10-29T10:19:49.387Z\",\"isPartOf\":{\"@id\":\"https://developer.folk.app#website\"},\"breadcrumb\":{\"@id\":\"https://developer.folk.app/api-reference/campaigns/list-the-messages-of-a-campaign#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://developer.folk.app/api-reference/campaigns/list-the-messages-of-a-campaign#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Available endpoints\",\"item\":\"https://developer.folk.app/api-reference/people/list-people\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Campaigns\",\"item\":\"https://developer.folk.app/api-reference/campaigns/list-campaigns\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"(Beta) List the messages of a campaign\",\"item\":\"https://developer.folk.app/api-reference/campaigns/list-the-messages-of-a-campaign\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://developer.folk.app/api-reference/campaigns/list-the-messages-of-a-campaign#apireference\",\"headline\":\"(Beta) List the messages of a campaign\",\"name\":\"(Beta) List the messages of a campaign\",\"description\":\"Retrieve a paginated list of the messages of a campaign, one per recipient and per step, ordered by step. Messages to deleted contacts are listed with recipient.contact: null.This endpoint is currently in open beta. The API surface may change as we iterate based on feedback.\",\"url\":\"https://developer.folk.app/api-reference/campaigns/list-the-messages-of-a-campaign\",\"mainEntityOfPage\":{\"@id\":\"https://developer.folk.app/api-reference/campaigns/list-the-messages-of-a-campaign#webpage\"},\"dateModified\":\"2026-10-29T10:19:49.387Z\",\"publisher\":{\"@id\":\"https://developer.folk.app/#organization\"},\"isPartOf\":{\"@id\":\"https://developer.folk.app#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Folk Developer Portal\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Folk Developer Portal","nav":{"global":null,"tabs":[{"tab":"Welcome","pages":[{"title":"Welcome","href":""}]},{"tab":"Guides","pages":[{"title":"Guides","href":"/guides/quick-start"}]},{"tab":"API Reference","versions":[{"version":"2025-06-09","default":true,"groups":[{"group":"Introduction","pages":[{"title":null,"href":"/api-reference/overview"},{"title":null,"href":"/api-reference/authentication"},{"title":null,"href":"/api-reference/success-responses"},{"title":null,"href":"/api-reference/errors"},{"title":null,"href":"/api-reference/pagination"},{"title":null,"href":"/api-reference/filtering"},{"title":"Idempotency","href":"/api-reference/idempotency"},{"title":"Batch requests","href":"/api-reference/batch-requests"},{"title":null,"href":"/api-reference/rate-limits"},{"title":"Request ID","href":"/api-reference/request-id"},{"title":null,"href":"/api-reference/versioning"}]},{"group":"Available endpoints","pages":[{"group":"People","pages":[{"title":"List people","deprecated":null,"version":null,"openapi":"/schemas/2025-06-09.json get /v1/people","href":"/api-reference/people/list-people"},{"openapi":"post /v1/people","title":"Create a person","href":"/api-reference/people/create-a-person"},{"title":"Get a person","deprecated":null,"version":null,"openapi":"/schemas/2025-06-09.json get /v1/people/{personId}","href":"/api-reference/people/get-a-person"},{"openapi":"patch /v1/people/{personId}","title":"Update a person","href":"/api-reference/people/update-a-person"},{"openapi":"delete /v1/people/{personId}","title":"Delete a person","href":"/api-reference/people/delete-a-person"},{"openapi":"post /v1/people/batch/create","title":"Create people in batch","href":"/api-reference/people/create-people-in-batch"},{"openapi":"post /v1/people/batch/update","title":"Update people in batch","href":"/api-reference/people/update-people-in-batch"},{"openapi":"post /v1/people/batch/delete","title":"Delete people in batch","href":"/api-reference/people/delete-people-in-batch"}]},{"group":"Companies","pages":[{"title":"List companies","deprecated":null,"version":null,"openapi":"/schemas/2025-06-09.json get /v1/companies","href":"/api-reference/companies/list-companies"},{"openapi":"post /v1/companies","title":"Create a company","href":"/api-reference/companies/create-a-company"},{"title":"Get a company","deprecated":null,"version":null,"openapi":"/schemas/2025-06-09.json get /v1/companies/{companyId}","href":"/api-reference/companies/get-a-company"},{"openapi":"patch /v1/companies/{companyId}","title":"Update a company","href":"/api-reference/companies/update-a-company"},{"openapi":"delete /v1/companies/{companyId}","title":"Delete a company","href":"/api-reference/companies/delete-a-company"},{"openapi":"post /v1/companies/batch/create","title":"Create companies in batch","href":"/api-reference/companies/create-companies-in-batch"},{"openapi":"post /v1/companies/batch/update","title":"Update companies in batch","href":"/api-reference/companies/update-companies-in-batch"},{"openapi":"post /v1/companies/batch/delete","title":"Delete companies in batch","href":"/api-reference/companies/delete-companies-in-batch"}]},{"group":"Credits","pages":[{"title":"Get credits","deprecated":null,"version":null,"openapi":"/schemas/2025-06-09.json get /v1/credits","href":"/api-reference/credits/get-credits"}]},{"group":"Group members","pages":[{"title":"List group members","deprecated":null,"version":null,"openapi":"/schemas/2025-06-09.json get /v1/groups/{groupId}/members","href":"/api-reference/group-members/list-group-members"},{"title":"Add a group member","deprecated":null,"version":null,"openapi":"/schemas/2025-06-09.json post /v1/groups/{groupId}/members","href":"/api-reference/group-members/add-a-group-member"},{"title":"Update a group member","deprecated":null,"version":null,"openapi":"/schemas/2025-06-09.json patch /v1/groups/{groupId}/members/{userId}","href":"/api-reference/group-members/update-a-group-member"},{"title":"Remove a group member","deprecated":null,"version":null,"openapi":"/schemas/2025-06-09.json delete /v1/groups/{groupId}/members/{userId}","href":"/api-reference/group-members/remove-a-group-member"}]},{"group":"Group custom fields","pages":[{"title":"List group custom fields","deprecated":null,"version":null,"openapi":"/schemas/2025-06-09.json get /v1/groups/{groupId}/custom-fields/{entityType}","href":"/api-reference/group-custom-fields/list-group-custom-fields"},{"title":"Create a group custom field","deprecated":null,"version":null,"openapi":"/schemas/2025-06-09.json post /v1/groups/{groupId}/custom-fields/{entityType}","href":"/api-reference/group-custom-fields/create-a-group-custom-field"},{"title":"Get a group custom field","deprecated":null,"version":null,"openapi":"/schemas/2025-06-09.json get /v1/groups/{groupId}/custom-fields/{entityType}/{customFieldName}","href":"/api-reference/group-custom-fields/get-a-group-custom-field"},{"title":"Update a group custom field","deprecated":null,"version":null,"openapi":"/schemas/2025-06-09.json patch /v1/groups/{groupId}/custom-fields/{entityType}/{customFieldName}","href":"/api-reference/group-custom-fields/update-a-group-custom-field"}]},{"group":"Custom objects","pages":[{"openapi":"get /v1/groups/{groupId}/{objectType}","title":"List objects","href":"/api-reference/custom-objects/list-objects"},{"openapi":"post /v1/groups/{groupId}/{objectType}","title":"Create an object","href":"/api-reference/custom-objects/create-an-object"},{"openapi":"get /v1/groups/{groupId}/{objectType}/{objectId}","title":"Get an object","href":"/api-reference/custom-objects/get-an-object"},{"openapi":"patch /v1/groups/{groupId}/{objectType}/{objectId}","title":"Update an object","href":"/api-reference/custom-objects/update-an-object"},{"openapi":"delete /v1/groups/{groupId}/{objectType}/{objectId}","title":"Delete an object","href":"/api-reference/custom-objects/delete-an-object"},{"openapi":"post /v1/groups/{groupId}/{objectType}/batch/create","title":"Create objects in batch","href":"/api-reference/custom-objects/create-objects-in-batch"},{"openapi":"post /v1/groups/{groupId}/{objectType}/batch/update","title":"Update objects in batch","href":"/api-reference/custom-objects/update-objects-in-batch"},{"openapi":"post /v1/groups/{groupId}/{objectType}/batch/delete","title":"Delete objects in batch","href":"/api-reference/custom-objects/delete-objects-in-batch"}]},{"group":"Groups","pages":[{"title":"List groups","deprecated":null,"version":null,"openapi":"/schemas/2025-06-09.json get /v1/groups","href":"/api-reference/groups/list-groups"},{"title":"Create a group","deprecated":null,"version":null,"openapi":"/schemas/2025-06-09.json post /v1/groups","href":"/api-reference/groups/create-a-group"},{"title":"Update a group","deprecated":null,"version":null,"openapi":"/schemas/2025-06-09.json patch /v1/groups/{groupId}","href":"/api-reference/groups/update-a-group"}]},{"group":"Users","pages":[{"title":"List users","deprecated":null,"version":null,"openapi":"/schemas/2025-06-09.json get /v1/users","href":"/api-reference/users/list-users"},{"title":"Get the current user","deprecated":null,"version":null,"openapi":"/schemas/2025-06-09.json get /v1/users/me","href":"/api-reference/users/get-the-current-user"},{"title":"Get a user","deprecated":null,"version":null,"openapi":"/schemas/2025-06-09.json get /v1/users/{userId}","href":"/api-reference/users/get-a-user"}]},{"group":"Notes","pages":[{"title":"List notes","deprecated":null,"version":null,"openapi":"/schemas/2025-06-09.json get /v1/notes","href":"/api-reference/notes/list-notes"},{"openapi":"post /v1/notes","title":"Create a note","href":"/api-reference/notes/create-a-note"},{"title":"Get a note","deprecated":null,"version":null,"openapi":"/schemas/2025-06-09.json get /v1/notes/{noteId}","href":"/api-reference/notes/get-a-note"},{"openapi":"patch /v1/notes/{noteId}","title":"Update a note","href":"/api-reference/notes/update-a-note"},{"title":"Delete a note","deprecated":null,"version":null,"openapi":"/schemas/2025-06-09.json delete /v1/notes/{noteId}","href":"/api-reference/notes/delete-a-note"}]},{"group":"Reminders","pages":[{"title":"List reminders","deprecated":true,"version":null,"openapi":"/schemas/2025-06-09.json get /v1/reminders","href":"/api-reference/reminders/list-reminders"},{"openapi":"post /v1/reminders","deprecated":true,"title":"Create a reminder","href":"/api-reference/reminders/create-a-reminder"},{"title":"Get a reminder","deprecated":true,"version":null,"openapi":"/schemas/2025-06-09.json get /v1/reminders/{reminderId}","href":"/api-reference/reminders/get-a-reminder"},{"openapi":"patch /v1/reminders/{reminderId}","deprecated":true,"title":"Update a reminder","href":"/api-reference/reminders/update-a-reminder"},{"title":"Delete a reminder","deprecated":true,"version":null,"openapi":"/schemas/2025-06-09.json delete /v1/reminders/{reminderId}","href":"/api-reference/reminders/delete-a-reminder"}]},{"group":"Tasks","pages":[{"title":"List tasks","deprecated":null,"version":null,"openapi":"/schemas/2025-06-09.json get /v1/tasks","href":"/api-reference/tasks/list-tasks"},{"title":"Create a task","deprecated":null,"version":null,"openapi":"/schemas/2025-06-09.json post /v1/tasks","href":"/api-reference/tasks/create-a-task"},{"title":"Get a task","deprecated":null,"version":null,"openapi":"/schemas/2025-06-09.json get /v1/tasks/{taskId}","href":"/api-reference/tasks/get-a-task"},{"openapi":"patch /v1/tasks/{taskId}","title":"Update a task","href":"/api-reference/tasks/update-a-task"},{"title":"Delete a task","deprecated":null,"version":null,"openapi":"/schemas/2025-06-09.json delete /v1/tasks/{taskId}","href":"/api-reference/tasks/delete-a-task"},{"title":"Mark a task as done","deprecated":null,"version":null,"openapi":"/schemas/2025-06-09.json post /v1/tasks/{taskId}/mark-as-done","href":"/api-reference/tasks/mark-a-task-as-done"},{"title":"Mark a task as to do","deprecated":null,"version":null,"openapi":"/schemas/2025-06-09.json post /v1/tasks/{taskId}/mark-as-todo","href":"/api-reference/tasks/mark-a-task-as-to-do"}]},{"group":"Person enrichments","pages":[{"title":"List enrichments of people","deprecated":null,"version":null,"openapi":"/schemas/2025-06-09.json get /v1/person-enrichments","href":"/api-reference/person-enrichments/list-enrichments-of-people"},{"openapi":"post /v1/person-enrichments","title":"Enrich people","href":"/api-reference/person-enrichments/enrich-people"},{"title":"Get an enrichment of people","deprecated":null,"version":null,"openapi":"/schemas/2025-06-09.json get /v1/person-enrichments/{enrichmentId}","href":"/api-reference/person-enrichments/get-an-enrichment-of-people"}]},{"group":"Interactions","pages":[{"title":"(Beta) List interactions","deprecated":null,"version":null,"tag":"Beta","sidebarTitle":"List interactions","openapi":"/schemas/2025-06-09.json get /v1/interactions","href":"/api-reference/interactions/list-interactions"},{"title":"Create an interaction","deprecated":null,"version":null,"openapi":"/schemas/2025-06-09.json post /v1/interactions","href":"/api-reference/interactions/create-an-interaction"},{"title":"(Beta) List past interactions","deprecated":true,"version":null,"tag":"Beta","sidebarTitle":"List past interactions","openapi":"/schemas/2025-06-09.json get /v1/interactions/past","href":"/api-reference/interactions/list-past-interactions"},{"title":"(Beta) List upcoming interactions","deprecated":true,"version":null,"tag":"Beta","sidebarTitle":"List upcoming interactions","openapi":"/schemas/2025-06-09.json get /v1/interactions/upcoming","href":"/api-reference/interactions/list-upcoming-interactions"},{"title":"(Beta) Get a past or upcoming interaction","deprecated":null,"version":null,"tag":"Beta","sidebarTitle":"Get a past or upcoming interaction","openapi":"/schemas/2025-06-09.json get /v1/interactions/{interactionId}","href":"/api-reference/interactions/get-a-past-or-upcoming-interaction"},{"title":"(Beta) Update an interaction","deprecated":null,"version":null,"tag":"Beta","sidebarTitle":"Update an interaction","openapi":"/schemas/2025-06-09.json patch /v1/interactions/{interactionId}","href":"/api-reference/interactions/update-an-interaction"},{"title":"(Beta) Delete an interaction","deprecated":null,"version":null,"tag":"Beta","sidebarTitle":"Delete an interaction","openapi":"/schemas/2025-06-09.json delete /v1/interactions/{interactionId}","href":"/api-reference/interactions/delete-an-interaction"}]},{"group":"Webhooks","pages":[{"openapi":"get /v1/webhooks","title":"List webhooks","href":"/api-reference/webhooks/list-webhooks"},{"openapi":"post /v1/webhooks","title":"Create a webhook","href":"/api-reference/webhooks/create-a-webhook"},{"openapi":"get /v1/webhooks/{webhookId}","title":"Get a webhook","href":"/api-reference/webhooks/get-a-webhook"},{"openapi":"patch /v1/webhooks/{webhookId}","title":"Update a webhook","href":"/api-reference/webhooks/update-a-webhook"},{"openapi":"delete /v1/webhooks/{webhookId}","title":"Delete a webhook","href":"/api-reference/webhooks/delete-a-webhook"}]},{"group":"Campaigns","pages":[{"title":"(Beta) List campaigns","deprecated":null,"version":null,"tag":"Beta","sidebarTitle":"List campaigns","openapi":"/schemas/2025-06-09.json get /v1/campaigns","href":"/api-reference/campaigns/list-campaigns"},{"title":"(Beta) Create a campaign","deprecated":null,"version":null,"tag":"Beta","sidebarTitle":"Create a campaign","openapi":"/schemas/2025-06-09.json post /v1/campaigns","href":"/api-reference/campaigns/create-a-campaign"},{"title":"(Beta) Get a campaign","deprecated":null,"version":null,"tag":"Beta","sidebarTitle":"Get a campaign","openapi":"/schemas/2025-06-09.json get /v1/campaigns/{campaignId}","href":"/api-reference/campaigns/get-a-campaign"},{"title":"(Beta) Update a campaign","deprecated":null,"version":null,"tag":"Beta","sidebarTitle":"Update a campaign","openapi":"/schemas/2025-06-09.json patch /v1/campaigns/{campaignId}","href":"/api-reference/campaigns/update-a-campaign"},{"title":"(Beta) Delete a campaign","description":"Delete a campaign that is a draft or in review, with its messages. Other campaigns can't be deleted: stop a scheduled or sending campaign instead.\u003cbr/>\u003cWarning>This endpoint is currently in open beta. The API surface may change as we iterate based on feedback.\u003c/Warning>","deprecated":null,"version":null,"tag":"Beta","sidebarTitle":"Delete a campaign","openapi":"/schemas/2025-06-09.json delete /v1/campaigns/{campaignId}","href":"/api-reference/campaigns/delete-a-campaign"},{"title":"(Beta) List the messages of a campaign","deprecated":null,"version":null,"tag":"Beta","sidebarTitle":"List the messages of a campaign","openapi":"/schemas/2025-06-09.json get /v1/campaigns/{campaignId}/messages","href":"/api-reference/campaigns/list-the-messages-of-a-campaign"},{"title":"(Beta) Get a message of a campaign","description":"Retrieve a single message of a campaign.\u003cbr/>\u003cWarning>This endpoint is currently in open beta. The API surface may change as we iterate based on feedback.\u003c/Warning>","deprecated":null,"version":null,"tag":"Beta","sidebarTitle":"Get a message of a campaign","openapi":"/schemas/2025-06-09.json get /v1/campaigns/{campaignId}/messages/{messageId}","href":"/api-reference/campaigns/get-a-message-of-a-campaign"},{"title":"(Beta) List the variables of a campaign","deprecated":null,"version":null,"tag":"Beta","sidebarTitle":"List the variables of a campaign","openapi":"/schemas/2025-06-09.json get /v1/campaigns/{campaignId}/variables","href":"/api-reference/campaigns/list-the-variables-of-a-campaign"},{"title":"(Beta) List message senders","deprecated":null,"version":null,"tag":"Beta","sidebarTitle":"List message senders","openapi":"/schemas/2025-06-09.json get /v1/message-senders","href":"/api-reference/campaigns/list-message-senders"}]}]}]}]},{"tab":"MCP","pages":[{"title":"MCP","href":"/mcp/overview"}]},{"tab":"Changelog","pages":[{"title":"Changelog","href":"/changelog"}]},{"tab":"Roadmap","pages":[{"title":"Roadmap","href":"/roadmap"}]}]},"title":"(Beta) List the messages of a campaign - Folk Developer Portal","buildId":"dpl_2xiSHD9XEvLsPGPcfoMtkLTB3dy9","deploymentId":"dpl_2xiSHD9XEvLsPGPcfoMtkLTB3dy9","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-DmVyH30O.js","utils-BHQqGGOd.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-CD-E4BIt.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-Bp5Lq9Ds.js","snippetPresets-C4xAVCFP.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-CgXVLxUC.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-BF8I5oUf.js","shallow-Byd0lWnC.js","getApiPlaygroundDisplay-BGOZG1OK.js","CodeSnippet-CpvQL0CY.js","CodeSnippets-B8wkBKXa.js","Page-CBCH2P7b.js","getPastedJson-Ry3scI3Y.js","icon-D7a9HcdD.js","MethodPill-CJ8pmHhz.js","DuplicateIcon-rh1HJF0t.js","createIcon-DvGznqYs.js","DynamicMarkdown-Cc6AuSHS.js","SectionHeading-B4A0S-ep.js","axios-vUo_bRtp.js","Markdown-Cc16CX65.js","clsx-Cs6nMGht.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-zbf22OZA.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-C_fs-y5n.js"]}