Payment successful! Your credits have been added to your account.
Credits Remaining
--
Credits Used
--
Active Sequences
--
API Keys
Recent Activity

Loading usage data...

Payment successful! Your credits have been added.
500
credits
$15
$0.030 / credit
2,000
credits
$49
$0.025 / credit
20,000
credits
$299
$0.015 / credit
100,000
credits
$999
$0.010 / credit

Copy Agent Prompt

One-click copy of a comprehensive prompt with your API key, all methods, credit costs, and connection instructions. Paste it into Claude, Cursor, Copilot, or any AI coding agent.

Installation
npm npm install geodedo
pip pip install geodedo
Code Examples
import GeoDedo from 'geodedo';

const client = new GeoDedo({
  apiKey: 'your-api-key',
});

// Register a user
const { user } = await client.users.register({
  externalUserId: 'user-123',
  aboutMe: 'SaaS founder selling dev tools',
  icp: 'CTOs at Series A startups',
  cta: 'Book a demo at calendly.com/me',
});

// Connect Gmail (returns URL for OAuth popup)
const { connectUrl } = await client.channels.connectGmail({
  userId: 'user-123',
});

// Search for contacts
const { contacts } = await client.contacts.search({
  userId: 'user-123',
  query: 'CTO series A fintech',
  limit: 10,
});

// Generate personalized email drafts
const { drafts } = await client.drafts.generate({
  userId: 'user-123',
  contacts: contacts,
  channel: 'gmail',
  context: 'Introduce our dev tool platform',
});

// Send approved drafts
await client.drafts.send({
  userId: 'user-123',
  draftIds: drafts.map(d => d.id),
});
from geodedo import GeoDedo

client = GeoDedo(api_key="your-api-key")

# Register a user
user = client.users.register(
    external_user_id="user-123",
    about_me="SaaS founder selling dev tools",
    icp="CTOs at Series A startups",
    cta="Book a demo at calendly.com/me",
)

# Connect Gmail
result = client.channels.connect_gmail(user_id="user-123")
print("Open this URL:", result["connect_url"])

# Search for contacts
contacts = client.contacts.search(
    user_id="user-123",
    query="CTO series A fintech",
    limit=10,
)

# Generate drafts and send
drafts = client.drafts.generate(
    user_id="user-123",
    contacts=contacts,
    channel="gmail",
    context="Introduce our dev tool platform",
)

client.drafts.send(
    user_id="user-123",
    draft_ids=[d["id"] for d in drafts],
)
# Set your API key
API_KEY="your-api-key"
BASE="https://white-label-rose.vercel.app/api/v1"

# Register a user
curl -X POST "$BASE/users/register" \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"externalUserId":"user-123","aboutMe":"SaaS founder"}'

# Search contacts (10 credits)
curl -X POST "$BASE/contacts/search" \
  -H "Authorization: Bearer $API_KEY" \
  -H "X-User-Id: user-123" \
  -H "Content-Type: application/json" \
  -d '{"query":"CTO series A fintech","limit":10}'

# Send an email (2 credits)
curl -X POST "$BASE/messages/email" \
  -H "Authorization: Bearer $API_KEY" \
  -H "X-User-Id: user-123" \
  -H "Content-Type: application/json" \
  -d '{"to":"jane@example.com","subject":"Quick intro","body":"Hi Jane..."}'

# Check credit balance
curl "$BASE/billing/balance" \
  -H "Authorization: Bearer $API_KEY"
Authentication

All API requests require a Bearer token. Use your API key for SDK endpoints and the portal JWT for account management.

Authorization: Bearer YOUR_API_KEY

For user-scoped operations, also include the X-User-Id header with the external user ID.

Base URL: https://white-label-rose.vercel.app/api/v1

Rate Limits: 100 requests per minute per API key. Burst of 20 requests per second.

Endpoints & Credit Costs
Method Endpoint Description Credits
Users
POST /users/register Create or update a user profile Free
GET /users/me Get current user info Free
PUT /users/me Update user profile (aboutMe, icp, cta) Free
Contacts
POST /contacts/search AI-powered contact search 10
POST /contacts/enrich Enrich contact data with emails, LinkedIn, etc. 25
POST /contacts/import-csv Import contacts from CSV data 1
GET /contacts List contacts with pagination 1
GET /contacts/csv-lists List imported CSV lists 1
Channels
GET /channels/status Get connection status of all channels Free
POST /channels/gmail/connect Get Gmail OAuth connect URL Free
POST /channels/linkedin/connect Connect LinkedIn with credentials Free
POST /channels/linkedin/checkpoint Solve LinkedIn 2FA checkpoint Free
POST /channels/instagram/connect Connect Instagram with credentials Free
POST /channels/instagram/checkpoint Solve Instagram 2FA checkpoint Free
POST /channels/agentmail/create Create an AgentMail inbox Free
POST /channels/sms/verify Start SMS phone number verification Free
POST /channels/sms/confirm Confirm SMS verification code Free
DEL /channels/:channel/disconnect Disconnect a channel Free
Messages
POST /messages/email Send email via Gmail or AgentMail 2
POST /messages/linkedin Send LinkedIn message or connection request 10
POST /messages/instagram Send Instagram DM 10
POST /messages/sms Send SMS message 5
GET /messages/inbox/:channel Read inbox for a channel 2
Drafts
POST /drafts/generate AI-generate personalized message drafts 20
GET /drafts List drafts (filter by status, batch) 1
PUT /drafts/:id Edit a draft 1
POST /drafts/approve Approve drafts for sending 1
POST /drafts/send Send approved drafts 2
Sequences
POST /sequences Create a multi-step outreach sequence 5
GET /sequences List all sequences 1
GET /sequences/:id Get sequence details 1
PUT /sequences/:id/pause Pause a running sequence 1
PUT /sequences/:id/resume Resume a paused sequence 1
PUT /sequences/:id/stop Stop a sequence permanently 1
GET /sequences/:id/status Get sequence execution status 1
AI Chat
POST /chat Chat with AI assistant (outreach strategy) 5
GET /chat/conversations List chat conversations 1
GET /chat/conversations/:id Get messages in a conversation 1
DEL /chat/conversations/:id Delete a conversation Free
Documents
POST /documents Upload a document (for AI context) 1
GET /documents List uploaded documents 1
DEL /documents/:id Delete a document Free
Recommendations
POST /recommendations/icp-analysis AI analysis of ideal customer profile 5
POST /recommendations/channel Get recommended outreach channels 5
POST /recommendations/sequence-strategy Get recommended sequence strategy 5
Billing
GET /billing/balance Get current credit balance Free
GET /billing/usage Get usage history (paginated) Free
GET /billing/usage/summary Get usage summary by operation Free
POST /billing/checkout Create Stripe checkout session Free