Your agent finds the leads.
This sends the emails.
One API call pushes leads in. Sequences, follow-ups and reply detection run on their own — you step in the moment a human answers.
Sends from your mailboxes, on your tracking domain — your reputation stays yours.
curl https://outreach.palus.sk/api/handleLeads \ -H "Authorization: Bearer olk_…" \ -H "Idempotency-Key: run-42" \ -d '{ "brand_id": 1, "leads": [{ "email": "jana@saloniris.sk", "name": "Jana Kováčová", "company": "Salon Iris", "category": "Hair Salon", "city": "Bratislava" }] }' // 202 Accepted { "batch_id": 42, "status": "queued", "preview": [ { "email": "jana@saloniris.sk", "status": "accepted" } ] }
Built for a machine on one end
and a human on the other
Your scraper, CRM or AI agent talks to two endpoints. Everything between — sequences, follow-ups, tracking, reply handling — runs on its own.
Sync what's known
GET /existingLeads returns every known contact as cheap hashes with status — your agent skips anything already handled.
Push new finds
POST /handleLeads takes up to 500 leads a call. Duplicates, invalid domains and unsubscribed addresses are rejected per lead, with reasons.
Sequences run
Leads enrol into multi-step campaigns. Follow-ups reply inside the same thread and stop the instant someone answers or opts out.
Humans take over
Replies are classified by AI. Interested ones land in your inbox with the full transcript. Nothing ever auto-replies to a person.
Copy grounded in a profile
you confirmed
Paste your website and Outreach reads it — product, value props, ideal customer, objections, pricing, tone. You review and confirm every field. Only then may the AI write, and every claim must come from that confirmed profile.
- Full sequences drafted per campaign, in the lead's language
- Per-campaign instructions — one campaign can sell one product, another a different one
- A built-in critic flags any claim the profile doesn't support
// incoming reply, classified automatically { "from": "jana@saloniris.sk", "classification": "interested", "confidence": 0.97, "summary": "Asks for pricing and a call next week.", "sequence": "stopped", "forwarded_to": "you@yourcompany.com" } // out-of-office? The sequence pauses and // resumes after the stated return date.
The unglamorous parts,
done properly
Your own mailboxes
Connect Gmail, Outlook or any IMAP/SMTP account. Warmup ramps, daily caps, sending windows and randomised delays keep them looking human.
Your tracking domain
Opens, clicks and unsubscribes run on a subdomain of your domain — never a shared one where someone else's spam becomes your problem.
Multi-step sequences
Delays and conditions per step, threading done right with In-Reply-To, and "no reply yet" as the default trigger — because opens lie.
Test the whole flow
Send the entire sequence to your own address before launch — real tracking, real unsubscribe, real classification, minutes instead of days.
A log of every email
Every send attempt with its exact rendered body, event timeline, bot-filtered opens and per-link clicks. No mystery about what went out.
Webhooks out
Replies, bounces and unsubscribes pushed to your systems, HMAC-signed. Your agent stays in the loop without polling.
Guardrails that protect you from yourself
Cold email dies when a domain gets burned. Every rule below is enforced by the system — not left to good intentions.
Launch blockers. No campaign starts without a confirmed profile, verified tracking domain, postal address and working mailbox.
Suppression re-checked at send time. Unsubscribed at 9:00, a queued follow-up at 9:05 is silently skipped.
Auto-pause circuit breaker. Bounce or complaint rate crosses your threshold and the campaign stops itself.
One-click unsubscribe. Visible link plus the List-Unsubscribe header, instant, no login, checked forever after.
One campaign per lead. Enforced by the database, not the UI — two campaigns can never email the same person in parallel.
Honest metrics. Apple Mail pre-fetches images, so bot opens are filtered out and reply rate is the number we show first.
Wire up your agent this afternoon
Two endpoints, bearer tokens, cursor paging and idempotency keys. The docs are public — see for yourself before signing up.