Skip to content

Introduction

The Machine API is a REST service that helps development teams eliminate “works on my machine” problems. It provides a structured way to capture, store, compare, and share environment snapshots and dev config files.

CapabilityDescription
SnapshotsCapture a machine’s OS, architecture, runtime versions, dependencies, and environment variables
ComparisonDiff two snapshots to see exactly what’s different between two environments
File sharingUpload and download dev config files (.env, docker-compose.yml, etc.)
Team accessInvite members with role-based permissions (owner, admin, member, viewer)
WebhooksReceive real-time HTTP notifications when resources change
Usage analyticsTrack API usage, request volume, and storage consumption
  1. Bootstrap a project — get an API key (no auth required)
  2. Capture snapshots from each developer’s machine
  3. Compare snapshots to find environment discrepancies
  4. Share config files so everyone has the same setup
  5. Invite your team so they can contribute their own snapshots
https://apis.jameslin.info/machine
  • API-key auth — every request is authenticated via an X-API-Key header. Keys are hashed with SHA-256 before storage.
  • Encryption — environment variables are encrypted at rest using AES-256-GCM. They’re only decrypted when you fetch a single snapshot.
  • Project isolation — each API key is scoped to a single project. Cross-project access requires separate keys.
  • Rate limiting — sliding window counters enforce per-minute and per-day limits per API key.