v1 · READ-ONLYGelee API
Pull your Gelee data — campaigns, prospects, stalled leads, analytics, and inbox — into your CRM, warehouse, or dashboards. REST, JSON, Bearer-auth.
Base URLwww.gelee.ai/api/v1
FormatJSON
AuthBearer key
Built for AI agents
Hand this API to Claude Code (or any agent)
Grab the full reference as Markdown and drop it into your agent's context — it has every endpoint, parameter, and example response. Agents can also auto-discover it at www.gelee.ai/llms.txt.
🔑
Authentication
Bearer token, one org per key. Generate in Settings → API in the Gelee app.
🛡️
Scopes
read (default) or read_write. v1 is read-only; read_write is reserved for upcoming writes.
⏱️
Rate limits
120/min per key · /inbox 15/min (live LinkedIn calls). 429 ⇒ back off.
📄
Pagination
limit (≤200) + offset; responses include { pagination }.
Get started
Authentication
Send your key as a Bearer token. Each key is tied to one organization and only returns that org's data. Verify it with /me:
curl https://www.gelee.ai/api/v1/me \
-H "Authorization: Bearer gk_xxxxxxxxxxxxxxxx"
GET/meVerify a key + its org context.
GET/campaignsCampaigns with prospect-status counts.
GET/campaigns/{id}One campaign (sequence, schedule) + counts.
GET/prospectsProspects. Filters: campaign_id, status, limit, offset.
GET/prospects/{id}One prospect by id.
GET/stalled-leadsLeads that replied positively then went silent. Params: days (default 5), campaign_id.
GET/analyticsOrg funnel: prospect counts by status.
GET/analytics/dailyPer-day counts: invites, connections, replies (incl. positive/negative), bookings. Params: from, to, campaign_id, account_id.
GET/inboxRecent LinkedIn conversations (live; limit ≤100).
curl "https://www.gelee.ai/api/v1/prospects?status=replied&limit=100" \
-H "Authorization: Bearer gk_xxx"
{ "data": [
{ "id": "…", "campaign_id": "…", "linkedin_id": "ACoAA…",
"name": "Jane Doe", "status": "replied", "current_step": 2,
"headline": "VP Sales @ Acme", "public_identifier": "janedoe",
"source": "evergreen_post_engager", "created_at": "…" }
],
"pagination": { "limit": 100, "offset": 0, "total": 342 } }curl "https://www.gelee.ai/api/v1/analytics/daily?from=2026-06-01&to=2026-06-30" \
-H "Authorization: Bearer gk_xxx"
{ "data": [
{ "date": "2026-06-01", "invites_sent": 42, "connections_accepted": 11,
"messages_sent": 23, "replies": 6, "positive_replies": 3,
"negative_replies": 1, "bookings": 2, "invites_withdrawn": 5 }
],
"meta": { "from": "2026-06-01", "to": "2026-06-30", "timezone": "UTC" } }Prefer push? Subscribe a destination to daily_digest in Settings → Event Destinations to get these counts webhooked every morning — plug straight into Zapier/Make. The destination's Test button fires a realistic sample for field mapping.
curl "https://www.gelee.ai/api/v1/stalled-leads?days=5" \
-H "Authorization: Bearer gk_xxx"
{ "data": [
{ "id": "…", "campaign_id": "…", "linkedin_id": "ACoAA…",
"name": "Jane Doe", "role": "VP Sales", "company": "Acme",
"headline": "VP Sales @ Acme", "public_identifier": "janedoe",
"linkedin_url": "https://linkedin.com/in/janedoe",
"days_since_activity": 9, "last_activity_at": "…",
"last_stalled_at": "…", "sentiment": "positive" }
],
"pagination": { "limit": 50, "offset": 0, "total": 4 },
"threshold_days": 5 }Errors return { "error": { "code": "...", "message": "..." } }:
401Bad / missing / expired key
Pull: poll /prospects and /campaigns on a schedule, upsert into your CRM by linkedin_id.
Stalled follow-ups: poll /stalled-leads to create tasks for leads that went cold after a positive reply.
Push (real-time): register a webhook in the app under Settings → Event Destinations for events (reply_received, call_booked, conversation_stalled, …).
Conversions: POST https://www.gelee.ai/api/webhooks/conversions with your key to send conversion events back into Gelee.
v1 is read-only. Write access (create/update) is planned and will require a read_write key.