ZuckerBot

ZuckerBot · Acciones GPT

ZuckerBot API

AI-powered Meta advertising platform. Create, manage, and optimize Facebook and Instagram ad campaigns.

  • GET /meta/statusCheck Meta connection status

    Returns the current Meta platform connection status including token validity and selected ad account.

  • GET /meta/ad-accountsList Meta ad accounts

    Returns all Meta ad accounts accessible by the authenticated user.

  • POST /meta/select-ad-accountSelect an ad account

    Sets the active Meta ad account for subsequent API calls.

  • GET /meta/pagesList Facebook pages

    Returns all Facebook pages the authenticated user can manage.

  • POST /meta/select-pageSelect a Facebook page

    Sets the active Facebook page for ad campaigns and publishing.

  • POST /campaigns/previewPreview campaign from URL

    Analyzes a business URL and generates a campaign preview with suggested ads, targeting, and budget.

  • POST /campaigns/createCreate a new campaign

    Creates a full Meta ad campaign from a business URL with AI-generated creatives and targeting.

  • GET /campaigns/{id}Get campaign details

    Returns full details of a specific campaign including ads, targeting, and current status.

  • POST /campaigns/{id}/activateActivate a campaign

    Activates a paused or draft campaign, pushing it live on Meta.

  • POST /campaigns/{id}/pausePause or resume a campaign

    Pauses an active campaign or resumes a paused one.

  • GET /campaigns/{id}/performanceGet campaign performance metrics

    Returns performance metrics for a campaign including spend, impressions, clicks, and conversions.

  • GET /ad-account/insightsGet ad account insights

    Returns aggregated ad account performance metrics for a date range.

  • GET /creative/analysisAnalyze ad creative performance

    Returns creative performance analysis grouped by specified dimension with optional filters.

  • POST /research/reviewsGet business review intelligence

    Analyzes online reviews for a business to extract sentiment, themes, and actionable insights.

  • POST /research/competitorsAnalyze competitors

    Identifies and analyzes competitors in a given industry and location.

  • POST /research/marketGet market intelligence

    Generates market research insights for a given industry and location.

  • POST /audiences/create-seedCreate a seed audience

    Creates a custom audience from existing customer data based on funnel stage.

  • POST /audiences/create-lalCreate a lookalike audience

    Creates a Meta lookalike audience from an existing seed audience.

  • GET /audiences/listList all audiences

    Returns all custom and lookalike audiences for the selected ad account.

  • GET /capi/statusGet CAPI status

    Returns Conversions API (CAPI) integration status and event tracking health.

