Skip to main content
Developer Resources

AngelSend API

Build custom integrations and extend your outreach capabilities. Access contacts, campaigns, voice agents, AI chat, booking, and more via our RESTful APIs.

152
Edge Functions
15
API Categories
15+
Integrations

Contacts & Lead Management

Import leads from data providers and verify contact data

Apollo Connect
RESTAvailable
Apollo Import
RESTAvailable
Hunter.io Connect
RESTAvailable
Hunter.io Import
RESTAvailable
ZoomInfo Connect
RESTAvailable
ZoomInfo Import
RESTAvailable
PPL Contact Connect
RESTAvailable
PPL Contact Import
RESTAvailable
PhantomBuster Connect
RESTAvailable
Refine Contacts
RESTAvailable
Email Verification
RESTAvailable
Leads Import (API)
RESTAvailable

Lead Scraping & Automation

Automated scraping workflows for lead generation

Scraping Automation
RESTAvailable

Mass Email Outreach (via Resend)

Send campaign emails at scale through verified custom domains using Resend

AI Email Generation
RESTAvailable
Send Email
RESTAvailable
Send via Resend
RESTAvailable
Open Tracking
WebhookAvailable
Click Tracking
WebhookAvailable
Personalize Email
RESTAvailable
Domain Verification
RESTAvailable
Warmup Scheduler
RESTAvailable
Spam Audit
RESTAvailable

AI & Reply Handling

AI-powered assistant and intelligent reply management

AI Assistant
RESTAvailable
AI Email Reply
RESTAvailable
Analyze Reply Intent
RESTAvailable
Generate Auto Reply
RESTAvailable
Process Follow-ups
RESTAvailable

LinkedIn Outreach

LinkedIn connection requests and messaging

LinkedIn Connect
OAuthAvailable
LinkedIn Callback
OAuthAvailable
LinkedIn Outreach
RESTAvailable

Voice & SMS Agents

AI-powered voice agents via Twilio, Telnyx & ElevenLabs

Create ElevenLabs Agent
RESTAvailable
Clone Voice
RESTAvailable
Initiate Voice Call
RESTAvailable
Drop Voicemail
RESTAvailable
Voice TwiML Webhook
WebhookAvailable
Intercom Voice Token
RESTAvailable
Send Transcript
RESTAvailable
Twilio Connect
RESTAvailable
Twilio Buy Number
RESTAvailable
Twilio List Numbers
RESTAvailable
Telnyx SMS
RESTAvailable
Telnyx Webhook
WebhookAvailable

AI Chat Widget

Embeddable AI chat widget with knowledge base, plus REST + MCP endpoints so a coding agent can update widget config, AI instructions, knowledge entries, and handoff rules on the fly.

Intercom Widget
RESTAvailable
Intercom Chat
RESTAvailable
List Chatbots (REST)
RESTAvailable
Get Chatbot (REST)
RESTAvailable
Update Appearance (REST)
RESTAvailable
Update AI Behavior (REST)
RESTAvailable
Update Handoff Rules (REST)
RESTAvailable
List Knowledge (REST)
RESTAvailable
Add Knowledge Entry (REST)
RESTAvailable
Remove Knowledge Entry (REST)
RESTAvailable
List Handoff Requests (REST)
RESTAvailable
Update Handoff Request (REST)
RESTAvailable
MCP: list_intercom_chatbots
MCPAvailable
MCP: get_intercom_chatbot
MCPAvailable
MCP: update_intercom_chatbot_appearance
MCPAvailable
MCP: update_intercom_chatbot_ai
MCPAvailable
MCP: update_intercom_chatbot_handoff
MCPAvailable
MCP: list_intercom_knowledge
MCPAvailable
MCP: add_intercom_knowledge_entry
MCPAvailable
MCP: remove_intercom_knowledge_entry
MCPAvailable
MCP: list_intercom_handoff_requests
MCPAvailable
MCP: update_intercom_handoff_request
MCPAvailable

Contact Form Outreach

Submit outreach through a prospect's website contact form as a campaign send channel or on demand. Detects and refuses CAPTCHA-protected forms, and runs the same block-list/dedup/rate-limit compliance as email. Available as an edge function, REST action, and MCP tool.

