Skip to content

Commit 4aa675c

Browse files
committed
docs: improve ai-search docs
1 parent 7817814 commit 4aa675c

6 files changed

Lines changed: 57 additions & 17 deletions

File tree

docs-site/public/answers.md

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Codex Pooler Answer Reference
22

3-
Last reviewed: 2026-06-01
3+
Last reviewed: 2026-06-02
44
Canonical docs: https://docs.codex-pooler.com/
55
Canonical llms index: https://docs.codex-pooler.com/llms.txt
66

@@ -10,6 +10,10 @@ Use this page for short, public-safe answers about Codex Pooler. It summarizes t
1010

1111
Codex Pooler is a self-hosted gateway for sharing Codex account capacity across trusted agents, tools, and teams. Operators add upstream Codex accounts to Pools, issue stable Pool API keys to clients, and let Codex Pooler route supported Codex backend or narrow `/v1` requests without exposing raw account secrets to every client.
1212

13+
## What is Codex account pooling?
14+
15+
Codex account pooling means grouping multiple authorized Codex upstream accounts behind one operational routing boundary. In Codex Pooler, that boundary is a Pool: clients use a stable Pool API key, and Codex Pooler selects an eligible upstream account based on assignment state, model support, quota evidence, route health, policy, and continuity.
16+
1317
## Who is Codex Pooler for?
1418

1519
Codex Pooler is for operators and client integrators who already manage trusted Codex accounts and need a controlled coordination layer. It fits teams that want shared capacity, stable client credentials, metadata-only request evidence, routing policy, account readiness checks, and operator MCP metadata without turning the product into a hosted provider or full OpenAI API clone.
@@ -28,6 +32,10 @@ For local setup, replace `https://pooler.example.com` with `http://localhost:400
2832

2933
No. Codex Pooler provides narrow OpenAI-compatible `/v1` support for selected SDK routes, then translates supported work into Codex-compatible requests and routes it through Pool policy. Unsupported `/v1` routes may return deterministic OpenAI-shaped unsupported endpoint errors, and OpenAI Realtime SDK websocket or session routes are not supported.
3034

35+
## Is `POST /v1/responses/compact` supported?
36+
37+
No. `POST /v1/responses/compact` is routed only to return a deterministic OpenAI-shaped `unsupported_endpoint` error. Backend-compatible compact requests should use `POST /backend-api/codex/responses/compact`, which is part of the Codex backend compatibility route family.
38+
3139
## What is the difference between `/backend-api/codex` and `/v1`?
3240

3341
`/backend-api/codex` is the Codex backend compatibility route for Codex-compatible clients. `/v1` is a narrow OpenAI-compatible SDK surface for selected routes such as models, responses, chat completions, usage, files, audio transcription, and image generation or edits. Both runtime surfaces use Pool API keys and Pool routing.
@@ -40,6 +48,10 @@ No. Codex Pooler provides narrow OpenAI-compatible `/v1` support for selected SD
4048

4149
Codex Pooler request logs, audit logs, docs, and MCP responses must stay metadata-only. Public-safe fields include route family, endpoint path, method, status class, Pool label, upstream label, model, retry count, duration, token count, and timestamp. Raw prompts, completions, payload bodies, file bytes, media bytes, websocket frames, cookies, bearer tokens, Pool API keys, MCP tokens, upstream secrets, and `auth.json` material must not appear.
4250

51+
## Does Codex Pooler store prompts, completions, or file bytes?
52+
53+
No. Codex Pooler stores metadata for routing, accounting, audit, request logs, file records, and MCP lookup. It must not store raw prompts, completions, request bodies, response bodies, uploaded file bytes, audio bytes, image bytes, websocket frames, bearer tokens, upstream secrets, or raw Pool API keys.
54+
4355
## How do I start Codex Pooler locally?
4456

4557
Clone the repository, run `scripts/self-host/generate-env.sh`, start the stack with `docker compose up -d`, open `http://localhost:4000`, create the first owner, create a Pool, assign an upstream account, create a Pool API key, and point the first client at `/backend-api/codex` or `/v1`.
@@ -48,6 +60,18 @@ Clone the repository, run `scripts/self-host/generate-env.sh`, start the stack w
4860

4961
The public docs cover Docker Compose for a small self-hosted install and Helm for Kubernetes. Compose is the quick local or single-node path. Helm separates app, worker, scheduler, and migration roles, and it includes guidance for secrets, ingress, metrics, and the websocket replica caveat.
5062

63+
## Should I choose Docker Compose or Helm?
64+
65+
Use Docker Compose for local setup, a lab server, or a small single-node self-hosted install. Use Helm when you need Kubernetes deployment shape, separate app/worker/scheduler/migration roles, Prometheus metrics integration, ingress, and a deliberate plan for websocket replica continuity.
66+
5167
## What should operators inspect when routing fails?
5268

