instantly

Instantly.ai API for cold email campaigns. Use when user mentions "Instantly", "cold email", "email campaign", or outreach automation.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "instantly" with this command: npx skills add vm0-ai/vm0-skills/vm0-ai-vm0-skills-instantly

Instantly API

Use the Instantly API via direct curl calls to automate cold email outreach, manage campaigns, leads, and sending accounts.

Official docs: https://developer.instantly.ai/


When to Use

Use this skill when you need to:

  • Manage email campaigns - create, launch, pause campaigns
  • Handle leads - add, update, list leads in campaigns
  • Manage sending accounts - list and configure email accounts
  • Automate outreach - schedule sends and manage lead lists

Prerequisites

  1. Sign up at Instantly.ai (Growth plan or above required for API)
  2. Go to Settings > Integrations > API to create an API key
  3. Select appropriate scopes for your use case
export INSTANTLY_API_KEY="your-api-key"

API Scopes

Create API keys with specific permissions:

  • campaigns:read, campaigns:create, campaigns:update
  • leads:read, leads:create, leads:update, leads:delete
  • lead_lists:read, lead_lists:create
  • analytics:read
  • all:all (full access)

How to Use

All examples below assume you have INSTANTLY_API_KEY set.

The base URL for API V2 is:

  • https://api.instantly.ai/api/v2

Authentication uses Bearer token in the Authorization header.


1. List Campaigns

Get all campaigns:

curl -s "https://api.instantly.ai/api/v2/campaigns" -H "Authorization: Bearer $(printenv INSTANTLY_API_KEY)" | jq '.items[] | {id, name, status}'

With filters:

curl -s "https://api.instantly.ai/api/v2/campaigns?status=ACTIVE&limit=10" -H "Authorization: Bearer $(printenv INSTANTLY_API_KEY)" | jq '.items[] | {id, name}'

Status values: ACTIVE, PAUSED, COMPLETED, DRAFTED


2. Get Single Campaign

Get campaign details by ID. Replace <your-campaign-id> with the actual campaign ID:

curl -s "https://api.instantly.ai/api/v2/campaigns/<your-campaign-id>" -H "Authorization: Bearer $(printenv INSTANTLY_API_KEY)" | jq '{id, name, status, daily_limit}'

3. Create Campaign

Create a new campaign (requires campaign_schedule):

Write to /tmp/instantly_request.json:

{
  "name": "My New Campaign",
  "daily_limit": 50,
  "campaign_schedule": {
    "schedules": [
      {
        "name": "Weekday Schedule",
        "timezone": "America/Chicago",
        "days": {
          "monday": true,
          "tuesday": true,
          "wednesday": true,
          "thursday": true,
          "friday": true,
          "saturday": false,
          "sunday": false
        },
        "timing": {
          "from": "09:00",
          "to": "17:00"
        }
      }
    ]
  }
}

Then run:

curl -s "https://api.instantly.ai/api/v2/campaigns" -X POST -H "Authorization: Bearer $(printenv INSTANTLY_API_KEY)" -H "Content-Type: application/json" -d @/tmp/instantly_request.json

4. Pause/Activate Campaign

Control campaign status. Replace <your-campaign-id> with the actual campaign ID:

# Pause campaign
curl -s "https://api.instantly.ai/api/v2/campaigns/<your-campaign-id>/pause" -X POST -H "Authorization: Bearer $(printenv INSTANTLY_API_KEY)"

# Activate campaign
curl -s "https://api.instantly.ai/api/v2/campaigns/<your-campaign-id>/activate" -X POST -H "Authorization: Bearer $(printenv INSTANTLY_API_KEY)"

5. List Leads

List leads (POST endpoint due to complex filters):

Write to /tmp/instantly_request.json:

{
  "limit": 10
}

Then run:

curl -s "https://api.instantly.ai/api/v2/leads/list" -X POST -H "Authorization: Bearer $(printenv INSTANTLY_API_KEY)" -H "Content-Type: application/json" -d @/tmp/instantly_request.json | jq '.items[] | {id, email, first_name, last_name}'

Filter by campaign:

Write to /tmp/instantly_request.json:

{
  "campaign_id": "your-campaign-id",
  "limit": 20
}

Then run:

curl -s "https://api.instantly.ai/api/v2/leads/list" -X POST -H "Authorization: Bearer $(printenv INSTANTLY_API_KEY)" -H "Content-Type: application/json" -d @/tmp/instantly_request.json | jq '.items[] | {email, status}'

