Build against payloads tied to canonical context.
Copy request snippets, inspect response shape, and prepare approval-gated webhook delivery without losing the story URL and source posture behind each event.
Samples
Lookup / feed / webhook
Payload
Event object
Handler
Dedupe by event_id
Handoff
canonical_url
Request examples.
Example
Story event lookup
curl -H "X-API-Key: $ZETTAWIRE_API_KEY" \
https://api.zettawire.com/api/v1/stories/signal-18431- Returns schema_version
- Includes canonical_url
- Includes archive_tier for paid packages
Example
Category feed
curl -H "X-API-Key: $ZETTAWIRE_API_KEY" \
"https://api.zettawire.com/api/v1/stories?category=security&limit=25"- Use category filters for prototype feeds
- Paid keys unlock higher rate windows
- Responses stay event-first
Example
Webhook handler
app.post("/zettawire/webhook", verifySignature, (req, res) => {
const signal = req.body.data;
queueInternalAlert(signal.event_id, signal.canonical_url);
res.sendStatus(204);
});- Webhook delivery requires package entitlement and written approval evidence
- Handlers should dedupe by event_id
- Canonical URLs power analyst handoff
Response payload shape.
GET /api/v1/stories/{story_id}
Event payload
A safe preview of the object shape developers receive from account-backed Signals API access.
{
"schema_version": "2026-04-22",
"event_id": "evt_20260422_red_sea_18431",
"story_id": "signal-18431",
"headline": "Port disruption near Suez corridor raises shipping risk",
"category": "security",
"score": 8.4,
"source_confidence": "multi_source",
"confirmation_status": "developing",
"canonical_url": "https://zettawire.com/stories/signal-18431",
"related_briefing_url": "https://zettawire.com/briefing/red-sea-shipping-risk",
"geo": {
"country": "Egypt",
"region": "Red Sea",
"lat": 30.04,
"lng": 32.56
},
"affected_entities": [
{
"name": "Suez Canal",
"type": "infrastructure",
"confidence": 0.86
},
{
"name": "Container shipping",
"type": "sector",
"confidence": 0.82
}
],
"key_facts": [
"Shipping advisories point to elevated risk near a major chokepoint.",
"The signal is linked to recent maritime security and regional escalation updates."
],
"archive_tier": "signals_growth",
"delivery_state": "api",
"published_at": "2026-04-22T12:20:00Z"
}Versioned
schema_version 2026-04-22 keeps clients explicit.
Canonical
Every event points back to a first-party ZettaWire URL.
Commercial
archive_tier and delivery_state separate evaluation from paid access.
Evidence-gated webhook delivery.
Webhook sample payload
Delivery envelope
Handlers should dedupe by event_id and retain canonical_url for analyst handoff.
{
"schema_version": "2026-04-22",
"event": "signal.published",
"delivery_id": "del_01HW...",
"data": {
"event_id": "evt_20260422_red_sea_18431",
"canonical_url": "https://zettawire.com/stories/signal-18431",
"category": "security",
"score": 8.4
}
}Beta access
Request Signals API beta access with source attribution.
We use this form to understand developer demand, integration use cases, and which public pages produce qualified API leads.
Attribution
Submissions are stored through newsletter attribution today, so the growth dashboard can group leads by page, campaign, and source while we keep API-key issuance entitlement-gated.