# Hermoso MCP server

Agent View of the PolicyLayer registry record for Hermoso: identity, probed posture, risk grade, and all 896 tools classified. HTML page: https://policylayer.com/tools/hermoso

## Facts

- Server id: `https://app.hermoso.ai/mcp`
- Homepage: git+https://github.com/hermoso-ai/hermoso.git
- Registry record: grade D, identity unverified
- Lifecycle: active
- Auth posture: gated
- CORS policy: *
- Rate-limited: no
- Tools: 896
- Tool categories present: Destructive, Execute, Financial, Read, Write
- Tags: hermoso, payments, admin, automation
- Record last modified: 2026-10-05T16:54:25.817Z

## Tools (896)

| Tool | Category | Risk | Record |
| --- | --- | --- | --- |
| `answer_google_business_question` | Destructive | Critical | https://policylayer.com/tools/hermoso/answer-google-business-question.md |
| `apple_ads_change_history` | Destructive | Critical | https://policylayer.com/tools/hermoso/apple-ads-change-history.md |
| `associate_linkedin_conversion_campaigns` | Destructive | Critical | https://policylayer.com/tools/hermoso/associate-linkedin-conversion-campaigns.md |
| `cancel_openai_ads_audience_operation` | Destructive | Critical | https://policylayer.com/tools/hermoso/cancel-openai-ads-audience-operation.md |
| `cancel_scheduled` | Destructive | Critical | https://policylayer.com/tools/hermoso/cancel-scheduled.md |
| `cancel_stripe_subscription` | Destructive | Critical | https://policylayer.com/tools/hermoso/cancel-stripe-subscription.md |
| `clear_sheet_range` | Destructive | Critical | https://policylayer.com/tools/hermoso/clear-sheet-range.md |
| `create_analytics_custom_dimension` | Destructive | Critical | https://policylayer.com/tools/hermoso/create-analytics-custom-dimension.md |
| `create_openai_ads_campaign` | Destructive | Critical | https://policylayer.com/tools/hermoso/create-openai-ads-campaign.md |
| `delete_analytics_key_event` | Destructive | Critical | https://policylayer.com/tools/hermoso/delete-analytics-key-event.md |
| `delete_apple_ads_object` | Destructive | Critical | https://policylayer.com/tools/hermoso/delete-apple-ads-object.md |
| `delete_bluesky_post` | Destructive | Critical | https://policylayer.com/tools/hermoso/delete-bluesky-post.md |
| `delete_brand` | Destructive | Critical | https://policylayer.com/tools/hermoso/delete-brand.md |
| `delete_creator` | Destructive | Critical | https://policylayer.com/tools/hermoso/delete-creator.md |
| `delete_dm_automation` | Destructive | Critical | https://policylayer.com/tools/hermoso/delete-dm-automation.md |
| `delete_drive_file` | Destructive | Critical | https://policylayer.com/tools/hermoso/delete-drive-file.md |
| `delete_google_ads_object` | Destructive | Critical | https://policylayer.com/tools/hermoso/delete-google-ads-object.md |
| `delete_google_business_post` | Destructive | Critical | https://policylayer.com/tools/hermoso/delete-google-business-post.md |
| `delete_instagram_dm_automation` | Destructive | Critical | https://policylayer.com/tools/hermoso/delete-instagram-dm-automation.md |
| `delete_linkedin_ads_object` | Destructive | Critical | https://policylayer.com/tools/hermoso/delete-linkedin-ads-object.md |
| `delete_linkedin_comment` | Destructive | Critical | https://policylayer.com/tools/hermoso/delete-linkedin-comment.md |
| `delete_linkedin_lead_subscription` | Destructive | Critical | https://policylayer.com/tools/hermoso/delete-linkedin-lead-subscription.md |
| `delete_merchant_data_source` | Destructive | Critical | https://policylayer.com/tools/hermoso/delete-merchant-data-source.md |
| `delete_merchant_product` | Destructive | Critical | https://policylayer.com/tools/hermoso/delete-merchant-product.md |
| `delete_messenger_marketing_campaign` | Destructive | Critical | https://policylayer.com/tools/hermoso/delete-messenger-marketing-campaign.md |
| `delete_meta_audience` | Destructive | Critical | https://policylayer.com/tools/hermoso/delete-meta-audience.md |
| `delete_meta_catalog` | Destructive | Critical | https://policylayer.com/tools/hermoso/delete-meta-catalog.md |
| `delete_meta_object` | Destructive | Critical | https://policylayer.com/tools/hermoso/delete-meta-object.md |
| `delete_microsoft_ads_object` | Destructive | Critical | https://policylayer.com/tools/hermoso/delete-microsoft-ads-object.md |
| `delete_microsoft_merchant_product` | Destructive | Critical | https://policylayer.com/tools/hermoso/delete-microsoft-merchant-product.md |
| `delete_onedrive_file` | Destructive | Critical | https://policylayer.com/tools/hermoso/delete-onedrive-file.md |
| `delete_openai_ads_lead_sync` | Destructive | Critical | https://policylayer.com/tools/hermoso/delete-openai-ads-lead-sync.md |
| `delete_openai_ads_object` | Destructive | Critical | https://policylayer.com/tools/hermoso/delete-openai-ads-object.md |
| `delete_openai_ads_spend_window` | Destructive | Critical | https://policylayer.com/tools/hermoso/delete-openai-ads-spend-window.md |
| `delete_pinterest_ads_object` | Destructive | Critical | https://policylayer.com/tools/hermoso/delete-pinterest-ads-object.md |
| `delete_pinterest_board` | Destructive | Critical | https://policylayer.com/tools/hermoso/delete-pinterest-board.md |
| `delete_pinterest_pin` | Destructive | Critical | https://policylayer.com/tools/hermoso/delete-pinterest-pin.md |
| `delete_playbook` | Destructive | Critical | https://policylayer.com/tools/hermoso/delete-playbook.md |
| `delete_reddit_ads_asset` | Destructive | Critical | https://policylayer.com/tools/hermoso/delete-reddit-ads-asset.md |
| `delete_reddit_ads_audience` | Destructive | Critical | https://policylayer.com/tools/hermoso/delete-reddit-ads-audience.md |
| `delete_reddit_ads_object` | Destructive | Critical | https://policylayer.com/tools/hermoso/delete-reddit-ads-object.md |
| `delete_reddit_ads_saved_audience` | Destructive | Critical | https://policylayer.com/tools/hermoso/delete-reddit-ads-saved-audience.md |
| `delete_search_console_site` | Destructive | Critical | https://policylayer.com/tools/hermoso/delete-search-console-site.md |
| `delete_search_console_sitemap` | Destructive | Critical | https://policylayer.com/tools/hermoso/delete-search-console-sitemap.md |
| `delete_skill` | Destructive | Critical | https://policylayer.com/tools/hermoso/delete-skill.md |
| `delete_snapchat_ads_object` | Destructive | Critical | https://policylayer.com/tools/hermoso/delete-snapchat-ads-object.md |
| `delete_telegram_message` | Destructive | Critical | https://policylayer.com/tools/hermoso/delete-telegram-message.md |
| `delete_thread` | Destructive | Critical | https://policylayer.com/tools/hermoso/delete-thread.md |
| `delete_tiktok_ads_audience` | Destructive | Critical | https://policylayer.com/tools/hermoso/delete-tiktok-ads-audience.md |
| `delete_tiktok_ads_comment` | Destructive | Critical | https://policylayer.com/tools/hermoso/delete-tiktok-ads-comment.md |
| `delete_tiktok_ads_object` | Destructive | Critical | https://policylayer.com/tools/hermoso/delete-tiktok-ads-object.md |
| `delete_tiktok_post_ad_authorization` | Destructive | Critical | https://policylayer.com/tools/hermoso/delete-tiktok-post-ad-authorization.md |
| `delete_whatsapp_template` | Destructive | Critical | https://policylayer.com/tools/hermoso/delete-whatsapp-template.md |
| `delete_x_ads_object` | Destructive | Critical | https://policylayer.com/tools/hermoso/delete-x-ads-object.md |
| `delete_x_post` | Destructive | Critical | https://policylayer.com/tools/hermoso/delete-x-post.md |
| `delete_youtube_report_job` | Destructive | Critical | https://policylayer.com/tools/hermoso/delete-youtube-report-job.md |
| `delete_youtube_video` | Destructive | Critical | https://policylayer.com/tools/hermoso/delete-youtube-video.md |
| `dismiss_microsoft_ads_recommendations` | Destructive | Critical | https://policylayer.com/tools/hermoso/dismiss-microsoft-ads-recommendations.md |
| `edit_timeline` | Destructive | Critical | https://policylayer.com/tools/hermoso/edit-timeline.md |
| `forget` | Destructive | Critical | https://policylayer.com/tools/hermoso/forget.md |
| `leave_connector` | Destructive | Critical | https://policylayer.com/tools/hermoso/leave-connector.md |
| `link_tiktok_tto_video` | Destructive | Critical | https://policylayer.com/tools/hermoso/link-tiktok-tto-video.md |
| `manage_bluesky_convo` | Destructive | Critical | https://policylayer.com/tools/hermoso/manage-bluesky-convo.md |
| `meta_catalog_blast_radius` | Destructive | Critical | https://policylayer.com/tools/hermoso/meta-catalog-blast-radius.md |
| `microsoft_ads_recommendations` | Destructive | Critical | https://policylayer.com/tools/hermoso/microsoft-ads-recommendations.md |
| `moderate_meta_comment` | Destructive | Critical | https://policylayer.com/tools/hermoso/moderate-meta-comment.md |
| `moderate_tiktok_ads_comment` | Destructive | Critical | https://policylayer.com/tools/hermoso/moderate-tiktok-ads-comment.md |
| `react_to_bluesky_dm` | Destructive | Critical | https://policylayer.com/tools/hermoso/react-to-bluesky-dm.md |
| `remove_applovin_ads_creative_set` | Destructive | Critical | https://policylayer.com/tools/hermoso/remove-applovin-ads-creative-set.md |
| `remove_bing_webmaster_site` | Destructive | Critical | https://policylayer.com/tools/hermoso/remove-bing-webmaster-site.md |
| `remove_bing_webmaster_sitemap` | Destructive | Critical | https://policylayer.com/tools/hermoso/remove-bing-webmaster-sitemap.md |
| `remove_member` | Destructive | Critical | https://policylayer.com/tools/hermoso/remove-member.md |
| `remove_openai_ads_daily_spend_limit` | Destructive | Critical | https://policylayer.com/tools/hermoso/remove-openai-ads-daily-spend-limit.md |
| `reply_to_google_business_review` | Destructive | Critical | https://policylayer.com/tools/hermoso/reply-to-google-business-review.md |
| `set_tiktok_ads_brand_safety` | Destructive | Critical | https://policylayer.com/tools/hermoso/set-tiktok-ads-brand-safety.md |
| `unlink_google_ads_from_analytics` | Destructive | Critical | https://policylayer.com/tools/hermoso/unlink-google-ads-from-analytics.md |
| `unsubscribe_meta_webhooks` | Destructive | Critical | https://policylayer.com/tools/hermoso/unsubscribe-meta-webhooks.md |
| `update_youtube_channel` | Destructive | Critical | https://policylayer.com/tools/hermoso/update-youtube-channel.md |
| `apple_ads_keyword_suggestions` | Execute | High | https://policylayer.com/tools/hermoso/apple-ads-keyword-suggestions.md |
| `apple_ads_report` | Execute | High | https://policylayer.com/tools/hermoso/apple-ads-report.md |
| `call_tool` | Execute | High | https://policylayer.com/tools/hermoso/call-tool.md |
| `diagnose_posts` | Execute | High | https://policylayer.com/tools/hermoso/diagnose-posts.md |
| `duplicate_scheduled` | Execute | High | https://policylayer.com/tools/hermoso/duplicate-scheduled.md |
| `google_ads_report` | Execute | High | https://policylayer.com/tools/hermoso/google-ads-report.md |
| `hermoso_capabilities` | Execute | High | https://policylayer.com/tools/hermoso/hermoso-capabilities.md |
| `linkedin_page_analytics` | Execute | High | https://policylayer.com/tools/hermoso/linkedin-page-analytics.md |
| `microsoft_ads_keyword_ideas` | Execute | High | https://policylayer.com/tools/hermoso/microsoft-ads-keyword-ideas.md |
| `openai_ads_bulk` | Execute | High | https://policylayer.com/tools/hermoso/openai-ads-bulk.md |
| `pinterest_ads_async_report` | Execute | High | https://policylayer.com/tools/hermoso/pinterest-ads-async-report.md |
| `preview_openai_ads_ad` | Execute | High | https://policylayer.com/tools/hermoso/preview-openai-ads-ad.md |
| `reddit_ads_forecast` | Execute | High | https://policylayer.com/tools/hermoso/reddit-ads-forecast.md |
| `reddit_ads_report` | Execute | High | https://policylayer.com/tools/hermoso/reddit-ads-report.md |
| `request_tiktok_tto_spark_authorization` | Execute | High | https://policylayer.com/tools/hermoso/request-tiktok-tto-spark-authorization.md |
| `run_post_refill` | Execute | High | https://policylayer.com/tools/hermoso/run-post-refill.md |
| `snapchat_ads_report` | Execute | High | https://policylayer.com/tools/hermoso/snapchat-ads-report.md |
| `tiktok_ads_rule_results` | Execute | High | https://policylayer.com/tools/hermoso/tiktok-ads-rule-results.md |
| `trigger_merchant_issue_action` | Execute | High | https://policylayer.com/tools/hermoso/trigger-merchant-issue-action.md |
| `use_brand` | Execute | High | https://policylayer.com/tools/hermoso/use-brand.md |
| `buy_credits` | Financial | Critical | https://policylayer.com/tools/hermoso/buy-credits.md |
| `refund_stripe_charge` | Financial | Critical | https://policylayer.com/tools/hermoso/refund-stripe-charge.md |
| `set_auto_reload` | Financial | Critical | https://policylayer.com/tools/hermoso/set-auto-reload.md |
| `set_google_ads_budget` | Financial | Critical | https://policylayer.com/tools/hermoso/set-google-ads-budget.md |
| `set_meta_campaign_status` | Financial | Critical | https://policylayer.com/tools/hermoso/set-meta-campaign-status.md |
| `upgrade_plan` | Financial | Critical | https://policylayer.com/tools/hermoso/upgrade-plan.md |
| `amplitude_active_users` | Read | Low | https://policylayer.com/tools/hermoso/amplitude-active-users.md |
| `amplitude_chart` | Read | Low | https://policylayer.com/tools/hermoso/amplitude-chart.md |
| `amplitude_funnel` | Read | Low | https://policylayer.com/tools/hermoso/amplitude-funnel.md |
| `amplitude_retention` | Read | Low | https://policylayer.com/tools/hermoso/amplitude-retention.md |
| `amplitude_segmentation` | Read | Low | https://policylayer.com/tools/hermoso/amplitude-segmentation.md |
| `amplitude_user_activity` | Read | Low | https://policylayer.com/tools/hermoso/amplitude-user-activity.md |
| `analytics_realtime` | Read | Low | https://policylayer.com/tools/hermoso/analytics-realtime.md |
| `analytics_report` | Read | Low | https://policylayer.com/tools/hermoso/analytics-report.md |
| `analyze_campaigns` | Read | Low | https://policylayer.com/tools/hermoso/analyze-campaigns.md |
| `analyze_video` | Read | Low | https://policylayer.com/tools/hermoso/analyze-video.md |
| `append_to_doc` | Read | Low | https://policylayer.com/tools/hermoso/append-to-doc.md |
| `append_to_sheet` | Read | Low | https://policylayer.com/tools/hermoso/append-to-sheet.md |
| `apple_ads_impression_share` | Read | Low | https://policylayer.com/tools/hermoso/apple-ads-impression-share.md |
| `apple_ads_search_term_popularity` | Read | Low | https://policylayer.com/tools/hermoso/apple-ads-search-term-popularity.md |
| `backfill_posts` | Read | Low | https://policylayer.com/tools/hermoso/backfill-posts.md |
| `billing_status` | Read | Low | https://policylayer.com/tools/hermoso/billing-status.md |
| `bind_tiktok_ads_rule` | Read | Low | https://policylayer.com/tools/hermoso/bind-tiktok-ads-rule.md |
| `bing_webmaster_crawl` | Read | Low | https://policylayer.com/tools/hermoso/bing-webmaster-crawl.md |
| `bing_webmaster_keywords` | Read | Low | https://policylayer.com/tools/hermoso/bing-webmaster-keywords.md |
| `bing_webmaster_links` | Read | Low | https://policylayer.com/tools/hermoso/bing-webmaster-links.md |
| `bing_webmaster_query_stats` | Read | Low | https://policylayer.com/tools/hermoso/bing-webmaster-query-stats.md |
| `bing_webmaster_submission_quota` | Read | Low | https://policylayer.com/tools/hermoso/bing-webmaster-submission-quota.md |
| `bing_webmaster_traffic` | Read | Low | https://policylayer.com/tools/hermoso/bing-webmaster-traffic.md |
| `bluesky_account` | Read | Low | https://policylayer.com/tools/hermoso/bluesky-account.md |
| `business_google_updated` | Read | Low | https://policylayer.com/tools/hermoso/business-google-updated.md |
| `change_voice` | Read | Low | https://policylayer.com/tools/hermoso/change-voice.md |
| `check_ad_policy` | Read | Low | https://policylayer.com/tools/hermoso/check-ad-policy.md |
| `check_analytics_compatibility` | Read | Low | https://policylayer.com/tools/hermoso/check-analytics-compatibility.md |
| `check_apple_ads_app_eligibility` | Read | Low | https://policylayer.com/tools/hermoso/check-apple-ads-app-eligibility.md |
| `check_tiktok_creator_status` | Read | Low | https://policylayer.com/tools/hermoso/check-tiktok-creator-status.md |
| `clip_video` | Read | Low | https://policylayer.com/tools/hermoso/clip-video.md |
| `clone_static` | Read | Low | https://policylayer.com/tools/hermoso/clone-static.md |
| `clone_video` | Read | Low | https://policylayer.com/tools/hermoso/clone-video.md |
| `competitor_teardown` | Read | Low | https://policylayer.com/tools/hermoso/competitor-teardown.md |
| `dismiss_apple_ads_recommendation` | Read | Low | https://policylayer.com/tools/hermoso/dismiss-apple-ads-recommendation.md |
| `download_tiktok_ads_leads` | Read | Low | https://policylayer.com/tools/hermoso/download-tiktok-ads-leads.md |
| `draft_brand` | Read | Low | https://policylayer.com/tools/hermoso/draft-brand.md |
| `error_detail` | Read | Low | https://policylayer.com/tools/hermoso/error-detail.md |
| `estimate_messenger_marketing_delivery` | Read | Low | https://policylayer.com/tools/hermoso/estimate-messenger-marketing-delivery.md |
| `face_check` | Read | Low | https://policylayer.com/tools/hermoso/face-check.md |
| `fetch_app_screens` | Read | Low | https://policylayer.com/tools/hermoso/fetch-app-screens.md |
| `fetch_asset` | Read | Low | https://policylayer.com/tools/hermoso/fetch-asset.md |
| `fetch_bing_webmaster_url` | Read | Low | https://policylayer.com/tools/hermoso/fetch-bing-webmaster-url.md |
| `fetch_social_data` | Read | Low | https://policylayer.com/tools/hermoso/fetch-social-data.md |
| `find_competitors` | Read | Low | https://policylayer.com/tools/hermoso/find-competitors.md |
| `find_creators` | Read | Low | https://policylayer.com/tools/hermoso/find-creators.md |
| `find_google_ads_locations` | Read | Low | https://policylayer.com/tools/hermoso/find-google-ads-locations.md |
| `find_instagram_marketplace_creators` | Read | Low | https://policylayer.com/tools/hermoso/find-instagram-marketplace-creators.md |
| `find_meta_audiences` | Read | Low | https://policylayer.com/tools/hermoso/find-meta-audiences.md |
| `find_sound` | Read | Low | https://policylayer.com/tools/hermoso/find-sound.md |
| `find_tools` | Read | Low | https://policylayer.com/tools/hermoso/find-tools.md |
| `finish_draft` | Read | Low | https://policylayer.com/tools/hermoso/finish-draft.md |
| `finish_video` | Read | Low | https://policylayer.com/tools/hermoso/finish-video.md |
| `format_sheet` | Read | Low | https://policylayer.com/tools/hermoso/format-sheet.md |
| `get_analytics_stream_setup` | Read | Low | https://policylayer.com/tools/hermoso/get-analytics-stream-setup.md |
| `get_apple_ads_ad_account` | Read | Low | https://policylayer.com/tools/hermoso/get-apple-ads-ad-account.md |
| `get_brand` | Read | Low | https://policylayer.com/tools/hermoso/get-brand.md |
| `get_business_location` | Read | Low | https://policylayer.com/tools/hermoso/get-business-location.md |
| `get_drive_file` | Read | Low | https://policylayer.com/tools/hermoso/get-drive-file.md |
| `get_job` | Read | Low | https://policylayer.com/tools/hermoso/get-job.md |
| `get_linkedin_lead` | Read | Low | https://policylayer.com/tools/hermoso/get-linkedin-lead.md |
| `get_messenger_marketing_message_status` | Read | Low | https://policylayer.com/tools/hermoso/get-messenger-marketing-message-status.md |
| `get_meta_ad_account` | Read | Low | https://policylayer.com/tools/hermoso/get-meta-ad-account.md |
| `get_onedrive_file` | Read | Low | https://policylayer.com/tools/hermoso/get-onedrive-file.md |
| `get_openai_ads_audience` | Read | Low | https://policylayer.com/tools/hermoso/get-openai-ads-audience.md |
| `get_openai_ads_audience_operation` | Read | Low | https://policylayer.com/tools/hermoso/get-openai-ads-audience-operation.md |
| `get_openai_ads_business_agent` | Read | Low | https://policylayer.com/tools/hermoso/get-openai-ads-business-agent.md |
| `get_openai_ads_feed_settings` | Read | Low | https://policylayer.com/tools/hermoso/get-openai-ads-feed-settings.md |
| `get_openai_ads_feed_sftp` | Read | Low | https://policylayer.com/tools/hermoso/get-openai-ads-feed-sftp.md |
| `get_openai_ads_landing_page_crawl` | Read | Low | https://policylayer.com/tools/hermoso/get-openai-ads-landing-page-crawl.md |
| `get_openai_ads_lead_form` | Read | Low | https://policylayer.com/tools/hermoso/get-openai-ads-lead-form.md |
| `get_post_refill` | Read | Low | https://policylayer.com/tools/hermoso/get-post-refill.md |
| `get_reddit_ads_asset` | Read | Low | https://policylayer.com/tools/hermoso/get-reddit-ads-asset.md |
| `get_reddit_ads_asset_uploads` | Read | Low | https://policylayer.com/tools/hermoso/get-reddit-ads-asset-uploads.md |
| `get_reddit_ads_max_template` | Read | Low | https://policylayer.com/tools/hermoso/get-reddit-ads-max-template.md |
| `get_settings` | Read | Low | https://policylayer.com/tools/hermoso/get-settings.md |
| `get_skill` | Read | Low | https://policylayer.com/tools/hermoso/get-skill.md |
| `get_tiktok_ads_brand_safety` | Read | Low | https://policylayer.com/tools/hermoso/get-tiktok-ads-brand-safety.md |
| `get_tiktok_mention` | Read | Low | https://policylayer.com/tools/hermoso/get-tiktok-mention.md |
| `get_tiktok_post_ad_authorization` | Read | Low | https://policylayer.com/tools/hermoso/get-tiktok-post-ad-authorization.md |
| `get_tiktok_tto_spark_authorization` | Read | Low | https://policylayer.com/tools/hermoso/get-tiktok-tto-spark-authorization.md |
| `google_ads_change_history` | Read | Low | https://policylayer.com/tools/hermoso/google-ads-change-history.md |
| `google_ads_keyword_ideas` | Read | Low | https://policylayer.com/tools/hermoso/google-ads-keyword-ideas.md |
| `google_business_insights` | Read | Low | https://policylayer.com/tools/hermoso/google-business-insights.md |
| `google_business_search_keywords` | Read | Low | https://policylayer.com/tools/hermoso/google-business-search-keywords.md |
| `headline_variants` | Read | Low | https://policylayer.com/tools/hermoso/headline-variants.md |
| `hermoso_credits` | Read | Low | https://policylayer.com/tools/hermoso/hermoso-credits.md |
| `hook_variants` | Read | Low | https://policylayer.com/tools/hermoso/hook-variants.md |
| `hubspot_deals_report` | Read | Low | https://policylayer.com/tools/hermoso/hubspot-deals-report.md |
| `instagram_collaborators` | Read | Low | https://policylayer.com/tools/hermoso/instagram-collaborators.md |
| `instagram_insights` | Read | Low | https://policylayer.com/tools/hermoso/instagram-insights.md |
| `instagram_marketplace_creator` | Read | Low | https://policylayer.com/tools/hermoso/instagram-marketplace-creator.md |
| `instagram_profile` | Read | Low | https://policylayer.com/tools/hermoso/instagram-profile.md |
| `like_instagram` | Read | Low | https://policylayer.com/tools/hermoso/like-instagram.md |
| `linkedin_ads_report` | Read | Low | https://policylayer.com/tools/hermoso/linkedin-ads-report.md |
| `linkedin_audience_count` | Read | Low | https://policylayer.com/tools/hermoso/linkedin-audience-count.md |
| `linkedin_bid_pricing` | Read | Low | https://policylayer.com/tools/hermoso/linkedin-bid-pricing.md |
| `list_amplitude_annotations` | Read | Low | https://policylayer.com/tools/hermoso/list-amplitude-annotations.md |
| `list_amplitude_events` | Read | Low | https://policylayer.com/tools/hermoso/list-amplitude-events.md |
| `list_analytics_audiences` | Read | Low | https://policylayer.com/tools/hermoso/list-analytics-audiences.md |
| `list_analytics_data_streams` | Read | Low | https://policylayer.com/tools/hermoso/list-analytics-data-streams.md |
| `list_analytics_definitions` | Read | Low | https://policylayer.com/tools/hermoso/list-analytics-definitions.md |
| `list_analytics_google_ads_links` | Read | Low | https://policylayer.com/tools/hermoso/list-analytics-google-ads-links.md |
| `list_analytics_metadata` | Read | Low | https://policylayer.com/tools/hermoso/list-analytics-metadata.md |
| `list_analytics_properties` | Read | Low | https://policylayer.com/tools/hermoso/list-analytics-properties.md |
| `list_apple_ads_ad_groups` | Read | Low | https://policylayer.com/tools/hermoso/list-apple-ads-ad-groups.md |
| `list_apple_ads_ads` | Read | Low | https://policylayer.com/tools/hermoso/list-apple-ads-ads.md |
| `list_apple_ads_advertiser_resources` | Read | Low | https://policylayer.com/tools/hermoso/list-apple-ads-advertiser-resources.md |
| `list_apple_ads_assets` | Read | Low | https://policylayer.com/tools/hermoso/list-apple-ads-assets.md |
| `list_apple_ads_brands` | Read | Low | https://policylayer.com/tools/hermoso/list-apple-ads-brands.md |
| `list_apple_ads_budget_orders` | Read | Low | https://policylayer.com/tools/hermoso/list-apple-ads-budget-orders.md |
| `list_apple_ads_campaigns` | Read | Low | https://policylayer.com/tools/hermoso/list-apple-ads-campaigns.md |
| `list_apple_ads_creatives` | Read | Low | https://policylayer.com/tools/hermoso/list-apple-ads-creatives.md |
| `list_apple_ads_keywords` | Read | Low | https://policylayer.com/tools/hermoso/list-apple-ads-keywords.md |
| `list_apple_ads_location_groups` | Read | Low | https://policylayer.com/tools/hermoso/list-apple-ads-location-groups.md |
| `list_apple_ads_locations` | Read | Low | https://policylayer.com/tools/hermoso/list-apple-ads-locations.md |
| `list_apple_ads_orgs` | Read | Low | https://policylayer.com/tools/hermoso/list-apple-ads-orgs.md |
| `list_apple_ads_product_pages` | Read | Low | https://policylayer.com/tools/hermoso/list-apple-ads-product-pages.md |
| `list_apple_ads_recommendations` | Read | Low | https://policylayer.com/tools/hermoso/list-apple-ads-recommendations.md |
| `list_apple_ads_supported_languages` | Read | Low | https://policylayer.com/tools/hermoso/list-apple-ads-supported-languages.md |
| `list_applovin_ads_assets` | Read | Low | https://policylayer.com/tools/hermoso/list-applovin-ads-assets.md |
| `list_applovin_ads_campaigns` | Read | Low | https://policylayer.com/tools/hermoso/list-applovin-ads-campaigns.md |
| `list_applovin_ads_creative_sets` | Read | Low | https://policylayer.com/tools/hermoso/list-applovin-ads-creative-sets.md |
| `list_bing_webmaster_fetched_urls` | Read | Low | https://policylayer.com/tools/hermoso/list-bing-webmaster-fetched-urls.md |
| `list_bing_webmaster_sitemaps` | Read | Low | https://policylayer.com/tools/hermoso/list-bing-webmaster-sitemaps.md |
| `list_bing_webmaster_sites` | Read | Low | https://policylayer.com/tools/hermoso/list-bing-webmaster-sites.md |
| `list_bluesky_convos` | Read | Low | https://policylayer.com/tools/hermoso/list-bluesky-convos.md |
| `list_bluesky_posts` | Read | Low | https://policylayer.com/tools/hermoso/list-bluesky-posts.md |
| `list_brands` | Read | Low | https://policylayer.com/tools/hermoso/list-brands.md |
| `list_business_attributes` | Read | Low | https://policylayer.com/tools/hermoso/list-business-attributes.md |
| `list_business_categories` | Read | Low | https://policylayer.com/tools/hermoso/list-business-categories.md |
| `list_business_locations` | Read | Low | https://policylayer.com/tools/hermoso/list-business-locations.md |
| `list_connector_accounts` | Read | Low | https://policylayer.com/tools/hermoso/list-connector-accounts.md |
| `list_connectors` | Read | Low | https://policylayer.com/tools/hermoso/list-connectors.md |
| `list_creators` | Read | Low | https://policylayer.com/tools/hermoso/list-creators.md |
| `list_dm_automations` | Read | Low | https://policylayer.com/tools/hermoso/list-dm-automations.md |
| `list_drive_files` | Read | Low | https://policylayer.com/tools/hermoso/list-drive-files.md |
| `list_errors` | Read | Low | https://policylayer.com/tools/hermoso/list-errors.md |
| `list_google_ads_campaigns` | Read | Low | https://policylayer.com/tools/hermoso/list-google-ads-campaigns.md |
| `list_google_ads_conversion_actions` | Read | Low | https://policylayer.com/tools/hermoso/list-google-ads-conversion-actions.md |
| `list_google_business_posts` | Read | Low | https://policylayer.com/tools/hermoso/list-google-business-posts.md |
| `list_google_business_questions` | Read | Low | https://policylayer.com/tools/hermoso/list-google-business-questions.md |
| `list_google_business_reviews` | Read | Low | https://policylayer.com/tools/hermoso/list-google-business-reviews.md |
| `list_hooks` | Read | Low | https://policylayer.com/tools/hermoso/list-hooks.md |
| `list_hubspot_contacts` | Read | Low | https://policylayer.com/tools/hermoso/list-hubspot-contacts.md |
| `list_inbox` | Read | Low | https://policylayer.com/tools/hermoso/list-inbox.md |
| `list_instagram_collab_invites` | Read | Low | https://policylayer.com/tools/hermoso/list-instagram-collab-invites.md |
| `list_instagram_collab_media` | Read | Low | https://policylayer.com/tools/hermoso/list-instagram-collab-media.md |
| `list_instagram_dm_automations` | Read | Low | https://policylayer.com/tools/hermoso/list-instagram-dm-automations.md |
| `list_instagram_marketplace_audiences` | Read | Low | https://policylayer.com/tools/hermoso/list-instagram-marketplace-audiences.md |
| `list_instagram_media` | Read | Low | https://policylayer.com/tools/hermoso/list-instagram-media.md |
| `list_instagram_shopping_catalogs` | Read | Low | https://policylayer.com/tools/hermoso/list-instagram-shopping-catalogs.md |
| `list_jobs` | Read | Low | https://policylayer.com/tools/hermoso/list-jobs.md |
| `list_library` | Read | Low | https://policylayer.com/tools/hermoso/list-library.md |
| `list_linkedin_ads_campaigns` | Read | Low | https://policylayer.com/tools/hermoso/list-linkedin-ads-campaigns.md |
| `list_linkedin_comments` | Read | Low | https://policylayer.com/tools/hermoso/list-linkedin-comments.md |
| `list_linkedin_conversion_rules` | Read | Low | https://policylayer.com/tools/hermoso/list-linkedin-conversion-rules.md |
| `list_linkedin_events` | Read | Low | https://policylayer.com/tools/hermoso/list-linkedin-events.md |
| `list_linkedin_lead_events` | Read | Low | https://policylayer.com/tools/hermoso/list-linkedin-lead-events.md |
| `list_linkedin_lead_forms` | Read | Low | https://policylayer.com/tools/hermoso/list-linkedin-lead-forms.md |
| `list_linkedin_lead_subscriptions` | Read | Low | https://policylayer.com/tools/hermoso/list-linkedin-lead-subscriptions.md |
| `list_linkedin_leads` | Read | Low | https://policylayer.com/tools/hermoso/list-linkedin-leads.md |
| `list_linkedin_pages` | Read | Low | https://policylayer.com/tools/hermoso/list-linkedin-pages.md |
| `list_memory` | Read | Low | https://policylayer.com/tools/hermoso/list-memory.md |
| `list_merchant_accounts` | Read | Low | https://policylayer.com/tools/hermoso/list-merchant-accounts.md |
| `list_merchant_data_sources` | Read | Low | https://policylayer.com/tools/hermoso/list-merchant-data-sources.md |
| `list_merchant_inventory` | Read | Low | https://policylayer.com/tools/hermoso/list-merchant-inventory.md |
| `list_merchant_issues` | Read | Low | https://policylayer.com/tools/hermoso/list-merchant-issues.md |
| `list_merchant_products` | Read | Low | https://policylayer.com/tools/hermoso/list-merchant-products.md |
| `list_merchant_promotions` | Read | Low | https://policylayer.com/tools/hermoso/list-merchant-promotions.md |
| `list_messenger_marketing_campaigns` | Read | Low | https://policylayer.com/tools/hermoso/list-messenger-marketing-campaigns.md |
| `list_messenger_subscribers` | Read | Low | https://policylayer.com/tools/hermoso/list-messenger-subscribers.md |
| `list_meta_ads` | Read | Low | https://policylayer.com/tools/hermoso/list-meta-ads.md |
| `list_meta_audiences` | Read | Low | https://policylayer.com/tools/hermoso/list-meta-audiences.md |
| `list_meta_catalog_products` | Read | Low | https://policylayer.com/tools/hermoso/list-meta-catalog-products.md |
| `list_meta_catalogs` | Read | Low | https://policylayer.com/tools/hermoso/list-meta-catalogs.md |
| `list_meta_comments` | Read | Low | https://policylayer.com/tools/hermoso/list-meta-comments.md |
| `list_meta_conversations` | Read | Low | https://policylayer.com/tools/hermoso/list-meta-conversations.md |
| `list_meta_lead_forms` | Read | Low | https://policylayer.com/tools/hermoso/list-meta-lead-forms.md |
| `list_meta_pages` | Read | Low | https://policylayer.com/tools/hermoso/list-meta-pages.md |
| `list_meta_partnership_creators` | Read | Low | https://policylayer.com/tools/hermoso/list-meta-partnership-creators.md |
| `list_meta_pixels` | Read | Low | https://policylayer.com/tools/hermoso/list-meta-pixels.md |
| `list_meta_posts` | Read | Low | https://policylayer.com/tools/hermoso/list-meta-posts.md |
| `list_meta_product_sets` | Read | Low | https://policylayer.com/tools/hermoso/list-meta-product-sets.md |
| `list_meta_webhook_events` | Read | Low | https://policylayer.com/tools/hermoso/list-meta-webhook-events.md |
| `list_microsoft_ads_audiences` | Read | Low | https://policylayer.com/tools/hermoso/list-microsoft-ads-audiences.md |
| `list_microsoft_ads_campaigns` | Read | Low | https://policylayer.com/tools/hermoso/list-microsoft-ads-campaigns.md |
| `list_microsoft_ads_conversion_goals` | Read | Low | https://policylayer.com/tools/hermoso/list-microsoft-ads-conversion-goals.md |
| `list_microsoft_ads_profile_targeting` | Read | Low | https://policylayer.com/tools/hermoso/list-microsoft-ads-profile-targeting.md |
| `list_microsoft_merchant_catalogs` | Read | Low | https://policylayer.com/tools/hermoso/list-microsoft-merchant-catalogs.md |
| `list_microsoft_merchant_issues` | Read | Low | https://policylayer.com/tools/hermoso/list-microsoft-merchant-issues.md |
| `list_microsoft_merchant_products` | Read | Low | https://policylayer.com/tools/hermoso/list-microsoft-merchant-products.md |
| `list_microsoft_merchant_stores` | Read | Low | https://policylayer.com/tools/hermoso/list-microsoft-merchant-stores.md |
| `list_mixpanel_cohorts` | Read | Low | https://policylayer.com/tools/hermoso/list-mixpanel-cohorts.md |
| `list_mixpanel_events` | Read | Low | https://policylayer.com/tools/hermoso/list-mixpanel-events.md |
| `list_onedrive_files` | Read | Low | https://policylayer.com/tools/hermoso/list-onedrive-files.md |
| `list_openai_ads_audience_operations` | Read | Low | https://policylayer.com/tools/hermoso/list-openai-ads-audience-operations.md |
| `list_openai_ads_audiences` | Read | Low | https://policylayer.com/tools/hermoso/list-openai-ads-audiences.md |
| `list_openai_ads_audit_logs` | Read | Low | https://policylayer.com/tools/hermoso/list-openai-ads-audit-logs.md |
| `list_openai_ads_business_agent_tools` | Read | Low | https://policylayer.com/tools/hermoso/list-openai-ads-business-agent-tools.md |
| `list_openai_ads_business_agents` | Read | Low | https://policylayer.com/tools/hermoso/list-openai-ads-business-agents.md |
| `list_openai_ads_campaigns` | Read | Low | https://policylayer.com/tools/hermoso/list-openai-ads-campaigns.md |
| `list_openai_ads_conversion_events` | Read | Low | https://policylayer.com/tools/hermoso/list-openai-ads-conversion-events.md |
| `list_openai_ads_feed_uploads` | Read | Low | https://policylayer.com/tools/hermoso/list-openai-ads-feed-uploads.md |
| `list_openai_ads_feeds` | Read | Low | https://policylayer.com/tools/hermoso/list-openai-ads-feeds.md |
| `list_openai_ads_lead_forms` | Read | Low | https://policylayer.com/tools/hermoso/list-openai-ads-lead-forms.md |
| `list_openai_ads_lead_sync` | Read | Low | https://policylayer.com/tools/hermoso/list-openai-ads-lead-sync.md |
| `list_openai_ads_spend_windows` | Read | Low | https://policylayer.com/tools/hermoso/list-openai-ads-spend-windows.md |
| `list_pinterest_ads_campaigns` | Read | Low | https://policylayer.com/tools/hermoso/list-pinterest-ads-campaigns.md |
| `list_pinterest_boards` | Read | Low | https://policylayer.com/tools/hermoso/list-pinterest-boards.md |
| `list_pinterest_pins` | Read | Low | https://policylayer.com/tools/hermoso/list-pinterest-pins.md |
| `list_playbooks` | Read | Low | https://policylayer.com/tools/hermoso/list-playbooks.md |
| `list_posthog_annotations` | Read | Low | https://policylayer.com/tools/hermoso/list-posthog-annotations.md |
| `list_posthog_projects` | Read | Low | https://policylayer.com/tools/hermoso/list-posthog-projects.md |
| `list_posthog_session_recordings` | Read | Low | https://policylayer.com/tools/hermoso/list-posthog-session-recordings.md |
| `list_product_photos` | Read | Low | https://policylayer.com/tools/hermoso/list-product-photos.md |
| `list_published_posts` | Read | Low | https://policylayer.com/tools/hermoso/list-published-posts.md |
| `list_reddit_ads_assets` | Read | Low | https://policylayer.com/tools/hermoso/list-reddit-ads-assets.md |
| `list_reddit_ads_audiences` | Read | Low | https://policylayer.com/tools/hermoso/list-reddit-ads-audiences.md |
| `list_reddit_ads_campaigns` | Read | Low | https://policylayer.com/tools/hermoso/list-reddit-ads-campaigns.md |
| `list_reddit_ads_lead_forms` | Read | Low | https://policylayer.com/tools/hermoso/list-reddit-ads-lead-forms.md |
| `list_reddit_ads_pixels` | Read | Low | https://policylayer.com/tools/hermoso/list-reddit-ads-pixels.md |
| `list_reddit_ads_posts` | Read | Low | https://policylayer.com/tools/hermoso/list-reddit-ads-posts.md |
| `list_reddit_ads_profiles` | Read | Low | https://policylayer.com/tools/hermoso/list-reddit-ads-profiles.md |
| `list_reddit_ads_saved_audiences` | Read | Low | https://policylayer.com/tools/hermoso/list-reddit-ads-saved-audiences.md |
| `list_scheduled` | Read | Low | https://policylayer.com/tools/hermoso/list-scheduled.md |
| `list_search_console_sitemaps` | Read | Low | https://policylayer.com/tools/hermoso/list-search-console-sitemaps.md |
| `list_search_console_sites` | Read | Low | https://policylayer.com/tools/hermoso/list-search-console-sites.md |
| `list_sheet_tabs` | Read | Low | https://policylayer.com/tools/hermoso/list-sheet-tabs.md |
| `list_shopify_products` | Read | Low | https://policylayer.com/tools/hermoso/list-shopify-products.md |
| `list_skills` | Read | Low | https://policylayer.com/tools/hermoso/list-skills.md |
| `list_snapchat_ads_accounts` | Read | Low | https://policylayer.com/tools/hermoso/list-snapchat-ads-accounts.md |
| `list_snapchat_ads_campaigns` | Read | Low | https://policylayer.com/tools/hermoso/list-snapchat-ads-campaigns.md |
| `list_snapchat_ads_profiles` | Read | Low | https://policylayer.com/tools/hermoso/list-snapchat-ads-profiles.md |
| `list_stripe_charges` | Read | Low | https://policylayer.com/tools/hermoso/list-stripe-charges.md |
| `list_stripe_coupons` | Read | Low | https://policylayer.com/tools/hermoso/list-stripe-coupons.md |
| `list_stripe_customers` | Read | Low | https://policylayer.com/tools/hermoso/list-stripe-customers.md |
| `list_stripe_invoices` | Read | Low | https://policylayer.com/tools/hermoso/list-stripe-invoices.md |
| `list_stripe_products` | Read | Low | https://policylayer.com/tools/hermoso/list-stripe-products.md |
| `list_stripe_refunds` | Read | Low | https://policylayer.com/tools/hermoso/list-stripe-refunds.md |
| `list_stripe_subscriptions` | Read | Low | https://policylayer.com/tools/hermoso/list-stripe-subscriptions.md |
| `list_swipefile` | Read | Low | https://policylayer.com/tools/hermoso/list-swipefile.md |
| `list_tag_manager_containers` | Read | Low | https://policylayer.com/tools/hermoso/list-tag-manager-containers.md |
| `list_tag_manager_tags` | Read | Low | https://policylayer.com/tools/hermoso/list-tag-manager-tags.md |
| `list_tag_manager_versions` | Read | Low | https://policylayer.com/tools/hermoso/list-tag-manager-versions.md |
| `list_team` | Read | Low | https://policylayer.com/tools/hermoso/list-team.md |
| `list_telegram_chats` | Read | Low | https://policylayer.com/tools/hermoso/list-telegram-chats.md |
| `list_telegram_dms` | Read | Low | https://policylayer.com/tools/hermoso/list-telegram-dms.md |
| `list_templates` | Read | Low | https://policylayer.com/tools/hermoso/list-templates.md |
| `list_threads_mentions` | Read | Low | https://policylayer.com/tools/hermoso/list-threads-mentions.md |
| `list_threads_posts` | Read | Low | https://policylayer.com/tools/hermoso/list-threads-posts.md |
| `list_threads_profile_posts` | Read | Low | https://policylayer.com/tools/hermoso/list-threads-profile-posts.md |
| `list_threads_replies` | Read | Low | https://policylayer.com/tools/hermoso/list-threads-replies.md |
| `list_tiktok_ads_accounts` | Read | Low | https://policylayer.com/tools/hermoso/list-tiktok-ads-accounts.md |
| `list_tiktok_ads_app_events` | Read | Low | https://policylayer.com/tools/hermoso/list-tiktok-ads-app-events.md |
| `list_tiktok_ads_apps` | Read | Low | https://policylayer.com/tools/hermoso/list-tiktok-ads-apps.md |
| `list_tiktok_ads_audiences` | Read | Low | https://policylayer.com/tools/hermoso/list-tiktok-ads-audiences.md |
| `list_tiktok_ads_blocked_words` | Read | Low | https://policylayer.com/tools/hermoso/list-tiktok-ads-blocked-words.md |
| `list_tiktok_ads_business_centers` | Read | Low | https://policylayer.com/tools/hermoso/list-tiktok-ads-business-centers.md |
| `list_tiktok_ads_campaigns` | Read | Low | https://policylayer.com/tools/hermoso/list-tiktok-ads-campaigns.md |
| `list_tiktok_ads_catalog_products` | Read | Low | https://policylayer.com/tools/hermoso/list-tiktok-ads-catalog-products.md |
| `list_tiktok_ads_catalog_sets` | Read | Low | https://policylayer.com/tools/hermoso/list-tiktok-ads-catalog-sets.md |
| `list_tiktok_ads_catalogs` | Read | Low | https://policylayer.com/tools/hermoso/list-tiktok-ads-catalogs.md |
| `list_tiktok_ads_comments` | Read | Low | https://policylayer.com/tools/hermoso/list-tiktok-ads-comments.md |
| `list_tiktok_ads_crm_event_sets` | Read | Low | https://policylayer.com/tools/hermoso/list-tiktok-ads-crm-event-sets.md |
| `list_tiktok_ads_custom_conversions` | Read | Low | https://policylayer.com/tools/hermoso/list-tiktok-ads-custom-conversions.md |
| `list_tiktok_ads_identities` | Read | Low | https://policylayer.com/tools/hermoso/list-tiktok-ads-identities.md |
| `list_tiktok_ads_identity_posts` | Read | Low | https://policylayer.com/tools/hermoso/list-tiktok-ads-identity-posts.md |
| `list_tiktok_ads_lead_fields` | Read | Low | https://policylayer.com/tools/hermoso/list-tiktok-ads-lead-fields.md |
| `list_tiktok_ads_lead_forms` | Read | Low | https://policylayer.com/tools/hermoso/list-tiktok-ads-lead-forms.md |
| `list_tiktok_ads_offline_event_sets` | Read | Low | https://policylayer.com/tools/hermoso/list-tiktok-ads-offline-event-sets.md |
| `list_tiktok_ads_payment_portfolio_links` | Read | Low | https://policylayer.com/tools/hermoso/list-tiktok-ads-payment-portfolio-links.md |
| `list_tiktok_ads_payment_portfolios` | Read | Low | https://policylayer.com/tools/hermoso/list-tiktok-ads-payment-portfolios.md |
| `list_tiktok_ads_pixels` | Read | Low | https://policylayer.com/tools/hermoso/list-tiktok-ads-pixels.md |
| `list_tiktok_ads_rules` | Read | Low | https://policylayer.com/tools/hermoso/list-tiktok-ads-rules.md |
| `list_tiktok_ads_spark_posts` | Read | Low | https://policylayer.com/tools/hermoso/list-tiktok-ads-spark-posts.md |
| `list_tiktok_ads_store_products` | Read | Low | https://policylayer.com/tools/hermoso/list-tiktok-ads-store-products.md |
| `list_tiktok_ads_stores` | Read | Low | https://policylayer.com/tools/hermoso/list-tiktok-ads-stores.md |
| `list_tiktok_ads_verification_documents` | Read | Low | https://policylayer.com/tools/hermoso/list-tiktok-ads-verification-documents.md |
| `list_tiktok_brand_hashtag_posts` | Read | Low | https://policylayer.com/tools/hermoso/list-tiktok-brand-hashtag-posts.md |
| `list_tiktok_brand_hashtags` | Read | Low | https://policylayer.com/tools/hermoso/list-tiktok-brand-hashtags.md |
| `list_tiktok_comment_replies` | Read | Low | https://policylayer.com/tools/hermoso/list-tiktok-comment-replies.md |
| `list_tiktok_comments` | Read | Low | https://policylayer.com/tools/hermoso/list-tiktok-comments.md |
| `list_tiktok_creator_labels` | Read | Low | https://policylayer.com/tools/hermoso/list-tiktok-creator-labels.md |
| `list_tiktok_mention_comments` | Read | Low | https://policylayer.com/tools/hermoso/list-tiktok-mention-comments.md |
| `list_tiktok_mentions` | Read | Low | https://policylayer.com/tools/hermoso/list-tiktok-mentions.md |
| `list_tiktok_smart_campaigns` | Read | Low | https://policylayer.com/tools/hermoso/list-tiktok-smart-campaigns.md |
| `list_tiktok_tto_accounts` | Read | Low | https://policylayer.com/tools/hermoso/list-tiktok-tto-accounts.md |
| `list_tiktok_tto_brand_profiles` | Read | Low | https://policylayer.com/tools/hermoso/list-tiktok-tto-brand-profiles.md |
| `list_tiktok_tto_campaigns` | Read | Low | https://policylayer.com/tools/hermoso/list-tiktok-tto-campaigns.md |
| `list_tiktok_tto_link_requests` | Read | Low | https://policylayer.com/tools/hermoso/list-tiktok-tto-link-requests.md |
| `list_tiktok_videos` | Read | Low | https://policylayer.com/tools/hermoso/list-tiktok-videos.md |
| `list_watch_findings` | Read | Low | https://policylayer.com/tools/hermoso/list-watch-findings.md |
| `list_whatsapp_accounts` | Read | Low | https://policylayer.com/tools/hermoso/list-whatsapp-accounts.md |
| `list_whatsapp_templates` | Read | Low | https://policylayer.com/tools/hermoso/list-whatsapp-templates.md |
| `list_x_ads_accounts` | Read | Low | https://policylayer.com/tools/hermoso/list-x-ads-accounts.md |
| `list_x_ads_campaigns` | Read | Low | https://policylayer.com/tools/hermoso/list-x-ads-campaigns.md |
| `list_x_ads_funding_instruments` | Read | Low | https://policylayer.com/tools/hermoso/list-x-ads-funding-instruments.md |
| `list_x_ads_line_items` | Read | Low | https://policylayer.com/tools/hermoso/list-x-ads-line-items.md |
| `list_x_ads_promoted_tweets` | Read | Low | https://policylayer.com/tools/hermoso/list-x-ads-promoted-tweets.md |
| `list_x_ads_targeting` | Read | Low | https://policylayer.com/tools/hermoso/list-x-ads-targeting.md |
| `list_x_blocks` | Read | Low | https://policylayer.com/tools/hermoso/list-x-blocks.md |
| `list_x_broadcasts` | Read | Low | https://policylayer.com/tools/hermoso/list-x-broadcasts.md |
| `list_x_chats` | Read | Low | https://policylayer.com/tools/hermoso/list-x-chats.md |
| `list_x_dms` | Read | Low | https://policylayer.com/tools/hermoso/list-x-dms.md |
| `list_youtube_captions` | Read | Low | https://policylayer.com/tools/hermoso/list-youtube-captions.md |
| `list_youtube_categories` | Read | Low | https://policylayer.com/tools/hermoso/list-youtube-categories.md |
| `list_youtube_comments` | Read | Low | https://policylayer.com/tools/hermoso/list-youtube-comments.md |
| `list_youtube_playlists` | Read | Low | https://policylayer.com/tools/hermoso/list-youtube-playlists.md |
| `list_youtube_report_jobs` | Read | Low | https://policylayer.com/tools/hermoso/list-youtube-report-jobs.md |
| `list_youtube_video_stats` | Read | Low | https://policylayer.com/tools/hermoso/list-youtube-video-stats.md |
| `list_youtube_videos` | Read | Low | https://policylayer.com/tools/hermoso/list-youtube-videos.md |
| `localize_ad` | Read | Low | https://policylayer.com/tools/hermoso/localize-ad.md |
| `make_explainer` | Read | Low | https://policylayer.com/tools/hermoso/make-explainer.md |
| `make_template_ad` | Read | Low | https://policylayer.com/tools/hermoso/make-template-ad.md |
| `make_thumbnail` | Read | Low | https://policylayer.com/tools/hermoso/make-thumbnail.md |
| `merchant_account_status` | Read | Low | https://policylayer.com/tools/hermoso/merchant-account-status.md |
| `merchant_quota` | Read | Low | https://policylayer.com/tools/hermoso/merchant-quota.md |
| `merchant_report` | Read | Low | https://policylayer.com/tools/hermoso/merchant-report.md |
| `meta_webhook_status` | Read | Low | https://policylayer.com/tools/hermoso/meta-webhook-status.md |
| `microsoft_ads_auction_insights` | Read | Low | https://policylayer.com/tools/hermoso/microsoft-ads-auction-insights.md |
| `microsoft_ads_budget_opportunities` | Read | Low | https://policylayer.com/tools/hermoso/microsoft-ads-budget-opportunities.md |
| `microsoft_ads_bulk_download` | Read | Low | https://policylayer.com/tools/hermoso/microsoft-ads-bulk-download.md |
| `microsoft_ads_geo_search` | Read | Low | https://policylayer.com/tools/hermoso/microsoft-ads-geo-search.md |
| `microsoft_ads_report` | Read | Low | https://policylayer.com/tools/hermoso/microsoft-ads-report.md |
| `mine_angles` | Read | Low | https://policylayer.com/tools/hermoso/mine-angles.md |
| `mixpanel_funnel` | Read | Low | https://policylayer.com/tools/hermoso/mixpanel-funnel.md |
| `mixpanel_insights` | Read | Low | https://policylayer.com/tools/hermoso/mixpanel-insights.md |
| `mixpanel_profiles` | Read | Low | https://policylayer.com/tools/hermoso/mixpanel-profiles.md |
| `mixpanel_retention` | Read | Low | https://policylayer.com/tools/hermoso/mixpanel-retention.md |
| `mixpanel_segmentation` | Read | Low | https://policylayer.com/tools/hermoso/mixpanel-segmentation.md |
| `moderate_x_broadcast` | Read | Low | https://policylayer.com/tools/hermoso/moderate-x-broadcast.md |
| `openai_ads_bulk_job` | Read | Low | https://policylayer.com/tools/hermoso/openai-ads-bulk-job.md |
| `openai_ads_geo_search` | Read | Low | https://policylayer.com/tools/hermoso/openai-ads-geo-search.md |
| `openai_ads_report` | Read | Low | https://policylayer.com/tools/hermoso/openai-ads-report.md |
| `pinterest_ads_report` | Read | Low | https://policylayer.com/tools/hermoso/pinterest-ads-report.md |
| `pinterest_analytics` | Read | Low | https://policylayer.com/tools/hermoso/pinterest-analytics.md |
| `pinterest_audience_insights` | Read | Low | https://policylayer.com/tools/hermoso/pinterest-audience-insights.md |
| `pinterest_targeting_analytics` | Read | Low | https://policylayer.com/tools/hermoso/pinterest-targeting-analytics.md |
| `plan_variations` | Read | Low | https://policylayer.com/tools/hermoso/plan-variations.md |
| `posthog_insight` | Read | Low | https://policylayer.com/tools/hermoso/posthog-insight.md |
| `posthog_persons` | Read | Low | https://policylayer.com/tools/hermoso/posthog-persons.md |
| `posthog_query` | Read | Low | https://policylayer.com/tools/hermoso/posthog-query.md |
| `preview_meta_ad` | Read | Low | https://policylayer.com/tools/hermoso/preview-meta-ad.md |
| `product_sizzle` | Read | Low | https://policylayer.com/tools/hermoso/product-sizzle.md |
| `pull_competitor_ads` | Read | Low | https://policylayer.com/tools/hermoso/pull-competitor-ads.md |
| `query_openai_ads_feed_products` | Read | Low | https://policylayer.com/tools/hermoso/query-openai-ads-feed-products.md |
| `read_bluesky_dm` | Read | Low | https://policylayer.com/tools/hermoso/read-bluesky-dm.md |
| `read_doc` | Read | Low | https://policylayer.com/tools/hermoso/read-doc.md |
| `read_meta_conversation` | Read | Low | https://policylayer.com/tools/hermoso/read-meta-conversation.md |
| `read_meta_leads` | Read | Low | https://policylayer.com/tools/hermoso/read-meta-leads.md |
| `read_sheet` | Read | Low | https://policylayer.com/tools/hermoso/read-sheet.md |
| `read_x_broadcast_chat` | Read | Low | https://policylayer.com/tools/hermoso/read-x-broadcast-chat.md |
| `recast_hook` | Read | Low | https://policylayer.com/tools/hermoso/recast-hook.md |
| `recast_motion` | Read | Low | https://policylayer.com/tools/hermoso/recast-motion.md |
| `reddit_ads_bid_suggestion` | Read | Low | https://policylayer.com/tools/hermoso/reddit-ads-bid-suggestion.md |
| `reddit_ads_history` | Read | Low | https://policylayer.com/tools/hermoso/reddit-ads-history.md |
| `reframe_video` | Read | Low | https://policylayer.com/tools/hermoso/reframe-video.md |
| `remix_static` | Read | Low | https://policylayer.com/tools/hermoso/remix-static.md |
| `render_ad` | Read | Low | https://policylayer.com/tools/hermoso/render-ad.md |
| `reply_to_inbox_item` | Read | Low | https://policylayer.com/tools/hermoso/reply-to-inbox-item.md |
| `repost_thread` | Read | Low | https://policylayer.com/tools/hermoso/repost-thread.md |
| `request_feature` | Read | Low | https://policylayer.com/tools/hermoso/request-feature.md |
| `research_ads` | Read | Low | https://policylayer.com/tools/hermoso/research-ads.md |
| `restyle_video` | Read | Low | https://policylayer.com/tools/hermoso/restyle-video.md |
| `score_ad` | Read | Low | https://policylayer.com/tools/hermoso/score-ad.md |
| `search_apple_ads_apps` | Read | Low | https://policylayer.com/tools/hermoso/search-apple-ads-apps.md |
| `search_apple_ads_geo` | Read | Low | https://policylayer.com/tools/hermoso/search-apple-ads-geo.md |
| `search_console_performance` | Read | Low | https://policylayer.com/tools/hermoso/search-console-performance.md |
| `search_console_url_inspection` | Read | Low | https://policylayer.com/tools/hermoso/search-console-url-inspection.md |
| `search_google_ads` | Read | Low | https://policylayer.com/tools/hermoso/search-google-ads.md |
| `search_instagram` | Read | Low | https://policylayer.com/tools/hermoso/search-instagram.md |
| `search_instagram_audio` | Read | Low | https://policylayer.com/tools/hermoso/search-instagram-audio.md |
| `search_instagram_hashtag` | Read | Low | https://policylayer.com/tools/hermoso/search-instagram-hashtag.md |
| `search_instagram_shopping_products` | Read | Low | https://policylayer.com/tools/hermoso/search-instagram-shopping-products.md |
| `search_linkedin_ad_library` | Read | Low | https://policylayer.com/tools/hermoso/search-linkedin-ad-library.md |
| `search_linkedin_ads` | Read | Low | https://policylayer.com/tools/hermoso/search-linkedin-ads.md |
| `search_linkedin_ads_targeting` | Read | Low | https://policylayer.com/tools/hermoso/search-linkedin-ads-targeting.md |
| `search_linkedin_brand_partnerships` | Read | Low | https://policylayer.com/tools/hermoso/search-linkedin-brand-partnerships.md |
| `search_meta_ads` | Read | Low | https://policylayer.com/tools/hermoso/search-meta-ads.md |
| `search_microsoft_ads_profiles` | Read | Low | https://policylayer.com/tools/hermoso/search-microsoft-ads-profiles.md |
| `search_pinterest_ads_targeting` | Read | Low | https://policylayer.com/tools/hermoso/search-pinterest-ads-targeting.md |
| `search_posts` | Read | Low | https://policylayer.com/tools/hermoso/search-posts.md |
| `search_reddit` | Read | Low | https://policylayer.com/tools/hermoso/search-reddit.md |
| `search_reddit_ads_targeting` | Read | Low | https://policylayer.com/tools/hermoso/search-reddit-ads-targeting.md |
| `search_snapchat_ads_targeting` | Read | Low | https://policylayer.com/tools/hermoso/search-snapchat-ads-targeting.md |
| `search_threads` | Read | Low | https://policylayer.com/tools/hermoso/search-threads.md |
| `search_threads_keyword` | Read | Low | https://policylayer.com/tools/hermoso/search-threads-keyword.md |
| `search_threads_locations` | Read | Low | https://policylayer.com/tools/hermoso/search-threads-locations.md |
| `search_tiktok` | Read | Low | https://policylayer.com/tools/hermoso/search-tiktok.md |
| `search_tiktok_ads_targeting` | Read | Low | https://policylayer.com/tools/hermoso/search-tiktok-ads-targeting.md |
| `search_x` | Read | Low | https://policylayer.com/tools/hermoso/search-x.md |
| `search_youtube` | Read | Low | https://policylayer.com/tools/hermoso/search-youtube.md |
| `stitch_video` | Read | Low | https://policylayer.com/tools/hermoso/stitch-video.md |
| `store_get` | Read | Low | https://policylayer.com/tools/hermoso/store-get.md |
| `stripe_balance` | Read | Low | https://policylayer.com/tools/hermoso/stripe-balance.md |
| `stripe_report` | Read | Low | https://policylayer.com/tools/hermoso/stripe-report.md |
| `subscribe_linkedin_leads` | Read | Low | https://policylayer.com/tools/hermoso/subscribe-linkedin-leads.md |
| `subscribe_meta_webhooks` | Read | Low | https://policylayer.com/tools/hermoso/subscribe-meta-webhooks.md |
| `sync_leads_to_hubspot` | Read | Low | https://policylayer.com/tools/hermoso/sync-leads-to-hubspot.md |
| `telegram_account` | Read | Low | https://policylayer.com/tools/hermoso/telegram-account.md |
| `test_dm_automation` | Read | Low | https://policylayer.com/tools/hermoso/test-dm-automation.md |
| `test_instagram_dm_automation` | Read | Low | https://policylayer.com/tools/hermoso/test-instagram-dm-automation.md |
| `test_openai_ads_lead_form` | Read | Low | https://policylayer.com/tools/hermoso/test-openai-ads-lead-form.md |
| `threads_insights` | Read | Low | https://policylayer.com/tools/hermoso/threads-insights.md |
| `threads_profile` | Read | Low | https://policylayer.com/tools/hermoso/threads-profile.md |
| `threads_publishing_limit` | Read | Low | https://policylayer.com/tools/hermoso/threads-publishing-limit.md |
| `tidy_memory` | Read | Low | https://policylayer.com/tools/hermoso/tidy-memory.md |
| `tiktok_account` | Read | Low | https://policylayer.com/tools/hermoso/tiktok-account.md |
| `tiktok_account_insights` | Read | Low | https://policylayer.com/tools/hermoso/tiktok-account-insights.md |
| `tiktok_account_status` | Read | Low | https://policylayer.com/tools/hermoso/tiktok-account-status.md |
| `tiktok_ads_audience_overlap` | Read | Low | https://policylayer.com/tools/hermoso/tiktok-ads-audience-overlap.md |
| `tiktok_ads_diagnosis` | Read | Low | https://policylayer.com/tools/hermoso/tiktok-ads-diagnosis.md |
| `tiktok_ads_pixel_stats` | Read | Low | https://policylayer.com/tools/hermoso/tiktok-ads-pixel-stats.md |
| `tiktok_ads_report` | Read | Low | https://policylayer.com/tools/hermoso/tiktok-ads-report.md |
| `tiktok_ads_verification_status` | Read | Low | https://policylayer.com/tools/hermoso/tiktok-ads-verification-status.md |
| `tiktok_bid_protection` | Read | Low | https://policylayer.com/tools/hermoso/tiktok-bid-protection.md |
| `tiktok_category_benchmark` | Read | Low | https://policylayer.com/tools/hermoso/tiktok-category-benchmark.md |
| `tiktok_creator_info` | Read | Low | https://policylayer.com/tools/hermoso/tiktok-creator-info.md |
| `tiktok_creator_leaderboard` | Read | Low | https://policylayer.com/tools/hermoso/tiktok-creator-leaderboard.md |
| `tiktok_mention_top_terms` | Read | Low | https://policylayer.com/tools/hermoso/tiktok-mention-top-terms.md |
| `tiktok_tto_campaign_report` | Read | Low | https://policylayer.com/tools/hermoso/tiktok-tto-campaign-report.md |
| `upscale_video` | Read | Low | https://policylayer.com/tools/hermoso/upscale-video.md |
| `verify_bing_webmaster_site` | Read | Low | https://policylayer.com/tools/hermoso/verify-bing-webmaster-site.md |
| `video_frames` | Read | Low | https://policylayer.com/tools/hermoso/video-frames.md |
| `x_account` | Read | Low | https://policylayer.com/tools/hermoso/x-account.md |
| `x_ads_geo_search` | Read | Low | https://policylayer.com/tools/hermoso/x-ads-geo-search.md |
| `x_ads_report` | Read | Low | https://policylayer.com/tools/hermoso/x-ads-report.md |
| `x_ads_targeting_search` | Read | Low | https://policylayer.com/tools/hermoso/x-ads-targeting-search.md |
| `x_chat_settings` | Read | Low | https://policylayer.com/tools/hermoso/x-chat-settings.md |
| `x_follows` | Read | Low | https://policylayer.com/tools/hermoso/x-follows.md |
| `x_mentions` | Read | Low | https://policylayer.com/tools/hermoso/x-mentions.md |
| `x_search_counts` | Read | Low | https://policylayer.com/tools/hermoso/x-search-counts.md |
| `x_trends` | Read | Low | https://policylayer.com/tools/hermoso/x-trends.md |
| `x_user` | Read | Low | https://policylayer.com/tools/hermoso/x-user.md |
| `youtube_bulk_report` | Read | Low | https://policylayer.com/tools/hermoso/youtube-bulk-report.md |
| `youtube_channel` | Read | Low | https://policylayer.com/tools/hermoso/youtube-channel.md |
| `youtube_channel_report` | Read | Low | https://policylayer.com/tools/hermoso/youtube-channel-report.md |
| `youtube_video_insights` | Read | Low | https://policylayer.com/tools/hermoso/youtube-video-insights.md |
| `add_apple_ads_keywords` | Write | Medium | https://policylayer.com/tools/hermoso/add-apple-ads-keywords.md |
| `add_apple_ads_negative_keywords` | Write | Medium | https://policylayer.com/tools/hermoso/add-apple-ads-negative-keywords.md |
| `add_bing_webmaster_site` | Write | Medium | https://policylayer.com/tools/hermoso/add-bing-webmaster-site.md |
| `add_google_ads_assets` | Write | Medium | https://policylayer.com/tools/hermoso/add-google-ads-assets.md |
| `add_google_ads_keywords` | Write | Medium | https://policylayer.com/tools/hermoso/add-google-ads-keywords.md |
| `add_microsoft_ads_keywords` | Write | Medium | https://policylayer.com/tools/hermoso/add-microsoft-ads-keywords.md |
| `add_search_console_site` | Write | Medium | https://policylayer.com/tools/hermoso/add-search-console-site.md |
| `add_subtitles` | Write | Medium | https://policylayer.com/tools/hermoso/add-subtitles.md |
| `add_x_ads_targeting` | Write | Medium | https://policylayer.com/tools/hermoso/add-x-ads-targeting.md |
| `apple_ads_target_cpa_suggestion` | Write | Medium | https://policylayer.com/tools/hermoso/apple-ads-target-cpa-suggestion.md |
| `applovin_ads_pixel` | Write | Medium | https://policylayer.com/tools/hermoso/applovin-ads-pixel.md |
| `applovin_ads_report` | Write | Medium | https://policylayer.com/tools/hermoso/applovin-ads-report.md |
| `apply_apple_ads_recommendation` | Write | Medium | https://policylayer.com/tools/hermoso/apply-apple-ads-recommendation.md |
| `apply_microsoft_ads_customer_list` | Write | Medium | https://policylayer.com/tools/hermoso/apply-microsoft-ads-customer-list.md |
| `apply_microsoft_ads_recommendations` | Write | Medium | https://policylayer.com/tools/hermoso/apply-microsoft-ads-recommendations.md |
| `apply_tiktok_ads_audience` | Write | Medium | https://policylayer.com/tools/hermoso/apply-tiktok-ads-audience.md |
| `archive_analytics_audience` | Write | Medium | https://policylayer.com/tools/hermoso/archive-analytics-audience.md |
| `archive_analytics_custom_dimension` | Write | Medium | https://policylayer.com/tools/hermoso/archive-analytics-custom-dimension.md |
| `archive_analytics_custom_metric` | Write | Medium | https://policylayer.com/tools/hermoso/archive-analytics-custom-metric.md |
| `archive_meta_lead_form` | Write | Medium | https://policylayer.com/tools/hermoso/archive-meta-lead-form.md |
| `archive_openai_ads_audience` | Write | Medium | https://policylayer.com/tools/hermoso/archive-openai-ads-audience.md |
| `archive_openai_ads_feed` | Write | Medium | https://policylayer.com/tools/hermoso/archive-openai-ads-feed.md |
| `archive_openai_ads_lead_form` | Write | Medium | https://policylayer.com/tools/hermoso/archive-openai-ads-lead-form.md |
| `authorize_tiktok_ads_spark_post` | Write | Medium | https://policylayer.com/tools/hermoso/authorize-tiktok-ads-spark-post.md |
| `bluesky_post_metrics` | Write | Medium | https://policylayer.com/tools/hermoso/bluesky-post-metrics.md |
| `bulk_apple_ads_keywords` | Write | Medium | https://policylayer.com/tools/hermoso/bulk-apple-ads-keywords.md |
| `collect_post_metrics` | Write | Medium | https://policylayer.com/tools/hermoso/collect-post-metrics.md |
| `comment_on_meta_post` | Write | Medium | https://policylayer.com/tools/hermoso/comment-on-meta-post.md |
| `comment_on_tiktok_video` | Write | Medium | https://policylayer.com/tools/hermoso/comment-on-tiktok-video.md |
| `connect_connector` | Write | Medium | https://policylayer.com/tools/hermoso/connect-connector.md |
| `convert_onedrive_file` | Write | Medium | https://policylayer.com/tools/hermoso/convert-onedrive-file.md |
| `create_amplitude_annotation` | Write | Medium | https://policylayer.com/tools/hermoso/create-amplitude-annotation.md |
| `create_analytics_audience` | Write | Medium | https://policylayer.com/tools/hermoso/create-analytics-audience.md |
| `create_analytics_custom_metric` | Write | Medium | https://policylayer.com/tools/hermoso/create-analytics-custom-metric.md |
| `create_analytics_key_event` | Write | Medium | https://policylayer.com/tools/hermoso/create-analytics-key-event.md |
| `create_apple_ads_ad` | Write | Medium | https://policylayer.com/tools/hermoso/create-apple-ads-ad.md |
| `create_apple_ads_ad_account` | Write | Medium | https://policylayer.com/tools/hermoso/create-apple-ads-ad-account.md |
| `create_apple_ads_ad_group` | Write | Medium | https://policylayer.com/tools/hermoso/create-apple-ads-ad-group.md |
| `create_apple_ads_budget_order` | Write | Medium | https://policylayer.com/tools/hermoso/create-apple-ads-budget-order.md |
| `create_apple_ads_campaign` | Write | Medium | https://policylayer.com/tools/hermoso/create-apple-ads-campaign.md |
| `create_apple_ads_creative` | Write | Medium | https://policylayer.com/tools/hermoso/create-apple-ads-creative.md |
| `create_apple_ads_location_group` | Write | Medium | https://policylayer.com/tools/hermoso/create-apple-ads-location-group.md |
| `create_applovin_ads_campaign` | Write | Medium | https://policylayer.com/tools/hermoso/create-applovin-ads-campaign.md |
| `create_applovin_ads_creative_set` | Write | Medium | https://policylayer.com/tools/hermoso/create-applovin-ads-creative-set.md |
| `create_brand` | Write | Medium | https://policylayer.com/tools/hermoso/create-brand.md |
| `create_doc` | Write | Medium | https://policylayer.com/tools/hermoso/create-doc.md |
| `create_drive_folder` | Write | Medium | https://policylayer.com/tools/hermoso/create-drive-folder.md |
| `create_google_ads_ad` | Write | Medium | https://policylayer.com/tools/hermoso/create-google-ads-ad.md |
| `create_google_ads_ad_group` | Write | Medium | https://policylayer.com/tools/hermoso/create-google-ads-ad-group.md |
| `create_google_ads_campaign` | Write | Medium | https://policylayer.com/tools/hermoso/create-google-ads-campaign.md |
| `create_google_ads_conversion_action` | Write | Medium | https://policylayer.com/tools/hermoso/create-google-ads-conversion-action.md |
| `create_google_ads_performance_max_campaign` | Write | Medium | https://policylayer.com/tools/hermoso/create-google-ads-performance-max-campaign.md |
| `create_hubspot_contact` | Write | Medium | https://policylayer.com/tools/hermoso/create-hubspot-contact.md |
| `create_linkedin_ads_campaign` | Write | Medium | https://policylayer.com/tools/hermoso/create-linkedin-ads-campaign.md |
| `create_linkedin_ads_campaign_group` | Write | Medium | https://policylayer.com/tools/hermoso/create-linkedin-ads-campaign-group.md |
| `create_linkedin_ads_creative` | Write | Medium | https://policylayer.com/tools/hermoso/create-linkedin-ads-creative.md |
| `create_linkedin_conversion_rule` | Write | Medium | https://policylayer.com/tools/hermoso/create-linkedin-conversion-rule.md |
| `create_linkedin_event` | Write | Medium | https://policylayer.com/tools/hermoso/create-linkedin-event.md |
| `create_merchant_data_source` | Write | Medium | https://policylayer.com/tools/hermoso/create-merchant-data-source.md |
| `create_merchant_promotion` | Write | Medium | https://policylayer.com/tools/hermoso/create-merchant-promotion.md |
| `create_messenger_marketing_campaign` | Write | Medium | https://policylayer.com/tools/hermoso/create-messenger-marketing-campaign.md |
| `create_meta_ad` | Write | Medium | https://policylayer.com/tools/hermoso/create-meta-ad.md |
| `create_meta_adset` | Write | Medium | https://policylayer.com/tools/hermoso/create-meta-adset.md |
| `create_meta_audience` | Write | Medium | https://policylayer.com/tools/hermoso/create-meta-audience.md |
| `create_meta_campaign` | Write | Medium | https://policylayer.com/tools/hermoso/create-meta-campaign.md |
| `create_meta_catalog` | Write | Medium | https://policylayer.com/tools/hermoso/create-meta-catalog.md |
| `create_meta_lead_form` | Write | Medium | https://policylayer.com/tools/hermoso/create-meta-lead-form.md |
| `create_meta_pixel` | Write | Medium | https://policylayer.com/tools/hermoso/create-meta-pixel.md |
| `create_microsoft_ads_ad` | Write | Medium | https://policylayer.com/tools/hermoso/create-microsoft-ads-ad.md |
| `create_microsoft_ads_ad_group` | Write | Medium | https://policylayer.com/tools/hermoso/create-microsoft-ads-ad-group.md |
| `create_microsoft_ads_campaign` | Write | Medium | https://policylayer.com/tools/hermoso/create-microsoft-ads-campaign.md |
| `create_microsoft_ads_customer_list` | Write | Medium | https://policylayer.com/tools/hermoso/create-microsoft-ads-customer-list.md |
| `create_onedrive_folder` | Write | Medium | https://policylayer.com/tools/hermoso/create-onedrive-folder.md |
| `create_openai_ads_ad` | Write | Medium | https://policylayer.com/tools/hermoso/create-openai-ads-ad.md |
| `create_openai_ads_ad_group` | Write | Medium | https://policylayer.com/tools/hermoso/create-openai-ads-ad-group.md |
| `create_openai_ads_audience` | Write | Medium | https://policylayer.com/tools/hermoso/create-openai-ads-audience.md |
| `create_openai_ads_business_agent` | Write | Medium | https://policylayer.com/tools/hermoso/create-openai-ads-business-agent.md |
| `create_openai_ads_conversion_api_key` | Write | Medium | https://policylayer.com/tools/hermoso/create-openai-ads-conversion-api-key.md |
| `create_openai_ads_conversion_event` | Write | Medium | https://policylayer.com/tools/hermoso/create-openai-ads-conversion-event.md |
| `create_openai_ads_feed` | Write | Medium | https://policylayer.com/tools/hermoso/create-openai-ads-feed.md |
| `create_openai_ads_lead_form` | Write | Medium | https://policylayer.com/tools/hermoso/create-openai-ads-lead-form.md |
| `create_openai_ads_pixel` | Write | Medium | https://policylayer.com/tools/hermoso/create-openai-ads-pixel.md |
| `create_pinterest_ads_ad` | Write | Medium | https://policylayer.com/tools/hermoso/create-pinterest-ads-ad.md |
| `create_pinterest_ads_ad_group` | Write | Medium | https://policylayer.com/tools/hermoso/create-pinterest-ads-ad-group.md |
| `create_pinterest_ads_campaign` | Write | Medium | https://policylayer.com/tools/hermoso/create-pinterest-ads-campaign.md |
| `create_pinterest_board` | Write | Medium | https://policylayer.com/tools/hermoso/create-pinterest-board.md |
| `create_posthog_annotation` | Write | Medium | https://policylayer.com/tools/hermoso/create-posthog-annotation.md |
| `create_reddit_ads_ad` | Write | Medium | https://policylayer.com/tools/hermoso/create-reddit-ads-ad.md |
| `create_reddit_ads_ad_group` | Write | Medium | https://policylayer.com/tools/hermoso/create-reddit-ads-ad-group.md |
| `create_reddit_ads_audience` | Write | Medium | https://policylayer.com/tools/hermoso/create-reddit-ads-audience.md |
| `create_reddit_ads_campaign` | Write | Medium | https://policylayer.com/tools/hermoso/create-reddit-ads-campaign.md |
| `create_reddit_ads_lead_form` | Write | Medium | https://policylayer.com/tools/hermoso/create-reddit-ads-lead-form.md |
| `create_reddit_ads_max_campaign` | Write | Medium | https://policylayer.com/tools/hermoso/create-reddit-ads-max-campaign.md |
| `create_reddit_ads_post` | Write | Medium | https://policylayer.com/tools/hermoso/create-reddit-ads-post.md |
| `create_reddit_ads_saved_audience` | Write | Medium | https://policylayer.com/tools/hermoso/create-reddit-ads-saved-audience.md |
| `create_sheet` | Write | Medium | https://policylayer.com/tools/hermoso/create-sheet.md |
| `create_snapchat_ads_ad` | Write | Medium | https://policylayer.com/tools/hermoso/create-snapchat-ads-ad.md |
| `create_snapchat_ads_ad_squad` | Write | Medium | https://policylayer.com/tools/hermoso/create-snapchat-ads-ad-squad.md |
| `create_snapchat_ads_campaign` | Write | Medium | https://policylayer.com/tools/hermoso/create-snapchat-ads-campaign.md |
| `create_stripe_coupon` | Write | Medium | https://policylayer.com/tools/hermoso/create-stripe-coupon.md |
| `create_stripe_customer` | Write | Medium | https://policylayer.com/tools/hermoso/create-stripe-customer.md |
| `create_stripe_payment_link` | Write | Medium | https://policylayer.com/tools/hermoso/create-stripe-payment-link.md |
| `create_stripe_price` | Write | Medium | https://policylayer.com/tools/hermoso/create-stripe-price.md |
| `create_stripe_product` | Write | Medium | https://policylayer.com/tools/hermoso/create-stripe-product.md |
| `create_stripe_subscription` | Write | Medium | https://policylayer.com/tools/hermoso/create-stripe-subscription.md |
| `create_tag_manager_tag` | Write | Medium | https://policylayer.com/tools/hermoso/create-tag-manager-tag.md |
| `create_tag_manager_trigger` | Write | Medium | https://policylayer.com/tools/hermoso/create-tag-manager-trigger.md |
| `create_telegram_invite_link` | Write | Medium | https://policylayer.com/tools/hermoso/create-telegram-invite-link.md |
| `create_tiktok_ads_ad` | Write | Medium | https://policylayer.com/tools/hermoso/create-tiktok-ads-ad.md |
| `create_tiktok_ads_ad_group` | Write | Medium | https://policylayer.com/tools/hermoso/create-tiktok-ads-ad-group.md |
| `create_tiktok_ads_audience` | Write | Medium | https://policylayer.com/tools/hermoso/create-tiktok-ads-audience.md |
| `create_tiktok_ads_campaign` | Write | Medium | https://policylayer.com/tools/hermoso/create-tiktok-ads-campaign.md |
| `create_tiktok_ads_catalog` | Write | Medium | https://policylayer.com/tools/hermoso/create-tiktok-ads-catalog.md |
| `create_tiktok_ads_crm_event_set` | Write | Medium | https://policylayer.com/tools/hermoso/create-tiktok-ads-crm-event-set.md |
| `create_tiktok_ads_lookalike_audience` | Write | Medium | https://policylayer.com/tools/hermoso/create-tiktok-ads-lookalike-audience.md |
| `create_tiktok_ads_pixel` | Write | Medium | https://policylayer.com/tools/hermoso/create-tiktok-ads-pixel.md |
| `create_tiktok_ads_rf_ad_group` | Write | Medium | https://policylayer.com/tools/hermoso/create-tiktok-ads-rf-ad-group.md |
| `create_tiktok_ads_rule` | Write | Medium | https://policylayer.com/tools/hermoso/create-tiktok-ads-rule.md |
| `create_tiktok_smart_ad` | Write | Medium | https://policylayer.com/tools/hermoso/create-tiktok-smart-ad.md |
| `create_tiktok_smart_ad_group` | Write | Medium | https://policylayer.com/tools/hermoso/create-tiktok-smart-ad-group.md |
| `create_tiktok_smart_campaign` | Write | Medium | https://policylayer.com/tools/hermoso/create-tiktok-smart-campaign.md |
| `create_tiktok_tto_brand_profile` | Write | Medium | https://policylayer.com/tools/hermoso/create-tiktok-tto-brand-profile.md |
| `create_tiktok_tto_campaign` | Write | Medium | https://policylayer.com/tools/hermoso/create-tiktok-tto-campaign.md |
| `create_whatsapp_template` | Write | Medium | https://policylayer.com/tools/hermoso/create-whatsapp-template.md |
| `create_x_ads_campaign` | Write | Medium | https://policylayer.com/tools/hermoso/create-x-ads-campaign.md |
| `create_x_ads_line_item` | Write | Medium | https://policylayer.com/tools/hermoso/create-x-ads-line-item.md |
| `create_x_ads_promoted_tweet` | Write | Medium | https://policylayer.com/tools/hermoso/create-x-ads-promoted-tweet.md |
| `disconnect_connector` | Write | Medium | https://policylayer.com/tools/hermoso/disconnect-connector.md |
| `discover_tiktok_creators` | Write | Medium | https://policylayer.com/tools/hermoso/discover-tiktok-creators.md |
| `dub_video` | Write | Medium | https://policylayer.com/tools/hermoso/dub-video.md |
| `edit_image` | Write | Medium | https://policylayer.com/tools/hermoso/edit-image.md |
| `edit_telegram_message` | Write | Medium | https://policylayer.com/tools/hermoso/edit-telegram-message.md |
| `edit_video` | Write | Medium | https://policylayer.com/tools/hermoso/edit-video.md |
| `edit_x_post` | Write | Medium | https://policylayer.com/tools/hermoso/edit-x-post.md |
| `enable_tools` | Write | Medium | https://policylayer.com/tools/hermoso/enable-tools.md |
| `estimate_meta_reach` | Write | Medium | https://policylayer.com/tools/hermoso/estimate-meta-reach.md |
| `export_swipefile_deck` | Write | Medium | https://policylayer.com/tools/hermoso/export-swipefile-deck.md |
| `extend_tiktok_post_ad_authorization` | Write | Medium | https://policylayer.com/tools/hermoso/extend-tiktok-post-ad-authorization.md |
| `fix_beat` | Write | Medium | https://policylayer.com/tools/hermoso/fix-beat.md |
| `generate_avatar` | Write | Medium | https://policylayer.com/tools/hermoso/generate-avatar.md |
| `generate_image` | Write | Medium | https://policylayer.com/tools/hermoso/generate-image.md |
| `generate_music` | Write | Medium | https://policylayer.com/tools/hermoso/generate-music.md |
| `generate_text` | Write | Medium | https://policylayer.com/tools/hermoso/generate-text.md |
| `generate_video` | Write | Medium | https://policylayer.com/tools/hermoso/generate-video.md |
| `generate_voice` | Write | Medium | https://policylayer.com/tools/hermoso/generate-voice.md |
| `google_business_account` | Write | Medium | https://policylayer.com/tools/hermoso/google-business-account.md |
| `hide_thread_reply` | Write | Medium | https://policylayer.com/tools/hermoso/hide-thread-reply.md |
| `import_from_cloud` | Write | Medium | https://policylayer.com/tools/hermoso/import-from-cloud.md |
| `invite_member` | Write | Medium | https://policylayer.com/tools/hermoso/invite-member.md |
| `link_google_ads_to_analytics` | Write | Medium | https://policylayer.com/tools/hermoso/link-google-ads-to-analytics.md |
| `make_insert` | Write | Medium | https://policylayer.com/tools/hermoso/make-insert.md |
| `manage_analytics_calculated_metric` | Write | Medium | https://policylayer.com/tools/hermoso/manage-analytics-calculated-metric.md |
| `manage_analytics_channel_group` | Write | Medium | https://policylayer.com/tools/hermoso/manage-analytics-channel-group.md |
| `manage_analytics_measurement_protocol_secret` | Write | Medium | https://policylayer.com/tools/hermoso/manage-analytics-measurement-protocol-secret.md |
| `manage_instagram_product_tags` | Write | Medium | https://policylayer.com/tools/hermoso/manage-instagram-product-tags.md |
| `manage_linkedin_post` | Write | Medium | https://policylayer.com/tools/hermoso/manage-linkedin-post.md |
| `manage_merchant_conversion_source` | Write | Medium | https://policylayer.com/tools/hermoso/manage-merchant-conversion-source.md |
| `manage_merchant_notifications` | Write | Medium | https://policylayer.com/tools/hermoso/manage-merchant-notifications.md |
| `manage_meta_partnership_creator` | Write | Medium | https://policylayer.com/tools/hermoso/manage-meta-partnership-creator.md |
| `manage_meta_post` | Write | Medium | https://policylayer.com/tools/hermoso/manage-meta-post.md |
| `manage_microsoft_merchant_catalog` | Write | Medium | https://policylayer.com/tools/hermoso/manage-microsoft-merchant-catalog.md |
| `manage_sheet_tabs` | Write | Medium | https://policylayer.com/tools/hermoso/manage-sheet-tabs.md |
| `manage_tiktok_ads_blocked_words` | Write | Medium | https://policylayer.com/tools/hermoso/manage-tiktok-ads-blocked-words.md |
| `manage_tiktok_ads_catalog_feed` | Write | Medium | https://policylayer.com/tools/hermoso/manage-tiktok-ads-catalog-feed.md |
| `manage_tiktok_ads_offline_event_set` | Write | Medium | https://policylayer.com/tools/hermoso/manage-tiktok-ads-offline-event-set.md |
| `manage_tiktok_ads_test_lead` | Write | Medium | https://policylayer.com/tools/hermoso/manage-tiktok-ads-test-lead.md |
| `manage_tiktok_brand_hashtags` | Write | Medium | https://policylayer.com/tools/hermoso/manage-tiktok-brand-hashtags.md |
| `manage_tiktok_tto_anchor` | Write | Medium | https://policylayer.com/tools/hermoso/manage-tiktok-tto-anchor.md |
| `manage_x_broadcast` | Write | Medium | https://policylayer.com/tools/hermoso/manage-x-broadcast.md |
| `manage_x_chat` | Write | Medium | https://policylayer.com/tools/hermoso/manage-x-chat.md |
| `manage_youtube_caption` | Write | Medium | https://policylayer.com/tools/hermoso/manage-youtube-caption.md |
| `manage_youtube_channel_section` | Write | Medium | https://policylayer.com/tools/hermoso/manage-youtube-channel-section.md |
| `manage_youtube_playlist` | Write | Medium | https://policylayer.com/tools/hermoso/manage-youtube-playlist.md |
| `manage_youtube_playlist_image` | Write | Medium | https://policylayer.com/tools/hermoso/manage-youtube-playlist-image.md |
| `manage_youtube_playlist_items` | Write | Medium | https://policylayer.com/tools/hermoso/manage-youtube-playlist-items.md |
| `mark_bluesky_convo_read` | Write | Medium | https://policylayer.com/tools/hermoso/mark-bluesky-convo-read.md |
| `merchant_issue_help` | Write | Medium | https://policylayer.com/tools/hermoso/merchant-issue-help.md |
| `merge_openai_ads_audiences` | Write | Medium | https://policylayer.com/tools/hermoso/merge-openai-ads-audiences.md |
| `meta_insights` | Write | Medium | https://policylayer.com/tools/hermoso/meta-insights.md |
| `meta_page_insights` | Write | Medium | https://policylayer.com/tools/hermoso/meta-page-insights.md |
| `meta_post_insights` | Write | Medium | https://policylayer.com/tools/hermoso/meta-post-insights.md |
| `microsoft_ads_auto_apply` | Write | Medium | https://policylayer.com/tools/hermoso/microsoft-ads-auto-apply.md |
| `microsoft_ads_bulk_upload` | Write | Medium | https://policylayer.com/tools/hermoso/microsoft-ads-bulk-upload.md |
| `microsoft_ads_traffic_estimates` | Write | Medium | https://policylayer.com/tools/hermoso/microsoft-ads-traffic-estimates.md |
| `moderate_tiktok_comment` | Write | Medium | https://policylayer.com/tools/hermoso/moderate-tiktok-comment.md |
| `moderate_youtube_comment` | Write | Medium | https://policylayer.com/tools/hermoso/moderate-youtube-comment.md |
| `multiply_ad` | Write | Medium | https://policylayer.com/tools/hermoso/multiply-ad.md |
| `openai_ads_conversions` | Write | Medium | https://policylayer.com/tools/hermoso/openai-ads-conversions.md |
| `pin_telegram_message` | Write | Medium | https://policylayer.com/tools/hermoso/pin-telegram-message.md |
| `plan_ad` | Write | Medium | https://policylayer.com/tools/hermoso/plan-ad.md |
| `post_edit` | Write | Medium | https://policylayer.com/tools/hermoso/post-edit.md |
| `post_performance` | Write | Medium | https://policylayer.com/tools/hermoso/post-performance.md |
| `post_to_bluesky` | Write | Medium | https://policylayer.com/tools/hermoso/post-to-bluesky.md |
| `post_to_google_business` | Write | Medium | https://policylayer.com/tools/hermoso/post-to-google-business.md |
| `post_to_linkedin` | Write | Medium | https://policylayer.com/tools/hermoso/post-to-linkedin.md |
| `post_to_linkedin_page` | Write | Medium | https://policylayer.com/tools/hermoso/post-to-linkedin-page.md |
| `post_to_meta` | Write | Medium | https://policylayer.com/tools/hermoso/post-to-meta.md |
| `post_to_pinterest` | Write | Medium | https://policylayer.com/tools/hermoso/post-to-pinterest.md |
| `post_to_telegram` | Write | Medium | https://policylayer.com/tools/hermoso/post-to-telegram.md |
| `post_to_tiktok` | Write | Medium | https://policylayer.com/tools/hermoso/post-to-tiktok.md |
| `post_to_x` | Write | Medium | https://policylayer.com/tools/hermoso/post-to-x.md |
| `post_to_youtube` | Write | Medium | https://policylayer.com/tools/hermoso/post-to-youtube.md |
| `post_x_article` | Write | Medium | https://policylayer.com/tools/hermoso/post-x-article.md |
| `preview_openai_ads_business_agent` | Write | Medium | https://policylayer.com/tools/hermoso/preview-openai-ads-business-agent.md |
| `preview_tag_manager_publish` | Write | Medium | https://policylayer.com/tools/hermoso/preview-tag-manager-publish.md |
| `publish_openai_ads_business_agent` | Write | Medium | https://policylayer.com/tools/hermoso/publish-openai-ads-business-agent.md |
| `publish_openai_ads_lead_form` | Write | Medium | https://policylayer.com/tools/hermoso/publish-openai-ads-lead-form.md |
| `publish_tag_manager_container` | Write | Medium | https://policylayer.com/tools/hermoso/publish-tag-manager-container.md |
| `publish_to_shopify_product` | Write | Medium | https://policylayer.com/tools/hermoso/publish-to-shopify-product.md |
| `register_merchant_developer` | Write | Medium | https://policylayer.com/tools/hermoso/register-merchant-developer.md |
| `remember` | Write | Medium | https://policylayer.com/tools/hermoso/remember.md |
| `rename_reddit_ads_asset` | Write | Medium | https://policylayer.com/tools/hermoso/rename-reddit-ads-asset.md |
| `reply_to_linkedin_comment` | Write | Medium | https://policylayer.com/tools/hermoso/reply-to-linkedin-comment.md |
| `reply_to_meta_comment` | Write | Medium | https://policylayer.com/tools/hermoso/reply-to-meta-comment.md |
| `reply_to_meta_message` | Write | Medium | https://policylayer.com/tools/hermoso/reply-to-meta-message.md |
| `reply_to_thread` | Write | Medium | https://policylayer.com/tools/hermoso/reply-to-thread.md |
| `reply_to_tiktok_ads_comment` | Write | Medium | https://policylayer.com/tools/hermoso/reply-to-tiktok-ads-comment.md |
| `reply_to_tiktok_comment` | Write | Medium | https://policylayer.com/tools/hermoso/reply-to-tiktok-comment.md |
| `reply_to_youtube_comment` | Write | Medium | https://policylayer.com/tools/hermoso/reply-to-youtube-comment.md |
| `report_bug` | Write | Medium | https://policylayer.com/tools/hermoso/report-bug.md |
| `request_messenger_optin` | Write | Medium | https://policylayer.com/tools/hermoso/request-messenger-optin.md |
| `reschedule_post` | Write | Medium | https://policylayer.com/tools/hermoso/reschedule-post.md |
| `resize_ad` | Write | Medium | https://policylayer.com/tools/hermoso/resize-ad.md |
| `respond_instagram_collab_invite` | Write | Medium | https://policylayer.com/tools/hermoso/respond-instagram-collab-invite.md |
| `resume_openai_ads_audience_operation` | Write | Medium | https://policylayer.com/tools/hermoso/resume-openai-ads-audience-operation.md |
| `retry_scheduled` | Write | Medium | https://policylayer.com/tools/hermoso/retry-scheduled.md |
| `save_creator` | Write | Medium | https://policylayer.com/tools/hermoso/save-creator.md |
| `save_dm_automation` | Write | Medium | https://policylayer.com/tools/hermoso/save-dm-automation.md |
| `save_instagram_dm_automation` | Write | Medium | https://policylayer.com/tools/hermoso/save-instagram-dm-automation.md |
| `save_pinterest_pin` | Write | Medium | https://policylayer.com/tools/hermoso/save-pinterest-pin.md |
| `save_playbook` | Write | Medium | https://policylayer.com/tools/hermoso/save-playbook.md |
| `save_skill` | Write | Medium | https://policylayer.com/tools/hermoso/save-skill.md |
| `save_to_drive` | Write | Medium | https://policylayer.com/tools/hermoso/save-to-drive.md |
| `save_to_onedrive` | Write | Medium | https://policylayer.com/tools/hermoso/save-to-onedrive.md |
| `save_to_swipefile` | Write | Medium | https://policylayer.com/tools/hermoso/save-to-swipefile.md |
| `schedule_post` | Write | Medium | https://policylayer.com/tools/hermoso/schedule-post.md |
| `send_applovin_ads_events` | Write | Medium | https://policylayer.com/tools/hermoso/send-applovin-ads-events.md |
| `send_bluesky_dm` | Write | Medium | https://policylayer.com/tools/hermoso/send-bluesky-dm.md |
| `send_linkedin_conversions` | Write | Medium | https://policylayer.com/tools/hermoso/send-linkedin-conversions.md |
| `send_messenger_marketing_message` | Write | Medium | https://policylayer.com/tools/hermoso/send-messenger-marketing-message.md |
| `send_microsoft_ads_offline_conversions` | Write | Medium | https://policylayer.com/tools/hermoso/send-microsoft-ads-offline-conversions.md |
| `send_openai_ads_conversions` | Write | Medium | https://policylayer.com/tools/hermoso/send-openai-ads-conversions.md |
| `send_reddit_ads_conversions` | Write | Medium | https://policylayer.com/tools/hermoso/send-reddit-ads-conversions.md |
| `send_tiktok_ads_events` | Write | Medium | https://policylayer.com/tools/hermoso/send-tiktok-ads-events.md |
| `send_tiktok_ads_offline_events` | Write | Medium | https://policylayer.com/tools/hermoso/send-tiktok-ads-offline-events.md |
| `send_whatsapp_broadcast` | Write | Medium | https://policylayer.com/tools/hermoso/send-whatsapp-broadcast.md |
| `send_whatsapp_message` | Write | Medium | https://policylayer.com/tools/hermoso/send-whatsapp-message.md |
| `send_x_broadcast_chat` | Write | Medium | https://policylayer.com/tools/hermoso/send-x-broadcast-chat.md |
| `send_x_dm` | Write | Medium | https://policylayer.com/tools/hermoso/send-x-dm.md |
| `set_apple_ads_status` | Write | Medium | https://policylayer.com/tools/hermoso/set-apple-ads-status.md |
| `set_applovin_ads_status` | Write | Medium | https://policylayer.com/tools/hermoso/set-applovin-ads-status.md |
| `set_competitor_watch` | Write | Medium | https://policylayer.com/tools/hermoso/set-competitor-watch.md |
| `set_connector_accounts` | Write | Medium | https://policylayer.com/tools/hermoso/set-connector-accounts.md |
| `set_google_ads_bidding` | Write | Medium | https://policylayer.com/tools/hermoso/set-google-ads-bidding.md |
| `set_google_ads_networks` | Write | Medium | https://policylayer.com/tools/hermoso/set-google-ads-networks.md |
| `set_google_ads_status` | Write | Medium | https://policylayer.com/tools/hermoso/set-google-ads-status.md |
| `set_google_ads_targeting` | Write | Medium | https://policylayer.com/tools/hermoso/set-google-ads-targeting.md |
| `set_linkedin_ads_budget` | Write | Medium | https://policylayer.com/tools/hermoso/set-linkedin-ads-budget.md |
| `set_linkedin_ads_status` | Write | Medium | https://policylayer.com/tools/hermoso/set-linkedin-ads-status.md |
| `set_merchant_inventory` | Write | Medium | https://policylayer.com/tools/hermoso/set-merchant-inventory.md |
| `set_microsoft_ads_auto_apply` | Write | Medium | https://policylayer.com/tools/hermoso/set-microsoft-ads-auto-apply.md |
| `set_microsoft_ads_budget` | Write | Medium | https://policylayer.com/tools/hermoso/set-microsoft-ads-budget.md |
| `set_microsoft_ads_profile_targeting` | Write | Medium | https://policylayer.com/tools/hermoso/set-microsoft-ads-profile-targeting.md |
| `set_microsoft_ads_status` | Write | Medium | https://policylayer.com/tools/hermoso/set-microsoft-ads-status.md |
| `set_openai_ads_budget` | Write | Medium | https://policylayer.com/tools/hermoso/set-openai-ads-budget.md |
| `set_openai_ads_daily_spend_limit` | Write | Medium | https://policylayer.com/tools/hermoso/set-openai-ads-daily-spend-limit.md |
| `set_openai_ads_feed_sftp` | Write | Medium | https://policylayer.com/tools/hermoso/set-openai-ads-feed-sftp.md |
| `set_openai_ads_lead_sync` | Write | Medium | https://policylayer.com/tools/hermoso/set-openai-ads-lead-sync.md |
| `set_openai_ads_negative_keywords` | Write | Medium | https://policylayer.com/tools/hermoso/set-openai-ads-negative-keywords.md |
| `set_openai_ads_spend_window` | Write | Medium | https://policylayer.com/tools/hermoso/set-openai-ads-spend-window.md |
| `set_openai_ads_status` | Write | Medium | https://policylayer.com/tools/hermoso/set-openai-ads-status.md |
| `set_pinterest_ads_budget` | Write | Medium | https://policylayer.com/tools/hermoso/set-pinterest-ads-budget.md |
| `set_pinterest_ads_status` | Write | Medium | https://policylayer.com/tools/hermoso/set-pinterest-ads-status.md |
| `set_post_refill` | Write | Medium | https://policylayer.com/tools/hermoso/set-post-refill.md |
| `set_product_image` | Write | Medium | https://policylayer.com/tools/hermoso/set-product-image.md |
| `set_reddit_ads_status` | Write | Medium | https://policylayer.com/tools/hermoso/set-reddit-ads-status.md |
| `set_role` | Write | Medium | https://policylayer.com/tools/hermoso/set-role.md |
| `set_snapchat_ads_budget` | Write | Medium | https://policylayer.com/tools/hermoso/set-snapchat-ads-budget.md |
| `set_snapchat_ads_status` | Write | Medium | https://policylayer.com/tools/hermoso/set-snapchat-ads-status.md |
| `set_tiktok_ads_budget` | Write | Medium | https://policylayer.com/tools/hermoso/set-tiktok-ads-budget.md |
| `set_tiktok_ads_rule_status` | Write | Medium | https://policylayer.com/tools/hermoso/set-tiktok-ads-rule-status.md |
| `set_tiktok_ads_status` | Write | Medium | https://policylayer.com/tools/hermoso/set-tiktok-ads-status.md |
| `set_tiktok_post_ad_authorization` | Write | Medium | https://policylayer.com/tools/hermoso/set-tiktok-post-ad-authorization.md |
| `set_tiktok_smart_status` | Write | Medium | https://policylayer.com/tools/hermoso/set-tiktok-smart-status.md |
| `set_x_ads_status` | Write | Medium | https://policylayer.com/tools/hermoso/set-x-ads-status.md |
| `set_youtube_thumbnail` | Write | Medium | https://policylayer.com/tools/hermoso/set-youtube-thumbnail.md |
| `set_youtube_watermark` | Write | Medium | https://policylayer.com/tools/hermoso/set-youtube-watermark.md |
| `submit_bing_webmaster_content` | Write | Medium | https://policylayer.com/tools/hermoso/submit-bing-webmaster-content.md |
| `submit_bing_webmaster_sitemap` | Write | Medium | https://policylayer.com/tools/hermoso/submit-bing-webmaster-sitemap.md |
| `submit_bing_webmaster_urls` | Write | Medium | https://policylayer.com/tools/hermoso/submit-bing-webmaster-urls.md |
| `submit_indexnow` | Write | Medium | https://policylayer.com/tools/hermoso/submit-indexnow.md |
| `submit_search_console_sitemap` | Write | Medium | https://policylayer.com/tools/hermoso/submit-search-console-sitemap.md |
| `submit_tiktok_ads_verification` | Write | Medium | https://policylayer.com/tools/hermoso/submit-tiktok-ads-verification.md |
| `tiktok_ads_catalog_diagnostics` | Write | Medium | https://policylayer.com/tools/hermoso/tiktok-ads-catalog-diagnostics.md |
| `tiktok_ads_comment_thread` | Write | Medium | https://policylayer.com/tools/hermoso/tiktok-ads-comment-thread.md |
| `tiktok_ads_rf_inventory_estimate` | Write | Medium | https://policylayer.com/tools/hermoso/tiktok-ads-rf-inventory-estimate.md |
| `tiktok_post_status` | Write | Medium | https://policylayer.com/tools/hermoso/tiktok-post-status.md |
| `unbind_tiktok_ads_spark_post` | Write | Medium | https://policylayer.com/tools/hermoso/unbind-tiktok-ads-spark-post.md |
| `update_apple_ads_ad_account` | Write | Medium | https://policylayer.com/tools/hermoso/update-apple-ads-ad-account.md |
| `update_apple_ads_budget_order` | Write | Medium | https://policylayer.com/tools/hermoso/update-apple-ads-budget-order.md |
| `update_apple_ads_object` | Write | Medium | https://policylayer.com/tools/hermoso/update-apple-ads-object.md |
| `update_applovin_ads_campaign` | Write | Medium | https://policylayer.com/tools/hermoso/update-applovin-ads-campaign.md |
| `update_brand` | Write | Medium | https://policylayer.com/tools/hermoso/update-brand.md |
| `update_business_location` | Write | Medium | https://policylayer.com/tools/hermoso/update-business-location.md |
| `update_doc` | Write | Medium | https://policylayer.com/tools/hermoso/update-doc.md |
| `update_drive_file` | Write | Medium | https://policylayer.com/tools/hermoso/update-drive-file.md |
| `update_linkedin_conversion_rule` | Write | Medium | https://policylayer.com/tools/hermoso/update-linkedin-conversion-rule.md |
| `update_merchant_product` | Write | Medium | https://policylayer.com/tools/hermoso/update-merchant-product.md |
| `update_meta_catalog` | Write | Medium | https://policylayer.com/tools/hermoso/update-meta-catalog.md |
| `update_meta_object` | Write | Medium | https://policylayer.com/tools/hermoso/update-meta-object.md |
| `update_onedrive_file` | Write | Medium | https://policylayer.com/tools/hermoso/update-onedrive-file.md |
| `update_openai_ads_account` | Write | Medium | https://policylayer.com/tools/hermoso/update-openai-ads-account.md |
| `update_openai_ads_audience_members` | Write | Medium | https://policylayer.com/tools/hermoso/update-openai-ads-audience-members.md |
| `update_openai_ads_feed_products` | Write | Medium | https://policylayer.com/tools/hermoso/update-openai-ads-feed-products.md |
| `update_openai_ads_feed_settings` | Write | Medium | https://policylayer.com/tools/hermoso/update-openai-ads-feed-settings.md |
| `update_openai_ads_lead_form` | Write | Medium | https://policylayer.com/tools/hermoso/update-openai-ads-lead-form.md |
| `update_openai_ads_object` | Write | Medium | https://policylayer.com/tools/hermoso/update-openai-ads-object.md |
| `update_pinterest_ads_ad` | Write | Medium | https://policylayer.com/tools/hermoso/update-pinterest-ads-ad.md |
| `update_pinterest_ads_ad_group` | Write | Medium | https://policylayer.com/tools/hermoso/update-pinterest-ads-ad-group.md |
| `update_pinterest_board` | Write | Medium | https://policylayer.com/tools/hermoso/update-pinterest-board.md |
| `update_pinterest_pin` | Write | Medium | https://policylayer.com/tools/hermoso/update-pinterest-pin.md |
| `update_reddit_ads_ad` | Write | Medium | https://policylayer.com/tools/hermoso/update-reddit-ads-ad.md |
| `update_reddit_ads_ad_group` | Write | Medium | https://policylayer.com/tools/hermoso/update-reddit-ads-ad-group.md |
| `update_reddit_ads_audience_users` | Write | Medium | https://policylayer.com/tools/hermoso/update-reddit-ads-audience-users.md |
| `update_reddit_ads_campaign` | Write | Medium | https://policylayer.com/tools/hermoso/update-reddit-ads-campaign.md |
| `update_reddit_ads_max_template` | Write | Medium | https://policylayer.com/tools/hermoso/update-reddit-ads-max-template.md |
| `update_reddit_ads_post` | Write | Medium | https://policylayer.com/tools/hermoso/update-reddit-ads-post.md |
| `update_reddit_ads_saved_audience` | Write | Medium | https://policylayer.com/tools/hermoso/update-reddit-ads-saved-audience.md |
| `update_saved_creator` | Write | Medium | https://policylayer.com/tools/hermoso/update-saved-creator.md |
| `update_settings` | Write | Medium | https://policylayer.com/tools/hermoso/update-settings.md |
| `update_sheet` | Write | Medium | https://policylayer.com/tools/hermoso/update-sheet.md |
| `update_tag_manager_tag` | Write | Medium | https://policylayer.com/tools/hermoso/update-tag-manager-tag.md |
| `update_tiktok_ads_audience` | Write | Medium | https://policylayer.com/tools/hermoso/update-tiktok-ads-audience.md |
| `update_tiktok_ads_rule` | Write | Medium | https://policylayer.com/tools/hermoso/update-tiktok-ads-rule.md |
| `update_tiktok_tto_campaign` | Write | Medium | https://policylayer.com/tools/hermoso/update-tiktok-tto-campaign.md |
| `update_x_ads_campaign` | Write | Medium | https://policylayer.com/tools/hermoso/update-x-ads-campaign.md |
| `update_x_ads_line_item` | Write | Medium | https://policylayer.com/tools/hermoso/update-x-ads-line-item.md |
| `update_x_chat_settings` | Write | Medium | https://policylayer.com/tools/hermoso/update-x-chat-settings.md |
| `update_youtube_video` | Write | Medium | https://policylayer.com/tools/hermoso/update-youtube-video.md |
| `upload_apple_ads_asset` | Write | Medium | https://policylayer.com/tools/hermoso/upload-apple-ads-asset.md |
| `upload_applovin_ads_assets` | Write | Medium | https://policylayer.com/tools/hermoso/upload-applovin-ads-assets.md |
| `upload_file` | Write | Medium | https://policylayer.com/tools/hermoso/upload-file.md |
| `upload_google_ads_asset` | Write | Medium | https://policylayer.com/tools/hermoso/upload-google-ads-asset.md |
| `upload_meta_asset` | Write | Medium | https://policylayer.com/tools/hermoso/upload-meta-asset.md |
| `upload_reddit_ads_assets` | Write | Medium | https://policylayer.com/tools/hermoso/upload-reddit-ads-assets.md |
| `upload_snapchat_ads_creative` | Write | Medium | https://policylayer.com/tools/hermoso/upload-snapchat-ads-creative.md |
| `upload_tiktok_ads_creative` | Write | Medium | https://policylayer.com/tools/hermoso/upload-tiktok-ads-creative.md |
| `upload_tiktok_comment_image` | Write | Medium | https://policylayer.com/tools/hermoso/upload-tiktok-comment-image.md |
| `upsert_merchant_product` | Write | Medium | https://policylayer.com/tools/hermoso/upsert-merchant-product.md |
| `upsert_microsoft_merchant_product` | Write | Medium | https://policylayer.com/tools/hermoso/upsert-microsoft-merchant-product.md |
| `x_post_insights` | Write | Medium | https://policylayer.com/tools/hermoso/x-post-insights.md |
| `x_post_insights_historical` | Write | Medium | https://policylayer.com/tools/hermoso/x-post-insights-historical.md |
| `x_post_metrics` | Write | Medium | https://policylayer.com/tools/hermoso/x-post-metrics.md |

