Posthawk
Contacts & Audience

Built-in audience
management

Collect subscribers from your forms, organize contacts with tags, and send to segments — no external mailing list service needed.

Contact Management

Add and import
contacts

Create contacts one at a time or bulk import up to 1,000 at once. Each contact can have a name, tags, and custom metadata.

TypeScript
import { Posthawk } from 'posthawk';const posthawk = new Posthawk('ck_live_...');// Add a contact from your signup formawait posthawk.contacts.create({  email: 'alice@example.com',  name: 'Alice',  tags: ['newsletter', 'beta-users'],});// Bulk import contactsawait posthawk.contacts.import([  { email: 'bob@example.com', tags: ['newsletter'] },  { email: 'carol@example.com', tags: ['beta-users'] },]);
TypeScript
// Send to all contacts tagged "newsletter"await posthawk.emails.send({  from: 'hello@yourapp.com',  tag: 'newsletter',  subject: 'Weekly Update',  html: '<p>Here is your weekly update...</p>',});// Unsubscribed contacts are automatically// excluded — no manual filtering needed.
Segmented Sending

Send to a tag,
reach everyone

Replace hardcoded recipient lists with tags. One API call sends to all contacts with that tag — unsubscribed contacts are automatically excluded.

Form Integration

Capture subscribers
from any form

Add a single API call to your newsletter signup, contact form, or registration flow. Contacts are created instantly with the tags you choose.

HTML + JavaScript
<!-- HTML form on your website --><form id="newsletter-form">  <input type="email" name="email" required />  <button type="submit">Subscribe</button></form><script>document.getElementById('newsletter-form')  .addEventListener('submit', async (e) => {    e.preventDefault();    const email = e.target.email.value;    await fetch('https://api.posthawk.dev/v1/contacts', {      method: 'POST',      headers: {        'Content-Type': 'application/json',        'X-API-Key': 'ck_live_...',      },      body: JSON.stringify({        email,        tags: ['newsletter'],      }),    });  });</script>
Getting started

Three steps to
audience management

01

Add contacts

Create contacts via API, dashboard, or capture them from your website forms with a single POST request.

02

Organize with tags

Tag contacts as "newsletter", "beta-users", or any custom label. Filter and manage your audience by tag.

03

Send by tag

Use the tag field in your send request. Posthawk resolves all contacts with that tag and delivers.

Workspace-Scoped Contacts

Every contact belongs to a workspace. Isolated data, team access, and per-workspace audience management.

Tag-Based Segmentation

Organize contacts with tags like "newsletter", "beta-users", or "onboarding". One contact can have multiple tags.

Send by Tag

Pass a tag instead of recipient addresses. Posthawk resolves the contacts and sends — unsubscribed contacts are automatically excluded.

Unsubscribe Handling

Mark contacts as unsubscribed via API. Tag-based sends automatically skip unsubscribed contacts.

Use cases

Replace your
mailing list tool

Stop maintaining a separate Mailchimp or SendGrid contact list. Posthawk contacts live alongside your email sending — one platform, one API.

Newsletter signups

Capture email addresses from your website footer or signup forms. Tag as "newsletter" and send updates.

Contact forms

Save every contact form submission as a contact with metadata. Track inquiries alongside your audience.

User onboarding

Tag new signups with "onboarding" and send welcome sequences to the entire cohort.

Start building your audience

Add your first contact in seconds. Free tier includes up to 3,000 emails per month.

Cookie Preferences

We use analytics cookies to understand how you use our site and improve your experience. Privacy Policy