Docs you can actually read.

Cache developer docs · v1

Build on the
public cache.

Send a familiar completion request. If the same request already exists, reuse it anonymously for free. If it does not, bring a key, generate it once, and leave it better for everyone.

Base URL

https://meetcache.ai
Public API v1
Cache the otter wearing a dark hoodie and typing on a laptop

01 / Quickstart

Try the cache.

Start anonymously. This request costs nothing when its exact answer is already in the public cache.

Anonymous · cURL
curl https://meetcache.ai/v1/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-5.6-sol",
    "prompt": "Why do otters hold hands?",
    "max_tokens": 120
  }'

Cache miss? Add your upstream API key. Cache detects the provider from the key, forwards the request, then stores the successful result for future anonymous reuse.

BYOK · cURL
curl https://meetcache.ai/v1/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -d '{"model":"gpt-5.6-sol","prompt":"Why do otters hold hands?","max_tokens":120}'

02 / Core concept

One request. Three stops.

Cache looks nearby first, then shared storage, then the model. A result moves back through the same path.

  1. 01 · FAST

    Edge cache

    The closest reusable copy. Edge entries are kept for 24 hours.

  2. 02 · SHARED

    Public store

    The durable shared generation. A hit here also warms the edge.

  3. 03 · ON A MISS

    Upstream API

    Your key selects the provider. Successful results become reusable.

Upstream errors and successful non-JSON responses pass through, but are not cached. Background storage or analytics failures never replace a successful model response.

03 / Cache identity

What counts as “the same”?

We SHA-256 a canonical fingerprint. JSON object key order does not matter, but meaningful request differences do.

InputIn the key?
Method + full URLYes
Request bodyYes
Provider metadataYes
stream / stream_optionsNo
AuthorizationNo

If the body is not valid JSON, Cache still forwards it and fingerprints the exact raw bytes.

04 / Authentication

No key on a hit.
A key on a miss.

ANONYMOUS

Reuse what exists

Send no authorization header. Exact public hits return free; a miss reaches upstream without credentials and will normally be rejected.

BYOK

Create what is missing

Send Authorization: Bearer …. You pay the upstream provider only when a new generation is needed.

Need identity-based limits or loaded credits? Compare access tiers →

05 / Streaming

Stream without splitting the cache.

Set "stream": true as usual. Stream settings are excluded from the fingerprint, so streaming and non-streaming callers share the same result.

ON A MISS

Live SSE

Chunks pass through immediately while Cache assembles a canonical JSON completion in the background.

ON A HIT

Cached SSE envelope

The canonical result is returned as an SSE data event followed by [DONE].

The answer is equivalent, but cached replay does not reproduce the original token-by-token chunk boundaries.

06 / API reference

The small API.

POST/v1/completions

Accepts the native prompt-style OpenAI completions body. Replace https://api.openai.com with https://meetcache.ai; the rest of the request stays the same.

Also supported: /v1/responses · /v1/messages

Content-Type
application/json
Response
JSON or SSE
GET/health

A lightweight liveness check. Returns {"status":"ok"}.

07 / Batch API

BETA

Pre-generate in bulk.

Create a batch through Cache, then poll its status. Completed chat-completion results are ingested into shared cache storage in the background.

Batch manifest
{
  "endpoint": "/v1/chat/completions",
  "model": "gpt-5.6-sol",
  "requests": [{
    "custom_id": "answer-001",
    "body": {
      "messages": [{"role": "user", "content": "Why do otters hold hands?"}]
    }
  }]
}

POST/api/beta/batches

Create a batch. Requires upstream authorization.

GET/api/beta/batches/:id

Poll status. Completed results schedule ingestion.

Batch manifests are retained for 30 days. This API and its chat-cache retrieval plumbing are evolving, so avoid treating the beta contract as stable.

08 / Errors

Failures stay recognizable.

Upstream status codes and response bodies pass through unchanged. Gateway routing errors use a compact JSON response.

401/403
The cache missed and the upstream key is missing, invalid, or not permitted.
404
The gateway route does not exist.
405
The route exists, but not for that HTTP method.
429
An upstream or account limit was reached.
500
The gateway could not complete a cache read or request operation.

09 / The important bit

Public means public.

Every successful generation may become available to anyone who sends the same request. Never put secrets, personal data, proprietary text, private URLs, credentials, or anything you cannot share into a Cache request.

Your authorization header is used for the upstream miss and is not part of the shared cache key.

That’s the whole idea.

Ask once. Answer many.

Make your first request ↑