6. Create Lead

Add a single lead:

Write to /tmp/instantly_request.json:

{
  "email": "john@example.com",
  "first_name": "John",
  "last_name": "Doe",
  "company_name": "Acme Corp",
  "campaign_id": "your-campaign-id"
}

Then run:

curl -s "https://api.instantly.ai/api/v2/leads" -X POST -H "Authorization: Bearer $(printenv INSTANTLY_API_KEY)" -H "Content-Type: application/json" -d @/tmp/instantly_request.json

With custom variables:

Write to /tmp/instantly_request.json:

{
  "email": "jane@example.com",
  "first_name": "Jane",
  "campaign_id": "your-campaign-id",
  "custom_variables": {
    "role": "CTO",
    "industry": "SaaS"
  }
}

Then run:

curl -s "https://api.instantly.ai/api/v2/leads" -X POST -H "Authorization: Bearer $(printenv INSTANTLY_API_KEY)" -H "Content-Type: application/json" -d @/tmp/instantly_request.json

7. Get Single Lead

Get lead by ID. Replace <your-lead-id> with the actual lead ID:

curl -s "https://api.instantly.ai/api/v2/leads/<your-lead-id>" -H "Authorization: Bearer $(printenv INSTANTLY_API_KEY)"

8. Update Lead

Update lead information:

Write to /tmp/instantly_request.json:

{
  "first_name": "Updated Name",
  "custom_variables": {
    "notes": "High priority"
  }
}

Then run. Replace <your-lead-id> with the actual lead ID:

curl -s "https://api.instantly.ai/api/v2/leads/<your-lead-id>" -X PATCH -H "Authorization: Bearer $(printenv INSTANTLY_API_KEY)" -H "Content-Type: application/json" -d @/tmp/instantly_request.json

9. List Lead Lists

Get all lead lists:

curl -s "https://api.instantly.ai/api/v2/lead-lists" -H "Authorization: Bearer $(printenv INSTANTLY_API_KEY)" | jq '.items[] | {id, name}'

10. Create Lead List

Create a new lead list:

Write to /tmp/instantly_request.json:

{
  "name": "Q1 Prospects"
}

Then run:

curl -s "https://api.instantly.ai/api/v2/lead-lists" -X POST -H "Authorization: Bearer $(printenv INSTANTLY_API_KEY)" -H "Content-Type: application/json" -d @/tmp/instantly_request.json

11. List Email Accounts

Get connected sending accounts:

curl -s "https://api.instantly.ai/api/v2/accounts" -H "Authorization: Bearer $(printenv INSTANTLY_API_KEY)" | jq '.items[] | {email, status, warmup_status}'

12. Test API Key

Verify your API key is valid:

curl -s "https://api.instantly.ai/api/v2/api-keys" -H "Authorization: Bearer $(printenv INSTANTLY_API_KEY)" | jq '.items[0] | {name, scopes}'

Pagination

List endpoints support pagination:

# First page
curl -s "https://api.instantly.ai/api/v2/campaigns?limit=10" -H "Authorization: Bearer $(printenv INSTANTLY_API_KEY)" | jq '{items: .items | length, next_starting_after: .next_starting_after}'

# Next page (replace <your-cursor> with the next_starting_after value from the previous response)
curl -s "https://api.instantly.ai/api/v2/campaigns?limit=10&starting_after=<your-cursor>" -H "Authorization: Bearer $(printenv INSTANTLY_API_KEY)" | jq '.items[] | {id, name}'

Guidelines

  1. Use API V2: V1 is deprecated, use V2 endpoints only
  2. Bearer token auth: Always use Authorization: Bearer header
  3. Scope your keys: Create keys with minimal required permissions
  4. Custom variables: Values must be string, number, boolean, or null (no objects/arrays)
  5. Leads list is POST: Due to complex filters, listing leads uses POST not GET
  6. Rate limits: Respect rate limits based on your plan tier
  7. Growth plan required: API access requires Growth plan or above

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Automation

vm0-agent

No summary provided by upstream source.

Repository SourceNeeds Review
Automation

agentmail

No summary provided by upstream source.

Repository SourceNeeds Review
General

google-sheets

No summary provided by upstream source.

Repository SourceNeeds Review
246-vm0-ai
General

apify

No summary provided by upstream source.

Repository SourceNeeds Review
214-vm0-ai