Jump to content

Pulsed Media Public Data Feeds

From Pulsed Media Wiki


Pulsed Media publishes a set of live, public data feeds: machine-readable JSON files anyone can fetch without a key or an account. They cover the current product catalog, pricing, dedicated-server hardware specs, published customer-satisfaction scores, and live server performance per plan. Every feed lives under https://pulsedmedia.com/data/v1/, regenerates every 15 minutes (server performance hourly), and is served as a static file. Each JSON feed carries a generated_at timestamp (ISO 8601, UTC) so you can check freshness.

Start at the manifest — https://pulsedmedia.com/data/v1/index.json — which lists every endpoint that is currently live.

At a glance

Feed Format Contents
index.json JSON Manifest of every live endpoint. Start here.
products.json JSON Full product catalog: id, name, description, price per billing cycle, stock, availability.
products-summary.json JSON Catalog trimmed to id, name, monthly price, stock.
md-pricing.txt JSON MiniDedi dedicated servers: full CPU/RAM/storage/bandwidth specs, pricing, and value ratios.
csat.json JSON Customer satisfaction score (0–10) over 30-day, 120-day, and since-inception windows.
fleet-performance.json JSON Live server performance per plan: users and drives per server, disk response time, disk waits, 60-day peaks. Average and median, hourly.
eternal-campaign.json JSON Eternal Väinämöinen campaign: per-tier available/sold counts and totals.
eternal-drops.json JSON Live per-tier drop odds for the campaign release engine.
eternal-drops-audit.jsonl JSONL One line per slot release.
eternal-milestones.json JSON Campaign milestone tracks and rewards.
eternal-orders.json / .jsonl JSON / JSONL Log of claimed campaign slots (pseudonymized: first name + country).

The manifest: index.json

The manifest is the entry point. It lists every published endpoint with its size, last-modified time, and a short description, so you can discover the full live set from one request.

{
  "schema_version": 1,
  "generated_at": "2026-07-18T08:00:01+00:00",
  "description": "Pulsed Media public data endpoints. Public-by-design. Updates every 15 min (eternal-orders every 1 min).",
  "endpoints": [
    {
      "url": "https://pulsedmedia.com/data/v1/products.json",
      "file": "products.json",
      "size": 66272,
      "mtime": "2026-07-18T08:00:01+00:00",
      "description": "All visible WHMCS products with full schema"
    }
  ]
}

Product catalog: products.json

products.json lists every publicly visible Pulsed Media product with its price and stock. Prices are in EUR, keyed by billing cycle.

{
  "schema_version": 1,
  "generated_at": "2026-07-18T08:00:01+00:00",
  "currency": "EUR",
  "products": [
    {
      "id": 197,
      "name": "M1000 S",
      "description": "2 000 MiB RAM, 2TB Storage, 1Gbps Download/Upload, 30 000GiB monthly traffic",
      "type": "hostingaccount",
      "paytype": "recurring",
      "stock": 30,
      "stock_managed": true,
      "available": true,
      "is_free": false,
      "billing_cycles": { "monthly": 6.99, "annually": 79.69 }
    }
  ]
}

products-summary.json is the same catalog trimmed to the essentials:

{
  "schema_version": 1,
  "generated_at": "2026-07-18T08:00:01+00:00",
  "products": [
    { "id": 197, "name": "M1000 S", "monthly": 6.99, "stock": 30, "available": true }
  ]
}

MiniDedi hardware and pricing: md-pricing.txt

Despite the .txt extension (kept for existing consumers), this feed is JSON. It describes every MiniDedi dedicated server, keyed by product id, with full hardware specs, current pricing, and computed value ratios (performance and storage per euro). A distilled companion, md-pricing-sh.txt, carries the same data in a more compact form.

{
  "servers": {
    "291": {
      "name": "MD1",
      "cpu": { "make": "Intel", "model": "i5-7500t", "cores": 4, "threads": 4,
               "clockBase": 2.7, "clockBoost": 3.3,
               "performanceSingle": 1245, "performanceMulti": 3737 },
      "ram": 16, "ramType": "DDR4",
      "storage": { "nvmeQty": 1, "nvmeCapacity": 250, "hddQty": 0, "ssdQty": 0 },
      "bandwidth": 1000, "unmetered": 1,
      "stock": "0",
      "model": "MD1: i5-7500t/16G/250GB NVMe",
      "priceMonthly": "48.94", "priceMonthlySetup": "9.99",
      "valueRatioEuroPer": { "eurosPerRamGB": 3.06, "eurosPerStorageGB": 0.2 }
    }
  }
}

Customer satisfaction: csat.json

The satisfaction feed publishes the average CSAT score on a 0–10 scale across three windows, each with its sample size.

{
  "scale": 10,
  "generated_at": "2026-07-18T03:15:02+00:00",
  "windows": {
    "d30":            { "avg": "9.4", "n": 50,  "days": 30,  "label": "past 30 days" },
    "d120":           { "avg": "9.2", "n": 165, "days": 120, "label": "past four months" },
    "since_inception":{ "avg": "9.1", "n": 188, "since": "2026-01-27" }
  }
}

Server performance: fleet-performance.json

fleet-performance.json shows how Pulsed Media's servers are actually running, plan by plan: how many accounts share a server, how quickly the disks answer, how much of the week the server spent waiting on its disks, and each server's busiest reading of the last 60 days. It refreshes hourly. The same figures appear on each plan page and side by side on the live server performance comparison page, apart from the 60-day peaks: readers took those for the most a server can do, so only the feed carries them.

