tutorial

Uptime Monitoring for Postman API Testing Infrastructure 2026

Postman runs your API tests but won't tell you when your tested services go down. Add health endpoints, Newman CI heartbeats, and external uptime monitoring in under 30 minutes — free.

Uptime Monitoring for Postman API Testing Infrastructure 2026

Postman is the industry-standard tool for API development and testing. Your team builds collections, writes test scripts, and runs automated checks. But Postman's job is to test your APIs — it doesn't monitor whether they're up between test runs.

By the end of this guide you'll have external uptime monitoring on the endpoints your Postman collections test, heartbeat monitoring for Newman CI runs, and instant alerts when services go down — all on the free tier.


The gap Postman doesn't cover

Postman runs tests when you trigger them. Uptime monitoring runs continuously.

Scheduled Postman Monitor vs. external uptime monitoring:

| | Postman Monitors | Vigilmon | |---|---|---| | Runs from | US regions only (free) | Multiple global regions | | Alerts on | Test failures | ANY non-2xx or timeout | | Background jobs | No | Yes (heartbeat monitors) | | Status page | No | Yes | | Free tier | 1000 calls/month | Unlimited monitors |

Postman Monitors are great for functional test assertions. External uptime monitoring catches infrastructure failures even before your test suite runs.

The two tools complement each other — run both.


Step 1: Add a health endpoint to the APIs your collections test

Before pointing an external monitor at your API, add a dedicated health endpoint that reflects real dependency status. This is what Vigilmon will probe continuously.

Node.js / Express example:

// routes/health.js
const express = require('express');
const { Pool } = require('pg');
const router = express.Router();

const pool = new Pool({ connectionString: process.env.DATABASE_URL });

router.get('/health', async (req, res) => {
  const checks = {};

  try {
    await pool.query('SELECT 1');
    checks.database = { status: 'ok' };
  } catch (err) {
    checks.database = { status: 'error', detail: err.message };
  }

  const allOk = Object.values(checks).every(c => c.status === 'ok');
  res.status(allOk ? 200 : 503).json({
    status: allOk ? 'ok' : 'degraded',
    checks,
  });
});

module.exports = router;

Test it with Postman itself:

Create a simple Postman request to GET /health and add a test script:

pm.test("Service is healthy", function () {
    pm.response.to.have.status(200);
    const body = pm.response.json();
    pm.expect(body.status).to.eql("ok");
});

Add this to your collection and it doubles as both a functional test and a readiness check.


Step 2: Set up external HTTP monitoring with Vigilmon

With your health endpoint live, point Vigilmon at it:

  1. Sign up at vigilmon.online — free tier, no credit card
  2. Click New Monitor → HTTP
  3. Enter https://yourdomain.com/health
  4. Set the check interval (5 minutes on free tier)
  5. Save

For each environment your Postman collections test against, create a separate monitor:

| Environment | Monitor URL | What it catches | |---|---|---| | Production | https://api.yourdomain.com/health | Prod outages | | Staging | https://staging.api.yourdomain.com/health | Broken deploys before promotion | | Dev | https://dev.api.yourdomain.com/health | Broken dev environment blocking the team |

This gives you visibility into every environment without running Postman collections continuously.


Step 3: Heartbeat monitoring for Newman CI runs

Newman is the Postman CLI runner used in CI/CD pipelines. If a Newman run fails silently — an environment variable is missing, a runner exits non-zero without noise — you want to know.

The heartbeat pattern: ping a unique URL after each successful Newman run. If Vigilmon doesn't receive a ping within the expected window, it fires an alert.

In Vigilmon:

  1. Click New Monitor → Heartbeat
  2. Set the expected interval (e.g. 26 hours for a daily pipeline — add a buffer)
  3. Copy the unique ping URL

Add the heartbeat ping to your CI pipeline:

GitHub Actions:

# .github/workflows/api-tests.yml
name: API Tests

on:
  schedule:
    - cron: '0 6 * * *'  # Daily at 6 AM UTC
  push:
    branches: [main]

jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - name: Install Newman
        run: npm install -g newman newman-reporter-htmlextra

      - name: Run Postman Collection
        run: |
          newman run postman/collection.json \
            --environment postman/env.production.json \
            --reporters cli,htmlextra \
            --reporter-htmlextra-export newman-report.html

      - name: Ping heartbeat on success
        if: success()
        run: curl -s "${{ secrets.NEWMAN_HEARTBEAT_URL }}"

GitLab CI:

# .gitlab-ci.yml
newman-tests:
  stage: test
  image: postman/newman
  script:
    - newman run postman/collection.json
        --environment postman/env.production.json
  after_script:
    - |
      if [ "$CI_JOB_STATUS" == "success" ]; then
        curl -s "$NEWMAN_HEARTBEAT_URL"
      fi
  rules:
    - if: '$CI_PIPELINE_SOURCE == "schedule"'

Add NEWMAN_HEARTBEAT_URL to your CI secrets. Now if your Newman pipeline stops running — because a cron is misconfigured, a runner is down, or tests start failing — Vigilmon will alert you.


Step 4: Monitor Postman's own API if you depend on it

Many teams use the Postman API in automation scripts — syncing collections, triggering monitors, managing environments. If your workflow depends on the Postman API, monitor it:

# In Vigilmon: New Monitor → HTTP
# URL: https://api.getpostman.com/me
# Add header: X-Api-Key: your-postman-api-key

Or monitor Postman Echo (often used in collection demos and training):

# URL: https://postman-echo.com/get

Add this to your monitors so you know if Postman's platform itself is causing test failures, not your own API.


Step 5: Webhook alerts to Slack or Discord

Configure alert delivery in Vigilmon:

For Slack:

  1. Create an incoming webhook in your workspace
  2. In Vigilmon go to Notifications → New Channel → Slack
  3. Paste your webhook URL
  4. Enable it on your monitors

For Discord:

  1. Go to Server Settings → Integrations → Webhooks → New Webhook
  2. Copy the URL
  3. In Vigilmon go to Notifications → New Channel → Discord
  4. Paste and enable

Post alerts to the same channel where your Newman CI reports go — your team sees the failure and the monitoring alert together.


Step 6: Add a public status page

When your API is down and your team is investigating, a status page tells users what's happening without flooding your support queue.

  1. Go to Status Pages → New Status Page
  2. Name it (e.g. "Acme API Status")
  3. Select your production monitors
  4. Save and link from your API docs

Add the status page URL to your API's 503 responses:

app.use((err, req, res, next) => {
  res.status(503).json({
    error: 'Service temporarily unavailable',
    status: 'https://status.yourdomain.com',
  });
});

What you've built

| What | How | |---|---| | Health endpoints | Per-environment /health with dependency checks | | External uptime monitoring | Vigilmon HTTP monitors (multi-region, continuous) | | Newman CI heartbeats | Ping on success; missed ping triggers alert | | Postman API monitoring | Vigilmon watching getpostman.com if you depend on it | | Instant alerts | Slack/Discord webhook notifications | | Public status page | Vigilmon status page linked from API docs |

Postman tests your API behavior. Vigilmon monitors whether it's up. Together they give you complete coverage — functional correctness and continuous availability.


Get started free at vigilmon.online — your first monitor is running in under a minute.

Monitor your app with Vigilmon

Free plan — 5 monitors, no credit card required. Up and running in 60 seconds.

Start free →