接続Reference
REST API
Adako is an MCP server and REST API for Google Ads, Meta Ads, ChatGPT Ads, TikTok Ads and LinkedIn Ads. If your automation speaks HTTP — n8n, Zapier, Make, a cron script — this page is everything you need to call the same tools an assistant calls.
One endpoint per tool
Every tool is a POST to its own URL. There is no router and no dispatch field: the tool name is in the path.
POST https://adako.ai/api/v1/tools/{tool_name}/executeThe body is {"arguments": { … }}. A bare arguments object works too, so a no-code HTTP node can post its field map straight through. Money is a decimal number in the account currency — 80, never 80000000. Ids are strings.
Authentication
Send an Adako API key as a bearer token. Create one in the web app under API keys; it is shown once.
Authorization: Bearer ak_live_…A key carries scopes. A read key (ads:read, accounts:read, usage:read) can call every read tool. A write key adds ads:write, which is what write tools and approve_proposal need. Calling a write tool with a read key answers 401 unauthorized and names the missing scope.
Keys are the only REST credential
/mcp issues tokens for assistants, not for servers. REST accepts ak_live_… keys only. Keep them out of client-side code.The envelope
Every response has the same shape, success or failure.
curl -X POST https://adako.ai/api/v1/tools/google_list_campaigns/execute \
-H "Authorization: Bearer $ADAKO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"arguments": {"customer_id": "1234567890"}}'{
"success": true,
"tool": "google_list_campaigns",
"data": { "campaigns": [ { "id": "123", "name": "Brand — Search", "status": "ENABLED" } ] },
"markdown": "| Campaign | Status | Cost |\n| --- | --- | --- |\n…",
"quota": { "plan": "pro", "used": 12, "limit": 600, "period_end": "2026-10-01" },
"request_id": "3f2b…"
}data— the machine-readable result. Parse this.markdown— the same result written for a person or a model. Paste it into Slack, an email or an LLM prompt.quota— tasks used against the plan this period. Present whenever the call was billable.request_id— also returned as thex-request-idheader. Quote it in support requests; it is how a call is found in the audit log.
Writes return a proposal
A write never reaches the ad platform on its own. It is validated, dry-run against the platform, stored as a proposal and returned to you with a preview. The HTTP status is still 200: the call succeeded, the change is pending.
curl -X POST https://adako.ai/api/v1/tools/google_update_campaign_budget/execute \
-H "Authorization: Bearer $ADAKO_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"arguments": {"campaign_id": "123", "daily_budget": 80}}'{
"success": true,
"tool": "google_update_campaign_budget",
"data": { "status": "pending", "preview": { "summary": "Daily budget 50 → 80 USD" } },
"markdown": "**Proposal created — waiting for approval.** Nothing has changed yet…",
"proposal_id": "prp_01J…",
"approve_url": "https://adako.ai/approvals/prp_01J…",
"request_id": "9a1c…"
}Approve it in one of two ways: a person opens approve_url in the web app, or the same key — holding ads:write — calls approve_proposal over REST.
curl -X POST https://adako.ai/api/v1/tools/approve_proposal/execute \
-H "Authorization: Bearer $ADAKO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"arguments": {"proposal_id": "prp_01J…"}}'Under the direct write policy the call itself is the approval, so the response comes back already executed with a read-back of what exists now. Under inbox it waits. Either way a proposal executes exactly once, and created campaigns are always paused.
Idempotency
Send an Idempotency-Key header — 8 to 128 characters, a UUID is ideal — on any call you might retry. The successful envelope is cached for 24 hours per key and per user.
- Same key, same arguments → the stored envelope, with
Idempotent-Replayed: true. - Same key, different arguments →
409witherror.code: idempotency_mismatch. Use a new key. - Failures are not cached. A call that ran out of quota or hit a platform error stays retryable with the same key.
Retries are safe without the header too: the proposal engine keys every write by user, tool and arguments, so a repeat of the same change joins the existing proposal instead of creating a second one.
Errors and HTTP status codes
Switch on error.code, never on the message. recovery_steps is written to be shown to a person or handed to a model.
{
"success": false,
"tool": "google_update_campaign_budget",
"error": {
"code": "not_connected",
"message": "Google Ads is not connected.",
"recovery_steps": ["Ask the user to connect Google Ads at https://adako.ai/connections."]
},
"request_id": "7c31…"
}| Code | HTTP | When |
|---|---|---|
validation | 400 | An argument is missing, mistyped or out of range. |
account_ambiguous | 400 | Several accounts are active. `details.candidates` lists the valid ids. |
unauthorized | 401 | The API key is missing, invalid, revoked, expired or lacks the scope. |
quota_exceeded | 402 | The monthly task allowance is used up. `quota` says when it resets. |
plan_required | 402 | The plan does not include this tool. |
access_level_insufficient | 403 | The ad platform grants less access than the tool needs. |
unknown_tool | 404 | No tool with that name. `details.suggestions` offers near misses. |
proposal_not_found | 404 | No proposal with that id for this user. |
proposal_expired | 404 | The proposal passed its 48-hour window. Call the tool again. |
not_connected | 409 | The ad platform is not connected, or no account is active. |
needs_reauth | 409 | The platform revoked access. The user must reconnect. |
confirmation_required | 409 | A removal needs `confirm_delete: true`. |
proposal_pending | 409 | An identical change is already waiting for approval. |
proposal_not_pending | 409 | The proposal was already approved, rejected or executed. |
account_limit | 409 | Activating another ad account would exceed the plan. |
idempotency_mismatch | 409 | The Idempotency-Key was reused with different arguments. |
rate_limited | 429 | More than 60 calls a minute. See `Retry-After`. |
platform_rate_limited | 429 | The ad platform is throttling this account. |
platform_error | 502 | The ad platform refused the call. `details.platform_error` has its words. |
internal | 500 | A bug on our side. Retry once, then send the `request_id` to support. |
Anything not listed answers 500. 429 responses carry Retry-After in seconds — wait that long and retry once, do not loop.
Discovery and OpenAPI
GET /api/v1/tools— every tool with its platform, risk, task cost and call URL. Add?platform=google_adsto filter.GET /api/v1/tools/{tool_name}— one tool: the full description, the JSON Schema of its arguments and which fields are required.GET /api/v1/openapi.json— the whole surface as OpenAPI 3.1, generated from the registry. No key needed.
n8n, Zapier, Make and anything else with an HTTP node
Configure one generic HTTP request node and reuse it for every tool:
- Method
POST. - URL
https://adako.ai/api/v1/tools/<tool>/execute. - Authentication — a generic header credential:
Authorization: Bearer ak_live_…. Store it as a credential, not in the URL. - Headers
Content-Type: application/json, andIdempotency-Keyset to the workflow execution id. - Body JSON:
{"arguments": {"customer_id": "1234567890"}}. - Response — branch on
{{ $json.success }}. On failure, route{{ $json.error.code }}: retry onrate_limited, alert a human onneeds_reauth.
In Make, import /api/v1/openapi.json into the HTTP “Make an API Call” module to get the field names. In Zapier, use “Custom Request” with the same three headers.
Command line
The adako CLI wraps the same endpoints with no install step and no dependencies — handy inside coding agents and cron jobs.
npx adako login # paste your ak_live_… key once
npx adako tools --platform google_ads
npx adako google list-campaigns --customer-id 1234567890
npx adako run google_update_campaign_budget --arg campaign_id=123 --arg daily_budget=80Rate limits and cost
Sixty tool calls a minute per user, shared with MCP. Each billable call costs the task count shown below; reads of your own Adako state (usage, connections, proposals) are free. The quota block in every envelope is the authoritative counter.
Endpoints
Generated from the live registry: 231 tools, every one a POST to the path below. Argument schemas are in the tools reference and in openapi.json.
Adako31
| Tool | Path | Risk | Cost |
|---|---|---|---|
| approve_proposal | POST /api/v1/tools/approve_proposal/execute | destructive write | free |
| create_monitor | POST /api/v1/tools/create_monitor/execute | write | free |
| delete_monitor | POST /api/v1/tools/delete_monitor/execute | destructive write | free |
| explain_error | POST /api/v1/tools/explain_error/execute | read-only | free |
| generate_report_now | POST /api/v1/tools/generate_report_now/execute | write | free |
| get_campaign_spec | POST /api/v1/tools/get_campaign_spec/execute | read-only | free |
| get_connections_status | POST /api/v1/tools/get_connections_status/execute | read-only | free |
| get_monitor_history | POST /api/v1/tools/get_monitor_history/execute | read-only | free |
| get_tool_schema | POST /api/v1/tools/get_tool_schema/execute | read-only | free |
| get_usage_status | POST /api/v1/tools/get_usage_status/execute | read-only | free |
| list_connected_accounts | POST /api/v1/tools/list_connected_accounts/execute | read-only | free |
| list_monitors | POST /api/v1/tools/list_monitors/execute | read-only | free |
| list_pending_actions | POST /api/v1/tools/list_pending_actions/execute | read-only | free |
| list_pending_proposals | POST /api/v1/tools/list_pending_proposals/execute | read-only | free |
| list_reports | POST /api/v1/tools/list_reports/execute | read-only | free |
| list_scheduled_tasks | POST /api/v1/tools/list_scheduled_tasks/execute | read-only | free |
| list_what_i_can_do | POST /api/v1/tools/list_what_i_can_do/execute | read-only | free |
| manage_action | POST /api/v1/tools/manage_action/execute | destructive write | free |
| manage_scheduled_task | POST /api/v1/tools/manage_scheduled_task/execute | write | free |
| reject_proposal | POST /api/v1/tools/reject_proposal/execute | write | free |
| schedule_brief | POST /api/v1/tools/schedule_brief/execute | write | free |
| search_tools | POST /api/v1/tools/search_tools/execute | read-only | free |
| start_here | POST /api/v1/tools/start_here/execute | read-only | free |
| suggest_next_action | POST /api/v1/tools/suggest_next_action/execute | read-only | free |
| switch_primary_account | POST /api/v1/tools/switch_primary_account/execute | write | free |
| test_monitor | POST /api/v1/tools/test_monitor/execute | read-only | free |
| update_monitor | POST /api/v1/tools/update_monitor/execute | write | free |
| usage_value_summary | POST /api/v1/tools/usage_value_summary/execute | read-only | free |
| validate_campaign_draft | POST /api/v1/tools/validate_campaign_draft/execute | read-only | free |
| verify_campaign_is_live | POST /api/v1/tools/verify_campaign_is_live/execute | read-only | free |
| why_did_this_fail | POST /api/v1/tools/why_did_this_fail/execute | read-only | free |
Google Ads70
| Tool | Path | Risk | Cost |
|---|---|---|---|
| google_add_audience_signal | POST /api/v1/tools/google_add_audience_signal/execute | write | 1 task |
| google_add_call_asset | POST /api/v1/tools/google_add_call_asset/execute | write | 1 task |
| google_add_callouts | POST /api/v1/tools/google_add_callouts/execute | write | 1 task |
| google_add_image_assets | POST /api/v1/tools/google_add_image_assets/execute | write | 1 task |
| google_add_keywords | POST /api/v1/tools/google_add_keywords/execute | write | 1 task |
| google_add_negative_keywords | POST /api/v1/tools/google_add_negative_keywords/execute | write | 1 task |
| google_add_search_themes | POST /api/v1/tools/google_add_search_themes/execute | write | 1 task |
| google_add_sitelinks | POST /api/v1/tools/google_add_sitelinks/execute | write | 1 task |
| google_add_structured_snippets | POST /api/v1/tools/google_add_structured_snippets/execute | write | 1 task |
| google_analyze_search_terms | POST /api/v1/tools/google_analyze_search_terms/execute | read-only | 1 task |
| google_analyze_wasted_spend | POST /api/v1/tools/google_analyze_wasted_spend/execute | read-only | 1 task |
| google_apply_label | POST /api/v1/tools/google_apply_label/execute | write | 1 task |
| google_bulk_update_keyword_bids | POST /api/v1/tools/google_bulk_update_keyword_bids/execute | destructive write | 1 task |
| google_bulk_update_keyword_status | POST /api/v1/tools/google_bulk_update_keyword_status/execute | destructive write | 1 task |
| google_create_conversion_action | POST /api/v1/tools/google_create_conversion_action/execute | write | 1 task |
| google_create_label | POST /api/v1/tools/google_create_label/execute | write | 1 task |
| google_create_pmax_campaign | POST /api/v1/tools/google_create_pmax_campaign/execute | destructive write | 1 task |
| google_create_responsive_search_ad | POST /api/v1/tools/google_create_responsive_search_ad/execute | write | 1 task |
| google_create_search_campaign | POST /api/v1/tools/google_create_search_campaign/execute | write | 1 task |
| google_explain_performance_anomaly | POST /api/v1/tools/google_explain_performance_anomaly/execute | read-only | 1 task |
| google_get_ad_creative | POST /api/v1/tools/google_get_ad_creative/execute | read-only | 1 task |
| google_get_ad_group_performance | POST /api/v1/tools/google_get_ad_group_performance/execute | read-only | 1 task |
| google_get_ad_performance | POST /api/v1/tools/google_get_ad_performance/execute | read-only | 1 task |
| google_get_ad_schedule | POST /api/v1/tools/google_get_ad_schedule/execute | read-only | 1 task |
| google_get_asset_group_performance | POST /api/v1/tools/google_get_asset_group_performance/execute | read-only | 1 task |
| google_get_asset_performance | POST /api/v1/tools/google_get_asset_performance/execute | read-only | 1 task |
| google_get_benchmark_context | POST /api/v1/tools/google_get_benchmark_context/execute | read-only | free |
| google_get_campaign_performance | POST /api/v1/tools/google_get_campaign_performance/execute | read-only | 1 task |
| google_get_campaign_structure | POST /api/v1/tools/google_get_campaign_structure/execute | read-only | 1 task |
| google_get_campaign_targeting | POST /api/v1/tools/google_get_campaign_targeting/execute | read-only | 1 task |
| google_get_conversion_action_performance | POST /api/v1/tools/google_get_conversion_action_performance/execute | read-only | 1 task |
| google_get_device_performance | POST /api/v1/tools/google_get_device_performance/execute | read-only | 1 task |
| google_get_geo_performance | POST /api/v1/tools/google_get_geo_performance/execute | read-only | 1 task |
| google_get_hourly_performance | POST /api/v1/tools/google_get_hourly_performance/execute | read-only | 1 task |
| google_get_keyword_performance | POST /api/v1/tools/google_get_keyword_performance/execute | read-only | 1 task |
| google_get_search_themes | POST /api/v1/tools/google_get_search_themes/execute | read-only | 1 task |
| google_list_asset_groups | POST /api/v1/tools/google_list_asset_groups/execute | read-only | 1 task |
| google_list_assets | POST /api/v1/tools/google_list_assets/execute | read-only | 1 task |
| google_list_bidding_strategies | POST /api/v1/tools/google_list_bidding_strategies/execute | read-only | 1 task |
| google_list_campaigns | POST /api/v1/tools/google_list_campaigns/execute | read-only | 1 task |
| google_list_conversion_actions | POST /api/v1/tools/google_list_conversion_actions/execute | read-only | 1 task |
| google_list_labels | POST /api/v1/tools/google_list_labels/execute | read-only | 1 task |
| google_list_languages | POST /api/v1/tools/google_list_languages/execute | read-only | free |
| google_optimize_budget_allocation | POST /api/v1/tools/google_optimize_budget_allocation/execute | read-only | 1 task |
| google_pause_ad | POST /api/v1/tools/google_pause_ad/execute | destructive write | 1 task |
| google_pause_ad_group | POST /api/v1/tools/google_pause_ad_group/execute | destructive write | 1 task |
| google_pause_campaign | POST /api/v1/tools/google_pause_campaign/execute | destructive write | 1 task |
| google_remove_asset_links | POST /api/v1/tools/google_remove_asset_links/execute | destructive write | 1 task |
| google_remove_label | POST /api/v1/tools/google_remove_label/execute | destructive write | 1 task |
| google_remove_negative_keywords | POST /api/v1/tools/google_remove_negative_keywords/execute | destructive write | 1 task |
| google_remove_search_themes | POST /api/v1/tools/google_remove_search_themes/execute | destructive write | 1 task |
| google_research_keywords | POST /api/v1/tools/google_research_keywords/execute | read-only | 1 task |
| google_resolve_locations | POST /api/v1/tools/google_resolve_locations/execute | read-only | free |
| google_resume_ad | POST /api/v1/tools/google_resume_ad/execute | write | 1 task |
| google_resume_ad_group | POST /api/v1/tools/google_resume_ad_group/execute | write | 1 task |
| google_resume_campaign | POST /api/v1/tools/google_resume_campaign/execute | write | 1 task |
| google_search_audiences | POST /api/v1/tools/google_search_audiences/execute | read-only | 1 task |
| google_set_ad_schedule | POST /api/v1/tools/google_set_ad_schedule/execute | destructive write | 1 task |
| google_set_business_name | POST /api/v1/tools/google_set_business_name/execute | write | 1 task |
| google_set_device_bid_modifiers | POST /api/v1/tools/google_set_device_bid_modifiers/execute | destructive write | 1 task |
| google_update_bid_strategy | POST /api/v1/tools/google_update_bid_strategy/execute | destructive write | 1 task |
| google_update_campaign | POST /api/v1/tools/google_update_campaign/execute | destructive write | 1 task |
| google_update_campaign_budget | POST /api/v1/tools/google_update_campaign_budget/execute | destructive write | 1 task |
| google_update_campaign_languages | POST /api/v1/tools/google_update_campaign_languages/execute | destructive write | 1 task |
| google_update_campaign_locations | POST /api/v1/tools/google_update_campaign_locations/execute | destructive write | 1 task |
| google_update_campaign_networks | POST /api/v1/tools/google_update_campaign_networks/execute | destructive write | 1 task |
| google_update_conversion_action | POST /api/v1/tools/google_update_conversion_action/execute | destructive write | 1 task |
| google_update_keyword | POST /api/v1/tools/google_update_keyword/execute | destructive write | 1 task |
| google_validate_ad_copy | POST /api/v1/tools/google_validate_ad_copy/execute | read-only | free |
| google_validate_and_prepare_assets | POST /api/v1/tools/google_validate_and_prepare_assets/execute | read-only | free |
Meta Ads43
| Tool | Path | Risk | Cost |
|---|---|---|---|
| meta_add_ad | POST /api/v1/tools/meta_add_ad/execute | write | 2 tasks |
| meta_add_ad_set | POST /api/v1/tools/meta_add_ad_set/execute | write | 2 tasks |
| meta_analyze_audiences | POST /api/v1/tools/meta_analyze_audiences/execute | read-only | 2 tasks |
| meta_analyze_wasted_spend | POST /api/v1/tools/meta_analyze_wasted_spend/execute | read-only | 1 task |
| meta_browse_targeting | POST /api/v1/tools/meta_browse_targeting/execute | read-only | free |
| meta_create_app_install_campaign | POST /api/v1/tools/meta_create_app_install_campaign/execute | write | 3 tasks |
| meta_create_carousel_campaign | POST /api/v1/tools/meta_create_carousel_campaign/execute | write | 3 tasks |
| meta_create_flexible_ad | POST /api/v1/tools/meta_create_flexible_ad/execute | write | 2 tasks |
| meta_create_image_campaign | POST /api/v1/tools/meta_create_image_campaign/execute | write | 3 tasks |
| meta_create_video_campaign | POST /api/v1/tools/meta_create_video_campaign/execute | write | 3 tasks |
| meta_detect_creative_fatigue | POST /api/v1/tools/meta_detect_creative_fatigue/execute | read-only | 2 tasks |
| meta_duplicate_campaign | POST /api/v1/tools/meta_duplicate_campaign/execute | write | 3 tasks |
| meta_explain_anomaly | POST /api/v1/tools/meta_explain_anomaly/execute | read-only | 2 tasks |
| meta_get_ad_creatives | POST /api/v1/tools/meta_get_ad_creatives/execute | read-only | 1 task |
| meta_get_ad_performance | POST /api/v1/tools/meta_get_ad_performance/execute | read-only | 1 task |
| meta_get_ad_set_delivery_estimate | POST /api/v1/tools/meta_get_ad_set_delivery_estimate/execute | read-only | 1 task |
| meta_get_ad_set_targeting | POST /api/v1/tools/meta_get_ad_set_targeting/execute | read-only | free |
| meta_get_adset_performance | POST /api/v1/tools/meta_get_adset_performance/execute | read-only | 1 task |
| meta_get_audience_insights | POST /api/v1/tools/meta_get_audience_insights/execute | read-only | 2 tasks |
| meta_get_campaign_performance | POST /api/v1/tools/meta_get_campaign_performance/execute | read-only | 1 task |
| meta_get_lead_form_submissions | POST /api/v1/tools/meta_get_lead_form_submissions/execute | read-only | 2 tasks |
| meta_list_ad_sets | POST /api/v1/tools/meta_list_ad_sets/execute | read-only | 1 task |
| meta_list_ads | POST /api/v1/tools/meta_list_ads/execute | read-only | 1 task |
| meta_list_campaigns | POST /api/v1/tools/meta_list_campaigns/execute | read-only | 1 task |
| meta_list_custom_audiences | POST /api/v1/tools/meta_list_custom_audiences/execute | read-only | 1 task |
| meta_list_instagram_accounts | POST /api/v1/tools/meta_list_instagram_accounts/execute | read-only | free |
| meta_list_lead_forms | POST /api/v1/tools/meta_list_lead_forms/execute | read-only | 1 task |
| meta_list_pages | POST /api/v1/tools/meta_list_pages/execute | read-only | 1 task |
| meta_list_pixels | POST /api/v1/tools/meta_list_pixels/execute | read-only | 1 task |
| meta_list_promotable_apps | POST /api/v1/tools/meta_list_promotable_apps/execute | read-only | free |
| meta_list_saved_audiences | POST /api/v1/tools/meta_list_saved_audiences/execute | read-only | free |
| meta_optimize_budget | POST /api/v1/tools/meta_optimize_budget/execute | read-only | 2 tasks |
| meta_optimize_placements | POST /api/v1/tools/meta_optimize_placements/execute | read-only | 2 tasks |
| meta_pause_entity | POST /api/v1/tools/meta_pause_entity/execute | destructive write | 1 task |
| meta_resume_entity | POST /api/v1/tools/meta_resume_entity/execute | write | 1 task |
| meta_search_targeting | POST /api/v1/tools/meta_search_targeting/execute | read-only | free |
| meta_set_frequency_cap | POST /api/v1/tools/meta_set_frequency_cap/execute | write | 1 task |
| meta_update_ad | POST /api/v1/tools/meta_update_ad/execute | write | 1 task |
| meta_update_ad_set | POST /api/v1/tools/meta_update_ad_set/execute | destructive write | 1 task |
| meta_update_adset_budget | POST /api/v1/tools/meta_update_adset_budget/execute | destructive write | 1 task |
| meta_update_campaign | POST /api/v1/tools/meta_update_campaign/execute | write | 1 task |
| meta_update_campaign_budget | POST /api/v1/tools/meta_update_campaign_budget/execute | destructive write | 1 task |
| meta_validate_creative_url | POST /api/v1/tools/meta_validate_creative_url/execute | read-only | free |
ChatGPT Ads23
| Tool | Path | Risk | Cost |
|---|---|---|---|
| chatgpt_archive_campaign | POST /api/v1/tools/chatgpt_archive_campaign/execute | destructive write | 1 task |
| chatgpt_create_ad | POST /api/v1/tools/chatgpt_create_ad/execute | write | 3 tasks |
| chatgpt_create_ad_group | POST /api/v1/tools/chatgpt_create_ad_group/execute | write | 2 tasks |
| chatgpt_geo_lookup | POST /api/v1/tools/chatgpt_geo_lookup/execute | read-only | free |
| chatgpt_get_account | POST /api/v1/tools/chatgpt_get_account/execute | read-only | free |
| chatgpt_get_account_limits | POST /api/v1/tools/chatgpt_get_account_limits/execute | read-only | free |
| chatgpt_get_performance | POST /api/v1/tools/chatgpt_get_performance/execute | read-only | 1 task |
| chatgpt_get_pixel_settings | POST /api/v1/tools/chatgpt_get_pixel_settings/execute | read-only | 1 task |
| chatgpt_launch_ad | POST /api/v1/tools/chatgpt_launch_ad/execute | write | 8 tasks |
| chatgpt_list_ad_groups | POST /api/v1/tools/chatgpt_list_ad_groups/execute | read-only | 1 task |
| chatgpt_list_ads | POST /api/v1/tools/chatgpt_list_ads/execute | read-only | 1 task |
| chatgpt_list_campaigns | POST /api/v1/tools/chatgpt_list_campaigns/execute | read-only | 1 task |
| chatgpt_list_pixels | POST /api/v1/tools/chatgpt_list_pixels/execute | read-only | 1 task |
| chatgpt_pause_ad | POST /api/v1/tools/chatgpt_pause_ad/execute | destructive write | 1 task |
| chatgpt_pause_ad_group | POST /api/v1/tools/chatgpt_pause_ad_group/execute | destructive write | 1 task |
| chatgpt_pause_campaign | POST /api/v1/tools/chatgpt_pause_campaign/execute | destructive write | 1 task |
| chatgpt_resume_ad | POST /api/v1/tools/chatgpt_resume_ad/execute | write | 1 task |
| chatgpt_resume_ad_group | POST /api/v1/tools/chatgpt_resume_ad_group/execute | write | 1 task |
| chatgpt_resume_campaign | POST /api/v1/tools/chatgpt_resume_campaign/execute | write | 1 task |
| chatgpt_update_ad | POST /api/v1/tools/chatgpt_update_ad/execute | write | 1 task |
| chatgpt_update_ad_group | POST /api/v1/tools/chatgpt_update_ad_group/execute | write | 1 task |
| chatgpt_update_campaign | POST /api/v1/tools/chatgpt_update_campaign/execute | write | 1 task |
| chatgpt_validate_chat_card | POST /api/v1/tools/chatgpt_validate_chat_card/execute | read-only | free |
TikTok Ads30
| Tool | Path | Risk | Cost |
|---|---|---|---|
| tiktok_add_ad | POST /api/v1/tools/tiktok_add_ad/execute | write | 2 tasks |
| tiktok_add_ad_group | POST /api/v1/tools/tiktok_add_ad_group/execute | write | 2 tasks |
| tiktok_analyze_geo_performance | POST /api/v1/tools/tiktok_analyze_geo_performance/execute | read-only | 1 task |
| tiktok_analyze_wasted_spend | POST /api/v1/tools/tiktok_analyze_wasted_spend/execute | read-only | 1 task |
| tiktok_create_video_campaign | POST /api/v1/tools/tiktok_create_video_campaign/execute | write | 3 tasks |
| tiktok_detect_creative_fatigue | POST /api/v1/tools/tiktok_detect_creative_fatigue/execute | read-only | 1 task |
| tiktok_explain_objective | POST /api/v1/tools/tiktok_explain_objective/execute | read-only | free |
| tiktok_get_ad_group_performance | POST /api/v1/tools/tiktok_get_ad_group_performance/execute | read-only | 1 task |
| tiktok_get_ad_performance | POST /api/v1/tools/tiktok_get_ad_performance/execute | read-only | 1 task |
| tiktok_get_audience_insights | POST /api/v1/tools/tiktok_get_audience_insights/execute | read-only | 1 task |
| tiktok_get_campaign_details | POST /api/v1/tools/tiktok_get_campaign_details/execute | read-only | 1 task |
| tiktok_get_campaign_performance | POST /api/v1/tools/tiktok_get_campaign_performance/execute | read-only | 1 task |
| tiktok_list_ad_groups | POST /api/v1/tools/tiktok_list_ad_groups/execute | read-only | 1 task |
| tiktok_list_ad_videos | POST /api/v1/tools/tiktok_list_ad_videos/execute | read-only | free |
| tiktok_list_ads | POST /api/v1/tools/tiktok_list_ads/execute | read-only | 1 task |
| tiktok_list_campaigns | POST /api/v1/tools/tiktok_list_campaigns/execute | read-only | 1 task |
| tiktok_list_identities | POST /api/v1/tools/tiktok_list_identities/execute | read-only | free |
| tiktok_list_lead_forms | POST /api/v1/tools/tiktok_list_lead_forms/execute | read-only | free |
| tiktok_list_pixels | POST /api/v1/tools/tiktok_list_pixels/execute | read-only | free |
| tiktok_pause_ad | POST /api/v1/tools/tiktok_pause_ad/execute | destructive write | 1 task |
| tiktok_pause_ad_group | POST /api/v1/tools/tiktok_pause_ad_group/execute | destructive write | 1 task |
| tiktok_pause_campaign | POST /api/v1/tools/tiktok_pause_campaign/execute | destructive write | 1 task |
| tiktok_resume_ad | POST /api/v1/tools/tiktok_resume_ad/execute | write | 1 task |
| tiktok_resume_ad_group | POST /api/v1/tools/tiktok_resume_ad_group/execute | write | 1 task |
| tiktok_resume_campaign | POST /api/v1/tools/tiktok_resume_campaign/execute | write | 1 task |
| tiktok_search_targeting | POST /api/v1/tools/tiktok_search_targeting/execute | read-only | free |
| tiktok_update_ad_group | POST /api/v1/tools/tiktok_update_ad_group/execute | write | 1 task |
| tiktok_update_campaign | POST /api/v1/tools/tiktok_update_campaign/execute | write | 1 task |
| tiktok_upload_images | POST /api/v1/tools/tiktok_upload_images/execute | write | 1 task |
| tiktok_validate_assets | POST /api/v1/tools/tiktok_validate_assets/execute | read-only | free |
LinkedIn Ads34
| Tool | Path | Risk | Cost |
|---|---|---|---|
| linkedin_add_creative | POST /api/v1/tools/linkedin_add_creative/execute | write | 1 task |
| linkedin_analyze_creative_performance | POST /api/v1/tools/linkedin_analyze_creative_performance/execute | read-only | 1 task |
| linkedin_analyze_wasted_spend | POST /api/v1/tools/linkedin_analyze_wasted_spend/execute | read-only | 1 task |
| linkedin_associate_conversion | POST /api/v1/tools/linkedin_associate_conversion/execute | write | 1 task |
| linkedin_batch_update_campaigns | POST /api/v1/tools/linkedin_batch_update_campaigns/execute | write | 1 task |
| linkedin_clone_campaign | POST /api/v1/tools/linkedin_clone_campaign/execute | write | 1 task |
| linkedin_create_campaign_group | POST /api/v1/tools/linkedin_create_campaign_group/execute | write | 1 task |
| linkedin_create_carousel_campaign | POST /api/v1/tools/linkedin_create_carousel_campaign/execute | write | 1 task |
| linkedin_create_image_campaign | POST /api/v1/tools/linkedin_create_image_campaign/execute | write | 1 task |
| linkedin_create_text_campaign | POST /api/v1/tools/linkedin_create_text_campaign/execute | write | 1 task |
| linkedin_create_video_campaign | POST /api/v1/tools/linkedin_create_video_campaign/execute | write | 1 task |
| linkedin_delete_creative | POST /api/v1/tools/linkedin_delete_creative/execute | destructive write | 1 task |
| linkedin_estimate_audience_size | POST /api/v1/tools/linkedin_estimate_audience_size/execute | read-only | 1 task |
| linkedin_explain_objectives | POST /api/v1/tools/linkedin_explain_objectives/execute | read-only | free |
| linkedin_forecast_campaign_supply | POST /api/v1/tools/linkedin_forecast_campaign_supply/execute | read-only | 1 task |
| linkedin_get_audience_insights | POST /api/v1/tools/linkedin_get_audience_insights/execute | read-only | 1 task |
| linkedin_get_campaign_performance | POST /api/v1/tools/linkedin_get_campaign_performance/execute | read-only | 1 task |
| linkedin_get_campaign_structure | POST /api/v1/tools/linkedin_get_campaign_structure/execute | read-only | 1 task |
| linkedin_get_creative_performance | POST /api/v1/tools/linkedin_get_creative_performance/execute | read-only | 1 task |
| linkedin_get_engagement_metrics | POST /api/v1/tools/linkedin_get_engagement_metrics/execute | read-only | 1 task |
| linkedin_get_organizations | POST /api/v1/tools/linkedin_get_organizations/execute | read-only | free |
| linkedin_list_campaign_groups | POST /api/v1/tools/linkedin_list_campaign_groups/execute | read-only | 1 task |
| linkedin_list_campaigns | POST /api/v1/tools/linkedin_list_campaigns/execute | read-only | 1 task |
| linkedin_list_conversions | POST /api/v1/tools/linkedin_list_conversions/execute | read-only | 1 task |
| linkedin_list_creatives | POST /api/v1/tools/linkedin_list_creatives/execute | read-only | 1 task |
| linkedin_manage_conversions | POST /api/v1/tools/linkedin_manage_conversions/execute | write | 1 task |
| linkedin_pause_campaign | POST /api/v1/tools/linkedin_pause_campaign/execute | destructive write | 1 task |
| linkedin_pause_creative | POST /api/v1/tools/linkedin_pause_creative/execute | destructive write | 1 task |
| linkedin_resume_campaign | POST /api/v1/tools/linkedin_resume_campaign/execute | write | 1 task |
| linkedin_resume_creative | POST /api/v1/tools/linkedin_resume_creative/execute | write | 1 task |
| linkedin_search_targeting | POST /api/v1/tools/linkedin_search_targeting/execute | read-only | free |
| linkedin_update_campaign | POST /api/v1/tools/linkedin_update_campaign/execute | write | 1 task |
| linkedin_update_campaign_group | POST /api/v1/tools/linkedin_update_campaign_group/execute | write | 1 task |
| linkedin_validate_assets | POST /api/v1/tools/linkedin_validate_assets/execute | read-only | free |