Not built yet

Stated plainly so you can plan around it.

Blocking for self-serve onboarding

  • The free plan grants zero credits, so a brand-new tenant cannot make an inference call until someone changes its plan — and self-serve payment is a typed 501. Onboarding therefore ends in an operator action today.
  • No dashboard. apps/web is a single README; everything is API-only.
  • Credits cannot be purchased. Stripe checkout and portal are typed 501.

Works but unproven

  • Webhooks — zero subscriptions, zero deliveries ever.
  • Per-key governance (allowlists, TPM, IP allowlists) — enforced at request time, but no route sets them. Spend caps are now settable and exercised.
  • Email — no SMTP transport wired, so verification and reset links cannot actually be delivered.

Known gaps

  • Stopping a launching instance waits for the launch to finish. The stop is accepted immediately and queues behind the in-flight launch; the pod bills until it lands. Terminating the pod at the provider directly is the only way to stop the clock mid-launch. Always set cost_cap_cents.
  • The GPU rate on an offering row lags the first pod of that SKU. The meter bills the rented pod's own rate once one is running; until then the estimate is the cheapest advertised rate, which can be ~25% low.
  • No SDK. Generate from openapi.json, or use any OpenAI SDK for inference.
  • No versioning or deprecation machinery. No Deprecation/Sunset headers yet.
  • Missing OpenAI surfaces: files, batches, fine-tuning, image variations.
  • Training plane unreachable — schema exists, no routes, no service.
  • GET /v1/billing/costs is unpaginated and ignores limit; it returns the whole ledger.
  • Embeddings ignore dimensions and serve one model at 1536 dimensions.
  • Reference images on /v1/images/edits bill as input tokens at the text rate — there is no image-input rate field yet (one small PNG cost 1,531 input tokens on 2026-09-17).
  • The TLS host is a hand-written Traefik rule on the box, not a Dokploy domain; its certificate renews through that file (current one expires 2026-12-04). A real domain is still to be chosen.

Verified against the live deployment on 2026-09-17, with measurements pooled from the first six tenants. When this document and GET /v1/openapi.json disagree, the spec is right and this file is stale.