provocapi

Product Requirements Document: Inference API

Status: Draft v0.1 Owner: Product Last updated: 2026-04-10

1. Summary

An OpenAI-compatible, multi-tenant inference API serving open-weight LLMs and embedding models on our owned-and-operated GPU fleet. We sell inference-as-a-service to teams that want OpenAI-grade DX without sending data to a hyperscaler, without managing vLLM clusters, and with predictable pricing on dedicated capacity when they want it.

2. Target customers and positioning

Who buys this

  1. Regulated and data-sensitive teams (fintech, healthtech, legal, government contractors, EU companies with GDPR exposure) who can’t or won’t ship prompts to OpenAI or to US hyperscaler regions. We offer a contractual data-residency story because we own the racks and know which building each request lands in.
  2. Latency-sensitive product teams in our geographic region (voice agents, IDE autocomplete, real-time translation, gaming NPCs) where 50-100ms of network RTT matters and a regional POP beats us-east-1.
  3. Cost-conscious scale-ups burning $50k-$500k/month on OpenAI/Anthropic who want to migrate the cheap-and-cheerful 80% of their traffic to open weights without hiring a platform team to run vLLM themselves.
  4. Teams that need dedicated capacity guarantees — agencies, batch pipelines, eval harnesses — that get rate-limited or priced unpredictably on shared serverless inference platforms.

Why us over Together / Fireworks / Anyscale / DIY vLLM

Competitor Their edge Our wedge
Together / Fireworks Huge model menu, serverless We offer contractual dedicated capacity on owned hardware with regional data residency. They’re hyperscale-on-rented-cloud; we’re regional-on-owned-metal.
Anyscale / Modal Ray ergonomics, serverless We’re a product, not a platform — drop-in OpenAI SDK, no Ray to learn.
Self-managed vLLM on cloud GPUs Full control We own the GPUs so our $/token is structurally lower than anyone renting H100s by the hour. Customer doesn’t run kubectl.
OpenAI / Anthropic Frontier quality Open weights are good enough for ~70% of production workloads, at ~10-20% of the cost, and the data never leaves our region.

Our durable edge

3. API surface

v1 endpoints (OpenAI-compatible)

v1 native extensions

Explicit non-goals for v1

4. Model catalog strategy

Curation principle

Start tight: 8-12 hand-picked models at launch, not 50. Every model on the menu must justify the VRAM it occupies. Add models when (a) a customer commits revenue or (b) a new release demonstrably beats an incumbent on a benchmark we care about.

Launch catalog (proposed)

Model Size GPU class Use case
Llama 3.1 8B Instruct 8B RTX 5090 / RTX PRO 6000 Cheap chat, classification, routing
Llama 3.1 70B Instruct 70B 2x H100 80GB or 2x RTX PRO 6000 96GB Flagship general-purpose
Llama 3.1 405B Instruct 405B 8x H100 80GB Premium tier, reserved only
Qwen 2.5 72B Instruct 72B 2x H100 / 2x RTX PRO 6000 Strong multilingual, coding
Qwen 2.5 Coder 32B 32B 1x H100 / 1x RTX PRO 6000 Code completion, IDE plugins
Mistral Small 3 24B 24B 1x RTX PRO 6000 / 1x A100 80GB Mid-tier chat
DeepSeek-V3 (or successor) 671B MoE 8x H100 Reasoning, premium
BGE-M3 560M RTX 5090 Multilingual embeddings
E5-Mistral-7B-Instruct 7B RTX 5090 High-quality embeddings
Nomic Embed v1.5 137M RTX 5090 Cheap embeddings

ASSUMPTION TO VALIDATE: Llama 3.1 70B in FP16 is ~140GB VRAM; fits on 2x H100 80GB or 2x RTX PRO 6000 96GB with tensor parallelism. If your H100 nodes are 4x or 8x configurations, we get better throughput per node by stacking multiple TP=2 replicas. Confirm node SKUs.

How customers request models

BYOM (bring-your-own-model)

5. Tenant model

Auth

Tiers

Tier Capacity Rate limits Pricing Isolation
Shared Pooled vLLM instances 200 RPM / 500k TPM default, raisable Per-token, public rates Logical only (per-key queues, fair scheduling)
Reserved Customer reserves N replicas of model X for M months None (your replicas) Flat $/replica/month + electricity passthrough Dedicated vLLM processes; customer can have noisy LoRA load patterns without affecting others
Dedicated nodes Customer leases entire physical nodes None Flat $/node/month Physical isolation; customer namespace, customer-only k8s taints

Usage metering

6. SLA and reliability

Targets (v1, conservative)

Metric Shared tier Reserved tier
Monthly uptime 99.5% 99.9%
TTFT p50 (chat, 70B model, ~500 input tokens) < 400ms < 250ms
TTFT p95 < 1200ms < 600ms
TTFT p99 < 2500ms < 1500ms
Output TPS p50 (70B, single stream) > 35 tok/s > 45 tok/s
Embeddings p95 latency (batch of 32) < 300ms < 200ms

ASSUMPTION TO VALIDATE: TPS targets depend on H100 vs. RTX PRO 6000 (FP8 perf differs significantly). Validate against benchmark runs on actual hardware before publishing.

Failure handling

7. Pricing

Shared (per-token, USD per 1M tokens)

Model Input Output
Llama 3.1 8B $0.10 $0.15
Mistral Small 3 24B $0.20 $0.30
Qwen 2.5 Coder 32B $0.30 $0.45
Llama 3.1 70B / Qwen 2.5 72B $0.55 $0.75
DeepSeek V3 $0.50 $1.20
Llama 3.1 405B $2.50 $3.50
BGE-M3 / E5-Mistral / Nomic $0.02 - $0.05 per 1M tokens

Reference: Together charges ~$0.88 in / $0.88 out for Llama 70B; Fireworks ~$0.90. We undercut by 30-40% on the models we choose to host. Hyperscaler equivalents (Bedrock Llama 70B) are ~$2.65/$3.50.

Reserved

Batch

8. Developer experience

9. v1 scope

Ships in v1

Deferred (v1.5 / v2)

Explicit non-goals (probably never)