Dry-run a rule against the team's current synced Meta data: how many entities it evaluates, which would match right now (and why), and near misses. Pass ruleId for a saved rule OR rule for an unsaved draft. Changes nothing.
Dry-run a rule against the team's current synced Meta data: how many entities it evaluates, which would match right now (and why), and near misses. Pass ruleId for a saved rule OR rule for an unsaved draft. Changes nothing.
Dry-run a rule against the team’s current synced Meta data: how many entities it evaluates, which would match right now (and why), and near misses. Pass ruleId for a saved rule OR rule for an unsaved draft. Changes nothing.
POST
/
tools
/
preview_automation_rule
Dry-run a rule against the team's current synced Meta data: how many entities it evaluates, which would match right now (and why), and near misses. Pass ruleId for a saved rule OR rule for an unsaved draft. Changes nothing.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"AdStellar","colors":{"primary":"#6366F1","light":"#818CF8","dark":"#4F46E5"},"logo":{"light":"https://mintcdn.com/adstellarai/_a0gZXlkMd44e4aK/images/logo-light.svg?fit=max\u0026auto=format\u0026n=_a0gZXlkMd44e4aK\u0026q=85\u0026s=fadba70b8ecffbbac4a4e58e31739a72","dark":"https://mintcdn.com/adstellarai/_a0gZXlkMd44e4aK/images/logo-dark.svg?fit=max\u0026auto=format\u0026n=_a0gZXlkMd44e4aK\u0026q=85\u0026s=11af48d5f003300afb022cdc5ddacf96","href":"/introduction"},"favicon":"https://mintcdn.com/adstellarai/W3gnUVOO9KFygrmt/images/favicon.svg?fit=max\u0026auto=format\u0026n=W3gnUVOO9KFygrmt\u0026q=85\u0026s=72d8993e676488f3b3a270765a4b85e6","seo":{"metatags":{"canonical":"https://docs.adstellar.ai"}},"styling":{"latex":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"adstellarai","hasAudioNarration":false,"actualSubdomain":"adstellarai","customDomains":["docs.adstellar.ai"],"gitSource":{"type":"github","owner":"adstellar-ai","repo":"batchads","deployBranch":"main","contentDirectory":"docs-public","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae64703cf4408c76828c1ae","collectionId":"7d9b3fe7-6d78-46f5-96a0-23ca020192b2","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae64703cf4408c76828c1ae"},"entitlements":{},"buildId":"6ae64703cf4408c76828c1ae","clientVersion":"0.0.4044","searchFilterCounts":[{"language":"default","tag":"API Reference","count":98},{"language":"default","tag":"Guides","count":46},{"language":"default","tag":"Integrations","count":12},{"language":"default","tag":"Troubleshooting","count":12},{"language":"default","tag":"Billing","count":10},{"language":"default","tag":"Getting Started","count":7},{"language":"default","tag":"Tips \u0026 Reference","count":7},{"language":"default","tag":"Set Up Your Account","count":6},{"language":"default","tag":"Campaign Launch","count":6},{"language":"default","tag":"AdStellar Agent","count":5}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"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":"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":"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":"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":"full-page-search","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":"turbopuffer-dual-write","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},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":""}],"page":{"pagePath":"api-reference/dry-run-a-rule-against-the-teams-current-synced-meta-data:-how-many-entities-it-evaluates-which-would-match-right-now-and-why-and-near-misses-pass-ruleid-for-a-saved-rule-or-rule-for-an-unsaved-draft-changes-nothing","slug":"/api-reference/dry-run-a-rule-against-the-teams-current-synced-meta-data:-how-many-entities-it-evaluates-which-would-match-right-now-and-why-and-near-misses-pass-ruleid-for-a-saved-rule-or-rule-for-an-unsaved-draft-changes-nothing","pageMetadata":{"title":"Dry-run a rule against the team's current synced Meta data: how many entities it evaluates, which would match right now (and why), and near misses. Pass ruleId for a saved rule OR rule for an unsaved draft. Changes nothing.","description":"Dry-run a rule against the team's current synced Meta data: how many entities it evaluates, which would match right now (and why), and near misses. Pass ruleId for a saved rule OR rule for an unsaved draft. Changes nothing.","deprecated":null,"version":null,"openapi":"/openapi.json post /tools/preview_automation_rule","href":"/api-reference/dry-run-a-rule-against-the-teams-current-synced-meta-data:-how-many-entities-it-evaluates-which-would-match-right-now-and-why-and-near-misses-pass-ruleid-for-a-saved-rule-or-rule-for-an-unsaved-draft-changes-nothing","autogeneratedByOpenApi":true},"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: \"Dry-run a rule against the team’s current synced Meta data: how many entities it evaluates, which would match right now (and why), and near misses. Pass ruleId for a saved rule OR rule for an unsaved draft. Changes nothing.\"\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}=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":"Dry-run a rule against the team's current synced Meta data: how many entities it evaluates, which would match right now (and why), and near misses. Pass ruleId for a saved rule OR rule for an unsaved draft. Changes nothing.","description":"Dry-run a rule against the team's current synced Meta data: how many entities it evaluates, which would match right now (and why), and near misses. Pass ruleId for a saved rule OR rule for an unsaved draft. Changes nothing.","deprecated":null,"version":null,"openapi":"/openapi.json post /tools/preview_automation_rule","href":"/api-reference/dry-run-a-rule-against-the-teams-current-synced-meta-data:-how-many-entities-it-evaluates-which-would-match-right-now-and-why-and-near-misses-pass-ruleid-for-a-saved-rule-or-rule-for-an-unsaved-draft-changes-nothing","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"operationId":"preview_automation_rule","summary":"Dry-run a rule against the team's current synced Meta data: how many entities it evaluates, which would match right now (and why), and near misses. Pass ruleId for a saved rule OR rule for an unsaved draft. Changes nothing.","description":"Dry-run a rule against the team's current synced Meta data: how many entities it evaluates, which would match right now (and why), and near misses. Pass ruleId for a saved rule OR rule for an unsaved draft. Changes nothing.","security":["60491265-a641-4d20-a0c8-f22324700c7a"],"x-required-scopes":["automations:read"],"requestBody":"78dcdfdd-8b23-4728-8ee2-1943c17740e4","responses":{"200":"ab6addf6-7989-461c-8356-05f8c34678bd","401":"fe353f1b-afed-4920-90c9-d32dc7a609ef","403":"30d05624-c8aa-4ee3-b262-a6a9cfba0dd8","429":"f7e851dd-c8b0-4376-a0e3-ba955ea4b609"},"method":"post","type":"path","servers":["fe33b76b-4026-4d81-838b-86c81760244f"],"path":"/tools/preview_automation_rule","baseUrlOptions":["https://app.adstellar.ai/api/v1"],"title":"Dry-run a rule against the team's current synced Meta data: how many entities it evaluates, which would match right now (and why), and near misses. Pass ruleId for a saved rule OR rule for an unsaved draft. Changes nothing.","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"ruleId":{"description":"Saved rule id from list_automation_rules.","type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","uniqueKey":"ruleId","typeLabel":"string\u003cuuid>"},"rule":{"description":"Unsaved rule object (see get_automation_rule_schema).","type":"object","propertyNames":{"type":"string"},"additionalProperties":{"oneOf":[{}],"uniqueKey":"rule.additionalProperties","typeLabel":"any"},"uniqueKey":"rule","typeLabel":"object"},"workspaceId":{"description":"Workspace to act in (must be granted to this credential). Omit for the primary workspace.","type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","uniqueKey":"workspaceId","typeLabel":"string\u003cuuid>"}},"additionalProperties":false,"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"ruleId":"3c90c3cc-0d44-4b50-8888-8dd25736052a","rule":{},"workspaceId":"3c90c3cc-0d44-4b50-8888-8dd25736052a"}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"ab6addf6-7989-461c-8356-05f8c34678bd":{"description":"Tool result","content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}},"fe353f1b-afed-4920-90c9-d32dc7a609ef":{"description":"Missing or invalid API key","content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}},"30d05624-c8aa-4ee3-b262-a6a9cfba0dd8":{"description":"Missing required scope","content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}},"f7e851dd-c8b0-4376-a0e3-ba955ea4b609":{"description":"Rate limit exceeded","content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}}},"security":{"60491265-a641-4d20-a0c8-f22324700c7a":{"bearerAuth":{"type":"http","scheme":"bearer","description":"AdStellar API key (ast_live_...)","scopes":[],"schemeName":"bearerAuth"}}},"servers":{"fe33b76b-4026-4d81-838b-86c81760244f":{"url":"https://app.adstellar.ai/api/v1"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","description":"AdStellar API key (ast_live_...)","scopes":[],"schemeName":"bearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"AdStellar API key (ast_live_...)","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearerAuth","name":"Authorization"}],"title":"bearerAuth"}]},"originalFileLocation":"openapi.json"},"subdomain":"adstellarai","siteName":"AdStellar","title":"Dry-run a rule against the team's current synced Meta data: how many entities it evaluates, which would match right now (and why), and near misses. Pass ruleId for a saved rule OR rule for an unsaved draft. Changes nothing. - AdStellar","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-20T22:53:21.614Z","originalFileLocation":"api-reference/dry-run-a-rule-against-the-teams-current-synced-meta-data:-how-many-entities-it-evaluates-which-would-match-right-now-and-why-and-near-misses-pass-ruleid-for-a-saved-rule-or-rule-for-an-unsaved-draft-changes-nothing.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=\"Dry-run a rule against the team\u0026#x27;s current synced Meta data: how many entities it evaluates, which would match right now (and why), and near misses. Pass ruleId for a saved rule OR rule for an unsaved draft. Changes nothing.\">\u003cmeta data-mint-head name=\"application-name\" content=\"AdStellar\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/adstellarai/9dsA8kOit_8P8q32/_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/adstellarai/9dsA8kOit_8P8q32/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/adstellarai/9dsA8kOit_8P8q32/_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/adstellarai/9dsA8kOit_8P8q32/_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/adstellarai/9dsA8kOit_8P8q32/_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/adstellarai/9dsA8kOit_8P8q32/_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/adstellarai/9dsA8kOit_8P8q32/_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/adstellarai/9dsA8kOit_8P8q32/_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/adstellarai/9dsA8kOit_8P8q32/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Dry-run a rule against the team\u0026#x27;s current synced Meta data: how many entities it evaluates, which would match right now (and why), and near misses. Pass ruleId for a saved rule OR rule for an unsaved draft. Changes nothing. - AdStellar\">\u003cmeta data-mint-head property=\"og:description\" content=\"Dry-run a rule against the team\u0026#x27;s current synced Meta data: how many entities it evaluates, which would match right now (and why), and near misses. Pass ruleId for a saved rule OR rule for an unsaved draft. Changes nothing.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"AdStellar\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.adstellar.ai/api-reference/dry-run-a-rule-against-the-teams-current-synced-meta-data:-how-many-entities-it-evaluates-which-would-match-right-now-and-why-and-near-misses-pass-ruleid-for-a-saved-rule-or-rule-for-an-unsaved-draft-changes-nothing\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://adstellarai.mintlify.app/_mintlify/api/og/v2?division=API+Reference\u0026amp;title=Dry-run+a+rule+against+the+team%27s+current+synced+Meta+data%3A+how+many+entities+it+evaluates%2C+which+would+match+right+now+%28and+why%29%2C+and+near+misses.+Pass+ruleId+for+a+saved+rule+OR+rule+for+an+unsaved+draft.+Changes+nothing.\u0026amp;description=Dry-run+a+rule+against+the+team%27s+current+synced+Meta+data%3A+how+many+entities+it+evaluates%2C+which+would+match+right+now+%28and+why%29%2C+and+near+misses.+Pass+ruleId+\u0026amp;theme=d0d1c3e83cc951e1346c42fc\u0026amp;signature=6d12d57dce697e2b824fd97e9e654ed10cd141fb4a3466dd06cc9bdbf31c77bd\">\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=\"Dry-run a rule against the team\u0026#x27;s current synced Meta data: how many entities it evaluates, which would match right now (and why), and near misses. Pass ruleId for a saved rule OR rule for an unsaved draft. Changes nothing. - AdStellar\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Dry-run a rule against the team\u0026#x27;s current synced Meta data: how many entities it evaluates, which would match right now (and why), and near misses. Pass ruleId for a saved rule OR rule for an unsaved draft. Changes nothing.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://adstellarai.mintlify.app/_mintlify/api/og/v2?division=API+Reference\u0026amp;title=Dry-run+a+rule+against+the+team%27s+current+synced+Meta+data%3A+how+many+entities+it+evaluates%2C+which+would+match+right+now+%28and+why%29%2C+and+near+misses.+Pass+ruleId+for+a+saved+rule+OR+rule+for+an+unsaved+draft.+Changes+nothing.\u0026amp;description=Dry-run+a+rule+against+the+team%27s+current+synced+Meta+data%3A+how+many+entities+it+evaluates%2C+which+would+match+right+now+%28and+why%29%2C+and+near+misses.+Pass+ruleId+\u0026amp;theme=d0d1c3e83cc951e1346c42fc\u0026amp;signature=6d12d57dce697e2b824fd97e9e654ed10cd141fb4a3466dd06cc9bdbf31c77bd\">\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/adstellarai/9dsA8kOit_8P8q32/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"AdStellar\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#6366F1\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.adstellar.ai/api-reference/dry-run-a-rule-against-the-teams-current-synced-meta-data:-how-many-entities-it-evaluates-which-would-match-right-now-and-why-and-near-misses-pass-ruleid-for-a-saved-rule-or-rule-for-an-unsaved-draft-changes-nothing\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/dry-run-a-rule-against-the-teams-current-synced-meta-data%3A-how-many-entities-it-evaluates-which-would-match-right-now-and-why-and-near-misses-pass-ruleid-for-a-saved-rule-or-rule-for-an-unsaved-draft-changes-nothing.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.adstellar.ai/#organization\",\"name\":\"AdStellar\",\"url\":\"https://docs.adstellar.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/adstellarai/_a0gZXlkMd44e4aK/images/logo-light.svg?fit=max\u0026auto=format\u0026n=_a0gZXlkMd44e4aK\u0026q=85\u0026s=fadba70b8ecffbbac4a4e58e31739a72\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.adstellar.ai#website\",\"name\":\"AdStellar\",\"url\":\"https://docs.adstellar.ai\",\"publisher\":{\"@id\":\"https://docs.adstellar.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.adstellar.ai/api-reference/dry-run-a-rule-against-the-teams-current-synced-meta-data:-how-many-entities-it-evaluates-which-would-match-right-now-and-why-and-near-misses-pass-ruleid-for-a-saved-rule-or-rule-for-an-unsaved-draft-changes-nothing#webpage\",\"url\":\"https://docs.adstellar.ai/api-reference/dry-run-a-rule-against-the-teams-current-synced-meta-data:-how-many-entities-it-evaluates-which-would-match-right-now-and-why-and-near-misses-pass-ruleid-for-a-saved-rule-or-rule-for-an-unsaved-draft-changes-nothing\",\"name\":\"Dry-run a rule against the team's current synced Meta data: how many entities it evaluates, which would match right now (and why), and near misses. Pass ruleId for a saved rule OR rule for an unsaved draft. Changes nothing.\",\"description\":\"Dry-run a rule against the team's current synced Meta data: how many entities it evaluates, which would match right now (and why), and near misses. Pass ruleId for a saved rule OR rule for an unsaved draft. Changes nothing.\",\"dateModified\":\"2026-10-20T22:53:21.614Z\",\"isPartOf\":{\"@id\":\"https://docs.adstellar.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.adstellar.ai/api-reference/dry-run-a-rule-against-the-teams-current-synced-meta-data:-how-many-entities-it-evaluates-which-would-match-right-now-and-why-and-near-misses-pass-ruleid-for-a-saved-rule-or-rule-for-an-unsaved-draft-changes-nothing#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.adstellar.ai/api-reference/dry-run-a-rule-against-the-teams-current-synced-meta-data:-how-many-entities-it-evaluates-which-would-match-right-now-and-why-and-near-misses-pass-ruleid-for-a-saved-rule-or-rule-for-an-unsaved-draft-changes-nothing#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"API Reference\",\"item\":\"https://docs.adstellar.ai/api-reference/list-tools-visible-to-this-api-key\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Dry-run a rule against the team's current synced Meta data: how many entities it evaluates, which would match right now (and why), and near misses. Pass ruleId for a saved rule OR rule for an unsaved draft. Changes nothing.\",\"item\":\"https://docs.adstellar.ai/api-reference/dry-run-a-rule-against-the-teams-current-synced-meta-data:-how-many-entities-it-evaluates-which-would-match-right-now-and-why-and-near-misses-pass-ruleid-for-a-saved-rule-or-rule-for-an-unsaved-draft-changes-nothing\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.adstellar.ai/api-reference/dry-run-a-rule-against-the-teams-current-synced-meta-data:-how-many-entities-it-evaluates-which-would-match-right-now-and-why-and-near-misses-pass-ruleid-for-a-saved-rule-or-rule-for-an-unsaved-draft-changes-nothing#apireference\",\"headline\":\"Dry-run a rule against the team's current synced Meta data: how many entities it evaluates, which would match right now (and why), and near misses. Pass ruleId for a saved rule OR rule for an unsaved draft. Changes nothing.\",\"name\":\"Dry-run a rule against the team's current synced Meta data: how many entities it evaluates, which would match right now (and why), and near misses. Pass ruleId for a saved rule OR rule for an unsaved draft. Changes nothing.\",\"description\":\"Dry-run a rule against the team's current synced Meta data: how many entities it evaluates, which would match right now (and why), and near misses. Pass ruleId for a saved rule OR rule for an unsaved draft. Changes nothing.\",\"url\":\"https://docs.adstellar.ai/api-reference/dry-run-a-rule-against-the-teams-current-synced-meta-data:-how-many-entities-it-evaluates-which-would-match-right-now-and-why-and-near-misses-pass-ruleid-for-a-saved-rule-or-rule-for-an-unsaved-draft-changes-nothing\",\"mainEntityOfPage\":{\"@id\":\"https://docs.adstellar.ai/api-reference/dry-run-a-rule-against-the-teams-current-synced-meta-data:-how-many-entities-it-evaluates-which-would-match-right-now-and-why-and-near-misses-pass-ruleid-for-a-saved-rule-or-rule-for-an-unsaved-draft-changes-nothing#webpage\"},\"dateModified\":\"2026-10-20T22:53:21.614Z\",\"publisher\":{\"@id\":\"https://docs.adstellar.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.adstellar.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"AdStellar\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"AdStellar","nav":{"global":null,"tabs":[{"tab":"Getting Started","pages":[{"title":"Getting Started","href":"/introduction"}]},{"tab":"Guides","pages":[{"title":"Guides","href":"/agent/overview"}]},{"tab":"Integrations","pages":[{"title":"Integrations","href":"/integrations/meta-ads"}]},{"tab":"MCP","pages":[{"title":"MCP","href":"/api-mcp/overview"}]},{"tab":"API Reference","groups":[{"group":"API Reference","pages":[{"title":"List tools visible to this API key","deprecated":null,"version":null,"openapi":"/openapi.json get /tools","href":"/api-reference/list-tools-visible-to-this-api-key"},{"title":"Get the AdStellar team attached to this API key: name, plan, industry, member count, and workspace count. Good first call to confirm which org you are acting on.","deprecated":null,"version":null,"openapi":"/openapi.json post /tools/get_team_info","href":"/api-reference/get-the-adstellar-team-attached-to-this-api-key:-name-plan-industry-member-count-and-workspace-count-good-first-call-to-confirm-which-org-you-are-acting-on"},{"title":"List the workspaces this credential is allowed to act on (id, name). Pass a workspaceId to other tools to target one; omit those params to span all of these.","deprecated":null,"version":null,"openapi":"/openapi.json post /tools/list_workspaces","href":"/api-reference/list-the-workspaces-this-credential-is-allowed-to-act-on-id-name-pass-a-workspaceid-to-other-tools-to-target-one;-omit-those-params-to-span-all-of-these"},{"title":"Get the team's current AI credit balance (available, reserved, included, used). Generation tools spend from this balance.","deprecated":null,"version":null,"openapi":"/openapi.json post /tools/get_credit_balance","href":"/api-reference/get-the-teams-current-ai-credit-balance-available-reserved-included-used-generation-tools-spend-from-this-balance"},{"title":"Get the team's brand kit (colors, fonts, tone of voice, brand description, buyer profiles). Pass brandKitId for a specific kit; omit for the default kit.","deprecated":null,"version":null,"openapi":"/openapi.json post /tools/get_brand_kit","href":"/api-reference/get-the-teams-brand-kit-colors-fonts-tone-of-voice-brand-description-buyer-profiles-pass-brandkitid-for-a-specific-kit;-omit-for-the-default-kit"},{"title":"List the team's products (name, description, url, linked brand kit).","deprecated":null,"version":null,"openapi":"/openapi.json post /tools/list_products","href":"/api-reference/list-the-teams-products-name-description-url-linked-brand-kit"},{"title":"List the team's projects (asset organization folders with item counts).","deprecated":null,"version":null,"openapi":"/openapi.json post /tools/list_projects","href":"/api-reference/list-the-teams-projects-asset-organization-folders-with-item-counts"},{"title":"List the Meta ad accounts connected to the team (id, name, currency, timezone, status, last sync time). Use the ad_account_id values with analytics tools.","deprecated":null,"version":null,"openapi":"/openapi.json post /tools/list_ad_accounts","href":"/api-reference/list-the-meta-ad-accounts-connected-to-the-team-id-name-currency-timezone-status-last-sync-time-use-the-ad_account_id-values-with-analytics-tools"},{"title":"List the AI models available for generation, by capability. Returns id, provider, cost, and supported options (durations, audio, lipsync) for each model so you can pick one and pass its id as the `model` parameter of a generation tool. Omit the capability filter to list everything.","deprecated":null,"version":null,"openapi":"/openapi.json post /tools/list_models","href":"/api-reference/list-the-ai-models-available-for-generation-by-capability-returns-id-provider-cost-and-supported-options-durations-audio-lipsync-for-each-model-so-you-can-pick-one-and-pass-its-id-as-the-`model`-parameter-of-a-generation-tool-omit-the-capability-filter-to-list-everything"},{"title":"List the talking-actor avatars available to the team (stock library plus the team's custom avatars): id, name, portrait, gender, age range, style, and default voice.","deprecated":null,"version":null,"openapi":"/openapi.json post /tools/list_avatars","href":"/api-reference/list-the-talking-actor-avatars-available-to-the-team-stock-library-plus-the-teams-custom-avatars:-id-name-portrait-gender-age-range-style-and-default-voice"},{"title":"List the curated text-to-speech voices for talking-actor videos (AdStellar's cloned ElevenLabs pool; every actor's default voice comes from it). Optionally filter by a search term (name/accent/gender).","deprecated":null,"version":null,"openapi":"/openapi.json post /tools/list_voices","href":"/api-reference/list-the-curated-text-to-speech-voices-for-talking-actor-videos-adstellars-cloned-elevenlabs-pool;-every-actors-default-voice-comes-from-it-optionally-filter-by-a-search-term-nameaccentgender"},{"title":"Write text-only ad copy variants (headline, subheadline/primary text, CTA, optional offer + body) for the team's brand or product. Grounded in the brand kit when available. Free — no generation credits used.","deprecated":null,"version":null,"openapi":"/openapi.json post /tools/generate_ad_copy","href":"/api-reference/write-text-only-ad-copy-variants-headline-subheadlineprimary-text-cta-optional-offer-+-body-for-the-teams-brand-or-product-grounded-in-the-brand-kit-when-available-free-—-no-generation-credits-used"},{"title":"Query synced Meta ads performance (spend, impressions, clicks, results, ROAS, budget) grouped by campaign / ad set / ad / creative component, over a date range. Use list_ad_accounts first to discover ad account ids. Data freshness depends on the team's sync schedule; check last_synced_at in list_ad_accounts.","deprecated":null,"version":null,"openapi":"/openapi.json post /tools/query_performance","href":"/api-reference/query-synced-meta-ads-performance-spend-impressions-clicks-results-roas-budget-grouped-by-campaign-ad-set-ad-creative-component-over-a-date-range-use-list_ad_accounts-first-to-discover-ad-account-ids-data-freshness-depends-on-the-teams-sync-schedule;-check-last_synced_at-in-list_ad_accounts"},{"title":"Search the team's media asset library (generated and uploaded images/videos). Filter by file type, favorites, or a name substring. Returns asset metadata with URLs.","deprecated":null,"version":null,"openapi":"/openapi.json post /tools/search_assets","href":"/api-reference/search-the-teams-media-asset-library-generated-and-uploaded-imagesvideos-filter-by-file-type-favorites-or-a-name-substring-returns-asset-metadata-with-urls"},{"title":"Get full metadata for one media asset by id, including its Meta upload hashes and dimensions.","deprecated":null,"version":null,"openapi":"/openapi.json post /tools/lookup_asset","href":"/api-reference/get-full-metadata-for-one-media-asset-by-id-including-its-meta-upload-hashes-and-dimensions"},{"title":"List campaigns launched through AdStellar (status, objective, budget, spend, dates). For live Meta-side state use query_performance.","deprecated":null,"version":null,"openapi":"/openapi.json post /tools/list_campaigns","href":"/api-reference/list-campaigns-launched-through-adstellar-status-objective-budget-spend-dates-for-live-meta-side-state-use-query_performance"},{"title":"Get launch records for the team (launch type, campaign, ad account, creative counts, goal tracking). Optionally filter to one launch id.","deprecated":null,"version":null,"openapi":"/openapi.json post /tools/get_launch_status","href":"/api-reference/get-launch-records-for-the-team-launch-type-campaign-ad-account-creative-counts-goal-tracking-optionally-filter-to-one-launch-id"},{"title":"Generate AI image ad creatives for the team. Kicks off an async batch (Inngest) and returns a batchId immediately — poll get_generation_status for results. Charges credits: image cost per generation (aspect ratio × variation). Requires reference images or detailed instructions.","deprecated":null,"version":null,"openapi":"/openapi.json post /tools/generate_image","href":"/api-reference/generate-ai-image-ad-creatives-for-the-team-kicks-off-an-async-batch-inngest-and-returns-a-batchid-immediately-—-poll-get_generation_status-for-results-charges-credits:-image-cost-per-generation-aspect-ratio-×-variation-requires-reference-images-or-detailed-instructions"},{"title":"Generate an AI video ad. Two approaches: \"exact\" (talking actor reads your exact script — requires actorId from list_avatars) or \"realistic\" (cinematic UGC from a scene prompt). Returns a projectId immediately — poll get_generation_status for results. Video is expensive; credits are reserved up front.","deprecated":null,"version":null,"openapi":"/openapi.json post /tools/generate_video","href":"/api-reference/generate-an-ai-video-ad-two-approaches:-\"exact\"-talking-actor-reads-your-exact-script-—-requires-actorid-from-list_avatars-or-\"realistic\"-cinematic-ugc-from-a-scene-prompt-returns-a-projectid-immediately-—-poll-get_generation_status-for-results-video-is-expensive;-credits-are-reserved-up-front"},{"title":"Poll the status of an async generation job. Pass batchId (from generate_image) or projectId (from generate_video). Returns per-generation statuses, asset ids/URLs when complete, and errors when failed.","deprecated":null,"version":null,"openapi":"/openapi.json post /tools/get_generation_status","href":"/api-reference/poll-the-status-of-an-async-generation-job-pass-batchid-from-generate_image-or-projectid-from-generate_video-returns-per-generation-statuses-asset-idsurls-when-complete-and-errors-when-failed"},{"title":"List launch drafts (campaign builds in progress) for the team. Drafts are prepared in the dashboard or via create_launch_draft and launched by a human in the UI.","deprecated":null,"version":null,"openapi":"/openapi.json post /tools/list_launch_drafts","href":"/api-reference/list-launch-drafts-campaign-builds-in-progress-for-the-team-drafts-are-prepared-in-the-dashboard-or-via-create_launch_draft-and-launched-by-a-human-in-the-ui"},{"title":"Create a launch draft: a prepared campaign build (ad account + creative templates + audience templates + budget) that a human reviews and launches in the dashboard. Does NOT launch anything — no ads are published and no money is spent. Requires an active subscription.","deprecated":null,"version":null,"openapi":"/openapi.json post /tools/create_launch_draft","href":"/api-reference/create-a-launch-draft:-a-prepared-campaign-build-ad-account-+-creative-templates-+-audience-templates-+-budget-that-a-human-reviews-and-launches-in-the-dashboard-does-not-launch-anything-—-no-ads-are-published-and-no-money-is-spent-requires-an-active-subscription"},{"title":"Get the full configuration of one launch draft by id.","deprecated":null,"version":null,"openapi":"/openapi.json post /tools/get_launch_draft","href":"/api-reference/get-the-full-configuration-of-one-launch-draft-by-id"},{"title":"Delete a launch draft by id. Does not affect any live campaign.","deprecated":null,"version":null,"openapi":"/openapi.json post /tools/delete_launch_draft","href":"/api-reference/delete-a-launch-draft-by-id-does-not-affect-any-live-campaign"},{"title":"Find Meta campaigns the team launched through AdStellar or imported from Meta, by name fragment, and get their Meta campaign ids. Call this BEFORE pause_campaign / resume_campaign / archive_campaign / update_campaign_budget so you act on a concrete id. Omit query to list recent campaigns.","deprecated":null,"version":null,"openapi":"/openapi.json post /tools/lookup_campaign","href":"/api-reference/find-meta-campaigns-the-team-launched-through-adstellar-or-imported-from-meta-by-name-fragment-and-get-their-meta-campaign-ids-call-this-before-pause_campaign-resume_campaign-archive_campaign-update_campaign_budget-so-you-act-on-a-concrete-id-omit-query-to-list-recent-campaigns"},{"title":"Pause a live Meta campaign (stops delivery and spend). Two-step: the first call returns a preview and a confirmationToken; after the user approves, call again with the token. Get the id from lookup_campaign.","deprecated":null,"version":null,"openapi":"/openapi.json post /tools/pause_campaign","href":"/api-reference/pause-a-live-meta-campaign-stops-delivery-and-spend-two-step:-the-first-call-returns-a-preview-and-a-confirmationtoken;-after-the-user-approves-call-again-with-the-token-get-the-id-from-lookup_campaign"},{"title":"Resume (unpause) a paused Meta campaign so it delivers and spends again. Two-step with confirmationToken. Get the id from lookup_campaign.","deprecated":null,"version":null,"openapi":"/openapi.json post /tools/resume_campaign","href":"/api-reference/resume-unpause-a-paused-meta-campaign-so-it-delivers-and-spends-again-two-step-with-confirmationtoken-get-the-id-from-lookup_campaign"},{"title":"Archive a Meta campaign (removes it from active views; cannot be undone from AdStellar). Two-step with confirmationToken. Prefer pause_campaign unless the user explicitly wants to archive.","deprecated":null,"version":null,"openapi":"/openapi.json post /tools/archive_campaign","href":"/api-reference/archive-a-meta-campaign-removes-it-from-active-views;-cannot-be-undone-from-adstellar-two-step-with-confirmationtoken-prefer-pause_campaign-unless-the-user-explicitly-wants-to-archive"},{"title":"Change a Meta campaign's daily budget. For a CBO / Advantage+ campaign this sets the shared campaign budget; for an ABO campaign it sets EVERY ad set to that amount (use update_ad_set_budget to change one ad set). Amount is in the ad account's currency. Two-step with confirmationToken.","deprecated":null,"version":null,"openapi":"/openapi.json post /tools/update_campaign_budget","href":"/api-reference/change-a-meta-campaigns-daily-budget-for-a-cbo-advantage+-campaign-this-sets-the-shared-campaign-budget;-for-an-abo-campaign-it-sets-every-ad-set-to-that-amount-use-update_ad_set_budget-to-change-one-ad-set-amount-is-in-the-ad-accounts-currency-two-step-with-confirmationtoken"},{"title":"Pause ONE Meta ad set without touching its campaign or sibling ad sets. Get the id from query_performance with breakdown \"ad_set\". Two-step with confirmationToken.","deprecated":null,"version":null,"openapi":"/openapi.json post /tools/pause_ad_set","href":"/api-reference/pause-one-meta-ad-set-without-touching-its-campaign-or-sibling-ad-sets-get-the-id-from-query_performance-with-breakdown-\"ad_set\"-two-step-with-confirmationtoken"},{"title":"Resume ONE paused Meta ad set. Get the id from query_performance with breakdown \"ad_set\". Two-step with confirmationToken.","deprecated":null,"version":null,"openapi":"/openapi.json post /tools/resume_ad_set","href":"/api-reference/resume-one-paused-meta-ad-set-get-the-id-from-query_performance-with-breakdown-\"ad_set\"-two-step-with-confirmationtoken"},{"title":"Set ONE ad set's daily budget (ABO campaigns only; CBO ad sets share the campaign budget). Amount is in the ad account's currency. Two-step with confirmationToken.","deprecated":null,"version":null,"openapi":"/openapi.json post /tools/update_ad_set_budget","href":"/api-reference/set-one-ad-sets-daily-budget-abo-campaigns-only;-cbo-ad-sets-share-the-campaign-budget-amount-is-in-the-ad-accounts-currency-two-step-with-confirmationtoken"},{"title":"Pause ONE Meta ad (e.g. a losing creative) without touching its ad set. Get the id from query_performance with breakdown \"ad\". Two-step with confirmationToken.","deprecated":null,"version":null,"openapi":"/openapi.json post /tools/pause_ad","href":"/api-reference/pause-one-meta-ad-eg-a-losing-creative-without-touching-its-ad-set-get-the-id-from-query_performance-with-breakdown-\"ad\"-two-step-with-confirmationtoken"},{"title":"Resume ONE paused Meta ad. Get the id from query_performance with breakdown \"ad\". Two-step with confirmationToken.","deprecated":null,"version":null,"openapi":"/openapi.json post /tools/resume_ad","href":"/api-reference/resume-one-paused-meta-ad-get-the-id-from-query_performance-with-breakdown-\"ad\"-two-step-with-confirmationtoken"},{"title":"What an ad account has connected for launching: Meta pixels, Facebook Pages (with Instagram link), advertisable apps, plus the valid objectives and destinations. Call before build_campaign so you can pass real pixelId / pageId values or explain what is missing (e.g. Sales needs a pixel).","deprecated":null,"version":null,"openapi":"/openapi.json post /tools/get_launch_options","href":"/api-reference/what-an-ad-account-has-connected-for-launching:-meta-pixels-facebook-pages-with-instagram-link-advertisable-apps-plus-the-valid-objectives-and-destinations-call-before-build_campaign-so-you-can-pass-real-pixelid-pageid-values-or-explain-what-is-missing-eg-sales-needs-a-pixel"},{"title":"Have the AI Campaign Builder assemble a complete Meta campaign (audiences, ad sets, ads, copy, creatives) as a reviewable draft. FREE and publishes nothing. Returns a jobId; poll get_campaign_build until phase is preview_ready, show the preview to the user, then call launch_campaign. Use get_launch_options first for pixel/Page ids.","deprecated":null,"version":null,"openapi":"/openapi.json post /tools/build_campaign","href":"/api-reference/have-the-ai-campaign-builder-assemble-a-complete-meta-campaign-audiences-ad-sets-ads-copy-creatives-as-a-reviewable-draft-free-and-publishes-nothing-returns-a-jobid;-poll-get_campaign_build-until-phase-is-preview_ready-show-the-preview-to-the-user-then-call-launch_campaign-use-get_launch_options-first-for-pixelpage-ids"},{"title":"Poll a build_campaign job. phase is one of preparing, preview_ready (includes a preview of campaign, ad sets, ads and budget plus draftId), publishing, live, or failed (with error). Also reports publish progress after launch_campaign.","deprecated":null,"version":null,"openapi":"/openapi.json post /tools/get_campaign_build","href":"/api-reference/poll-a-build_campaign-job-phase-is-one-of-preparing-preview_ready-includes-a-preview-of-campaign-ad-sets-ads-and-budget-plus-draftid-publishing-live-or-failed-with-error-also-reports-publish-progress-after-launch_campaign"},{"title":"Publish a built campaign to Meta. Spends 20 AI credits and, once active, real ad budget. Two-step: the first call returns the preview and a confirmationToken; after the user explicitly approves, call again with the token. status \"paused\" (default) publishes everything paused for a final look in Ads Manager; \"active\" starts delivery immediately. Requires get_campaign_build to report preview_ready.","deprecated":null,"version":null,"openapi":"/openapi.json post /tools/launch_campaign","href":"/api-reference/publish-a-built-campaign-to-meta-spends-20-ai-credits-and-once-active-real-ad-budget-two-step:-the-first-call-returns-the-preview-and-a-confirmationtoken;-after-the-user-explicitly-approves-call-again-with-the-token-status-\"paused\"-default-publishes-everything-paused-for-a-final-look-in-ads-manager;-\"active\"-starts-delivery-immediately-requires-get_campaign_build-to-report-preview_ready"},{"title":"The exact shape of an automation rule (JSON Schema) plus the valid metrics, operators, windows, scopes, action kinds and execution modes, with authoring rules. Call before create_automation_rule or preview_automation_rule.","deprecated":null,"version":null,"openapi":"/openapi.json post /tools/get_automation_rule_schema","href":"/api-reference/the-exact-shape-of-an-automation-rule-json-schema-plus-the-valid-metrics-operators-windows-scopes-action-kinds-and-execution-modes-with-authoring-rules-call-before-create_automation_rule-or-preview_automation_rule"},{"title":"List the team's automation rules (active and paused) with their conditions, actions, execution mode and schedule.","description":"List the team's automation rules (active and paused) with their conditions, actions, execution mode and schedule.","deprecated":null,"version":null,"openapi":"/openapi.json post /tools/list_automation_rules","href":"/api-reference/list-the-teams-automation-rules-active-and-paused-with-their-conditions-actions-execution-mode-and-schedule"},{"title":"Dry-run a rule against the team's current synced Meta data: how many entities it evaluates, which would match right now (and why), and near misses. Pass ruleId for a saved rule OR rule for an unsaved draft. Changes nothing.","deprecated":null,"version":null,"openapi":"/openapi.json post /tools/preview_automation_rule","href":"/api-reference/dry-run-a-rule-against-the-teams-current-synced-meta-data:-how-many-entities-it-evaluates-which-would-match-right-now-and-why-and-near-misses-pass-ruleid-for-a-saved-rule-or-rule-for-an-unsaved-draft-changes-nothing"},{"title":"Create a standing optimisation rule (see get_automation_rule_schema). Two-step: the first call validates the rule, dry-runs it, and returns a preview + confirmationToken; after the user approves, call again with the token to save. suggest_only rules queue matches for approval; auto_run rules act on their own and need an owner/admin.","description":"Create a standing optimisation rule (see get_automation_rule_schema). Two-step: the first call validates the rule, dry-runs it, and returns a preview + confirmationToken; after the user approves, call again with the token to save. suggest_only rules queue matches for approval; auto_run rules act on their own and need an owner/admin.","deprecated":null,"version":null,"openapi":"/openapi.json post /tools/create_automation_rule","href":"/api-reference/create-a-standing-optimisation-rule-see-get_automation_rule_schema-two-step:-the-first-call-validates-the-rule-dry-runs-it-and-returns-a-preview-+-confirmationtoken;-after-the-user-approves-call-again-with-the-token-to-save-suggest_only-rules-queue-matches-for-approval;-auto_run-rules-act-on-their-own-and-need-an-owneradmin"},{"title":"Turn a rule on or off. Turning OFF is immediate. Turning ON is two-step (preview + confirmationToken) because an active auto_run rule acts on live ads without asking; only owners/admins can activate auto_run rules.","deprecated":null,"version":null,"openapi":"/openapi.json post /tools/set_automation_rule_active","href":"/api-reference/turn-a-rule-on-or-off-turning-off-is-immediate-turning-on-is-two-step-preview-+-confirmationtoken-because-an-active-auto_run-rule-acts-on-live-ads-without-asking;-only-ownersadmins-can-activate-auto_run-rules"},{"title":"Matches waiting for a human decision (pending_approval, awaiting_creative_review) and in-flight ones, with the entity, proposed action and the rule that produced them. Approve with approve_automation_action or decline with reject_automation_action.","deprecated":null,"version":null,"openapi":"/openapi.json post /tools/list_pending_automation_actions","href":"/api-reference/matches-waiting-for-a-human-decision-pending_approval-awaiting_creative_review-and-in-flight-ones-with-the-entity-proposed-action-and-the-rule-that-produced-them-approve-with-approve_automation_action-or-decline-with-reject_automation_action"},{"title":"Approve a pending_approval match so its action (pause, resume, scale budget, ...) is applied to Meta now. Two-step with confirmationToken. Get ids from list_pending_automation_actions.","deprecated":null,"version":null,"openapi":"/openapi.json post /tools/approve_automation_action","href":"/api-reference/approve-a-pending_approval-match-so-its-action-pause-resume-scale-budget-is-applied-to-meta-now-two-step-with-confirmationtoken-get-ids-from-list_pending_automation_actions"},{"title":"Decline a pending_approval match. The reason teaches the rule (e.g. this_is_a_winner suppresses future pauses of that entity for a while). Nothing is changed on Meta.","deprecated":null,"version":null,"openapi":"/openapi.json post /tools/reject_automation_action","href":"/api-reference/decline-a-pending_approval-match-the-reason-teaches-the-rule-eg-this_is_a_winner-suppresses-future-pauses-of-that-entity-for-a-while-nothing-is-changed-on-meta"},{"title":"Create a new workspace in the team (a separate container for brand kits, products, assets and campaigns — typically one per client or brand). Requires the acting user to be a team owner or admin. The creator is added as the workspace admin. Free; spends nothing.","deprecated":null,"version":null,"openapi":"/openapi.json post /tools/create_workspace","href":"/api-reference/create-a-new-workspace-in-the-team-a-separate-container-for-brand-kits-products-assets-and-campaigns-—-typically-one-per-client-or-brand-requires-the-acting-user-to-be-a-team-owner-or-admin-the-creator-is-added-as-the-workspace-admin-free;-spends-nothing"},{"title":"Scrape a brand's website and save a brand kit in a workspace: name, colors, fonts, tone of voice, target demographic, aesthetic, positioning (problem solved, differentiator, key result), industry, and the logo stored as a media asset. Buyer profiles are generated in the background afterwards (poll get_brand_kit for buyer_profiles_status). Takes 30-90 seconds. Free; spends no credits. Unlinked products on the same domain are linked to the new kit.","deprecated":null,"version":null,"openapi":"/openapi.json post /tools/create_brand_kit_from_url","href":"/api-reference/scrape-a-brands-website-and-save-a-brand-kit-in-a-workspace:-name-colors-fonts-tone-of-voice-target-demographic-aesthetic-positioning-problem-solved-differentiator-key-result-industry-and-the-logo-stored-as-a-media-asset-buyer-profiles-are-generated-in-the-background-afterwards-poll-get_brand_kit-for-buyer_profiles_status-takes-30-90-seconds-free;-spends-no-credits-unlinked-products-on-the-same-domain-are-linked-to-the-new-kit"},{"title":"Scrape a product, store or landing-page URL and create a product in a workspace from it: name, description, selling points, CTA, category, brand colors, logo and up to 12 product images stored as media assets, plus an AI customer profile. Auto-links a brand kit on the same domain. Takes 20-60 seconds. Free; spends no credits. Use list_products first if the product may already exist.","deprecated":null,"version":null,"openapi":"/openapi.json post /tools/create_product_from_url","href":"/api-reference/scrape-a-product-store-or-landing-page-url-and-create-a-product-in-a-workspace-from-it:-name-description-selling-points-cta-category-brand-colors-logo-and-up-to-12-product-images-stored-as-media-assets-plus-an-ai-customer-profile-auto-links-a-brand-kit-on-the-same-domain-takes-20-60-seconds-free;-spends-no-credits-use-list_products-first-if-the-product-may-already-exist"}]}]},{"tab":"Troubleshooting","pages":[{"title":"Troubleshooting","href":"/troubleshooting/common-issues"}]},{"tab":"Billing","pages":[{"title":"Billing","href":"/billing/plans-credits"}]},{"tab":"Changelog","pages":[{"title":"Changelog","href":"/changelog"}]},{"tab":"Support","pages":[{"title":"Support","href":"/support/contact"}]}]},"basePath":"","title":"Dry-run a rule against the team's current synced Meta data: how many entities it evaluates, which would match right now (and why), and near misses. Pass ruleId for a saved rule OR rule for an unsaved draft. Changes nothing. - AdStellar","buildId":"dpl_DeHjVRGfFnhYQwHnfC2pjeXXv8h9","deploymentId":"dpl_DeHjVRGfFnhYQwHnfC2pjeXXv8h9","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-CS552b7R.js","utils-DDTCYAF2.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-De8ttokP.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-DrwRDvAh.js","snippetPresets-DtAN0nWx.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-D5rWArI6.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-O2i12wsz.js","shallow-DV8xABTt.js","getApiPlaygroundDisplay-DBZ0B5Jx.js","CodeSnippet-BVi0tPUX.js","CodeSnippets-CqASbIwY.js","Page-m07pfKpT.js","getPastedJson-DG9vsMS8.js","icon-CXzRSCr8.js","MethodPill-BdKVtEuX.js","DuplicateIcon-CZlmBrJI.js","createIcon-biFEUKPL.js","DynamicMarkdown-B54_zNBF.js","SectionHeading-DwwHK3Pt.js","axios-vUo_bRtp.js","Markdown-DfhCTwyA.js","clsx-xpJZXxdP.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-BTZUMDnx.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-DqdKa2R4.js"]}