These are live readings of real use, not what the hardware can do. A 60-day peak of 300 MB/s means the busiest reading those servers recorded in the last 60 days reached that rate; it is not their ceiling. A quiet server shows a low peak because its users did not ask for more. None of these figures is a guarantee or an advertised limit, and the feed's own note field says so.

Each plan, and fleet for all reporting servers together, carries two values per metric: avg_, the average across that plan's servers, and median_, the server in the middle. For a typical server, read the median: one unusually busy or idle machine moves the average but not the median.

Metric (after avg_ / median_) Unit Meaning
users_per_node accounts Accounts on one server. Every account type counts.
node_size_tb TiB Total disk space of one server. The unit is TiB, despite the field name.
drives_per_node drives Physical drives that hold one server's storage. For servers that run as virtual machines this counts the drives in the array behind the machine, not the virtual disks it sees. A drive that has dropped out of its array is not counted until it is back.
service_time_ms ms How long a disk read takes to complete, averaged over the past week.
psi_io_full % of time Share of the week in which every active process on the server was waiting for the disks (Linux pressure stall information, "full"). Averaged over the servers that report a non-zero value; null when fewer than three do.
disk_util_pct % of time Share of the week the disks had work to do. Time spent busy, not capacity used.
throughput_read_mbs, throughput_write_mbs MB/s Disk read and write rate in each server's busiest reading of the last 60 days. Each reading is a two-minute average, and every server is read many times a day.
iops_read, iops_write operations/s Disk operations per second in each server's busiest reading of the last 60 days.

Plans are keyed by name: M1000, M1000-SSD, M10G (the servers Storage Boxes also run on), M10G-SSD, Dragon-R, V1000 and V10G. A plan with no recently reporting servers appears with "status": "no_recent_data" and null values. The feed publishes no server counts, totals or capacity figures.

Trimmed to one plan, without the long note text:

{
  "schema_version": 2,
  "generated_at": "2026-10-04T05:37:01+00:00",
  "tiers": {
    "M10G": {
      "status": "reporting",
      "avg_node_size_tb": 58.69, "avg_users_per_node": 25.4,
      "avg_disk_util_pct": 10.1, "avg_service_time_ms": 15.49, "avg_psi_io_full": 11.32,
      "avg_iops_read": 3492, "avg_iops_write": 1960,
      "avg_throughput_read_mbs": 385, "avg_throughput_write_mbs": 144,
      "median_node_size_tb": 48.11, "median_users_per_node": 27,
      "median_disk_util_pct": 10.7, "median_service_time_ms": 15.31, "median_psi_io_full": 10.81,
      "median_iops_read": 2494, "median_iops_write": 1179,
      "median_throughput_read_mbs": 229, "median_throughput_write_mbs": 119
    }
  }
}

Campaign feeds (Eternal Väinämöinen)

During the Eternal Väinämöinen promotion, Pulsed Media publishes live campaign data under the same path. These feeds are tied to the active campaign and may retire when it ends; the manifest always lists whatever is currently live.

eternal-campaign.json — per-tier available/sold counts and campaign totals:

{
  "schema_version": 1, "generated_at": "2026-07-18T08:00:01+00:00",
  "campaign": "eternal-vainamoinen", "currency": "EUR",
  "month_target": 700, "campaign_target": 4900,
  "month_sold": 98, "campaign_sold": 444,
  "products": { "351": { "available": 13, "sold": 10, "sold_month": 2 } }
}

eternal-drops.json — live per-tier drop odds from the release engine:

{
  "schema_version": 1, "generated_at": "2026-07-18T08:10:02+00:00",
  "campaign_state": "active", "cron_healthy": true, "tick_interval_seconds": 300,
  "live_odds": [
    { "type": "355", "label": "Seedbox 8TB R5 10G", "open_now": 0,
      "drop_chance_per_tick": 0.00167, "state": "droppable" }
  ]
}

eternal-drops-audit.jsonl — one JSON object per line, one per slot release:

{"ts":"2026-06-01T08:47:38+00:00","type":"351","n":7,"src":"admin"}

eternal-milestones.json — milestone tracks with the next reward:

{
  "schema_version": 1, "generated_at": "2026-07-18T08:08:01+00:00",
  "campaign": "eternal-vainamoinen",
  "tracks": {
    "claimed": { "label": "Claimed", "value": 444,
      "next": { "at": 500, "reward": "A new SSD Seedbox tier opens with 15 slots ..." } }
  }
}

eternal-orders.json (and its line-per-record .jsonl form) — the log of claimed slots, pseudonymized to first name and country only:

{"ordinal":1,"ts":"2026-06-01T11:55:31+00:00","firstName":"Alex","country":"FI",
 "sku":"Eternal Väinämöinen - Seedbox 1TB R5 10G","term":"1mo","total":"1.99 EUR","referred":0}

Formats and freshness

  • JSON feeds are objects with a schema_version and a generated_at timestamp (ISO 8601, UTC).
  • .jsonl feeds are line-delimited JSON: one complete record per line.
  • Feeds refresh every 15 minutes (the order log every minute, server performance hourly); the public URL is edge-cached for a few minutes. For the freshest read, add a cache-busting query such as ?t=<unixtime> and check generated_at.

Terms of use

The feeds are public by design and free to use, provided as-is. They carry no availability guarantee — they are not covered by a service-level agreement, and their contents or structure may change without notice. The order log is pseudonymized and contains no personal data beyond a first name and a country.

See also