5369
Operators should check the Pool, Pool API key, upstream assignment, upstream lifecycle state, model support, quota evidence, route-class health, session continuity, and request-log metadata. A routing strategy cannot choose an upstream account that fails hard eligibility checks.
70+
71+
## What happens if all upstream accounts fail eligibility?
72+
73+
Codex Pooler rejects the request before upstream dispatch when every assigned account fails hard eligibility checks. Common causes are missing Pool access, paused or reauth-required upstreams, no model support, unusable quota evidence, unhealthy route-class circuit state, file affinity conflict, or session continuity pointing at an unavailable assignment.
74+
75+
## Is Codex Pooler free or hosted?
76+
77+
Codex Pooler has no documented hosted plan, commercial pricing tier, or published release in these docs today. The repository is distributed under Elastic License 2.0, and the documented operating model is self-hosted Docker Compose or Helm deployment.

docs-site/public/llms.txt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Codex Pooler Public Docs For Agents
22

3-
Last reviewed: 2026-06-01
3+
Last reviewed: 2026-06-02
44

55
Canonical docs base: https://docs.codex-pooler.com/
66
Canonical llms index: https://docs.codex-pooler.com/llms.txt
@@ -38,13 +38,13 @@ Client base URLs:
3838

3939
Supported route families:
4040
- /backend-api: Codex backend compatibility route for authenticated Codex clients. Important paths include /backend-api/codex/models, /backend-api/codex/responses, /backend-api/codex/responses/compact, /backend-api/codex/v1/* aliases, /backend-api/files, /backend-api/transcribe, and usage routes such as /backend-api/wham/usage.
41-
- /v1: narrow OpenAI-compatible /v1 surface for selected SDK routes. Supported examples include /v1/models, /v1/responses, GET /v1/responses for narrow Responses websocket compatibility, /v1/chat/completions, /v1/usage, /v1/files, /v1/audio/transcriptions, /v1/images/generations, and /v1/images/edits.
41+
- /v1: narrow OpenAI-compatible /v1 surface for selected SDK routes. Supported or translated examples include /v1/models, /v1/responses, GET /v1/responses for narrow Responses websocket compatibility, /v1/chat/completions, /v1/usage, /v1/files metadata and create routes, /v1/audio/transcriptions, /v1/images/generations, and /v1/images/edits.
4242
- /mcp: root operator MCP endpoint. POST /mcp is metadata-only, read-only Streamable HTTP JSON-RPC. It uses operator-owned MCP bearer tokens, not Pool API keys or browser sessions.
4343

4444
Unsupported boundaries:
4545
- Codex Pooler does not provide full OpenAI API parity.
4646
- Unsupported /v1 routes may return deterministic OpenAI-shaped unsupported endpoint errors when explicitly routed.
47-
- Unsupported /v1 examples include /v1/embeddings, /v1/batches, /v1/moderations, /v1/fine_tuning/jobs, /v1/images/variations, response retrieve, response cancel, and response delete routes.
47+
- Unsupported /v1 examples include /v1/responses/compact, /v1/files/:file_id/content, DELETE /v1/files/:file_id, /v1/embeddings, /v1/batches, /v1/moderations, /v1/fine_tuning/jobs, /v1/images/variations, response retrieve, response cancel, and response delete routes.
4848
- /v1/realtime and OpenAI Realtime SDK websocket or session routes are unsupported.
4949
- GET /v1/responses is narrow Responses websocket compatibility, not /v1/realtime support.
5050
- POST /backend-api/codex/realtime/calls is a Codex backend control-plane SDP proxy route, not OpenAI Realtime SDK compatibility.

docs-site/public/pricing.md

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Codex Pooler Pricing And Availability
22

3-
Last reviewed: 2026-06-01
3+
Last reviewed: 2026-06-02
44
Canonical docs: https://docs.codex-pooler.com/
55

66
Codex Pooler has no published hosted plan, commercial pricing page, or public release in these docs today. The documented path is self-hosted operation with Docker Compose or the Helm chart.
@@ -13,6 +13,15 @@ Codex Pooler has no published hosted plan, commercial pricing page, or public re
1313
- Self-hosted Docker Compose path: documented
1414
- Self-hosted Kubernetes Helm path: documented
1515

16+
## License and hosted use
17+
18+
- Repository license: Elastic License 2.0
19+
- Public hosted plan: none documented
20+
- Managed-service pricing: none documented
21+
- Self-hosted software price in these docs: no subscription tier documented
22+
23+
Read `LICENSE.md` before redistributing, modifying, or providing managed access to Codex Pooler. These docs describe self-hosted operation and do not publish a hosted or managed-service offer.
24+
1625
## Operator cost considerations
1726

1827
Codex Pooler documentation does not define subscription tiers or seat pricing. Operators should plan for their own infrastructure costs, database storage, Kubernetes or Docker hosting, monitoring, and any upstream provider account costs they are already authorized to use.

docs-site/public/sitemap-static.xml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,14 @@
22
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
33
<url>
44
<loc>https://docs.codex-pooler.com/llms.txt</loc>
5-
<lastmod>2026-06-01</lastmod>
5+
<lastmod>2026-06-02</lastmod>
66
</url>
77
<url>
88
<loc>https://docs.codex-pooler.com/answers.md</loc>
9-
<lastmod>2026-06-01</lastmod>
9+
<lastmod>2026-06-02</lastmod>
1010
</url>
1111
<url>
1212
<loc>https://docs.codex-pooler.com/pricing.md</loc>
13-
<lastmod>2026-06-01</lastmod>
13+
<lastmod>2026-06-02</lastmod>
1414
</url>
1515
</urlset>

docs-site/src/content/_docs-contract.md

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,18 +46,21 @@ Allowed public claims:
4646
- `GET /v1/models`
4747
- `POST /v1/responses`
4848
- `GET /v1/responses`, narrow Responses websocket compatibility only
49-
- `POST /v1/responses/compact`
5049
- `POST /v1/chat/completions`
5150
- `GET /v1/usage`
5251
- `GET /v1/files`
5352
- `POST /v1/files`
5453
- `GET /v1/files/:file_id`
55-
- `GET /v1/files/:file_id/content`, deterministic unsupported content read after ownership checks
56-
- `DELETE /v1/files/:file_id`, deterministic unsupported delete after ownership checks
5754
- `POST /v1/audio/transcriptions`
5855
- `POST /v1/images/generations`
5956
- `POST /v1/images/edits`
6057

58+
Routed public `/v1` endpoints that must be described as deterministic unsupported behavior:
59+
60+
- `POST /v1/responses/compact`, deterministic unsupported compact route before gateway dispatch
61+
- `GET /v1/files/:file_id/content`, deterministic unsupported content read after ownership checks
62+
- `DELETE /v1/files/:file_id`, deterministic unsupported delete after ownership checks
63+
6164
Unsupported public `/v1` routes that may be named as unsupported:
6265

6366
- `POST /v1/images/variations`

docs-site/src/content/docs/clients/openai-compatible.mdx

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -82,31 +82,31 @@ const { text } = await generateText({
8282
console.log(text);
8383
```
8484

85-
## Selected route support
85+
## Supported or translated route support
8686

87-
The OpenAI-compatible `/v1` surface supports selected routes only:
87+
The OpenAI-compatible `/v1` surface supports or translates selected routes only:
8888

8989
- `GET /v1/models`
9090
- `POST /v1/responses`
9191
- `GET /v1/responses`, narrow Responses websocket compatibility only
92-
- `POST /v1/responses/compact`
9392
- `POST /v1/chat/completions`
9493
- `GET /v1/usage`
9594
- `GET /v1/files`
9695
- `POST /v1/files`
9796
- `GET /v1/files/:file_id`
98-
- `GET /v1/files/:file_id/content`, deterministic unsupported content read after ownership checks
99-
- `DELETE /v1/files/:file_id`, deterministic unsupported delete after ownership checks
10097
- `POST /v1/audio/transcriptions`
10198
- `POST /v1/images/generations`
10299
- `POST /v1/images/edits`
103100

104101
The `/v1` surface is compatibility over Codex routing, not a separate OpenAI engine. Supported requests still require a Pool API key and a Pool with eligible upstream capacity for the requested model.
105102

106-
## Unsupported boundaries
103+
## Routed but unsupported boundaries
107104

108105
These `/v1` routes are unsupported and may return deterministic OpenAI-shaped unsupported endpoint errors when explicitly routed:
109106

107+
- `POST /v1/responses/compact`
108+
- `GET /v1/files/:file_id/content`, after ownership checks
109+
- `DELETE /v1/files/:file_id`, after ownership checks
110110
- `POST /v1/images/variations`
111111
- `POST /v1/embeddings`
112112
- `POST /v1/batches`
@@ -147,6 +147,10 @@ No. Codex backend-compatible clients should use `/backend-api/codex`. The `/v1`
147147

148148
No. `/v1/realtime` and OpenAI Realtime SDK websocket or session routes are unsupported. `GET /v1/responses` is narrow Responses websocket compatibility only, not OpenAI Realtime support.
149149

150+
### Does `/v1/responses/compact` work?
151+
152+
No. `POST /v1/responses/compact` is routed only so clients receive a deterministic OpenAI-shaped `unsupported_endpoint` error. Codex backend-compatible compact requests should use `POST /backend-api/codex/responses/compact`.
153+
150154
### Can I use the same key for `/v1` and `/mcp`?
151155

152156
No. `/v1` uses Pool API keys for runtime work. `/mcp` uses operator-owned MCP bearer tokens for metadata-only lookup. Keep those credentials separate in client configuration and storage.

0 commit comments

Comments
 (0)