Wavearrow_forwardStart Now for Free
← Blog

Can you send cold DMs with the Instagram API?

4 min read

If you're a developer, or you work with one, this is usually the first idea: "Let's just use the Instagram API to send our cold DMs."

Short answer: you can't. And it's not a bug, it's by design.

Here's what the official API actually lets you do, why it won't help with outreach, and what to use instead.

What the Instagram API is

Meta has an official messaging API for Instagram. It's built for businesses that want to manage their inbox at scale: support teams, chatbots, auto-replies.

To use it, you need a professional Instagram account (business or creator), a Meta app, the right messaging permissions, and in most cases Meta's app review. That's the setup behind tools like ManyChat.

What it allows (and what it doesn't)

The rule is simple: the user has to start the conversation.

  • Replies to DMs. When someone messages you, you get a 24-hour window to reply through the API. After that, the window closes until they write again.

  • Private replies to comments. When someone comments on your post or reel, you can send them one private message, within 7 days of the comment. If they answer, the normal 24-hour window opens.

  • Ads that open a DM. You can pay for ads where people tap to message you. Again, they start the conversation.

What you can't do: send a message to someone who never interacted with you. No list of usernames, no "DM these 500 founders", no outreach. The API simply has no endpoint for it.

That's why every tool built on the official API is inbound. They help you answer faster. They don't help you start conversations.

Why Meta blocks it

Because the inbox is Instagram's most protected space. If any app could message any user through an API, DMs would turn into a spam folder overnight.

So Meta keeps the official door closed for cold messages. Fair enough. But it means that if you want to reach people who don't know you yet, the API isn't your tool.

So how do people send cold DMs on Instagram?

Three options, basically.

1. By hand

Open Instagram, find the profile, write the message, send. It works, and it's the safest way to start. But it doesn't scale: 20 good DMs a day is already an hour of work, and follow-ups get forgotten. I covered the full comparison in my guide to automating Instagram outreach.

2. Browser extensions

They automate clicks in your own browser. Cheap and easy to start, but your laptop has to stay on, and when Instagram changes something, they break. Most of the tools in this AutoIGDM alternatives list started there.

3. Cloud tools like Wave

This is what we built. Wave doesn't go through Meta's messaging API. It uses browser automation in the cloud, simulating how a real person uses Instagram, with safety in mind from day one:

  • a warmup phase before any DM is sent,

  • city-level proxies, so your account always connects from the same place,

  • progressive sending and random delays,

  • human-like daily limits.

Your campaigns run 24/7, even with your computer off. And because Wave also finds the leads, writes personalized variations and handles follow-ups, you're not just sending DMs, you're running the whole outreach.

To be clear, no tool can promise zero risk on Instagram. How you use it matters: stay within safe sending limits, target people who actually fit, and keep links out of your first messages to avoid hidden requests.

And if you really want an API?

That's the good news: Wave has one.

Meta's API won't send your outreach, but Wave's API lets you control your outreach from your own code. You authenticate with an API key, and you can:

  • create audiences from followers, post likers and commenters, keywords or mentions,

  • create and update sequences (message variations, follow-ups, follow or like before the first DM),

  • launch, pause and resume campaigns,

  • pull your stats: DMs sent, follow-ups, replies, reply rate.

Everything is documented at developers.usewave.co.

And if you'd rather not write code at all, Wave also has an MCP server. You connect it to your AI assistant (Claude, ChatGPT, Gemini...) and run your outreach in plain English. I explain how in this article.

The bottom line

The Instagram API is great for answering people who reach out to you. It will never send your first message.

If you want to start conversations with people who don't know you yet, you need a tool built for outreach, and you need to use it carefully. That's exactly what Wave is for. You can see what it does here, or check the FAQ.

Questions? Email me at antoine@usewave.co.

lea.mindsetYes! Send me the details.now
Google CalendarDiscovery call · Fri, 3:00 PM5m ago
StripeNew payment received1h ago
marco.trainsSounds interesting, tell me more.2m ago

Your next client is just a DM away.

Free trial. Live in 5 minutes. Cancel anytime.Full access to all features.
arrow_forwardStart Now for Free