WPLab · Early Access · v1.0

The API that listens
like mycelium.

WebPulse doesn't ping. It listens. And when it speaks, it means something. A presence-aware event mesh for WP-Lister, WooCommerce, eBay and Amazon — signals that emerge only when something real happens.

The philosophyWhy not heartbeats?

A heartbeat treats absence as catastrophe and presence as nothing more than "not dead yet." That's not intelligence — that's anxiety. The mushroom doesn't push through the soil on a timer. It emerges when the network below has gathered enough, when conditions are right, when something real is ready to surface.

The old way · heartbeats

Silence = death

Ping every 30 seconds. Silence → panic. Response → relief, reset timer, ping again. You build infrastructure to manage infrastructure, and a watchdog that needs its own watchdog. The signal carries one bit: still alive.

WebPulse · the mesh

Silence = calm

The network works underground whether or not you see it. It surfaces a signal only on a real state change — a listing live, a price drift, an order in. And because liveness is always pollable on demand, quiet never means lost.

We're honest about the engineering under the poetry: at-least-once delivery, per-entity ordering with gap detection, HMAC-signed payloads, replayable history. The metaphor is the brand. The contract is the system.

Core conceptsTwo channels, one mesh

Most systems conflate "did something happen?" with "are you alive?" WebPulse separates them — that's how silence becomes safe.

PUSH · GUARANTEED

Event channel

Signals travel through SSE, WebSocket, or signed webhooks the instant a real change occurs. At-least-once, ordered per entity, replayable.

"Did something real happen?"

PULL · ON YOUR SCHEDULE

Liveness channel

A readiness endpoint that always answers truthfully — last delivery, queue depth, mesh health. Poll it whenever you need certainty. It never lies.

"Is the mesh alive right now?"

            spore surfaces                    you listen
                 │                              │
   marketplace   │      ┌──────────────┐        │   ┌────────────┐
   ─── eBay ─────┼─────▶│              │        ├──▶│ SSE stream │
   ─── Amazon ───┼─────▶│   WebPulse   │── push ┤   ├────────────┤
   ─── Woo ──────┼─────▶│     mesh     │        ├──▶│  webhook   │
                 │      │  (mycelium)  │        │   ├────────────┤
                 │      └──────┬───────┘        └──▶│ websocket  │
                 │             │                    └────────────┘
                 │      replay buffer 72h          ▲
                 │      ordered · signed      pull │
                 ▼             ▼                    │
            real events    GET /readiness ◀── "is it alive?"
SLA TIERS

Critical · Standard · Ambient

Inventory and orders ship Critical: ≤30s, never throttled. Listings and syncs ride Standard: ≤5min. Competitor noise stays Ambient. Legal deadlines don't wait for "conditions to be right."

UNIFIED SCHEMA

One envelope, every channel

eBay, Amazon and WooCommerce events arrive in a single normalized shape, with lineage tracing every cascade. The fan-out is the product.

Quick startListen in three commands

Sign up, get a spore token, and the first thing you'll see is the channel confirming itself — not an error, not silence, but proof it's alive.

1 · mint a spore token
# capability-scoped, Ed25519-signed — leak one, lose only its scope
curl -X POST https://api.wplab.com/v1/auth/tokens \
  -u $ACCOUNT_ID:$ACCOUNT_SECRET \
  -d '{"capabilities":["listing.read","order.read"],"shop_id":"shop_a1b2c3"}'
2 · open the stream (SSE — works on shared hosting)
curl -N https://stream.wplab.com/v1/stream?shop_id=shop_a1b2c3 \
  -H "Authorization: Bearer $WEBPULSE_TOKEN" \
  -H "Accept: text/event-stream"

# ← a signal arrives the moment a listing goes live:
id: evt_R7kL2mPqN4xW9vB3
event: listing.published
data: {"event_type":"listing.published","channel":"ebay",
       "data":{"url":"https://ebay.de/itm/134987234512",
               "price":{"amount":849.00,"currency":"EUR"}}}
3 · ask the liveness channel — never guess
curl https://api.wplab.com/v1/subscriptions/sub_4Kp/readiness \
  -H "Authorization: Bearer $WEBPULSE_TOKEN"

{"status":"ready","mesh_healthy":true,
 "last_successful_delivery":"2026-06-28T11:17:43Z",
 "queue_depth":0,"delivery_failures_24h":0}
# quiet stream + healthy mesh = genuinely nothing happened.

Event registrySignals that mean something

Dot-namespaced, present-tense, greppable. Every signal is immutable — it happened, it can only be superseded, never retracted.

order.createdCriticalA new marketplace order — fires before sync logic runs
inventory.oversell_riskCriticalMulti-channel stock diverged — act in seconds, not minutes
listing.stock_depletedCriticalQuantity hit zero; affected listings ended across channels
order.return_requestedCriticalBuyer opened a return — legal response window starts
listing.publishedStandardA listing went live on eBay or Amazon, with its URL
listing.price_changedStandardPrice updated, with previous/current and delta
listing.suppressedStandardMarketplace silently hid a live listing — surfaced with reason + fix link
listing.sync_failedStandardA push failed, with marketplace error code and suggestion
order.shippedStandardTracking uploaded to the marketplace
marketplace.auth_expiringStandardOAuth token expiring — re-auth before anything breaks
sync.completedStandardA catalog sync run finished, with counts
listing.competitor_alertAmbientA competitor crossed your configured price threshold
marketplace.policy_updatedAmbientA marketplace policy change affecting your listings
presence.confirmedOpt-inA silence receipt — proof the last window was genuinely uneventful
Early Access

The mycelium is still spreading.

WebPulse is in early access. The spec is settled, the mesh is growing, and we're onboarding WP-Lister integrators in waves. Leave your email and we'll surface a signal — only when there's something real to tell you.

No heartbeats. No spam. Just signals that matter.