Reuse what exists
Send no authorization header. Exact public hits return free; a miss reaches upstream without credentials and will normally be rejected.
Cache developer docs · v1
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
01 / Quickstart
Start anonymously. This request costs nothing when its exact answer is already in the public cache.
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.
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
Cache looks nearby first, then shared storage, then the model. A result moves back through the same path.
The closest reusable copy. Edge entries are kept for 24 hours.
The durable shared generation. A hit here also warms the edge.
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
We SHA-256 a canonical fingerprint. JSON object key order does not matter, but meaningful request differences do.
| Input | In the key? | Why |
|---|---|---|
| Method + full URL | Yes | Includes the query string. |
| Request body | Yes | Objects are recursively sorted before hashing. |
| Provider metadata | Yes | Different metadata means a different request. |
| stream / stream_options | No | Streamed and JSON clients can share one generation. |
| Authorization | No | A keyed fill can become a future anonymous hit. |
If the body is not valid JSON, Cache still forwards it and fingerprints the exact raw bytes.
04 / Authentication
Send no authorization header. Exact public hits return free; a miss reaches upstream without credentials and will normally be rejected.
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
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
Chunks pass through immediately while Cache assembles a canonical JSON completion in the background.
ON A HIT
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
/v1/completionsAccepts 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
/healthA lightweight liveness check. Returns {"status":"ok"}.
07 / Batch API
BETACreate a batch through Cache, then poll its status. Completed chat-completion results are ingested into shared cache storage in the background.
{
"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
Upstream status codes and response bodies pass through unchanged. Gateway routing errors use a compact JSON response.
09 / The important bit
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.