Car Image API
Documentation

Changelog

What shipped, when.

  1. v2.0PlatformAgentsBilling

    AI-native platform rebuild

    • New data layer on Supabase (Postgres, Storage, Auth): magic-link and Google sign-in, per-request telemetry, and an append-only credit ledger.
    • Signed URLs now take ttl_seconds (default 1 h, up to 7 days) and max_uses (default unlimited), are billed once at creation and can be cached publicly within their TTL.
    • GET /api/v1/images/car returns X-Image-Width, X-Image-Height and a stable ETag; conditional requests answer 304 for free. Accept: application/json returns a signed URL instead of bytes.
    • New size presets (thumb/small/medium/large = 256/512/768/1024), six camera views with documented yaw, fifteen preset colors.
    • Catalog search and free-text resolve: GET /api/v1/vehicles?q= and POST /api/v1/images/resolve.
    • Image feedback endpoint (POST /api/v1/feedback) and MCP rate_image tool feed the render-quality loop.
    • Remote MCP server at /api/mcp with bearer auth; CLI 2 (npx @meterapp/car-image) with interactive onboarding, doctor, agent-config and a local MCP server; one-command Claude Code setup; llms.txt.
    • Rate limiting is 120 requests per minute per key by default, announced with RateLimit-* headers.
    • New site: docs, playground with year → make → model cascade, pricing calculator, dashboard with usage chart, API keys and billing.
  2. v1.1Billing

    Billing invariants

    • Every successful image costs exactly one credit, whether cached or freshly generated (#8).
    • Fixed the currency on Stripe payment-method setup sessions (#7).
  3. v1.0APISecurity

    Secure, agent-ready API

    • Rebuilt the API around hashed, revocable bearer keys, problem+json errors and a finite vehicle catalog (#6).
    • Opaque single-use browser delivery URLs; keys are never accepted in query strings.
    • Stripe Checkout with idempotent webhooks and optional auto-reload (#5).
    • Browser-assisted CLI login that returns the key only to the waiting terminal.