Skip to content

feat(gateway): GET /v1/models OpenAI-compatible model list endpoint (v0.4.1) - #84

Merged
argszero merged 1 commit into
mainfrom
feat/v1-models-endpoint
Aug 18, 2026
Merged

argszero merged 1 commit into
mainfrom
feat/v1-models-endpoint

Conversation

@argszero

Copy link
Copy Markdown
Owner

Summary

Add OpenAI-compatible GET /v1/models (alias /models) endpoint, missed in P3-A (#83) which only added /api/models (market-page-specific).

  • No auth: plain OpenAI list format — {"object":"list","data":[{"id","object":"model","created":0,"owned_by":"aitokenpool","display_name","context_window"}]}
  • With Bearer: adds available_keys per model (usable key count)
  • models table gains context_window column (with ensure_column migration for existing DBs)
  • seed_models now reads context_window from data/models.example.json
  • Version bump 0.4.0 → 0.4.1; README endpoint docs updated

Related

Tests

  • Existing tests pass (cargo test → 94/94)
  • New tests added (DAO listing + handler, 2 new tests)
  • cargo fmt --check clean, cargo clippy --all-targets -D warnings clean
  • Live smoke: no-auth list (10 models, no available_keys), alias works, Bearer adds available_keys (deepseek-v4-flash → 1)

…v0.4.1)

OpenAI-compatible GET /v1/models (alias /models) with optional auth:
- no Bearer -> plain model list (id/object/created/owned_by/display_name/context_window)
- with Bearer -> adds available_keys per model
- models table gains context_window column (ensure_column migration for existing DBs)
- seed_models reads context_window from data/models.example.json

Closes rant 2026-08-18T18:10:18 (GET /v1/models missed in P3-A #83).
@argszero
argszero merged commit 0f50499 into main Aug 18, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant