instantly-hello-world
Quick-start guide for the Instantly.ai API.
Install
mkdir -p .claude/skills/instantly-hello-world && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/6649" && unzip -o skill.zip -d .claude/skills/instantly-hello-world && rm skill.zipInstalls to .claude/skills/instantly-hello-world
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
Create a minimal working Instantly.ai example with real API calls.Key capabilities
- →List Instantly campaigns with their status
- →Check the health status of Instantly email accounts
- →Retrieve analytics for specific Instantly campaigns
- →Verify Instantly API v2 connectivity
How it works
The skill makes real API calls to Instantly v2 endpoints to fetch campaign data, email account health, and campaign analytics.
Inputs & outputs
When to use instantly-hello-world
- →Testing Instantly API connectivity
- →Listing email campaigns programmatically
- →Checking email account health status
- →Scaffolding a new Instantly integration
About this skill
Instantly Hello World
Overview
Minimal working example that lists your campaigns, checks email account health, and pulls campaign analytics — all using real Instantly API v2 endpoints.
Prerequisites
- Completed
instantly-install-authsetup - At least one email account connected in Instantly
INSTANTLY_API_KEYenvironment variable set
Instructions
Step 1: List Your Campaigns
import { instantly } from "./src/instantly";
interface Campaign {
id: string;
name: string;
status: number; // 0=Draft, 1=Active, 2=Paused, 3=Completed
}
const STATUS_LABELS: Record<number, string> = {
0: "Draft", 1: "Active", 2: "Paused", 3: "Completed",
4: "Running Subsequences", [-99]: "Suspended",
[-1]: "Accounts Unhealthy", [-2]: "Bounce Protect",
};
async function listCampaigns() {
const campaigns = await instantly<Campaign[]>("/campaigns?limit=10");
console.log(`Found ${campaigns.length} campaigns:\n`);
for (const c of campaigns) {
console.log(` ${c.name} [${STATUS_LABELS[c.status] ?? c.status}] — ${c.id}`);
}
return campaigns;
}
Step 2: Check Email Account Health
interface Account {
email: string;
status: number;
warmup_status: string;
daily_limit: number | null;
}
async function checkAccounts() {
const accounts = await instantly<Account[]>("/accounts?limit=5");
console.log(`\nEmail Accounts (${accounts.length}):`);
for (const a of accounts) {
console.log(` ${a.email} — status: ${a.status}, warmup: ${a.warmup_status}, daily_limit: ${a.daily_limit}`);
}
// Test vitals for the first account
if (accounts.length > 0) {
const vitals = await instantly("/accounts/test/vitals", {
method: "POST",
body: JSON.stringify({ accounts: [accounts[0].email] }),
});
console.log(`\nVitals for ${accounts[0].email}:`, JSON.stringify(vitals, null, 2));
}
}
Step 3: Pull Campaign Analytics
async function getAnalytics(campaignId: string) {
const stats = await instantly<{
campaign_id: string;
total_leads: number;
leads_contacted: number;
emails_sent: number;
emails_opened: number;
emails_replied: number;
emails_bounced: number;
}>(`/campaigns/analytics?id=${campaignId}`);
console.log(`\nCampaign Analytics:`);
console.log(` Leads: ${stats.total_leads} total, ${stats.leads_contacted} contacted`);
console.log(` Sent: ${stats.emails_sent}`);
console.log(` Opened: ${stats.emails_opened} (${((stats.emails_opened / stats.emails_sent) * 100).toFixed(1)}%)`);
console.log(` Replied: ${stats.emails_replied} (${((stats.emails_replied / stats.emails_sent) * 100).toFixed(1)}%)`);
console.log(` Bounced: ${stats.emails_bounced}`);
}
Step 4: Run It All
async function main() {
console.log("=== Instantly API v2 Hello World ===\n");
const campaigns = await listCampaigns();
await checkAccounts();
if (campaigns.length > 0) {
await getAnalytics(campaigns[0].id);
}
console.log("\nDone! Your Instantly connection is working.");
}
main().catch(console.error);
Quick Test with curl
set -euo pipefail
# List campaigns
curl -s https://api.instantly.ai/api/v2/campaigns?limit=3 \
-H "Authorization: Bearer $INSTANTLY_API_KEY" | jq '.[] | {name, status, id}'
# List email accounts
curl -s https://api.instantly.ai/api/v2/accounts?limit=3 \
-H "Authorization: Bearer $INSTANTLY_API_KEY" | jq '.[] | {email, status}'
Output
- List of campaigns with names and statuses
- Email account health overview
- Campaign analytics summary (open rate, reply rate, bounce count)
- Confirmation that Instantly API v2 is reachable
Error Handling
| Error | Cause | Solution |
|---|---|---|
401 Unauthorized | Bad API key | Regenerate in Settings > Integrations |
403 Forbidden | Missing campaigns:read scope | Edit API key scopes |
| Empty campaign list | No campaigns created yet | Create one in the Instantly dashboard first |
429 Too Many Requests | Rate limited | Wait and retry with backoff |
Resources
- Instantly API v2 Docs
- Campaign Endpoints
- Account Endpoints
Next Steps
Proceed to instantly-core-workflow-a to build a full campaign launch workflow.
Prerequisites
Limitations
- →Requires an existing Instantly API key
- →Requires at least one email account connected in Instantly
- →Requires campaigns to be created in the Instantly dashboard for a non-empty list
How it compares
This skill provides a functional code example for Instantly API v2, unlike manual API documentation review.
Compared to similar skills
instantly-hello-world side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| instantly-hello-world (this skill) | 1 | 27d | Review | Beginner |
| fastapi-templates | 520 | 2mo | No flags | Intermediate |
| android-kotlin-development | 268 | 5mo | Review | Advanced |
| mcp-builder | 136 | 3mo | Review | Advanced |
Try saying
Example prompts that trigger this skill in your AI assistant.
More by jeremylongshore
View all by jeremylongshore →You might also like
fastapi-templates
wshobson
Create production-ready FastAPI projects with async patterns, dependency injection, and comprehensive error handling. Use when building new FastAPI applications or setting up backend API projects.
android-kotlin-development
aj-geddes
Develop native Android apps with Kotlin. Covers MVVM with Jetpack, Compose for modern UI, Retrofit for API calls, Room for local storage, and navigation architecture.
mcp-builder
anthropics
Guide for creating high-quality MCP (Model Context Protocol) servers that enable LLMs to interact with external services through well-designed tools. Use when building MCP servers to integrate external APIs or services, whether in Python (FastMCP) or Node/TypeScript (MCP SDK).
fastapi-pro
sickn33
Build high-performance async APIs with FastAPI, SQLAlchemy 2.0, and Pydantic V2. Master microservices, WebSockets, and modern Python async patterns. Use PROACTIVELY for FastAPI development, async optimization, or API architecture.
api-design-principles
wshobson
Master REST and GraphQL API design principles to build intuitive, scalable, and maintainable APIs that delight developers. Use when designing new APIs, reviewing API specifications, or establishing API design standards.
telegram-bot-builder
davila7
Expert in building Telegram bots that solve real problems - from simple automation to complex AI-powered bots. Covers bot architecture, the Telegram Bot API, user experience, monetization strategies, and scaling bots to thousands of users. Use when: telegram bot, bot api, telegram automation, chat bot telegram, tg bot.