Submit Contact Form
RESTAvailable
Analyze Contact Form (REST)
RESTAvailable
Submit Contact Form (REST)
RESTAvailable
MCP: analyze_contact_form
MCPAvailable
MCP: submit_contact_form
MCPAvailable

Booking & Calendar

Meeting scheduling with calendar sync

Get Booking Availability
RESTAvailable
Create Booking
RESTAvailable
Google Calendar Sync
RESTAvailable
Google Calendar Auto Sync
RESTAvailable
Schedule Sync
RESTAvailable
Send Calendar Alert
RESTAvailable

Gmail Inbox Management

Manage inbox correspondence, track replies, and sync email threads via Google API

Send via Gmail
RESTAvailable
Send Scheduled Gmail
RESTAvailable
Process Gmail Sync
RESTAvailable
Google Workspace Connect
OAuthAvailable
Google Workspace Callback
OAuthAvailable

CRM & Integrations

Connect with Google Contacts, Drive, Slack, HubSpot, Salesforce, and more

Google Contacts Import
RESTAvailable
Google Drive
RESTAvailable
Sheets CRM Sync
RESTAvailable
Slack Connect
OAuthAvailable
Slack Callback
OAuthAvailable
HubSpot Connect
OAuthAvailable
HubSpot Callback
OAuthAvailable
Salesforce Connect
OAuthAvailable
Salesforce Callback
OAuthAvailable

Embed Forms & Lead Capture

Embeddable forms for newsletter signups and lead capture

Form Embed
RESTAvailable
Form Submit
RESTAvailable

Analytics & Admin

Access analytics, pricing tiers, and admin functions

Admin Analytics
RESTAvailable
Cred API
RESTAvailable
Setup Pricing Tiers
RESTAvailable

Authentication & OAuth

API key generation and OAuth provider system

Generate API Key
RESTAvailable
OAuth Authorize
OAuthAvailable
OAuth Token
OAuthAvailable
OAuth UserInfo
RESTAvailable
OAuth Register Client
RESTAvailable
OAuth Provision User
RESTAvailable
OneProfile SSO Callback
OAuthAvailable

External App OAuth System

Allow external apps to connect their users' Gmail or Outlook and use AngelSend's integrations

External OAuth Init
OAuthAvailable
External OAuth Callback
OAuthAvailable
External Calendar API
RESTAvailable
Partner Email API (Gmail + Outlook)
RESTAvailable

Available Edge Functions

All APIs are deployed as serverless edge functions for low latency and high availability.

ab-pick-winner
admin-analytics
admin-relaunch
agent-api
ai-assistant
ai-assistant-replay
ai-attribution-rollup
ai-column-mapper
ai-conversation-title
ai-email-reply
ai-eval-runner
ai-message-feedback
ai-model-prewarm
ai-undo
analyze-reply-intent
api-gateway
apollo-connect
apollo-import
approve_auto_reply_draft
approve_campaign_draft
bulk-forward-emails
client-error
clone-voice
compliance-archive
compute-call-scorecard
create-booking
create-elevenlabs-agent
cred-api
daily-batch-generate
detect-duplicate-touches
email-click-track
email-track
email-verification
embed-and-search
external-calendar-api
external-email-api
external-email-worker
external-gmail-api
external-oauth-callback
external-oauth-init
extract-attachment
extract-call-outcome
extract-email-memory
form-embed
form-submit
forward-gmail
generate-api-key
generate-auto-reply
generate-campaign-emails
generate-personalization-tokens
generate-subject-lines
get-booking-availability
google-calendar-auto-sync
google-calendar-sync
google-contacts-import
google-drive
google-workspace-callback
google-workspace-connect
handle-unsubscribe
hubspot-callback
hubspot-connect
hunter-connect
hunter-import
inbound-email
ingest-transcript-segment
initiate-voice-call
intent-signal-ingest
intercom-action
intercom-agent
intercom-chat
intercom-handoff-notify
intercom-upload-attachment
intercom-voice-token
intercom-widget
issuer-funnel
launch-campaign
leads-import
linkedin-callback
linkedin-connect
linkedin-outreach
mailbox-health
mcp-server
oauth-authorize
oauth-provision-user
oauth-register-client
oauth-token
oauth-userinfo
oneprofile-sso-callback
outlook-calendar-sync
outlook-connect
personalize-email
phantombuster-connect
pipeline-alert-monitor
ppl-contact-connect
ppl-contact-import
predict-reply-likelihood
process-embed-queue
process-follow-ups
process-gmail-sync
process-knowledge-base-document
process-no-shows
process-outlook-sync
protonmail-connect
recommend-contacts
refine-prospects
reply-notification-digest
reply-router
retry-failed-messages
rewrite-for-deliverability
rewrite-in-voice
sales-agent
salesforce-callback
salesforce-connect
schedule-sync
scraping-automation
scrappy-linkedin
send-calendar-alert
send-email
send-gmail
send-outlook
send-resend
send-scheduled-gmail
send-time-optimizer
send-transcript
sender-reputation-refresh
setup-pricing-tiers
sheets-crm-sync
slack-callback
slack-connect
spam-audit
submit-contact-form
summarize-thread
suppress-recipient
system-health
telnyx-sms
telnyx-webhook
test-campaign-automations
twilio-buy-number
twilio-connect
twilio-list-numbers
verify-domain
verify-emails
voice-crm-context
voice-drop-voicemail
voice-status
voice-twiml
warmup-scheduler
waterfall-enrich
web-session-handoff
webhook-dispatcher
zoominfo-connect
zoominfo-import

