Connect AI Agents

Let AI assistants create and manage your ads

Quick Start

1. Get your API key

Sign up and create an API key from your dashboard.

2. Configure your MCP client

Add Advuna to your Claude Desktop or MCP-compatible client:

{
  "mcpServers": {
    "advuna": {
      "url": "https://advuna.com/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_API_KEY"
      }
    }
  }
}

3. Start creating

Ask Claude to create ad creatives from any website URL!

Authentication

All API requests require a Bearer token in the Authorization header:

Authorization: Bearer adv_your_api_key_here

API keys start with adv_ and should be kept secret. Never commit them to version control.

Human Intervention Required

Some operations require a human to complete the action in a browser:

Action Tool Human Must Do
Upgrade to Pro advuna_get_checkout_url Complete payment in browser
Connect Reddit advuna_get_reddit_connect_url Authorize in Reddit website

Note: Lost API keys can be recovered via email using advuna_request_key_recovery + advuna_complete_key_recovery. If the AI agent has email access, this flow is fully automated.

Available Tools (30)

Account Tools

advuna_get_account

Get current user account information, subscription status, and usage limits

advuna_create_account

Create a new Advuna account. Returns an API key. No auth required.

email * string Email address
password * string Password (min 6 chars)
advuna_list_api_keys

List all API keys for your account (shows prefix only, not full key)

advuna_regenerate_api_key

Generate a new API key. Optionally revoke an existing key.

name * string Name for the new key
revoke_prefix string Revoke key with this prefix
advuna_request_key_recovery

Request a recovery code to generate a new API key. No auth required.

email * string Email address of the account
advuna_complete_key_recovery

Complete key recovery with email code. Returns new API key. No auth required.

email * string Email address of the account
code * string 6-digit recovery code from email
advuna_get_reddit_status

Check if a Reddit account is connected

advuna_get_reddit_connect_url

Get the OAuth URL to connect a Reddit Ads account

advuna_get_checkout_url

Get the Paddle checkout URL to upgrade subscription

plan string 'monthly' or 'yearly' (default: monthly)

Project Tools

advuna_create_project

Create a new project from a URL. Scrapes website, extracts brand, generates copy.

url * string Website URL to scrape
name string Optional project name
advuna_list_projects

List all projects

page integer Page number (default: 1)
per_page integer Results per page (default: 20)
status string Filter by status
advuna_get_project

Get full project details including brand, copy, and creative counts

project_id * integer Project ID
advuna_update_brand

Update brand settings (name, slogan, colors) and confirm brand

project_id * integer Project ID
brand_name string Brand name
slogan string Slogan/tagline
brand_colors array Hex color codes
confirm boolean Confirm brand (default: true)
advuna_delete_project

Delete a project and all associated data

project_id * integer Project ID

Creative Tools

advuna_generate_creatives

Trigger creative generation for a project

project_id * integer Project ID
templates array Specific templates to generate
sizes array Specific sizes to generate
advuna_list_creatives

List all creatives for a project

project_id * integer Project ID
template string Filter by template
status string Filter by status
advuna_get_creative

Get details of a specific creative

project_id * integer Project ID
creative_id * integer Creative ID
advuna_regenerate_creative

Re-render a specific creative

project_id * integer Project ID
creative_id * integer Creative ID
advuna_update_creative

Update creative copy selection

project_id * integer Project ID
creative_id * integer Creative ID
headline_id integer Headline copy ID
description_id integer Description copy ID
cta_id integer CTA copy ID
advuna_delete_creative

Delete a specific creative

project_id * integer Project ID
creative_id * integer Creative ID

Campaign Tools

advuna_get_suggested_subreddits

Get AI-powered subreddit suggestions for targeting

project_id * integer Project ID
limit integer Number of suggestions (default: 10)
advuna_validate_subreddits

Validate subreddits exist and allow advertising

subreddits * array Array of subreddit names
advuna_create_campaign

Create a new Reddit advertising campaign

project_id * integer Project ID
creative_id * integer Creative ID to use
headline * string Campaign headline (max 100 chars)
destination_url * string Click-through URL
daily_budget * float Daily budget in USD (min $5)
subreddits * array Target subreddits
advuna_list_campaigns

List all campaigns

project_id integer Filter by project
status string Filter by status
advuna_get_campaign

Get campaign details with metrics

campaign_id * integer Campaign ID
advuna_pause_campaign

Pause an active campaign

campaign_id * integer Campaign ID
advuna_resume_campaign

Resume a paused campaign

campaign_id * integer Campaign ID
advuna_update_campaign

Update campaign budget and targeting

campaign_id * integer Campaign ID
daily_budget float New daily budget
subreddits array New target subreddits
advuna_get_campaign_stats

Get detailed campaign metrics

campaign_id * integer Campaign ID
start_date string Start date (YYYY-MM-DD)
end_date string End date (YYYY-MM-DD)

Job Tools

advuna_get_job_status

Check the status of an async job (project, creatives, campaign)

job_id * string Job ID (e.g., 'project_123')

Response Format

Success Response

{
  "success": true,
  "data": {
    "project_id": 123,
    "status": "scraping"
  },
  "message": "Project created successfully"
}

Async Operation

{
  "success": true,
  "data": {
    "job_id": "project_123",
    "status": "processing"
  },
  "message": "Poll advuna_get_job_status to check progress."
}

Error Response

{
  "success": false,
  "error": {
    "code": "limit_exceeded",
    "message": "Free plan limited to 1 project.",
    "action": "Upgrade to Pro for unlimited."
  }
}

Error Codes

Code Description
unauthorizedInvalid or missing API key
forbiddenAction not allowed for this user
not_foundResource does not exist
validation_errorInvalid parameters
limit_exceededUsage limit reached
reddit_not_connectedReddit account not linked
subscription_requiredFeature requires paid plan
rate_limitedToo many requests

Rate Limits

  • 100 requests/minute - General operations
  • 10 requests/minute - Expensive operations (create_project, generate_creatives, create_campaign)
  • 3 requests/hour - Key recovery operations (request_key_recovery, complete_key_recovery)

Rate limits are per API key (or IP for unauthenticated endpoints). Exceeding limits returns a 429 status with a Retry-After header.

Example Workflow

  1. 1

    Create a project

    advuna_create_project(url: "https://example.com")
  2. 2

    Poll for completion

    advuna_get_job_status(job_id: "project_123")
  3. 3

    Confirm brand settings

    advuna_update_brand(project_id: 123, confirm: true)
  4. 4

    Generate creatives

    advuna_generate_creatives(project_id: 123)
  5. 5

    Launch Reddit campaign

    advuna_create_campaign(project_id: 123, creative_id: 456, ...)