/ Use case

Third-party API Monitoring

When their API breaks, you find out first

Third-party API Monitoring

Your app calls out to a payment processor, an auth provider, a shipping rate service, a mail sender. When one of them breaks, your app breaks with it, and you usually hear about it from a customer. Assert watches those endpoints on the same schedule as your own.

The Problem

Their outage becomes yours:

  • Payments: Stripe has an incident and your checkout stops taking money
  • Auth: Auth0 goes down and nobody can log in
  • Shipping: the FedEx API times out and you can't quote a rate
  • Stale data: the weather API stops updating and today's forecast is yesterday's

You can't fix any of it. You can know first, and say so before anyone asks.

How Assert Helps

Monitor Vendor Health Endpoints

Most services have status endpoints:

Monitor: Stripe Health
URL: https://status.stripe.com/api/status
Assertions:
  ✓ $.status == "operational"
  ✓ Response time < 2000ms

Monitor Your Integration Points

Check the specific endpoints you use:

Monitor: Stripe API - Payment Methods
URL: POST https://api.stripe.com/v1/payment_methods
Headers: Authorization: Bearer sk_test_xxx
Body: type=card
Assertions:
  ✓ Status code == 200 or 400
  ✓ $.error does not exist
  ✓ Response time < 3000ms

Monitor from User Regions

Third-party performance varies by location:

Monitors from:
  ✓ US East (primary users)
  ✓ Europe (GDPR region)
  ✓ Asia Pacific (global users)

Assert runs every check from six regions and compares them before it alerts, so a vendor that is only slow in Frankfurt shows up as exactly that.

Critical Third-Party APIs to Monitor

Authentication & Identity

Service What to Monitor
Auth0 /authorize, /oauth/token
Okta /api/v1/sessions
Firebase Auth identitytoolkit.googleapis.com
Clerk /v1/me

Payments

Service What to Monitor
Stripe /v1/payment_intents, /v1/customers
PayPal /v2/checkout/orders
Square /v2/payments
Braintree /merchants/{id}/client_token

Communication

Service What to Monitor
Twilio /2010-04-01/Accounts/{sid}
SendGrid /v3/mail/send
Mailgun /v3/{domain}/messages
Postmark /email

Cloud Services

Service What to Monitor
AWS S3 s3.{region}.amazonaws.com
Cloudinary api.cloudinary.com/v1_1/{cloud}/resources
Algolia {app-id}.algolia.net/1/indexes
Mapbox api.mapbox.com/geocoding

Data & Analytics

Service What to Monitor
OpenAI api.openai.com/v1/models
Weather APIs api.openweathermap.org
Exchange rates api.exchangerate-api.com
Google Maps maps.googleapis.com

Real-World Example

The Scenario

A SaaS app authenticates through Auth0. Auth0's latency spikes, logins crawl, users complain, and the ops team reads its own traces for an hour before anyone thinks to blame the vendor.

The Assert Solution

Monitor 1: Auth0 Token Endpoint

URL: POST https://your-tenant.auth0.com/oauth/token
Headers:
  Content-Type: application/x-www-form-urlencoded
Body:
  grant_type: client_credentials
  client_id: xxx
  client_secret: xxx
  audience: https://api.example.com
Assertions:
  ✓ Status code == 200
  ✓ $.access_token exists
  ✓ Response time < 2000ms
Interval: 1 minute
Regions: US East, Europe

Monitor 2: Auth0 Status Page

URL: GET https://status.auth0.com/api/v2/status.json
Assertions:
  ✓ $.status.indicator == "none"
Interval: 5 minutes

The Outcome

The token monitor caught the latency five minutes before the first complaint. The team switched to cached tokens, put a banner on the login page, and the support queue stayed empty.

Monitoring Strategies

Direct API Monitoring

Monitor the actual endpoints you use:

Pros:
  ✓ Tests your actual integration
  ✓ Uses your credentials
  ✓ Catches integration issues

Cons:
  ✗ May incur API costs
  ✗ Rate limits apply
  ✗ Credentials in monitoring

Status Page Monitoring

Monitor vendor status endpoints:

Pros:
  ✓ No API costs
  ✓ No rate limits
  ✓ No credentials needed

Cons:
  ✗ May lag behind actual issues
  ✗ Doesn't test your integration
  ✗ Not all vendors have them

Do Both

A direct check tells you your integration still works. A status page tells you it isn't only you. Run both against anything that would stop your product.

Critical vendors: Direct API + Status page
Other vendors: Status page only

Assertions for Third-Party APIs

Assert reads the status, the latency, any response header and any JSON path in the body, which covers most of what a vendor will tell you about itself.

Availability

✓ Status code == 200
✓ Response time < 5000ms
✓ $.status != "error"

Data Quality

✓ $.data exists
✓ $.data is array
✓ $.data.length > 0

Rate Limits

Monitor rate limit headers:

✓ X-RateLimit-Remaining > 100
✓ X-RateLimit-Reset within 1 hour

Version Compatibility

✓ $.api_version == "2024-01"
✓ $.deprecated != true

Best Practices

Use Test/Sandbox Credentials

When possible, use sandbox environments:

Production: api.stripe.com (with live key)
Sandbox: api.stripe.com (with test key) ← Monitor this

Set Realistic Thresholds

Third-party APIs can be slower than yours:

Service Type Response Time Threshold
Auth < 2000ms
Payments < 3000ms
Email < 5000ms
AI/ML < 10000ms

Create Runbooks

Document what to do when each vendor fails:

## Auth0 Down Runbook
1. Check status.auth0.com
2. Enable cached token validation
3. Notify users via banner
4. Open Auth0 support ticket

Monitor Dependencies of Dependencies

Your vendor relies on others too:

Your App → Auth0 → AWS
Your App → Stripe → Payment Networks

If Auth0's outage is really an AWS outage, the status page you're watching is the wrong one.

Alert Configuration

Critical (Immediate)

Service: Payment provider
Condition: 5xx errors or timeout
Action: Page on-call + Slack
Reason: Revenue impacting

High (Fast Response)

Service: Authentication
Condition: Response time > 3000ms
Action: Slack #engineering
Reason: User experience impact

Medium (Business Hours)

Service: Analytics provider
Condition: Status degraded
Action: Email
Reason: Non-critical, review later

Getting Started

  1. List every external API your app calls. Grep the codebase if the list isn't written down.
  2. Sort by blast radius. Auth and payments first.
  3. Find each vendor's status endpoint in their docs.
  4. Build the monitors: direct check, status page, or both.
  5. Route the alerts by how much the outage costs you.

Related Use Cases

Write your first assertion.

Five monitors, thirty-second checks, no card, no call.