REST API reference
Every REST route an organization API key can call — 393 operations, generated from the API's own controllers.
This page is generated from the API's own controllers, so it cannot fall behind what your client sees. CI fails if it does.
The Marketing OS REST API: the same routes the dashboard calls, reachable with an organization API key.
Create a key under Settings → API keys and send it as Authorization: Bearer mos_….
A key is confined to its organization (every path starts with /organizations/{orgId})
and, when it was created for one business, to that business. A read key can only
call GET; anything else needs a write key.
Agents should prefer the MCP endpoint (POST /mcp): every tool there runs through the
risk tiers, spend caps and approvals inbox. See https://marketing.keyescode.com/docs.
Getting started
- Base URL:
https://marketing-api.keyescode.com - OpenAPI 3.0 document: https://marketing-api.keyescode.com/openapi.json — import it into Postman or Insomnia, or feed it to a client generator.
- Auth:
Authorization: Bearer mos_…on every route below unless it says otherwise. - Path scope:
{orgId}is your organization id and{businessId}one of its businesses (GET /organizations/{orgId}/businesseslists them); both are UUIDs and every route below that has them requires them. A key created for one business can only reach that business. - Errors: a JSON body with a
message. A request that fails validation is a400whose body addsissues, one{ path, message }per field. - Rate limits: per key. A
429carriesRetry-Afterin seconds.
Account checkup
GET /organizations/{orgId}/businesses/{businessId}/account-checkup
POST /organizations/{orgId}/businesses/{businessId}/account-checkup/claim
Needs a write key.
Request body (JSON):
| Field | Type | Required | Notes |
|---|---|---|---|
checkupId | string (uuid) | yes |
Ad entities
GET /organizations/{orgId}/businesses/{businessId}/entities/campaigns
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
from | query | string | yes | |
to | query | string | yes |
GET /organizations/{orgId}/businesses/{businessId}/entities/adsets
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
from | query | string | yes | |
to | query | string | yes | |
campaignMetaId | query | string | yes |
GET /organizations/{orgId}/businesses/{businessId}/entities/ads
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
from | query | string | yes | |
to | query | string | yes | |
adSetMetaId | query | string | yes | |
campaignMetaId | query | string | yes |
PATCH /organizations/{orgId}/businesses/{businessId}/entities/{level}/{metaId}/status
Needs a write key.
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
level | path | string | yes | |
metaId | path | string | yes |
Request body (JSON):
| Field | Type | Required | Notes |
|---|---|---|---|
status | string | yes | One of ACTIVE, PAUSED. |
Agency roll-up
GET /organizations/{orgId}/clients
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
windowDays | query | string | yes | |
includeDemo | query | string | yes |
GET /organizations/{orgId}/clients/export.csv
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
windowDays | query | string | yes | |
filter | query | string | yes | |
q | query | string | yes | |
includeDemo | query | string | yes |
Agents
GET /organizations/{orgId}/businesses/{businessId}/agent-scorecard
GET /organizations/{orgId}/businesses/{businessId}/agents
GET /organizations/{orgId}/businesses/{businessId}/agents/runs
GET /organizations/{orgId}/businesses/{businessId}/agents/runs/{runId}
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
runId | path | string | yes | |
eventsBefore | query | string | yes | |
limit | query | string | yes |
POST /organizations/{orgId}/businesses/{businessId}/agents/{agentKey}/runs
Needs a write key.
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
agentKey | path | string | yes |
Request body (JSON):
| Field | Type | Required | Notes |
|---|---|---|---|
brief | string | yes | 1–4000 characters. |
assetType | string | no | One of blog_post, email, ad_copy, landing_page, social_post. |
existingAssetId | string (uuid) | no |
AI visibility
GET /organizations/{orgId}/businesses/{businessId}/integrations/localfalcon/ai-visibility/overview
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
days | query | string | yes |
GET /organizations/{orgId}/businesses/{businessId}/integrations/localfalcon/ai-visibility/results.csv
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
days | query | string | yes |
GET /organizations/{orgId}/businesses/{businessId}/integrations/localfalcon/ai-visibility/schedules
POST /organizations/{orgId}/businesses/{businessId}/integrations/localfalcon/ai-visibility/schedules
Needs a write key.
Request body (JSON):
| Field | Type | Required | Notes |
|---|---|---|---|
name | string | yes | 1–120 characters. |
place_id | string | yes | 1–200 characters. |
location_name | string | no | At most 200 characters. |
keywords | string[] | yes | 1–20 items. |
centers | object[] | yes | 1–5 items. |
centers[].label | string | yes | 1–80 characters. |
centers[].lat | string | yes | At most 32 characters. |
centers[].lng | string | yes | At most 32 characters. |
surfaces | string[] | yes | 1–5 items. |
grid_size | string | yes | One of 3, 5, 7, 9, 11, 13, 15, 17, 19, 21. |
radius | number | yes | 0.1–100. |
measurement | string | yes | One of mi, km. |
frequency | string | yes | One of daily, weekly, monthly. |
hour_utc | integer | yes | 0–23. |
day_of_week | integer | no | 0–6. |
day_of_month | integer | no | 1–28. |
enabled | boolean | no |
PATCH /organizations/{orgId}/businesses/{businessId}/integrations/localfalcon/ai-visibility/schedules/{scheduleId}
Needs a write key.
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
scheduleId | path | string | yes |
Request body (JSON):
| Field | Type | Required | Notes |
|---|---|---|---|
name | string | no | 1–120 characters. |
place_id | string | no | 1–200 characters. |
location_name | string | no | At most 200 characters. |
keywords | string[] | no | 1–20 items. |
centers | object[] | no | 1–5 items. |
centers[].label | string | yes | 1–80 characters. |
centers[].lat | string | yes | At most 32 characters. |
centers[].lng | string | yes | At most 32 characters. |
surfaces | string[] | no | 1–5 items. |
grid_size | string | no | One of 3, 5, 7, 9, 11, 13, 15, 17, 19, 21. |
radius | number | no | 0.1–100. |
measurement | string | no | One of mi, km. |
frequency | string | no | One of daily, weekly, monthly. |
hour_utc | integer | no | 0–23. |
day_of_week | integer | no | 0–6. |
day_of_month | integer | no | 1–28. |
enabled | boolean | no |
DELETE /organizations/{orgId}/businesses/{businessId}/integrations/localfalcon/ai-visibility/schedules/{scheduleId}
Needs a write key.
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
scheduleId | path | string | yes |
POST /organizations/{orgId}/businesses/{businessId}/integrations/localfalcon/ai-visibility/schedules/{scheduleId}/run
Needs a write key.
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
scheduleId | path | string | yes |
API keys
GET /organizations/{orgId}/api-keys
POST /organizations/{orgId}/api-keys
Needs a write key.
Request body (JSON):
| Field | Type | Required | Notes |
|---|---|---|---|
name | string | yes | 1–64 characters. |
scope | string | no | One of read, write. Default "read". |
expiresInDays | integer | no | 1–365. |
businessId | string (uuid) or null | no |
DELETE /organizations/{orgId}/api-keys/{keyId}
Needs a write key.
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
keyId | path | string | yes |
GET /api-keys/current
Approvals
GET /organizations/{orgId}/businesses/{businessId}/publish-target
PUT /organizations/{orgId}/businesses/{businessId}/publish-target
Needs a write key.
Request body (JSON):
| Field | Type | Required | Notes |
|---|---|---|---|
url | string (uri) | yes | At most 512 characters. |
secret | string | no | 8–128 characters. |
POST /organizations/{orgId}/businesses/{businessId}/marketing-assets/{assetId}/publish
Needs a write key.
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
assetId | path | string | yes |
GET /organizations/{orgId}/businesses/{businessId}/external-actions
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
pending | query | string | yes |
POST /organizations/{orgId}/businesses/{businessId}/external-actions/batch
Needs a write key.
Request body (JSON):
| Field | Type | Required | Notes |
|---|---|---|---|
ids | string (uuid)[] | yes | 1–100 items. |
decision | string | yes | One of approve, reject. |
note | string | no | At most 500 characters. |
POST /organizations/{orgId}/businesses/{businessId}/external-actions/plans/{planId}/approve
Needs a write key.
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
planId | path | string | yes |
POST /organizations/{orgId}/businesses/{businessId}/external-actions/plans/{planId}/reject
Needs a write key.
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
planId | path | string | yes |
Request body (JSON):
| Field | Type | Required | Notes |
|---|---|---|---|
note | string | no | At most 500 characters. |
GET /organizations/{orgId}/businesses/{businessId}/external-actions/{actionId}
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
actionId | path | string | yes |
POST /organizations/{orgId}/businesses/{businessId}/external-actions/{actionId}/approve
Needs a write key.
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
actionId | path | string | yes |
POST /organizations/{orgId}/businesses/{businessId}/external-actions/{actionId}/reject
Needs a write key.
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
actionId | path | string | yes |
Request body (JSON):
| Field | Type | Required | Notes |
|---|---|---|---|
note | string | no | At most 500 characters. |
GET /organizations/{orgId}/businesses/{businessId}/client-reviews
POST /organizations/{orgId}/businesses/{businessId}/external-actions/{actionId}/request-client-review
Needs a write key.
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
actionId | path | string | yes |
Request body (JSON):
| Field | Type | Required | Notes |
|---|---|---|---|
message | string | no | At most 1000 characters. |
POST /organizations/{orgId}/businesses/{businessId}/social/posts/{postId}/request-client-review
Needs a write key.
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
postId | path | string | yes |
Request body (JSON):
| Field | Type | Required | Notes |
|---|---|---|---|
message | string | no | At most 1000 characters. |
POST /organizations/{orgId}/businesses/{businessId}/external-actions/{actionId}/client-review
Needs a write key.
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
actionId | path | string | yes |
Request body (JSON):
| Field | Type | Required | Notes |
|---|---|---|---|
decision | string | yes | One of approved, changes_requested. |
note | string | no | At most 1000 characters. |
POST /organizations/{orgId}/businesses/{businessId}/social/posts/{postId}/client-review
Needs a write key.
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
postId | path | string | yes |
Request body (JSON):
| Field | Type | Required | Notes |
|---|---|---|---|
decision | string | yes | One of approved, changes_requested. |
note | string | no | At most 1000 characters. |
Assets
GET /organizations/{orgId}/businesses/{businessId}/assets
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
view | query | string | yes |
POST /organizations/{orgId}/businesses/{businessId}/assets
Needs a write key.
GET /organizations/{orgId}/businesses/{businessId}/assets/{assetId}
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
assetId | path | string | yes |
PATCH /organizations/{orgId}/businesses/{businessId}/assets/{assetId}
Needs a write key.
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
assetId | path | string | yes |
Request body (JSON):
| Field | Type | Required | Notes |
|---|---|---|---|
originalFilename | string | no | 1–200 characters. |
folderId | string (uuid) or null | no |
DELETE /organizations/{orgId}/businesses/{businessId}/assets/{assetId}
Needs a write key.
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
assetId | path | string | yes |
POST /organizations/{orgId}/businesses/{businessId}/assets/move
Needs a write key.
Request body (JSON):
| Field | Type | Required | Notes |
|---|---|---|---|
assetIds | string (uuid)[] | yes | 1–200 items. |
folderId | string (uuid) or null | yes |
POST /organizations/{orgId}/businesses/{businessId}/assets/{assetId}/save
Needs a write key.
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
assetId | path | string | yes |
GET /organizations/{orgId}/businesses/{businessId}/asset-folders
POST /organizations/{orgId}/businesses/{businessId}/asset-folders
Needs a write key.
Request body (JSON):
| Field | Type | Required | Notes |
|---|---|---|---|
name | string | yes | 1–80 characters. |
parentId | string (uuid) or null | no |
PATCH /organizations/{orgId}/businesses/{businessId}/asset-folders/{folderId}
Needs a write key.
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
folderId | path | string | yes |
Request body (JSON):
| Field | Type | Required | Notes |
|---|---|---|---|
name | string | no | 1–80 characters. |
parentId | string (uuid) or null | no |
DELETE /organizations/{orgId}/businesses/{businessId}/asset-folders/{folderId}
Needs a write key.
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
folderId | path | string | yes |
Audiences
GET /organizations/{orgId}/businesses/{businessId}/audiences
PUT /organizations/{orgId}/businesses/{businessId}/audiences/{segment}/{channel}
Needs a write key.
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
segment | path | string | yes | |
channel | path | string | yes |
Request body (JSON):
| Field | Type | Required | Notes |
|---|---|---|---|
enabled | boolean | yes |
Audit log
GET /organizations/{orgId}/audit-log.csv
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
from | query | string | no | |
to | query | string | no |
Benchmarks
GET /organizations/{orgId}/businesses/{businessId}/benchmarks/compare
PUT /organizations/{orgId}/benchmarks/contribution
Needs a write key.
Request body (JSON):
| Field | Type | Required | Notes |
|---|---|---|---|
contributeBenchmarks | boolean | yes |
Billing
GET /organizations/{orgId}/billing
GET /organizations/{orgId}/billing/plans
POST /organizations/{orgId}/billing/checkout
Needs a write key.
Request body (JSON):
| Field | Type | Required | Notes |
|---|---|---|---|
plan | string | yes | One of starter, pro, agency. |
interval | string | no | One of month, year. Default "month". |
referral | string | no | 1–200 characters. |
promoCode | string | no | 1–32 characters. |
POST /organizations/{orgId}/billing/promo-code/validate
Needs a write key.
Request body (JSON):
| Field | Type | Required | Notes |
|---|---|---|---|
code | string | yes | 1–32 characters. |
GET /organizations/{orgId}/billing/invoices
PUT /organizations/{orgId}/billing/ai-spend-alert
Needs a write key.
Request body (JSON):
| Field | Type | Required | Notes |
|---|---|---|---|
thresholdUsd | integer | yes | 0–1000000. |
POST /organizations/{orgId}/billing/portal
Needs a write key.
Branding
GET /organizations/{orgId}/branding
PUT /organizations/{orgId}/branding
Needs a write key.
Request body (JSON):
| Field | Type | Required | Notes |
|---|---|---|---|
companyName | string or null | no | 1–120 characters. |
accentColor | string or null | no | |
accentForegroundColor | string or null | no | |
senderName | string or null | no | 1–120 characters. |
replyToEmail | string (email) or null | no | At most 254 characters. |
senderEmail | string (email) or null | no | At most 254 characters. |
footerText | string or null | no | At most 500 characters. |
supportUrl | string (uri) or null | no | At most 500 characters. |
POST /organizations/{orgId}/branding/logo
Needs a write key.
DELETE /organizations/{orgId}/branding/logo
Needs a write key.
GET /organizations/{orgId}/branding/domains
POST /organizations/{orgId}/branding/domains
Needs a write key.
Request body (JSON):
| Field | Type | Required | Notes |
|---|---|---|---|
hostname | string | yes | 1–253 characters. |
POST /organizations/{orgId}/branding/domains/{domainId}/verify
Needs a write key.
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
domainId | path | string | yes |
DELETE /organizations/{orgId}/branding/domains/{domainId}
Needs a write key.
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
domainId | path | string | yes |
Business brain
GET /organizations/{orgId}/businesses/{businessId}/brain/profile
PUT /organizations/{orgId}/businesses/{businessId}/brain/profile
Needs a write key.
Request body (JSON):
| Field | Type | Required | Notes |
|---|---|---|---|
brand | string | no | At most 20000 characters. Default "". |
industry | string | no | One of ``, apparel_accessories, beauty_personal_care, food_beverage, home_garden, health_fitness, electronics, jewellery, pets, baby_kids, sports_outdoors, b2b_software, professional_services, home_services, health_practice, legal, financial_services, real_estate, education, travel_hospitality, automotive, nonprofit, other. Default "". |
voice | string | no | At most 20000 characters. Default "". |
audience | string | no | At most 20000 characters. Default "". |
offerings | string | no | At most 20000 characters. Default "". |
competitors | string | no | At most 20000 characters. Default "". |
notes | string | no | At most 20000 characters. Default "". |
colors | object[] | no | At most 24 items. Default []. |
colors[].name | string | yes | 1–60 characters. |
colors[].hex | string | yes | |
branding | object | no | Default {}. |
branding.logoFiles | string | no | At most 20000 characters. Default "". |
branding.headingFont | string | no | At most 20000 characters. Default "". |
branding.bodyFont | string | no | At most 20000 characters. Default "". |
branding.buttonFont | string | no | At most 20000 characters. Default "". |
branding.letterSpacing | string | no | At most 20000 characters. Default "". |
branding.fontWeights | string | no | At most 20000 characters. Default "". |
branding.lineHeight | string | no | At most 20000 characters. Default "". |
branding.iconSet | string | no | One of ``, heroicons, lucide, font_awesome, other. Default "". |
branding.iconStyle | string | no | One of ``, outline, filled, rounded. Default "". |
branding.graphicElements | string | no | At most 20000 characters. Default "". |
seo | object | no | Default {}. |
seo.primaryKeywords | string | no | At most 20000 characters. Default "". |
seo.secondaryKeywords | string | no | At most 20000 characters. Default "". |
seo.negativeKeywords | string | no | At most 20000 characters. Default "". |
seo.competitors | string | no | At most 20000 characters. Default "". |
seo.locations | string | no | At most 20000 characters. Default "". |
seo.services | string | no | At most 20000 characters. Default "". |
seo.faqQueries | string | no | At most 20000 characters. Default "". |
social | object | no | Default {}. |
social.postingFrequency | string | no | At most 20000 characters. Default "". |
social.hashtagRules | string | no | At most 20000 characters. Default "". |
social.emojiRules | string | no | At most 20000 characters. Default "". |
social.ctaRules | string | no | At most 20000 characters. Default "". |
social.imageDimensions | string | no | At most 20000 characters. Default "". |
social.videoDimensions | string | no | At most 20000 characters. Default "". |
social.brandHashtags | string | no | At most 20000 characters. Default "". |
knowledgeBase | object | no | Default {}. |
knowledgeBase.faqs | string | no | At most 20000 characters. Default "". |
knowledgeBase.policies | string | no | At most 20000 characters. Default "". |
knowledgeBase.refundPolicy | string | no | At most 20000 characters. Default "". |
knowledgeBase.supportProcess | string | no | At most 20000 characters. Default "". |
knowledgeBase.hours | string | no | At most 20000 characters. Default "". |
knowledgeBase.locations | string | no | At most 20000 characters. Default "". |
knowledgeBase.integrations | string | no | At most 20000 characters. Default "". |
knowledgeBase.documentation | string | no | At most 20000 characters. Default "". |
knowledgeBase.caseStudies | string | no | At most 20000 characters. Default "". |
knowledgeBase.testimonials | string | no | At most 20000 characters. Default "". |
aiInstructions | object | no | Default {}. |
aiInstructions.alwaysRules | string | no | At most 20000 characters. Default "". |
aiInstructions.neverRules | string | no | At most 20000 characters. Default "". |
aiInstructions.bannedWords | string | no | At most 20000 characters. Default "". |
aiInstructions.requiredMentions | string | no | At most 20000 characters. Default "". |
marketingAssets | object | no | Default {}. |
marketingAssets.assetReferences | string | no | At most 20000 characters. Default "". |
GET /organizations/{orgId}/businesses/{businessId}/brain/knowledge
POST /organizations/{orgId}/businesses/{businessId}/brain/knowledge
Needs a write key.
Request body (JSON):
| Field | Type | Required | Notes |
|---|---|---|---|
kind | string | yes | One of guideline, past_campaign, testimonial, faq, case_study, research, note. |
title | string | yes | 1–200 characters. |
body | string | yes | 1–50000 characters. |
DELETE /organizations/{orgId}/businesses/{businessId}/brain/knowledge/{itemId}
Needs a write key.
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
itemId | path | string | yes |
Businesses
GET /organizations/{orgId}/businesses
POST /organizations/{orgId}/businesses
Needs a write key.
Request body (JSON):
| Field | Type | Required | Notes |
|---|---|---|---|
name | string | yes | 1–120 characters. |
storefrontUrl | string (uri) | no | |
goal | string | no | One of sales, leads. Default "sales". |
currency | string | no | 3–3 characters. Default "USD". |
timezone | string | no | At most 64 characters. |
breakEvenRoas | number | no | 0–100. |
avgOrderValueCents | integer | no | 0–9007199254740991. |
targetCpaCents | integer | no | 0–9007199254740991. |
targetCplCents | integer | no | 0–9007199254740991. |
monthlyBudgetCents | integer | no | 0–9007199254740991. |
dailyBudgetCapCents | integer | no | 0–9007199254740991. |
metaAttributionWindows | string[] | no | 1–2 items. |
autoRecommendations | boolean | no |
POST /organizations/{orgId}/businesses/demo
Needs a write key.
DELETE /organizations/{orgId}/businesses/demo
Needs a write key.
POST /organizations/{orgId}/businesses/demo/reset
Needs a write key.
GET /organizations/{orgId}/businesses/{businessId}
PATCH /organizations/{orgId}/businesses/{businessId}
Needs a write key.
Request body (JSON):
| Field | Type | Required | Notes |
|---|---|---|---|
name | string | no | 1–120 characters. |
storefrontUrl | string (uri) | no | |
goal | string | no | One of sales, leads. |
currency | string | no | 3–3 characters. |
timezone | string | no | At most 64 characters. |
breakEvenRoas | number | no | 0–100. |
avgOrderValueCents | integer | no | 0–9007199254740991. |
targetCpaCents | integer | no | 0–9007199254740991. |
targetCplCents | integer | no | 0–9007199254740991. |
monthlyBudgetCents | integer | no | 0–9007199254740991. |
dailyBudgetCapCents | integer | no | 0–9007199254740991. |
metaAttributionWindows | string[] | no | 1–2 items. |
autoRecommendations | boolean | no |
POST /organizations/{orgId}/businesses/{businessId}/target-suggestions
Needs a write key.
Campaign plans
GET /organizations/{orgId}/businesses/{businessId}/campaign-plans
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
includeSuperseded | query | string | yes |
POST /organizations/{orgId}/businesses/{businessId}/campaign-plans
Needs a write key.
Request body (JSON):
| Field | Type | Required | Notes |
|---|---|---|---|
channel | string | no | Where the campaign runs: "meta" (Facebook & Instagram, the default) or "google_ads" (a Google Search campaign in the linked Google Ads account) One of meta, google_ads. Default "meta". |
businessModel | string | yes | One of ecommerce, lead_gen. |
monthlyBudgetCents | integer | yes | 0–9007199254740991. |
aovCents | integer | no | 0–9007199254740991. |
breakEvenRoas | number | no | At least 0. |
targetCplCents | integer | no | 0–9007199254740991. |
dealValueCents | integer | no | Lead gen: the value of one closed deal, in cents 0–9007199254740991. |
closeRatePercent | number | no | Lead gen: the percent of leads that become customers (0–100) 0–100. |
offer | string | no | The offer the ads should lead with: the hook, price, discount or guarantee At most 500 characters. |
landingUrl | string | no | The page every ad links to; omitted = the business storefront URL At most 2048 characters. |
promotionId | string (uuid) | no | A promotion id from promotions_list (or the one promotions_create_draft returned). Fills offer ("10% off with code X") and landingUrl (the discount link) when those are omitted, grounds the copy in the code, and tags the ads with the promotion’s utm_campaign. Call promotions_list first; never invent a code or a discount |
leadProductIds | string (uuid)[] | no | Up to 3 synced commerce product ids (from the catalog) the ads should feature At most 3 items. Default []. |
emailListSize | string | yes | One of none, under_1k, 1k_to_10k, over_10k. |
socialFollowing | string | yes | One of none, under_1k, 1k_to_10k, over_10k. |
creativeAssets | string[] | yes | |
creativeAssetIds | string (uuid)[] | no | Default []. |
countries | string[] | yes | At least 1 items. |
geo | object | no | Local targeting: { kind: "places", places: [{ key, name, type, countryCode, radiusKm? }] } from the geo search, or { kind: "radius", addressString, radiusKm (1–80) }. Omitted = the whole countries |
pixelInstalled | boolean | no | Ignored for a real ad account (derived from the synced pixel); only honoured on a demo account |
bidStrategy | object | no | |
bidStrategy.strategy | string | yes | LOWEST_COST_WITHOUT_CAP (no cap), COST_CAP (average cost per result), LOWEST_COST_WITH_BID_CAP (maximum bid per auction) or LOWEST_COST_WITH_MIN_ROAS (minimum return on ad spend; value-optimised ad sets only) One of LOWEST_COST_WITHOUT_CAP, COST_CAP, LOWEST_COST_WITH_BID_CAP, LOWEST_COST_WITH_MIN_ROAS. |
bidStrategy.amountCents | integer | no | Required for COST_CAP and LOWEST_COST_WITH_BID_CAP: the cap, in cents of the ad account’s currency 0–100000000. |
bidStrategy.minRoas | number | no | Required for LOWEST_COST_WITH_MIN_ROAS: the ROAS floor as a ratio, e.g. 2.5 0–100. |
specialAdCategories | string[] | no | Special ad categories the campaign falls under (housing, financial products, employment, politics); empty = none. Any category forces ages 18–65+ and all genders Default []. |
ageMin | integer | no | The youngest age to target (18–65); omitted = the planner decides 18–65. |
locales | integer[] | no | Meta adlocale ids for the languages to target (e.g. 1001 English (All)); empty = all At most 10 items. Default []. |
supersedesPlanId | string (uuid) | no | A draft this plan replaces; it is hidden from the plan list once this one is created |
GET /organizations/{orgId}/businesses/{businessId}/campaign-plans/latest
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
includeSuperseded | query | string | yes |
GET /organizations/{orgId}/businesses/{businessId}/campaign-plans/prerequisites
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
channel | query | string | yes |
GET /organizations/{orgId}/businesses/{businessId}/campaign-plans/geo-search
GET /organizations/{orgId}/businesses/{businessId}/campaign-plans/interest-search
GET /organizations/{orgId}/businesses/{businessId}/campaign-plans/meta-pages
PATCH /organizations/{orgId}/businesses/{businessId}/campaign-plans/{planId}/page
Needs a write key.
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
planId | path | string | yes |
Request body (JSON):
| Field | Type | Required | Notes |
|---|---|---|---|
pageId | string | yes | At least 1 characters. |
PUT /organizations/{orgId}/businesses/{businessId}/campaign-plans/{planId}/lead-form
Needs a write key.
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
planId | path | string | yes |
Request body (JSON):
| Field | Type | Required | Notes |
|---|---|---|---|
leadForm | object | yes |
PATCH /organizations/{orgId}/businesses/{businessId}/campaign-plans/{planId}/audiences
Needs a write key.
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
planId | path | string | yes |
Request body (JSON):
| Field | Type | Required | Notes |
|---|---|---|---|
exclude | string[] | yes | At most 4 items. |
include | string[] | yes | At most 4 items. |
lookalike | boolean | yes |
PUT /organizations/{orgId}/businesses/{businessId}/campaign-plans/{planId}/plan
Needs a write key.
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
planId | path | string | yes |
Request body (JSON):
| Field | Type | Required | Notes |
|---|---|---|---|
campaign | object | no | |
campaign.name | string | yes | 1–200 characters. |
adCreatives | object[] | no | At most 50 items. |
adCreatives[].primaryText | string | yes | 1–2000 characters. |
adCreatives[].headline | string | yes | 1–255 characters. |
adCreatives[].description | string | yes | At most 255 characters. |
adCreatives[].callToAction | string | yes | One of SHOP_NOW, LEARN_MORE, SIGN_UP, GET_OFFER, CONTACT_US, SUBSCRIBE. |
adCreatives[].headlines | string[] | no | 1–5 items. |
adCreatives[].primaryTexts | string[] | no | 1–5 items. |
adSet | object | no | |
adSet.ageMin | integer | yes | 13–65. |
adSet.ageMax | integer | yes | 13–65. |
adSet.genders | string | yes | One of all, male, female. |
adSet.countries | string[] | yes | 1–25 items. |
adSet.interests | object[] | yes | At most 25 items. |
adSet.interests[].id | string | no | |
adSet.interests[].name | string | yes | 1–200 characters. |
adSet.interests[].audienceSizeLowerBound | integer or null | no | 0–9007199254740991. |
targetCplCents | integer | no | 0–9007199254740991. |
GET /organizations/{orgId}/businesses/{businessId}/campaign-plans/{planId}/previews
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
planId | path | string | yes |
PATCH /organizations/{orgId}/businesses/{businessId}/campaign-plans/{planId}/budget
Needs a write key.
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
planId | path | string | yes |
Request body (JSON):
| Field | Type | Required | Notes |
|---|---|---|---|
dailyBudgetCents | integer | yes | 0–9007199254740991. |
POST /organizations/{orgId}/businesses/{businessId}/campaign-plans/{planId}/approve
Needs a write key.
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
planId | path | string | yes |
POST /organizations/{orgId}/businesses/{businessId}/campaign-plans/{planId}/deploy
Needs a write key.
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
planId | path | string | yes |
POST /organizations/{orgId}/businesses/{businessId}/campaign-plans/{planId}/abandon-deploy
Needs a write key.
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
planId | path | string | yes |
POST /organizations/{orgId}/businesses/{businessId}/campaign-plans/{planId}/activate
Needs a write key.
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
planId | path | string | yes |
Competitors
GET /organizations/{orgId}/businesses/{businessId}/competitors
POST /organizations/{orgId}/businesses/{businessId}/competitors
Needs a write key.
Request body (JSON):
| Field | Type | Required | Notes |
|---|---|---|---|
pageHandle | string | yes | The competitor's Facebook Page — a full URL ("https://facebook.com/acmecoffee"), an @handle, or the bare handle. This is what their ads are looked up by. 1–512 characters. |
name | string | no | What to call them. Defaults to the handle when omitted. 1–200 characters. |
website | string | no | The competitor's website, if you know it. Optional and never fetched on add. At most 512 characters. |
POST /organizations/{orgId}/businesses/{businessId}/competitors/refresh
Needs a write key.
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
competitorId | query | string | yes |
DELETE /organizations/{orgId}/businesses/{businessId}/competitors/{competitorId}
Needs a write key.
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
competitorId | path | string | yes |
Content
GET /organizations/{orgId}/businesses/{businessId}/content/page-posts
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
pageId | query | string | yes | |
refresh | query | string | yes |
GET /organizations/{orgId}/businesses/{businessId}/content/post-comments
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
pageId | query | string | yes | |
postId | query | string | yes |
GET /organizations/{orgId}/businesses/{businessId}/content/organic-posts
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
platform | query | string | no | One of facebook_page, instagram, tiktok, youtube, gbp. |
sort | query | string | no | One of engagement, recent. Default "engagement". |
limit | query | integer | no | 1–100. Default 50. |
cursor | query | string | no | At most 64 characters. |
POST /organizations/{orgId}/businesses/{businessId}/content/organic-posts/refresh
Needs a write key.
Content hub
GET /organizations/{orgId}/businesses/{businessId}/content-hub/assets/{assetId}
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
assetId | path | string | yes |
POST /organizations/{orgId}/businesses/{businessId}/content-hub/assets/{assetId}/publish
Needs a write key.
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
assetId | path | string | yes |
Request body (JSON):
| Field | Type | Required | Notes |
|---|---|---|---|
collection | string | no | One of blog, learn. Default "blog". |
slug | string | no | 1–120 characters. |
GET /organizations/{orgId}/businesses/{businessId}/content-hub/topics
POST /organizations/{orgId}/businesses/{businessId}/content-hub/topics
Needs a write key.
Request body (JSON):
| Field | Type | Required | Notes |
|---|---|---|---|
title | string | yes | 1–200 characters. |
collection | string | no | One of blog, learn. Default "blog". |
brief | string | yes | 1–4000 characters. |
keywords | string[] | no | At most 20 items. Default []. |
source | string | no | At most 120 characters. Default "manual". |
priority | integer | no | 0–1000. Default 100. |
Conversions
GET /organizations/{orgId}/businesses/{businessId}/integrations/shopify/conversions
GET /organizations/{orgId}/businesses/{businessId}/conversions
GET /organizations/{orgId}/businesses/{businessId}/integrations/shopify/conversions/imports
POST /organizations/{orgId}/businesses/{businessId}/integrations/shopify/conversions/imports
Needs a write key.
GET /organizations/{orgId}/businesses/{businessId}/conversions/imports
POST /organizations/{orgId}/businesses/{businessId}/conversions/imports
Needs a write key.
GET /organizations/{orgId}/businesses/{businessId}/integrations/shopify/conversions/imports/template
GET /organizations/{orgId}/businesses/{businessId}/conversions/imports/template
POST /organizations/{orgId}/businesses/{businessId}/integrations/shopify/conversions/imports/preview
Needs a write key.
POST /organizations/{orgId}/businesses/{businessId}/conversions/imports/preview
Needs a write key.
POST /organizations/{orgId}/businesses/{businessId}/integrations/shopify/conversions/imports/{importId}/retry
Needs a write key.
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
importId | path | string | yes |
POST /organizations/{orgId}/businesses/{businessId}/conversions/imports/{importId}/retry
Needs a write key.
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
importId | path | string | yes |
PUT /organizations/{orgId}/businesses/{businessId}/integrations/shopify/conversions/{channel}
Needs a write key.
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
channel | path | string | yes |
PUT /organizations/{orgId}/businesses/{businessId}/conversions/{channel}
Needs a write key.
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
channel | path | string | yes |
Creative analytics
GET /organizations/{orgId}/businesses/{businessId}/creative-analytics
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
from | query | string | yes | |
to | query | string | yes |
GET /organizations/{orgId}/businesses/{businessId}/creative-analytics/export.csv
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
from | query | string | yes | |
to | query | string | yes | |
view | query | string | yes | |
q | query | string | yes | |
onlySpending | query | string | yes |
Creative experiments
GET /organizations/{orgId}/businesses/{businessId}/creative-experiments
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
limit | query | string | yes |
POST /organizations/{orgId}/businesses/{businessId}/creative-experiments
Needs a write key.
Request body (JSON):
| Field | Type | Required | Notes |
|---|---|---|---|
name | string | yes | What this cycle is called 1–200 characters. |
hypothesis | string | no | What the cycle is trying to learn, in the operator’s own words At most 2000 characters. |
adSetMetaId | string | yes | The ad set every arm is launched into — from meta_list_ad_sets 1–64 characters. |
pageId | string | no | Facebook Page the generated ads post under; required when any arm is a variant 1–64 characters. |
windowHours | integer | no | How long every arm runs before it can be judged. Default 48. 6–720. Default 48. |
floorMetric | string | no | roas and ctr are floors (higher passes); cpa is a ceiling (lower passes) One of roas, cpa, ctr. Default "roas". |
floorValue | number | yes | The floor itself: 1.4 for ROAS, a percentage for CTR, cents for CPA At least 0. |
minSpendCents | integer | no | No arm is decided below this spend, whatever the window says 0–9007199254740991. Default 2000. |
minImpressions | integer | no | No arm is decided below this many impressions 0–9007199254740991. Default 1000. |
promoteRule | string | no | One of budget_increase. Default "budget_increase". |
promoteBudgetPct | integer | no | How much more daily budget the winner’s ad set gets, as a percentage 1–100. Default 25. |
draftDerivatives | boolean | no | Draft new variants from the winner’s angle when one is promoted Default true. |
arms | object[] | yes | 2–8 items. |
arms[].variantId | string (uuid) | no | A succeeded creative_variants row from the creative studio |
arms[].adMetaId | string | no | An existing Meta ad id to enter as an arm, instead of generating one 1–64 characters. |
arms[].label | string | no | What to call this arm in the UI At most 120 characters. |
GET /organizations/{orgId}/businesses/{businessId}/creative-experiments/{experimentId}
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
experimentId | path | string | yes |
POST /organizations/{orgId}/businesses/{businessId}/creative-experiments/{experimentId}/evaluate
Needs a write key.
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
experimentId | path | string | yes |
POST /organizations/{orgId}/businesses/{businessId}/creative-experiments/{experimentId}/arms/{armId}/decision
Needs a write key.
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
experimentId | path | string | yes | |
armId | path | string | yes |
Request body (JSON):
| Field | Type | Required | Notes |
|---|---|---|---|
decision | string | yes | kill pauses the ad, promote raises the ad set’s budget, keep only records it One of killed, promoted, kept. |
reason | string | no | Why — recorded on the arm beside the numbers At most 500 characters. |
POST /organizations/{orgId}/businesses/{businessId}/creative-experiments/{experimentId}/cancel
Needs a write key.
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
experimentId | path | string | yes |
Creative studio
GET /organizations/{orgId}/businesses/{businessId}/creative-studio/quota
GET /organizations/{orgId}/businesses/{businessId}/creative-studio/batches
POST /organizations/{orgId}/businesses/{businessId}/creative-studio/batches
Needs a write key.
Request body (JSON):
| Field | Type | Required | Notes |
|---|---|---|---|
sourceAssetId | string (uuid) | yes | |
angles | string[] | yes | 1–6 items. |
placements | string[] | yes | 1–4 items. |
productNotes | string | no | At most 2000 characters. |
offer | string | no | At most 500 characters. |
GET /organizations/{orgId}/businesses/{businessId}/creative-studio/batches/{batchId}
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
batchId | path | string | yes |
GET /organizations/{orgId}/businesses/{businessId}/creative-studio/variants/{variantId}
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
variantId | path | string | yes |
GET /organizations/{orgId}/businesses/{businessId}/video/capabilities
GET /organizations/{orgId}/businesses/{businessId}/video/jobs
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
sourceAssetId | query | string | yes | |
batchId | query | string | yes |
GET /organizations/{orgId}/businesses/{businessId}/video/jobs/{jobId}
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
jobId | path | string | yes |
GET /organizations/{orgId}/businesses/{businessId}/assets/{assetId}/captions
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
assetId | path | string | yes |
POST /organizations/{orgId}/businesses/{businessId}/assets/{assetId}/captions
Needs a write key.
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
assetId | path | string | yes |
Request body (JSON):
| Field | Type | Required | Notes |
|---|---|---|---|
source | string or object | yes | |
style | string | no | One of bold-center, lower-third. Default "bold-center". |
POST /organizations/{orgId}/businesses/{businessId}/assets/{assetId}/resize
Needs a write key.
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
assetId | path | string | yes |
Request body (JSON):
| Field | Type | Required | Notes |
|---|---|---|---|
placement | string | yes | One of reels, square, landscape. |
mode | string | no | One of crop, pad. Default "pad". |
POST /organizations/{orgId}/businesses/{businessId}/creative-studio/batches/{batchId}/video
Needs a write key.
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
batchId | path | string | yes |
Request body (JSON):
| Field | Type | Required | Notes |
|---|---|---|---|
imageIds | string (uuid)[] | yes | 3–8 items. |
durationSec | integer | no | 10–20. Default 15. |
placement | string | no | One of reels, square, landscape. Default "reels". |
captionText | string | no | At most 500 characters. |
music | string | no | One of none. Default "none". |
Currency
GET /organizations/{orgId}/fx
PUT /organizations/{orgId}/fx/overrides
Needs a write key.
Request body (JSON):
| Field | Type | Required | Notes |
|---|---|---|---|
currency | string | yes | ISO 4217 currency code |
rate | number | yes | 0–1000000. |
DELETE /organizations/{orgId}/fx/overrides/{currency}
Needs a write key.
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
currency | path | string | yes |
Data export
GET /organizations/{orgId}/exports
POST /organizations/{orgId}/exports
Needs a write key.
GET /organizations/{orgId}/exports/{exportId}/download
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
exportId | path | string | yes |
Decision log
GET /organizations/{orgId}/businesses/{businessId}/entities/changes
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
channel | query | string | no | One of meta, google_ads, tiktok_ads. Default "meta". |
from | query | string | no | |
to | query | string | no |
GET /organizations/{orgId}/businesses/{businessId}/entities/{channel}/{entityId}/timeline
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
channel | path | string | yes | |
entityId | path | string | yes |
Exports
GET /organizations/{orgId}/businesses/{businessId}/exports/entities.csv
GET /organizations/{orgId}/businesses/{businessId}/exports/daily-metrics.csv
Forecast
GET /organizations/{orgId}/businesses/{businessId}/forecast
Goals
GET /organizations/{orgId}/businesses/{businessId}/goals
POST /organizations/{orgId}/businesses/{businessId}/goals
Needs a write key.
Request body (JSON):
| Field | Type | Required | Notes |
|---|---|---|---|
objective | string | yes | 1–500 characters. |
metricKey | string | yes | One of organic_clicks, sessions, site_conversions, ad_conversions, ad_revenue, ad_roas. |
targetValue | number | yes | At least 0. |
deadline | string | no | |
followUpOfGoalId | string (uuid) | no |
POST /organizations/{orgId}/businesses/{businessId}/goals/{goalId}/approve-plan
Needs a write key.
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
goalId | path | string | yes |
POST /organizations/{orgId}/businesses/{businessId}/goals/{goalId}/refresh
Needs a write key.
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
goalId | path | string | yes |
POST /organizations/{orgId}/businesses/{businessId}/goals/{goalId}/status
Needs a write key.
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
goalId | path | string | yes |
Request body (JSON):
| Field | Type | Required | Notes |
|---|---|---|---|
status | string | yes | One of active, paused. |
DELETE /organizations/{orgId}/businesses/{businessId}/goals/{goalId}
Needs a write key.
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
goalId | path | string | yes |
Google Ads
GET /organizations/{orgId}/businesses/{businessId}/integrations/google-ads/status
POST /organizations/{orgId}/businesses/{businessId}/integrations/google-ads/use-organization
Needs a write key.
GET /organizations/{orgId}/businesses/{businessId}/integrations/google-ads/connect
GET /organizations/{orgId}/businesses/{businessId}/integrations/google-ads/customers
POST /organizations/{orgId}/businesses/{businessId}/integrations/google-ads/link
Needs a write key.
Request body (JSON):
| Field | Type | Required | Notes |
|---|---|---|---|
customerId | string | yes | |
managerCustomerId | string or null | no |
POST /organizations/{orgId}/businesses/{businessId}/integrations/google-ads/sync
Needs a write key.
DELETE /organizations/{orgId}/businesses/{businessId}/integrations/google-ads
Needs a write key.
GET /organizations/{orgId}/businesses/{businessId}/integrations/google-ads/campaigns
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
from | query | string | yes | |
to | query | string | yes |
GET /organizations/{orgId}/businesses/{businessId}/integrations/google-ads/adgroups
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
from | query | string | yes | |
to | query | string | yes | |
campaignGoogleId | query | string | yes |
GET /organizations/{orgId}/businesses/{businessId}/integrations/google-ads/ads
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
from | query | string | yes | |
to | query | string | yes | |
adGroupGoogleId | query | string | yes | |
campaignGoogleId | query | string | yes |
GET /organizations/{orgId}/businesses/{businessId}/integrations/google-ads/keywords
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
adGroupGoogleId | query | string | yes | |
from | query | string | yes | |
to | query | string | yes |
GET /organizations/{orgId}/businesses/{businessId}/integrations/google-ads/search-terms
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
adGroupGoogleId | query | string | yes | |
campaignGoogleId | query | string | yes | |
from | query | string | yes | |
to | query | string | yes |
GET /organizations/{orgId}/businesses/{businessId}/integrations/google-ads/search-terms/proposal
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
adGroupGoogleId | query | string | yes | |
campaignGoogleId | query | string | yes |
GET /organizations/{orgId}/integrations/google-ads/organization
DELETE /organizations/{orgId}/integrations/google-ads/organization
Needs a write key.
GET /organizations/{orgId}/integrations/google-ads/organization/connect
Google Analytics and Search Console
GET /organizations/{orgId}/businesses/{businessId}/integrations/google/status
GET /organizations/{orgId}/businesses/{businessId}/integrations/google/search-performance
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
from | query | string | yes | |
to | query | string | yes |
GET /organizations/{orgId}/businesses/{businessId}/integrations/google/connect
GET /organizations/{orgId}/businesses/{businessId}/integrations/google/options
POST /organizations/{orgId}/businesses/{businessId}/integrations/google/select
Needs a write key.
Request body (JSON):
| Field | Type | Required | Notes |
|---|---|---|---|
ga4PropertyId | string or null | no | At most 64 characters. |
ga4PropertyName | string or null | no | At most 200 characters. |
gscSiteUrl | string or null | no | At most 512 characters. |
POST /organizations/{orgId}/businesses/{businessId}/integrations/google/sync
Needs a write key.
DELETE /organizations/{orgId}/businesses/{businessId}/integrations/google
Needs a write key.
Google Business Profile
GET /organizations/{orgId}/businesses/{businessId}/gbp/status
GET /organizations/{orgId}/businesses/{businessId}/gbp/connect
DELETE /organizations/{orgId}/businesses/{businessId}/gbp
Needs a write key.
GET /organizations/{orgId}/businesses/{businessId}/gbp/locations/available
POST /organizations/{orgId}/businesses/{businessId}/gbp/locations
Needs a write key.
Request body (JSON):
| Field | Type | Required | Notes |
|---|---|---|---|
locations | object[] | yes | 1–50 items. |
locations[].accountName | string | yes | |
locations[].locationName | string | yes |
DELETE /organizations/{orgId}/businesses/{businessId}/gbp/locations/{locationId}
Needs a write key.
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
locationId | path | string | yes |
GET /organizations/{orgId}/businesses/{businessId}/gbp/insights
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
days | query | integer | no | Window length in days, ending at the newest day Google has reported 7–90. Default 28. |
locationId | query | string (uuid) | no | Narrow to one connected location; omit for every location |
Guardrails
GET /organizations/{orgId}/businesses/{businessId}/guardrails
PUT /organizations/{orgId}/businesses/{businessId}/guardrails
Needs a write key.
Request body (JSON):
| Field | Type | Required | Notes |
|---|---|---|---|
dailySpendCapCents | integer or null | no | 0–100000000. Default null. |
monthlySpendCapCents | integer or null | no | 0–1000000000. Default null. |
minRoas | number or null | no | 0–100. Default null. |
maxBudgetIncreasePct | integer | no | 1–1000. Default 100. |
allowedCountries | string[] | no | At most 60 items. Default []. |
excludedCountries | string[] | no | At most 60 items. Default []. |
blockedAngles | string[] | no | At most 50 items. Default []. |
maxSpendDataAgeHours | integer | no | 1–168. Default 26. |
Klaviyo
GET /organizations/{orgId}/businesses/{businessId}/integrations/klaviyo/status
GET /organizations/{orgId}/businesses/{businessId}/integrations/klaviyo/connect
POST /organizations/{orgId}/businesses/{businessId}/integrations/klaviyo/sync
Needs a write key.
DELETE /organizations/{orgId}/businesses/{businessId}/integrations/klaviyo
Needs a write key.
Leads
GET /organizations/{orgId}/businesses/{businessId}/leads
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
status | query | string | no | One of new, contacted, qualified, won, lost. |
campaignId | query | string | no | At most 64 characters. |
formId | query | string | no | At most 64 characters. |
from | query | string | no | |
to | query | string | no | |
limit | query | integer | no | 1–500. Default 100. |
offset | query | integer | no | 0–9007199254740991. Default 0. |
GET /organizations/{orgId}/businesses/{businessId}/leads.csv
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
status | query | string | no | One of new, contacted, qualified, won, lost. |
campaignId | query | string | no | At most 64 characters. |
formId | query | string | no | At most 64 characters. |
from | query | string | no | |
to | query | string | no |
GET /organizations/{orgId}/businesses/{businessId}/leads/facets
GET /organizations/{orgId}/businesses/{businessId}/leads/sources
POST /organizations/{orgId}/businesses/{businessId}/leads/sources
Needs a write key.
Request body (JSON):
| Field | Type | Required | Notes |
|---|---|---|---|
pageId | string | yes |
DELETE /organizations/{orgId}/businesses/{businessId}/leads/sources/{sourceId}
Needs a write key.
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
sourceId | path | string | yes |
GET /organizations/{orgId}/businesses/{businessId}/leads/forms
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
pageId | query | string | yes |
GET /organizations/{orgId}/businesses/{businessId}/leads/{leadId}
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
leadId | path | string | yes |
PATCH /organizations/{orgId}/businesses/{businessId}/leads/{leadId}
Needs a write key.
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
leadId | path | string | yes |
Request body (JSON):
| Field | Type | Required | Notes |
|---|---|---|---|
status | string | no | One of new, contacted, qualified, won, lost. |
note | string or null | no | At most 5000 characters. |
valueCents | integer or null | no | 0–100000000000. |
currency | string or null | no |
Local Falcon
GET /organizations/{orgId}/businesses/{businessId}/integrations/localfalcon/status
POST /organizations/{orgId}/businesses/{businessId}/integrations/localfalcon/connect
Needs a write key.
Request body (JSON):
| Field | Type | Required | Notes |
|---|---|---|---|
apiKey | string | yes | 8–256 characters. |
DELETE /organizations/{orgId}/businesses/{businessId}/integrations/localfalcon
Needs a write key.
GET /organizations/{orgId}/businesses/{businessId}/integrations/localfalcon/account
GET /organizations/{orgId}/businesses/{businessId}/integrations/localfalcon/locations
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
query | query | string | yes | |
limit | query | string | yes | |
next_token | query | string | yes |
POST /organizations/{orgId}/businesses/{businessId}/integrations/localfalcon/locations/search
Needs a write key.
Request body (JSON):
| Field | Type | Required | Notes |
|---|---|---|---|
name | string | yes | 1–200 characters. |
proximity | string | no | At most 200 characters. |
platform | string | no | One of google, apple. |
POST /organizations/{orgId}/businesses/{businessId}/integrations/localfalcon/locations/add
Needs a write key.
Request body (JSON):
| Field | Type | Required | Notes |
|---|---|---|---|
platform | string | yes | One of google, apple. |
place_id | string | yes | 1–200 characters. |
name | string | no | At most 200 characters. |
lat | string | no | At most 32 characters. |
lng | string | no | At most 32 characters. |
PUT /organizations/{orgId}/businesses/{businessId}/integrations/localfalcon/locations/{locationId}/pin
Needs a write key.
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
locationId | path | string | yes |
Request body (JSON):
| Field | Type | Required | Notes |
|---|---|---|---|
lat | string | yes | At most 32 characters. |
lng | string | yes | At most 32 characters. |
DELETE /organizations/{orgId}/businesses/{businessId}/integrations/localfalcon/locations/{locationId}/pin
Needs a write key.
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
locationId | path | string | yes |
GET /organizations/{orgId}/businesses/{businessId}/integrations/localfalcon/reports
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
limit | query | string | yes | |
place_id | query | string | yes | |
keyword | query | string | yes | |
platform | query | string | yes | |
start_date | query | string | yes | |
end_date | query | string | yes | |
next_token | query | string | yes |
GET /organizations/{orgId}/businesses/{businessId}/integrations/localfalcon/reports/{reportKey}
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
reportKey | path | string | yes |
POST /organizations/{orgId}/businesses/{businessId}/integrations/localfalcon/scans
Needs a write key.
Request body (JSON):
| Field | Type | Required | Notes |
|---|---|---|---|
place_id | string | yes | 1–200 characters. |
keyword | string | yes | 1–200 characters. |
lat | string | yes | 1–32 characters. |
lng | string | yes | 1–32 characters. |
grid_size | string | yes | One of 3, 5, 7, 9, 11, 13, 15, 17, 19, 21. |
radius | number | yes | 0.1–100. |
measurement | string | yes | One of mi, km. |
platform | string | yes | One of google, apple, chatgpt, gemini, gaio, aimode, grok. |
ai_analysis | boolean | no |
GET /organizations/{orgId}/businesses/{businessId}/integrations/localfalcon/batches
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
limit | query | string | yes |
POST /organizations/{orgId}/businesses/{businessId}/integrations/localfalcon/batches
Needs a write key.
Request body (JSON):
| Field | Type | Required | Notes |
|---|---|---|---|
name | string | no | At most 120 characters. |
place_id | string | yes | 1–200 characters. |
grid_size | string | yes | One of 3, 5, 7, 9, 11, 13, 15, 17, 19, 21. |
radius | number | yes | 0.1–100. |
measurement | string | yes | One of mi, km. |
platforms | string[] | yes | 1–7 items. |
keywords | string[] | yes | 1–50 items. |
centers | object[] | yes | 1–10 items. |
centers[].label | string | yes | 1–80 characters. |
centers[].lat | string | yes | At most 32 characters. |
centers[].lng | string | yes | At most 32 characters. |
ai_analysis | boolean | no |
GET /organizations/{orgId}/businesses/{businessId}/integrations/localfalcon/batches/{batchId}
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
batchId | path | string | yes |
POST /organizations/{orgId}/businesses/{businessId}/integrations/localfalcon/batches/{batchId}/cancel
Needs a write key.
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
batchId | path | string | yes |
Marketing assets
GET /organizations/{orgId}/businesses/{businessId}/marketing-assets
GET /organizations/{orgId}/businesses/{businessId}/marketing-assets/{assetId}
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
assetId | path | string | yes |
PATCH /organizations/{orgId}/businesses/{businessId}/marketing-assets/{assetId}
Needs a write key.
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
assetId | path | string | yes |
Request body (JSON):
| Field | Type | Required | Notes |
|---|---|---|---|
status | string | no | One of draft, in_review, approved, published, archived. |
body | object | no | |
body.title | string | yes | 1–300 characters. |
body.bodyMarkdown | string | yes | 1–100000 characters. |
body.metaDescription | string | no | At most 300 characters. |
body.targetKeywords | string[] | no | At most 20 items. |
body.category | string | no | At most 100 characters. |
body.heroImageAssetId | string (uuid) | no | |
body.videoAssetId | string (uuid) | no | |
note | string | no | At most 500 characters. |
GET /organizations/{orgId}/businesses/{businessId}/marketing-assets/{assetId}/outcome
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
assetId | path | string | yes |
POST /organizations/{orgId}/businesses/{businessId}/marketing-assets/{assetId}/outcome/link-post
Needs a write key.
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
assetId | path | string | yes |
Request body (JSON):
| Field | Type | Required | Notes |
|---|---|---|---|
pageId | string | yes | 1–64 characters. |
postId | string | yes | 1–128 characters. |
POST /organizations/{orgId}/businesses/{businessId}/marketing-assets/{assetId}/outcome/sync-engagement
Needs a write key.
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
assetId | path | string | yes |
MCP
POST /mcp
Auth: an API key or an MCP OAuth access token.
Measurement
GET /organizations/{orgId}/businesses/{businessId}/measurement/health
POST /organizations/{orgId}/businesses/{businessId}/measurement/check
Needs a write key.
Meta Ads
GET /organizations/{orgId}/integrations/meta/reconnect-required
GET /organizations/{orgId}/integrations/meta/organization
DELETE /organizations/{orgId}/integrations/meta/organization
Needs a write key.
GET /organizations/{orgId}/integrations/meta/organization/connect
GET /organizations/{orgId}/businesses/{businessId}/integrations/meta/connect
POST /organizations/{orgId}/businesses/{businessId}/integrations/meta/use-organization
Needs a write key.
GET /organizations/{orgId}/businesses/{businessId}/integrations/meta/ad-accounts
POST /organizations/{orgId}/businesses/{businessId}/integrations/meta/select-account
Needs a write key.
Request body (JSON):
| Field | Type | Required | Notes |
|---|---|---|---|
metaAccountId | string | yes | At least 1 characters. |
GET /organizations/{orgId}/businesses/{businessId}/integrations/meta/status
POST /organizations/{orgId}/businesses/{businessId}/integrations/meta/sync
Needs a write key.
DELETE /organizations/{orgId}/businesses/{businessId}/integrations/meta
Needs a write key.
Model gateway
GET /organizations/{orgId}/model-gateway/providers
POST /organizations/{orgId}/model-gateway/providers
Needs a write key.
Request body (JSON):
| Field | Type | Required | Notes |
|---|---|---|---|
provider | string | yes | One of anthropic, openai, google, xai, openrouter, mistral, deepseek, perplexity, ollama, claude_code, codex, custom. |
label | string | yes | 1–64 characters. |
apiKey | string | no | 1–512 characters. |
baseUrl | string (uri) | no | At most 512 characters. |
defaultModel | string | no | 1–128 characters. |
PATCH /organizations/{orgId}/model-gateway/providers/{connectionId}
Needs a write key.
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
connectionId | path | string | yes |
Request body (JSON):
| Field | Type | Required | Notes |
|---|---|---|---|
label | string | no | 1–64 characters. |
apiKey | string | no | 1–512 characters. |
baseUrl | string (uri) | no | At most 512 characters. |
defaultModel | string | no | 1–128 characters. |
status | string | no | One of active, disabled. |
DELETE /organizations/{orgId}/model-gateway/providers/{connectionId}
Needs a write key.
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
connectionId | path | string | yes |
POST /organizations/{orgId}/model-gateway/providers/{connectionId}/verify
Needs a write key.
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
connectionId | path | string | yes |
GET /organizations/{orgId}/model-gateway/assignments
PUT /organizations/{orgId}/model-gateway/assignments
Needs a write key.
Request body (JSON):
| Field | Type | Required | Notes |
|---|---|---|---|
purpose | string | yes | One of recommendations, campaign_planning, target_suggestions, assistant, blog_writer, sales_copy, brand_voice, daily_report, director, onboarding_research, competitor_angles, embeddings, hero_image, creative_studio, transcribe. |
connectionId | string (uuid) or null | yes | |
model | string | no | 1–128 characters. |
fallbackConnectionId | string (uuid) or null | no | |
fallbackModel | string | no | 1–128 characters. |
GET /organizations/{orgId}/model-gateway/usage
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
days | query | string | yes |
GET /organizations/{orgId}/model-gateway/costs
Notifications
GET /organizations/{orgId}/notifications
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
unread | query | string | yes |
POST /organizations/{orgId}/notifications/{notificationId}/read
Needs a write key.
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
notificationId | path | string | yes |
POST /organizations/{orgId}/notifications/read-all
Needs a write key.
GET /organizations/{orgId}/notifications/preferences
PUT /organizations/{orgId}/notifications/preferences
Needs a write key.
Request body (JSON):
| Field | Type | Required | Notes |
|---|---|---|---|
emailSeverity | string | no | One of all, critical, none. |
leadAlerts | boolean | no | |
lifecycleEmails | boolean | no | |
weeklyDigest | boolean | no |
GET /organizations/{orgId}/notifications/channels
PUT /organizations/{orgId}/notifications/channels
Needs a write key.
Request body (JSON):
| Field | Type | Required | Notes |
|---|---|---|---|
slackWebhookUrl | string or null | no | |
slackEnabled | boolean | no | |
slackKinds | string[] | no |
POST /organizations/{orgId}/notifications/channels/slack/test
Needs a write key.
Operating notes
GET /organizations/{orgId}/businesses/{businessId}/operating-notes
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
includeExpired | query | string | yes | |
limit | query | string | yes |
POST /organizations/{orgId}/businesses/{businessId}/operating-notes
Needs a write key.
Request body (JSON):
| Field | Type | Required | Notes |
|---|---|---|---|
text | string | yes | The standing instruction, in plain language — what to do or never do, and why if it helps. Written as an instruction to the agents, e.g. "Never run comparison ads against Brand X". 3–500 characters. |
POST /organizations/{orgId}/businesses/{businessId}/operating-notes/{noteId}/retire
Needs a write key.
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
noteId | path | string | yes |
Operator
GET /organizations/{orgId}/businesses/{businessId}/operator/schedule
PUT /organizations/{orgId}/businesses/{businessId}/operator/schedule
Needs a write key.
Request body (JSON):
| Field | Type | Required | Notes |
|---|---|---|---|
enabled | boolean | yes | |
hour | integer | no | 0–23. Default 6. |
timeZone | string | no | 1–64 characters. Default "UTC". |
organicEnabled | boolean | no |
GET /organizations/{orgId}/businesses/{businessId}/operator/runs
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
limit | query | string | yes |
POST /organizations/{orgId}/businesses/{businessId}/operator/runs
Needs a write key.
GET /organizations/{orgId}/businesses/{businessId}/operator/runs/{runId}
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
runId | path | string | yes |
Organizations
PATCH /organizations/{orgId}
Needs a write key.
Request body (JSON):
| Field | Type | Required | Notes |
|---|---|---|---|
name | string | no | 1–120 characters. |
reportingCurrency | string or null | no | ISO 4217 currency code |
requireMfa | boolean | no |
DELETE /organizations/{orgId}
Needs a write key.
Request body (JSON):
| Field | Type | Required | Notes |
|---|---|---|---|
confirmName | string | yes | 1–120 characters. |
GET /organizations/{orgId}/members
POST /organizations/{orgId}/members
Needs a write key.
Request body (JSON):
| Field | Type | Required | Notes |
|---|---|---|---|
email | string (email) | yes | At most 254 characters. |
name | string | yes | 1–120 characters. |
temporaryPassword | string | yes | 8–128 characters. |
role | string | no | Default "member". |
access | object[] | no | At most 200 items. Default []. |
access[].businessId | string (uuid) | yes | |
access[].role | string | yes | One of admin, manager, analyst, client. |
PATCH /organizations/{orgId}/members/{membershipId}
Needs a write key.
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
membershipId | path | string | yes |
Request body (JSON):
| Field | Type | Required | Notes |
|---|---|---|---|
role | string | yes |
DELETE /organizations/{orgId}/members/{membershipId}
Needs a write key.
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
membershipId | path | string | yes |
PUT /organizations/{orgId}/members/{membershipId}/business-access
Needs a write key.
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
membershipId | path | string | yes |
Request body (JSON):
| Field | Type | Required | Notes |
|---|---|---|---|
businessId | string (uuid) | yes | |
role | string | yes | One of admin, manager, analyst, client. |
DELETE /organizations/{orgId}/members/{membershipId}/business-access/{grantedBusinessId}
Needs a write key.
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
membershipId | path | string | yes | |
grantedBusinessId | path | string | yes |
Promotions
GET /organizations/{orgId}/businesses/{businessId}/promotions
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
status | query | string | yes | One of draft, active, ended, archived. |
POST /organizations/{orgId}/businesses/{businessId}/promotions
Needs a write key.
Request body (JSON):
| Field | Type | Required | Notes |
|---|---|---|---|
code | string | yes | |
partnerName | string | yes | 1–120 characters. |
discountType | string | yes | One of percent, fixed. |
discountValue | number | yes | 0–1000000. |
currency | string | no | |
scope | string or object | no | Default "all". |
startsAt | string (date-time) | no | |
endsAt | string (date-time) or null | no | |
landingPath | string | no | At most 500 characters. |
status | string | no | One of draft, active. Default "active". |
GET /organizations/{orgId}/businesses/{businessId}/promotions/{promotionId}
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
promotionId | path | string | yes |
PATCH /organizations/{orgId}/businesses/{businessId}/promotions/{promotionId}
Needs a write key.
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
promotionId | path | string | yes |
Request body (JSON):
| Field | Type | Required | Notes |
|---|---|---|---|
startsAt | string (date-time) | no | |
endsAt | string (date-time) or null | no | |
status | string | no | One of draft, active, ended, archived. |
landingPath | string or null | no | At most 500 characters. |
GET /organizations/{orgId}/businesses/{businessId}/promotions/{promotionId}/performance
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
promotionId | path | string | yes |
Recommendations
POST /organizations/{orgId}/businesses/{businessId}/recommendations/generate
Needs a write key.
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
channel | query | string | yes | |
force | query | string | yes |
GET /organizations/{orgId}/businesses/{businessId}/recommendations/latest
GET /organizations/{orgId}/businesses/{businessId}/recommendations/history
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
channel | query | string | no | One of meta, google_ads, tiktok_ads. |
status | query | string | no | One of accepted, rejected, unactioned. |
cursor | query | string | no | At most 200 characters. |
limit | query | integer | no | 1–100. Default 25. |
POST /organizations/{orgId}/businesses/{businessId}/recommendations/{recommendationId}/implement
Needs a write key.
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
recommendationId | path | string | yes |
Request body (JSON):
| Field | Type | Required | Notes |
|---|---|---|---|
mode | string | yes | One of auto, manual. |
confirmed | boolean | no | |
note | string | no | At most 2000 characters. |
implementedOn | string | no |
POST /organizations/{orgId}/businesses/{businessId}/recommendations/{recommendationId}/reject
Needs a write key.
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
recommendationId | path | string | yes |
Request body (JSON):
| Field | Type | Required | Notes |
|---|---|---|---|
reason | string | yes | One of cant_implement, already_doing, not_relevant, budget_constraints, other. |
note | string | no | At most 2000 characters. |
Reports
GET /organizations/{orgId}/businesses/{businessId}/reports/dashboard
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
from | query | string | yes | |
to | query | string | yes |
GET /organizations/{orgId}/businesses/{businessId}/reports
POST /organizations/{orgId}/businesses/{businessId}/reports/generate
Needs a write key.
GET /organizations/{orgId}/businesses/{businessId}/client-reports
GET /organizations/{orgId}/businesses/{businessId}/client-reports/schedule
PUT /organizations/{orgId}/businesses/{businessId}/client-reports/schedule
Needs a write key.
Request body (JSON):
| Field | Type | Required | Notes |
|---|---|---|---|
frequency | string | yes | One of weekly, monthly. |
hour | integer | yes | 0–23. |
time_zone | string | no | 1–64 characters. |
day_of_week | integer | no | 0–6. |
day_of_month | integer | no | 1–28. |
recipients | string (email)[] | yes | At most 25 items. |
include_business_clients | boolean | no | |
attach_pdf | boolean | no | |
enabled | boolean | no |
DELETE /organizations/{orgId}/businesses/{businessId}/client-reports/schedule
Needs a write key.
POST /organizations/{orgId}/businesses/{businessId}/client-reports/generate
Needs a write key.
GET /organizations/{orgId}/businesses/{businessId}/client-reports/{reportId}
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
reportId | path | string | yes |
GET /organizations/{orgId}/businesses/{businessId}/client-reports/{reportId}/pdf
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
reportId | path | string | yes |
POST /organizations/{orgId}/businesses/{businessId}/client-reports/{reportId}/retry
Needs a write key.
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
reportId | path | string | yes |
Research
GET /organizations/{orgId}/businesses/{businessId}/research
POST /organizations/{orgId}/businesses/{businessId}/research
Needs a write key.
Request body (JSON):
| Field | Type | Required | Notes |
|---|---|---|---|
siteUrl | string | no | 3–2048 characters. |
interview | object | no | |
interview.whatYouSell | string | no | At most 2000 characters. Default "". |
interview.avgOrderValueCents | integer or null | no | 0–100000000. Default null. |
interview.breakEvenRoas | number or null | no | 0–1000. Default null. |
interview.targetCpaCents | integer or null | no | 0–100000000. Default null. |
interview.primaryMarket | string | no | At most 200 characters. Default "". |
competitorHandles | string[] | no | At most 5 items. Default []. |
POST /organizations/{orgId}/businesses/{businessId}/research/{runId}/approve
Needs a write key.
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
runId | path | string | yes |
Request body (JSON):
| Field | Type | Required | Notes |
|---|---|---|---|
brief | object | no | |
brief.headline | string | yes | At most 200 characters. |
brief.audience | string | yes | At most 8000 characters. |
brief.offer | string | yes | At most 8000 characters. |
brief.proofPoints | string[] | yes | At most 12 items. |
brief.noGoAngles | string[] | yes | At most 12 items. |
brief.differentiation | string | yes | At most 8000 characters. |
brief.gaps | string[] | yes | At most 10 items. |
economics | object | no | |
economics.breakEvenRoas | number or null | no | |
economics.avgOrderValueCents | number or null | no | |
economics.targetCpaCents | number or null | no | |
economics.targetCplCents | number or null | no | |
economics.monthlyBudgetCents | number or null | no | |
economics.rationale | string | no | |
economics.assumptions | string[] | no | |
economics.confidence | string | no | One of low, medium, high. |
economics.grossMarginPercent | number or null | no | 0–1. |
economics.derivation | string[] | no | At most 12 items. |
POST /organizations/{orgId}/businesses/{businessId}/research/{runId}/reject
Needs a write key.
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
runId | path | string | yes |
GET /organizations/{orgId}/research/pending
Rules
GET /organizations/{orgId}/businesses/{businessId}/rules
POST /organizations/{orgId}/businesses/{businessId}/rules
Needs a write key.
Request body (JSON):
| Field | Type | Required | Notes |
|---|---|---|---|
name | string | yes | 1–120 characters. |
enabled | boolean | no | Default true. |
channel | string | yes | One of meta, google_ads, tiktok_ads, all. |
level | string | yes | One of campaign, ad_set. |
scope | object | no | Which entities the rule watches. Omit both fields for every entity at the level. Default {}. |
scope.namePattern | string | no | Case-insensitive text the entity name must contain 1–200 characters. |
scope.entityIds | string[] | no | Explicit platform ids of the campaigns or ad sets / ad groups to watch 1–200 items. |
condition | object | yes | |
condition.metric | string | yes | One of spend, cpa, roas, ctr, cpc, conversions, frequency. |
condition.op | string | yes | One of >, <, >=, <=. |
condition.value | number | yes | The threshold, in the metric’s unit: cents for spend/cpa/cpc, % for ctr At least 0. |
condition.lookbackDays | integer | yes | How many complete days, ending yesterday in the business’s time zone 1–28. |
condition.minSpendCents | integer or null | no | Skip entities that spent less than this over the lookback 0–9007199254740991. |
condition.minConversions | number or null | no | Skip entities with fewer conversions than this over the lookback At least 0. |
action | object | yes | |
action.kind | string | yes | One of pause, enable, set_budget_pct, notify. |
action.pct | integer or null | no | For set_budget_pct: the change in percent, -90 to +100, never 0 -90–100. |
cooldownHours | integer | no | 1–720. Default 24. |
POST /organizations/{orgId}/businesses/{businessId}/rules/dry-run
Needs a write key.
Request body (JSON):
| Field | Type | Required | Notes |
|---|---|---|---|
name | string | yes | 1–120 characters. |
enabled | boolean | no | Default true. |
channel | string | yes | One of meta, google_ads, tiktok_ads, all. |
level | string | yes | One of campaign, ad_set. |
scope | object | no | Which entities the rule watches. Omit both fields for every entity at the level. Default {}. |
scope.namePattern | string | no | Case-insensitive text the entity name must contain 1–200 characters. |
scope.entityIds | string[] | no | Explicit platform ids of the campaigns or ad sets / ad groups to watch 1–200 items. |
condition | object | yes | |
condition.metric | string | yes | One of spend, cpa, roas, ctr, cpc, conversions, frequency. |
condition.op | string | yes | One of >, <, >=, <=. |
condition.value | number | yes | The threshold, in the metric’s unit: cents for spend/cpa/cpc, % for ctr At least 0. |
condition.lookbackDays | integer | yes | How many complete days, ending yesterday in the business’s time zone 1–28. |
condition.minSpendCents | integer or null | no | Skip entities that spent less than this over the lookback 0–9007199254740991. |
condition.minConversions | number or null | no | Skip entities with fewer conversions than this over the lookback At least 0. |
action | object | yes | |
action.kind | string | yes | One of pause, enable, set_budget_pct, notify. |
action.pct | integer or null | no | For set_budget_pct: the change in percent, -90 to +100, never 0 -90–100. |
cooldownHours | integer | no | 1–720. Default 24. |
GET /organizations/{orgId}/businesses/{businessId}/rules/{ruleId}
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
ruleId | path | string | yes |
PUT /organizations/{orgId}/businesses/{businessId}/rules/{ruleId}
Needs a write key.
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
ruleId | path | string | yes |
Request body (JSON):
| Field | Type | Required | Notes |
|---|---|---|---|
name | string | yes | 1–120 characters. |
enabled | boolean | no | Default true. |
channel | string | yes | One of meta, google_ads, tiktok_ads, all. |
level | string | yes | One of campaign, ad_set. |
scope | object | no | Which entities the rule watches. Omit both fields for every entity at the level. Default {}. |
scope.namePattern | string | no | Case-insensitive text the entity name must contain 1–200 characters. |
scope.entityIds | string[] | no | Explicit platform ids of the campaigns or ad sets / ad groups to watch 1–200 items. |
condition | object | yes | |
condition.metric | string | yes | One of spend, cpa, roas, ctr, cpc, conversions, frequency. |
condition.op | string | yes | One of >, <, >=, <=. |
condition.value | number | yes | The threshold, in the metric’s unit: cents for spend/cpa/cpc, % for ctr At least 0. |
condition.lookbackDays | integer | yes | How many complete days, ending yesterday in the business’s time zone 1–28. |
condition.minSpendCents | integer or null | no | Skip entities that spent less than this over the lookback 0–9007199254740991. |
condition.minConversions | number or null | no | Skip entities with fewer conversions than this over the lookback At least 0. |
action | object | yes | |
action.kind | string | yes | One of pause, enable, set_budget_pct, notify. |
action.pct | integer or null | no | For set_budget_pct: the change in percent, -90 to +100, never 0 -90–100. |
cooldownHours | integer | no | 1–720. Default 24. |
DELETE /organizations/{orgId}/businesses/{businessId}/rules/{ruleId}
Needs a write key.
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
ruleId | path | string | yes |
POST /organizations/{orgId}/businesses/{businessId}/rules/{ruleId}/dry-run
Needs a write key.
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
ruleId | path | string | yes |
POST /organizations/{orgId}/businesses/{businessId}/rules/{ruleId}/run
Needs a write key.
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
ruleId | path | string | yes |
GET /organizations/{orgId}/businesses/{businessId}/rules/{ruleId}/runs
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
ruleId | path | string | yes | |
limit | query | string | yes |
Shopify
GET /organizations/{orgId}/businesses/{businessId}/integrations/shopify/status
POST /organizations/{orgId}/businesses/{businessId}/integrations/shopify/connect
Needs a write key.
Request body (JSON):
| Field | Type | Required | Notes |
|---|---|---|---|
shopDomain | string | yes |
POST /organizations/{orgId}/businesses/{businessId}/integrations/shopify/sync
Needs a write key.
POST /organizations/{orgId}/businesses/{businessId}/integrations/shopify/product-images/import
Needs a write key.
DELETE /organizations/{orgId}/businesses/{businessId}/integrations/shopify
Needs a write key.
GET /organizations/{orgId}/businesses/{businessId}/integrations/shopify/products
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
limit | query | string | yes | |
outOfStock | query | string | yes |
GET /organizations/{orgId}/businesses/{businessId}/integrations/shopify/economics
POST /organizations/{orgId}/businesses/{businessId}/integrations/shopify/economics/apply
Needs a write key.
Request body (JSON):
| Field | Type | Required | Notes |
|---|---|---|---|
fields | string[] | yes | The economics fields to overwrite with the values derived from the store At least 1 items. |
GET /organizations/{orgId}/businesses/{businessId}/integrations/shopify/catalog
Site pages
GET /organizations/{orgId}/businesses/{businessId}/site-pages
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
limit | query | string | yes |
POST /organizations/{orgId}/businesses/{businessId}/site-pages/refresh
Needs a write key.
Social
GET /organizations/{orgId}/businesses/{businessId}/social/accounts
DELETE /organizations/{orgId}/businesses/{businessId}/social/accounts/{accountId}
Needs a write key.
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
accountId | path | string | yes |
GET /organizations/{orgId}/businesses/{businessId}/social/posts
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
status | query | string | yes |
POST /organizations/{orgId}/businesses/{businessId}/social/posts
Needs a write key.
Request body (JSON):
| Field | Type | Required | Notes |
|---|---|---|---|
caption | string | yes | At most 5000 characters. |
mediaAssetIds | string (uuid)[] | no | At most 10 items. Default []. |
targets | object[] | yes | 1–20 items. |
targets[].socialAccountId | string (uuid) | yes | |
targets[].options | object | no | |
scheduledAt | string (date-time) or null | no | |
marketingAssetId | string (uuid) | no | |
promotionId | string (uuid) | no | A promotion id from promotions_list. Appends "Use code CODE for …" to the caption unless the caption already contains the code. Never type a code into the caption that promotions_list did not return |
GET /organizations/{orgId}/businesses/{businessId}/social/posts/best-times
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
platform | query | string | yes | |
tz | query | string | yes |
GET /organizations/{orgId}/businesses/{businessId}/social/posts/{postId}
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
postId | path | string | yes |
PATCH /organizations/{orgId}/businesses/{businessId}/social/posts/{postId}
Needs a write key.
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
postId | path | string | yes |
Request body (JSON):
| Field | Type | Required | Notes |
|---|---|---|---|
scheduledAt | string (date-time) | yes |
DELETE /organizations/{orgId}/businesses/{businessId}/social/posts/{postId}
Needs a write key.
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
postId | path | string | yes |
POST /organizations/{orgId}/businesses/{businessId}/social/posts/{postId}/cancel
Needs a write key.
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
postId | path | string | yes |
POST /organizations/{orgId}/businesses/{businessId}/social/posts/{postId}/retry
Needs a write key.
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
postId | path | string | yes |
GET /organizations/{orgId}/businesses/{businessId}/social/comments
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
platform | query | string | no | Narrow to one platform One of facebook_page, instagram, tiktok, youtube, gbp. |
filter | query | string | no | all, unanswered (no reply yet) or flagged One of all, unanswered, flagged. Default "all". |
limit | query | integer | no | At most this many, newest first 1–200. Default 50. |
GET /organizations/{orgId}/businesses/{businessId}/social/comments/summary
PATCH /organizations/{orgId}/businesses/{businessId}/social/comments/{commentId}
Needs a write key.
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
commentId | path | string | yes |
Request body (JSON):
| Field | Type | Required | Notes |
|---|---|---|---|
flagged | boolean | yes |
GET /organizations/{orgId}/businesses/{businessId}/social/meta/connect
GET /organizations/{orgId}/businesses/{businessId}/social/meta/pages
POST /organizations/{orgId}/businesses/{businessId}/social/meta/select
Needs a write key.
Request body (JSON):
| Field | Type | Required | Notes |
|---|---|---|---|
pageIds | string[] | no | Default []. |
instagramIds | string[] | no | Default []. |
GET /organizations/{orgId}/businesses/{businessId}/social/instagram/status
GET /organizations/{orgId}/businesses/{businessId}/social/instagram/connect
POST /organizations/{orgId}/businesses/{businessId}/social/comments/refresh
Needs a write key.
GET /organizations/{orgId}/businesses/{businessId}/social/youtube/status
GET /organizations/{orgId}/businesses/{businessId}/social/youtube/connect
GET /organizations/{orgId}/businesses/{businessId}/social/tiktok/status
GET /organizations/{orgId}/businesses/{businessId}/social/tiktok/connect
GET /organizations/{orgId}/businesses/{businessId}/social/tiktok/accounts/{accountId}/creator-info
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
accountId | path | string | yes |
POST /organizations/{orgId}/businesses/{businessId}/social/comments/{commentId}/draft
Needs a write key.
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
commentId | path | string | yes |
Tasks
GET /organizations/{orgId}/businesses/{businessId}/tasks
POST /organizations/{orgId}/businesses/{businessId}/tasks
Needs a write key.
Request body (JSON):
| Field | Type | Required | Notes |
|---|---|---|---|
title | string | yes | 1–200 characters. |
description | string | no | At most 4000 characters. |
POST /organizations/{orgId}/businesses/{businessId}/tasks/ai
Needs a write key.
Request body (JSON):
| Field | Type | Required | Notes |
|---|---|---|---|
brief | string | yes | 1–4000 characters. |
connectionId | string (uuid) | no | |
model | string | no | 1–128 characters. |
PATCH /organizations/{orgId}/businesses/{businessId}/tasks/{taskId}
Needs a write key.
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
taskId | path | string | yes |
Request body (JSON):
| Field | Type | Required | Notes |
|---|---|---|---|
status | string | no | One of todo, running, blocked, review, done. |
title | string | no | 1–200 characters. |
description | string | no | At most 4000 characters. |
assigneeUserId | string (uuid) or null | no |
Terminal
GET /organizations/{orgId}/businesses/{businessId}/terminal/sessions
GET /organizations/{orgId}/businesses/{businessId}/terminal/sessions/{sessionId}/messages
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
sessionId | path | string | yes | |
before | query | string | yes | |
limit | query | string | yes |
PATCH /organizations/{orgId}/businesses/{businessId}/terminal/sessions/{sessionId}
Needs a write key.
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
sessionId | path | string | yes |
Request body (JSON):
| Field | Type | Required | Notes |
|---|---|---|---|
confirmChanges | boolean | yes |
DELETE /organizations/{orgId}/businesses/{businessId}/terminal/sessions/{sessionId}
Needs a write key.
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
sessionId | path | string | yes |
POST /organizations/{orgId}/businesses/{businessId}/terminal/attachments
Needs a write key.
POST /organizations/{orgId}/businesses/{businessId}/terminal/messages
Needs a write key.
Request body (JSON):
| Field | Type | Required | Notes |
|---|---|---|---|
content | string | yes | At most 8000 characters. |
sessionId | string (uuid) | no | |
confirmChanges | boolean | no | |
attachmentIds | string (uuid)[] | no | At most 5 items. |
TikTok Ads
GET /organizations/{orgId}/businesses/{businessId}/integrations/tiktok-ads/status
POST /organizations/{orgId}/businesses/{businessId}/integrations/tiktok-ads/use-organization
Needs a write key.
GET /organizations/{orgId}/businesses/{businessId}/integrations/tiktok-ads/connect
GET /organizations/{orgId}/businesses/{businessId}/integrations/tiktok-ads/advertisers
POST /organizations/{orgId}/businesses/{businessId}/integrations/tiktok-ads/link
Needs a write key.
Request body (JSON):
| Field | Type | Required | Notes |
|---|---|---|---|
advertiserId | string | yes |
POST /organizations/{orgId}/businesses/{businessId}/integrations/tiktok-ads/sync
Needs a write key.
DELETE /organizations/{orgId}/businesses/{businessId}/integrations/tiktok-ads
Needs a write key.
GET /organizations/{orgId}/businesses/{businessId}/integrations/tiktok-ads/campaigns
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
from | query | string | yes | |
to | query | string | yes |
GET /organizations/{orgId}/businesses/{businessId}/integrations/tiktok-ads/adgroups
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
from | query | string | yes | |
to | query | string | yes | |
campaignTiktokId | query | string | yes |
GET /organizations/{orgId}/businesses/{businessId}/integrations/tiktok-ads/ads
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
from | query | string | yes | |
to | query | string | yes | |
adGroupTiktokId | query | string | yes | |
campaignTiktokId | query | string | yes |
GET /organizations/{orgId}/businesses/{businessId}/integrations/tiktok-ads/creative-fatigue
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
from | query | string | yes | |
to | query | string | yes |
GET /organizations/{orgId}/integrations/tiktok-ads/organization
DELETE /organizations/{orgId}/integrations/tiktok-ads/organization
Needs a write key.
GET /organizations/{orgId}/integrations/tiktok-ads/organization/connect
Tools
GET /organizations/{orgId}/tools
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
risk | query | string | no | One of read, low, high. |
integration | query | string | no | One of internal, meta_ads, google_ads, tiktok_ads, social, assets, localfalcon, google, commerce, promotions, email, webhook. |
GET /organizations/{orgId}/businesses/{businessId}/tools
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
risk | query | string | no | One of read, low, high. |
integration | query | string | no | One of internal, meta_ads, google_ads, tiktok_ads, social, assets, localfalcon, google, commerce, promotions, email, webhook. |
GET /organizations/{orgId}/businesses/{businessId}/tools/invocations
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
limit | query | string | yes |
GET /organizations/{orgId}/businesses/{businessId}/tools/{toolName}/run
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
toolName | path | string | yes | |
x-marketing-os-source | header | string | yes | |
input | query | string | yes | |
agentRunId | query | string | yes |
POST /organizations/{orgId}/businesses/{businessId}/tools/{toolName}/invoke
Needs a write key.
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
toolName | path | string | yes | |
x-marketing-os-source | header | string | yes |
Request body (JSON):
| Field | Type | Required | Notes |
|---|---|---|---|
input | object | no | Default {}. |
agentRunId | string (uuid) | no | |
idempotencyKey | string | no | 1–200 characters. |
planId | string (uuid) | no | |
rationale | string | no | At most 600 characters. |
POST /organizations/{orgId}/businesses/{businessId}/tools/invocations/{invocationId}/revert
Needs a write key.
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
invocationId | path | string | yes |
POST /organizations/{orgId}/businesses/{businessId}/tools/plans/{planId}/revert
Needs a write key.
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
planId | path | string | yes |
Webhooks
GET /organizations/{orgId}/businesses/{businessId}/webhooks
POST /organizations/{orgId}/businesses/{businessId}/webhooks
Needs a write key.
Request body (JSON):
| Field | Type | Required | Notes |
|---|---|---|---|
url | string (uri) | yes | At most 2000 characters. |
description | string | no | At most 100 characters. |
kinds | string[] | yes | At least 1 items. |
PATCH /organizations/{orgId}/businesses/{businessId}/webhooks/{endpointId}
Needs a write key.
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
endpointId | path | string | yes |
Request body (JSON):
| Field | Type | Required | Notes |
|---|---|---|---|
description | string or null | no | At most 100 characters. |
kinds | string[] | no | At least 1 items. |
enabled | boolean | no |
DELETE /organizations/{orgId}/businesses/{businessId}/webhooks/{endpointId}
Needs a write key.
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
endpointId | path | string | yes |
POST /organizations/{orgId}/businesses/{businessId}/webhooks/{endpointId}/test
Needs a write key.
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
endpointId | path | string | yes |
GET /organizations/{orgId}/businesses/{businessId}/webhooks/{endpointId}/deliveries
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
endpointId | path | string | yes |
Workflows
GET /organizations/{orgId}/businesses/{businessId}/workflows
POST /organizations/{orgId}/businesses/{businessId}/workflows
Needs a write key.
Request body (JSON):
| Field | Type | Required | Notes |
|---|---|---|---|
name | string | yes | 1–120 characters. |
trigger | object | yes | |
trigger.kind | string | yes | One of asset_published. |
trigger.assetType | string | no | One of blog_post, email, ad_copy, landing_page, social_post. |
steps | object[] | yes | 1–6 items. |
PATCH /organizations/{orgId}/businesses/{businessId}/workflows/{workflowId}
Needs a write key.
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
workflowId | path | string | yes |
Request body (JSON):
| Field | Type | Required | Notes |
|---|---|---|---|
enabled | boolean | yes |
DELETE /organizations/{orgId}/businesses/{businessId}/workflows/{workflowId}
Needs a write key.
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
workflowId | path | string | yes |
GET /organizations/{orgId}/businesses/{businessId}/workflow-runs
GET /organizations/{orgId}/businesses/{businessId}/autonomy
PUT /organizations/{orgId}/businesses/{businessId}/autonomy
Needs a write key.
Request body (JSON):
| Field | Type | Required | Notes |
|---|---|---|---|
scope | string | no | One of publish_asset, tool:read, tool:low, tool:high. Default "publish_asset". |
mode | string | yes | One of ask_always, auto_with_digest, autopilot. |
agentKey | string or null | no | One of blog_writer, sales_copy, fb_ads. |
DELETE /organizations/{orgId}/businesses/{businessId}/autonomy/grants
Needs a write key.
Request body (JSON):
| Field | Type | Required | Notes |
|---|---|---|---|
scope | string | yes | One of publish_asset, tool:read, tool:low, tool:high. |
agentKey | string | yes | One of blog_writer, sales_copy, fb_ads. |
Something wrong or missing on this page? Tell us and we will fix it.