Payment successful! Your credits have been added to your account.
Credits Remaining
--
Credits Used
--
Active Sequences
--
API Keys
Recent Activity
Loading usage data...
Billing
Purchase API credits. All packages are one-time purchases with no subscription.
Payment successful! Your credits have been added.
500
credits
$15
$0.030 / credit
2,000
credits
$49
$0.025 / credit
5,000
credits
$99
$0.020 / credit
20,000
credits
$299
$0.015 / credit
100,000
credits
$999
$0.010 / credit
Quick Start
Get your AI coding agent up and running with GeoDedo in minutes.
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
npmnpm install geodedo
pippip install geodedo
Code Examples
import GeoDedo from'geodedo';
const client = newGeoDedo({
apiKey: 'your-api-key',
});
// Register a userconst { 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 contactsconst { contacts } = await client.contacts.search({
userId: 'user-123',
query: 'CTO series A fintech',
limit: 10,
});
// Generate personalized email draftsconst { drafts } = await client.drafts.generate({
userId: 'user-123',
contacts: contacts,
channel: 'gmail',
context: 'Introduce our dev tool platform',
});
// Send approved draftsawait 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 keyAPI_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"
API Reference
All endpoints, credit costs, and authentication details for the GeoDedo API.
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.