Developer Docs

Everything you need to know. No fluff.

Webhook Inbox

Capture and inspect HTTP requests. Perfect for debugging webhooks from Stripe, GitHub, etc.

How it works

  1. Create an inbox in the dashboard
  2. Copy your unique URL: https://devtools-api.shawnunderwood.com/hooks/your-slug
  3. Send any HTTP request to it
  4. See the request details instantly

Example

curl -X POST https://devtools-api.shawnunderwood.com/hooks/your-slug \
  -H "Content-Type: application/json" \
  -d '{"event": "test", "data": {"foo": "bar"}}'

All methods work (GET, POST, PUT, etc). Headers, body, query params - all captured.

Cron Monitor

Know when your scheduled jobs stop running. Set an expected interval, ping us when it runs.

How it works

  1. Create a monitor with expected interval (e.g., every 60 minutes)
  2. Add a ping to your cron job: curl https://devtools-api.shawnunderwood.com/ping/your-slug
  3. If we don't get a ping in time, you get an email

Example crontab

# Run backup every hour, ping when done
0 * * * * /scripts/backup.sh && curl -s https://devtools-api.shawnunderwood.com/ping/backup-job

Grace period lets your job run a bit late without alerting. Status shows OK, Late, or Down.

Uptime Monitor

We ping your endpoints on a schedule. If they go down, you know immediately.

How it works

  1. Add your URL and expected status code (usually 200)
  2. Set check interval (minimum 30 min on free plan)
  3. We check it automatically and track response times
  4. Status changes? You get an email

What we check

  • Status code matches expected
  • Response time (timeout: 30 seconds)
  • SSL certificate validity

Log Streams

Send structured logs from anywhere. View and filter them here.

How it works

  1. Create a log stream
  2. POST JSON to your ingest URL
  3. View logs in the dashboard, filter by level

Request format

curl -X POST https://devtools-api.shawnunderwood.com/log/your-slug \
  -H "Content-Type: application/json" \
  -d '{
    "level": "info",
    "message": "User signed up",
    "data": {"userId": 123, "email": "[email protected]"}
  }'

Log levels

debug, info, warn, error, fatal

Feature Flags

Boolean feature toggles with a public API. Control features without redeploying.

How it works

  1. Create a project
  2. Add flags (e.g., dark_mode, new_checkout)
  3. Toggle them on/off in the dashboard
  4. Fetch from your app using the public endpoint

Fetch all flags

curl https://devtools-api.shawnunderwood.com/flags/your-project-slug

# Response:
{"dark_mode": true, "new_checkout": false, "beta_features": true}

Fetch single flag

curl https://devtools-api.shawnunderwood.com/flags/your-project-slug/dark_mode

# Response:
{"key": "dark_mode", "enabled": true}

No auth required for reading flags. Keep it simple.

Secret Vaults

Store secrets encrypted. Fetch them with an API key. Great for CI/CD pipelines.

How it works

  1. Create a vault - you'll get an API key (save it!)
  2. Add secrets (key-value pairs)
  3. Fetch secrets using the API key

Fetch all secrets

curl https://devtools-api.shawnunderwood.com/secrets/your-vault-slug \
  -H "X-Api-Key: dvt_your_api_key"

# Response:
{"DATABASE_URL": "postgres://...", "API_KEY": "sk_live_..."}

Fetch single secret

curl https://devtools-api.shawnunderwood.com/secrets/your-vault-slug/DATABASE_URL \
  -H "X-Api-Key: dvt_your_api_key"

# Response:
{"key": "DATABASE_URL", "value": "postgres://..."}

Security: Secrets are encrypted at rest with AES-256. API keys can be regenerated anytime. Values are masked in the UI.

API Base URL

All API requests go to:

https://devtools-api.shawnunderwood.com

Plan Limits

Free

  • 2 of each feature
  • 7 days data retention

Pro ($5/mo)

  • 20 of each feature
  • 90 days data retention

Ready to start?

Create Free Account