hostinger/hostinger-agent-skills

reach

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.

First seen Mar 26, 2026

Installation

$ npx skills add hostinger/hostinger-agent-skills --skill reach

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from hostinger/hostinger-agent-skills.

npx skills add hostinger/hostinger-agent-skills

Browse all from hostinger/hostinger-agent-skills

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Repository health

Stars 21
License LICENSE
Default branch main
Open issues 0
Status Active

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 9,009 B
  • docs SUMMARY.md 289 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 39 installs

SKILL.md

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)
  • [References](#references)

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
withinlastdays / notwithinlast_days Date range
olderthandays 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