Native & Desktop OAuth Integration

Best practices for partners building mobile or desktop apps that connect AngelSend-managed Google OAuth on behalf of their users.

Seeing Google Error 403: disallowed_useragent?

This is a Google security policy, not an AngelSend bug. Google blocks OAuth inside embedded webviews, in-app browsers, Electron BrowserWindows, CEF/WebView2, and any non-standard User-Agent. Open the OAuth URL in the user's real system browser instead.

Why this happens

Google requires OAuth flows to run in a trusted system browser so the user can verify the URL and security indicators. Embedded webviews hide those indicators, so Google rejects them with disallowed_useragent. This affects mobile apps that use a WebView, desktop apps built with Electron or CEF, and any custom browser that overrides its User-Agent.

The correct pattern

  1. Call /external-oauth-init to receive an auth_url.
  2. Open that URL in the system browser (Custom Tabs, ASWebAuthenticationSession, shell.openExternal, Linking.openURL).
  3. Register a redirect URI that returns control to your app: a custom URL scheme like yourapp://oauth/callback or a loopback address like http://127.0.0.1:port/callback.
  4. Add the redirect URI to your External App's allowed list in AngelSend.
  5. Extract the code and state when the browser redirects back.

Electron (desktop)

const { shell, app } = require('electron');

// 1. Get auth_url from AngelSend
const { auth_url } = await fetchExternalOAuthInit({
  client_id: 'your_client_id',
  external_user_id: 'your_user_id',
  callback_url: 'http://127.0.0.1:8765/callback',
  provider: 'google',
  scopes: ['calendar', 'email'],
});

// 2. Open in the user's real browser
shell.openExternal(auth_url);

// 3. Handle custom protocol redirect
app.setAsDefaultProtocolClient('yourapp');
app.on('open-url', (event, url) => {
  const { searchParams } = new URL(url);
  const code = searchParams.get('code');
  const state = searchParams.get('state');
  // exchange code + state with your backend
});

React Native

import { Linking } from 'react-native';

const { auth_url } = await fetchExternalOAuthInit({
  client_id: 'your_client_id',
  external_user_id: 'your_user_id',
  callback_url: 'yourapp://oauth/callback',
  provider: 'google',
  scopes: ['calendar', 'email'],
});

Linking.openURL(auth_url);

Linking.addEventListener('url', (event) => {
  const url = new URL(event.url);
  const code = url.searchParams.get('code');
  const state = url.searchParams.get('state');
  // send to backend
});

Register your redirect URI

Add every redirect URI you plan to use to your External App registration:

POST /oauth-register-client
{
  "name": "Your App",
  "redirect_uris": [
    "https://yourapp.com/oauth/callback",
    "yourapp://oauth/callback",
    "http://127.0.0.1:8765/callback"
  ]
}

Common mistakes

  • Opening the OAuth URL in an embedded WebView or hidden browser layer.
  • Using http://localhost on mobile — use a custom URL scheme instead.
  • Forgetting to add the redirect URI to the External App's allowed list.
  • Sending the client_secret to the client — keep it server-side.

Ready to Start Building?

Generate your API key in the dashboard settings and start integrating AngelSend into your applications. Full documentation available for all endpoints.