unbounce

Unbounce API integration with managed OAuth. Build and manage landing pages, track leads, and analyze conversion data. Use this skill when users want to interact with Unbounce for landing page management and lead tracking. For other third party apps, use the api-gateway skill (https://clawhub.ai/byungkyu/api-gateway).

Safety Notice

This listing is from the official public ClawHub registry. Review SKILL.md and referenced scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "unbounce" with this command: npx skills add maton/unbounce

Unbounce

Access Unbounce landing pages and leads via managed OAuth.

Quick Start

python <<'EOF'
import urllib.request, os, json
req = urllib.request.Request('https://gateway.maton.ai/unbounce/accounts')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOF

Base URL

https://gateway.maton.ai/unbounce/{native-api-path}

The gateway proxies requests to api.unbounce.com and automatically injects your credentials.

Authentication

All requests require the Maton API key:

Authorization: Bearer $MATON_API_KEY

Environment Variable: Set your API key as MATON_API_KEY:

export MATON_API_KEY="YOUR_API_KEY"

Getting Your API Key

  1. Sign in or create an account at maton.ai
  2. Go to maton.ai/settings
  3. Copy your API key

Connection Management

Manage your Unbounce OAuth connections at https://ctrl.maton.ai.

List Connections

python <<'EOF'
import urllib.request, os, json
req = urllib.request.Request('https://ctrl.maton.ai/connections?app=unbounce&status=ACTIVE')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOF

Create Connection

python <<'EOF'
import urllib.request, os, json
data = json.dumps({'app': 'unbounce'}).encode()
req = urllib.request.Request('https://ctrl.maton.ai/connections', data=data, method='POST')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
req.add_header('Content-Type', 'application/json')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOF

Get Connection

python <<'EOF'
import urllib.request, os, json
req = urllib.request.Request('https://ctrl.maton.ai/connections/{connection_id}')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOF

Response:

{
  "connection": {
    "connection_id": "9c5cc43b-6f09-4789-ad4d-8162e39a24c1",
    "status": "PENDING",
    "creation_time": "2026-03-04T10:54:06.615371Z",
    "url": "https://connect.maton.ai/?session_token=...",
    "app": "unbounce",
    "method": "OAUTH2",
    "metadata": {}
  }
}

Open the returned url in a browser to complete OAuth authorization.

Delete Connection

python <<'EOF'
import urllib.request, os, json
req = urllib.request.Request('https://ctrl.maton.ai/connections/{connection_id}', method='DELETE')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOF

API Reference

Accounts

List Accounts

GET /unbounce/accounts

Query parameters:

  • sort_order - asc or desc (default: desc by creation date)

Response:

{
  "metadata": {
    "count": 1,
    "location": "https://api.unbounce.com/accounts"
  },
  "accounts": [
    {
      "id": 4967935,
      "name": "My Account",
      "createdAt": "2026-03-04T10:54:34Z",
      "state": "active",
      "options": {}
    }
  ]
}

Get Account

GET /unbounce/accounts/{account_id}

Response:

{
  "id": 4967935,
  "name": "My Account",
  "createdAt": "2026-03-04T10:54:34Z",
  "state": "active",
  "options": {}
}

List Account Pages

GET /unbounce/accounts/{account_id}/pages

List Account Sub-Accounts

GET /unbounce/accounts/{account_id}/sub_accounts

Sub-Accounts

Get Sub-Account

GET /unbounce/sub_accounts/{sub_account_id}

Response:

{
  "id": 5699747,
  "accountId": 4967935,
  "name": "ChrisKim",
  "createdAt": "2026-03-04T10:54:35Z",
  "website": null,
  "uuid": "cf72cbb6-17fd-44d1-bbe4-d25dcad6354a",
  "domainsCount": 0
}

List Sub-Account Pages

GET /unbounce/sub_accounts/{sub_account_id}/pages

List Sub-Account Domains

GET /unbounce/sub_accounts/{sub_account_id}/domains

List Sub-Account Page Groups

GET /unbounce/sub_accounts/{sub_account_id}/page_groups

Pages

List All Pages

GET /unbounce/pages

Query parameters:

  • role - Filter by user role: viewer or author
  • with_stats - Include A/B test statistics when true
  • limit - Results per page (default: 50, max: 1000)
  • offset - Skip first N results
  • sort_order - asc or desc
  • count - When true, only return count in metadata
  • from - Start date (RFC 5322 format)
  • to - End date (RFC 5322 format)

Response:

{
  "metadata": {
    "count": 1,
    "location": "https://api.unbounce.com/pages"
  },
  "pages": [
    {
      "id": "7cacd6d4-015a-4690-9537-68aac06bd98e",
      "subAccountId": 5699747,
      "name": "Training Template",
      "url": "http://unbouncepages.com/training-template/",
      "state": "unpublished",
      "domain": "unbouncepages.com",
      "createdAt": "2026-03-04T10:56:54Z",
      "lastPublishedAt": null,
      "variantsCount": 0,
      "integrationsCount": 0,
      "integrationsErrorsCount": 0
    }
  ]
}

Get Page

GET /unbounce/pages/{page_id}

Includes test statistics (A/B testing data):

Response:

{
  "id": "7cacd6d4-015a-4690-9537-68aac06bd98e",
  "name": "Training Template",
  "url": "http://unbouncepages.com/training-template/",
  "state": "unpublished",
  "tests": {
    "current": {
      "champion": "a",
      "hasResults": "false",
      "conversionRate": "0",
      "conversions": "0",
      "visitors": "0",
      "visits": "0"
    }
  }
}

List Page Form Fields

GET /unbounce/pages/{page_id}/form_fields

Query parameters:

  • include_sub_pages - Include sub-page form fields when true
  • sort_order - asc or desc
  • count - When true, only return count

Response:

{
  "metadata": {
    "count": 3
  },
  "formFields": [
    {
      "id": "name",
      "name": "Name",
      "type": "text",
      "validations": {
        "required": false
      }
    },
    {
      "id": "email",
      "name": "Email",
      "type": "text",
      "validations": {
        "required": false,
        "email": true
      }
    },
    {
      "id": "telephone",
      "name": "Telephone",
      "type": "text",
      "validations": {
        "required": false,
        "phone": true
      }
    }
  ]
}

Leads

List Page Leads

GET /unbounce/pages/{page_id}/leads

Query parameters:

  • limit - Results per page (default: 50, max: 1000)
  • offset - Skip first N results
  • sort_order - asc or desc
  • from - Start date (RFC 5322 format)
  • to - End date (RFC 5322 format)

Response:

{
  "metadata": {
    "count": 0,
    "delete": {
      "href": "https://api.unbounce.com/pages/{page_id}/lead_deletion_request",
      "method": "POST"
    }
  },
  "leads": []
}

Get Lead

GET /unbounce/pages/{page_id}/leads/{lead_id}

or directly:

GET /unbounce/leads/{lead_id}

Response:

{
  "id": "f79d7b6e-b3e8-484c-9584-d21c7afba238",
  "created_at": "2026-03-04T11:52:50.705Z",
  "page_id": "7cacd6d4-015a-4690-9537-68aac06bd98e",
  "variant_id": "a",
  "submitter_ip": "127.0.0.1",
  "form_data": {
    "name": "Test User",
    "email": "test@example.com",
    "telephone": "1234567890"
  },
  "extra_data": {
    "cookies": {}
  }
}

Create Lead

POST /unbounce/pages/{page_id}/leads
Content-Type: application/json

Request Body:

{
  "conversion": true,
  "visitor_id": "127.0.0.1234567890",
  "form_submission": {
    "variant_id": "a",
    "submitter_ip": "127.0.0.1",
    "form_data": {
      "name": "John Doe",
      "email": "john@example.com",
      "phone_number": "1234567890"
    }
  }
}

Response:

{
  "id": "f79d7b6e-b3e8-484c-9584-d21c7afba238",
  "created_at": "2026-03-04T11:52:50.705Z",
  "page_id": "7cacd6d4-015a-4690-9537-68aac06bd98e",
  "variant_id": "a",
  "submitter_ip": "127.0.0.1",
  "form_data": {
    "name": "John Doe",
    "email": "john@example.com",
    "phone_number": "1234567890"
  }
}

Leads created via the API have "created_by": "api" in their extra_data.


Domains

Get Domain

GET /unbounce/domains/{domain_id}

List Domain Pages

GET /unbounce/domains/{domain_id}/pages

Page Groups

List Page Group Pages

GET /unbounce/page_groups/{page_group_id}/pages

Query parameters:

  • limit - Results per page (default: 50, max: 1000)
  • offset - Skip first N results
  • sort_order - asc or desc
  • from / to - Date range filter

Users

Get Current User

GET /unbounce/users/self

Response:

{
  "id": 5031726,
  "email": "user@example.com",
  "firstName": "Chris",
  "lastName": "Kim",
  "metadata": {
    "related": {
      "subAccounts": ["https://api.unbounce.com/sub_accounts/5699747"],
      "accounts": ["https://api.unbounce.com/accounts/4967935"]
    }
  }
}

Get User by ID

GET /unbounce/users/{user_id}

Pagination

Unbounce uses offset-based pagination:

GET /unbounce/pages?limit=50&offset=0

Parameters:

  • limit - Number of results per page (default: 50, max: 1000)
  • offset - Number of results to skip
  • sort_order - Sort direction: asc or desc

Response metadata includes:

{
  "metadata": {
    "count": 100
  }
}

Code Examples

JavaScript

const response = await fetch('https://gateway.maton.ai/unbounce/pages', {
  headers: {
    'Authorization': `Bearer ${process.env.MATON_API_KEY}`
  }
});
const data = await response.json();
console.log(data);

Python

import os
import requests

response = requests.get(
    'https://gateway.maton.ai/unbounce/pages',
    headers={
        'Authorization': f'Bearer {os.environ["MATON_API_KEY"]}'
    }
)
print(response.json())

Notes

  • All responses include metadata with HATEOAS links for navigation
  • Date format: RFC 5322 (e.g., 2026-03-04T10:54:34Z)
  • Page IDs are UUIDs, account/sub-account IDs are integers
  • Page states: published or unpublished
  • Account states: active or suspended

Error Handling

StatusMeaning
200Success
401Invalid or missing authentication
404Resource not found
429Rate limited

Resources

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

Wangdongjie Cfo Skill

基于王东杰26年实战经验,提供A+H双市场IPO操盘、资本杠杆设计、业财融合和AI数字化风控咨询。

Registry SourceRecently Updated
General

Hk Stock Morning Report

Generate HK stock market morning report (股市晨報) for Chinese bank trading desk. Use when user asks "生成晨报", "股市晨报", "今日股市", "港股晨報", or any similar HK stock mark...

Registry SourceRecently Updated
General

Nansen Mpp Payment

Pay-per-call access to the Nansen API via MPP (Tempo). Use when a user wants anonymous Nansen access without an API key and without managing their own Base/S...

Registry SourceRecently Updated
General

Etsy Autolist

Auto-create and manage digital product listings on Etsy. Creates listings from existing digital product files (PDFs, templates, spreadsheets) using Etsy Open...

Registry SourceRecently Updated