## Tool descriptions

- `answer_google_business_question` — Post the business’s answer to a public question on the brand’s Google Business Profile listing, or delete the answer already there. THIS IS AN UPSERT — one answer per account, so answering again REPLACES the previous one rather than addi…
- `apple_ads_change_history` — Who changed what on this Apple Ads account, and when. Call it with start and/or end to get one row per TRANSACTION GROUP — a single user action that may have touched several fields, which is what changeCount counts — with the user, the e…
- `associate_linkedin_conversion_campaigns` — Associate LinkedIn campaigns with a conversion rule — or detach them with remove:true. THIS IS WHAT MAKES A CONVERSION COUNT: LinkedIn only attributes a conversion to campaigns associated with its rule, so an unassociated rule reports ze…
- `cancel_openai_ads_audience_operation` — Cancel an accepted ADD or REMOVE on a ChatGPT Ads custom audience BEFORE its membership changes begin. ChatGPT Ads refuses once the operation is already applying changes, and that refusal is reported as it came. Free. The reply is the st…
- `cancel_scheduled` — Remove a queued post before it goes out. Get the id from list_scheduled. Only works while it is still queued — something already published cannot be unsent (use manage_meta_post to delete a Facebook/Instagram post after the fact).
- `cancel_stripe_subscription` — Cancel a Stripe subscription: at the end of the current period by default (the customer keeps access until then), or immediately:true to end it now. ALWAYS needs confirm:true, test keys included. The read-back distinguishes the two — a p…
- `clear_sheet_range` — Empty a range of cells in a Google Sheet, leaving the rows themselves in place. DESTRUCTIVE: call it WITHOUT confirm first and nothing is cleared — you get back the real number of filled cells in that exact range. Show the user that numb…
- `create_analytics_custom_dimension` — Register an event parameter the site ALREADY SENDS as a custom dimension, so reports can break down by it (plan tier, content category, logged-in state…). TWO THINGS TO TELL THE USER BEFORE CALLING: a GA4 custom dimension CANNOT BE DELET…
- `create_openai_ads_campaign` — Build a campaign on the connected ChatGPT Ads account — the ads that appear below ChatGPT answers. ALWAYS created PAUSED at every level, with no override: it spends NOTHING until you activate it with set_openai_ads_status(confirm:true). …
- `delete_analytics_key_event` — REMOVE A KEY EVENT — the reverse of create_analytics_key_event, and note the ASYMMETRY with custom dimensions: a key event really can be DELETED, where a custom dimension can only be archived. Nothing is destroyed — GA4 keeps collecting …
- `delete_apple_ads_object` — Delete an Apple Ads campaign, ad group, keyword, negative keyword, ad, creative, asset, location group or budget order. Requires confirm:true, and optionally confirmName echoed back to prove you aimed at the right object. THIS CASCADES A…
- `delete_bluesky_post` — PERMANENTLY delete one of the connected Bluesky account
- `delete_brand` — PERMANENTLY delete a profile and EVERYTHING in it — brand details, memory, swipefile, Library creations, generated assets, avatars, skills, playbooks, chats — and disconnect its connected accounts. Irreversible, and it applies to everyon…
- `delete_creator` — Remove a saved creator from this workspace’s cast by id (from list_creators). Records a cross-device delete so they don’t reappear on the user’s other devices. It only drops the roster entry — ads already rendered with that person are un…
- `delete_dm_automation` — Delete one automation by id on any channel. Nothing further is sent by it; messages already sent stay; on X the event subscription is removed when no rule needs it. To pause instead, save it with enabled:false. Free.
- `delete_drive_file` — Delete a Drive file. By default it goes to Trash (recoverable); pass permanent:true to delete it forever. Pass fileId (from list_drive_files) + confirm:true. Irreversible when permanent — confirm with the user first.
- `delete_google_ads_object` — PERMANENTLY remove a Google Ads object. Google has no HTTP delete — removal is a
- `delete_google_business_post` — Remove a Post from the brand’s Google Business Profile listing. This takes it off Google Search and Maps immediately and CANNOT be undone — confirm with the user first. Pass the full post name from list_google_business_posts. Needs Googl…
- `delete_instagram_dm_automation` — Delete one automation by id. Nothing further is sent by it; DMs already sent stay. To pause instead, save it with enabled:false. Free.
- `delete_linkedin_ads_object` — Delete a LinkedIn campaign group, campaign or creative (level:
- `delete_linkedin_comment` — Remove a comment from one of your LinkedIn company Page
- `delete_linkedin_lead_subscription` — Remove a lead notification webhook (subscriptionId from list_linkedin_lead_subscriptions). Leads themselves are unaffected and stay readable; only the real-time delivery stops. Read back from LinkedIn. Free.
- `delete_merchant_data_source` — Delete a data source (feed) from a Merchant Center account. CONFIRM-GATED and the heavier of the two deletes: without confirm:true nothing is deleted and it reports the feed plus HOW MANY PRODUCTS would be destroyed with it, counted live…
- `delete_merchant_product` — Delete a product from a Merchant Center feed. CONFIRM-GATED: without confirm:true nothing is deleted and it reports the real product it WOULD delete — title, price and availability read back from Google — because the id you were given pr…
- `delete_messenger_marketing_campaign` — Delete a marketing-message campaign. Irreversible: the first call names it and refuses; confirm:true deletes.
- `delete_meta_audience` — PERMANENTLY delete a Meta custom audience or lookalike. Meta’s own warning:
- `delete_meta_catalog` — PERMANENTLY delete a product catalog. Meta does not let a catalog be removed from a business portfolio and then restored, and it cannot be transferred to another portfolio — there is no archive and no undo, and its product sets go with i…
- `delete_meta_object` — PERMANENTLY delete a campaign, ad set, or ad. Pass objectId (from list_meta_ads) + adAccountId. DELETING A CAMPAIGN ALSO DELETES EVERY AD SET AND AD UNDER IT, and deleting an ad set deletes its ads — one id, the whole tree. Call it WITHO…
- `delete_microsoft_ads_object` — PERMANENTLY delete a Microsoft Advertising campaign, ad group, ad or keyword. This is a real delete — Microsoft removes the object and it stops being returned by every read, with no undelete and no documented recovery window. Pass level:
- `delete_microsoft_merchant_product` — Delete one product offer from a Microsoft Merchant Center store. Pass productId as the FULLY QUALIFIED id (channel:contentLanguage:targetCountry:offerId), not the offerId. Call without confirm first \u2014 nothing is deleted and you get …
- `delete_onedrive_file` — Delete a OneDrive item — it moves to the OneDrive recycle bin (recoverable there). Pass fileId (from list_onedrive_files) + confirm:true. Confirm the exact file with the user first.
- `delete_openai_ads_lead_sync` — Delete the lead-sync subscription: every lead form on the account stops delivering leads. confirm:true required.
- `delete_openai_ads_object` — Retire a ChatGPT Ads campaign, ad group or ad. THE OPENAI ADVERTISER API HAS NO DELETE — archiving is its only teardown, and OpenAI’s own guidance is
- `delete_openai_ads_spend_window` — Delete an active or scheduled spend-limit window before it ends — this REMOVES a spending ceiling. confirm:true required.
- `delete_pinterest_ads_object` — Retire a Pinterest campaign, ad group or ad. PINTEREST API v5 HAS NO DELETE for any of the three — ARCHIVED is its terminal state, and Pinterest’s own campaign docs call an archived campaign
- `delete_pinterest_board` — PERMANENTLY delete a board AND EVERY PIN ON IT. This is the heaviest thing that can be done to a Pinterest account and there is no undelete. Call it WITHOUT confirm first: nothing is deleted, and it answers with the board’s real name, ho…
- `delete_pinterest_pin` — PERMANENTLY delete a Pin. Pinterest has no undelete and no archive for one. Call it WITHOUT confirm first: nothing is deleted, and it answers with the Pin’s real title, its lifetime saves and impressions, and whether it HAS BEEN PROMOTED…
- `delete_playbook` — Delete a saved playbook by id (from list_playbooks). Records a cross-device delete so it does not come back on the next sync. Minor + re-creatable, so no confirm needed.
- `delete_reddit_ads_asset` — Permanently delete a creative asset from the Reddit asset library. Without confirm:true it deletes nothing and reports what the asset is; with it, the reply is the read-back (the asset reads as DELETED or gone), never Reddit’s 200. Free.
- `delete_reddit_ads_audience` — Permanently delete a Reddit custom audience. This is one of the very few things Reddit really deletes — campaigns, ad groups and ads are only ever archived — and it cannot be undone: the uploaded list is gone and any ad group targeting i…
- `delete_reddit_ads_object` — Remove a Reddit campaign, ad group or ad. REDDIT HAS NO DELETE VERB for any of the three — its whole Ads API has exactly four HTTP DELETE endpoints and none of them is a campaign, ad group or ad — so removal is the
- `delete_reddit_ads_saved_audience` — Delete a Reddit saved audience — the named, reusable targeting block ad groups point at. Reddit publishes NO delete verb for one (its whole Ads API has four, and this is not among them), so removal is its
- `delete_search_console_site` — Remove a property from the connected Google account. THIS LOSES HISTORY: the account loses access to that property\
- `delete_search_console_sitemap` — Remove a sitemap from a property. THIS DOES NOT REMOVE THOSE PAGES FROM GOOGLE\
- `delete_skill` — Delete one of the workspace’s CUSTOM skills by id (from list_skills). Built-in skills/recipes can’t be deleted. Minor + re-creatable, so no confirm needed.
- `delete_snapchat_ads_object` — PERMANENTLY DELETE a Snapchat campaign, ad squad or ad. Snapchat publishes a REAL delete verb at every tier — unlike TikTok, where removal is a status — so this is irreversible and there is no undelete. Needs confirm:true, and the unconf…
- `delete_telegram_message` — PERMANENTLY delete one message the bot posted to a Telegram chat. Call it WITHOUT confirm first: nothing is deleted and you get a sentence to show the user. There is deliberately NO preview of the message — the Bot API has no method that…
- `delete_thread` — PERMANENTLY delete one of the brand’s Threads posts. IRREVERSIBLE — Threads has no undelete. Call it WITHOUT confirm first: nothing is deleted, and it answers with the post’s real text plus its views, likes, replies and reposts read back…
- `delete_tiktok_ads_audience` — Delete one or more TikTok custom audiences. IRREVERSIBLE: TikTok publishes no undelete, any Lookalike seeded from one loses its seed, every ad group targeting it stops using it, and re-creating one means rebuilding the rule and waiting u…
- `delete_tiktok_ads_comment` — Warning: READ THIS BEFORE REACHING FOR IT: TikTok’s comment delete removes a comment YOUR OWN advertiser identity posted — your own reply. It CANNOT remove a comment left by a member of the public, and TikTok reports that per comment as …
- `delete_tiktok_ads_object` — Remove TikTok campaigns, ad groups or ads. TIKTOK HAS NO DELETE VERB — removal is modelled as a STATUS, exactly like Reddit — so this posts to the same route as set_tiktok_ads_status with status:
- `delete_tiktok_post_ad_authorization` — Delete the Spark-Ads authorization code for a post the authorized account owns. CONFIRM-GATED, and not because it spends: ads already built on the post keep running, but no NEW ad can be built against it until a fresh code exists, and Ti…
- `delete_whatsapp_template` — PERMANENTLY delete a WhatsApp message template. META DELETES EVERY LANGUAGE OF A NAME AT ONCE, which is a wider blast radius than most callers picture, so call it WITHOUT confirm first: nothing is deleted and it reports exactly how many …
- `delete_x_ads_object` — PERMANENTLY delete an X campaign, line item, promoted post or targeting criterion. X CASCADES AND PUBLISHES NO UNDO: deleting a campaign destroys its line items and their promoted posts too — verified live, the children answer 404 the mo…
- `delete_x_post` — Permanently delete one of the connected account’s posts on X. This CANNOT be undone — confirm the exact post with the user first. Costs credits (X bills per API call). Needs X connected.
- `delete_youtube_report_job` — Stop a YouTube bulk reporting job. IRREVERSIBLE IN A WAY THAT IS EASY TO MISS: the job IS the history — deleting it discards every daily CSV it has accumulated, and a replacement job starts over with only a 30-day backfill, so anything o…
- `delete_youtube_video` — PERMANENTLY delete a video from the connected YouTube channel. IRREVERSIBLE — YouTube has no trash and no undelete, and the video\
- `dismiss_microsoft_ads_recommendations` — Dismiss Microsoft Advertising recommendations by id so Microsoft stops offering them. IT CANNOT SPEND and it changes nothing about what the account runs (it takes advice off the list), so it takes no confirmation at all, which is the poi…
- `edit_timeline` — Compose ANY edit or transition yourself; there is no preset list. Segments on an output timeline (later ones drawn on top; overlapping ones ARE the transition), each animated by keyframes, plus your own HTML overlays and masks, compiled …
- `forget` — Delete a saved Memory item by its id (from list_memory). Records a cross-device delete so it doesn’t come back. Minor + re-creatable (you can remember it again), so no confirm needed.
- `leave_connector` — On a connector that several teammates can contribute their OWN account to (see list_connectors — the row reports multiContributor), remove YOURS from this profile: your stored credential is dropped and the accounts you shared stop being …
- `link_tiktok_tto_video` — Ask a creator to link one of their public videos to a TikTok One campaign, or withdraw that request. THIS PUTS A NOTIFICATION IN A REAL PERSON’S TIKTOK INBOX, AND REPEATING IT IS A REMINDER RATHER THAN A RETRY: TikTok refuses a second LI…
- `manage_bluesky_convo` — Act on one Bluesky DM conversation. ACCEPT a message request \u2014 Bluesky holds DMs from people the account does not follow in a separate requests folder, and until one is accepted it stays there. MUTE / UNMUTE it. LOCK / UNLOCK it (no…
- `meta_catalog_blast_radius` — Read what is INSIDE a product catalog — how many products, which product sets — and get the exact sentence describing what deleting it would destroy. Free and read-only. CALL THIS BEFORE PROPOSING A DELETE: deleting a catalog is permanen…
- `microsoft_ads_recommendations` — What Microsoft Advertising ITSELF suggests changing on the account: budget raises, new keywords, broad-match widenings, conflicting negative keywords to remove, and responsive search ads or extra headlines Microsoft has written. Each row…
- `moderate_meta_comment` — Moderate a comment on the brand’s Facebook or Instagram post. Prefer hide over delete — hiding is reversible and invisible to the commenter. Deleting is PERMANENT and requires confirm:true after the user has agreed.
- `moderate_tiktok_ads_comment` — THE MODERATION TOOL for TikTok ads, and the TikTok twin of moderate_meta_comment. Hiding takes a comment out of public view — everyone stops seeing it except the person who wrote it, who is never told — and it works on ANYONE’s comment, …
- `react_to_bluesky_dm` — Add or remove an emoji reaction on one message in a Bluesky DM \u2014 the light acknowledgement that does not need a written reply, and the thing to reach for when someone says \u201cthanks\u201d and a paragraph back would be worse than …
- `remove_applovin_ads_creative_set` — Take an AppLovin creative set out of its campaigns (all of them, or campaignIds). AppLovin’s API has no delete or archive, so this is its only removal: the set and its assets stay on the account and can be added back. Call it WITHOUT con…
- `remove_bing_webmaster_site` — Remove a site from the connected Bing Webmaster account — the heaviest thing in this connector. GATED ON BLAST RADIUS: called WITHOUT
- `remove_bing_webmaster_sitemap` — Remove a sitemap from Bing. GATED ON BLAST RADIUS, not just on intent: called WITHOUT
- `remove_member` — Remove a member from this profile by email — they lose access (you can re-invite them later), AND every connection THEY made on this profile is disconnected with them: their own X, LinkedIn, TikTok, YouTube, Pinterest, Threads… connectio…
- `remove_openai_ads_daily_spend_limit` — Remove the account-wide DAILY spending limit on ChatGPT Ads. This takes a spending CEILING off the whole account, so campaigns may then spend up to their own budgets every day; date-range spend-limit windows are not touched. Like every a…
- `reply_to_google_business_review` — Answer a customer review publicly, as the business, on the brand’s Google Business Profile listing — or delete a reply that is already there. THIS IS AN UPSERT: a listing has exactly one reply per review, so replying to a review that alr…
- `set_tiktok_ads_brand_safety` — Set what content this TikTok ad account’s ads may appear next to. THREE RULES TIKTOK IMPOSES AND ONE THING THAT CANNOT BE UNDONE. (1) The suitability controls move as a TRIO: TikTok requires brandSafetyType, categoryExclusionIds and vert…
- `unlink_google_ads_from_analytics` — REMOVE the link between a GA4 property and a Google Ads account. The link itself is trivially re-creatable, which is why this is not a one-way-door gate — but what breaks downstream is not: every campaign bidding on a conversion imported…
- `unsubscribe_meta_webhooks` — Remove this app’s webhook subscription from a Page, so Meta stops pushing its events. It removes the WHOLE subscription — Meta’s DELETE takes no field list — so it is all fields or none; to keep some, call subscribe_meta_webhooks again w…
- `update_youtube_channel` — APPLY THE BRAND TO THE CHANNEL ITSELF — banner art, description, keywords, country and the trailer non-subscribers see. Every other YouTube tool brands the videos; this brands the page they sit on. Under the hood channels.update is a PUT…
- `apple_ads_keyword_suggestions` — Apple’s OWN search data for an app you advertise — the fastest way to build a real Apple Search Ads keyword list instead of guessing. THE THREE KINDS DO NOT SHARE A FILTER VOCABULARY and Apple 400s any field that is not an attribute of t…
- `apple_ads_report` — Apple Ads performance \u2014 impressions, taps, installs, spend, TTR, CPT, CPA. level is campaign / adgroup / ad / keyword / searchterm; promotedObjectType is apps (App Store, the default) or business-brands (Ads on Apple Maps). startTim…
- `call_tool` — Run ANY Hermoso tool by name — including the paid-campaign, analytics and channel-admin tools that are not in this session\
- `diagnose_posts` — WHAT TO FIX NEXT, post by post — and the tool that fixes it. post_performance tells you which hook is AHEAD; this tells you what is WRONG with a given post and where the next edit goes. Under-distributed is A HOOK PROBLEM (change the ope…
- `duplicate_scheduled` — Copy an existing scheduled or already-published post into a NEW queued post — the way to run a creative again, reuse a post that worked as the starting point for the next one, or re-send something after it went out. It copies the caption…
- `google_ads_report` — Run a GAQL (Google Ads Query Language) report for detailed performance breakdowns — ad groups, ads, keywords, search terms, demographics, geo. Pass customerId + a GAQL query (SELECT … FROM <resource> WHERE segments.date DURING LAST_30_DA…
- `hermoso_capabilities` — Probe what this Hermoso account can do RIGHT NOW: available image/video model ids + their exact credit costs, aspect ratios, video durations, the recipe ids, and the canEdit/canAvatar flags. Call it when you need a specific model id, an …
- `linkedin_page_analytics` — ORGANIC performance for one of the brand’s LinkedIn COMPANY PAGES: total followers, followers gained (organic vs paid) across the window, Page views (all / unique / desktop / mobile), and the impressions, unique impressions, clicks, like…
- `microsoft_ads_keyword_ideas` — Microsoft Advertising\u2019s KEYWORD PLANNER — real monthly search volume, competition, suggested bid and ad impression share, expanded from seed keywords, a landing-page URL to mine, or a category. Run it BEFORE choosing keywords for a …
- `openai_ads_bulk` — Create or update up to 1,000 ChatGPT Ads campaigns, ad groups and ads in ONE asynchronous job — the direct analogue of a Google Ads atomic mutate, and the only way to build a whole tree in a single call. It builds CHAT-CARD campaigns onl…
- `pinterest_ads_async_report` — The DEEP Pinterest ad report — Pinterest\u2019s ASYNCHRONOUS lane, which reaches 914 DAYS back (2.5 years) where pinterest_ads_report stops at 90, and carries roughly three times the metric columns (conversion, ROAS and cross-device fami…
- `preview_openai_ads_ad` — Render a real preview of an existing ChatGPT Ads ad, so a human can LOOK at what will run instead of reading a list of ids back. Returns a hosted preview URL. THE LINK EXPIRES 24 HOURS AFTER IT IS CREATED — state that whenever you hand i…
- `reddit_ads_forecast` — Ask Reddit how big a targeting set is and roughly what a budget would buy — total reachable audience, the targeted slice, and estimated impressions, clicks and reach. Free, creates nothing, spends nothing, so run it BEFORE building an ad…
- `reddit_ads_report` — Performance for a Reddit ad account — impressions, clicks, spend, CTR, CPC, eCPM, reach and any of Reddit’s ~450 metric fields, optionally broken down by campaign, ad group, ad, date, hour, community, country, gender, interest, keyword, …
- `request_tiktok_tto_spark_authorization` — Ask the creator of a campaign video for Spark Ads authorization, so the brand can run their organic post as an ad. THIS IS THE ONLY WAY TO OBTAIN A SPARK ADS CODE WITHOUT THE CREATOR PASTING ONE OUT OF THE TIKTOK APP BY HAND: once they a…
- `run_post_refill` — Run the refill NOW instead of waiting for its daily turn. DRY BY DEFAULT: it returns the exact posts it WOULD queue — the caption, the creative, the channels and the per-channel visibility — without queueing anything or spending anything…
- `snapchat_ads_report` — Read Snapchat ad performance — impressions, spend, swipes and video quartiles — at ad account, campaign, ad squad or ad level. THREE THINGS TO KNOW BEFORE CALLING: granularity is required (TOTAL is the default); DAY and HOUR granularity …
- `tiktok_ads_rule_results` — EVERY EXECUTION OF THE USER’S AUTOMATED RULES — when each ran, what it acted on and what it changed. THIS IS THE ONLY PLACE THEY WILL SEE IT: TikTok routes rule notification emails to the developer address registered on the app rather th…
- `trigger_merchant_issue_action` — FIRE one of the actions merchant_issue_help returned — most usefully
- `use_brand` — Pin which profile this connection acts on. Pass the profile id or exact name from list_brands. Works for your own profiles AND one another account SHARED with you (pass its name or the profile id list_brands prints); access is verified a…
- `buy_credits` — Out of credits? Top up with a credit PACK. Call with no argument to list the available packs (id · credits · price). If the account has a saved card and you have billing-admin rights, calling with
- `refund_stripe_charge` — Refund a Stripe charge (ch_… or a pi_… payment intent): the full refundable amount, or a partial
- `set_auto_reload` — Turn automatic credit reloads on or off (admin only): when the balance drops below a threshold, the card on file is charged for a top-up pack — SERVER-SIDE, even with no app open. Requires a saved card, added once in the app at first che…
- `set_google_ads_budget` — Create a new daily budget, or change an existing budget’s daily amount (pass budgetResourceName). Raising the budget on a LIVE (ENABLED) campaign increases real spend immediately — you MUST show the user the new daily amount, get an expl…
- `set_meta_campaign_status` — Turn a campaign ON (ACTIVE) or OFF (PAUSED). ACTIVATING STARTS REAL AD SPEND — you MUST first show the user the campaign name + its daily budget, get an explicit yes, then call with status:
- `upgrade_plan` — Change this account
- `amplitude_active_users` — Amplitude ACTIVE or NEW user counts over a date range — the top-line
- `amplitude_chart` — READ BACK A SAVED AMPLITUDE CHART by its id — the chart the user already built in Amplitude
- `amplitude_funnel` — AMPLITUDE FUNNELS — the richest documented funnel surface of any analytics connector here, and the reason Amplitude is worth reaching for on a conversion question. Pass
- `amplitude_retention` — AMPLITUDE RETENTION — of the people who did startEvent, how many came back and did returnEvent. The two magic values are
- `amplitude_segmentation` — AMPLITUDE EVENT SEGMENTATION — an event over time, with filters and group-bys. metric is uniques / totals / pct_dau / average / histogram / sums / value_avg / formula (and
- `amplitude_user_activity` — ONE PERSON\
- `analytics_realtime` — WHO IS ON THE SITE RIGHT NOW — GA4\
- `analytics_report` — WHAT HAPPENED ON THE SITE — the GA4 Data API report, and the tool that answers
- `analyze_campaigns` — ONE verdict across EVERY ad platform this workspace has connected. It pulls each platform\
- `analyze_video` — A video ad
- `append_to_doc` — Append text to the end of a Google Doc Hermoso can reach — one it created (pass the documentId from create_doc) or one the user handed over with the Google file picker in the app (find its id with list_drive_files). Optional
- `append_to_sheet` — Append rows to a Google Sheet Hermoso can reach — one it created (pass the spreadsheetId from create_sheet) or one the user handed over with the Google file picker in the app (find its id with list_drive_files). rows = array of row arrays.
- `apple_ads_impression_share` — COMPETITIVE INTELLIGENCE: what fraction of the available impressions your app actually captures for each search term, by market and day or week. This is the report that finds where you are being out-bid or out-budgeted — a LOW share on a…
- `apple_ads_search_term_popularity` — The most-searched App Store terms in a genre and market — MARKET-WIDE DEMAND, not your own performance, so it works for finding terms to target before you have spent anything. Cross-read it against apple_ads_impression_share: a term rank…
- `backfill_posts` — Import this brand
- `billing_status` — Show this account
- `bind_tiktok_ads_rule` — Bind campaigns, ad groups or ads to an EXISTING automated rule, or unbind them from one. BINDING TO A RULE THAT IS RUNNING AND ABLE TO SPEND puts those objects under standing permission to have their budget or bid raised, which is the sa…
- `bing_webmaster_crawl` — Whether Bing can actually reach the site\
- `bing_webmaster_keywords` — REAL SEARCH DEMAND FOR ANY TERM, free. Modes:
- `bing_webmaster_links` — Inbound links according to Bing: counts per page (mode
- `bing_webmaster_query_stats` — The Bing twin of search_console_performance, split by what you want pinned. Modes:
- `bing_webmaster_submission_quota` — How many URLs this site may still submit to Bing today and this month, plus the separate content-submission budget. BING SETS THIS PER SITE AND IT VARIES — Microsoft\
- `bing_webmaster_traffic` — Bing clicks and impressions over time — for the whole site (mode
- `bluesky_account` — ACCOUNT-LEVEL numbers for a Bluesky account \u2014 FOLLOWERS, following and total posts \u2014 plus display name, bio, avatar and when it was created. With no argument it reads the CONNECTED account, which is the answer to \u201chow many…
- `business_google_updated` — What GOOGLE thinks a Business Profile should say \u2014 the pending edits it has inferred from the web, from user submissions and from its own sources, with
- `change_voice` — Swap the narration of a finished video into a different voice — keeps the performance, lip-sync, and background sound. Use when the user likes the video but wants a different narrator voice; use dub_video only for language translation. P…
- `check_ad_policy` — Pre-flight ad copy against Meta
- `check_analytics_compatibility` — FREE PRE-FLIGHT FOR analytics_report — ask Google whether these dimensions and metrics can appear in ONE report together, BEFORE running the report that would fail. Use it whenever a report combines fields you have not combined before, a…
- `check_apple_ads_app_eligibility` — Ask Apple whether an app may be advertised at all, PER PLACEMENT AND PER COUNTRY — the check Apple tells you to run before building a campaign around an app. Each row is ELIGIBLE or INELIGIBLE for one combination of placement, country or…
- `check_tiktok_creator_status` — Whether particular TikTok handles have joined TikTok One, up to 20 at a time, with each answered IN (can be invited), NOT_IN (a real account that has not joined) or INVALID (not a handle TikTok knows). WORTH CALLING BEFORE INVITING ANYON…
- `clip_video` — Cut ONE long video into several RANKED, ready-to-post short clips (podcast, webinar, interview, talk, long ad cut -> Reels/Shorts/TikTok). Transcribes with timestamps, picks the strongest SELF-CONTAINED moments, then cuts + reframes each…
- `clone_static` — One-click STATIC-AD CLONE (the web app calls it Clone): rebuild a competitor/reference STATIC (image) ad as an on-brand version — SAME layout, composition and energy, but YOUR product, brand colours, logo and voice, with every trace of t…
- `clone_video` — Remake a video you like FOR THIS BRAND from its link — a TikTok, Instagram Reel, Facebook video or reel, X post, YouTube Short or video, or a direct video file URL. Hermoso WATCHES it first (frames across the whole clip plus a transcript…
- `competitor_teardown` — Tear a competitor
- `dismiss_apple_ads_recommendation` — Decline an Apple Ads recommendation. NOTHING ABOUT THE CAMPAIGN CHANGES — no budget moves, no CPA moves, no status changes — it records that you reviewed the recommendation and said no, and Apple stops offering that particular one (it ma…
- `download_tiktok_ads_leads` — DOWNLOAD THE ACTUAL LEADS — the names, emails and phone numbers people entered in a TikTok Instant Form. REGION IS REQUIRED AND THERE IS NO
- `draft_brand` — Fill in a profile (a business brand or a creator) from a website domain, a free-text description, or a social handle, into a {name, products, logo, …} object you can pass to plan_ad / generate. 0 credits. IMPORTANT: a domain can resolve …
- `error_detail` — One error group in full by fingerprint (from list_errors): every field, plus the most recent redacted occurrences — status, connector, job id, workspace, and a shape-only echo of the inputs. This is what makes a bug reproducible. Read-on…
- `estimate_messenger_marketing_delivery` — Meta’s own estimate of how many marketing messages a budget would deliver from a Page and what it would cost, before anything is created. Free. Meta marks the metric “in development”, so treat it as a range.
- `face_check` — FREE, before any paid render: does a picture or video contain a face, and which video models refuse it (they cannot take a real person
- `fetch_app_screens` — Pull an APP brand
- `fetch_asset` — Resolve a generated asset reference (a /generated/… path or any URL) to a clickable absolute URL + a direct download URL.
- `fetch_bing_webmaster_url` — Ask Bingbot to fetch one URL now, so you can then read back what the crawler actually received with list_bing_webmaster_fetched_urls. THE FETCH IS QUEUED, NOT PERFORMED WHILE YOU WAIT — so
- `fetch_social_data` — Generic escape hatch for any ALLOWLISTED long-tail social/web endpoint the dedicated search_* tools don
- `find_competitors` — Discover a brand
- `find_creators` — Scan organic TikTok, Instagram Reels and YouTube for a niche across a few query variants, fold the posts into creators, and rank them on median views, engagement rate and how often they show up for that niche; the top rows get follower c…
- `find_google_ads_locations` — Look up Google Ads location targets by name — turns
- `find_instagram_marketplace_creators` — SEARCH INSTAGRAM
- `find_meta_audiences` — Look up the Meta targeting ids you need before building an ad set — interests, behaviours, cities/regions/zips/DMAs, languages, employers, job titles and schools. type:
- `find_sound` — A sound for an edit by name (
- `find_tools` — Search EVERY Hermoso tool — your starting list is deliberately short, and everything else in the product is here — by name, task or group. Each row gives the tool\
- `finish_draft` — FINISH a 480p Seedance 2.5 DRAFT in 1080p: the model regenerates THAT take (same scene, shots, motion, sound) at full resolution. Every 480p Seedance 2.5 render (generate_video / render_ad at resolution 480p) is a draft, finishable for 7…
- `finish_video` — Post-process an EXISTING rendered video (its served mp4 URL) with the proven direct-response
- `format_sheet` — Make an exported sheet readable: bold the header row, FREEZE it so it stays visible while scrolling, and auto-size the columns so nothing is cut off. Worth calling right after create_sheet — a raw export with unsized columns and a header…
- `get_analytics_stream_setup` — THE GTAG SNIPPET TO PASTE, plus what that web stream is actually set to collect. list_analytics_data_streams gives the measurement ID and stops one step short of what someone installing GA4 needs, which is the finished <script> block \u2…
- `get_apple_ads_ad_account` — The full record for an Apple Ads ad account — its name, currency, timezone, payment model, productFeatures and the advertiser resources delegated to it. Called with no id it returns the account this connection is pinned to. THE FIELD THA…
- `get_brand` — What Hermoso ALREADY KNOWS for the active profile: the same saved profile (products, logos, palette, positioning) + learned memory the web Studio uses. Call it when you need to know whether a brand is on file: if hasBrand is true you can…
- `get_business_location` — Read everything Google holds on one of the brand’s Google Business Profile listings — business name, address, phone numbers, website, categories, description, regular and special hours, service area, labels, store code, open state, and w…
- `get_drive_file` — Fetch one Drive file’s metadata — name, type, size, modified time, a webViewLink to open it and a webContentLink to download it. Pass fileId (from list_drive_files). Read-only.
- `get_job` — Poll a render job by id. Returns status (queued|running|done|error), progress, and on done the served media URL. Renders take 1–3 minutes: keep calling this until done/error without asking the user — several calls is normal, not a stall.…
- `get_linkedin_lead` — One LinkedIn lead by id (from list_linkedin_leads), with every answer named by field. Personal data — show, never republish. Read-only, free.
- `get_messenger_marketing_message_status` — Whether a paid Messenger marketing message was delivered. send_messenger_marketing_message returns a tracking id, which only means Meta ACCEPTED it; this reads what Meta pushed back on the Page webhook for each tracking id: sent, deliver…
- `get_meta_ad_account` — Read a Meta AD ACCOUNT’s BILLING and DELIVERY state: account status in words (ACTIVE, DISABLED, UNSETTLED unpaid balance, IN_GRACE_PERIOD failed payment, PENDING_RISK_REVIEW, CLOSED…) with the disable reason; currency and time zone; BALA…
- `get_onedrive_file` — Fetch one OneDrive item’s metadata — name, type, size, modified time, a webViewLink to open it and a webContentLink to download it. Pass fileId (from list_onedrive_files). Read-only.
- `get_openai_ads_audience` — Read one ChatGPT Ads custom audience: its processing status, how many users matched, what it can actually be USED for, and its membership revision. Read-only, free. STATUS is not the same question as eligibility —
- `get_openai_ads_audience_operation` — Poll an add/remove/replace submitted by update_openai_ads_audience_members until it reports succeeded or failed. Read-only, free. Until it succeeds the membership has NOT changed, so never report an audience update as done on the strengt…
- `get_openai_ads_business_agent` — One Business Agent with its full configuration and publish state. Read-only, 0 credits.
- `get_openai_ads_feed_settings` — A product feed’s name, countries and whether its organic ChatGPT search listing respects each product’s is_eligible_search flag. Read-only, 0 credits.
- `get_openai_ads_feed_sftp` — Whether SFTP bulk delivery is enabled for a ChatGPT Ads product feed, its connection URI and authentication method. Read-only, 0 credits.
- `get_openai_ads_landing_page_crawl` — The saved evidence from OpenAI’s landing-page crawler for an ad’s submitted version: crawl status and failure code, the requested and final URL (a redirect shows here), capture time, whether robots.txt allowed the crawler and its user ag…
- `get_openai_ads_lead_form` — One ChatGPT Ads lead form with its fields and revision ids (pass revisionId to read a specific revision). Read-only, 0 credits.
- `get_post_refill` — Show the automatic posting refill for this profile: whether it is on, whether it is in dry-run (preview) mode, how many days ahead it fills, its render budget, when it next runs, and how many posts are queued right now. It also names the…
- `get_reddit_ads_asset` — One stored Reddit creative asset by id — type, name, status, media dimensions and urls, or the headline/CTA text, plus any processing errors Reddit holds for it. Free.
- `get_reddit_ads_asset_uploads` — The processing state of one or more Reddit creative-asset uploads (ids from upload_reddit_ads_assets): PROCESSING, ACTIVE with the stored asset, or INVALID_MEDIA with Reddit’s reasons. Ids Reddit no longer knows are listed as missing, ne…
- `get_reddit_ads_max_template` — Read a Reddit Max template ad: its status, its assets, its destination and whether Reddit has finished generating ads from it (materialization SUCCESS, PARTIAL or FAILED with Reddit’s reasons, or still generating). Poll this after create…
- `get_settings` — Read this account\
- `get_skill` — Load a bundled skill’s full SKILL.md workflow instructions by name (from list_skills). Follow the loaded instructions to run that workflow with the other tools. Read-only, free.
- `get_tiktok_ads_brand_safety` — What content this TikTok ad account’s ads are allowed to appear next to — the inventory filter tier (EXPANDED / STANDARD / LIMITED / NO_BRAND_SAFETY) plus the suitability controls: which content categories are excluded and which vertical…
- `get_tiktok_mention` — Read the full detail of a SINGLE mention: a mentioning post, or a mentioning comment if you pass commentId as well. This exists for the TikTok mentions WEBHOOK: the event carries only ids, and this turns one into the caption, the creator…
- `get_tiktok_post_ad_authorization` — Read the Spark-Ads authorization status of a post the authorized account owns — whether it is promotable, its authorization CODE, and the window the authorization runs for. A SPARK AD CANNOT OUTLIVE ITS AUTHORIZATION, so check the end ti…
- `get_tiktok_tto_spark_authorization` — Whether a creator has approved Spark Ads authorization for their video, and if so the authorization CODE, the window it covers, and whether that code is already bound to an ad account. The code is what authorize_tiktok_ads_spark_post tak…
- `google_ads_change_history` — WHAT CHANGED ON THE ACCOUNT, AND WHEN — the answer to
- `google_ads_keyword_ideas` — Google’s own KEYWORD PLANNER: real keyword ideas with average monthly search volume, competition level and top-of-page bid estimates, so keyword choices are measured instead of guessed. Seed it with keywords[] (terms you already have), u…
- `google_business_insights` — How the brand’s Google Business Profile listing actually performed — impressions on Google Search and Maps (desktop and mobile), calls, website clicks, direction requests, messages and bookings — over the last N days. For a local busines…
- `google_business_search_keywords` — The actual search terms people typed on Google Search and Maps before this business listing appeared — the only keyword data a local business gets for free, and the direct input to their Google Ads keyword set, page titles and profile de…
- `headline_variants` — Turn ONE finished static ad into several copies that differ ONLY in the headline, for an A/B test: same picture, product, layout, colours and every other line. Pass
- `hermoso_credits` — Return the account credit balance, the credits this account has spent on the calls listed, those recent priced calls, and costModel — the one-sentence rule of what costs credits. THE RULE: only AI model runs and Ad Spy research spend cre…
- `hook_variants` — HOOK MULTIPLIER: give ONE finished video ad N NEW OPENING HOOKS, N complete versions to A/B test. A planned hook replaces the first ~1.5-4 s (ends at the source
- `hubspot_deals_report` — Deals from the brand
- `instagram_collaborators` — Did the collab invites on an Instagram post get accepted? Reports every collaborator on one of the brand\u2019s OWN Instagram posts with the status Instagram actually holds for it \u2014 Accepted (the post is live on their profile too, a…
- `instagram_insights` — ACCOUNT-level performance for the brand’s connected Instagram Business account — views, reach, accounts engaged, total interactions, likes, comments, shares, saves, profile link taps, replies, reposts and follows/unfollows — plus the AUD…
- `instagram_marketplace_creator` — ONE CREATOR FROM INSTAGRAM
- `instagram_profile` — Turn an Instagram @handle into the NUMERIC Instagram account id, straight from Meta — with the account’s real name, bio, follower count, post count, website and profile picture. Two jobs: it answers
- `like_instagram` — Like (or unlike) an Instagram post, Reel, comment or reply AS the brand’s Instagram account — Meta’s Like Media and Comments API (April 2026). The cheapest engagement a brand does: like the good comments on your own posts and the posts y…
- `linkedin_ads_report` — LinkedIn ad performance — impressions, clicks, cost, website conversions, leads and social actions — pivoted by CAMPAIGN (default), CAMPAIGN_GROUP, CREATIVE, ACCOUNT, CONVERSION, PLACEMENT_NAME, IMPRESSION_DEVICE_TYPE, SERVING_LOCATION… …
- `linkedin_audience_count` — HOW MANY LINKEDIN MEMBERS a targeting spec reaches, before any budget is committed — the cheapest sanity check there is on a B2B audience, and it needs no ad account. Pass locations plus optional include:{titles, industries, seniorities,…
- `linkedin_bid_pricing` — LinkedIn\u2019s OWN suggested bid and daily-budget range for a specific audience — the suggested bid with a low/mid/high range, the hard bid limits, and the minimum, default and maximum daily budget, all in the ad account\u2019s currency…
- `list_amplitude_annotations` — The markers already on this Amplitude project
- `list_amplitude_events` — The Amplitude TAXONOMY — the project\
- `list_analytics_audiences` — The GA4 audiences (remarketing lists) on a property, WITH whether they can actually be used in Google Ads — it reads the Google Ads link state alongside them, because an audience on an unlinked property is a silent dead end that reports …
- `list_analytics_data_streams` — The GA4 data streams on a property, with the measurement ID (G-...) each one carries and how many Measurement Protocol secrets it already has. THIS IS WHERE A GTAG OR GTM INSTALL GETS ITS ID, and it is the first call before sending any s…
- `list_analytics_definitions` — What a GA4 property already MEASURES — its key events (what GA4 counts as a conversion) and its custom dimensions, with each dimension\
- `list_analytics_google_ads_links` — Which Google Ads accounts a GA4 property is linked to, and whether each link has PERSONALIZED ADVERTISING on — the flag that decides whether GA4 audiences and remarketing events reach Google Ads at all. RUN THIS BEFORE two claims: that a…
- `list_analytics_metadata` — THE VOCABULARY OF ONE PROPERTY — every dimension and metric analytics_report will accept on it, INCLUDING that property\
- `list_analytics_properties` — The GA4 properties SHARED WITH THIS PROFILE, with their numeric property ids, display names and the Analytics account each sits under. CALL THIS FIRST — every other Analytics tool needs a PROPERTY ID, which is NUMERIC (e.g. 123456789) an…
- `list_apple_ads_ad_groups` — Ad groups on the brand’s Apple Ads account — status, the system-computed displayStatus, pricing model, the bid off the ad group’s bidStrategy, and whether Search Match (Apple’s automated keyword matching) is on. campaignId is OPTIONAL: w…
- `list_apple_ads_ads` — The ads on this Apple Ads account — the serving units that put a creative into an ad group. Each row carries the advertiser status, the rolled-up displayStatus, Apple’s own systemStatus and, when an ad is not serving, systemStatusReasons…
- `list_apple_ads_advertiser_resources` — The brands and content providers this Apple Ads ORGANIZATION can delegate to an ad account — the ids create_apple_ads_ad_account and update_apple_ads_ad_account need. resourceType CONTENT_PROVIDER returns App Store Connect content provid…
- `list_apple_ads_assets` — Images in the Apple Ads asset library with format, orientation, dimensions and eligibility — use it to check whether an uploaded asset has finished processing before referencing it in a creative. Filter by brandId (Apple’s promotedObject…
- `list_apple_ads_brands` — The Apple Maps brands on this Apple Ads account. A BRAND IS THE ROOT OF EVERY ADS-ON-APPLE-MAPS CAMPAIGN and its id is what three other calls need: it is the promotedObjectId of a BUSINESS_BRAND campaign, the brandId upload_apple_ads_ass…
- `list_apple_ads_budget_orders` — Budget orders on this Apple Ads account — a spend CEILING SHARED ACROSS CAMPAIGNS, which is how an agency caps a client for a quarter: total spend across every campaign assigned to one cannot exceed its value, however generous the indivi…
- `list_apple_ads_campaigns` — Read the brand’s connected Apple Ads (Apple Search Ads) campaigns — App Store search ads, on Apple’s Platform API. Each row carries status, the system-computed displayStatus, the daily budget, the bid strategy, the countries and placemen…
- `list_apple_ads_creatives` — The ad creatives on this Apple Ads account, each with its type, the app and product page it points at, its systemStatus (VALID / INVALID / PENDING) and its eligibility per ad placement. A creative is reusable — one can back ads in severa…
- `list_apple_ads_keywords` — Targeting or negative keywords with their match type, status and bid. THE TWO RESOURCES SCOPE DIFFERENTLY and Apple enforces it: TARGETING keywords (the default) need campaignId OR adGroupId — campaignId alone now returns every targeting…
- `list_apple_ads_location_groups` — The location groups on this Apple Ads account — named sets of a brand’s shops that an ad group targets. Each row carries its type (STATIC or DYNAMIC), Apple’s systemStatus and groupTotal, the number of locations currently in it. READ gro…
- `list_apple_ads_locations` — The physical business locations behind an Apple Maps brand — the shops, restaurants or service centres an Ads-on-Apple-Maps campaign promotes. Filter by brandId (do: without it Apple returns every location across every brand, which can b…
- `list_apple_ads_orgs` — The Apple Ads ad accounts these credentials can act as, with the roles held on each, plus the organization’s currency, time zone and payment model. NAMING: Apple’s older API called these “organizations” (campaign groups) and its Platform…
- `list_apple_ads_product_pages` — The App Store product pages this ad account can advertise — the post-tap destination a creative points at. Every app has exactly one DEFAULT product page (its standard listing, needing no setup) plus any CUSTOM PRODUCT PAGES the develope…
- `list_apple_ads_recommendations` — Apple’s own optimisation engine for this account: campaigns it thinks are budget-capped, and campaigns whose target CPA it thinks should move. type:
- `list_apple_ads_supported_languages` — Every country and region Apple Ads serves, with the languages supported in each market. Use it to VALIDATE A LOCALE BEFORE setting it on an Apple Maps creative’s localizedText or defaultLocale, or on an ad group — a locale a market does …
- `list_applovin_ads_assets` — Assets on the AppLovin account: id, type (VID_LONG_P, VID_SHORT_P, IMG_INTER_P, IMG_BANNER, HOSTED_HTML), review status and rejection reasons. Read-only, free.
- `list_applovin_ads_campaigns` — The brand’s AppLovin Ads campaigns: id, name, LIVE/PAUSED, daily budget, goal, countries, landing page. Read-only, free.
- `list_applovin_ads_creative_sets` — AppLovin creative sets with their assets and review status, for one campaign (campaignId) or the whole account. Read-only, free.
- `list_bing_webmaster_fetched_urls` — The URLs fetched on demand as Bingbot for this site, or one of them in detail (pass
- `list_bing_webmaster_sitemaps` — The sitemaps registered for this site — Bing calls them FEEDS — with the status, URL count, file size and last-crawled date Bing holds for each. This is the read to make BEFORE submitting or removing one, because both of those are addres…
- `list_bing_webmaster_sites` — The Bing Webmaster Tools sites SHARED WITH THIS PROFILE, each exactly as Bing holds it (e.g.
- `list_bluesky_convos` — Read the connected Bluesky account\u2019s DM conversations \u2014 who each one is with, how many messages are unread, and whether it is a REQUEST (someone the account does not follow, which Bluesky holds separately, the same idea as a me…
- `list_bluesky_posts` — The brand
- `list_brands` — List every profile on this account (id + name; a profile is a brand, a creator or a personal workspace) and which one this connection acts on, PLUS any profile another account shared with you. Call this, then use_brand to switch; a SHARE…
- `list_business_attributes` — The ATTRIBUTES a Business Profile can set \u2014 accessibility, amenities, service options, payment types \u2014 with the valid values for each. These are what local searchers FILTER on, so a listing with none set is invisible to those f…
- `list_business_categories` — Google\u2019s CATEGORY vocabulary for a country \u2014 the primary category is a required field on a Business Profile and one of the strongest LOCAL RANKING signals, and Google accepts only its own stable ids (
- `list_business_locations` — List the Google Business Profile listings SHARED WITH THIS PROFILE — id, title, address, website and Maps link. These are the only listings anything here can post to or read: one Google login often manages several businesses (an agency m…
- `list_connector_accounts` — Show every identity a connected account can act as, and which ones this PROFILE is currently allowed to use — Facebook Pages + Instagram + Meta ad accounts, Google Ads customers, LinkedIn company Pages (and the personal profile), Pintere…
- `list_connectors` — List the third-party accounts connected to this workspace (Meta, Google Ads, Google Drive/Sheets/Docs, YouTube, LinkedIn, OneDrive, Slack, …) — provider, status and the connected account label — PLUS which providers are available to conn…
- `list_creators` — List this workspace’s SAVED CREATORS — the reusable on-camera cast (AI creators made here, a person pulled from a social profile, a consented photo upload). Read-only, FREE. Each entry gives the name, the PORTRAIT URL, where the portrait…
- `list_dm_automations` — The brand\
- `list_drive_files` — List the Google Drive files & folders Hermoso can reach — the ones it created, plus any the user handed over with the Google file picker in the app (the drive.file scope exposes nothing else, never their entire Drive). This is how you fi…
- `list_errors` — The errors actually recorded against this workspace, GROUPED by fingerprint — the same failure at the same call site is one row with a hit count and first/last seen, sorted defects-first. Each row says whose side it is:
- `list_google_ads_campaigns` — Read the connected Google Ads account(s). Call with NO customerId to list the accessible accounts (customerId + name + currency) — do this first to pick a target. Call WITH customerId to list that account’s campaigns (id, name, status, d…
- `list_google_ads_conversion_actions` — List the conversion actions on a Google Ads account and say plainly whether smart bidding can work there. Call this BEFORE proposing MAXIMIZE_CONVERSIONS / MAXIMIZE_CONVERSION_VALUE / TARGET_CPA / TARGET_ROAS or any Performance Max campa…
- `list_google_business_posts` — List the Posts currently on the brand’s Google Business Profile listing — text, topic type, state (LIVE / PROCESSING / REJECTED / SCHEDULED / RECURRING), button and timestamps. Use it to see what is already showing before writing another…
- `list_google_business_questions` — The questions the public has asked on the brand’s Google Business Profile listing, with the answers so far and how many people upvoted each question. Unanswered questions sit publicly on the listing and are read as
- `list_google_business_reviews` — The reviews customers have left on the brand’s Google Business Profile listing — star rating, reviewer, the text, when it landed, and whether the business has replied. For a local business this is the highest-leverage surface there is: a…
- `list_hooks` — The curated menu of VISUAL scroll-stop HOOKS (how an ad opens) and SETTINGS (where it is staged) that plan_ad and render_ad accept, PLUS this brand
- `list_hubspot_contacts` — Contacts from the brand
- `list_inbox` — EVERYTHING PEOPLE SAID TO THIS BRAND, across every connected channel, in one list: Facebook and
- `list_instagram_collab_invites` — Posts where a creator tagged this Instagram account as a COLLABORATOR and is waiting for an answer. The post appears on the brand’s profile only once the brand accepts, and Instagram sends no notification here, so this list is the only w…
- `list_instagram_collab_media` — Every collaborative post this Instagram account is a co-author on — who posted it, and the COMBINED engagement across all co-authors (total likes and comments, plus saves, shares and reposts where Instagram provides them). Read-only, free.
- `list_instagram_dm_automations` — The brand\
- `list_instagram_marketplace_audiences` — The brand
- `list_instagram_media` — The connected Instagram Business account’s own recent media — id, caption, media type (feed / reel / story-era), permalink, timestamp, like and comment counts. This is where the media id every other Instagram tool needs comes from: resol…
- `list_instagram_shopping_catalogs` — Whether this Instagram account can tag products at all, and which catalogs its SHOP can tag from. CALL THIS FIRST: product tagging needs an APPROVED INSTAGRAM SHOP, and if the account does not have one, tagging fails AFTER the photo is a…
- `list_jobs` — List the most recent render jobs + how many are currently running, so you can report on or resume in-flight work.
- `list_library` — Browse this workspace
- `list_linkedin_ads_campaigns` — Read the LinkedIn ad accounts this connection can reach, and — with adAccountId — that account’s campaign groups and campaigns: name, status, objective, budgets, and LinkedIn’s own servingStatuses, which explain WHY something is not deli…
- `list_linkedin_comments` — Read the comments people have left on one of your LinkedIn company Page
- `list_linkedin_conversion_rules` — List the conversion rules on a LinkedIn ad account, including ones SHARED from other accounts in the same Business Manager. Use it to find the conversionId send_linkedin_conversions needs, and to check whether a rule can actually receive…
- `list_linkedin_events` — The events a LinkedIn company Page is organizing \u2014 name, link, start and end times, online or in-person, visibility and lifecycle state. LinkedIn is the one channel where an event is a first-class object rather than a post about one…
- `list_linkedin_lead_events` — The lead events LinkedIn has PUSHED to Hermoso for this brand (new lead / deleted lead, with the form and the lead id), newest first. Empty means none have arrived, not that none exist — list_linkedin_leads reads every lead regardless, a…
- `list_linkedin_lead_forms` — The LEAD GEN FORMS a LinkedIn company Page or ad account owns — id, name, state, version and the fields each one asks for (firstName, email, company …). Forms are created in Campaign Manager or on the Page; this API reads them and cannot…
- `list_linkedin_lead_subscriptions` — The lead notification webhooks registered on a LinkedIn Page or ad account, with the id delete_linkedin_lead_subscription takes. Read-only, free.
- `list_linkedin_leads` — The LEADS a LinkedIn lead gen form collected — every response with its answers keyed by field (firstName, lastName, email, company, …), the campaign and creative that produced it, the consents ticked, and whether it was a test lead. Newe…
- `list_linkedin_pages` — List the LinkedIn COMPANY PAGES the connected account administers — id, name and the role held on each. ALWAYS call this before post_to_linkedin_page when there is more than one Page: publishing to the wrong company Page is a public mist…
- `list_memory` — List the durable facts & preferences saved in this workspace’s Memory (what the studio remembers about the brand, audience, taste, and do/don’t rules) — the same Memory the web app shows. These shape every future ad. Read-only, free.
- `list_merchant_accounts` — List the Google Merchant Center accounts this brand
- `list_merchant_data_sources` — List the data sources (feeds) on a Merchant Center account and say which of them can actually take a product write. Do this BEFORE creating or deleting a product: writes go into a data source, and Google only accepts them into an API-inp…
- `list_merchant_inventory` — The per-store and per-region price and availability overrides on one Shopping product. An override REPLACES the product
- `list_merchant_issues` — Read the account-level issues Google reports on a Merchant Center — the answer to \
- `list_merchant_products` — Read the products in a Merchant Center feed — what the merchant actually offers, which is what Shopping and retail Performance Max campaigns serve. Needs merchantCenterId from list_merchant_accounts. Read-only and free.
- `list_merchant_promotions` — The sale and discount promotions on a Merchant Center account, with each one
- `list_messenger_marketing_campaigns` — The marketing-message campaigns on an ad account: name, id, budgets, schedule. Free.
- `list_messenger_subscribers` — The people who OPTED IN to marketing messages from a Facebook Page — their subscription tokens, the only address a paid Messenger marketing message can go to (there is no
- `list_meta_ads` — Read the EXISTING campaigns, ad sets, or ads on a connected Meta ad account — id, name, status, budget, objective. Pass adAccountId (from list_meta_pages) and level (campaign|adset|ad). Scope to a parent with campaignId (-> its ad sets/a…
- `list_meta_audiences` — List the custom audiences and lookalikes on a connected Meta ad account — id, name, type, approximate size, and whether Meta says it is ready to target. Call it before create_meta_audience (so you never build a duplicate) and before targ…
- `list_meta_catalog_products` — A page of the actual PRODUCTS in a catalog — name, retailer id, price, availability, image and, most importantly, Meta’s REVIEW STATUS for each. A REJECTED product stays in the catalog, is counted by the catalog’s catalog.product_count f…
- `list_meta_catalogs` — The PRODUCT CATALOGS this Meta login can advertise from — id, name, how many products each holds, and which business portfolio owns it, WITH THAT PORTFOLIO’S NUMERIC ID. It also lists every business portfolio this login administers (
- `list_meta_comments` — Read the comments under a Facebook Page post or Instagram media object — customer questions, objections and the exact language real people use about the product. Good raw material for ad copy, and the first step before replying or modera…
- `list_meta_conversations` — The DM threads on the brand’s Facebook Page and its Instagram account — who wrote, when they last wrote, how many messages and how many are unread. THIS IS WHERE THE BUYING QUESTION GETS ASKED. IT READS THE INBOX AND THE MESSAGE REQUESTS…
- `list_meta_lead_forms` — List the INSTANT LEAD FORMS on a connected Facebook Page — id, name, status, how many leads each has collected and what each one asks. This is where the formId every other lead tool needs comes from, and calling it before create_meta_lea…
- `list_meta_pages` — List the Facebook Pages (with any linked Instagram business account) and ad accounts on the connected Meta account — use before post_to_meta / create_meta_campaign to pick the target. Requires the user to have connected Meta (Settings > …
- `list_meta_partnership_creators` — The creators this brand has set up for PARTNERSHIP ADS — ads that run from a CREATOR’s handle instead of the brand’s, which is what a paid collaboration looks like in feed. TWO SEPARATE LISTS come back and NEITHER IMPLIES THE OTHER: the …
- `list_meta_pixels` — List the META PIXELS on one of the brand’s ad accounts — id, name, when it was created, and WHEN IT LAST FIRED. This is where the pixelId every conversion tool needs comes from: create_meta_ad takes it (with conversionEvent) to optimise …
- `list_meta_posts` — List the connected Facebook Page
- `list_meta_product_sets` — The PRODUCT SETS inside one catalog — a set is a slice of the catalog (
- `list_meta_webhook_events` — The Page events Meta has PUSHED to Hermoso — new comments, mentions, lead-form submissions and inbound Messenger/Instagram DMs — each with the moment it arrived. This is the difference between a brand learning about a comment when someon…
- `list_microsoft_ads_audiences` — List a Microsoft Advertising account
- `list_microsoft_ads_campaigns` — Read the brand’s connected Microsoft Advertising (Bing Ads) account(s). Call with NO accountId to list the accounts shared with this profile — do this first to pick a target. Call WITH accountId to list that account’s campaigns (id, name…
- `list_microsoft_ads_conversion_goals` — The conversion goals on a Microsoft Advertising account — what the account COUNTS as a conversion, and therefore what every conversion-optimised bid strategy on it is optimising toward. Flags which ones are OFFLINE goals: those are the o…
- `list_microsoft_ads_profile_targeting` — Read the LinkedIn profile targeting on a Microsoft Advertising campaign: every company, industry, job function, seniority and job title criterion with its bid adjustment and criterion id, read from Microsoft. A profile type Microsoft wou…
- `list_microsoft_merchant_catalogs` — List the catalogs inside a Microsoft Merchant Center store. Catalogs logically group products, and a Shopping campaign
- `list_microsoft_merchant_issues` — Why a Microsoft Merchant Center store
- `list_microsoft_merchant_products` — Read the product offers in a Microsoft Merchant Center store \u2014 the feed a Microsoft Shopping campaign serves from. Pass productId to fetch ONE offer, or omit it to page the store (limit up to 250, then pass the returned pageToken). …
- `list_microsoft_merchant_stores` — List the brand
- `list_mixpanel_cohorts` — THE SAVED COHORTS in the Mixpanel project — each with its id, name, description and CURRENT MEMBER COUNT. Two uses, and both matter for advertising: the counts alone answer \
- `list_mixpanel_events` — The EVENT VOCABULARY of the Mixpanel project — the most common event names over THE LAST 31 DAYS, so a query names something the project actually records rather than a guess. Start here before any other Mixpanel call. Pass
- `list_onedrive_files` — List files & folders in the user’s OneDrive — the root by default, a folder’s contents (folderId), or a name search (query). onlyFolders:true lists folders only. Paginate with pageToken (the cursor from a previous call). Read-only.
- `list_openai_ads_audience_operations` — List the membership operations (add, remove, replace) ChatGPT Ads has accepted on one custom audience, each with its status. Use it to find an operation whose id was lost, or to see what is still pending, before get_openai_ads_audience_o…
- `list_openai_ads_audiences` — List the custom audiences on the connected ChatGPT Ads account. Pass intendedUse to see only the ones eligible for exclusion, inclusion or a bid multiplier (inclusion and bid multipliers need roughly 25,000 matched users). Read-only, free.
- `list_openai_ads_audit_logs` — Who changed what on the ChatGPT Ads account and when: each create/update with its actor and every changed field’s before and after value. Read it first when a campaign starts or stops spending unexpectedly. Filter by campaignId (includes…
- `list_openai_ads_business_agent_tools` — The eligible TOOLS installed for this ChatGPT Ads account that a Business Agent can be given (pass their ids as toolIds to create_openai_ads_business_agent). Read-only, 0 credits.
- `list_openai_ads_business_agents` — The BUSINESS AGENTS on this ChatGPT Ads account — a Business Agent is a branded assistant ChatGPT serves inside an ad (mode business_agent on the campaign): instructions, conversation starters, optional product feeds, tools and a lead fo…
- `list_openai_ads_campaigns` — Read the brand’s connected ChatGPT Ads account — the ads that appear below ChatGPT answers. Every campaign, ad group and ad row carries servingIssues, OpenAI’s own list of what is blocking delivery (payment method, brand review, budget s…
- `list_openai_ads_conversion_events` — List the conversion event settings on the connected ChatGPT Ads account. Their ids are what a campaign points at (conversionEventSettingIds) so it optimises for CONVERSIONS rather than raw clicks — without one, conversion-optimised biddi…
- `list_openai_ads_feed_uploads` — Recent product-feed UPLOADS across the account with per-upload status, rows accepted / rejected / ads-eligible and OpenAI’s DIAGNOSTICS (code, severity, field and rows affected, e.g. invalid_value on price) — the way to learn why product…
- `list_openai_ads_feeds` — The PRODUCT FEEDS on this ChatGPT Ads account (id, name, countries, currencies, the count of ingested products eligible for ads, and campaign count). A product-feed campaign (mode product_feed) advertises products from one of these; upda…
- `list_openai_ads_lead_forms` — The ChatGPT Ads LEAD FORMS on this ad account — id, status (draft/published/archived), draft and published revision ids, fields. A lead form is what a Business Agent uses to collect a name/email/choice inside the chat; it only collects o…
- `list_openai_ads_lead_sync` — The lead-sync subscription(s) on this ChatGPT Ads account — the webhook that receives every lead a lead form collects. With none, leads have nowhere to go. Read-only, 0 credits.
- `list_openai_ads_spend_windows` — Account-level SPENDING LIMITS on ChatGPT Ads, both kinds: the date-range SPEND-LIMIT WINDOWS (a ceiling on what the whole account may spend between an inclusive start date and an exclusive end date, with amount and spent so far) and the …
- `list_pinterest_ads_campaigns` — Read the brand’s connected Pinterest AD account(s). Call with NO adAccountId to list the ad accounts shared with this profile — do this first to pick a target. Call WITH adAccountId to list that account’s campaigns (id, name, status, obj…
- `list_pinterest_boards` — List the boards on the user’s connected Pinterest account — id, name, privacy and pin count. ALWAYS call this before post_to_pinterest and let the USER pick: Pinterest requires a board and Hermoso never chooses one for them. Read-only, 0…
- `list_pinterest_pins` — The Pins on one of the account’s boards — or, with no boardId, the account’s own Pins across all of them. Each row carries the Pin id, title, description, destination link, alt text, board, creation date, and whether it HAS BEEN PROMOTED…
- `list_playbooks` — List the PLAYBOOKS saved in this workspace — the reusable strategy cards (winning hooks, angles, formats and the concrete plays to run) kept from teardowns, angle mining and creatives worth repeating. The same Playbooks the web app\
- `list_posthog_annotations` — The markers already on this PostHog project
- `list_posthog_projects` — The PostHog projects the connected personal API key can see, and which ONE this profile is pointed at. Only the ACTIVE project is readable. That is deliberate: PostHog\
- `list_posthog_session_recordings` — SESSION REPLAYS — the capability GA4 has no equivalent of at all. Lists recent recordings with who they belong to, how long they ran, how many clicks / keypresses / CONSOLE ERRORS each had, the URL they started on, and a link that opens …
- `list_product_photos` — List the product photos ALREADY saved in your workspace — the brand
- `list_published_posts` — List every post Hermoso has recorded publishing for this brand, newest first, across all channels — channel, permalink, caption, format, the HOOK and SUBJECT it was written to, and its measured engagement. The WHOLE history, no cap: pass…
- `list_reddit_ads_assets` — The IMAGE and VIDEO assets stored on a Reddit profile, with status, dimensions and media urls; filter by type and name, paginate with pageToken. Reddit’s list is media-only: HEADLINE and CTA assets are stored but never listed here — read…
- `list_reddit_ads_audiences` — List the CUSTOM AUDIENCES (uploaded customer lists) on a Reddit ad account, with each one’s match-size range and status. Reddit will not deliver to an audience under about 1,000 matched redditors, and the reply says which ones fall short…
- `list_reddit_ads_campaigns` — Read the brand’s connected Reddit AD account(s). Call with NO adAccountId to list the ad accounts shared with this profile — do this first to pick a target. Call WITH adAccountId to read that account’s whole tree at once: campaigns, ad g…
- `list_reddit_ads_lead_forms` — Listing and reading forms KEEPS WORKING past the 2026-09-21 sunset — Reddit deliberately leaves GET/LIST up so advertisers can retain their records — so use this to EXPORT what exists before the deadline. Reddit exposes no API for the LE…
- `list_reddit_ads_pixels` — List the conversion pixels on a Reddit ad account, each with the LAST TIME IT FIRED — which is the difference between
- `list_reddit_ads_posts` — List the POSTS on a Reddit profile — these are the creatives Reddit ads promote. Use it to find an existing post to advertise rather than creating a near-duplicate. Call list_reddit_ads_profiles first for redditProfileId. Read-only, free.
- `list_reddit_ads_profiles` — List the Reddit PROFILES attached to an ad account. A Reddit ad promotes a POST, and every post is published AS one of these profiles — so this is the first call in any Reddit creative build, and its id is what create_reddit_ads_post nee…
- `list_reddit_ads_saved_audiences` — List the SAVED AUDIENCES on a Reddit ad account — named, reusable targeting definitions (communities, interests, geos, devices and so on) that an ad group can point at instead of repeating the whole block. The reply says how many live ad…
- `list_scheduled` — Show what is queued to post and what already went out. Each fired item reports PER-CHANNEL outcomes, so you can see that (say) Instagram published and TikTok failed on the same item rather than a single misleading verdict. Past items are…
- `list_search_console_sitemaps` — The sitemaps registered on a Search Console property: when each was last submitted and last downloaded by Google, whether Google has processed it yet, its error and warning counts, and per content type how many URLs it SUBMITTED against …
- `list_search_console_sites` — The Google Search Console properties SHARED WITH THIS PROFILE, each with the exact property string every other Search Console tool takes and the connected account\
- `list_sheet_tabs` — The tabs in a Google Spreadsheet, each with its name, numeric sheetId, row/column count and position. Call this BEFORE naming a tab in update_sheet / clear_sheet_range / manage_sheet_tabs / format_sheet, and before proposing to delete on…
- `list_shopify_products` — The merchant
- `list_skills` — List the bundled Hermoso SKILLS — multi-step workflow instructions (SKILL.md) that orchestrate the other tools (research an ad space, plan+render a finished ad, product photoshoot, raw generation) — plus the in-app strategy skills and cr…
- `list_snapchat_ads_accounts` — List the Snapchat AD ACCOUNTS SHARED WITH THIS PROFILE — the ones it may actually build on and spend from, which is NOT everything the Snapchat login can reach — id, name, currency, timezone and status. Every other Snapchat Ads tool need…
- `list_snapchat_ads_campaigns` — Read the whole Snapchat ad tree for an ad account — campaigns, ad squads and ads with their statuses. The three tiers are fetched separately so one failure cannot take the tree down, and a tier that FAILED to read is reported in
- `list_snapchat_ads_profiles` — FIND THE PUBLIC PROFILE ID EVERY SNAPCHAT AD CREATIVE REQUIRES. Snapchat has required profile_properties on every creative since 2024-02-26, so without one upload_snapchat_ads_creative cannot build anything — this is where the id comes f…
- `list_stripe_charges` — Recent charges on the brand
- `list_stripe_coupons` — Coupons on the brand
- `list_stripe_customers` — Recent customers on the brand
- `list_stripe_invoices` — Invoices on the brand
- `list_stripe_products` — Products on the brand
- `list_stripe_refunds` — Refunds on the brand
- `list_stripe_subscriptions` — Subscriptions on the brand
- `list_swipefile` — List this workspace\
- `list_tag_manager_containers` — The Google Tag Manager containers SHARED WITH THIS PROFILE, with the exact containerPath every other Tag Manager tool needs. CALL THIS FIRST. A container is addressed by PATH, \
- `list_tag_manager_tags` — WHAT IS ACTUALLY FIRING ON THE SITE. Every tag in the container
- `list_tag_manager_versions` — THE CONTAINER
- `list_team` — List the members of the current profile — email, role (admin/member) and status. Read-only, free.
- `list_telegram_chats` — Find the chat ids this Telegram bot can be addressed by. STATE THE LIMIT WHENEVER YOU USE IT: this is NOT the list of chats the bot belongs to — the Bot API publishes no such method — it is every chat that SENT the bot an update in the l…
- `list_telegram_dms` — Read what people have SENT to the connected Telegram bot — the newest message from each chat, newest chat first, so you can see who is waiting on a reply. Reply with post_to_telegram using the chatId shown.
- `list_templates` — Ready-to-run ad BRIEFS by industry: dropshipping, ecommerce, mobile apps, restaurants, real estate and local services (12 trades: plumbers, electricians, hvac, roofers, landscapers, house-cleaners, pest-control, auto-repair, salons, med-…
- `list_threads_mentions` — Posts where someone MENTIONED the brand on Threads — anywhere, not just under your own posts. This is brand listening: real objections, questions and the exact language customers use, which is strong raw material for ad copy and for mine…
- `list_threads_posts` — List recent posts on the brand’s connected Threads account (id, text, media, permalink, timestamp). Use it to find a post id for threads_insights, list_threads_replies, reply_to_thread or delete_thread.
- `list_threads_profile_posts` — The recent PUBLIC posts of any Threads account \u2014 the raw material for a teardown, for mine_angles, and for ad copy in the language the market actually uses. Use it after threads_profile, or on its own when you already know the handl…
- `list_threads_replies` — Read the replies on a Threads post. Set conversation:true to walk the entire thread rather than only direct replies. Use before reply_to_thread so you answer with the actual conversation in view.
- `list_tiktok_ads_accounts` — List the TikTok ADVERTISER accounts this profile can act on — id, name, currency, timezone and status. Every other TikTok Ads tool needs an advertiserId, and this is where it comes from: call this first and let the USER pick when there i…
- `list_tiktok_ads_app_events` — The conversion events an APP campaign may actually optimise toward on one app — the app twin of list_tiktok_ads_pixels, and the same distinction between
- `list_tiktok_ads_apps` — The mobile apps registered on a TikTok ad account. An APP_INSTALL campaign cannot be built without one, and an APP-activity audience uses these ids as its event sources — so this is the missing lookup that made APP_INSTALL offerable and …
- `list_tiktok_ads_audiences` — The custom audiences on a TikTok ad account — retargeting pools built from real behaviour (website pixel, app activity, ad engagement, organic posts, leads, shop activity) plus any lookalike grown from them. Until this existed, TikTok ta…
- `list_tiktok_ads_blocked_words` — The ad account’s blocked-word list — a standing filter that hides ANY comment containing one of these words, automatically, across every ad on the account, before a human ever sees it. NOTHING ELSE IN HERMOSO DOES THIS: Meta and YouTube …
- `list_tiktok_ads_business_centers` — The TikTok Business Centers reachable on this connection. THIS IS THE ONE PIECE OF STRUCTURE THAT MAKES THE CATALOG TOOLS DIFFERENT FROM EVERY OTHER TIKTOK TOOL: a product catalog belongs to a Business Center, not to an ad account, so th…
- `list_tiktok_ads_campaigns` — Read a TikTok advertiser account’s whole tree in one call — campaigns, ad groups and ads, each with the operation status that says whether it is enabled at all. Omit advertiserId when the brand reaches exactly one account; with several, …
- `list_tiktok_ads_catalog_products` — The products inside a TikTok catalog, each with whether it can ACTUALLY be advertised and — when it cannot — TikTok’s own rejection reason together with its suggested fix and which placements and countries were affected. usableInAds is t…
- `list_tiktok_ads_catalog_sets` — The product SETS in a TikTok catalog — the slices an ad group can target instead of the whole catalog — each with its filter conditions and how many products it holds. Product sets are built in TikTok Ads Manager rather than here, and th…
- `list_tiktok_ads_catalogs` — The product catalogs in a TikTok Business Center — the containers Dynamic Product Ads sell from — each with HOW MANY OF ITS PRODUCTS ARE APPROVED, REJECTED OR STILL PROCESSING, which is the difference between
- `list_tiktok_ads_comments` — The public comments people have left on your TikTok ads — the read that finally makes TikTok comment moderation possible through Hermoso, where Meta and YouTube moderation already shipped. Covers both paid-impression ads and Spark Ads. T…
- `list_tiktok_ads_crm_event_sets` — The CRM Event sets on a TikTok ad account. A CRM Event Set is where LEAD-LIFECYCLE events go — a lead that became qualified, booked a demo, or closed — and sending those back with send_tiktok_ads_events (eventSource
- `list_tiktok_ads_custom_conversions` — List the Custom Conversions defined on a TikTok EVENT SOURCE — narrower, rule-based conversions built on top of a pixel event (for example
- `list_tiktok_ads_identities` — List the IDENTITIES on a TikTok advertiser account — the TikTok accounts an ad is allowed to appear as. THIS IS A HARD PREREQUISITE, not a convenience: a TikTok ad carries no identity of its own and there is NO DEFAULT, so create_tiktok_…
- `list_tiktok_ads_identity_posts` — List the real ORGANIC TikTok posts published by one identity — the account itself, not the ad library. THIS IS WHERE A SPARK AD STARTS: pass an itemId from here to create_tiktok_ads_ad as tiktokItemId and the ad IS that post, with its ow…
- `list_tiktok_ads_lead_fields` — The questions a TikTok Instant Form asks — which is exactly the set of columns download_tiktok_ads_leads will return. It is NOT a fixed schema: it is whatever that form was built to ask, so read it before promising a user which fields th…
- `list_tiktok_ads_lead_forms` — The Instant Forms (lead forms) on a TikTok ad account — this is where the pageId every other lead tool needs comes from. A form whose status is EDITED is a DRAFT and has never been able to collect anything, which is a different thing from
- `list_tiktok_ads_offline_event_sets` — The Offline Event sets on a TikTok ad account — the containers real-world conversions are reported into: an in-store purchase, a phone booking, a signed contract, a call-centre sale. An id here is what send_tiktok_ads_offline_events repo…
- `list_tiktok_ads_payment_portfolio_links` — Which ad accounts draw money from one TikTok payment portfolio, and which users are allowed to spend from it. Two separate TikTok calls answering two separate questions, so one failing does not empty the other; a half that could not be r…
- `list_tiktok_ads_payment_portfolios` — The payment portfolios under a TikTok Business Center; how a customer’s ad accounts are actually funded, whether the money is pooled across them (an Advanced portfolio) or held per account (a Standard one), how many accounts draw on each…
- `list_tiktok_ads_pixels` — List the conversion pixels on a TikTok ad account, each with the EVENTS it can optimise toward — which is the difference between
- `list_tiktok_ads_rules` — THE AUTOMATED RULES RUNNING ON A TIKTOK AD ACCOUNT, and — the part that matters — which of them can move money. Every row carries canSpend, the specific actions that put it there (armingActions), whether its reach is UNBOUNDED (a rule ta…
- `list_tiktok_ads_spark_posts` — List the TikTok posts a post OWNER has authorised this ad account to promote — the creator-collaboration half of Spark Ads. These are posts from accounts the brand does NOT control: the owner generates an authorization code in the TikTok…
- `list_tiktok_ads_store_products` — The products inside a TikTok Shop, with titles, images, price ranges, currency and historical sales. Pass adCreationEligible to also learn which of them may ACTUALLY be advertised; CUSTOM_SHOP_ADS for Shopping Ads, GMV_MAX for a Product …
- `list_tiktok_ads_stores` — The TikTok Shops granted to a TikTok ad account; what Shopping Ads and GMV Max campaigns sell from. Each row also names the BUSINESS CENTER that can reach the shop, and that is what list_tiktok_ads_store_products needs, because the produ…
- `list_tiktok_ads_verification_documents` — Which identity or business documents TikTok accepts for verification in a given country; the list differs everywhere, so there is no useful default and the country is required. Returns each document’s name and the code submit_tiktok_ads_…
- `list_tiktok_brand_hashtag_posts` — Public posts whose captions carry one of the brand hashtags this account has enabled. It is the hashtag half of brand monitoring, where list_tiktok_mentions covers @-mentions. Omit
- `list_tiktok_brand_hashtags` — The brand hashtags this account curates, in two flavours. kind:
- `list_tiktok_comment_replies` — All replies to a single comment on a post the authorized TikTok account owns — the complete list, where list_tiktok_comments only ever attaches three. TIKTOK DOES NOT RETURN REPLIES TO A HIDDEN COMMENT AT ALL, so an empty list against a …
- `list_tiktok_comments` — Read the comments on a TikTok post the AUTHORIZED ACCOUNT OWNS — this is TikTok
- `list_tiktok_creator_labels` — TikTok’s creator category labels, in two sets that are NOT interchangeable. labelType
- `list_tiktok_mention_comments` — Comments and replies anywhere on TikTok whose TEXT @-mentions the connected account
- `list_tiktok_mentions` — Who is talking about the brand on TikTok: every public post whose CAPTION @-mentions the connected account
- `list_tiktok_smart_campaigns` — Read the Smart+ campaigns on a TikTok advertiser. TikTok’s reads LAG its writes, so a campaign created seconds ago can be missing here and still exist — the reply says so rather than reporting an empty account.
- `list_tiktok_tto_accounts` — The TikTok One accounts this TikTok connection can act on. TikTok One is TikTok’s influencer marketplace: find creators, invite them to a campaign, get their videos tagged to it, read organic-versus-paid performance on those videos, and …
- `list_tiktok_tto_brand_profiles` — The Brand Profiles on a TikTok One account. A Brand Profile is what a creator sees when they open an invite link; name, industry, logo, website and optionally the brand’s own TikTok account; and a brand-level campaign cannot exist withou…
- `list_tiktok_tto_campaigns` — The TikTok One creator campaigns on this account, each with its invite link, the creators invited, the videos linked so far, the ad accounts that automatically receive Spark Ads rights, and the COUNTRY CODES that tiktok_tto_campaign_repo…
- `list_tiktok_tto_link_requests` — Every video-linking request on this TikTok One account and where each one stands; waiting on the creator, approved, rejected or withdrawn; plus how many reminders are left on it. READ THIS BEFORE RE-SENDING ANYTHING: a second LINK is a r…
- `list_tiktok_videos` — The connected account’s own TikTok posts with per-video stats — views, likes, comments, shares, duration, cover image and link. TWO WAYS TO ASK: with no arguments it lists the most recent (newest first, up to 20 a page); with videoIds it…
- `list_watch_findings` — Read what the standing COMPETITOR WATCH has found — the new ads each watched brand has launched since the last check, plus the watch\
- `list_whatsapp_accounts` — The WhatsApp Business Accounts SHARED WITH THIS PROFILE and the phone numbers registered on each — the ids every other WhatsApp tool needs, plus each number’s QUALITY RATING, which is what decides how many messages Meta will let it send.…
- `list_whatsapp_templates` — The message templates on one WhatsApp Business Account with the REVIEW STATUS Meta actually holds for each. THE STATUS IS THE POINT: an APPROVED template is the only thing WhatsApp accepts outside the 24-hour customer-service window, and…
- `list_x_ads_accounts` — List the X (Twitter) ad accounts this profile can act on, with the PERMISSION LEVEL held on each so you can tell an admin grant from a read-only one before attempting a write. X grants API access PER AD ACCOUNT, not per app: the customer…
- `list_x_ads_campaigns` — List campaigns on an X ad account — status, budgets, and whether X considers each servable. Omit accountId when only one account is reachable and it resolves itself. Read-only, free.
- `list_x_ads_funding_instruments` — List the funding instruments (payment methods) on an X ad account — type, currency, credit limit, credit remaining, and whether each can currently fund a campaign. THIS IS THE ANSWER TO “why is my X campaign not delivering?” whenever the…
- `list_x_ads_line_items` — List the line items on an X ad account — X
- `list_x_ads_promoted_tweets` — List the promoted posts (the CREATIVES) attached to an X line item, or across the whole ad account. Two things only this can tell you: each post
- `list_x_ads_targeting` — List every targeting criterion an X line item carries, WITH THE ID of each — the id needed to remove one with delete_x_ads_object. READ THE EMPTY CASE CORRECTLY: no targeting criteria on X means the line item is UNRESTRICTED and will rea…
- `list_x_blocks` — The accounts the connected X account has BLOCKED, with handle, name, bio and follower count. READ-ONLY: X refuses the block and unblock WRITE on the access tier Hermoso\
- `list_x_broadcasts` — The connected X account
- `list_x_chats` — The connected X account
- `list_x_dms` — Read the direct messages sent to the connected X account and group them into conversations, newest first — who is waiting on a reply, in their own words. Use it for
- `list_youtube_captions` — List the caption/subtitle tracks on one of the connected channel’s videos, and optionally DOWNLOAD one as text. A caption TRACK is not the same thing as burned-in captions: a track is what YouTube indexes the video by, what a viewer togg…
- `list_youtube_categories` — List the video categories YouTube will accept on an upload in a given country. post_to_youtube takes a
- `list_youtube_comments` — Read the comments under a video on the connected channel — the questions, objections and exact wording real viewers use. Same raw material for ad copy that list_meta_comments gives you on Meta. Returns author, text, like count, timestamp…
- `list_youtube_playlists` — List the playlists on the connected YouTube channel — id, title, description, privacy and video count. Pass a playlistId to get that ONE playlist plus its entries in order. IMPORTANT: each entry carries BOTH a
- `list_youtube_report_jobs` — The YouTube BULK reporting jobs running on this channel — which report each one generates, its report type id, and when it was scheduled. Call this to find out whether thumbnail-CTR history is already accumulating, and since when, BEFORE…
- `list_youtube_video_stats` — Views, likes and comment counts for up to 50 YouTube videos IN ONE CALL, which is how to answer \
- `list_youtube_videos` — List the connected channel’s OWN recent uploads — video id, title, publish date and privacy — so you can resolve a video WITHOUT asking the user for a link. Call this whenever the user names a video loosely (
- `localize_ad` — Translate the on-image text of ONE finished static ad into other languages and keep everything else: same picture, layout, typeface, colours, logo and product. Pass
- `make_explainer` — AI HOST EPISODE: format
- `make_template_ad` — An ad or post rendered from HTML: no AI model, ~30s, a couple of credits. Presets are SHORTCUTS;
- `make_thumbnail` — Render a click-driving YOUTUBE / Shorts / Instagram THUMBNAIL or video cover through the full production pipeline (concept, casting, scene, render, tweaks, text), not a bare image prompt. Use it for any \
- `merchant_account_status` — WHY THE MERCHANT CENTER ACCOUNT IS OR IS NOT SERVING, in one read. Do not trust the program state on its own: an account can report Shopping ads and free listings as ENABLED and serve in ZERO countries, because Google counts a region as …
- `merchant_quota` — Merchant Center API quota and account limits, which is the difference between \
- `merchant_report` — COMPETITOR INTELLIGENCE GOOGLE COMPUTES FOR FREE, for any retail brand with a Merchant Center. Ten report views, read with a SQL-like MCQL query. The three worth reaching for first:
- `meta_webhook_status` — What Meta ACTUALLY has recorded for this app on a Page — the fields it will push, read straight back from Meta rather than from anything we stored. CHECK THIS BEFORE CONCLUDING THAT WEBHOOKS ARE NOT WORKING: an unsubscribed Page is compl…
- `microsoft_ads_auction_insights` — Who ELSE is competing for the same Microsoft Advertising auctions — the other advertisers’ domains with their impression share, overlap rate, position-above rate, top-of-page rate and outranking share. microsoft_ads_report tells you what…
- `microsoft_ads_budget_opportunities` — Where a Microsoft Advertising campaign is BUDGET-CONSTRAINED — Microsoft\u2019s own recommended budget against the current one, the estimated WEEKLY click and impression gain from raising it, and a budget/return curve. Omit campaignId fo…
- `microsoft_ads_bulk_download` — Export a Microsoft Advertising account as a BULK FILE — one spreadsheet holding whatever slice of the account you ask for. This is the ONLY way to read most of a Microsoft account: roughly 185 of Microsoft’s record types are reachable he…
- `microsoft_ads_geo_search` — Resolve country / region / city names to the Microsoft Advertising location ids that create_microsoft_ads_campaign needs. Read-only, free, 0 credits. Use it when a location ask is ambiguous (
- `microsoft_ads_report` — Performance for a Microsoft Advertising account — impressions, clicks, CTR, average CPC, spend, conversions.
- `mine_angles` — Mine ad ANGLES from real customer language: gathers the customer
- `mixpanel_funnel` — A saved Mixpanel funnel. Call with NO id to LIST the saved funnels and their ids; call with funnelId to read its conversion data. Warning: MIXPANEL HAS PUT THE FUNNELS QUERY API IN MAINTENANCE MODE — their words:
- `mixpanel_insights` — READ BACK A SAVED MIXPANEL REPORT by its bookmark id — and this is the PREFERRED Mixpanel lane, not a fallback. Mixpanel has put BOTH its Segmentation and its Funnels query APIs in maintenance mode and recommends in their place that the …
- `mixpanel_profiles` — THE PEOPLE THEMSELVES in Mixpanel — the per-user lane, and the question GA4 structurally cannot answer at all. Pass
- `mixpanel_retention` — MIXPANEL RETENTION — how many of the people who did a first thing came back and did another, cohorted by day / week / month. This endpoint is FULLY SUPPORTED, unlike segmentation and funnels, which Mixpanel has put in maintenance mode — …
- `mixpanel_segmentation` — One Mixpanel event over time, optionally broken down by a property (
- `moderate_x_broadcast` — Moderate the connected X account
- `openai_ads_bulk_job` — Poll a ChatGPT Ads bulk job and read the result of EVERY operation in it. Reports the job status (pending, in_progress, completed, partially_failed, failed — the last three are terminal) plus a per-operation verdict: created, updated, va…
- `openai_ads_geo_search` — Look up ChatGPT Ads location ids by name — countries, regions and DMAs — so a campaign can be geo-targeted. GEO AND CUSTOM AUDIENCES ARE THE ONLY LIST-BASED TARGETING THIS PLATFORM HAS: there are no interests, no lookalikes, no age or ge…
- `openai_ads_report` — Performance for ChatGPT Ads — impressions, clicks, spend, CTR, CPC, CPM, and CONVERSIONS with CPA, post-click conversion rate and attributed order sales / ROAS, in the ad account currency. OpenAI returns conversions only with granularity…
- `pinterest_ads_report` — Performance for a Pinterest ad account — spend, impressions, clicks, CTR, effective CPC and conversions — at ANY of Pinterest’s four levels: the whole ACCOUNT, by CAMPAIGN, by AD GROUP, or by individual AD. Ad level is how you answer
- `pinterest_analytics` — ORGANIC Pinterest performance — impressions, saves, Pin clicks, outbound clicks and their rates, for the whole ACCOUNT, for the TOP PINS, for the TOP VIDEO PINS (with view-through and average watch time), or for ONE Pin. This is unpaid r…
- `pinterest_audience_insights` — WHO the Pinterest audience IS, rather than what it did — interest categories each carrying an affinity INDEX, plus demographics (ages, countries, devices, genders, metros). Three audiences: YOUR_TOTAL_AUDIENCE, YOUR_ENGAGED_AUDIENCE, and…
- `pinterest_targeting_analytics` — WHICH AUDIENCE SEGMENT actually delivered on Pinterest — ad performance broken down by keyword, targeted interest, age bucket, gender, location, region, country, placement, app type, media type and more. targetingTypes is REQUIRED becaus…
- `plan_variations` — Fan a brief into N DISTINCT ad angles (different hooks/mechanics/audiences), each with its own headline + visual brief — then render each with generate_image and rank with score_ad. LLM planning only; renders nothing itself.
- `posthog_insight` — Read back an insight the user already BUILT in their PostHog UI — funnels, retention curves, trends and paths. Call with NO id to LIST the saved insights with their names and ids; call with insightId for that insight\
- `posthog_persons` — Look up PEOPLE in PostHog by distinct id, email or a free-text search, with their properties. This is the per-user half GA4 cannot do: resolve a specific customer, then use their distinct id inside posthog_query to see exactly what that …
- `posthog_query` — ASK POSTHOG A QUESTION IN HogQL — their SQL dialect over the
- `preview_meta_ad` — Render a REAL preview of a Meta ad, per placement — Meta returns a link that shows exactly what a person scrolling Facebook or Instagram would see. Pass adAccountId + adId (from list_meta_ads), or creativeId. Optional placements (comma-s…
- `product_sizzle` — Render an 18-30s music-led PRODUCT SIZZLE: ONE 15s Seedance 2.0 hero clip of the product, diced into fast cuts and intercut with typeset spec/CTA cards on a brand-coloured grain background, mixed to a music bed. Faceless by design — no p…
- `pull_competitor_ads` — Pull one named brand\u2019s live ads from the Meta (Facebook and Instagram) Ad Library: deduplicated, sorted, with the brand\u2019s own page resolved. One call, back in a few seconds. Use it when the user names a brand and asks what ads …
- `query_openai_ads_feed_products` — List the products in a feed that match filters ({field, operator in|not_in|gt|gte|lt|lte|contains|not_contains|starts_with, values[]}) — the SAME filter shape an ad group’s productSet takes, so this previews exactly which products that a…
- `read_bluesky_dm` — Read a Bluesky DM conversation in CHRONOLOGICAL order (Bluesky returns newest-first on the wire; this reverses it so the conversation reads top to bottom). Each message says whether it was sent by this account. A message with no text is …
- `read_doc` — Read the text of a Google Doc Hermoso can reach — one it created, or one the user handed over with the Google file picker in the app (that is how an EXISTING doc becomes readable; find its id with list_drive_files). Pass documentId (from…
- `read_meta_conversation` — The messages in one DM thread, oldest to newest, each marked inbound or outbound — plus WHETHER A REPLY IS ALLOWED RIGHT NOW. Meta only permits a reply within 24 hours of the person acting, and the window is computed from their LAST MESS…
- `read_meta_leads` — Read the LEADS a form (formId) or a single ad (adId) has collected — the real answers people submitted, fetched live from Meta. THIS RETURNS REAL PEOPLE’S CONTACT DETAILS (names, emails, phone numbers). Treat it as the user’s own custome…
- `read_sheet` — Read cells from a Google Sheet Hermoso can reach — one it created, or one the user handed over with the Google file picker in the app (that is how an EXISTING spreadsheet becomes readable; find its id with list_drive_files). Pass the spr…
- `read_x_broadcast_chat` — The chat on one of the connected X account
- `recast_hook` — RECAST A VIRAL HOOK with the brand
- `recast_motion` — Motion transfer: re-perform a clip
- `reddit_ads_bid_suggestion` — Reddit’s own suggested bid for a given objective, bid type and targeting — a median, a sensible range, and the hard floor below which Reddit will not accept a bid. Amounts come back in the ad account’s currency. Free, creates nothing. Us…
- `reddit_ads_history` — Read the CHANGELOG for a Reddit ad account — what was changed, from what to what, by which member, and when. This is the tool for
- `reframe_video` — Reframe a video to a different aspect ratio (e.g. 16:9 master -> 9:16 vertical) with smart subject tracking. Paid render; returns the served URL of the reframed video.
- `remix_static` — The OLD NAME of clone_static, kept so agents that already call it keep working. It is the same tool with the same inputs, result and cost; prefer clone_static.
- `render_ad` — RECOMMENDED for finished video ADS: render a plan_ad concept through the SAME quality pipeline as the Hermoso web Studio — timed shot list, exact/clean speech (no garbled words), text composited in post (never model-painted), an optional…
- `reply_to_inbox_item` — Answer an inbox item BY ITS COMPOSITE ID — the
- `repost_thread` — Repost an existing Threads post to the brand’s own Threads profile — the Threads equivalent of a retweet. It is how a brand amplifies a customer’s post, a mention, or one of its own older threads without copying the text, and there was p…
- `request_feature` — Ask the Hermoso team for a capability that doesn
- `research_ads` — Open-ended ad research that needs JUDGMENT across platforms — comparisons,
- `restyle_video` — RESTYLE a clip into a new LOOK: every frame redrawn, shots, motion, camera, framing, timing and sound kept. Looks:
- `score_ad` — Virality/performance prediction for a finished ad (image or video URL): overall score, per-dimension breakdown (scroll-stop, hook, clarity, brand/product, CTA, retention, goal fit), strengths, and the single biggest fix. Use BEFORE spend…
- `search_apple_ads_apps` — Find the App Store app to advertise and its adamId — the id every other Apple Ads tool needs (create_apple_ads_campaign’s appAdamId, a creative’s destination, an eligibility check). Call it with NO arguments to list the apps THIS Apple A…
- `search_apple_ads_geo` — Resolve a place NAME into the geo id an Apple Ads ad group actually targets. THIS IS THE ONLY WAY TO GET THOSE IDS: an ad group’s targeting takes adminAreaIds / localityIds / postalCodeIds / countryIds, it does NOT accept place names, an…
- `search_console_performance` — THE REAL SEARCH TERMS — Google Search Console\
- `search_console_url_inspection` — THE LIVE INDEX STATUS OF ONE PAGE, straight from Google: the index verdict, coverage state, whether robots.txt allows it, which URL Google picked as canonical versus the one the page itself declares, when it was last crawled and as which…
- `search_google_ads` — Structured Google Ads Transparency pull for ONE advertiser (by domain or advertiserId) — use when you know the brand; use research_ads for open-ended research. Deliberately fetches the cheap BASIC listing (get_ad_details=false, ~1 credit…
- `search_instagram` — Organic Instagram REELS keyword search (/v2/instagram/reels/search — our only IG keyword surface; profile/hashtag pulls go through fetch_social_data with a handle). Returns compact JSON {desc, author, handle, plays, likes, link, cover} p…
- `search_instagram_audio` — Audio the brand may legally put under a Reel — music or original sound — with title, artist, length, whether it is eligible for ads, a preview link and a download link. Omit the query for what is TRENDING right now; pass one to search. E…
- `search_instagram_hashtag` — Read the PUBLIC Instagram posts carrying a hashtag — the caption, the media, the permalink and the like and comment counts — on the brand’s own Meta credentials rather than a scraper. This is category and competitor listening: find how a…
- `search_instagram_shopping_products` — The products in one catalog that can actually be TAGGED on an Instagram post — this is where the product_id for a product tag comes from. Omit
- `search_linkedin_ad_library` — Search the ads running on LinkedIn, from LinkedIn\u2019s OWN Ad Library, and get three things no ad scrape can give you: the advertiser\u2019s actual TARGETING (location, language, audience, company, job, age, gender, interests, traits \…
- `search_linkedin_ads` — Structured LinkedIn Ad Library search by company name, keyword, or companyId — use for a targeted B2B pull; use research_ads for open-ended research. Returns compact JSON {advertiser, headline, description, cta, link, media, dates, impre…
- `search_linkedin_ads_targeting` — Look up LinkedIn TARGETING entities by name and get their URNs — locations, job titles, industries, seniorities, company sizes, skills, job functions, interests, employers, degrees, fields of study, member behaviours. LinkedIn’s targetin…
- `search_linkedin_brand_partnerships` — Search ORGANIC LinkedIn posts that creators have themselves disclosed as brand partnerships \u2014 paid influencer content, not ads bought through Campaign Manager. Use it to see which creators a competitor is paying, what a sponsored po…
- `search_meta_ads` — Structured Meta (Facebook/Instagram) Ad Library pull — use when you know exactly WHAT to fetch: a keyword (query) OR one advertiser (companyName / pageId). Returns compact JSON {page_name, body, cta, link, dates, media} per ad. For open-…
- `search_microsoft_ads_profiles` — Find the LinkedIn profile ids Microsoft Advertising can target: a company (CompanyName), an Industry or a JobFunction. A company is found with Microsoft’s own company search (3+ characters); industries and job functions are matched again…
- `search_pinterest_ads_targeting` — THE IDS AN AD GROUP’S targetingSpec NEEDS. create_pinterest_ads_campaign and create_pinterest_ads_ad_group accept interests, locales, locations, age buckets and keywords — this is where those values come from, and guessing one is the wor…
- `search_posts` — The POSTS people make ABOUT a subject — a brand (
- `search_reddit` — Reddit keyword search (/v1/reddit/search, top-ranked) — a goldmine for the customer
- `search_reddit_ads_targeting` — Look up the exact values Reddit ad-group targeting expects, so none of them has to be guessed. kind:
- `search_snapchat_ads_targeting` — Resolve Snapchat targeting options to the ids an ad squad needs — countries (REQUIRED: an ad squad cannot be created without at least one), regions, metros, age groups, genders, languages, device OS or interests. NEVER invent one of thes…
- `search_threads` — Organic Threads keyword search (/v1/threads/search) — short-form text/social posts for trend + voice research. Returns compact JSON {desc, author, handle, likes, link, cover} per post. Spends about a credit.
- `search_threads_keyword` — Search PUBLIC Threads posts for a keyword or topic — competitor listening, finding what people say about a product, or sourcing real customer language for ad copy. Distinct from search_threads, which reads a specific profile.
- `search_threads_locations` — Search Threads’ public place index by name (or by latitude+longitude) and get location ids. Use this when the brand has a PHYSICAL location — a restaurant, salon, gym, store — so the post can be geotagged to it. Pass the chosen id as pos…
- `search_tiktok` — Organic TikTok keyword search (there is NO TikTok ad library) — top-performing videos to mine for hooks/trends/remixable creative. Returns compact JSON {desc, author, handle, plays, likes, link, cover} per video, ranked by plays. Use res…
- `search_tiktok_ads_targeting` — Look up the exact ids TikTok ad-group targeting expects, so none of them has to be invented. kind:
- `search_x` — Keyword search across the PUBLIC X index \u2014 the last 7 days. This is the X half of ad-spy research, alongside search_tiktok / search_instagram / search_reddit / search_threads / search_youtube. X\u2019s own search OPERATORS work and …
- `search_youtube` — Organic YouTube keyword search (/v1/youtube/search) — videos to mine for hooks/angles/long-form structure. Returns compact JSON {desc (title), author, handle, plays, link, cover} per video, ranked by views. Spends about a credit.
- `stitch_video` — Render a multi-scene STITCHED video (≥2 scenes) — ONLY for spots LONGER than ONE clip of the chosen model. A multi-beat ad that FITS one clip renders better and cheaper as ONE single-pass generate_video/render_ad (a single generation car…
- `store_get` — Read one of this workspace’s data stores by key, for visibility into what the app holds — playbooks, swipefile, saved locations, avatars, creations, chats, brand, memory, skills. Read-only, free. Allowed keys:
- `stripe_balance` — The brand
- `stripe_report` — Revenue from the brand
- `subscribe_linkedin_leads` — Have LinkedIn push every new lead to Hermoso the moment it is submitted, and optionally relay each event on to the user’s own CRM. THE WEBHOOK LINKEDIN VALIDATES IS ALWAYS HERMOSO’S OWN: LinkedIn challenges it with our app secret (and re…
- `subscribe_meta_webhooks` — Have Meta PUSH events to Hermoso instead of Hermoso polling for them. Subscribe a Page to
- `sync_leads_to_hubspot` — Push the leads collected by the brand
- `telegram_account` — ACCOUNT-LEVEL numbers for a Telegram channel, group or chat \u2014 its SUBSCRIBER / MEMBER COUNT \u2014 plus title, @username, description, invite link and linked discussion group. This is the answer to \u201chow many subscribers does ou…
- `test_dm_automation` — Check whether a sample comment, mention or DM would trigger a rule (saved by id, or unsaved) and exactly what it would send on which channel; on X it also quotes what X charges for the send. Sends nothing. Free.
- `test_instagram_dm_automation` — Check whether a sample comment or DM would trigger a saved rule and exactly what it would send. Sends nothing. Free.
- `test_openai_ads_lead_form` — Queue an explicitly SYNTHETIC, signed test lead for a PUBLISHED lead form to the account’s lead-sync webhook, so the receiving system can be checked end to end. expectedPublishedRevisionId is the form’s publishedRevisionId. The payload i…
- `threads_insights` — Performance for ONE Threads post (views, likes, replies, reposts, quotes, shares) when postId is given, or for the whole ACCOUNT when it is omitted — views, likes, replies, reposts, quotes, LINK CLICKS, follower count, and follower_demog…
- `threads_profile` — Read ANY public Threads account by handle — name, bio, avatar, verified badge, follower count, and its lifetime likes / quotes / reposts / views. This is competitor and creator research on Meta\u2019s own data rather than a scraper: read…
- `threads_publishing_limit` — How much of the brand’s Threads quota is left right now — posts (250 per rolling 24 hours), replies (1,000), DELETIONS (100) and location searches (500) — each as used, total and REMAINING. Check it before any bulk operation, and read it…
- `tidy_memory` — Clean up and consolidate the workspace Memory: drops entries that are about how Hermoso, a tool, a connector or a platform API behaves (product behaviour, not the brand), drops phone numbers and emails, and merges near-duplicate facts in…
- `tiktok_account` — Read the connected TikTok account: display name, username, bio, verified status, and their follower / following / total-likes / video counts. Use it for “how many followers do we have on TikTok”, “how is our TikTok doing”, or to confirm …
- `tiktok_account_insights` — The connected TikTok account
- `tiktok_account_status` — Report whether this profile holds the TikTok ACCOUNT-HOLDER authorization — the SECOND, separate consent on the same TikTok app that the TikTok Ads connection uses. TikTok issues two different grants: the ADVERTISER one (campaigns, budge…
- `tiktok_ads_audience_overlap` — How much a TikTok audience overlaps with up to four others — the read that answers whether a new audience is genuinely new or is mostly the people you already target, which is what stops two ad groups bidding against each other for the s…
- `tiktok_ads_diagnosis` — TikTok’s issues-and-suggestions diagnosis for the ad groups on an ad account — its own read on why delivery is underperforming, in three categories: CREATIVE (no background music, video too short, resolution too low), BID_AND_BUDGET (a s…
- `tiktok_ads_pixel_stats` — Event-level statistics for one TikTok pixel over a date range — how many times each event actually fired, which is how you tell a pixel that is installed and working from one that is installed and silent. Pass the pixelId or the pixelCod…
- `tiktok_ads_report` — Performance for a TikTok advertiser account at campaign, ad group, ad or whole-advertiser level — spend, impressions, clicks, CTR, CPC, CPM and conversions by default, or whichever of TikTok’s metrics and grouping dimensions you name.
- `tiktok_ads_verification_status` — Whether a TikTok ad account or Business Center has passed business verification, when it was reviewed, and if it failed, TikTok’s own reason. AN AD ACCOUNT AND A BUSINESS CENTER ARE VERIFIED SEPARATELY and carry different statuses, so pa…
- `tiktok_bid_protection` — Whether TikTok
- `tiktok_category_benchmark` — What an average TikTok Business account in a given industry looks like: mean likes, comments, shares, video count, follower count, 30-day follower growth, engagement rate and video views. Pair it with tiktok_account_insights to answer
- `tiktok_creator_info` — Read the connected TikTok creator’s REAL posting options BEFORE posting: which privacy levels THEY are allowed to use, whether comments / duet / stitch are available on their account, their maximum video length, and their nickname. TikTo…
- `tiktok_creator_leaderboard` — The creators ranking highest on TikTok’s own Creator Leaderboard for one category over one week or month; up to 100, best first, with how far each moved since the previous period. US ONLY: TikTok publishes ranking data for no other count…
- `tiktok_mention_top_terms` — The top 20 KEYWORDS and the top 20 HASHTAGS appearing in the captions of the posts that mention this brand. It is what people say when they talk about it, rather than which posts they said it in. Two TikTok endpoints behind one tool beca…
- `tiktok_tto_campaign_report` — How each creator video on a TikTok One campaign actually performed, with EVERY HEADLINE METRIC SPLIT ORGANIC VERSUS PAID: views, reach, engagement rate, likes, comments, shares, favourites, completion rate, average view time; plus audien…
- `upscale_video` — Upscale a video to higher resolution (2x) for final delivery. Paid render; returns the served URL. A 480p Seedance 2.5 draft: finish_draft (same take, native 1080p). Two engines: the default (
- `verify_bing_webmaster_site` — Ask Bing to CHECK the ownership proof for a site already on the account. IT DOES NOT PLACE THE PROOF — nothing can over an API. The user puts an XML file at the site root, a meta tag in the home page <head>, or a CNAME DNS record, and Bi…
- `video_frames` — LOOK at a video
- `x_account` — ACCOUNT-LEVEL numbers for the connected X account \u2014 FOLLOWERS, following, total posts, listed count, media count \u2014 plus display name, bio, location, verified status and when the account was created. This is the tool for \u201ch…
- `x_ads_geo_search` — Look up X targeting location ids by name — countries, regions, metros, cities and postal codes. X location ids are opaque hashes (Canada is 3376992a082d67c7), so this is the ONLY way to obtain one and there is no name-based targeting par…
- `x_ads_report` — Performance stats for X campaigns, line items or promoted posts.
- `x_ads_targeting_search` — Resolve X targeting ids by name for every vocabulary BEYOND location — INTEREST, CONVERSATION, PLATFORM, DEVICE, LANGUAGE, APP_STORE_CATEGORY, NETWORK_OPERATOR, TV_MARKET, TV_SHOW, EVENT. X
- `x_chat_settings` — The connected X account
- `x_follows` — The follower or following LIST for an X account \u2014 handles, names, bios, locations and each one\u2019s own follower/following/post counts. The COUNTS are already free on x_account and x_user; this is WHO, which is what audience analy…
- `x_mentions` — Read the posts mentioning the connected X account — who is talking to the brand, in their own words, newest first. Use it to find what deserves a reply (reply with post_to_x + replyToId) and to mine real objections and customer language …
- `x_search_counts` — The VOLUME of a query on X over time \u2014 counts per day, hour or minute for the last 7 days, plus the total. Use it to size a topic BEFORE spending behind it, or to tell a real spike from a flat line. Cheaper than search_x because it …
- `x_trends` — Trending topics on X for a place, with the post volume behind each \u2014 raw material for hook writing and for judging whether a moment is worth entering.
- `x_user` — ACCOUNT-LEVEL numbers for ANY public X account by handle \u2014 followers, following, posts, listed and media counts, plus bio, location, verified status and account age. The research twin of
- `youtube_bulk_report` — THE ONLY PLACE YOUTUBE PUBLISHES THUMBNAIL IMPRESSIONS AND THUMBNAIL CTR. This is a different API from youtube_channel_report — YouTube\u2019s bulk Reporting API — and for a product that generates thumbnails it is the number that says wh…
- `youtube_channel` — Read the brand’s connected YouTube channel — title + subscriber / view / video counts (for reporting), and whether CUSTOM THUMBNAILS are on (customThumbnails: enabled | needs_verification | unavailable | unknown). When they are not on, t…
- `youtube_channel_report` — The YouTube Analytics reports that say WHERE views came from, WHO watched and WHERE they stopped watching — the questions youtube_channel (totals) and youtube_video_insights (one video, flat) cannot answer. Pick a report: day / month (ti…
- `youtube_video_insights` — Per-VIDEO performance for a video on the connected channel — views, estimated minutes watched, average view duration, average view PERCENTAGE (the retention number that tells you whether the hook held), likes, comments, shares and subscr…
- `add_apple_ads_keywords` — Add targeting keywords to an Apple Ads ad group. keywords is [{text, matchType, bid}] — matchType EXACT (default), BROAD, PHRASE or CATEGORY, and bid optionally overrides the ad group default for that one term. Up to 1000 per call and 50…
- `add_apple_ads_negative_keywords` — Add negative keywords to an Apple Ads campaign or ad group — search terms your ads must NOT show for. Pass exactly one of campaignId (campaign-wide) or adGroupId (that ad group only); Apple rejects a request carrying both. keywords is [{…
- `add_bing_webmaster_site` — Add a site to the connected Bing Webmaster account. Important: ADDING IS NOT VERIFYING, and saying so is most of this tool\
- `add_google_ads_assets` — Add SITELINKS, CALLOUTS or STRUCTURED SNIPPETS to a Google Ads campaign or ad group — and ATTACH them, which is the part that makes them do anything (an asset sitting in the account library shows nothing at all). Sitelinks are the highes…
- `add_google_ads_keywords` — Add keywords — and NEGATIVE keywords — to a Google Ads ad group. A Search ad group with no keywords never shows. Each keyword takes text (≤80 chars, ≤10 words) and matchType EXACT | PHRASE | BROAD (default PHRASE). Set negative:true to B…
- `add_microsoft_ads_keywords` — Add keywords to a Microsoft Advertising ad group. Match types are Exact, Phrase and Broad — Microsoft has no broad-match-modifier. Keywords are added Paused unless you set status:
- `add_search_console_site` — Add a property to the connected Google account. TWO THINGS THAT MUST REACH THE USER, and the answer states both: (1) ADDING IS NOT VERIFYING — the property arrives with the account as an unverified user and EVERY read on it is refused un…
- `add_subtitles` — Burn subtitles into ANY video and get the .srt too; nothing is cut or re-rendered. Set textStyle only when the user describes a look (default: white sentence case, thin outline, bottom). Timed per sentence, or auto:
- `add_x_ads_targeting` — Add targeting criteria to an X LINE ITEM. Targeting does NOT attach to a campaign on X — a campaign carries only budget and funding. Pass locationIds resolved with x_ads_geo_search, and/or criteria[] for any of X
- `apple_ads_target_cpa_suggestion` — What Apple thinks an install should cost you. Returns the suggested target CPA for an app — the MAXIMUM tap-install CPI Apple observed across that app’s eligible markets over the last 28 days, together with the market that produced it. O…
- `applovin_ads_pixel` — The AppLovin pixel for the brand’s website: AppLovin’s own install snippet with the account’s Event Key filled in, where it goes (every page’s <head>, Google Tag Manager, or the AppLovin Shopify app), the events to fire for a store or a …
- `applovin_ads_report` — AppLovin Ads performance: impressions, clicks, CTR, spend, sales, ROAS and checkout revenue by day, campaign, creative set or country. Works with the Reporting Key alone, which every AppLovin account has. Web reports reach back 90 days, …
- `apply_apple_ads_recommendation` — THIS CHANGES WHAT A LIVE CAMPAIGN MAY SPEND, and it is the only tool in the Apple Ads suggestion/recommendation family that touches money. Applying a daily-budget recommendation raises that campaign’s daily budget to Apple’s suggested am…
- `apply_microsoft_ads_customer_list` — Upload customer emails into a Microsoft Advertising Customer Match list so campaigns can target or exclude them. YOU PASS PLAIN EMAIL ADDRESSES \u2014 Hermoso normalizes and SHA-256 hashes them locally and sends ONLY the digests, so no p…
- `apply_microsoft_ads_recommendations` — Apply Microsoft Advertising recommendations by id. THIS SPENDS REAL MONEY AND HAS NO UNDO. It raises daily budgets, adds keywords, widens keywords to broad match, DELETES negative keywords so the account buys more searches, and publishes…
- `apply_tiktok_ads_audience` — Attach a TikTok custom audience to ad groups as an INCLUDE or an EXCLUDE — the call that changes WHO SEES THE ADS, and the reason building audiences is worth doing at all. actionMode is exactly
- `archive_analytics_audience` — ARCHIVE a GA4 audience, and it is ONE-WAY: GA4 publishes no delete and no un-archive anywhere in its API. Any Google Ads remarketing list sourced from it stops refreshing, and because the definition is IMMUTABLE the audience cannot be re…
- `archive_analytics_custom_dimension` — THE ONLY WAY TO RETIRE A CUSTOM DIMENSION, and it is ONE-WAY. GA4 publishes no delete and no un-archive for custom dimensions anywhere in its API — archiving is permanent through every programmatic surface — so this is how a typo\
- `archive_analytics_custom_metric` — THE ONLY WAY TO RETIRE A GA4 CUSTOM METRIC, and it is ONE-WAY: GA4 publishes no delete and no un-archive for custom metrics anywhere in its API, exactly as for dimensions, so archiving is permanent through every programmatic surface. It …
- `archive_meta_lead_form` — Retire an INSTANT LEAD FORM so it stops collecting — the only way to tidy a Page’s Instant Forms list, because META DOES NOT SUPPORT DELETING A LEAD FORM AT ALL, only archiving it. This is REVERSIBLE: pass status:
- `archive_openai_ads_audience` — Retire a ChatGPT Ads custom audience. ARCHIVING IS PERMANENT AND THERE IS NO DELETE TO UNDO IT: an archived audience can never be restored, targeted or bid on again, and any campaign that includes or excludes it loses that audience. With…
- `archive_openai_ads_feed` — Archive a product feed — its products leave every campaign using it. confirm:true required.
- `archive_openai_ads_lead_form` — Archive a ChatGPT Ads lead form. Not reversible through the API, and refused by ChatGPT Ads while a PUBLISHED Business Agent references it. confirm:true is required; without it nothing changes and the reply says what would.
- `authorize_tiktok_ads_spark_post` — Apply an authorization code so this ad account may promote somebody else’s TikTok post. THE CODE CANNOT BE MINTED FROM THE API — only the post’s owner can generate one, in the TikTok app: open the post -> three-dot menu -> Ad settings ->…
- `bluesky_post_metrics` — Read live engagement for up to 25 of the connected account’s Bluesky posts — likes, reposts, replies, quotes and bookmarks. Address a post by its AT-URI (the
- `bulk_apple_ads_keywords` — Create or update up to 1,000 Apple Ads keywords or negative keywords in ONE call — how you seed a whole campaign structure from apple_ads_keyword_suggestions, or re-bid a list after a performance review, instead of one call per keyword. …
- `collect_post_metrics` — Fetch fresh performance numbers for this brand
- `comment_on_meta_post` — Leave a NEW top-level comment on one of the brand\u2019s own Facebook Page posts, as the brand. This is the
- `comment_on_tiktok_video` — Write a NEW top-level comment on a TikTok post the authorized account owns. Text (≤1,200 characters, UTF-8) or an image, and TikTok requires at least one of the two. AN IMAGE HERE MUST BE UPLOADED FIRST — a raw URL is refused on a new co…
- `connect_connector` — Connect an account that links with a KEY rather than a sign-in screen, from here, with no browser: ${Object.values(KEY_CONNECTORS).map(s => s.label).join(
- `convert_onedrive_file` — Turn a file already in the user’s OneDrive into a PDF or a JPG — Microsoft does the conversion on its own servers, so nothing is re-encoded here and nothing is lost in a screenshot. It reads about 130 source formats, which is the point: …
- `create_amplitude_annotation` — MARK THE ANALYTICS TIMELINE — write what just happened into Amplitude, at the moment it happened, so every chart the user opens afterwards shows it in place. THIS IS THE CLOSED LOOP AND IT IS WORTH REACHING FOR UNPROMPTED after a campaig…
- `create_analytics_audience` — BUILD A GA4 AUDIENCE — a remarketing list defined by what people did on the site, which flows into Google Ads across the property
- `create_analytics_custom_metric` — Register an event parameter the site ALREADY SENDS as a GA4 custom METRIC, so reports can SUM or AVERAGE it. This is the other half of the pair: a custom DIMENSION makes a value something you can group BY, a custom METRIC makes it someth…
- `create_analytics_key_event` — Mark an event GA4 ALREADY COLLECTS as a KEY EVENT — what GA4 calls a conversion since the 2024 rename (the resource is keyEvents; the old conversionEvents spelling is deprecated). This is what makes an event countable as a result in repo…
- `create_apple_ads_ad` — Create an Apple Ads ad — the object that shows one creative in one ad group. REQUIRED: adGroupId, creativeId (from create_apple_ads_creative) and name. CREATED PAUSED ALWAYS, with no override, so it cannot spend until set_apple_ads_statu…
- `create_apple_ads_ad_account` — Create a new ad account under this Apple Ads organization — the container an agency opens per client, or a business opens to run Apple Maps ads alongside App Store ones. AN AD ACCOUNT SPENDS NOTHING: it holds campaigns, and every campaig…
- `create_apple_ads_ad_group` — Create an ad group inside an Apple Ads campaign — this is where the bid and the keywords live. CREATED PAUSED ALWAYS. REQUIRED: campaignId, name. defaultBid is the most you will pay per tap (decimal string, e.g.
- `create_apple_ads_budget_order` — A BUDGET ORDER NEEDS A LINE OF CREDIT ORGANIZATION. Measured on prod 2026-08-17 against org 19534840 (PAYG): Apple answers 403 “The organization does not have a Line of Credit(LOC). Creating Budget Order is permissible only for LOC Organ…
- `create_apple_ads_campaign` — Create an Apple Ads (Apple Search Ads) campaign promoting an iOS app on the App Store. CREATED PAUSED ALWAYS — there is no override, so nothing can spend until you separately call set_apple_ads_status(status:
- `create_apple_ads_creative` — Create an Apple Ads creative — what a person sees before and after tapping the ad. Pick creativeType: DEFAULT_PRODUCT_PAGE renders the app’s standard App Store listing and needs only adamId; CUSTOM_PRODUCT_PAGE renders a custom page buil…
- `create_apple_ads_location_group` — Create a location group — the set of a brand’s shops an Apple Maps ad group promotes. TWO KINDS. STATIC takes an explicit locationIds list (from list_apple_ads_locations) and is VALID immediately. DYNAMIC takes rules and maintains itself…
- `create_applovin_ads_campaign` — Create an AppLovin Ads campaign, read back PAUSED: AppLovin ignores status on create, so Hermoso pauses it straight after. A WEB campaign needs name, websiteUrl, countries, dailyBudget, goalType and goalValue (CPE also eventTarget; CHK_R…
- `create_applovin_ads_creative_set` — Create an AppLovin creative set from uploaded asset ids, born PAUSED, optionally inside a campaign. It must hold EITHER an HTML playable OR a portrait image (IMG_INTER_P) plus a video; Hermoso checks that against AppLovin’s own asset typ…
- `create_brand` — Add a NEW profile (a brand, client, creator or personal workspace) and switch to it. Each has its OWN brand details, memory, swipefile, Library, avatars, skills, playbooks and connectors; nothing leaks between them. Use draft_brand to FI…
- `create_doc` — Create a new Google Doc in the user’s Drive with a title + optional body text — e.g. export ad copy, a creative brief, or a report. Returns the document id + URL. Needs Google Drive connected (Settings > Connectors > Google Drive — one c…
- `create_drive_folder` — Create a folder in the user’s Google Drive (optionally nested under parentId) to organize saved files. Returns the folder id + webViewLink. Use that ID as update_drive_file’s moveToFolderId or as parentId for a nested folder. NOTE: save_…
- `create_google_ads_ad` — Create the actual AD inside a Google Ads ad group — this is the object that carries the creative; a campaign or ad group alone shows nothing. On a SEARCH campaign it builds a RESPONSIVE SEARCH AD: 3–15 headlines (≤30 chars), 2–4 descript…
- `create_google_ads_ad_group` — Add an ad group to an EXISTING Google Ads campaign — the level between a campaign and its ads. Google requires it: a campaign with no ad group cannot serve. Optionally build its ad and keywords in the same ATOMIC call. The ad-group type …
- `create_google_ads_campaign` — Build a campaign on a connected Google Ads account. ALWAYS created PAUSED — it spends NOTHING until you enable it with set_google_ads_status(confirm:true). Google\
- `create_google_ads_conversion_action` — Create a CONVERSION ACTION — the thing that tells Google what counts as a result on this account. This is a PREREQUISITE, not a nicety: MAXIMIZE_CONVERSIONS, MAXIMIZE_CONVERSION_VALUE, TARGET_CPA, TARGET_ROAS and every Performance Max ca…
- `create_google_ads_performance_max_campaign` — Build a PERFORMANCE MAX campaign — Google’s cross-surface campaign type (Search, YouTube, Display, Discover, Gmail, Maps). ALWAYS created PAUSED; it spends NOTHING until you enable it with set_google_ads_status(confirm:true). PMax has NO…
- `create_hubspot_contact` — Create a contact in the brand
- `create_linkedin_ads_campaign` — Create a LinkedIn campaign inside an existing campaign group. Created DRAFT — it spends NOTHING until activated with set_linkedin_ads_status(confirm:true) — and a campaign on its own carries no creative, so it cannot serve an impression.…
- `create_linkedin_ads_campaign_group` — Create a LinkedIn CAMPAIGN GROUP — the container LinkedIn has required every campaign to live inside since 2020. Created DRAFT, which is LinkedIn’s own structural safety net: it REFUSES to hold an ACTIVE campaign inside a DRAFT group, so…
- `create_linkedin_ads_creative` — Create the AD ITSELF on LinkedIn — a CREATIVE inside an existing campaign. A LinkedIn campaign holds no copy and no visual, so until this runs the campaign CANNOT show an impression no matter what its status says; say that rather than ca…
- `create_linkedin_conversion_rule` — Create a LinkedIn CONVERSION RULE — the object LinkedIn attributes conversions to, and the prerequisite for send_linkedin_conversions.
- `create_linkedin_event` — Create a LinkedIn LIVE event on a company Page the brand administers. Warning: THIS REQUIRES LINKEDIN LIVE ACCESS on the member\u2019s account:
- `create_merchant_data_source` — Create an API product feed on a Merchant Center account — the container upsert_merchant_product writes into. Most accounts have none until one is made: a store set up through the Merchant Center UI has a UI feed, which is read-only. feed…
- `create_merchant_promotion` — PUT A SALE BADGE ON THE MERCHANT
- `create_messenger_marketing_campaign` — The container a paid Messenger marketing message is sent from (Meta act_<AD>/message_campaign). Budgets in USD; Meta bills per DELIVERED message against the campaign budget, and creating it sends and charges nothing. A NEW campaign canno…
- `create_meta_ad` — Build a complete, ready-to-run Meta ad: campaign -> ad set (FULL targeting + budget + schedule + bidding) -> creative -> ad(s), ALL created PAUSED — it spends NOTHING until you activate the campaign with set_meta_campaign_status(confirm:…
- `create_meta_adset` — Create an AD SET on an EXISTING Meta campaign — the level that holds the audience, budget, schedule and bidding. Use it to hang SEVERAL ad sets off ONE campaign, which is how you actually test audiences on Meta (one ad set per audience, …
- `create_meta_audience` — Build a retargeting audience on a connected Meta ad account. Three kinds: kind:
- `create_meta_campaign` — Create a campaign on a connected Meta ad account. Always created PAUSED — it spends NOTHING until you activate it with set_meta_campaign_status(confirm:true). Optionally set a dailyBudgetUsd. Pass adAccountId (from list_meta_pages) + an …
- `create_meta_catalog` — Create a NEW product catalog on one of the merchant’s Meta business portfolios. A catalog is the input to Advantage+ catalog ads (dynamic product ads) — build it first, then fill it from the merchant’s feed or Shopify, then point a campa…
- `create_meta_lead_form` — Create an INSTANT LEAD FORM on a connected Facebook Page — the in-app form a Meta lead ad opens instead of sending someone to a website, which is why lead ads convert far better than a landing page on mobile.
- `create_meta_pixel` — Create a META PIXEL on one of the brand’s ad accounts, so their ads can optimise for real website conversions instead of link clicks and so website retargeting audiences become possible. A pixel is a DEFINITION: it cannot serve, cannot s…
- `create_microsoft_ads_ad` — Create the actual AD inside a Microsoft Advertising ad group — this is the object that carries the creative; a campaign or ad group alone shows nothing. It builds a RESPONSIVE SEARCH AD: 3–15 headlines (≤30 chars), 2–4 descriptions (≤90 …
- `create_microsoft_ads_ad_group` — Add an ad group to an existing Microsoft Advertising campaign — optionally with its responsive search ad and keywords in the same call. Created Paused by default. If the parent campaign is already LIVE (Active), creating this ad group Ac…
- `create_microsoft_ads_campaign` — Build a campaign on a connected Microsoft Advertising (Bing Ads) account. ALWAYS created Paused — it spends NOTHING until you activate it with set_microsoft_ads_status(confirm:true). Microsoft’s object graph is campaign -> ad group -> re…
- `create_microsoft_ads_customer_list` — Create an EMPTY Customer Match list on a Microsoft Advertising account, ready for apply_microsoft_ads_customer_list to fill. membershipDuration is 1\u2013390 days, or -1 for no expiration (Microsoft
- `create_onedrive_folder` — Create a folder in the user’s OneDrive (optionally nested under parentId) to organize saved files. Returns the folder id + webViewLink. Use that id as update_onedrive_file’s moveToFolderId or as parentId for a nested folder. NOTE: save_t…
- `create_openai_ads_ad` — Create the actual AD inside a ChatGPT Ads ad group — the object that carries the creative; a campaign or ad group alone shows nothing at all. The creative is a TEXT + IMAGE CARD: a title of 3–50 characters, body copy of 100 characters ma…
- `create_openai_ads_ad_group` — Add an ad group to an existing ChatGPT Ads campaign. Created PAUSED by default. Bidding: pass maxBid for a fixed bid, or bidStrategy
- `create_openai_ads_audience` — Create a ChatGPT Ads custom audience from a customer list. Pass plain emails and/or phone numbers: Hermoso NORMALISES AND SHA-256 HASHES THEM LOCALLY and uploads only the digests, so no plaintext personal data leaves Hermoso. OR pass fil…
- `create_openai_ads_business_agent` — Draft a ChatGPT Ads BUSINESS AGENT: name, instructions (the system prompt real users will experience — write it as the brand), optional description, privacy policy URL, conversation starters, product feed ids, connector ids, tool ids (li…
- `create_openai_ads_conversion_api_key` — Create a ChatGPT Ads Conversions API key — the credential a SERVER uses to send conversion events, which is the only way a conversion that happens off the page (an offline sale, a webhook, a mobile backend) can be counted at all. PERMANE…
- `create_openai_ads_conversion_event` — Define what counts as a conversion on ChatGPT Ads, measured from one or more pixels. THIS IS THE PREREQUISITE for a conversion-optimised campaign: pass the returned id as conversionEventSettingIds to create_openai_ads_campaign. Creating …
- `create_openai_ads_feed` — Create an EMPTY product feed on ChatGPT Ads with a name and the countries it serves (ISO codes). Fill it with update_openai_ads_feed_products, or set up SFTP bulk delivery with set_openai_ads_feed_sftp.
- `create_openai_ads_lead_form` — Draft a ChatGPT Ads LEAD FORM: a name, an optional privacy policy URL, and fields — each {fieldId, fieldType
- `create_openai_ads_pixel` — Create a ChatGPT Ads web pixel — the thing that observes actions on the site. IT RECORDS NOTHING until its snippet is installed on the site, so say that rather than implying tracking is live. MATCH RATE: the snippet’s oaiq(
- `create_pinterest_ads_ad` — Create the actual AD inside a Pinterest ad group — this is the object that carries the creative; a campaign or ad group alone shows nothing. A Pinterest ad PROMOTES AN EXISTING PIN, so pass pinId (post_to_pinterest returns one). Created …
- `create_pinterest_ads_ad_group` — Add an ad group to an existing Pinterest campaign — optionally with its ad in the same call. Created PAUSED by default. Pinterest REQUIRES every ad group to target at least one place, so targetingSpec must carry a GEO array or a LOCATION…
- `create_pinterest_ads_campaign` — Build a campaign on a connected Pinterest ad account. ALWAYS created PAUSED — worth knowing that Pinterest’s own API defaults new campaigns to ACTIVE, so this deliberately overrides that; it spends NOTHING until you activate it with set_…
- `create_pinterest_board` — Create a board on the connected Pinterest account. Needed because a Pin cannot exist without a board, and a NEW Pinterest business account has none — if list_pinterest_boards comes back empty, make one here rather than telling the user y…
- `create_posthog_annotation` — MARK THE POSTHOG TIMELINE — write what just happened into PostHog at the moment it happened, so every chart afterwards shows it in place. The same closed loop as create_amplitude_annotation, and worth reaching for unprompted after a camp…
- `create_reddit_ads_ad` — Create the ad itself — the object that binds a POST (the creative) to an AD GROUP (the targeting and budget). Create the post first with create_reddit_ads_post and pass its id as postId; without a post there is nothing to show. ALWAYS cr…
- `create_reddit_ads_ad_group` — Create an ad group under an existing Reddit campaign — this is the tier that holds the budget, the bid and ALL the targeting. ALWAYS created PAUSED; it spends nothing until set_reddit_ads_status(confirm:true). Reddit requires more here t…
- `create_reddit_ads_audience` — Create an empty custom audience on a Reddit ad account, then fill it with update_reddit_ads_audience_users. Reddit only supports ONE kind of audience through the API — an uploaded CUSTOMER LIST matched on hashed emails and mobile adverti…
- `create_reddit_ads_campaign` — Create the top tier of a Reddit ad — the campaign, which sets the OBJECTIVE everything under it optimises toward and (optionally) a lifetime spend cap. ALWAYS created PAUSED, with no override; it spends nothing until set_reddit_ads_statu…
- `create_reddit_ads_lead_form` — REDDIT HAS RETIRED THIS, SO IT NOW REFUSES, AND IT CANNOT BE REPLACED LIKE FOR LIKE. Reddit removed onsite lead forms entirely: the API sunset on 2026-09-21 by Reddit’s changelog (their migration guide said 2026-09-30 for the same change…
- `create_reddit_ads_max_campaign` — Build a Reddit MAX campaign in one call: an automated campaign (campaign budget optimization, automatic bidding), its one automated ad group (seed targeting) and its one template ad, from which Reddit GENERATES the ads out of your creati…
- `create_reddit_ads_post` — Create the CREATIVE for a Reddit ad. This is the step people skip: a Reddit ad has no creative of its own — it points at a post — so a campaign and ad group with no post behind them can never serve. Types are TEXT (headline + body), IMAG…
- `create_reddit_ads_saved_audience` — Save a targeting definition under a name so every ad group can reuse it — define
- `create_sheet` — Create a new Google Spreadsheet in the user’s Drive and optionally fill it with rows — e.g. export a swipefile, ad list, or performance report. Pass rows as an array of row arrays (first row = headers). Returns the spreadsheet id + URL. …
- `create_snapchat_ads_ad` — Create the Snapchat ad itself, inside an ad squad. CREATED PAUSED with no override. THE CREATIVE COMES FROM upload_snapchat_ads_creative: pass the creativeId it returns. AN AD POINTS AT A CREATIVE, NEVER AT A MEDIA ID — passing a mediaId…
- `create_snapchat_ads_ad_squad` — Create an ad squad under an existing Snapchat campaign — the tier that holds the budget, the bid, the targeting, the placements and the schedule. CREATED PAUSED with no override. TWO THINGS ARE MANDATORY AND NEITHER IS GUESSABLE: countri…
- `create_snapchat_ads_campaign` — Create the top tier of a Snapchat ad — the campaign. CREATED PAUSED AND THERE IS NO OVERRIDE; it spends nothing until set_snapchat_ads_status(confirm:true). A CAMPAIGN ALONE CAN NEVER SERVE: it needs an ad squad and then an ad under it, …
- `create_stripe_coupon` — Create a Stripe coupon: exactly one of percentOff (1–100) or amountOff (major units) + currency; duration once (default), repeating (with durationInMonths) or forever; optional name, id and maxRedemptions. Read back. LIVE key: confirm:tr…
- `create_stripe_customer` — Create a Stripe customer by email (optional name, phone, description, metadata). If a customer with that email already exists it is returned instead and nothing is created — pass allowDuplicate:true to create a second one on purpose. LIV…
- `create_stripe_payment_link` — Create a shareable Stripe Payment Link: for ONE price pass priceId (price_…) with an optional quantity; for several pass lineItems: [{priceId, quantity}]. Optionally redirect to afterCompletionUrl when paid. Returns the URL. LIVE key: co…
- `create_stripe_price` — Add a price to an existing Stripe product:
- `create_stripe_product` — Create a product on the brand
- `create_stripe_subscription` — Subscribe a Stripe customer (cus_…) to a price (price_…), optional quantity and trialDays. THIS CHARGES THE CUSTOMER
- `create_tag_manager_tag` — INSTALL A TAG in the container
- `create_tag_manager_trigger` — CREATE A TRIGGER, the rule that decides when a tag fires, in the container
- `create_telegram_invite_link` — Create a NAMED invite link to a Telegram channel or group, optionally with an expiry, a member cap, or join approval. THIS IS THE ONLY SUBSCRIBER ATTRIBUTION TELEGRAM OFFERS: the Bot API exposes no per-post views and no post history, so …
- `create_tiktok_ads_ad` — Create the ad itself — the creative that runs under an existing TikTok ad group. CREATED PAUSED with no override (TikTok’s own default is ENABLED); it spends nothing until set_tiktok_ads_status(confirm:true), and TikTok additionally revi…
- `create_tiktok_ads_ad_group` — Create an ad group under an existing TikTok campaign — the tier that holds the budget, the bid, the placements, the schedule and ALL the targeting. CREATED PAUSED with no override (TikTok would otherwise create it ENABLED, and a live ad …
- `create_tiktok_ads_audience` — Create a TikTok custom audience from what people actually did — the thing that turns TikTok targeting from interests-and-geo into retargeting. audienceType chooses the source and EACH ONE READS A DIFFERENT ID SPACE for eventSourceIds, wh…
- `create_tiktok_ads_campaign` — Create the top tier of a TikTok ad — the campaign, which fixes the OBJECTIVE everything under it optimises toward. CREATED PAUSED AND THERE IS NO OVERRIDE, and TikTok is the one platform where that is NOT the vendor’s own behaviour: TikT…
- `create_tiktok_ads_catalog` — Create a product catalog inside a TikTok Business Center — the container Dynamic Product Ads sell from. REGION AND CURRENCY ARE SET ONCE AND CAN NEVER BE CHANGED: TikTok’s own catalog-update endpoint changes the NAME and nothing else, so…
- `create_tiktok_ads_crm_event_set` — Create a CRM Event set — the container for lead-lifecycle events, and the id send_tiktok_ads_events needs as eventSourceId when eventSource is
- `create_tiktok_ads_lookalike_audience` — Create a TikTok Lookalike Audience — TikTok finds people who resemble a seed audience you already have. The seed must exist, must hold AT LEAST 100 people, and cannot itself be a lookalike. audienceSize trades reach against similarity: N…
- `create_tiktok_ads_pixel` — Create a new TikTok pixel on an ad account so conversion campaigns have something to optimise toward. Returns the pixel id and the pixel CODE plus the script to install. A PIXEL ALONE IS NOT ENOUGH AND THIS IS THE PART PEOPLE MISS: it me…
- `create_tiktok_ads_rf_ad_group` — Create the ad group of a REACH & FREQUENCY campaign. THIS IS THE ONE OBJECT HERMOSO CREATES THAT CANNOT BE BORN PAUSED, and that is TikTok’s doing, not ours: /adgroup/rf/create/ publishes no operation_status anywhere in its parameter tab…
- `create_tiktok_ads_rule` — AUTOMATED RULES — a standing instruction TikTok runs on the user’s ad account on TIKTOK’S schedule, with nobody watching. WHAT A RULE CAN DO UNATTENDED, depending on its actions: pause a campaign / ad group / ad (TURN_OFF), email a repor…
- `create_tiktok_smart_ad` — Add the creative to a Smart+ ad group. Smart+ combines the materials you give it rather than running one fixed cut, so this is where the videos and copy go. Created PAUSED. If TikTok accepts the request but returns no ad id, the reply sa…
- `create_tiktok_smart_ad_group` — Add an ad group to a Smart+ campaign — the level holding the targeting, budget, schedule and bidding. TikTok requires NINE fields together here and reports only the FIRST one it hits per request, so every absentee is named at once rather…
- `create_tiktok_smart_campaign` — Create an UPGRADED SMART+ campaign — TikTok’s automated campaign type, where TikTok picks the audience, placements and creative combinations for you. It is the TikTok equivalent of Google Performance Max, and the thing a customer means by
- `create_tiktok_tto_brand_profile` — Create a Brand Profile on a TikTok One account; the identity creators see when they open an invite link. THE NAME, INDUSTRY AND LOGO ARE PERMANENT: TikTok marks all three
- `create_tiktok_tto_campaign` — Create a TikTok One creator campaign and get the invite link creators tag their videos with. TWO SHAPES, AND THEY NEED DIFFERENT FIELDS: campaignType
- `create_whatsapp_template` — Submit a new WhatsApp message template for Meta’s review. This is the ONLY way a business can start a WhatsApp conversation: outside the 24-hour window that opens when a customer messages first, WhatsApp accepts approved templates and no…
- `create_x_ads_campaign` — Create a campaign on X (Twitter). ALWAYS CREATED PAUSED with no override — it spends NOTHING until set_x_ads_status(confirm:true). A CAMPAIGN ALONE CANNOT SERVE ON X: it needs a line item and a promoted post underneath it, and the read-b…
- `create_x_ads_line_item` — Create a line item — X
- `create_x_ads_promoted_tweet` — Attach an existing X post to a line item so the line item has a creative — the LAST piece of the tree, and without it nothing can ever serve however the statuses are set. The tweet id is the number at the end of the post URL (x.com/<hand…
- `disconnect_connector` — Disconnect a third-party account from this workspace (Meta, Google Ads, Google Drive/Sheets/Docs, YouTube, TikTok, LinkedIn, X, Reddit, Pinterest, Google Business, Microsoft Advertising/OneDrive, Slack, …). This always drops the stored c…
- `discover_tiktok_creators` — Search TikTok One for creators, filtered by audience size, engagement rate, median and average views, starting price, language, content and industry category, and by their FOLLOWERS’ country, gender split and age band. FOUR THINGS THAT A…
- `dub_video` — Localize a finished video into another language WITHOUT re-rendering it: the spoken track is transcribed, translated, re-voiced and lip-synced back onto the SAME footage, so the visuals, timing and edit are untouched. Just pass the video…
- `edit_image` — EDIT an existing image in place with a plain-language instruction and keep everything else:
- `edit_telegram_message` — Change the TEXT or CAPTION of a message already posted to a Telegram channel, group or chat \u2014 the fix for a typo that would otherwise cost the post AND its accumulated views, since deleting and reposting starts from zero. Pass
- `edit_video` — EDIT an existing clip from a plain instruction (video-to-video): the motion, timing, framing and cut stay, the named thing changes.
- `edit_x_post` — EDIT the text of one of the connected account’s own posts on X. Three things about X’s edit model change how you must use this and none is guessable: (1) X REPLACES THE WHOLE TEXT — there is no partial patch, so pass the complete new pos…
- `enable_tools` — LIST a group of tools that is not in this session
- `estimate_meta_reach` — Ask Meta how many people a targeting spec can actually reach — BEFORE any budget is committed. Two ways: pass adSetId to size an ad set you already built (Meta uses its own saved targeting), or pass the same
- `export_swipefile_deck` — Turn a SWIPEFILE COLLECTION into a real Google Slides deck — one slide per saved ad, carrying the creative, the brand, the ad copy, the run dates with the run length, and the platform. This is the thing a marketer actually presents to a …
- `extend_tiktok_post_ad_authorization` — Extend how long a post the authorized account owns stays promotable as a Spark Ad — and REGENERATE its code if it was deleted. THE DAYS ARE ADDED, NOT SET: TikTok
- `fix_beat` — Surgically re-render ONE time window (1.5-8s) of an existing rendered video and splice it back on the VIDEO TRACK ONLY — the rest of the video and ALL audio stay byte-identical. Use when one beat/shot is broken (
- `generate_avatar` — ANIMATE A PHOTO so it talks: the presenter in
- `generate_image` — Render a finished ad IMAGE and return its served URL. refImages (local paths or URLs) force product-accurate compositing (drops a real product into the scene). MULTI-BRAND CAUTION: useBrand hydration pulls the SAVED workspace brand — whe…
- `generate_music` — RAW music: describe it (genre, mood, instruments, tempo), get an instrumental MP3. Flat fee: explainerMusicCredits in hermoso_capabilities.
- `generate_text` — Text generation against the writing-model catalog (Claude, Gemini, GPT, Llama, DeepSeek…) — ad copy, hooks, scripts, rewrites, brainstorms. Prompt-only, no ad assembly (for a finished on-brand creative use plan_ad -> render_ad). BY DEFAU…
- `generate_video` — Render a RAW video clip from your own prompt and return its served mp4 URL. For finished brand ADS prefer render_ad (it runs the Studio quality pipeline — composited text, clean speech, end card, music); use this for raw/experimental cli…
- `generate_voice` — RAW text-to-speech from the voice-model catalog: speak a script in a chosen voice and return the served MP3 URL. For a standalone voiceover / narration clip — NOT for adding audio to a video (render_ad and generate_video voice their own …
- `google_business_account` — Read the Google Business Profile ACCOUNT that owns one of the brand’s listings — the account name, its type (a personal Google account, a location group, a user group or an organization), the connected user’s role on it (primary owner / …
- `hide_thread_reply` — Hide a reply on the brand’s Threads post (or unhide it with hide:false) — for spam and abuse moderation.
- `import_from_cloud` — Pull the files in a Google Drive or OneDrive FOLDER into this profile
- `invite_member` — Invite someone to this profile by email (role: member = read-only on billing, admin = full). This SENDS a real email invite / share link — an account change. Confirm the exact email + role with the user, then call with confirm:true.
- `link_google_ads_to_analytics` — LINK a GA4 property to a Google Ads account. This is the prerequisite for two things users constantly ask for and cannot otherwise have: importing GA4 key events as Google Ads CONVERSIONS — which is what gets a smart-bidding campaign pas…
- `make_insert` — A reaction picture (image, or video from videoStart) with its sound, cut to when the sound lands (or seconds): a 1080x1920 clip for post_edit join.
- `manage_analytics_calculated_metric` — THE DERIVED NUMBER A MARKETER ACTUALLY REPORTS — cost per purchase, revenue per session, a margin — built from metrics GA4 already collects and then available to analytics_report like any other metric. action:
- `manage_analytics_channel_group` — HOW GA4 DECIDES WHICH BUCKET A CLICK LANDS IN, which is the number an ad studio is judged on and the answer to \
- `manage_analytics_measurement_protocol_secret` — THE SERVER-SIDE EVENT CHANNEL FOR GA4, the Google twin of the conversions APIs Hermoso already ships for Reddit, Snapchat and OpenAI Ads. A Measurement Protocol secret is the api_secret half of https://www.google-analytics.com/mp/collect…
- `manage_instagram_product_tags` — READ the product tags on a post the brand has already published, or ADD/MOVE tags on it. Pass
- `manage_linkedin_post` — Edit or delete a published LinkedIn post — personal profile or company Page. Pass postUrn, the full urn returned when it was published. action:
- `manage_merchant_conversion_source` — WHERE MERCHANT CENTER GETS ITS CONVERSION DATA FROM, which is what free-listing and Shopping performance reporting is built on — a merchant with no conversion source sees clicks and no outcomes, and nothing in Merchant Center says why. T…
- `manage_merchant_notifications` — PUSH INSTEAD OF POLLING for Merchant Center product status. Google POSTs to a URL the moment a product
- `manage_meta_partnership_creator` — Add a creator to — or remove one from — this brand’s Partnership Ads lists. Name at least one list:
- `manage_meta_post` — Edit the text of, or delete, a published post. target:
- `manage_microsoft_merchant_catalog` — Create, update or delete a catalog in a Microsoft Merchant Center store. Creating needs name + market + isPublishingEnabled; updating needs catalogId + name + isPublishingEnabled (market is not settable after creation). isPublishingEnabl…
- `manage_sheet_tabs` — Add, rename or delete a tab in a Google Spreadsheet. action:
- `manage_tiktok_ads_blocked_words` — Change the ad account’s blocked-word list — the standing filter that auto-hides any comment containing one of these words across every ad on the account. operation
- `manage_tiktok_ads_catalog_feed` — The scheduled import that fills a TikTok catalog from the product feed a store already publishes — Shopify, WooCommerce and BigCommerce all expose one, so this is usually the whole job of getting a merchant’s products into TikTok. THE ON…
- `manage_tiktok_ads_offline_event_set` — Create, rename or delete an Offline Event set — the container in-store and other real-world conversions are reported into. AUTOTRACKING IS A STANDING SETTING RATHER THAN A PROPERTY OF THIS SET: with it on, EVERY campaign created under th…
- `manage_tiktok_ads_test_lead` — TikTok’s own test-lead mechanism — the way to prove a lead pipeline works end to end WITHOUT waiting for a real person to fill in a form, and the exact twin of testEventCode on send_tiktok_ads_events. action
- `manage_tiktok_brand_hashtags` — Enable or disable the hashtags TikTok counts as this brand
- `manage_tiktok_tto_anchor` — Webpage anchors: the link that appears above a creator’s video description and in its comment section, sending viewers to a product or service page. action
- `manage_x_broadcast` — Schedule, update, go live on, or cancel an X LIVE VIDEO broadcast on the connected account. action
- `manage_x_chat` — Manage one of the connected X account
- `manage_youtube_caption` — Attach a real subtitle track to one of the connected channel’s videos, replace one, or delete one. Pass the caption file BODY itself as
- `manage_youtube_channel_section` — THE SHELVES ON THE CHANNEL HOMEPAGE — what a visitor sees first, and the only place a chosen playlist can be put above YouTube’s own default layout. action:
- `manage_youtube_playlist` — Create, update or delete a playlist on the connected channel. CREATE makes it PRIVATE unless you pass privacy — a public playlist appears on the channel immediately, so publishing is always a deliberate choice. UPDATE merges: an omitted …
- `manage_youtube_playlist_image` — PUT A CUSTOM COVER ON A PLAYLIST — the last call in a chain that already existed, since make_thumbnail renders the artwork and the playlist tools own the playlist. Without one YouTube shows the first video
- `manage_youtube_playlist_items` — Add a video to a playlist, remove an entry, or move an entry to a new position. ADD takes playlistId + videoId and returns the new entry’s
- `mark_bluesky_convo_read` — Clear the unread count on Bluesky DMs \u2014 ONE conversation, or the WHOLE ACCOUNT when convoId is omitted (Bluesky\u2019s own mark-all, narrowable with status to just the message requests or just the accepted threads). Useful after tri…
- `merchant_issue_help` — GOOGLE
- `merge_openai_ads_audiences` — Combine 2 to 64 existing ChatGPT Ads custom audiences into ONE new audience. The SOURCE audiences are left unchanged, later updates to them do NOT propagate into the merged one, and no existing campaign switches to the new id by itself —…
- `meta_insights` — Pull performance INSIGHTS (spend, impressions, reach, clicks, CTR, CPC, CPM, conversions) for a connected ad account, or a specific campaign / ad set / ad. Pass adAccountId (for auth); optionally objectId to scope to one object and level…
- `meta_page_insights` — Organic performance for the brand’s connected Facebook Page — views and unique reach (page_media_view / page_total_media_view_unique, Meta’s own replacements for the impressions family it retired), post engagements, video views, daily fo…
- `meta_post_insights` — Performance for a single organic post — on Facebook views/reach (post_media_view, post_total_media_view_unique — Meta’s own replacements for the retired impressions family), clicks, reactions and video watch time; on Instagram views, rea…
- `microsoft_ads_auto_apply` — Whether Microsoft is allowed to change this ad account BY ITSELF, unattended: the auto-apply opt-in status for each of the five recommendation types Microsoft supports. THIS IS THE READ THAT ANSWERS
- `microsoft_ads_bulk_upload` — Apply a Microsoft Advertising BULK FILE — edit hundreds of campaigns, ad groups, ads, keywords, extensions or labels in one request. Pass
- `microsoft_ads_traffic_estimates` — What a set of keywords would DELIVER on Microsoft Advertising at a given bid — estimated impressions, clicks, CTR, average CPC, average position and total cost. maxCpc is REQUIRED because a traffic estimate IS a function of the bid; esti…
- `moderate_tiktok_comment` — Moderate one comment on a TikTok post the authorized account owns: LIKE, UNLIKE, HIDE, UNHIDE or DELETE. TWO RULES TIKTOK ENFORCES AND THIS TOOL STATES UP FRONT. (1) YOU CAN ONLY DELETE A COMMENT THIS ACCOUNT WROTE — anyone else
- `moderate_youtube_comment` — Moderate a comment on the connected channel — the YouTube twin of moderate_meta_comment. ACTIONS: publish (make it visible again) · hold (hide it pending review) · reject (hide it as unfit for display) · spam (report it to YouTube — a RE…
- `multiply_ad` — MULTIPLY a winning video ad into N variants: each gets a NEW character, outfit, location and/or objects while the cut, the camera motion, the pacing and the ORIGINAL AUDIO stay exactly as they were (that is what made the ad work), and an…
- `openai_ads_conversions` — ATTRIBUTED CONVERSIONS for ChatGPT Ads — the number the whole pixel + conversion-event setup exists to produce, beyond what openai_ads_report shows: that report carries conversions and CPA for the account, a campaign, ad group or ad, whi…
- `pin_telegram_message` — Pin a message to the top of a Telegram channel or group, or unpin one. A channel\u2019s pinned message is its most valuable real estate and its de-facto call to action. Pinning is SILENT by default (no member notification) \u2014 pass no…
- `plan_ad` — Industry briefs: list_templates. Creative director: turn a brand + product/brief into a finished ad CONCEPT — copy variants (headline/primary/cta) plus an image_concept.prompt OR a video_storyboard, with the resolved recipe + the model i…
- `post_edit` — MECHANICAL post-production on an EXISTING video (URL): ordered primitives run by ffmpeg in seconds, ~2 credits flat, NO AI model, as a NEW video. Ops: a branded end card (adds its seconds), trim, speed (0.5-2x), mute (whole or a window),…
- `post_performance` — Aggregate this brand
- `post_to_bluesky` — Publish a post to Bluesky as the connected account. Text up to 300 characters — Bluesky ALSO caps a post at 3000 UTF-8 bytes, so an emoji-heavy post can be under 300 characters and still be refused; Hermoso checks both before spending th…
- `post_to_google_business` — Publish a Post to the brand’s Google Business Profile — the panel that appears on Google Search and Maps for the business. Text, optionally ONE PHOTO, and a call-to-action button. Google’s Posts API accepts NO VIDEO, so pass a still imag…
- `post_to_linkedin` — Publish a post to the user’s connected LinkedIn profile — text, and optionally an image (pass its served URL as imageUrl). The image does NOT have to be something Hermoso generated: LinkedIn is served the bytes from us, so the URL must b…
- `post_to_linkedin_page` — Publish a post to one of the user’s LinkedIn COMPANY PAGES — text, plus optionally an image, a video, a 2–20 image CAROUSEL (LinkedIn calls it a MultiImage post; pass the slides in order as imageUrls[]), or a LINK POST with a real previe…
- `post_to_meta` — Publish to a connected Facebook Page, its linked Instagram, OR the brand’s Threads account — text/link/image/VIDEO/CAROUSEL. A MULTI-SLIDE creative is a CAROUSEL, not several posts: pass the slides in order as imageUrls[] and they publis…
- `post_to_pinterest` — Create a Pin on one of the user’s Pinterest boards from any finished visual they have — image, video, or a 2–5 slide CAROUSEL (pass the slides in order as imageUrls[] and Pinterest publishes one swipeable Pin). Title, description and des…
- `post_to_telegram` — Publish to a Telegram channel, group or chat as the brand
- `post_to_tiktok` — Publish to the user’s connected TikTok account — a finished VIDEO, or a PHOTO POST (TikTok’s photo/slideshow format). A photo post carries 1 to 35 images and ONE image is simply a one-slide photo post, so there is nothing special to do f…
- `post_to_x` — Publish to the user’s connected X (Twitter) account — a single post, a post with an image or video render attached, a reply to an existing post, or a whole THREAD (pass
- `post_to_youtube` — Publish a finished video to the brand’s connected YouTube channel. Pass a Hermoso render URL (or an upload_file url for a local/external file). PUBLISHES PUBLICLY BY DEFAULT: a plain
- `post_x_article` — Publish a long-form ARTICLE to the user’s connected X (Twitter) account — X’s own long-form format, which is a different thing from a long POST. Give it a
- `preview_openai_ads_business_agent` — Send a message (or a whole messages[] transcript) to a ChatGPT Ads Business Agent and get its reply — a PREVIEW that publishes and serves nothing. Use it to test instructions before publish_openai_ads_business_agent.
- `preview_tag_manager_publish` — WHAT WOULD HAPPEN IF YOU PUBLISHED — free, read-only, and it publishes nothing. Returns the container, the version live on the site right now and what it holds, the exact list of staged changes (added, updated, deleted) as Tag Manager it…
- `publish_openai_ads_business_agent` — Publish a Business Agent’s draft so every campaign referencing it serves this version to real users. confirm:true required; show the user the instructions first.
- `publish_openai_ads_lead_form` — Publish the current draft of a ChatGPT Ads lead form so Business Agents can use it. expectedDraftRevisionId is the draftRevisionId you last read. Show the user the fields before publishing: the form is what real people will see.
- `publish_tag_manager_container` — PUBLISH THE CONTAINER — the ONE call in Hermoso that changes what runs on the customer
- `publish_to_shopify_product` — Attach a finished image to one of the merchant
- `register_merchant_developer` — ONE-TIME SETUP, and the FIRST thing to run when Merchant Center calls are being refused. Google blocks every Merchant API call until Hermoso
- `remember` — Save a durable fact or PREFERENCE about the brand, audience, or the user’s creative TASTE (e.g. “audience is first-time homebuyers”, “prefers bold lime accents”, “always captions off”) into the workspace Memory so it shapes FUTURE ads. F…
- `rename_reddit_ads_asset` — Change a stored Reddit creative asset’s name — the ONLY field Reddit lets you edit on an asset (its PATCH takes {name} and nothing else). The reply is read back from the library. Free.
- `reply_to_linkedin_comment` — Speak AS your LinkedIn company Page: comment on one of its posts, or reply to somebody else
- `reply_to_meta_comment` — Post a public reply to a comment on the brand’s Facebook or Instagram post. This is PUBLIC and posted as the brand — show the user the exact wording and get their go-ahead first.
- `reply_to_meta_message` — Send a text reply to someone who has messaged the brand. THIS REACHES A REAL PERSON — show the user the exact text and who it goes to, get a yes, then send. Pass
- `reply_to_thread` — Post a reply to a Threads post — the brand’s own or someone else’s. This PUBLISHES publicly under the brand’s account, so show the user the exact wording and get their go-ahead first.
- `reply_to_tiktok_ads_comment` — Post a public reply, as the brand, under a comment on one of your TikTok ads — the TikTok twin of reply_to_meta_comment and reply_to_youtube_comment. THE REPLY IS LIVE IMMEDIATELY AND IS PUBLIC, posted as the TikTok identity you name, so…
- `reply_to_tiktok_comment` — Reply to an existing comment on a TikTok post the authorized account owns — TikTok
- `reply_to_youtube_comment` — Post a public reply to a comment on the connected channel, as the channel. This is PUBLIC and immediate — show the user the exact reply text and get an explicit yes before calling. Get commentId from list_youtube_comments. Needs a connec…
- `report_bug` — Report a bug in Hermoso to the team. Use this when something in Hermoso genuinely misbehaves — a tool errors unexpectedly, returns a wrong or malformed result, a render comes back broken, or documented behaviour doesn
- `request_messenger_optin` — Send Meta’s opt-in request (the notification_messages template) to someone ALREADY in a Messenger conversation with the Page, inside the 24-hour window. If they accept, Meta posts a messaging_optin webhook with their subscription token a…
- `reschedule_post` — Change a post that is still QUEUED — move it to a different time, rewrite the caption, swap the media, add or drop a channel, or change which board / Page / company Page / listing it goes to. PASS ONLY WHAT CHANGES: an omitted field is l…
- `resize_ad` — Re-lay out ONE finished static ad for other placements: the same ad, product, copy (word for word), logo and style, recomposed natively for each canvas rather than cropped. Pass
- `respond_instagram_collab_invite` — Answer a collab invite from list_instagram_collab_invites. accept:true makes this account a co-author and the creator’s post appears on its profile; accept:false declines.
- `resume_openai_ads_audience_operation` — Resume an existing ADD or REMOVE on a ChatGPT Ads custom audience from its own checkpoints with its original inputs, so nothing is uploaded again. Free. The reply is the status read back after the resume, never the request alone.
- `retry_scheduled` — Send a post that FAILED again. A scheduled post fans out across its channels INDEPENDENTLY, so a failure is usually PARTIAL — LinkedIn 401s while Instagram published fine — and this re-fires ONLY the channels that did not succeed by defa…
- `save_creator` — Add a portrait to this workspace’s reusable CAST so the SAME person can star in future ads — the headless twin of the app’s + > Pick a creator > save. Pass the portrait’s public url (a generate_image render of an AI person, or a photo of…
- `save_dm_automation` — Create (no id) or edit (id) a ManyChat-style automation. Instagram/Facebook: a keyword comment (one post, the next post, any post; on Facebook also ads) gets a private reply in DMs/Messenger, a DM keyword or ig.me/m.me ref link gets a me…
- `save_instagram_dm_automation` — Create (no id) or edit (id) an automation that DMs people automatically: a comment with a keyword on one post / the next post / any post gets a private reply, or a DM / story reply / ig.me link gets an answer. Optional link buttons, publ…
- `save_pinterest_pin` — Save an existing Pin onto another of the account’s boards. This is the GENERALLY AVAILABLE way to get a Pin onto the right board — unlike update_pinterest_pin, which Pinterest keeps in a limited beta — so reach for it first when a Pin is…
- `save_playbook` — Save a reusable PLAYBOOK — the strategy takeaways worth re-running: the hooks that work, the angles, the formats, and the concrete plays. Use it to keep what a competitor_teardown or mine_angles just found, or to bank a creative you want…
- `save_skill` — Save a reusable custom SKILL — a named creative directive/playbook applied to future ads (a hook formula, a UGC recipe, a compliance rule, a named specialist persona like “our founder-story style” or “short-form ad strategist”). Distill …
- `save_to_drive` — Save a Hermoso render — or ANY file — into the user’s connected Google Drive. Pass a Hermoso render URL as url (or urls[] for several); for a local/external file, call upload_file first and pass the url it returns. Optional folder (creat…
- `save_to_onedrive` — Save a Hermoso render — or ANY file — into the user’s connected Microsoft OneDrive. Pass a Hermoso render URL as url (or urls[] for several); for a local/external file, call upload_file first and pass the url it returns. Optional folder …
- `save_to_swipefile` — Save one or more ads/creatives to a named SWIPEFILE collection, creating the collection if it does not exist — the headless twin of the heart on every ad card in the web app. Use it whenever research turns up something worth keeping: a c…
- `schedule_post` — Queue a post for a future time on one or more connected channels at once: facebook, instagram, threads, tiktok, youtube, linkedin, x, pinterest, bluesky, telegram — TEN channels, every one live. google_business is in the schema but HELD …
- `send_applovin_ads_events` — Send website conversion events to AppLovin from the server (its Conversion API): purchase, generate_lead, add_to_cart and the rest, up to 100 per batch, each with the visitor’s public IP, user agent and one identifier. Email and phone ar…
- `send_bluesky_dm` — Send ONE direct message on the connected Bluesky account, either into an existing conversation (convoId) or to a named handle (a conversation is opened for you \u2014 the handle is resolved to a DID first, because Bluesky identifies chat…
- `send_linkedin_conversions` — Stream conversion events to LinkedIn (Conversions API) — server-side conversion tracking for things that happen where the Insight Tag cannot see them: a CRM deal closing, an offline sale, a phone order, a qualified lead. Needs a rule fro…
- `send_messenger_marketing_message` — Send a PAID marketing message on Messenger to opted-in subscribers (Meta act_<AD>/messages). A campaign created in the last ~hour answers 2300012 then 2300041 (Meta still preparing it) with the seconds left; prefer an existing campaign f…
- `send_microsoft_ads_offline_conversions` — Tell Microsoft Advertising about conversions that happened OFF the website — a phone sale, an in-store purchase, a lead that closed weeks after the click — so smart bidding on that account stops optimising against only what converted onl…
- `send_openai_ads_conversions` — Send conversion events to ChatGPT Ads from a SERVER (the Conversions API). USER MATCHING (schema of 2026-09-03): pass plaintext email / phone (with country code) / externalId / firstName / lastName and Hermoso hashes them locally, plus r…
- `send_reddit_ads_conversions` — Report conversions to Reddit server-side — purchases, leads, sign-ups, or your own custom events — so Reddit can attribute them to the ads that caused them and optimise delivery toward them. This is what makes a CONVERSIONS campaign work…
- `send_tiktok_ads_events` — SERVER-SIDE CONVERSION TRACKING — report a purchase, signup, form submission or lead to TikTok straight from a server, so TikTok can attribute it and optimise delivery toward it. This is what makes a pixel useful: a pixel with no events …
- `send_tiktok_ads_offline_events` — REPORT REAL-WORLD CONVERSIONS — an in-store purchase, a phone booking, a signed contract — so TikTok can attribute them to the ads that caused them and optimise delivery toward them. This is what makes a TikTok campaign measurable for a …
- `send_whatsapp_broadcast` — Send ONE approved WhatsApp template to MANY recipients — a customer list, a segment, a launch announcement. TEMPLATES ONLY: WhatsApp accepts free-form text only inside the 24-hour customer-service window that opens when THAT person messa…
- `send_whatsapp_message` — Send a WhatsApp message from one of the brand’s registered numbers to a customer. TWO KINDS, and which one is legal depends on time: pass
- `send_x_broadcast_chat` — Post ONE chat message, as the brand, into a RUNNING live broadcast on the connected X account (max 140 characters; a longer one is refused, never cut). It is PUBLIC in front of everyone watching: show the user the exact wording, get a ye…
- `send_x_dm` — Send ONE direct message from the connected X account, either into an existing conversation (conversationId) or to a named account (participantId — the NUMERIC id, not an @handle; sending to someone with no existing thread starts one).
- `set_apple_ads_status` — Pause or enable an Apple Ads campaign, ad group, keyword or ad. PAUSING is immediate and needs no confirmation. ENABLING IS THE ONE SWITCH THAT ARMS REAL MONEY: it requires confirm:true, and without it nothing changes and the refusal nam…
- `set_applovin_ads_status` — LIVE or PAUSED for an AppLovin campaign (campaignId) or creative set (creativeSetId), read back. LIVE starts real ad spend: show the user the budget, get an explicit yes, then call with confirm:true. Pausing is always safe. AppLovin’s AP…
- `set_competitor_watch` — Set (or STOP) this workspace\
- `set_connector_accounts` — Set WHICH of a connector
- `set_google_ads_bidding` — Change how an existing Google Ads campaign bids: MANUAL_CPC (optionally enhanced), MAXIMIZE_CLICKS (needs maxCpcUsd on an existing campaign — Google requires the CPC ceiling on that change), MAXIMIZE_CONVERSIONS, MAXIMIZE_CONVERSION_VALU…
- `set_google_ads_networks` — Change WHERE an existing Google Ads campaign serves: Google Search, Search partners (target_search_network) and the Display Network (target_content_network), each true/false. The classic use is turning Search partners OFF on a Search cam…
- `set_google_ads_status` — Turn a campaign, AD GROUP or AD ON (ENABLED), OFF (PAUSED) or REMOVED. Pass level:
- `set_google_ads_targeting` — ADD locations and languages to an existing Google Ads campaign. THIS ADDS; IT DOES NOT REPLACE — Google campaign criteria are a list, this call only ever creates entries, and there is no remove operation here. So a campaign already targe…
- `set_linkedin_ads_budget` — Change a LinkedIn campaign’s daily and/or total budget. On a LIVE (ACTIVE) campaign this changes real spend immediately — and LinkedIn can spend up to 150% of a daily budget on a high-opportunity day — so show the user the new amount, ge…
- `set_linkedin_ads_status` — Turn a LinkedIn campaign group, campaign or CREATIVE (the ad itself) on (ACTIVE) or off (PAUSED). Pass level:
- `set_merchant_inventory` — SET the price, availability or stock level of one Shopping product at ONE physical store (kind:\
- `set_microsoft_ads_auto_apply` — Switch Microsoft’s auto-apply on or off, per recommendation type. SWITCHING ONE ON IS UNLIKE EVERY OTHER WRITE IN HERMOSO: it is STANDING PERMISSION FOR MICROSOFT TO CHANGE THIS AD ACCOUNT ON ITS OWN, indefinitely, with nobody watching, …
- `set_microsoft_ads_budget` — Change a Microsoft Advertising campaign’s DAILY BUDGET (in the account’s currency). Raising it on a LIVE (Active) campaign increases real spend immediately — you MUST show the user the new daily amount, get an explicit yes, then call wit…
- `set_microsoft_ads_profile_targeting` — Target LinkedIn profiles on a Microsoft Advertising Search, Shopping or Dynamic Search Ads campaign: add companies, industries, job functions, seniorities or job titles, each with an optional bid adjustment (whole percent, -90 to 900), o…
- `set_microsoft_ads_status` — Turn a Microsoft Advertising campaign, AD GROUP or AD on (Active) or off (Paused). Pass level:
- `set_openai_ads_budget` — Change a ChatGPT Ads campaign’s budget — a daily cap, a lifetime cap, or both, in the ad account’s currency. A LIFETIME (total) budget is PACED by ChatGPT Ads to spread spend evenly across the campaign’s dates (actual daily spend still v…
- `set_openai_ads_daily_spend_limit` — Create or change the ACCOUNT-WIDE DAILY SPENDING LIMIT on ChatGPT Ads: the most all campaigns together may spend each day, renewing at midnight in the account timezone, until it is removed or reaches its optional end date. OpenAI offers …
- `set_openai_ads_feed_sftp` — Manage SFTP bulk delivery for a ChatGPT Ads product feed (the alternative to pushing products through update_openai_ads_feed_products). action
- `set_openai_ads_lead_sync` — Provision lead delivery for this ChatGPT Ads account to an https destination URL (a managed webhook). Optionally pass your own signingSecret (16+ chars); otherwise ChatGPT Ads mints one. THE SIGNING SECRET IS RETURNED ONCE — every lead w…
- `set_openai_ads_negative_keywords` — CURRENTLY UNAVAILABLE: OpenAI no longer serves account-level negative keywords. The live API answers
- `set_openai_ads_spend_window` — Create (no windowId) or edit (windowId) an account-level spend-limit window on ChatGPT Ads: startDate YYYY-MM-DD inclusive, endDate YYYY-MM-DD EXCLUSIVE (the window ends the day before), amount in the account currency (sent as micros), o…
- `set_openai_ads_status` — Turn a ChatGPT Ads AD ACCOUNT, campaign, AD GROUP or AD on (active), off (paused), or ARCHIVE it. Pass level:
- `set_pinterest_ads_budget` — Change a Pinterest campaign’s budget — a DAILY cap or a LIFETIME cap, in the ad account’s currency. Pinterest allows only one of the two per campaign, so passing both is refused rather than silently picking one. Raising it on a LIVE (ACT…
- `set_pinterest_ads_status` — Turn a Pinterest campaign, AD GROUP or AD on (ACTIVE) or off (PAUSED) — and, because Pinterest has NO DELETE anywhere in its API, this is also the only way to retire one (ARCHIVED). Pass level:
- `set_post_refill` — Turn the automatic posting refill on or off and set how it behaves. PASS ONLY WHAT CHANGES.
- `set_product_image` — Lock an image as the ad
- `set_reddit_ads_status` — The one switch that arms real money on Reddit. Pass kind (
- `set_role` — Change a workspace member’s role — admin (full access incl. billing) or member (read-only on billing). A privilege change: confirm the exact person + new role with the user, then call with confirm:true.
- `set_snapchat_ads_budget` — Change the budget on a Snapchat AD SQUAD. BUDGETS LIVE ON THE AD SQUAD, not on the campaign — a campaign-level ask is refused by name rather than silently patching nothing. NEEDS confirm:true, and without it NOTHING CHANGES: you get a se…
- `set_snapchat_ads_status` — THE ONE SWITCH THAT ARMS REAL MONEY ON SNAPCHAT. ACTIVE starts real spend on the next auction; PAUSED stops it. EVERY change needs confirm:true, and WITHOUT confirm NOTHING CHANGES — you get a sentence naming each object AS READ FROM SNA…
- `set_tiktok_ads_budget` — Change the budget on a TikTok campaign (level:
- `set_tiktok_ads_rule_status` — TURN_ON IS THE SWITCH THAT HANDS A RULE TO TIKTOK TO RUN UNATTENDED, and it is gated in two classes because the two are not the same act. A rule whose only actions are TURN_OFF, MESSAGE or a DECREASE cannot start or raise spend — the wor…
- `set_tiktok_ads_status` — THE ONE SWITCH THAT ARMS REAL MONEY ON TIKTOK. Pass level (
- `set_tiktok_post_ad_authorization` — Turn TikTok
- `set_tiktok_smart_status` — Enable, pause or delete Smart+ campaigns, ad groups or ads (up to 20 ids per call). ENABLE starts REAL SPEND on the next auction and DELETE is permanent (a deleted campaign takes its ad groups and ads with it), so both require confirm:tr…
- `set_x_ads_status` — Pause or ACTIVATE an X ads CAMPAIGN (campaignId) or ONE LINE ITEM inside it (lineItemId) — pass exactly one. ACTIVATING STARTS REAL SPEND on the next auction, so it requires confirm:true — this is the only switch on X that arms money. Te…
- `set_youtube_thumbnail` — Set the CUSTOM THUMBNAIL on a video already on the connected channel, using a Hermoso image — a make_thumbnail render, a generated image, or a frame. The thumbnail is the single biggest lever on YouTube click-through and YouTube otherwis…
- `set_youtube_watermark` — Set (or remove) the BRANDING WATERMARK — the small subscribe badge overlaid on EVERY video on the channel, including ones uploaded later. One generated asset brands the whole channel at once, which is why it is worth doing before a batch…
- `submit_bing_webmaster_content` — Give Bing a page\
- `submit_bing_webmaster_sitemap` — Register a sitemap with Bing so it discovers new and changed pages by itself — the durable twin of submit_bing_webmaster_urls, which spends a small per-site daily quota every time. Takes the sitemap\
- `submit_bing_webmaster_urls` — Submit URLs to Bing for indexing — the fastest way to get a new or changed page crawled by Bing, and therefore into Copilot and ChatGPT web search. THE SITE\
- `submit_indexnow` — Ping the IndexNow search engines that pages were added, updated or deleted — Bing, Yandex, Naver, Seznam.cz and Yep, all reached by ONE submission. Important: GOOGLE DOES NOT PARTICIPATE IN INDEXNOW and never has, so say that plainly rat…
- `submit_search_console_sitemap` — Tell Google about a sitemap.
- `submit_tiktok_ads_verification` — Submit a business or individual verification request for a TikTok ad account or Business Center. IT DOES NOT UPLOAD ANY DOCUMENT AND HERMOSO NEVER HANDLES ONE: this sends the account details plus the ids of images the user already upload…
- `tiktok_ads_catalog_diagnostics` — TikTok’s own diagnosis of a catalog — every detected issue at CRITICAL or WARNING level across product attributes, product review, catalog configuration, pixel/event problems and feed or file-upload failures, each carrying the reason AND…
- `tiktok_ads_comment_thread` — The conversation around a single comment on a TikTok ad: give it an ORIGINAL comment and you get that comment plus every reply to it; give it a REPLY and you get the reply plus the comment it answers. Use it before replying to a heated t…
- `tiktok_ads_rf_inventory_estimate` — Reach & Frequency INVENTORY ESTIMATE — how many people TikTok can reach, for what budget, at what frequency, over a fixed window, before anything is booked. THIS IS THE ONLY SANCTIONED SOURCE of the three numbers create_tiktok_ads_rf_ad_…
- `tiktok_post_status` — Follow a TikTok post that post_to_tiktok sent but TikTok was still processing (it came back pending:true). Pass the publishId it returned. Answers one of three states: done (PUBLISH_COMPLETE, with the public postId when TikTok gives one)…
- `unbind_tiktok_ads_spark_post` — Remove a TikTok post from this ad account’s authorised Spark Ads list — the cleanup for an authorization that has expired or been revoked. IT IS NOT REVERSIBLE FROM OUR SIDE: re-authorising needs a FRESH code from the post’s owner, who i…
- `update_apple_ads_ad_account` — Rename an Apple Ads ad account or change which advertiser resources it delegates — how you link App Store Connect (a CONTENT_PROVIDER / CPID) to an account that cannot yet advertise an app, or attach a brand for Apple Maps. WARNING: DELE…
- `update_apple_ads_budget_order` — Change a budget order: its name, window, total value, attached ad account or invoice details. Only the fields you send change; everything omitted keeps its value. RAISING
- `update_apple_ads_object` — Edit an existing Apple Ads campaign, ad group, keyword, creative or ad. Pass level and id plus ONLY the fields you want to change — Apple leaves every field you omit exactly as it is. Campaign: name, dailyBudget, startTime, endTime, coun…
- `update_applovin_ads_campaign` — Change an AppLovin campaign’s name, budget, goal value, countries, end date or landing page, read back. On a LIVE campaign a budget, goal, country or end-date change needs confirm:true. Status is set_applovin_ads_status; goal type, biddi…
- `update_brand` — Patch SPECIFIC fields of the active profile (name, domain, sells, summary, category, audience, positioning, voice, style, goal, and how the brand and product names are pronounced) WITHOUT overwriting the rest — a read-modify-write on the…
- `update_business_location` — Change the brand’s Google Business Profile listing — hours, phone, website, description, categories, service area, labels, store code, address or the business name. THIS EDITS THE PANEL ON GOOGLE SEARCH AND MAPS, immediately and publicly…
- `update_doc` — EDIT a Google Doc — the correction append_to_doc cannot make, which until now meant a doc could only ever grow and a wrong line stayed in it forever. Two shapes:
- `update_drive_file` — Update a Drive file: rename (name), move it into a folder (moveToFolderId, optionally removeFromFolderId to move OUT of the old one), or trash / untrash it (trash:true|false). Pass fileId (from list_drive_files). To delete permanently, u…
- `update_linkedin_conversion_rule` — Rename a LinkedIn conversion rule, change its attribution windows or attribution model, or ENABLE/DISABLE it. Disabling is how a conversion rule is retired — LinkedIn publishes no delete for one, and while it is disabled every streamed e…
- `update_merchant_product` — Change SOME fields on a product already in a Merchant Center feed — the everyday operation, because price and availability move daily. This is a PATCH: only the attributes you name are touched and everything else on the product survives,…
- `update_meta_catalog` — Change a product catalog’s settings — most often its NAME. Also accepts the default and fallback product image URLs (what Meta shows when a product row has no usable image), the dynamic-ad display settings, and the destination / flight /…
- `update_meta_object` — Update an EXISTING campaign, ad set, or ad — rename, change its daily budget, retarget (ad sets), or change status (PAUSED / ACTIVE / ARCHIVED). Pass objectId (from list_meta_ads) + adAccountId. Setting something ACTIVE can start REAL AD…
- `update_onedrive_file` — Update a OneDrive item: rename (name) and/or move it into a folder (moveToFolderId). Pass fileId (from list_onedrive_files). To remove an item, use delete_onedrive_file.
- `update_openai_ads_account` — Update the ChatGPT Ads account’s names, primary URL and/or favicon. brandName is shown IN ADS, accountName is internal to Ads Manager, legalName is the business. Per OpenAI, a brand-name change PAUSES AD DELIVERY until brand review passe…
- `update_openai_ads_audience_members` — Change who is IN a ChatGPT Ads custom audience. Pass plain emails, phone numbers and/or Google Advertising IDs (GAID, UUID-shaped) in ONE list — identifier types may be mixed in a single request: Hermoso normalises and SHA-256 hashes ema…
- `update_openai_ads_feed_products` — Update the PRICE, TITLE or AVAILABILITY of variants already in a ChatGPT Ads product feed — send only what changed instead of re-uploading the catalog. This is what stops a stale feed serving ads for out-of-stock items. Pass feedId and p…
- `update_openai_ads_feed_settings` — Rename a product feed and/or set searchEligibleRespected (its organic ChatGPT search listing follows each product’s is_eligible_search flag). Touches no ads or spend; the reply is what OpenAI stored.
- `update_openai_ads_lead_form` — Save a NEW DRAFT REVISION of a ChatGPT Ads lead form (the whole definition: name + fields are replaced). expectedDraftRevisionId must be the draftRevisionId you last read — ChatGPT Ads refuses a stale one so two editors cannot clobber ea…
- `update_openai_ads_object` — EDIT an existing ChatGPT Ads object in place — rename it, change a campaign’s budget or geo targeting, rewrite an ad group’s context hints or bid, or replace an ad’s title, body, landing page or image. Pass level:
- `update_pinterest_ads_ad` — EDIT an existing Pinterest ad in place — its name, DESTINATION URL, creative type, tracking URLs, deep links, lead form, or which ad group it sits in. A PARTIAL edit: a field you do not name is left exactly as Pinterest has it. THE PIN C…
- `update_pinterest_ads_ad_group` — EDIT an existing Pinterest ad group in place — its name, bid, budget, pacing, placement and, above all, its TARGETING. Before this, targeting was frozen the moment an ad group was created: a mistyped bid or a missing country meant buildi…
- `update_pinterest_board` — Rename a board, rewrite its description, or change its privacy. Warning: SETTING A BOARD TO SECRET HIDES EVERY PIN ON IT from everyone but this account — nothing errors and nothing is deleted, the Pins simply stop being public, which is …
- `update_pinterest_pin` — Edit a published Pin — its title, description, destination link, alt text, or which board it sits on. Only send the fields that should change. TWO LIMITS TO STATE BEFORE OFFERING THIS. (1) Pinterest marks its Update Pin endpoint
- `update_reddit_ads_ad` — Rename a Reddit ad, point it at a different post, or change its click url. Does not activate or pause it — use set_reddit_ads_status. Swapping the post changes what people see, so confirm the new creative with the user first. The result …
- `update_reddit_ads_ad_group` — Change an existing Reddit ad group’s name, budget, goal type, bid, schedule dates or targeting. Budget and bid are ordinary amounts in the ad account’s currency. Targeting MERGES KEY BY KEY — measured live 2026-08-05, and it is NOT a who…
- `update_reddit_ads_audience_users` — Add people to, or remove people from, a Reddit custom audience. Pass ordinary email addresses and/or mobile advertising ids — each one is canonicalised the way Reddit specifies and SHA-256 hashed on our server before it is sent, so raw c…
- `update_reddit_ads_campaign` — Change an existing Reddit campaign’s name, spend cap, budget, goal type or flight dates. Amounts are ordinary numbers in the ad account’s currency. The OBJECTIVE and useCatalog cannot be changed: Reddit freezes both at creation and refus…
- `update_reddit_ads_max_template` — Change a Reddit Max template ad: its assets (5 to 45 ACTIVE, at least 3 HEADLINE and 2 IMAGE or VIDEO, read and counted before anything is sent), thumbnails, destination URL, supplementary text, user-generated content enrollment or name.…
- `update_reddit_ads_post` — Turn comments ON or OFF on an existing Reddit ad post. THAT IS THE ONLY EDIT REDDIT ALLOWS: its post-update schema permits exactly one field,
- `update_reddit_ads_saved_audience` — Rename a Reddit saved audience or replace its targeting. Targeting MERGES KEY BY KEY — measured live 2026-08-05, not a wholesale replace: a key you send replaces that whole list, a key you LEAVE OUT is kept as it was, and an explicit emp…
- `update_saved_creator` — Set the OUTREACH STATUS and/or a NOTE on a creator already saved in the swipefile (find_creators -> save_to_swipefile, or the heart on a creator card). Status is one of new | contacted | replied | booked | passed. The note is free text (…
- `update_settings` — Change this account\
- `update_sheet` — CORRECT cells in a Google Sheet — write values to an exact range, overwriting whatever is there. This is the fix append_to_sheet cannot make: appending only ever adds rows at the bottom, so without this a wrong number stays wrong forever…
- `update_tag_manager_tag` — CHANGE AN EXISTING TAG in the draft workspace: rename it, fix a wrong conversion id or label, move it onto a different trigger, or pause it. Like create_tag_manager_tag this lands in a DRAFT and does not reach the website until a human p…
- `update_tiktok_ads_audience` — Rename a TikTok custom audience. THAT IS ALL IT CHANGES, and the limit is TikTok’s rather than ours: their only other update path replaces the uploaded customer FILE, which Hermoso deliberately does not build (hashed personal data under …
- `update_tiktok_ads_rule` — Replace an automated rule’s WHOLE definition. TikTok’s update is a full replace rather than a patch, so send every field the rule should keep — anything omitted is gone. IF THE RULE IS CURRENTLY RUNNING AND THE NEW VERSION CAN START OR R…
- `update_tiktok_tto_campaign` — Add creators or ad accounts to an existing TikTok One campaign. IT ONLY EVER ADDS: TikTok appends what you pass to what the campaign already holds and publishes nothing that removes either, so there is no way to un-invite a creator or un…
- `update_x_ads_campaign` — Change a LIVE X campaign — budget, name, delivery pacing. THIS IS HOW YOU THROTTLE OR RAISE SPEND on a running campaign without rebuilding it, and lowering dailyBudget is the fastest way to slow money down short of pausing. Budgets are i…
- `update_x_ads_line_item` — Change an X line item — BID, bid strategy, SCHEDULE, goal or name. An X campaign
- `update_x_chat_settings` — Change the connected X account
- `update_youtube_video` — Edit an existing video on the connected channel: title, description, tags, and/or privacy (unlisted | public | private). THIS IS HOW YOU FLIP AN UNLISTED UPLOAD PUBLIC (post_to_youtube is public by default; unlisted only when the user as…
- `upload_apple_ads_asset` — Upload an image into the Apple Ads asset library for an APPLE MAPS brand creative. APPLE MAPS ONLY, and that is Apple’s rule rather than ours: it refuses uploads for App Store apps outright, because an App Store ad is rendered from the a…
- `upload_applovin_ads_assets` — Upload videos, images or an HTML playable to AppLovin from Hermoso render or Library urls or public files (mp4, mov, jpg, png, gif, html; up to 40). Returns AppLovin asset ids once processed; pass uploadId to check a pending upload again…
- `upload_file` — Persist an ARBITRARY user file (image, video, audio, PDF or document, up to 150MB) into Hermoso and get back a durable public URL that EVERY publish, schedule and ad-build tool accepts — post_to_meta / post_to_linkedin / post_to_linkedin…
- `upload_google_ads_asset` — Add a creative to a Google Ads account’s ASSET LIBRARY so it can be used in ads. It does NOT have to be a Hermoso render — the user’s own creative is the normal case; the URL just has to be Hermoso-HOSTED because we fetch the bytes, so r…
- `upload_meta_asset` — Upload creative(s) — a finished Hermoso ad OR arbitrary user files (e.g. a folder of media from the user’s desktop) — into a connected ad account’s ASSET LIBRARY so the user or a later ad-build step can use them in their OWN campaigns. Pass
- `upload_reddit_ads_assets` — Store creatives in the Reddit Ads ASSET LIBRARY for a profile: images and videos (from a public https url — Reddit downloads it; a video may carry a posterUrl), HEADLINE text, and CTA labels from Reddit’s fixed list (Shop Now, Learn More…
- `upload_snapchat_ads_creative` — PUT A FINISHED HERMOSO RENDER ONTO THE SNAPCHAT AD ACCOUNT so an ad can point at it — the bridge between making an ad and running one, and create_snapchat_ads_ad has no other source for the creativeId it needs. Pass the public https url …
- `upload_tiktok_ads_creative` — Put a finished creative onto the TikTok AD ACCOUNT so an ad can point at it — this is the bridge between making an ad and running one, and create_tiktok_ads_ad has no other source for the ids it needs. Pass the public https url of a Herm…
- `upload_tiktok_comment_image` — Turn a public image URL into the imageUri that comment_on_tiktok_video needs — TikTok will not take a raw URL on a new comment, only on a reply. Returns imageUri, imageWidth and imageHeight, and ALL THREE must be passed back together: Ti…
- `upsert_merchant_product` — Create or replace a product in a Merchant Center feed — this is how a merchant
- `upsert_microsoft_merchant_product` — Add or update product offers in a Microsoft Merchant Center store. THE ONE THING TO KNOW BEFORE CALLING IT: Microsoft has NO partial update \u2014
- `x_post_insights` — Advertiser-grade analytics for the connected account’s OWN posts on X — impressions, engagements, LINK CLICKS, profile visits, video views and video completion quartiles. This is the read that answers “did the creative work”, which x_pos…
- `x_post_insights_historical` — The same advertiser-grade X analytics as x_post_insights — impressions, engagements, LINK CLICKS, profile visits, video views and video completion quartiles — over ANY date range instead of only the last 28 hours. This is the one to use …
- `x_post_metrics` — THE X ANALYTICS TOOL THAT WORKS — impressions, likes, reposts, replies, quotes and bookmarks for any post, PLUS the advertiser numbers (link clicks, profile clicks, engagements) for YOUR OWN posts published in the last 30 days. X serves …

## Related servers

- Delx Mcp A2a (1068 tools) — https://policylayer.com/tools/io-github-davidmosiah-delx-mcp-a2a.md
- Delx MCP Server (740 tools) — https://policylayer.com/tools/io-github-davidmosiah-delx-mcp-server.md
- Binance MCP Server (734 tools) — https://policylayer.com/tools/nirholas-binance-mcp.md
- Nitrostack (697 tools) — https://policylayer.com/tools/nitrostack.md
- Yaver (678 tools) — https://policylayer.com/tools/io-github-kivanccakmak-yaver.md
- Ghl (569 tools) — https://policylayer.com/tools/aiwerk-mcp-server-ghl.md
- Chaoxing Agent (565 tools) — https://policylayer.com/tools/chaoxing-agent.md
- GoHighLevel MCP Server (559 tools) — https://policylayer.com/tools/busybee3333-go-high-level-mcp-2026-complete.md

## For agents

This record is a snapshot. Live verdicts and the full registry:

- Check every server in your MCP config at once: `npx -y policylayer stack`
- Vet a server before you add it: install the mcp-precheck skill — `npx skills add https://policylayer.com` (skill text: https://policylayer.com/skill.md)
- Query the registry over MCP: endpoint `https://api.policylayer.com/mcp` — tools `check_mcp_server`, `check_mcp_stack`, `check_tool`, `search_registry`, `get_change_events`

---

Source: the PolicyLayer MCP registry — one continuously verified record per MCP server. Full record: https://policylayer.com/registry?q=hermoso · API: https://policylayer.com/registry/api · Recommended policies for every tool: https://policylayer.com/policies/hermoso
