New: Earn 20% as an AgentAlley affiliate. Share your link and earn on every sale you refer. Join now New: Earn 20% as an affiliate. Join now

Hostinger Reach API for contact management, segmentation

Hostinger Reach (Email Marketing)

by hostinger · MIT license · ★ 23 on GitHub

Hostinger Reach (Email Marketing) cover

Hostinger Reach (Email Marketing) API for contact management, segmentation, contact groups, and profile management. Use when creating or listing contacts, managing contact segments or groups, filtering contacts by subscription status,…

---
name: reach
description: Hostinger Reach (Email Marketing) API for contact management, segmentation, contact groups, and profile management. Use when creating or listing contacts, managing contact segments or groups, filtering contacts by subscription status, or working with email marketing profiles.
last_updated: "2026-06-12"
doc_source: https://developers.hostinger.com
---

# Hostinger Reach (Email Marketing)

The Reach API provides email marketing capabilities — managing contacts, creating segments for targeted campaigns, and working with sender profiles.

## Table of Contents

- [Core Concepts](#core-concepts)
- [Common Patterns](#common-patterns)
- [API Reference](#api-reference)
- [Best Practices](#best-practices)
- [Troubleshooting](#troubleshooting)

Overview

The Reach API provides email marketing capabilities — managing contacts, creating segments for targeted campaigns, and working with sender profiles.

Manual install (npx, ZIP)
Claude Codenpx skills add hostinger/hostinger-agent-skills --skill reach -g -a claude-code
Claude Code (degit)npx degit hostinger/hostinger-agent-skills/skills/reach#main ~/.claude/skills/reach
Claude.ai / desktopZip the folder and upload it under Settings → Capabilities → Skills.
Codex, Cursor, other agentsPoint them at SKILL.md. The other files are plain text.

Connects with Agent Alley MCP · agentalley.io/mcp

Files included

  • SKILL.md8.8 KB
Read SKILL.md here
hostinger/main1 file shown
SKILL.md
Show the full text264 lines

Hostinger Reach (Email Marketing)

The Reach API provides email marketing capabilities — managing contacts, creating segments for targeted campaigns, and working with sender profiles.

Table of Contents

Core Concepts

Contacts

Contacts are email recipients in your marketing system. Each contact has basic information (name, email, surname) and a subscription status. If double opt-in is enabled, new contacts start with a pending status and receive a confirmation email.

Segments

Segments group contacts based on specific criteria (email, name, subscription status, engagement metrics, etc.). Segments support complex filtering with operators like equals, contains, gte, lte, opened, clicked, etc.

Profiles

Sender profiles represent the email identity used to send campaigns. Each profile has basic information and is associated with your account.

Contact Groups

Groups are a way to organize contacts (deprecated in favor of segments).

Subscription Status

Contacts can have different subscription statuses that determine whether they receive emails. Status can be used as a filter when listing contacts.

Common Patterns

Create and Manage Contacts
# Create a new contact (direct)
curl -X POST "https://developers.hostinger.com/api/reach/v1/contacts" \
  -H "Authorization: Bearer $HOSTINGER_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "email": "[email protected]",
    "name": "John",
    "surname": "Doe",
    "phone": "+15551234567",
    "note": "Met at conference"
  }'

# Create a new contact (scoped to a specific sender profile)
curl -X POST "https://developers.hostinger.com/api/reach/v1/profiles/{profileUuid}/contacts" \
  -H "Authorization: Bearer $HOSTINGER_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "email": "[email protected]",
    "name": "John",
    "surname": "Doe"
  }'

# List contacts (paginated)
curl -X GET "https://developers.hostinger.com/api/reach/v1/contacts?page=1" \
  -H "Authorization: Bearer $HOSTINGER_API_TOKEN"

# Filter contacts by subscription status
curl -X GET "https://developers.hostinger.com/api/reach/v1/contacts?subscription_status=active" \
  -H "Authorization: Bearer $HOSTINGER_API_TOKEN"

# List contact groups
curl -X GET "https://developers.hostinger.com/api/reach/v1/contacts/groups" \
  -H "Authorization: Bearer $HOSTINGER_API_TOKEN"

# Delete a contact
curl -X DELETE "https://developers.hostinger.com/api/reach/v1/contacts/{uuid}" \
  -H "Authorization: Bearer $HOSTINGER_API_TOKEN"

Python SDK:

from hostinger_api import Hostinger

client = Hostinger(api_token="YOUR_API_TOKEN")

# List contacts
contacts = client.reach.contacts.list(page=1)
for contact in contacts:
    print(f"{contact.name} <{contact.email}>")

TypeScript SDK:

import { Hostinger } from "hostinger-api-sdk";

const client = new Hostinger({ apiToken: "YOUR_API_TOKEN" });

const contacts = await client.reach.contacts.list({ page: 1 });
for (const contact of contacts) {
  console.log(`${contact.name} <${contact.email}>`);
}

PHP SDK:

use Hostinger\Api\HostingerApi;

$client = new HostingerApi('YOUR_API_TOKEN');

$contacts = $client->reach->contacts->list(['page' => 1]);
foreach ($contacts as $contact) {
    echo "{$contact->name} <{$contact->email}>\n";
}
Work with Segments
# List all segments
curl -X GET "https://developers.hostinger.com/api/reach/v1/segmentation/segments" \
  -H "Authorization: Bearer $HOSTINGER_API_TOKEN"

# Create a segment (e.g., engaged subscribers who opened emails)
curl -X POST "https://developers.hostinger.com/api/reach/v1/segmentation/segments" \
  -H "Authorization: Bearer $HOSTINGER_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Engaged Subscribers",
    "logic": "and",
    "conditions": [
      {
        "field": "subscription_status",
        "operator": "equals",
        "value": "active"
      },
      {
        "field": "email_engagement",
        "operator": "opened"
      }
    ]
  }'

# Get segment details
curl -X GET "https://developers.hostinger.com/api/reach/v1/segmentation/segments/{segmentUuid}" \
  -H "Authorization: Bearer $HOSTINGER_API_TOKEN"

# List contacts in a segment (paginated)
curl -X GET "https://developers.hostinger.com/api/reach/v1/segmentation/segments/{segmentUuid}/contacts?page=1&per_page=50" \
  -H "Authorization: Bearer $HOSTINGER_API_TOKEN"
Manage Profiles
# List all sender profiles
curl -X GET "https://developers.hostinger.com/api/reach/v1/profiles" \
  -H "Authorization: Bearer $HOSTINGER_API_TOKEN"

API Reference

Contacts
Method Endpoint Description
GET /api/reach/v1/contacts List contacts (paginated, filterable)
POST /api/reach/v1/contacts Create a contact (direct)
POST /api/reach/v1/profiles/{profileUuid}/contacts Create a contact scoped to a sender profile
GET /api/reach/v1/contacts/groups List contact groups
DELETE /api/reach/v1/contacts/{uuid} Delete a contact
Segments
Method Endpoint Description
GET /api/reach/v1/segmentation/segments List all segments
POST /api/reach/v1/segmentation/segments Create a new segment
GET /api/reach/v1/segmentation/segments/{segmentUuid} Get segment details
GET /api/reach/v1/segmentation/segments/{segmentUuid}/contacts List segment contacts
Profiles
Method Endpoint Description
GET /api/reach/v1/profiles List sender profiles
Contact Query Parameters
Parameter Description
page Page number
group_uuid Filter by group UUID
subscription_status Filter by subscription status
Segment Condition Operators
Operator Description
equals / not_equals Exact match
contains / not_contains Partial match
gte / lte Greater/less than or equal
exists Field has a value
within_last_days / not_within_last_days Date range
older_than_days Older than N days
opened / not_opened Email open engagement
clicked / not_clicked Email click engagement
bounced / not_bounced Bounce status
delivered / not_delivered Delivery status
unsubscribed / not_unsubscribed Unsubscribe status

Best Practices

Contact Management
  • Use the direct POST /contacts endpoint for general contact creation; use POST /profiles/{profileUuid}/contacts when the contact must be tied to a specific sender profile
  • Prefer segments over contact groups for organizing contacts — groups are legacy
  • Enable double opt-in for compliance with email marketing regulations (GDPR, CAN-SPAM)
  • Clean your contact list regularly by removing bounced and unsubscribed contacts
Segmentation
  • Use and logic for narrow, precise targeting
  • Use or logic for broader audience reach
  • Combine engagement operators (opened, clicked) with time-based operators for re-engagement campaigns
  • Create segments before campaigns to preview audience size
Profiles
  • Verify sender profiles to improve deliverability
  • Use consistent sender identity across campaigns

Troubleshooting

Contact Not Receiving Emails
  • Check subscription status — contact may be unsubscribed or pending
  • If double opt-in is enabled, contact must confirm their email first
  • Verify the contact's email address is valid and not bouncing
Segment Returns No Contacts
  • Verify conditions and operators are correct
  • Check that logic field (and/or) matches your intent
  • Ensure contacts exist that match all/any conditions
422 Validation Error on Contact Creation
  • Missing required fields (email is required)
  • Invalid email format
  • Duplicate email address in the system

References

1---
2name: reach
3description: Hostinger Reach (Email Marketing) API for contact management, segmentation, contact groups, and profile management. Use when creating or listing contacts, managing contact segments or groups, filtering contacts by subscription status, or working with email marketing profiles.
4last_updated: "2026-06-12"
5doc_source: https://developers.hostinger.com
6---
7 
8# Hostinger Reach (Email Marketing)
9 
10The Reach API provides email marketing capabilities — managing contacts, creating segments for targeted campaigns, and working with sender profiles.
11 
12## Table of Contents
13 
14- [Core Concepts](#core-concepts)
15- [Common Patterns](#common-patterns)
16- [API Reference](#api-reference)
17- [Best Practices](#best-practices)
18- [Troubleshooting](#troubleshooting)
19- [References](#references)
20 
21## Core Concepts
22 
23### Contacts
24 
25Contacts are email recipients in your marketing system. Each contact has basic information (name, email, surname) and a subscription status. If double opt-in is enabled, new contacts start with a pending status and receive a confirmation email.
26 
27### Segments
28 
29Segments group contacts based on specific criteria (email, name, subscription status, engagement metrics, etc.). Segments support complex filtering with operators like `equals`, `contains`, `gte`, `lte`, `opened`, `clicked`, etc.
30 
31### Profiles
32 
33Sender profiles represent the email identity used to send campaigns. Each profile has basic information and is associated with your account.
34 
35### Contact Groups
36 
37Groups are a way to organize contacts (deprecated in favor of segments).
38 
39### Subscription Status
40 
41Contacts can have different subscription statuses that determine whether they receive emails. Status can be used as a filter when listing contacts.
42 
43## Common Patterns
44 
45### Create and Manage Contacts
46 
47```bash
48# Create a new contact (direct)
49curl -X POST "https://developers.hostinger.com/api/reach/v1/contacts" \
50 -H "Authorization: Bearer $HOSTINGER_API_TOKEN" \
51 -H "Content-Type: application/json" \
52 -d '{
53 "email": "[email protected]",
54 "name": "John",
55 "surname": "Doe",
56 "phone": "+15551234567",
57 "note": "Met at conference"
58 }'
59 
60# Create a new contact (scoped to a specific sender profile)
61curl -X POST "https://developers.hostinger.com/api/reach/v1/profiles/{profileUuid}/contacts" \
62 -H "Authorization: Bearer $HOSTINGER_API_TOKEN" \
63 -H "Content-Type: application/json" \
64 -d '{
65 "email": "[email protected]",
66 "name": "John",
67 "surname": "Doe"
68 }'
69 
70# List contacts (paginated)
71curl -X GET "https://developers.hostinger.com/api/reach/v1/contacts?page=1" \
72 -H "Authorization: Bearer $HOSTINGER_API_TOKEN"
73 
74# Filter contacts by subscription status
75curl -X GET "https://developers.hostinger.com/api/reach/v1/contacts?subscription_status=active" \
76 -H "Authorization: Bearer $HOSTINGER_API_TOKEN"
77 
78# List contact groups
79curl -X GET "https://developers.hostinger.com/api/reach/v1/contacts/groups" \
80 -H "Authorization: Bearer $HOSTINGER_API_TOKEN"
81 
82# Delete a contact
83curl -X DELETE "https://developers.hostinger.com/api/reach/v1/contacts/{uuid}" \
84 -H "Authorization: Bearer $HOSTINGER_API_TOKEN"
85```
86 
87**Python SDK:**
88 
89```python
90from hostinger_api import Hostinger
91 
92client = Hostinger(api_token="YOUR_API_TOKEN")
93 
94# List contacts
95contacts = client.reach.contacts.list(page=1)
96for contact in contacts:
97 print(f"{contact.name} <{contact.email}>")
98```
99 
100**TypeScript SDK:**
101 
102```typescript
103import { Hostinger } from "hostinger-api-sdk";
104 
105const client = new Hostinger({ apiToken: "YOUR_API_TOKEN" });
106 
107const contacts = await client.reach.contacts.list({ page: 1 });
108for (const contact of contacts) {
109 console.log(`${contact.name} <${contact.email}>`);
110}
111```
112 
113**PHP SDK:**
114 
115```php
116use Hostinger\Api\HostingerApi;
117 
118$client = new HostingerApi('YOUR_API_TOKEN');
119 
120$contacts = $client->reach->contacts->list(['page' => 1]);
121foreach ($contacts as $contact) {
122 echo "{$contact->name} <{$contact->email}>\n";
123}
124```
125 
126### Work with Segments
127 
128```bash
129# List all segments
130curl -X GET "https://developers.hostinger.com/api/reach/v1/segmentation/segments" \
131 -H "Authorization: Bearer $HOSTINGER_API_TOKEN"
132 
133# Create a segment (e.g., engaged subscribers who opened emails)
134curl -X POST "https://developers.hostinger.com/api/reach/v1/segmentation/segments" \
135 -H "Authorization: Bearer $HOSTINGER_API_TOKEN" \
136 -H "Content-Type: application/json" \
137 -d '{
138 "name": "Engaged Subscribers",
139 "logic": "and",
140 "conditions": [
141 {
142 "field": "subscription_status",
143 "operator": "equals",
144 "value": "active"
145 },
146 {
147 "field": "email_engagement",
148 "operator": "opened"
149 }
150 ]
151 }'
152 
153# Get segment details
154curl -X GET "https://developers.hostinger.com/api/reach/v1/segmentation/segments/{segmentUuid}" \
155 -H "Authorization: Bearer $HOSTINGER_API_TOKEN"
156 
157# List contacts in a segment (paginated)
158curl -X GET "https://developers.hostinger.com/api/reach/v1/segmentation/segments/{segmentUuid}/contacts?page=1&per_page=50" \
159 -H "Authorization: Bearer $HOSTINGER_API_TOKEN"
160```
161 
162### Manage Profiles
163 
164```bash
165# List all sender profiles
166curl -X GET "https://developers.hostinger.com/api/reach/v1/profiles" \
167 -H "Authorization: Bearer $HOSTINGER_API_TOKEN"
168```
169 
170## API Reference
171 
172### Contacts
173 
174| Method | Endpoint | Description |
175|--------|----------|-------------|
176| `GET` | `/api/reach/v1/contacts` | List contacts (paginated, filterable) |
177| `POST` | `/api/reach/v1/contacts` | Create a contact (direct) |
178| `POST` | `/api/reach/v1/profiles/{profileUuid}/contacts` | Create a contact scoped to a sender profile |
179| `GET` | `/api/reach/v1/contacts/groups` | List contact groups |
180| `DELETE` | `/api/reach/v1/contacts/{uuid}` | Delete a contact |
181 
182### Segments
183 
184| Method | Endpoint | Description |
185|--------|----------|-------------|
186| `GET` | `/api/reach/v1/segmentation/segments` | List all segments |
187| `POST` | `/api/reach/v1/segmentation/segments` | Create a new segment |
188| `GET` | `/api/reach/v1/segmentation/segments/{segmentUuid}` | Get segment details |
189| `GET` | `/api/reach/v1/segmentation/segments/{segmentUuid}/contacts` | List segment contacts |
190 
191### Profiles
192 
193| Method | Endpoint | Description |
194|--------|----------|-------------|
195| `GET` | `/api/reach/v1/profiles` | List sender profiles |
196 
197### Contact Query Parameters
198 
199| Parameter | Description |
200|-----------|-------------|
201| `page` | Page number |
202| `group_uuid` | Filter by group UUID |
203| `subscription_status` | Filter by subscription status |
204 
205### Segment Condition Operators
206 
207| Operator | Description |
208|----------|-------------|
209| `equals` / `not_equals` | Exact match |
210| `contains` / `not_contains` | Partial match |
211| `gte` / `lte` | Greater/less than or equal |
212| `exists` | Field has a value |
213| `within_last_days` / `not_within_last_days` | Date range |
214| `older_than_days` | Older than N days |
215| `opened` / `not_opened` | Email open engagement |
216| `clicked` / `not_clicked` | Email click engagement |
217| `bounced` / `not_bounced` | Bounce status |
218| `delivered` / `not_delivered` | Delivery status |
219| `unsubscribed` / `not_unsubscribed` | Unsubscribe status |
220 
221## Best Practices
222 
223### Contact Management
224- Use the direct `POST /contacts` endpoint for general contact creation; use `POST /profiles/{profileUuid}/contacts` when the contact must be tied to a specific sender profile
225- Prefer **segments** over **contact groups** for organizing contacts — groups are legacy
226- Enable double opt-in for compliance with email marketing regulations (GDPR, CAN-SPAM)
227- Clean your contact list regularly by removing bounced and unsubscribed contacts
228 
229### Segmentation
230- Use `and` logic for narrow, precise targeting
231- Use `or` logic for broader audience reach
232- Combine engagement operators (`opened`, `clicked`) with time-based operators for re-engagement campaigns
233- Create segments before campaigns to preview audience size
234 
235### Profiles
236- Verify sender profiles to improve deliverability
237- Use consistent sender identity across campaigns
238 
239## Troubleshooting
240 
241### Contact Not Receiving Emails
242- Check subscription status — contact may be unsubscribed or pending
243- If double opt-in is enabled, contact must confirm their email first
244- Verify the contact's email address is valid and not bouncing
245 
246### Segment Returns No Contacts
247- Verify conditions and operators are correct
248- Check that `logic` field (`and`/`or`) matches your intent
249- Ensure contacts exist that match all/any conditions
250 
251### 422 Validation Error on Contact Creation
252- Missing required fields (email is required)
253- Invalid email format
254- Duplicate email address in the system
255 
256## References
257 
258- [Hostinger API Documentation](https://developers.hostinger.com)
259- [Hostinger API Changelog](https://github.com/hostinger/api/blob/main/CHANGELOG.md)
260- [Python SDK](https://github.com/hostinger/api-python-sdk)
261- [TypeScript SDK](https://github.com/hostinger/api-typescript-sdk)
262- [PHP SDK](https://github.com/hostinger/api-php-sdk)
263- [CLI Tool](https://github.com/hostinger/api-cli)
264 
View all files on GitHub →

Details

License
MIT
Stars on the repo
★ 23
Checked
Source
hostinger/hostinger-agent-skills ↗
Creator
hostinger · 1 listing
View creator

Similar skills

See all →
SkillTell us about your business and who you sell toA Free Giveaway That Grows Your Email Listcoreyhaines31/marketingskills · by coreyhaines31Tell us about your business and who you sell to, and get back a ready-to-launch free offer that turns website visitors into email signups and future customers.★ 51.1k GitHub starsSkillSays 'newsletter', 'email newsletter', 'weekly digest'Newsletter: Writing email newsletter edition...cwinvestments/memstack · by cwinvestmentsUse this skill when the user says 'newsletter', 'email newsletter', 'weekly digest', 'subscriber growth', 'open rates', or needs subject lines, content structure, sponsorship placement, and growth tactics for email newsletters. Do NOT use for lead magnets or content pipelines.★ 423 GitHub starsSkillWrite a signal-based cold outreach email that earns a replySignal-Based Cold Email (2026 benchmarks)kami-community/kami · by kami-communityWrite a signal-based cold outreach email that earns a reply. Use when drafting outbound/SDR email to a prospect with a known recent signal (funding, hiring, exec hire, launch, community post).★ 64 GitHub starsMCPExpert email marketing strategist for CRM-driven campaignsmsitarzewski/agency-agents · by msitarzewskiExpert email marketing strategist for CRM-driven campaigns, lifecycle automation, segmentation architecture, and deliverability. Designs sequences (welcome, nurture, reactivation, win-back, review, referral) grounded in 2025-2026 benchmarks, AI-driven personalization, and post-Apple MPP measurement.★ 154k GitHub starsSkillWrite B2B cold emails and follow-up sequences that getCold Email Writingcoreyhaines31/marketingskills · by coreyhaines31Write B2B cold emails and follow-up sequences that get replies. Use when the user wants to write cold outreach emails, prospecting emails, cold email campaigns, sales development emails, or SDR emails. Also use when the user mentions "cold outreach," "prospecting email," "outbound email," "email to leads," "reach out to prospects," "sales email," "follow-up email sequence," "nobody's replying to my emails," or "how do I write a cold email." Covers subject lines, opening lines, body copy, CTAs, personalization, and multi-touch follow-up sequences. For warm/lifecycle email sequences, see emails. For sales collateral beyond emails, see sales-enablement.★ 51.1k GitHub starsSkillTell us about your business and who just signed upEmail Sequence Designcoreyhaines31/marketingskills · by coreyhaines31Tell us about your business and who just signed up, and get back a ready-to-send series of emails that welcomes them and turns them into buyers.★ 51.1k GitHub stars