Every change Wellknown observed on this MCP server, newest first, with what it was before and what it became. Tool-surface changes carry the definition diff. Nothing here is edited after the fact.
Authorization not required, issuer https://app.xyla.ai
Certificate recorded, valid to 2026-12-04
Authorization not required, issuer https://app.xyla.ai
Changed the definition of "change_settings"
⟨2321 unchanged words⟩ Channels are enhanced, trending, ugc, podcast,stories_guides.stories_guides, skit. Send every channel the shop should keep."," ⟨7 unchanged words⟩ "minimum":0,"type":"number"},"skit":{"minimum":0,"type":"number"},"stories_guides":{"minimum":0,"type":"number ⟨12 unchanged words⟩ ","trending","ugc","podcast","stories_guides","skit"],"type":"object"}},"title" ⟨2354 unchanged words⟩
Changed the definition of "change_settings" and "get_settings"
before
{"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false,"properties":{"actions":{"description":"The changes, applied together: all of them or none.","items":{"additionalProperties":false,"properties":{"changes":{"anyOf":[{"additionalProperties":false,"description":"Casting and audience profile used for future creative generation: who appears on screen, and separately who the shop sells to. Excluding all people requires checking post_types and instructions; casting attributes cannot remove the cast. Targets: The shop audience id.","properties":{"custom_casting_instructions":{"description":"Concrete attributes of the person to cast in a single decision. This field describes the person, not API behavior. Do not duplicate sampling ratios here. The selector has no memory of past casting. Do not ask it to rotate, avoid previous choices or add variety across posts; use ratios for the mix instead. At most 1000 characters.","maxLength":1000,"type":"string"},"customer_persona":{"description":"Prose description of who the shop sells to, shown to the merchant as their target customer profile and read by every concept, caption and music generator.","type":"string"},"preferred_aesthetics":{"description":"Selected casting aesthetics.","items":{"enum":["clean_minimal","warm_everyday","workwear_trade","outdoors_adventure","sporty_athletic","urban_trendy","luxury_refined","bohemian_earthy","edgy_alternative","corporate_professional","coastal_laidback","soft_romantic","vintage_retro","playful_bold"],"type":"string"},"maxItems":3,"type":"array"},"preferred_age_max":{"description":"Maximum casting age, at least the minimum age.","maximum":80,"minimum":18,"type":"integer"},"preferred_age_min":{"description":"Minimum casting age. Adults only, never below 18.","maximum":80,"minimum":18,"type":"integer"},"preferred_ethnicity_ratios":{"additionalProperties":false,"description":"Primary control for ethnic diversity: ethnicity sampling percentages as a typed JSON object with keys white, black, latina_latino, east_asian, south_asian, southeast_asian, middle_eastern, mixed_race, indigenous, pacific_islander. Whole numbers totaling 100; zero excludes a group from sampling. Adjust the distribution directly instead of asking custom instructions for variety. No guaranteed rotation or exact short-run proportions.","properties":{"black":{"maximum":100,"minimum":0,"type":"integer"},"east_asian":{"maximum":100,"minimum":0,"type":"integer"},"indigenous":{"maximum":100,"minimum":0,"type":"integer"},"latina_latino":{"maximum":100,"minimum":0,"type":"integer"},"middle_eastern":{"maximum":100,"minimum":0,"type":"integer"},"mixed_race":{"maximum":100,"minimum":0,"type":"integer"},"pacific_islander":{"maximum":100,"minimum":0,"type":"integer"},"south_asian":{"maximum":100,"minimum":0,"type":"integer"},"southeast_asian":{"maximum":100,"minimum":0,"type":"integer"},"white":{"maximum":100,"minimum":0,"type":"integer"}},"required":["white","black","latina_latino","east_asian","south_asian","southeast_asian","middle_eastern","mixed_race","indigenous","pacific_islander"],"type":"object"},"preferred_gender_ratios":{"additionalProperties":false,"description":"Gender sampling percentages as a typed JSON object with keys female, male. Whole numbers totaling 100. These change the future mix, not a guaranteed sequence.","properties":{"female":{"maximum":100,"minimum":0,"type":"integer"},"male":{"maximum":100,"minimum":0,"type":"integer"}},"required":["female","male"],"type":"object"}},"title":"audience_profile","type":"object"},{"additionalProperties":false,"description":"How the shop presents itself: the name in captions, how voices say that name aloud in videos, its hashtags, and whether prices show. Targets: the shop, so use target_scope all.","properties":{"business_name":{"description":"The business name used in captions. Only change this when the merchant says it is wrong.","type":"string"},"business_name_pronunciation":{"description":"How voices say the business name aloud in videos. The lever for every complaint that a video says the name wrong. At most 80 characters.","maxLength":80,"type":"string"},"default_hashtags":{"description":"Hashtags added to every caption, without the leading #.","items":{"type":"string"},"type":"array"},"display_pricing":{"description":"Whether captions show the product price.","type":"boolean"},"domain":{"description":"The shop's website address, stored without https://.","type":"string"},"include_hashtags":{"description":"Whether captions carry hashtags at all.","type":"boolean"},"types_of_products":{"description":"What the shop sells, in a few plain words each (for example \"candles\", \"running shoes\").","items":{"type":"string"},"type":"array"},"use_business_name":{"description":"Whether captions name the business at all.","type":"boolean"}},"title":"brand_identity","type":"object"},{"additionalProperties":false,"description":"Presentation colors and an existing-logo watermark for ONE brand kit. Uploading or replacing the logo itself is a merchant action in Brand kit; use the brand_kit_logo support response and destination for that request. Targets: The existing shop brand kit id.","properties":{"default_video_logo_watermark_enabled":{"description":"Use the already-uploaded logo as a video watermark.","type":"boolean"},"primary_color":{"description":"Primary six-digit brand color.","type":"string"},"text_color":{"description":"Text six-digit brand color.","type":"string"}},"title":"brand_kit_presentation","type":"object"},{"additionalProperties":false,"description":"What the shop talks about, what it must never talk about, and how it sounds doing it. Built from the catalogue when it was last derived, so it can still name products the store has since removed. List fields are STATE, not a delta: send the whole list you want the shop to end up with. Targets: the shop, so use target_scope all.","properties":{"active_modes":{"description":"Which non-product formats actually run. fact, quote, meme and quiz enable their PostTypeShop categories and eligible templates; adding categories broadens a small content mix. narrative_video enables Narratives and educational enables educational videos in the stories_guides AI channel. Pair these video modes with a nonzero AI video budget and stories_guides weight in post_mix; the forecast shows whether autopilot can produce them. For a studio shop, fact, quote and quiz are the studio's own posts (any one on keeps studio posts running) and their themes are not used. Send the full list, preserving existing modes.","items":{"enum":["narrative_video","fact","quote","meme","quiz","educational"],"type":"string"},"type":"array"},"audience_attention_pattern":{"description":"One or two sentences describing who the audience is and what makes them stop scrolling.","type":"string"},"domains":{"description":"The topic areas the shop's content covers, by label (for example \"Skincare\"). Send the full list, existing entries included.","items":{"type":"string"},"type":"array"},"forbidden_subjects":{"description":"Subjects the shop must never post about. Send the full list, existing entries included.","items":{"type":"string"},"type":"array"},"pricepoint_tier":{"description":"The shop's actual price positioning. Change only when the merchant asks to correct that positioning, not to make copy more professional or to prefer higher-value products. Use voice_hint, writing_style or instructions for tone.","enum":["budget","mid","premium","luxury","unknown"],"type":"string"},"voice_hint":{"description":"One or two sentences describing the tone of the shop's content.","type":"string"}},"title":"content_topics","type":"object"},{"additionalProperties":false,"description":"The shop's default branding on AI images: website address, business name, logo watermark or nothing. Covers \"put my website on my images\" and \"take the branding off\". Per-style overrides are visual_styles brand_reference_mode. It adds the shop's own mark beside the product; print, labels or logos missing from the product itself are a product accuracy defect, not branding. Targets: the shop, so use target_scope all.","properties":{"default_mode":{"description":"What branding AI images carry by default.","enum":["none","smart_auto","domain","business_name","logo_watermark_only"],"type":"string"},"no_text_treatment":{"description":"What happens on an image whose style carries no text at all.","enum":["clean","logo_watermark"],"type":"string"}},"title":"enhanced_image_branding","type":"object"},{"additionalProperties":false,"description":"Products automatic selection must never use, e.g. discontinued items still listed in the store or a brand the merchant no longer wants posted. Targets: the shop, so use target_scope all.","properties":{"excluded_products":{"description":"The complete list of excluded products. Each entry is \"Title (#id)\", a bare product id, or a search phrase that adds every matching product. Entries left out are no longer excluded.","items":{"type":"string"},"maxItems":200,"type":"array"}},"title":"excluded_products","type":"object"},{"additionalProperties":false,"description":"Holiday posts: whether the shop posts on holidays at all, which country's calendar it follows, and which dates it celebrates. Covers \"stop posting about holidays\", the wrong country's holidays, and celebrating only certain ones. Targets: the shop, so use target_scope all.","properties":{"holiday_ids":{"description":"The holidays the shop celebrates, by id, from the candidate options for its country.","items":{"type":"string"},"type":"array"},"holiday_posts_enabled":{"description":"Whether the Holiday post type runs at all.","type":"boolean"},"holidays_iso":{"description":"Two-letter country code for the holiday calendar, such as US or GB.","type":"string"}},"title":"holiday_calendar","type":"object"},{"additionalProperties":false,"description":"Standing free-text direction the shop's generators read before every video, image and caption: scene direction, taste and tone. It cannot put words, web addresses or logos on screen, and a link or web address in captions is publishing_link_treatment, never these fields. Spoken accents go to language first; casting ages and demographic ratios go to audience_profile. Targets: the shop, so use target_scope all.","properties":{"caption_generation_instructions":{"description":"Standing direction for how captions are written for every post: tone, length, what to mention, what to leave out. At most 2000 characters.","maxLength":2000,"type":"string"},"creative_concept_instructions":{"description":"Creative direction for Enhanced product videos: what the scenes should show, who should appear in them, what to avoid. At most 2000 characters.","maxLength":2000,"type":"string"},"custom_caption_instructions":{"description":"Extra caption direction appended to the above, and where a standing line for every caption goes, such as an ongoing discount. At most 500 characters.","maxLength":500,"type":"string"},"enhanced_image_creative_concept_instructions":{"description":"Creative direction for Enhanced product images, including who appears in them. At most 2000 characters.","maxLength":2000,"type":"string"},"narrative_creative_concept_instructions":{"description":"Creative direction for Story videos, the narrated storytelling ones, including spoken narration accent and delivery. At most 2000 characters.","maxLength":2000,"type":"string"},"ugc_creative_concept_instructions":{"description":"Creative direction for UGC scenes and the manner of the person on camera and the setting they film in, including spoken accent and delivery. Use audience_profile for demographic casting settings. At most 2000 characters.","maxLength":2000,"type":"string"}},"title":"instructions","type":"object"},{"additionalProperties":false,"description":"The shop's posts and audio dialogue language, including regional dialects. Primary control for spoken accent requests when a matching language variant exists, such as British English. Targets: the shop, so use target_scope all.","properties":{"language_id":{"description":"ID of an available language/dialect option. Read the current language and select the requested variant from candidates; never invent an ID.","type":"integer"}},"title":"language","type":"object"},{"additionalProperties":false,"description":"UTM tracking added to the links Xyla publishes, so the merchant's analytics can tell Xyla traffic apart. For measuring or attributing the traffic and sales these posts bring. Whether a link appears at all is publishing_link_treatment. Targets: the shop, so use target_scope all.","properties":{"bio_utm_params":{"description":"The same, for links on the Link in bio storefront. Set both when the merchant wants all Xyla traffic labeled, and keep the campaign names different if they want to tell posts and bio clicks apart.","type":"string"},"social_post_utm_params":{"description":"Tracking parameters added to product links in posts, as a query string without the leading \"?\".","type":"string"}},"title":"link_tracking","type":"object"},{"additionalProperties":false,"description":"The sound under the shop's videos: the music style direction and whether videos have sound at all. Covers music and sung vocals, not spoken narration or presenter accents. Targets: the shop, so use target_scope all.","properties":{"music_prompt":{"description":"Full replacement Music style text, at most 600 characters. Covers genre, mood, energy, instruments, vocals and lyric restrictions; vague is fine. Preserve existing compatible genre/mood preferences while incorporating the requested change. For clean lyrics, explicitly exclude offensive or explicit lyrics without removing all vocals unless requested. Empty text clears the custom preference. At most 600 characters.","maxLength":600,"type":"string"},"mute_all_video_audio":{"description":"Silences every future video: no music, and no spoken audio either.","type":"boolean"}},"title":"music_style","type":"object"},{"additionalProperties":false,"description":"How often the shop posts, and how much of that is product content rather than blogs, facts, quizzes and other non-product posts. Structural: it changes the next batch and does not alter posts that already exist. Targets: the shop, so use target_scope all.","properties":{"post_frequency_days":{"description":"Post one batch every this many days. The plan may refuse a value it does not allow.","maximum":30,"minimum":1,"type":"integer"},"posts_per_day":{"description":"How many posts go out on a posting day. The plan may refuse a value it does not allow.","maximum":10,"minimum":1,"type":"integer"},"product_post_frequency":{"description":"How much of the schedule is product content, on a dial from 0 to 7: 0 is no product posts, 3 is about half of them, 7 is every post.","maximum":7,"minimum":0,"type":"integer"}},"title":"post_frequency","type":"object"},{"additionalProperties":false,"description":"Controls future media allocation across template videos, AI video channels, AI images and shop photos. The allocation forecast reports effective counts, quotas, capacity and reasons for shortfalls. Targets: the shop, so use target_scope all.","properties":{"allow_ai_images":{"description":"Shop-level permission for AI images. Effective AI images require this permission, Product enhanced_images enabled, an eligible plan and a nonzero monthly_ai_image_count.","type":"boolean"},"enhanced_video_percentage":{"description":"The share of those videos that are AI rendered rather than made from templates. Clamped to what its plan allows. Shops on AI budgets read this as a count instead, so prefer monthly_ai_video_count.","maximum":100,"minimum":0,"type":"integer"},"include_ai_disclosure_hashtag":{"description":"Adds the #AI hashtag to captions, on posts whose media puts a person on screen.","type":"boolean"},"monthly_ai_image_count":{"description":"How many AI images a month the shop gets. The rest of its product posts use its own photos. Pair increased AI images with fewer total videos when replacing template videos. Clamped to what its plan and its product posts allow. Empty means the merchant never chose and it follows allocation_forecast.ai_image_cap; keep it empty unless the merchant asks about AI images.","maximum":400,"minimum":0,"type":"integer"},"monthly_ai_video_count":{"description":"How many AI videos a month the shop gets. The rest of its videos are made from templates. Clamped to what its plan and its product posts allow. Empty means the merchant never chose: it follows allocation_forecast.ai_video_cap as plans and product slots change. Keep it empty unless the merchant asks for a number of AI videos; a total video change alone does not.","maximum":200,"minimum":0,"type":"integer"},"monthly_video_count":{"description":"How many videos a month the shop gets. Clamped to what its plan allows.","maximum":200,"minimum":0,"type":"integer"},"video_mix_weights":{"additionalProperties":false,"description":"Relative weights per video channel, sent as a JSON object. Channels are enhanced, trending, ugc, podcast, stories_guides. Send every channel the shop should keep.","properties":{"enhanced":{"minimum":0,"type":"number"},"podcast":{"minimum":0,"type":"number"},"stories_guides":{"minimum":0,"type":"number"},"trending":{"minimum":0,"type":"number"},"ugc":{"minimum":0,"type":"number"}},"required":["enhanced","trending","ugc","podcast","stories_guides"],"type":"object"}},"title":"post_mix","type":"object"},{"additionalProperties":false,"description":"Which kinds of media the shop's product posts are allowed to be, plus burned-in subtitles, outro cards and product-photo first frames. Structural: it changes the next batch. Use these switches for exclusions incompatible with a format, such as no people. Some of these need a Pro plan and the save will be refused without one. Targets: Which post type to change. Use \"Product\" unless told otherwise.","properties":{"default_video_captions":{"description":"Burned-in subtitles on videos. On is usually right, because most feeds autoplay muted. Turn off when a merchant asks for no text on videos or says text covers the product.","type":"boolean"},"enhanced_images":{"description":"AI rendered product images. Also requires post_mix allow_ai_images and a nonzero AI image budget on an eligible plan.","type":"boolean"},"enhanced_videos":{"description":"AI rendered product videos.","type":"boolean"},"outro_videos":{"description":"A closing brand card at the end of videos. Turn on for brand recall, off when a merchant says videos end on a logo instead of the product. The card itself is designed in Brand kit.","type":"boolean"},"podcast_videos":{"description":"Podcast videos with two visible hosts. Requires people on screen, not voiceover-only audio.","type":"boolean"},"product_image_as_first_frame":{"description":"Whether a real catalogue photo is the video's first frame, anchoring what follows to the actual product.","type":"boolean"},"trending_videos":{"description":"AI videos built from changing TikTok trends. Requires a nonzero AI video budget and a trending allocation in post_mix to produce posts.","type":"boolean"},"ugc_videos":{"description":"UGC style videos with a person on camera.","type":"boolean"}},"title":"post_types","type":"object"},{"additionalProperties":false,"description":"Future posting time and timezone. Targets: the shop, so use target_scope all.","properties":{"post_hour":{"description":"Hour for future scheduled posts.","maximum":23,"minimum":0,"type":"integer"},"post_timezone":{"description":"UTC offset for future scheduled posts.","maximum":14,"minimum":-12,"type":"integer"}},"title":"posting_schedule","type":"object"},{"additionalProperties":false,"description":"A note about ONE product that its photos and description do not make clear, read by every image, video and caption made for that product. Targets: Which product. Use an id from this tool's current products, or from a referenced post's products.","properties":{"note":{"description":"Plain facts about how this product looks or is used, in the merchant's terms. At most 500 characters.","maxLength":500,"type":"string"}},"title":"product_notes","type":"object"},{"additionalProperties":false,"description":"How a product post is built once the products are chosen: which catalogue photo it features (the cover, a mock-up, a collage), whether photos change between posts, one product or several, whether #ad leads the caption, and the call-to-action lines rotated into product captions. Which products get posted is product_selection. Targets: the shop, so use target_scope all.","properties":{"cover_product_image_only":{"description":"Only ever use the product's cover photo.","type":"boolean"},"include_ad_hashtag":{"description":"Put #ad first in every product caption.","type":"boolean"},"link_in_bio_messages":{"description":"Call-to-action lines rotated into product captions, at most 10 and 120 characters each.","items":{"type":"string"},"maxItems":10,"type":"array"},"product_image_index":{"description":"Which catalogue photo to feature, counting from 1 for the cover photo.","maximum":10,"minimum":1,"type":"integer"},"random_product_posts":{"description":"Pick products at random rather than favoring new arrivals and bestsellers.","type":"boolean"},"randomize_product_images":{"description":"Shuffle the photo order inside multi-image product posts. Tradeoff: the merchant loses the deliberate order they set in their store.","type":"boolean"},"rotate_product_images":{"description":"When a product has been posted before, feature a different photo next time.","type":"boolean"},"single_product_posts_only":{"description":"Every product post features exactly one product rather than a group.","type":"boolean"}},"title":"product_post_options","type":"object"},{"additionalProperties":false,"description":"The exact products upcoming Autopilot product posts use, in order, and which of them repeat (Evergreen). Targets: the shop, so use target_scope all.","properties":{"evergreen_products":{"description":"The complete list of queued products that repeat (Evergreen), written the same way. Every one must also be in queue_products.","items":{"type":"string"},"maxItems":50,"type":"array"},"queue_products":{"description":"The complete ordered queue. Each entry is a product from this tool's state as \"Title (#id)\", or the product's title as the merchant wrote it, which is looked up in the store. Entries left out are removed.","items":{"type":"string"},"maxItems":50,"type":"array"}},"title":"product_queue","type":"object"},{"additionalProperties":false,"description":"Collection and stock filters for automatic product selection. Selection only ever uses products the store currently lists as active. Targets: the shop, so use target_scope all.","properties":{"allow_out_of_stock_products":{"description":"Whether future product selection may include products the platform reports as unavailable. False is a strict stock filter, including when other filters are relaxed. Does not remove already scheduled posts.","type":"boolean"},"exclude_seasonal_products":{"description":"Enable the existing out-of-season product safeguard. It includes holiday keyword checks and available product-profile restrictions, not reliable season-by-season merchandising. Does not reliably select seasonal plants or rotate collections. For seasonal selection advice use the seasonal_product_selection procedure, which checks this flag and explains the product queue and collection filters.","type":"boolean"},"product_collection_filter_mode":{"description":"How the collection list is read. allowlist means products are only ever picked from the listed collections. denylist means products are never picked from them. With no collection IDs, no collection filter is applied in either mode.","enum":["allowlist","denylist"],"type":"string"},"product_collection_ids":{"description":"The platform collection ids the mode applies to. Send the FULL list, existing entries included. Clear the filter with an IDs-only product_collection_ids: [] change, so every collection is in play. An explicit allowlist together with an empty list is rejected because it cannot identify the promised collection. Only use ids from the shop's available collections.","items":{"type":"string"},"type":"array"}},"title":"product_selection","type":"object"},{"additionalProperties":false,"description":"Provider- and plan-eligible publishing settings for ONE connected account. Targets: The connected account id.","properties":{"active_posting":{"description":"Whether posts actually publish to this account, including ones already scheduled. Turn it off to pause one platform without touching the rest. Tradeoff: posts still get generated and scheduled, they just stop going out here.","type":"boolean"},"custom_link_text":{"description":"The closing line Instagram or TikTok captions use in place of a clickable link.","type":"string"},"default_hashtags":{"description":"Hashtags for THIS account only, replacing the shop-wide defaults on it.","items":{"type":"string"},"type":"array"},"disclose_ai_synthetic_content":{"description":"Declares AI-generated media to the platform itself, which labels the post.","type":"boolean"},"excluded_content_kinds":{"description":"Kinds of autopilot post this account does NOT receive. Empty means it gets every kind.","items":{"enum":["product_post","enhanced_image","enhanced_video","studio","ugc","trending","stories","podcast","meme","blog","holiday","fact","quote","quiz"],"type":"string"},"type":"array"},"post_to_instagram_stories":{"description":"Also publish eligible Instagram posts to Stories.","type":"boolean"},"product_collection_filter_mode":{"description":"How this account filters product posts.","enum":["all","selected","none"],"type":"string"},"product_collection_ids":{"description":"Complete collection ids for the account filter.","items":{"type":"string"},"type":"array"},"product_tagging":{"description":"Tag the products shown in Instagram posts so people can tap through to buy. Needs an eligible Instagram account with a connected shop, on Scale.","type":"boolean"}},"title":"publishing_account_settings","type":"object"},{"additionalProperties":false,"description":"The provider-specific setting that controls link treatment for ONE connected social account. Instagram, TikTok, and YouTube read link_mode; Facebook and X read link_in_bio_cta. Pinterest has no supported no-link control. A request to show the store's link or web address in captions comes here. Targets: Which connected social account to change. Use an id from the shop's current eligible accounts.","properties":{"link_in_bio_cta":{"description":"The legacy Facebook or X setting that suppresses their normal link behavior when true.","type":"boolean"},"link_mode":{"description":"The caption link treatment for Instagram or TikTok; YouTube permits cta, plain_link, or none. none suppresses it.","enum":["cta","plain_link","custom","none"],"type":"string"}},"title":"publishing_link_treatment","type":"object"},{"additionalProperties":false,"description":"Review first, the approval gate: whether a newly created post waits for the merchant to approve it or goes straight onto the schedule. Off is Hands-off, where Xyla posts without asking. Targets: the shop, so use target_scope all.","properties":{"require_post_approval":{"description":"True means every new post waits for approval. False is Hands-off: posts publish on schedule without asking.","type":"boolean"}},"title":"review_first","type":"object"},{"additionalProperties":false,"description":"ONE image template's design, colours, font and logo. Which catalogue photo shows is product_post_options. Targets: The existing template configuration id.","properties":{"background_color":{"description":"Template background color.","type":"string"},"font_color":{"description":"Template font color.","type":"string"},"font_family":{"description":"Template font family.","type":"string"},"image_template_id":{"description":"Existing image template id.","type":"integer"},"logo":{"description":"Show the existing uploaded logo.","type":"boolean"},"logo_background":{"description":"Show a background behind the existing logo.","type":"boolean"}},"title":"template_presentation","type":"object"},{"additionalProperties":false,"description":"TikTok's own publishing settings for ONE connected TikTok account: who can see the videos, which viewer interactions are allowed, TikTok's commercial disclosure, and whether TikTok adds its own music. Provider settings: they change nothing about how a video is made. Targets: Which connected TikTok account to change. Use an id from the shop's current TikTok accounts.","properties":{"auto_add_music":{"description":"Let TikTok add a trending track of its own to each post.","type":"boolean"},"brand_content_toggle":{"description":"Declare that the video promotes a third party in exchange for something of value. Branded content. Only true when the merchant really is paid to promote someone else.","type":"boolean"},"brand_organic_toggle":{"description":"Declare to TikTok that the video promotes the merchant's own brand. This is what a store's own product videos are, so it is the usual one to turn on. Commercial disclosure, separate from AI disclosure.","type":"boolean"},"disable_comment":{"description":"Turn comments off on published videos.","type":"boolean"},"disable_duet":{"description":"Stop viewers making Duets with the videos. Tradeoff: Duets are free reach from other people's audiences.","type":"boolean"},"disable_stitch":{"description":"Stop viewers Stitching clips of the videos. Tradeoff: the same loss of borrowed reach as Duets.","type":"boolean"},"privacy_level":{"description":"Who can see published videos.","enum":["PUBLIC_TO_EVERYONE","MUTUAL_FOLLOW_FRIENDS","SELF_ONLY"],"type":"string"}},"title":"tiktok_posting_options","type":"object"},{"additionalProperties":false,"description":"Create new visual styles, or rewrite an existing one, from the merchant's direction about how AI images and videos should look; the full style is written from it. Targets: new to create styles, or the id of the existing style to revise.","properties":{"count":{"description":"create only: how many styles to build in the new look.","maximum":3,"minimum":1,"type":"integer"},"direction":{"description":"What the merchant wants, in their words, what they disliked about what they saw, and what to keep. At most 1000 characters.","maxLength":1000,"type":"string"},"existing_styles":{"description":"create only: replace switches every existing style off, keep leaves them all on, keep_some leaves on only keep_style_ids.","enum":["replace","keep","keep_some"],"type":"string"},"keep_style_ids":{"description":"keep_some only: ids of the existing styles that stay on beside the new look.","items":{"type":"string"},"maxItems":10,"type":"array"},"mode":{"description":"create new styles, or revise the targeted one.","enum":["create","revise"],"type":"string"}},"title":"visual_direction","type":"object"},{"additionalProperties":false,"description":"Enable or disable ONE existing visual style, or fine-tune its settings: how real or produced its photography is, what job it does, and its text, call to action and branding treatment. A visual style is a look its Enhanced videos and images are made in; it does not control template videos or the AI video channel mix. Targets: Which visual style to change. Use an id from the shop's current styles.","properties":{"active":{"description":"Whether this style is used for future Enhanced images and videos. Disabling removes this look from the available pool; enabling adds it. This does not change template quotas or AI channel allocations. Keep at least one suitable style active.","type":"boolean"},"annotations":{"description":"Whether small explanatory callouts may be drawn onto the image.","type":"boolean"},"brand_reference_mode":{"description":"Which brand mark appears in the image: the website domain, the business name, smart_auto to let the system pick, none for no branding, or inherit for the shop default.","enum":["inherit","none","smart_auto","domain","business_name"],"type":"string"},"creative_role":{"description":"What job the style does. authentic_use is real use and lifestyle_context is everyday settings, the natural ones. information_design is the explainer, a designed ad with callouts, claims and a call to action. product_hero is a controlled product shot, proof_comparison is before and after evidence, distinctive_world is a stylized world.","enum":["authentic_use","product_hero","proof_comparison","lifestyle_context","distinctive_world","information_design"],"type":"string"},"cta_style":{"description":"How a call to action is presented in the image.","enum":["subtle","bold","overlay-text","integrated-graphic","none"],"type":"string"},"photographic_reality":{"description":"How real or how produced the imagery looks. RAW_DOCUMENTARY, AUTHENTIC_CASUAL, AUTHENTIC_IN_USE and AUTHENTIC_ADVENTURE look like a real photograph somebody took. PREMIUM_EDITORIAL, PRODUCT_HERO_EDITORIAL, CLEAN_FASHION_EDITORIAL and SURREAL_EDITORIAL look staged or produced. CLEAN_CONTEMPORARY sits between the two.","enum":["AUTHENTIC_ADVENTURE","PREMIUM_EDITORIAL","AUTHENTIC_CASUAL","CLEAN_CONTEMPORARY","PRODUCT_HERO_EDITORIAL","SURREAL_EDITORIAL","RAW_DOCUMENTARY","AUTHENTIC_IN_USE","CLEAN_FASHION_EDITORIAL"],"type":"string"},"text_approach":{"description":"How much written text may appear in the frame. NEVER is no text at all, TAGLINE_ONLY is one short line, WHEN_ENHANCES is text only where it helps, DESIGNED_AD is a fully designed ad.","enum":["NEVER","TAGLINE_ONLY","WHEN_ENHANCES","DESIGNED_AD"],"type":"string"}},"title":"visual_styles","type":"object"},{"additionalProperties":false,"description":"Which of the shared writing styles the shop's captions are written in. Targets: the shop, so use target_scope all.","properties":{"writing_style_id":{"description":"The id of a writing style from the list of styles available to the shop.","type":"integer"}},"title":"writing_style","type":"object"}],"description":"Only the fields to change, named as in that group. Leave out fields to keep them as they are."},"target_ids":{"description":"With selected: target ids exactly as get_settings returns them (a visual style id, an account id).","items":{"type":"string"},"type":"array"},"target_scope":{"description":"all for a group with one target (the shop) or to change every target; selected to change only the targets in target_ids.","enum":["all","selected"],"type":"string"},"tool":{"description":"Only to change another setting group in the same all-or-nothing set (for example post_frequency beside post_mix). Defaults to the top-level tool.","enum":["audience_profile","brand_identity","brand_kit_presentation","content_topics","enhanced_image_branding","excluded_products","holiday_calendar","instructions","language","link_tracking","music_style","post_frequency","post_mix","post_types","posting_schedule","product_notes","product_post_options","product_queue","product_selection","publishing_account_settings","publishing_link_treatment","review_first","template_presentation","tiktok_posting_options","visual_direction","visual_styles","writing_style"],"type":"string"}},"required":["target_scope","changes"],"type":"object"},"maxItems":16,"type":"array"},"tool":{"description":"The setting group to change. logo, outro, post_type_on_off, billing cannot be changed from chat; naming one returns the web page to change it on.","enum":["audience_profile","brand_identity","brand_kit_presentation","content_topics","enhanced_image_branding","excluded_products","holiday_calendar","instructions","language","link_tracking","music_style","post_frequency","post_mix","post_types","posting_schedule","product_notes","product_post_options","product_queue","product_selection","publishing_account_settings","publishing_link_treatment","review_first","template_presentation","tiktok_posting_options","visual_direction","visual_styles","writing_style","logo","outro","post_type_on_off","billing"],"type":"string"}},"required":["tool","actions"],"type":"object"}Unknown → Live
First tool surface recorded: 20 tools (server version 1.0.0)
https://app.xyla.ai/mcp (mcp_streamable_http) — from mcp_registry, with the record
Showing the latest 8 events. The API returns up to 500 and filters by kind: ?kind=tool_surface_changed
after
{"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false,"properties":{"actions":{"description":"The changes, applied together: all of them or none.","items":{"additionalProperties":false,"properties":{"changes":{"anyOf":[{"additionalProperties":false,"description":"Casting and audience profile used for future creative generation: who appears on screen, and separately who the shop sells to. Excluding all people requires checking post_types and instructions; casting attributes cannot remove the cast. Targets: The shop audience id.","properties":{"custom_casting_instructions":{"description":"Concrete attributes of the person to cast in a single decision. This field describes the person, not API behavior. Do not duplicate sampling ratios here. The selector has no memory of past casting. Do not ask it to rotate, avoid previous choices or add variety across posts; use ratios for the mix instead. At most 1000 characters.","maxLength":1000,"type":"string"},"customer_persona":{"description":"Prose description of who the shop sells to, shown to the merchant as their target customer profile and read by every concept, caption and music generator.","type":"string"},"preferred_aesthetics":{"description":"Selected casting aesthetics.","items":{"enum":["clean_minimal","warm_everyday","workwear_trade","outdoors_adventure","sporty_athletic","urban_trendy","luxury_refined","bohemian_earthy","edgy_alternative","corporate_professional","coastal_laidback","soft_romantic","vintage_retro","playful_bold"],"type":"string"},"maxItems":3,"type":"array"},"preferred_age_max":{"description":"Maximum casting age, at least the minimum age.","maximum":80,"minimum":18,"type":"integer"},"preferred_age_min":{"description":"Minimum casting age. Adults only, never below 18.","maximum":80,"minimum":18,"type":"integer"},"preferred_ethnicity_ratios":{"additionalProperties":false,"description":"Primary control for ethnic diversity: ethnicity sampling percentages as a typed JSON object with keys white, black, latina_latino, east_asian, south_asian, southeast_asian, middle_eastern, mixed_race, indigenous, pacific_islander. Whole numbers totaling 100; zero excludes a group from sampling. Adjust the distribution directly instead of asking custom instructions for variety. No guaranteed rotation or exact short-run proportions.","properties":{"black":{"maximum":100,"minimum":0,"type":"integer"},"east_asian":{"maximum":100,"minimum":0,"type":"integer"},"indigenous":{"maximum":100,"minimum":0,"type":"integer"},"latina_latino":{"maximum":100,"minimum":0,"type":"integer"},"middle_eastern":{"maximum":100,"minimum":0,"type":"integer"},"mixed_race":{"maximum":100,"minimum":0,"type":"integer"},"pacific_islander":{"maximum":100,"minimum":0,"type":"integer"},"south_asian":{"maximum":100,"minimum":0,"type":"integer"},"southeast_asian":{"maximum":100,"minimum":0,"type":"integer"},"white":{"maximum":100,"minimum":0,"type":"integer"}},"required":["white","black","latina_latino","east_asian","south_asian","southeast_asian","middle_eastern","mixed_race","indigenous","pacific_islander"],"type":"object"},"preferred_gender_ratios":{"additionalProperties":false,"description":"Gender sampling percentages as a typed JSON object with keys female, male. Whole numbers totaling 100. These change the future mix, not a guaranteed sequence.","properties":{"female":{"maximum":100,"minimum":0,"type":"integer"},"male":{"maximum":100,"minimum":0,"type":"integer"}},"required":["female","male"],"type":"object"}},"title":"audience_profile","type":"object"},{"additionalProperties":false,"description":"How the shop presents itself: the name in captions, how voices say that name aloud in videos, its hashtags, and whether prices show. Targets: the shop, so use target_scope all.","properties":{"business_name":{"description":"The business name used in captions. Only change this when the merchant says it is wrong.","type":"string"},"business_name_pronunciation":{"description":"How voices say the business name aloud in videos. The lever for every complaint that a video says the name wrong. At most 80 characters.","maxLength":80,"type":"string"},"default_hashtags":{"description":"Hashtags added to every caption, without the leading #.","items":{"type":"string"},"type":"array"},"display_pricing":{"description":"Whether captions show the product price.","type":"boolean"},"domain":{"description":"The shop's website address, stored without https://.","type":"string"},"include_hashtags":{"description":"Whether captions carry hashtags at all.","type":"boolean"},"types_of_products":{"description":"What the shop sells, in a few plain words each (for example \"candles\", \"running shoes\").","items":{"type":"string"},"type":"array"},"use_business_name":{"description":"Whether captions name the business at all.","type":"boolean"}},"title":"brand_identity","type":"object"},{"additionalProperties":false,"description":"Presentation colors and an existing-logo watermark for ONE brand kit. Uploading or replacing the logo itself is a merchant action in Brand kit; use the brand_kit_logo support response and destination for that request. Targets: The existing shop brand kit id.","properties":{"default_video_logo_watermark_enabled":{"description":"Use the already-uploaded logo as a video watermark.","type":"boolean"},"primary_color":{"description":"Primary six-digit brand color.","type":"string"},"text_color":{"description":"Text six-digit brand color.","type":"string"}},"title":"brand_kit_presentation","type":"object"},{"additionalProperties":false,"description":"Words no post may use, and claims the shop can back up. Targets: the shop, so use target_scope all.","properties":{"approved_claims":{"description":"Claims the merchant has said they can back up, in their words, which posts may then make.","items":{"type":"string"},"maxItems":50,"type":"array"},"never_say_phrases":{"description":"Words or phrases no post may contain, matched regardless of case, spaces or hyphens.","items":{"type":"string"},"maxItems":50,"type":"array"}},"title":"claim_rules","type":"object"},{"additionalProperties":false,"description":"What the shop talks about, what it must never talk about, and how it sounds doing it. Built from the catalogue when it was last derived, so it can still name products the store has since removed. List fields are STATE, not a delta: send the whole list you want the shop to end up with. Targets: the shop, so use target_scope all.","properties":{"active_modes":{"description":"Which non-product formats actually run. fact, quote, meme and quiz enable their PostTypeShop categories and eligible templates; adding categories broadens a small content mix. narrative_video enables Narratives and educational enables educational videos in the stories_guides AI channel. Pair these video modes with a nonzero AI video budget and stories_guides weight in post_mix; the forecast shows whether autopilot can produce them. For a studio shop, fact, quote and quiz are the studio's own posts (any one on keeps studio posts running) and their themes are not used. Send the full list, preserving existing modes.","items":{"enum":["narrative_video","fact","quote","meme","quiz","educational"],"type":"string"},"type":"array"},"audience_attention_pattern":{"description":"One or two sentences describing who the audience is and what makes them stop scrolling.","type":"string"},"domains":{"description":"The topic areas the shop's content covers, by label (for example \"Skincare\"). Send the full list, existing entries included.","items":{"type":"string"},"type":"array"},"forbidden_subjects":{"description":"Subjects the shop must never post about. Send the full list, existing entries included.","items":{"type":"string"},"type":"array"},"pricepoint_tier":{"description":"The shop's actual price positioning. Change only when the merchant asks to correct that positioning, not to make copy more professional or to prefer higher-value products. Use voice_hint, writing_style or instructions for tone.","enum":["budget","mid","premium","luxury","unknown"],"type":"string"},"voice_hint":{"description":"One or two sentences describing the tone of the shop's content.","type":"string"}},"title":"content_topics","type":"object"},{"additionalProperties":false,"description":"The shop's default branding on AI images: website address, business name, logo watermark or nothing. Covers \"put my website on my images\" and \"take the branding off\". Per-style overrides are visual_styles brand_reference_mode. It adds the shop's own mark beside the product; print, labels or logos missing from the product itself are a product accuracy defect, not branding. Targets: the shop, so use target_scope all.","properties":{"default_mode":{"description":"What branding AI images carry by default.","enum":["none","smart_auto","domain","business_name","logo_watermark_only"],"type":"string"},"no_text_treatment":{"description":"What happens on an image whose style carries no text at all.","enum":["clean","logo_watermark"],"type":"string"}},"title":"enhanced_image_branding","type":"object"},{"additionalProperties":false,"description":"Products automatic selection must never use, e.g. discontinued items still listed in the store or a brand the merchant no longer wants posted. Targets: the shop, so use target_scope all.","properties":{"excluded_products":{"description":"The complete list of excluded products. Each entry is \"Title (#id)\", a bare product id, or a search phrase that adds every matching product, optionally ending \" until YYYY-MM-DD\". Entries left out are no longer excluded.","items":{"type":"string"},"maxItems":200,"type":"array"}},"title":"excluded_products","type":"object"},{"additionalProperties":false,"description":"Holiday posts: whether the shop posts on holidays at all, which country's calendar it follows, and which dates it celebrates. Covers \"stop posting about holidays\", the wrong country's holidays, and celebrating only certain ones. Targets: the shop, so use target_scope all.","properties":{"holiday_ids":{"description":"The holidays the shop celebrates, by id, from the candidate options for its country.","items":{"type":"string"},"type":"array"},"holiday_posts_enabled":{"description":"Whether the Holiday post type runs at all.","type":"boolean"},"holidays_iso":{"description":"Two-letter country code for the holiday calendar, such as US or GB.","type":"string"}},"title":"holiday_calendar","type":"object"},{"additionalProperties":false,"description":"Standing free-text direction the shop's generators read before every video, image and caption: scene direction, taste and tone. It cannot put words, web addresses or logos on screen, and a link or web address in captions is publishing_link_treatment, never these fields. Spoken accents go to language first; casting ages and demographic ratios go to audience_profile. Targets: the shop, so use target_scope all.","properties":{"caption_generation_instructions":{"description":"Standing direction for how captions are written for every post: tone, length, what to mention, what to leave out. At most 2000 characters.","maxLength":2000,"type":"string"},"creative_concept_instructions":{"description":"Creative direction for Enhanced product videos: what the scenes should show, who should appear in them, what to avoid. At most 2000 characters.","maxLength":2000,"type":"string"},"custom_caption_instructions":{"description":"Extra caption direction appended to the above, and where a standing line for every caption goes, such as an ongoing discount. At most 500 characters.","maxLength":500,"type":"string"},"enhanced_image_creative_concept_instructions":{"description":"Creative direction for Enhanced product images, including who appears in them. At most 2000 characters.","maxLength":2000,"type":"string"},"narrative_creative_concept_instructions":{"description":"Creative direction for Story videos, the narrated storytelling ones, including spoken narration accent and delivery. At most 2000 characters.","maxLength":2000,"type":"string"},"ugc_creative_concept_instructions":{"description":"Creative direction for UGC scenes and the manner of the person on camera and the setting they film in, including spoken accent and delivery. Use audience_profile for demographic casting settings. At most 2000 characters.","maxLength":2000,"type":"string"}},"title":"instructions","type":"object"},{"additionalProperties":false,"description":"The shop's posts and audio dialogue language, including regional dialects. Primary control for spoken accent requests when a matching language variant exists, such as British English. Targets: the shop, so use target_scope all.","properties":{"language_id":{"description":"ID of an available language/dialect option. Read the current language and select the requested variant from candidates; never invent an ID.","type":"integer"}},"title":"language","type":"object"},{"additionalProperties":false,"description":"UTM tracking added to the links Xyla publishes, so the merchant's analytics can tell Xyla traffic apart. For measuring or attributing the traffic and sales these posts bring. Whether a link appears at all is publishing_link_treatment. Targets: the shop, so use target_scope all.","properties":{"bio_utm_params":{"description":"The same, for links on the Link in bio storefront. Set both when the merchant wants all Xyla traffic labeled, and keep the campaign names different if they want to tell posts and bio clicks apart.","type":"string"},"social_post_utm_params":{"description":"Tracking parameters added to product links in posts, as a query string without the leading \"?\".","type":"string"}},"title":"link_tracking","type":"object"},{"additionalProperties":false,"description":"The sound under the shop's videos: the music style direction and whether videos have sound at all. Covers music and sung vocals, not spoken narration or presenter accents. Targets: the shop, so use target_scope all.","properties":{"music_prompt":{"description":"Full replacement Music style text, at most 600 characters. Covers genre, mood, energy, instruments, vocals and lyric restrictions; vague is fine. Preserve existing compatible genre/mood preferences while incorporating the requested change. For clean lyrics, explicitly exclude offensive or explicit lyrics without removing all vocals unless requested. Empty text clears the custom preference. At most 600 characters.","maxLength":600,"type":"string"},"mute_all_video_audio":{"description":"Silences every future video: no music, and no spoken audio either.","type":"boolean"}},"title":"music_style","type":"object"},{"additionalProperties":false,"description":"How often the shop posts, and how much of that is product content rather than blogs, facts, quizzes and other non-product posts. Structural: it changes the next batch and does not alter posts that already exist. Targets: the shop, so use target_scope all.","properties":{"post_frequency_days":{"description":"Post one batch every this many days. The plan may refuse a value it does not allow.","maximum":30,"minimum":1,"type":"integer"},"posts_per_day":{"description":"How many posts go out on a posting day. The plan may refuse a value it does not allow.","maximum":10,"minimum":1,"type":"integer"},"product_post_frequency":{"description":"How much of the schedule is product content, on a dial from 0 to 7: 0 is no product posts, 3 is about half of them, 7 is every post.","maximum":7,"minimum":0,"type":"integer"}},"title":"post_frequency","type":"object"},{"additionalProperties":false,"description":"Controls future media allocation across template videos, AI video channels, AI images and shop photos. The allocation forecast reports effective counts, quotas, capacity and reasons for shortfalls. Targets: the shop, so use target_scope all.","properties":{"allow_ai_images":{"description":"Shop-level permission for AI images. Effective AI images require this permission, Product enhanced_images enabled, an eligible plan and a nonzero monthly_ai_image_count.","type":"boolean"},"enhanced_video_percentage":{"description":"The share of those videos that are AI rendered rather than made from templates. Clamped to what its plan allows. Shops on AI budgets read this as a count instead, so prefer monthly_ai_video_count.","maximum":100,"minimum":0,"type":"integer"},"include_ai_disclosure_hashtag":{"description":"Adds the #AI hashtag to captions, on posts whose media puts a person on screen.","type":"boolean"},"monthly_ai_image_count":{"description":"How many AI images a month the shop gets. The rest of its product posts use its own photos. Pair increased AI images with fewer total videos when replacing template videos. Clamped to what its plan and its product posts allow. Empty means the merchant never chose and it follows allocation_forecast.ai_image_cap; keep it empty unless the merchant asks about AI images.","maximum":400,"minimum":0,"type":"integer"},"monthly_ai_video_count":{"description":"How many AI videos a month the shop gets. The rest of its videos are made from templates. Clamped to what its plan and its product posts allow. Empty means the merchant never chose: it follows allocation_forecast.ai_video_cap as plans and product slots change. Keep it empty unless the merchant asks for a number of AI videos; a total video change alone does not.","maximum":200,"minimum":0,"type":"integer"},"monthly_video_count":{"description":"How many videos a month the shop gets. Clamped to what its plan allows.","maximum":200,"minimum":0,"type":"integer"},"video_mix_weights":{"additionalProperties":false,"description":"Relative weights per video channel, sent as a JSON object. Channels are enhanced, trending, ugc, podcast, stories_guides. Send every channel the shop should keep.","properties":{"enhanced":{"minimum":0,"type":"number"},"podcast":{"minimum":0,"type":"number"},"stories_guides":{"minimum":0,"type":"number"},"trending":{"minimum":0,"type":"number"},"ugc":{"minimum":0,"type":"number"}},"required":["enhanced","trending","ugc","podcast","stories_guides"],"type":"object"}},"title":"post_mix","type":"object"},{"additionalProperties":false,"description":"Which kinds of media the shop's product posts are allowed to be, plus burned-in subtitles, outro cards and product-photo first frames. Structural: it changes the next batch. Use these switches for exclusions incompatible with a format, such as no people. Some of these need a Pro plan and the save will be refused without one. Targets: Which post type to change. Use \"Product\" unless told otherwise.","properties":{"default_video_captions":{"description":"Burned-in subtitles on videos. On is usually right, because most feeds autoplay muted. Turn off when a merchant asks for no text on videos or says text covers the product.","type":"boolean"},"enhanced_images":{"description":"AI rendered product images. Also requires post_mix allow_ai_images and a nonzero AI image budget on an eligible plan.","type":"boolean"},"enhanced_videos":{"description":"AI rendered product videos.","type":"boolean"},"outro_videos":{"description":"A closing brand card at the end of videos. Turn on for brand recall, off when a merchant says videos end on a logo instead of the product. The card itself is designed in Brand kit.","type":"boolean"},"podcast_videos":{"description":"Podcast videos with two visible hosts. Requires people on screen, not voiceover-only audio.","type":"boolean"},"product_image_as_first_frame":{"description":"Whether a real catalogue photo is the video's first frame, anchoring what follows to the actual product.","type":"boolean"},"trending_videos":{"description":"AI videos built from changing TikTok trends. Requires a nonzero AI video budget and a trending allocation in post_mix to produce posts.","type":"boolean"},"ugc_videos":{"description":"UGC style videos with a person on camera.","type":"boolean"}},"title":"post_types","type":"object"},{"additionalProperties":false,"description":"Future posting time and timezone. Targets: the shop, so use target_scope all.","properties":{"post_hour":{"description":"Hour for future scheduled posts.","maximum":23,"minimum":0,"type":"integer"},"post_timezone":{"description":"UTC offset for future scheduled posts.","maximum":14,"minimum":-12,"type":"integer"}},"title":"posting_schedule","type":"object"},{"additionalProperties":false,"description":"A note about ONE product that its photos and description do not make clear, read by every image, video and caption made for that product. Targets: Which product. Use an id from this tool's current products, or from a referenced post's products.","properties":{"note":{"description":"Plain facts about how this product looks or is used, in the merchant's terms. At most 500 characters.","maxLength":500,"type":"string"}},"title":"product_notes","type":"object"},{"additionalProperties":false,"description":"How a product post is built once the products are chosen: which catalogue photo it features (the cover, a mock-up, a collage), whether photos change between posts, one product or several, whether #ad leads the caption, and the call-to-action lines rotated into product captions. Which products get posted is product_selection. Targets: the shop, so use target_scope all.","properties":{"cover_product_image_only":{"description":"Only ever use the product's cover photo.","type":"boolean"},"include_ad_hashtag":{"description":"Put #ad first in every product caption.","type":"boolean"},"link_in_bio_messages":{"description":"Call-to-action lines rotated into product captions, at most 10 and 120 characters each.","items":{"type":"string"},"maxItems":10,"type":"array"},"product_image_index":{"description":"Which catalogue photo to feature, counting from 1 for the cover photo.","maximum":10,"minimum":1,"type":"integer"},"random_product_posts":{"description":"Pick products at random rather than favoring new arrivals and bestsellers.","type":"boolean"},"randomize_product_images":{"description":"Shuffle the photo order inside multi-image product posts. Tradeoff: the merchant loses the deliberate order they set in their store.","type":"boolean"},"rotate_product_images":{"description":"When a product has been posted before, feature a different photo next time.","type":"boolean"},"single_product_posts_only":{"description":"Every product post features exactly one product rather than a group.","type":"boolean"}},"title":"product_post_options","type":"object"},{"additionalProperties":false,"description":"The exact products upcoming Autopilot product posts use, in order, and which of them repeat (Evergreen). Targets: the shop, so use target_scope all.","properties":{"evergreen_products":{"description":"The complete list of queued products that repeat (Evergreen), written the same way. Every one must also be in queue_products.","items":{"type":"string"},"maxItems":50,"type":"array"},"queue_products":{"description":"The complete ordered queue. Each entry is a product from this tool's state as \"Title (#id)\", or the product's title as the merchant wrote it, which is looked up in the store. Entries left out are removed.","items":{"type":"string"},"maxItems":50,"type":"array"}},"title":"product_queue","type":"object"},{"additionalProperties":false,"description":"Collection and stock filters for automatic product selection. Selection only ever uses products the store currently lists as active. Targets: the shop, so use target_scope all.","properties":{"allow_out_of_stock_products":{"description":"Whether future product selection may include products the platform reports as unavailable. False is a strict stock filter, including when other filters are relaxed. Does not remove already scheduled posts.","type":"boolean"},"exclude_seasonal_products":{"description":"Enable the existing out-of-season product safeguard. It includes holiday keyword checks and available product-profile restrictions, not reliable season-by-season merchandising. Does not reliably select seasonal plants or rotate collections. For seasonal selection advice use the seasonal_product_selection procedure, which checks this flag and explains the product queue and collection filters.","type":"boolean"},"product_collection_filter_mode":{"description":"How the collection list is read. allowlist means products are only ever picked from the listed collections. denylist means products are never picked from them. With no collection IDs, no collection filter is applied in either mode.","enum":["allowlist","denylist"],"type":"string"},"product_collection_ids":{"description":"The platform collection ids the mode applies to. Send the FULL list, existing entries included. Clear the filter with an IDs-only product_collection_ids: [] change, so every collection is in play. An explicit allowlist together with an empty list is rejected because it cannot identify the promised collection. Only use ids from the shop's available collections.","items":{"type":"string"},"type":"array"}},"title":"product_selection","type":"object"},{"additionalProperties":false,"description":"Provider- and plan-eligible publishing settings for ONE connected account. Targets: The connected account id.","properties":{"active_posting":{"description":"Whether posts actually publish to this account, including ones already scheduled. Turn it off to pause one platform without touching the rest. Tradeoff: posts still get generated and scheduled, they just stop going out here.","type":"boolean"},"custom_link_text":{"description":"The closing line Instagram or TikTok captions use in place of a clickable link.","type":"string"},"default_hashtags":{"description":"Hashtags for THIS account only, replacing the shop-wide defaults on it.","items":{"type":"string"},"type":"array"},"disclose_ai_synthetic_content":{"description":"Declares AI-generated media to the platform itself, which labels the post.","type":"boolean"},"excluded_content_kinds":{"description":"Kinds of autopilot post this account does NOT receive. Empty means it gets every kind.","items":{"enum":["product_post","enhanced_image","enhanced_video","studio","ugc","trending","stories","podcast","meme","blog","holiday","fact","quote","quiz"],"type":"string"},"type":"array"},"post_to_instagram_stories":{"description":"Also publish eligible Instagram posts to Stories.","type":"boolean"},"product_collection_filter_mode":{"description":"How this account filters product posts.","enum":["all","selected","none"],"type":"string"},"product_collection_ids":{"description":"Complete collection ids for the account filter.","items":{"type":"string"},"type":"array"},"product_tagging":{"description":"Tag the products shown in Instagram posts so people can tap through to buy. Needs an eligible Instagram account with a connected shop, on Scale.","type":"boolean"}},"title":"publishing_account_settings","type":"object"},{"additionalProperties":false,"description":"The provider-specific setting that controls link treatment for ONE connected social account. Instagram, TikTok, and YouTube read link_mode; Facebook and X read link_in_bio_cta. Pinterest has no supported no-link control. A request to show the store's link or web address in captions comes here. Targets: Which connected social account to change. Use an id from the shop's current eligible accounts.","properties":{"link_in_bio_cta":{"description":"The legacy Facebook or X setting that suppresses their normal link behavior when true.","type":"boolean"},"link_mode":{"description":"The caption link treatment for Instagram or TikTok; YouTube permits cta, plain_link, or none. none suppresses it.","enum":["cta","plain_link","custom","none"],"type":"string"}},"title":"publishing_link_treatment","type":"object"},{"additionalProperties":false,"description":"Review first, the approval gate: whether a newly created post waits for the merchant to approve it or goes straight onto the schedule. Off is Hands-off, where Xyla posts without asking. Targets: the shop, so use target_scope all.","properties":{"require_post_approval":{"description":"True means every new post waits for approval. False is Hands-off: posts publish on schedule without asking.","type":"boolean"}},"title":"review_first","type":"object"},{"additionalProperties":false,"description":"ONE image template's design, colours, font and logo. Which catalogue photo shows is product_post_options. Targets: The existing template configuration id.","properties":{"background_color":{"description":"Template background color.","type":"string"},"font_color":{"description":"Template font color.","type":"string"},"font_family":{"description":"Template font family.","type":"string"},"image_template_id":{"description":"Existing image template id.","type":"integer"},"logo":{"description":"Show the existing uploaded logo.","type":"boolean"},"logo_background":{"description":"Show a background behind the existing logo.","type":"boolean"}},"title":"template_presentation","type":"object"},{"additionalProperties":false,"description":"TikTok's own publishing settings for ONE connected TikTok account: who can see the videos, which viewer interactions are allowed, TikTok's commercial disclosure, and whether TikTok adds its own music. Provider settings: they change nothing about how a video is made. Targets: Which connected TikTok account to change. Use an id from the shop's current TikTok accounts.","properties":{"auto_add_music":{"description":"Let TikTok add a trending track of its own to each post.","type":"boolean"},"brand_content_toggle":{"description":"Declare that the video promotes a third party in exchange for something of value. Branded content. Only true when the merchant really is paid to promote someone else.","type":"boolean"},"brand_organic_toggle":{"description":"Declare to TikTok that the video promotes the merchant's own brand. This is what a store's own product videos are, so it is the usual one to turn on. Commercial disclosure, separate from AI disclosure.","type":"boolean"},"disable_comment":{"description":"Turn comments off on published videos.","type":"boolean"},"disable_duet":{"description":"Stop viewers making Duets with the videos. Tradeoff: Duets are free reach from other people's audiences.","type":"boolean"},"disable_stitch":{"description":"Stop viewers Stitching clips of the videos. Tradeoff: the same loss of borrowed reach as Duets.","type":"boolean"},"privacy_level":{"description":"Who can see published videos.","enum":["PUBLIC_TO_EVERYONE","MUTUAL_FOLLOW_FRIENDS","SELF_ONLY"],"type":"string"}},"title":"tiktok_posting_options","type":"object"},{"additionalProperties":false,"description":"Create new visual styles, or rewrite an existing one, from the merchant's direction about how AI images and videos should look; the full style is written from it. Targets: new to create styles, or the id of the existing style to revise.","properties":{"count":{"description":"create only: how many styles to build in the new look.","maximum":3,"minimum":1,"type":"integer"},"direction":{"description":"What the merchant wants, in their words, what they disliked about what they saw, and what to keep. At most 1000 characters.","maxLength":1000,"type":"string"},"existing_styles":{"description":"create only: replace switches every existing style off, keep leaves them all on, keep_some leaves on only keep_style_ids.","enum":["replace","keep","keep_some"],"type":"string"},"keep_style_ids":{"description":"keep_some only: ids of the existing styles that stay on beside the new look.","items":{"type":"string"},"maxItems":10,"type":"array"},"mode":{"description":"create new styles, or revise the targeted one.","enum":["create","revise"],"type":"string"}},"title":"visual_direction","type":"object"},{"additionalProperties":false,"description":"Enable or disable ONE existing visual style, or fine-tune its settings: how real or produced its photography is, what job it does, and its text, call to action and branding treatment. A visual style is a look its Enhanced videos and images are made in; it does not control template videos or the AI video channel mix. Targets: Which visual style to change. Use an id from the shop's current styles.","properties":{"active":{"description":"Whether this style is used for future Enhanced images and videos. Disabling removes this look from the available pool; enabling adds it. This does not change template quotas or AI channel allocations. Keep at least one suitable style active.","type":"boolean"},"annotations":{"description":"Whether small explanatory callouts may be drawn onto the image.","type":"boolean"},"brand_reference_mode":{"description":"Which brand mark appears in the image: the website domain, the business name, smart_auto to let the system pick, none for no branding, or inherit for the shop default.","enum":["inherit","none","smart_auto","domain","business_name"],"type":"string"},"creative_role":{"description":"What job the style does. authentic_use is real use and lifestyle_context is everyday settings, the natural ones. information_design is the explainer, a designed ad with callouts, claims and a call to action. product_hero is a controlled product shot, proof_comparison is before and after evidence, distinctive_world is a stylized world.","enum":["authentic_use","product_hero","proof_comparison","lifestyle_context","distinctive_world","information_design"],"type":"string"},"cta_style":{"description":"How a call to action is presented in the image.","enum":["subtle","bold","overlay-text","integrated-graphic","none"],"type":"string"},"photographic_reality":{"description":"How real or how produced the imagery looks. RAW_DOCUMENTARY, AUTHENTIC_CASUAL, AUTHENTIC_IN_USE and AUTHENTIC_ADVENTURE look like a real photograph somebody took. PREMIUM_EDITORIAL, PRODUCT_HERO_EDITORIAL, CLEAN_FASHION_EDITORIAL and SURREAL_EDITORIAL look staged or produced. CLEAN_CONTEMPORARY sits between the two.","enum":["AUTHENTIC_ADVENTURE","PREMIUM_EDITORIAL","AUTHENTIC_CASUAL","CLEAN_CONTEMPORARY","PRODUCT_HERO_EDITORIAL","SURREAL_EDITORIAL","RAW_DOCUMENTARY","AUTHENTIC_IN_USE","CLEAN_FASHION_EDITORIAL"],"type":"string"},"text_approach":{"description":"How much written text may appear in the frame. NEVER is no text at all, TAGLINE_ONLY is one short line, WHEN_ENHANCES is text only where it helps, DESIGNED_AD is a fully designed ad.","enum":["NEVER","TAGLINE_ONLY","WHEN_ENHANCES","DESIGNED_AD"],"type":"string"}},"title":"visual_styles","type":"object"},{"additionalProperties":false,"description":"Which of the shared writing styles the shop's captions are written in. Targets: the shop, so use target_scope all.","properties":{"writing_style_id":{"description":"The id of a writing style from the list of styles available to the shop.","type":"integer"}},"title":"writing_style","type":"object"}],"description":"Only the fields to change, named as in that group. Leave out fields to keep them as they are."},"target_ids":{"description":"With selected: target ids exactly as get_settings returns them (a visual style id, an account id).","items":{"type":"string"},"type":"array"},"target_scope":{"description":"all for a group with one target (the shop) or to change every target; selected to change only the targets in target_ids.","enum":["all","selected"],"type":"string"},"tool":{"description":"Only to change another setting group in the same all-or-nothing set (for example post_frequency beside post_mix). Defaults to the top-level tool.","enum":["audience_profile","brand_identity","brand_kit_presentation","claim_rules","content_topics","enhanced_image_branding","excluded_products","holiday_calendar","instructions","language","link_tracking","music_style","post_frequency","post_mix","post_types","posting_schedule","product_notes","product_post_options","product_queue","product_selection","publishing_account_settings","publishing_link_treatment","review_first","template_presentation","tiktok_posting_options","visual_direction","visual_styles","writing_style"],"type":"string"}},"required":["target_scope","changes"],"type":"object"},"maxItems":16,"type":"array"},"tool":{"description":"The setting group to change. logo, outro, post_type_on_off, billing cannot be changed from chat; naming one returns the web page to change it on.","enum":["audience_profile","brand_identity","brand_kit_presentation","claim_rules","content_topics","enhanced_image_branding","excluded_products","holiday_calendar","instructions","language","link_tracking","music_style","post_frequency","post_mix","post_types","posting_schedule","product_notes","product_post_options","product_queue","product_selection","publishing_account_settings","publishing_link_treatment","review_first","template_presentation","tiktok_posting_options","visual_direction","visual_styles","writing_style","logo","outro","post_type_on_off","billing"],"type":"string"}},"required":["tool","actions"],"type":"object"}⟨19 unchanged words⟩ ":["audience_profile","brand_identity","brand_kit_presentation","claim_rules","content_topics","enhanced_image_branding","excluded_products","holiday_calendar"," ⟨28 unchanged words⟩