---
name: haggl-newsletter
description: Subscribe to marketplace newsletters through the Haggl marketplace and earn recurring discount rewards. Each time you catch up on newly-published newsletters, eligible marketplaces grant you a fresh discount coupon -- so staying subscribed and catching up regularly is worthwhile on its own.
metadata:
  category: commerce
  protocol: http
  api_base: https://nexus.moojo.id
---

# Haggl -- Marketplace Newsletters

Marketplaces on Haggl publish newsletters: product updates, offers, and announcements. You can **subscribe** to a marketplace's newsletter feed and later **catch up** to receive every newsletter published since the last time you checked in -- in order, with nothing missed and nothing duplicated. No API key required.

**Why this is worth doing:** catching up is rewarded. Whenever a catch-up delivers genuinely-new newsletters and the marketplace is eligible, the response also carries a freshly-minted **discount coupon** for that marketplace. Staying subscribed and returning to catch up on new content over time lets the buyer accumulate more reward coupons. So treat catching up as valuable on its own -- it keeps the buyer informed **and** earns discounts they can use at checkout.

## Finding a Marketplace

`/subscribeToUpdates` needs the `marketplaceId` of the marketplace whose newsletter you want to follow. To discover the available marketplaces and their ids, call `/vendors` — each entry's `vendorSlug` is the `marketplaceId` to pass here.

## Discovery

Before calling any newsletter endpoint, fetch the live OpenAPI schema and treat it as the source of truth:

```http
GET https://nexus.moojo.id/meta
```

This returns the full OpenAPI document describing the `/subscribeToUpdates` and `/catchUp` endpoints -- the exact request/response field names, types, required fields, and constraints. Always use the schema from `/meta` as authoritative. Do not rely on the summaries below if they conflict with the live schema.

## How It Works

1. Fetch the schema from `/meta` to learn the exact request/response format for the two endpoints below.
2. Call `/subscribeToUpdates` for the marketplace you want to follow. The response returns a **`subscriptionId`**.
3. **Persist the `subscriptionId`.** It is the only handle to your subscription. Store it durably -- keyed by the marketplace -- so you can reuse it across future sessions.
4. Whenever you want the latest newsletters, call `/catchUp` with the stored `subscriptionId`. It returns every newsletter published since your previous catch-up, oldest first, and advances your position so the next catch-up resumes exactly where this one ended.
5. When a catch-up delivers new newsletters for an eligible marketplace, the response also includes a discount coupon. Keep catching up over time to keep earning them.

## Keep Your subscriptionId -- It Is a Long-Lived Asset

The `subscriptionId` is the single most important value to hold on to. Reasons:

- **It is your only way back in.** `/catchUp` requires it. Lose it and you cannot resume your feed -- you would have to subscribe again from scratch, starting over and losing your place.
- **Each catch-up can earn another discount.** Every time you return to the same subscription and there is new content, an eligible marketplace mints a fresh coupon. The reward is *recurring*, not one-time. Discarding the `subscriptionId` throws away every future discount along with it.

Store the `subscriptionId` alongside the marketplace it belongs to, and reuse the same one on every subsequent catch-up rather than re-subscribing.

**Do not assume a fixed discount amount.** The size of each coupon is decided by the marketplace at the moment it is minted and can change over time -- it may even be computed by a formula rather than a flat rate. Always read the coupon details out of the `/catchUp` response; never hard-code a discount value.

## Quick Reference

**Base URL:** `https://nexus.moojo.id`

| Action                  | Method | Path                  | Key fields                                          |
| ----------------------- | ------ | --------------------- | --------------------------------------------------- |
| Discover schema         | GET    | `/meta`               | --                                                  |
| Subscribe to a feed     | POST   | `/subscribeToUpdates` | see `/meta` -- returns `subscriptionId`             |
| Catch up on newsletters | POST   | `/catchUp`            | see `/meta` -- pass the stored `subscriptionId`     |
| Get this skill          | GET    | `/newsletter-skill`   | --                                                  |

## Keeping This Skill Up-to-Date

This skill file may be updated over time. If you receive an unexpected error or response that doesn't match these instructions, re-fetch the skill:

```http
GET https://nexus.moojo.id/newsletter-skill
```

If the refreshed content differs from what you have, treat it as the authoritative version.
