← back to Ventura Claw
server/data/connector-acquisition.json
167 lines
{
"_note": "Per-connector API-key acquisition metadata. get_key_url deep-links to the exact provider portal page that mints the key.",
"connectors": {
"stripe": {
"name": "Stripe",
"auth": "api_key",
"oauth": true,
"get_key_url": "https://dashboard.stripe.com/apikeys",
"get_key_steps": "Developers → API keys → Reveal secret key. Use sk_live_… for prod or sk_test_… for testing.",
"fields": [{ "key": "STRIPE_SECRET_KEY", "label": "Secret key", "type": "password", "required": true }]
},
"cloudflare": {
"name": "Cloudflare",
"auth": "api_key",
"oauth": false,
"get_key_url": "https://dash.cloudflare.com/profile/api-tokens",
"get_key_steps": "My Profile → API Tokens → Create Token → 'Edit zone DNS' template (or custom: Zone:Read, DNS:Edit, Cache:Purge).",
"fields": [{ "key": "CF_API_TOKEN", "label": "API Token", "type": "password", "required": true }]
},
"slack": {
"name": "Slack",
"auth": "oauth2",
"oauth": true,
"get_key_url": "https://api.slack.com/apps",
"get_key_steps": "Create New App → From scratch → OAuth & Permissions → add Bot Token Scopes (chat:write, channels:read, channels:history) → Install → copy Bot User OAuth Token (xoxb-…).",
"fields": [{ "key": "SLACK_BOT_TOKEN", "label": "Bot OAuth Token", "type": "password", "required": true }]
},
"gmail": {
"name": "Gmail (via george)",
"auth": "basic",
"oauth": false,
"get_key_url": "http://127.0.0.1:9850",
"get_key_steps": "George is Steve's local Gmail proxy on tailnet. Default basic auth: admin:DWSecure2024!. Already running — paste the Basic-Auth string.",
"fields": [
{ "key": "GEORGE_URL", "label": "Endpoint", "type": "text", "default": "http://127.0.0.1:9850" },
{ "key": "GEORGE_BASIC_AUTH", "label": "Basic auth (user:pass)", "type": "password", "required": true }
]
},
"purelymail": {
"name": "Purelymail",
"auth": "api_key",
"oauth": false,
"get_key_url": "https://purelymail.com/manage/account/api-tokens",
"get_key_steps": "Account → API Tokens → Create. Used for domain/mailbox management.",
"fields": [{ "key": "PURELYMAIL_API_TOKEN", "label": "API Token", "type": "password", "required": true }]
},
"mailchimp": {
"name": "Mailchimp",
"auth": "api_key",
"oauth": true,
"get_key_url": "https://us1.admin.mailchimp.com/account/api/",
"get_key_steps": "Account → Extras → API keys → Create A Key. Token format ends in -us6 (data-center suffix matters).",
"fields": [{ "key": "MAILCHIMP_API_KEY", "label": "API Key (with -dc suffix)", "type": "password", "required": true }]
},
"hubspot": {
"name": "HubSpot",
"auth": "oauth2",
"oauth": true,
"get_key_url": "https://app.hubspot.com/private-apps",
"get_key_steps": "Settings → Integrations → Private Apps → Create. Scopes: crm.objects.contacts.read/write, deals.read/write. Token is pat-na1-….",
"fields": [{ "key": "HUBSPOT_TOKEN", "label": "Private App Token", "type": "password", "required": true }]
},
"notion": {
"name": "Notion",
"auth": "oauth2",
"oauth": true,
"get_key_url": "https://www.notion.so/my-integrations",
"get_key_steps": "New integration → Internal → copy the Secret (ntn_…). Then SHARE each page/database with the integration manually.",
"fields": [{ "key": "NOTION_TOKEN", "label": "Integration Secret", "type": "password", "required": true }]
},
"airtable": {
"name": "Airtable",
"auth": "api_key",
"oauth": true,
"get_key_url": "https://airtable.com/create/tokens",
"get_key_steps": "Create new token → scopes: data.records:read, data.records:write, schema.bases:read → grant access to specific bases. Token starts with pat….",
"fields": [
{ "key": "AIRTABLE_PAT", "label": "Personal Access Token", "type": "password", "required": true },
{ "key": "AIRTABLE_BASE_ID", "label": "Default Base ID (optional)", "type": "text" }
]
},
"twilio": {
"name": "Twilio",
"auth": "basic",
"oauth": false,
"get_key_url": "https://console.twilio.com/",
"get_key_steps": "Console main page → Account Info card → Account SID + Auth Token. From Number = your Twilio phone (Phone Numbers → Active).",
"fields": [
{ "key": "TWILIO_ACCOUNT_SID", "label": "Account SID", "type": "text", "required": true },
{ "key": "TWILIO_AUTH_TOKEN", "label": "Auth Token", "type": "password", "required": true },
{ "key": "TWILIO_FROM_NUMBER", "label": "From Number", "type": "text" }
]
},
"figma": {
"name": "Figma",
"auth": "api_key",
"oauth": false,
"get_key_url": "https://www.figma.com/settings",
"get_key_steps": "Settings → Personal access tokens → Generate. Read-file scope is sufficient.",
"fields": [{ "key": "FIGMA_TOKEN", "label": "Personal Access Token", "type": "password", "required": true }]
},
"canva": {
"name": "Canva",
"auth": "oauth2",
"oauth": true,
"get_key_url": "https://www.canva.com/developers/integrations",
"get_key_steps": "Connect API integration → Configure → OAuth scopes (asset:write, design:content:read) → Generate access token via OAuth flow.",
"fields": [{ "key": "CANVA_TOKEN", "label": "Access Token", "type": "password", "required": true }]
},
"etsy": {
"name": "Etsy",
"auth": "oauth2",
"oauth": false,
"get_key_url": "https://www.etsy.com/developers/your-apps",
"get_key_steps": "Your Apps → Create A New App → keystring (x-api-key). Then run OAuth PKCE flow to get user access token (format: <user_id>.<token>).",
"fields": [
{ "key": "ETSY_KEYSTRING", "label": "App Keystring", "type": "password", "required": true },
{ "key": "ETSY_ACCESS_TOKEN", "label": "OAuth Access Token", "type": "password", "required": true },
{ "key": "ETSY_SHOP_ID", "label": "Default Shop ID", "type": "text" }
]
},
"google": {
"name": "Google (Sheets / Drive / Gmail)",
"auth": "oauth2",
"oauth": true,
"get_key_url": "https://console.cloud.google.com/apis/credentials",
"get_key_steps": "Create OAuth Client ID → Web application → Authorized redirect URIs: paste from /admin/oauth/google. Then click 'Connect with Google' to grant scopes.",
"fields": []
},
"shopify": {
"name": "Shopify",
"auth": "api_key",
"oauth": true,
"get_key_url": "https://accounts.shopify.com/store-login",
"get_key_steps": "Store admin → Apps → Develop apps → Create → Configure Admin API scopes → Install → reveal access token (shpat_…).",
"fields": [
{ "key": "SHOPIFY_STORE", "label": "Store domain (e.g. mystore.myshopify.com)", "type": "text", "required": true },
{ "key": "SHOPIFY_ACCESS_TOKEN", "label": "Admin API Access Token", "type": "password", "required": true }
]
},
"discord": {
"name": "Discord",
"auth": "oauth2",
"oauth": true,
"get_key_url": "https://discord.com/developers/applications",
"get_key_steps": "New Application → Bot → Reset Token → copy. OAuth2 → URL Generator → bot scope → install to your server.",
"fields": [{ "key": "DISCORD_BOT_TOKEN", "label": "Bot Token", "type": "password", "required": true }]
},
"archive": {
"name": "Archive (Wayback)",
"auth": "none",
"oauth": false,
"get_key_url": "https://archive.org/help/wayback_api.php",
"get_key_steps": "No key required. Free public Internet Archive APIs. Results filtered to public-domain + CC0 + CC-BY + CC-BY-SA only (no NC/ND).",
"fields": []
},
"anthropic": {
"name": "Anthropic / Claude",
"auth": "api_key",
"oauth": false,
"get_key_url": "https://console.anthropic.com/settings/keys",
"get_key_steps": "Console → Settings → API Keys → Create Key. Once connected, VenturaClaw auto-discovers your existing MCPs.",
"fields": [{ "key": "ANTHROPIC_API_KEY", "label": "API Key", "type": "password", "required": true }]
}
}
}