Esquema original API
{
  "openapi": "3.1.0",
  "info": {
    "title": "ZuckerBot API",
    "description": "AI-powered Meta advertising platform. Create, manage, and optimize Facebook and Instagram ad campaigns.",
    "version": "1.0.0"
  },
  "servers": [
    {
      "url": "https://zuckerbot.ai/api/v1",
      "description": "Production server"
    }
  ],
  "security": [
    {
      "apiKey": []
    }
  ],
  "components": {
    "securitySchemes": {
      "apiKey": {
        "type": "apiKey",
        "in": "header",
        "name": "x-api-key"
      }
    },
    "schemas": {
      "SuccessResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "data": {
            "type": "object",
            "description": "Response payload details",
            "properties": {
              "message": {
                "type": "string"
              }
            }
          }
        }
      },
      "ErrorResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "error": {
            "type": "string",
            "description": "Error message"
          }
        }
      }
    }
  },
  "paths": {
    "/meta/status": {
      "get": {
        "operationId": "getMetaStatus",
        "summary": "Check Meta connection status",
        "description": "Returns the current Meta platform connection status including token validity and selected ad account.",
        "responses": {
          "200": {
            "description": "Meta connection status",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object",
                      "description": "Connection status details",
                      "properties": {
                        "connected": {
                          "type": "boolean"
                        },
                        "ad_account_id": {
                          "type": "string"
                        },
                        "page_id": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/meta/ad-accounts": {
      "get": {
        "operationId": "listAdAccounts",
        "summary": "List Meta ad accounts",
        "description": "Returns all Meta ad accounts accessible by the authenticated user.",
        "responses": {
          "200": {
            "description": "List of ad accounts",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "array",
                      "description": "Array of ad accounts",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "name": {
                            "type": "string"
                          },
                          "currency": {
                            "type": "string"
                          },
                          "status": {
                            "type": "string"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/meta/select-ad-account": {
      "post": {
        "operationId": "selectAdAccount",
        "summary": "Select an ad account",
        "description": "Sets the active Meta ad account for subsequent API calls.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "ad_account_id"
                ],
                "properties": {
                  "ad_account_id": {
                    "type": "string",
                    "description": "The Meta ad account ID to select"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Ad account selected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object",
                      "description": "Selected account confirmation",
                      "properties": {
                        "ad_account_id": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/meta/pages": {
      "get": {
        "operationId": "listPages",
        "summary": "List Facebook pages",
        "description": "Returns all Facebook pages the authenticated user can manage.",
        "responses": {
          "200": {
            "description": "List of Facebook pages",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "array",
                      "description": "Array of Facebook pages",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "name": {
                            "type": "string"
                          },
                          "category": {
                            "type": "string"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/meta/select-page": {
      "post": {
        "operationId": "selectPage",
        "summary": "Select a Facebook page",
        "description": "Sets the active Facebook page for ad campaigns and publishing.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "page_id"
                ],
                "properties": {
                  "page_id": {
                    "type": "string",
                    "description": "The Facebook page ID to select"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Page selected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object",
                      "description": "Selected page confirmation",
                      "properties": {
                        "page_id": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/campaigns/preview": {
      "post": {
        "operationId": "previewCampaign",
        "summary": "Preview campaign from URL",
        "description": "Analyzes a business URL and generates a campaign preview with suggested ads, targeting, and budget.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "url"
                ],
                "properties": {
                  "url": {
                    "type": "string",
                    "description": "Business website URL to analyze"
                  },
                  "ad_count": {
                    "type": "integer",
                    "description": "Number of ad variations to generate"
                  },
                  "review_data": {
                    "type": "boolean",
                    "description": "Include review analysis in preview"
                  },
                  "competitor_data": {
                    "type": "boolean",
                    "description": "Include competitor analysis in preview"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Campaign preview generated",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object",
                      "description": "Campaign preview with ads and targeting",
                      "properties": {
                        "business_name": {
                          "type": "string"
                        },
                        "ads": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "headline": {
                                "type": "string"
                              },
                              "body": {
                                "type": "string"
                              }
                            }
                          }
                        },
                        "targeting": {
                          "type": "object",
                          "description": "Suggested targeting options",
                          "properties": {
                            "location": {
                              "type": "string"
                            },
                            "interests": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/campaigns/create": {
      "post": {
        "operationId": "createCampaign",
        "summary": "Create a new campaign",
        "description": "Creates a full Meta ad campaign from a business URL with AI-generated creatives and targeting.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "url"
                ],
                "properties": {
                  "url": {
                    "type": "string",
                    "description": "Business website URL"
                  },
                  "business_id": {
                    "type": "string",
                    "description": "Optional business ID if already registered"
                  },
                  "location": {
                    "type": "string",
                    "description": "Target location for the campaign"
                  },
                  "budget_daily_cents": {
                    "type": "integer",
                    "description": "Daily budget in cents"
                  },
                  "objective": {
                    "type": "string",
                    "enum": [
                      "AWARENESS",
                      "TRAFFIC",
                      "ENGAGEMENT",
                      "LEADS",
                      "SALES"
                    ],
                    "description": "Campaign objective"
                  },
                  "mode": {
                    "type": "string",
                    "enum": [
                      "auto",
                      "manual"
                    ],
                    "description": "Campaign creation mode"
                  },
                  "goals": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "description": "Business goals for the campaign"
                  },
                  "radius_km": {
                    "type": "number",
                    "description": "Targeting radius in kilometers"
                  },
                  "auto_launch": {
                    "type": "boolean",
                    "description": "Automatically activate after creation"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Campaign created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object",
                      "description": "Created campaign details",
                      "properties": {
                        "campaign_id": {
                          "type": "string"
                        },
                        "status": {
                          "type": "string"
                        },
                        "name": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/campaigns/{id}": {
      "get": {
        "operationId": "getCampaign",
        "summary": "Get campaign details",
        "description": "Returns full details of a specific campaign including ads, targeting, and current status.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Campaign ID"
          }
        ],
        "responses": {
          "200": {
            "description": "Campaign details",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object",
                      "description": "Full campaign details",
                      "properties": {
                        "campaign_id": {
                          "type": "string"
                        },
                        "name": {
                          "type": "string"
                        },
                        "status": {
                          "type": "string"
                        },
                        "objective": {
                          "type": "string"
                        },
                        "budget_daily_cents": {
                          "type": "integer"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/campaigns/{id}/activate": {
      "post": {
        "operationId": "activateCampaign",
        "summary": "Activate a campaign",
        "description": "Activates a paused or draft campaign, pushing it live on Meta.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Campaign ID"
          }
        ],
        "responses": {
          "200": {
            "description": "Campaign activated",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object",
                      "description": "Activation confirmation",
                      "properties": {
                        "campaign_id": {
                          "type": "string"
                        },
                        "status": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/campaigns/{id}/pause": {
      "post": {
        "operationId": "pauseCampaign",
        "summary": "Pause or resume a campaign",
        "description": "Pauses an active campaign or resumes a paused one.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Campaign ID"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "action": {
                    "type": "string",
                    "enum": [
                      "pause",
                      "resume"
                    ],
                    "description": "Action to perform (defaults to pause)"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Campaign pause/resume result",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object",
                      "description": "Updated campaign status",
                      "properties": {
                        "campaign_id": {
                          "type": "string"
                        },
                        "status": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/campaigns/{id}/performance": {
      "get": {
        "operationId": "getCampaignPerformance",
        "summary": "Get campaign performance metrics",
        "description": "Returns performance metrics for a campaign including spend, impressions, clicks, and conversions.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Campaign ID"
          },
          {
            "name": "refresh",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            },
            "description": "Force refresh from Meta API"
          }
        ],
        "responses": {
          "200": {
            "description": "Campaign performance metrics",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object",
                      "description": "Performance metrics",
                      "properties": {
                        "spend": {
                          "type": "number"
                        },
                        "impressions": {
                          "type": "integer"
                        },
                        "clicks": {
                          "type": "integer"
                        },
                        "ctr": {
                          "type": "number"
                        },
                        "conversions": {
                          "type": "integer"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/ad-account/insights": {
      "get": {
        "operationId": "getAdAccountInsights",
        "summary": "Get ad account insights",
        "description": "Returns aggregated ad account performance metrics for a date range.",
        "parameters": [
          {
            "name": "date_from",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Start date (YYYY-MM-DD)"
          },
          {
            "name": "date_to",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "End date (YYYY-MM-DD)"
          },
          {
            "name": "time_increment",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Time granularity (e.g. 1 for daily)"
          }
        ],
        "responses": {
          "200": {
            "description": "Account insights data",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object",
                      "description": "Account-level metrics",
                      "properties": {
                        "spend": {
                          "type": "number"
                        },
                        "impressions": {
                          "type": "integer"
                        },
                        "clicks": {
                          "type": "integer"
                        },
                        "results": {
                          "type": "integer"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/creative/analysis": {
      "get": {
        "operationId": "getCreativeAnalysis",
        "summary": "Analyze ad creative performance",
        "description": "Returns creative performance analysis grouped by specified dimension with optional filters.",
        "parameters": [
          {
            "name": "group_by",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "enum": [
                "ad",
                "adset",
                "campaign",
                "image",
                "headline",
                "body"
              ]
            },
            "description": "Dimension to group results by"
          },
          {
            "name": "metric",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Primary metric to sort by"
          },
          {
            "name": "date_from",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Start date (YYYY-MM-DD)"
          },
          {
            "name": "date_to",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "End date (YYYY-MM-DD)"
          },
          {
            "name": "min_spend",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            },
            "description": "Minimum spend filter"
          },
          {
            "name": "min_impressions",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer"
            },
            "description": "Minimum impressions filter"
          },
          {
            "name": "business_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Filter by business ID"
          }
        ],
        "responses": {
          "200": {
            "description": "Creative analysis results",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "array",
                      "description": "Array of creative performance entries",
                      "items": {
                        "type": "object",
                        "properties": {
                          "group_value": {
                            "type": "string"
                          },
                          "spend": {
                            "type": "number"
                          },
                          "impressions": {
                            "type": "integer"
                          },
                          "clicks": {
                            "type": "integer"
                          },
                          "ctr": {
                            "type": "number"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/research/reviews": {
      "post": {
        "operationId": "getReviewIntel",
        "summary": "Get business review intelligence",
        "description": "Analyzes online reviews for a business to extract sentiment, themes, and actionable insights.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "business_name"
                ],
                "properties": {
                  "business_name": {
                    "type": "string",
                    "description": "Name of the business to research"
                  },
                  "location": {
                    "type": "string",
                    "description": "Business location for more accurate results"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Review intelligence report",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object",
                      "description": "Review analysis and insights",
                      "properties": {
                        "business_name": {
                          "type": "string"
                        },
                        "avg_rating": {
                          "type": "number"
                        },
                        "review_count": {
                          "type": "integer"
                        },
                        "summary": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/research/competitors": {
      "post": {
        "operationId": "getCompetitorAnalysis",
        "summary": "Analyze competitors",
        "description": "Identifies and analyzes competitors in a given industry and location.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "industry",
                  "location"
                ],
                "properties": {
                  "industry": {
                    "type": "string",
                    "description": "Business industry or category"
                  },
                  "location": {
                    "type": "string",
                    "description": "Geographic location to search"
                  },
                  "country": {
                    "type": "string",
                    "description": "Country code (e.g. US, GB)"
                  },
                  "limit": {
                    "type": "integer",
                    "description": "Max number of competitors to return"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Competitor analysis report",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object",
                      "description": "Competitor analysis results",
                      "properties": {
                        "industry": {
                          "type": "string"
                        },
                        "location": {
                          "type": "string"
                        },
                        "competitors": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "url": {
                                "type": "string"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/research/market": {
      "post": {
        "operationId": "getMarketIntel",
        "summary": "Get market intelligence",
        "description": "Generates market research insights for a given industry and location.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "industry",
                  "location"
                ],
                "properties": {
                  "industry": {
                    "type": "string",
                    "description": "Industry or business category"
                  },
                  "location": {
                    "type": "string",
                    "description": "Target market location"
                  },
                  "country": {
                    "type": "string",
                    "description": "Country code (e.g. US, GB)"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Market intelligence report",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object",
                      "description": "Market research insights",
                      "properties": {
                        "industry": {
                          "type": "string"
                        },
                        "location": {
                          "type": "string"
                        },
                        "market_size": {
                          "type": "string"
                        },
                        "trends": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/audiences/create-seed": {
      "post": {
        "operationId": "createSeedAudience",
        "summary": "Create a seed audience",
        "description": "Creates a custom audience from existing customer data based on funnel stage.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "source_stage"
                ],
                "properties": {
                  "source_stage": {
                    "type": "string",
                    "description": "Funnel stage to source contacts from"
                  },
                  "business_id": {
                    "type": "string",
                    "description": "Business ID for audience creation"
                  },
                  "name": {
                    "type": "string",
                    "description": "Custom name for the audience"
                  },
                  "lookback_days": {
                    "type": "integer",
                    "description": "Number of days to look back for contacts"
                  },
                  "min_contacts": {
                    "type": "integer",
                    "description": "Minimum contacts required to create audience"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Seed audience created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object",
                      "description": "Created seed audience details",
                      "properties": {
                        "audience_id": {
                          "type": "string"
                        },
                        "name": {
                          "type": "string"
                        },
                        "size": {
                          "type": "integer"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/audiences/create-lal": {
      "post": {
        "operationId": "createLookalikeAudience",
        "summary": "Create a lookalike audience",
        "description": "Creates a Meta lookalike audience from an existing seed audience.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "seed_audience_id"
                ],
                "properties": {
                  "seed_audience_id": {
                    "type": "string",
                    "description": "ID of the seed audience to base lookalike on"
                  },
                  "name": {
                    "type": "string",
                    "description": "Custom name for the lookalike audience"
                  },
                  "percentage": {
                    "type": "number",
                    "description": "Lookalike percentage (1-10)"
                  },
                  "country": {
                    "type": "string",
                    "description": "Target country code (e.g. US)"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Lookalike audience created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object",
                      "description": "Created lookalike audience details",
                      "properties": {
                        "audience_id": {
                          "type": "string"
                        },
                        "name": {
                          "type": "string"
                        },
                        "percentage": {
                          "type": "number"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/audiences/list": {
      "get": {
        "operationId": "listAudiences",
        "summary": "List all audiences",
        "description": "Returns all custom and lookalike audiences for the selected ad account.",
        "responses": {
          "200": {
            "description": "List of audiences",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "array",
                      "description": "Array of audience objects",
                      "items": {
                        "type": "object",
                        "properties": {
                          "audience_id": {
                            "type": "string"
                          },
                          "name": {
                            "type": "string"
                          },
                          "type": {
                            "type": "string"
                          },
                          "size": {
                            "type": "integer"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/capi/status": {
      "get": {
        "operationId": "getCapiStatus",
        "summary": "Get CAPI status",
        "description": "Returns Conversions API (CAPI) integration status and event tracking health.",
        "parameters": [
          {
            "name": "business_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Filter by business ID"
          }
        ],
        "responses": {
          "200": {
            "description": "CAPI integration status",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object",
                      "description": "CAPI status and event details",
                      "properties": {
                        "connected": {
                          "type": "boolean"
                        },
                        "pixel_id": {
                          "type": "string"
                        },
                        "last_event_at": {
                          "type": "string"
                        },
                        "events_24h": {
                          "type": "integer"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}