Meta does not open every WhatsApp feature to every account. Calling, block lists and India payments are granted per business, sometimes per number, and sometimes only in certain countries.So LazyApp does not let you hard-code that knowledge. Ask:
Two different reasons, and the distinction matters:
Meta has not granted it to you. Calling starts false for everyone. When Meta approves your account, LazyApp turns it on per connection — no deploy on your side, no code change. Your integration should start working the moment the flag flips.
Your number does not qualify yet.groups and messages.group need an Official Business Account. POST /v1/groups/eligibility checks Meta and flips both flags to match.
Switched off for one connection. Block lists (block_users) and catalog sync default on; a connection can turn either off.
Either way the correct client behaviour is the same: read the flag, and degrade gracefully when it is false.
const { data } = await lazyapp('/v1/capabilities');const number = data.find((c) => c.is_default);if (number.capabilities.calling) { showCallButton();}
Cache the response for a few minutes rather than calling it per send. It changes rarely,
but do not cache it for the life of your process — the point is that it can change
without you deploying.
quality_rating is Meta’s own signal — GREEN, YELLOW or RED — reflecting how recipients are reacting to your messages. A number sliding to RED risks having its messaging limit cut, so it is worth alerting on. You also receive phone_number.quality_changedwebhooks.
messaging_limit_tier is Meta’s send ceiling for that number (for example TIER_1K). It moves as quality and usage change. Pair it with quality_rating when you decide how aggressively to run broadcasts.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"LazyApp","colors":{"primary":"#075E54","light":"#25D366","dark":"#075E54"},"logo":{"light":"https://mintcdn.com/buildnboost/G02cVf-nmxG_Leo1/logo/light.svg?fit=max\u0026auto=format\u0026n=G02cVf-nmxG_Leo1\u0026q=85\u0026s=c3f6023abb2a7f07b94b4e0e7651dcd9","dark":"https://mintcdn.com/buildnboost/G02cVf-nmxG_Leo1/logo/dark.svg?fit=max\u0026auto=format\u0026n=G02cVf-nmxG_Leo1\u0026q=85\u0026s=05a4ce02ab9bcf8d53797f118463dce1"},"favicon":"https://mintcdn.com/buildnboost/G02cVf-nmxG_Leo1/favicon.svg?fit=max\u0026auto=format\u0026n=G02cVf-nmxG_Leo1\u0026q=85\u0026s=20c6ec8d32bc2a393db7ba86089ecf48","navbar":{"links":[{"href":"mailto:support@lazyapp.in","label":"Support"}],"primary":{"type":"button","label":"Console","href":"https://lazyapp.in"}},"footer":{"socials":{"website":"https://lazyapp.in"}},"integrations":{"ga4":{"measurementId":"G-49PC1G9F94"}},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"buildnboost","hasAudioNarration":false,"actualSubdomain":"buildnboost","customDomains":[],"gitSource":{"type":"github","owner":"rahulsulegaokar","repo":"lazyapp-docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"chroma":{"latestBuiltDeploymentHistoryId":"6adb2a131ada550105798243","collectionId":"6e756ec1-a204-4042-a448-01ca04c482e6","liveDeploymentHistoryId":"6adb2a131ada550105798243","schemaVersion":"v3"},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6adb2a131ada550105798243","clientVersion":"0.0.3965","searchFilterCounts":[{"language":"default","tag":"API reference","count":229},{"language":"default","tag":"Guides","count":71},{"language":"default","tag":"Connections","count":39},{"language":"default","tag":"Contacts","count":20},{"language":"default","tag":"Sending","count":16},{"language":"default","tag":"Groups","count":16},{"language":"default","tag":"Templates","count":16},{"language":"default","tag":"WhatsApp","count":15},{"language":"default","tag":"Flows","count":15},{"language":"default","tag":"Payments","count":15}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"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":"editor-v7-file-tree","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":"editor-nav-generations","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":"editor-agent-model-picker","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":"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}],"isAtlas":false,"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"concepts/capabilities","slug":"/concepts/capabilities","pageMetadata":{"title":"Capabilities","description":"Ask what a number supports instead of assuming.","href":"/concepts/capabilities"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Ask what a number supports instead of assuming.\"\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};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,CodeGroup,Heading,Tip}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!CodeGroup)_missingMdxReference(`CodeGroup`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Tip)_missingMdxReference(`Tip`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`Meta does not open every WhatsApp feature to every account. Calling, block lists and India payments are granted per business, sometimes per number, and sometimes only in certain countries.`}),`\n`,_jsx(_components.p,{children:`So LazyApp does not let you hard-code that knowledge. Ask:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`2`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`2`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` https://lazyapp.in/v1/capabilities`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Authorization: Bearer `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$LAZYAPP_API_KEY`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`})]}),`\n`]})})}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`22`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`22`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"data\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"connection_uuid\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"9f8b1c2d-4e5f-4a6b-8c7d-0e1f2a3b4c5d\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"phone_number_id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"123456789012345\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"display_phone_number\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"+919812345670\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"is_default\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`true`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"quality_rating\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"GREEN\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"messaging_limit_tier\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"TIER_1K\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"capabilities\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"messages.text\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`true`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"messages.template\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`true`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"flows\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`true`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"calling\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`false`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"block_users\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`true`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"groups\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`false`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"messages.group\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`false`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"commerce.catalog_sync\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`true`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` ]`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsx(Heading,{level:`2`,id:`why-a-capability-is-false`,children:`Why a capability is false`}),`\n`,_jsx(_components.p,{children:`Two different reasons, and the distinction matters:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Meta has not granted it to you.`}),` Calling starts `,_jsx(_components.code,{children:`false`}),` for everyone. When Meta approves your account, LazyApp turns it on per connection — no deploy on your side, no code change. Your integration should start working the moment the flag flips.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Your number does not qualify yet.`}),` `,_jsx(_components.code,{children:`groups`}),` and `,_jsx(_components.code,{children:`messages.group`}),` need an Official Business Account. `,_jsx(_components.a,{href:`/guides/groups#before-you-start`,children:_jsx(_components.code,{children:`POST /v1/groups/eligibility`})}),` checks Meta and flips both flags to match.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Switched off for one connection.`}),` Block lists (`,_jsx(_components.code,{children:`block_users`}),`) and catalog sync default on; a connection can turn either off.`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`Either way the correct client behaviour is the same: read the flag, and degrade gracefully when it is `,_jsx(_components.code,{children:`false`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`using-it-well`,children:`Using it well`}),`\n`,_jsx(CodeGroup,{children:_jsx(CodeBlock,{filename:`Node`,numberOfLines:`6`,language:`javascript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`javascript`,children:_jsxs(_components.code,{language:`javascript`,numberOfLines:`6`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:`data`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` } `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` await`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` lazyapp`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'/v1/capabilities'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` number`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` data`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`find`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`((`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`c`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`=>`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` c`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`is_default`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`if`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` (`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`number`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`capabilities`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`calling`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` showCallButton`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`();`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})})}),`\n`,_jsx(Tip,{children:_jsx(_components.p,{children:`Cache the response for a few minutes rather than calling it per send. It changes rarely,\nbut do not cache it for the life of your process — the point is that it can change\nwithout you deploying.`})}),`\n`,_jsx(Heading,{level:`2`,id:`quality-rating`,children:`Quality rating`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`quality_rating`}),` is Meta’s own signal — `,_jsx(_components.code,{children:`GREEN`}),`, `,_jsx(_components.code,{children:`YELLOW`}),` or `,_jsx(_components.code,{children:`RED`}),` — reflecting how recipients are reacting to your messages. A number sliding to `,_jsx(_components.code,{children:`RED`}),` risks having its messaging limit cut, so it is worth alerting on. You also receive `,_jsx(_components.code,{children:`phone_number.quality_changed`}),` `,_jsx(_components.a,{href:`/webhooks/events`,children:`webhooks`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`messaging-limit-tier`,children:`Messaging limit tier`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`messaging_limit_tier`}),` is Meta’s send ceiling for that number (for example `,_jsx(_components.code,{children:`TIER_1K`}),`). It moves as quality and usage change. Pair it with `,_jsx(_components.code,{children:`quality_rating`}),` when you decide how aggressively to run broadcasts.`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Capabilities","description":"Ask what a number supports instead of assuming.","href":"/concepts/capabilities"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Why a capability is false","slug":"why-a-capability-is-false","depth":2,"children":[]},{"title":"Using it well","slug":"using-it-well","depth":2,"children":[]},{"title":"Quality rating","slug":"quality-rating","depth":2,"children":[]},{"title":"Messaging limit tier","slug":"messaging-limit-tier","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"buildnboost","siteName":"LazyApp","title":"Capabilities - LazyApp","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-20T14:02:15.397Z","originalFileLocation":"concepts/capabilities.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=\"Ask what a number supports instead of assuming.\">\u003cmeta data-mint-head name=\"application-name\" content=\"LazyApp\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/buildnboost/nhZv7JDT0nQ3pPWw/_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/buildnboost/nhZv7JDT0nQ3pPWw/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/buildnboost/nhZv7JDT0nQ3pPWw/_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/buildnboost/nhZv7JDT0nQ3pPWw/_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/buildnboost/nhZv7JDT0nQ3pPWw/_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/buildnboost/nhZv7JDT0nQ3pPWw/_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/buildnboost/nhZv7JDT0nQ3pPWw/_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/buildnboost/nhZv7JDT0nQ3pPWw/_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/buildnboost/nhZv7JDT0nQ3pPWw/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Capabilities - LazyApp\">\u003cmeta data-mint-head property=\"og:description\" content=\"Ask what a number supports instead of assuming.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"LazyApp\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://buildnboost.mintlify.app/concepts/capabilities\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://buildnboost.mintlify.app/_mintlify/api/og/v2?division=Core+concepts\u0026amp;title=Capabilities\u0026amp;description=Ask+what+a+number+supports+instead+of+assuming.\u0026amp;theme=06c8440073b24a56ffc7079e\u0026amp;signature=e31cde89e5192fb3db6ca43c8f9429a02d3410c83aa5d21343604f7739bea713\">\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=\"Capabilities - LazyApp\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Ask what a number supports instead of assuming.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://buildnboost.mintlify.app/_mintlify/api/og/v2?division=Core+concepts\u0026amp;title=Capabilities\u0026amp;description=Ask+what+a+number+supports+instead+of+assuming.\u0026amp;theme=06c8440073b24a56ffc7079e\u0026amp;signature=e31cde89e5192fb3db6ca43c8f9429a02d3410c83aa5d21343604f7739bea713\">\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/buildnboost/nhZv7JDT0nQ3pPWw/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"LazyApp\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#075E54\">\u003clink data-mint-head rel=\"canonical\" href=\"https://buildnboost.mintlify.app/concepts/capabilities\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/concepts/capabilities.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://buildnboost.mintlify.app/#organization\",\"name\":\"LazyApp\",\"url\":\"https://buildnboost.mintlify.app\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/buildnboost/G02cVf-nmxG_Leo1/logo/light.svg?fit=max\u0026auto=format\u0026n=G02cVf-nmxG_Leo1\u0026q=85\u0026s=c3f6023abb2a7f07b94b4e0e7651dcd9\"}},{\"@type\":\"WebSite\",\"@id\":\"https://buildnboost.mintlify.app#website\",\"name\":\"LazyApp\",\"url\":\"https://buildnboost.mintlify.app\",\"publisher\":{\"@id\":\"https://buildnboost.mintlify.app/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://buildnboost.mintlify.app/concepts/capabilities#webpage\",\"url\":\"https://buildnboost.mintlify.app/concepts/capabilities\",\"name\":\"Capabilities\",\"description\":\"Ask what a number supports instead of assuming.\",\"dateModified\":\"2026-10-20T14:02:15.397Z\",\"isPartOf\":{\"@id\":\"https://buildnboost.mintlify.app#website\"},\"breadcrumb\":{\"@id\":\"https://buildnboost.mintlify.app/concepts/capabilities#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://buildnboost.mintlify.app/concepts/capabilities#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Core concepts\",\"item\":\"https://buildnboost.mintlify.app/concepts/workspaces-and-modes\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Capabilities\",\"item\":\"https://buildnboost.mintlify.app/concepts/capabilities\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://buildnboost.mintlify.app/concepts/capabilities#article\",\"headline\":\"Capabilities\",\"name\":\"Capabilities\",\"description\":\"Ask what a number supports instead of assuming.\",\"url\":\"https://buildnboost.mintlify.app/concepts/capabilities\",\"mainEntityOfPage\":{\"@id\":\"https://buildnboost.mintlify.app/concepts/capabilities#webpage\"},\"dateModified\":\"2026-10-20T14:02:15.397Z\",\"publisher\":{\"@id\":\"https://buildnboost.mintlify.app/#organization\"},\"isPartOf\":{\"@id\":\"https://buildnboost.mintlify.app#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"LazyApp\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"LazyApp","nav":{"global":null,"tabs":[{"tab":"Guides","groups":[{"group":"Getting started","pages":[{"title":"LazyApp","href":""},{"title":"Quickstart","href":"/quickstart"},{"title":"Authentication","href":"/authentication"}]},{"group":"Core concepts","pages":[{"title":"Workspaces and modes","href":"/concepts/workspaces-and-modes"},{"title":"Glossary","href":"/concepts/glossary"},{"title":"Conventions","href":"/concepts/conventions"},{"title":"Idempotency","href":"/concepts/idempotency"},{"title":"Pagination","href":"/concepts/pagination"},{"title":"Errors","href":"/concepts/errors"},{"title":"Message lifecycle","description":"Statuses for scheduled and sent messages, what you can do in each state, and which webhook fires next.","href":"/concepts/message-lifecycle"},{"title":"Capabilities","href":"/concepts/capabilities"}]},{"group":"WhatsApp","pages":[{"title":"WhatsApp","description":"Send messages, manage templates and contacts, run broadcasts and flows — one API for WhatsApp Cloud.","href":"/guides/whatsapp"},{"title":"Sandbox","href":"/guides/sandbox"},{"title":"Connecting WhatsApp","href":"/guides/connecting-whatsapp"},{"title":"Phone numbers","href":"/guides/phone-numbers"},{"title":"QR codes, opt-in links and conversation starters","href":"/guides/growth-tools"},{"title":"Contacts \u0026 profile","href":"/guides/contacts"},{"title":"Identity, privacy and data","href":"/guides/identity-and-privacy"},{"title":"Inbox","href":"/guides/inbox"},{"title":"Ad welcome messages","href":"/guides/ad-welcome-messages"},{"title":"Flows","href":"/guides/flows"},{"title":"Payments (India)","href":"/guides/payments-india"},{"title":"WhatsApp analytics","href":"/guides/whatsapp-analytics"},{"title":"Ad results","href":"/guides/ad-results"},{"title":"Group chats","href":"/guides/groups"},{"title":"Calling","href":"/guides/calling"}]},{"group":"Security","pages":[{"title":"Security overview","href":"/security/overview"},{"title":"Two-step verification","href":"/security/two-factor"}]},{"group":"Billing","pages":[{"title":"Pricing","href":"/billing/overview"},{"title":"Plans and limits","href":"/billing/pricing-and-tiers"},{"title":"Meta message billing","href":"/billing/meta-message-billing"},{"title":"WhatsApp message rates","href":"/billing/whatsapp-rates"},{"title":"How billing works","href":"/billing/mechanics"},{"title":"Payment issues","href":"/billing/payment-issues"},{"title":"Wallets","href":"/billing/wallets"}]},{"group":"Sending","pages":[{"title":"Messages","href":"/sending/messages"},{"title":"Message options","href":"/sending/message-options"},{"title":"Interactive messages","href":"/sending/interactive-messages"},{"title":"Read receipts and typing","href":"/sending/read-receipts"},{"title":"Templates","href":"/sending/templates"},{"title":"Template formats","href":"/sending/template-formats"},{"title":"Managing templates","href":"/sending/template-management"},{"title":"Marketing messages","href":"/sending/marketing-messages"},{"title":"Direct Send","href":"/sending/direct-send"},{"title":"Media","href":"/sending/media"},{"title":"Catalog and products","href":"/sending/catalog"},{"title":"Manage products","href":"/sending/catalog-inventory"},{"title":"Events","href":"/sending/events"},{"title":"Automation packs","href":"/sending/automation-packs"},{"title":"Verify","href":"/sending/verify"},{"title":"Broadcasts","href":"/sending/broadcasts"}]},{"group":"Receiving","pages":[{"title":"Webhooks","href":"/webhooks/overview"},{"title":"Verifying webhooks","href":"/webhooks/verifying"},{"title":"Event reference","href":"/webhooks/events"},{"title":"What Meta tells LazyApp","href":"/webhooks/whatsapp-fields"}]},{"group":"Platforms","pages":[{"title":"Build a platform","href":"/platform/overview"},{"title":"Resellers","href":"/platform/resellers"},{"title":"Tenant messaging","href":"/platform/messaging"},{"title":"Tenant usage","href":"/platform/usage"},{"title":"Funding","href":"/platform/funding"},{"title":"Tenant inbox","href":"/platform/inbox"},{"title":"Setup links","href":"/platform/setup-links"},{"title":"Embedded components","href":"/platform/embedded-components"}]},{"group":"Migrating","pages":[{"title":"Migrating from Meta's Cloud API","href":"/migrating/from-cloud-api"},{"title":"Migrate from Kapso","href":"/migrating/from-kapso"}]},{"group":"Reference","pages":[{"title":"Scopes","href":"/reference/scopes"},{"title":"Rate limits","href":"/reference/rate-limits"},{"title":"Media \u0026 limits","href":"/reference/media-and-limits"},{"title":"Versioning","href":"/reference/versioning"},{"title":"Changelog","href":"/reference/changelog"},{"title":"Pending gaps vs Zernio","href":"/pending-gaps-zernio"}]}]},{"tab":"API reference","pages":[{"title":"API reference","href":"/api-reference/messages/send-a-message"}]}]},"title":"Capabilities - LazyApp","buildId":"dpl_849ArpqvBiCczQiT1Y1stNGpbqHT","deploymentId":"dpl_849ArpqvBiCczQiT1Y1stNGpbqHT","dynamics":[],"chunks":[]}