OpenAI API Conformance Report
This page provides a detailed breakdown of Llama Stack's conformance to the OpenAI API specification. The conformance score increases as schema issues are fixed and missing properties are implemented.
This documentation is auto-generated from the OpenAI API specification comparison.
Summary
| Metric | Value |
|---|---|
| Overall Conformance Score | 91.7% |
| Endpoints Implemented | 29/146 |
| Total Properties Checked | 3441 |
| Schema/Type Issues | 184 |
| Missing Properties | 101 |
| Total Issues to Fix | 285 |
Integration Test Coverage
Overall Test Coverage Score: 43.8%
| Category | Covered | Total | Score |
|---|---|---|---|
| CRUD Operations | 5 | 7 | 71.4% |
| Conversations | 5 | 9 | 55.6% |
| Request Parameters | 21 | 25 | 84.0% |
| Streaming Events | 16 | 53 | 30.2% |
| Structured Output | 0 | 2 | 0.0% |
| Tools | 2 | 16 | 12.5% |
Category Scores
Categories are sorted by conformance score (lowest first, needing most attention).
| Category | Score | Properties | Issues | Missing |
|---|---|---|---|---|
| Moderations | 17.0% | 53 | 5 | 39 |
| Batch | 39.9% | 168 | 60 | 41 |
| Completions | 58.7% | 46 | 17 | 2 |
| Files | 76.2% | 42 | 8 | 2 |
| Embeddings | 78.6% | 14 | 3 | 0 |
| Vector stores | 82.9% | 310 | 41 | 12 |
| Responses | 88.9% | 225 | 25 | 0 |
| Models | 93.3% | 15 | 1 | 0 |
| Chat | 98.5% | 403 | 5 | 1 |
| Conversations | 98.9% | 2165 | 19 | 4 |
Missing Endpoints
The following OpenAI API endpoints are not yet implemented in Llama Stack:
/assistants
/assistants/assistants/{assistant_id}
/audio
/audio/speech/audio/transcriptions/audio/translations/audio/voice_consents/audio/voice_consents/{consent_id}/audio/voices
/chat
/chat/completions/{completion_id}/messages
/evals
/evals/evals/{eval_id}/evals/{eval_id}/runs/evals/{eval_id}/runs/{run_id}/evals/{eval_id}/runs/{run_id}/output_items/evals/{eval_id}/runs/{run_id}/output_items/{output_item_id}
/fine_tuning
/fine_tuning/alpha/graders/run/fine_tuning/alpha/graders/validate/fine_tuning/checkpoints/{fine_tuned_model_checkpoint}/permissions/fine_tuning/checkpoints/{fine_tuned_model_checkpoint}/permissions/{permission_id}/fine_tuning/jobs/fine_tuning/jobs/{fine_tuning_job_id}/fine_tuning/jobs/{fine_tuning_job_id}/cancel/fine_tuning/jobs/{fine_tuning_job_id}/checkpoints/fine_tuning/jobs/{fine_tuning_job_id}/events/fine_tuning/jobs/{fine_tuning_job_id}/pause/fine_tuning/jobs/{fine_tuning_job_id}/resume
/images
/images/edits/images/generations/images/variations
/organization
/organization/audit_logs/organization/certificates/organization/certificates/activate/organization/certificates/deactivate/organization/certificates/{certificate_id}/organization/costs/organization/groups/organization/groups/{group_id}/organization/groups/{group_id}/roles/organization/groups/{group_id}/roles/{role_id}/organization/groups/{group_id}/users/organization/groups/{group_id}/users/{user_id}/organization/invites/organization/invites/{invite_id}/organization/projects/organization/projects/{project_id}/organization/projects/{project_id}/api_keys/organization/projects/{project_id}/api_keys/{key_id}/organization/projects/{project_id}/archive/organization/projects/{project_id}/certificates/organization/projects/{project_id}/certificates/activate/organization/projects/{project_id}/certificates/deactivate/organization/projects/{project_id}/groups/organization/projects/{project_id}/groups/{group_id}/organization/projects/{project_id}/rate_limits/organization/projects/{project_id}/rate_limits/{rate_limit_id}/organization/projects/{project_id}/service_accounts/organization/projects/{project_id}/service_accounts/{service_account_id}/organization/projects/{project_id}/users/organization/projects/{project_id}/users/{user_id}/organization/roles/organization/roles/{role_id}/organization/usage/audio_speeches/organization/usage/audio_transcriptions/organization/usage/code_interpreter_sessions/organization/usage/completions/organization/usage/embeddings/organization/usage/images/organization/usage/moderations/organization/usage/vector_stores/organization/users/organization/users/{user_id}/organization/users/{user_id}/roles/organization/users/{user_id}/roles/{role_id}
/projects
/projects/{project_id}/groups/{group_id}/roles/projects/{project_id}/groups/{group_id}/roles/{role_id}/projects/{project_id}/roles/projects/{project_id}/roles/{role_id}/projects/{project_id}/users/{user_id}/roles/projects/{project_id}/users/{user_id}/roles/{role_id}
/realtime
/realtime/calls/realtime/calls/{call_id}/accept/realtime/calls/{call_id}/hangup/realtime/calls/{call_id}/refer/realtime/calls/{call_id}/reject/realtime/client_secrets/realtime/sessions/realtime/transcription_sessions
/responses
/responses/input_tokens
/skills
/skills/skills/{skill_id}/skills/{skill_id}/content/skills/{skill_id}/versions/skills/{skill_id}/versions/{version}/skills/{skill_id}/versions/{version}/content
/threads
/threads/threads/runs/threads/{thread_id}/threads/{thread_id}/messages/threads/{thread_id}/messages/{message_id}/threads/{thread_id}/runs/threads/{thread_id}/runs/{run_id}/threads/{thread_id}/runs/{run_id}/cancel/threads/{thread_id}/runs/{run_id}/steps/threads/{thread_id}/runs/{run_id}/steps/{step_id}/threads/{thread_id}/runs/{run_id}/submit_tool_outputs
/uploads
/uploads/uploads/{upload_id}/cancel/uploads/{upload_id}/complete/uploads/{upload_id}/parts
/videos
/videos/videos/characters/videos/characters/{character_id}/videos/edits/videos/extensions/videos/{video_id}/videos/{video_id}/content/videos/{video_id}/remix
Detailed Category Breakdown
Below is a detailed breakdown of conformance issues and missing properties for each category.
Moderations
Score: 17.0% · Issues: 5 · Missing: 39
/moderations
POST
Missing Properties (39)
responses.200.content.application/json.properties.results.items.properties.categories.properties.harassmentresponses.200.content.application/json.properties.results.items.properties.categories.properties.harassment/threateningresponses.200.content.application/json.properties.results.items.properties.categories.properties.hateresponses.200.content.application/json.properties.results.items.properties.categories.properties.hate/threateningresponses.200.content.application/json.properties.results.items.properties.categories.properties.illicitresponses.200.content.application/json.properties.results.items.properties.categories.properties.illicit/violentresponses.200.content.application/json.properties.results.items.properties.categories.properties.self-harmresponses.200.content.application/json.properties.results.items.properties.categories.properties.self-harm/instructionsresponses.200.content.application/json.properties.results.items.properties.categories.properties.self-harm/intentresponses.200.content.application/json.properties.results.items.properties.categories.properties.sexualresponses.200.content.application/json.properties.results.items.properties.categories.properties.sexual/minorsresponses.200.content.application/json.properties.results.items.properties.categories.properties.violenceresponses.200.content.application/json.properties.results.items.properties.categories.properties.violence/graphicresponses.200.content.application/json.properties.results.items.properties.category_applied_input_types.properties.harassmentresponses.200.content.application/json.properties.results.items.properties.category_applied_input_types.properties.harassment/threateningresponses.200.content.application/json.properties.results.items.properties.category_applied_input_types.properties.hateresponses.200.content.application/json.properties.results.items.properties.category_applied_input_types.properties.hate/threateningresponses.200.content.application/json.properties.results.items.properties.category_applied_input_types.properties.illicitresponses.200.content.application/json.properties.results.items.properties.category_applied_input_types.properties.illicit/violentresponses.200.content.application/json.properties.results.items.properties.category_applied_input_types.properties.self-harmresponses.200.content.application/json.properties.results.items.properties.category_applied_input_types.properties.self-harm/instructionsresponses.200.content.application/json.properties.results.items.properties.category_applied_input_types.properties.self-harm/intentresponses.200.content.application/json.properties.results.items.properties.category_applied_input_types.properties.sexualresponses.200.content.application/json.properties.results.items.properties.category_applied_input_types.properties.sexual/minorsresponses.200.content.application/json.properties.results.items.properties.category_applied_input_types.properties.violenceresponses.200.content.application/json.properties.results.items.properties.category_applied_input_types.properties.violence/graphicresponses.200.content.application/json.properties.results.items.properties.category_scores.properties.harassmentresponses.200.content.application/json.properties.results.items.properties.category_scores.properties.harassment/threateningresponses.200.content.application/json.properties.results.items.properties.category_scores.properties.hateresponses.200.content.application/json.properties.results.items.properties.category_scores.properties.hate/threateningresponses.200.content.application/json.properties.results.items.properties.category_scores.properties.illicitresponses.200.content.application/json.properties.results.items.properties.category_scores.properties.illicit/violentresponses.200.content.application/json.properties.results.items.properties.category_scores.properties.self-harmresponses.200.content.application/json.properties.results.items.properties.category_scores.properties.self-harm/instructionsresponses.200.content.application/json.properties.results.items.properties.category_scores.properties.self-harm/intentresponses.200.content.application/json.properties.results.items.properties.category_scores.properties.sexualresponses.200.content.application/json.properties.results.items.properties.category_scores.properties.sexual/minorsresponses.200.content.application/json.properties.results.items.properties.category_scores.properties.violenceresponses.200.content.application/json.properties.results.items.properties.category_scores.properties.violence/graphic
Schema Issues (5)
| Property | Issues |
|---|---|
requestBody.content.application/json.properties.input | Union variants added: 2 |
requestBody.content.application/json.properties.model | Nullable added (OpenAI non-nullable); Default changed: omni-moderation-latest -> None |
responses.200.content.application/json.properties.results.items.properties.categories | Type removed: ['object']; Union variants added: 2 |
responses.200.content.application/json.properties.results.items.properties.category_applied_input_types | Type removed: ['object']; Union variants added: 2 |
responses.200.content.application/json.properties.results.items.properties.category_scores | Type removed: ['object']; Union variants added: 2 |
Batch
Score: 39.9% · Issues: 60 · Missing: 41
/batches
GET
Missing Properties (10)
responses.200.content.application/json.properties.data.items.properties.errors.properties.dataresponses.200.content.application/json.properties.data.items.properties.errors.properties.objectresponses.200.content.application/json.properties.data.items.properties.request_counts.properties.completedresponses.200.content.application/json.properties.data.items.properties.request_counts.properties.failedresponses.200.content.application/json.properties.data.items.properties.request_counts.properties.totalresponses.200.content.application/json.properties.data.items.properties.usage.properties.input_tokensresponses.200.content.application/json.properties.data.items.properties.usage.properties.input_tokens_detailsresponses.200.content.application/json.properties.data.items.properties.usage.properties.output_tokensresponses.200.content.application/json.properties.data.items.properties.usage.properties.output_tokens_detailsresponses.200.content.application/json.properties.data.items.properties.usage.properties.total_tokens
Schema Issues (17)
| Property | Issues |
|---|---|
responses.200.content.application/json.properties.data.items.properties.cancelled_at | Type removed: ['integer']; Nullable added (OpenAI non-nullable); Union variants added: 2 |
responses.200.content.application/json.properties.data.items.properties.cancelling_at | Type removed: ['integer']; Nullable added (OpenAI non-nullable); Union variants added: 2 |
responses.200.content.application/json.properties.data.items.properties.completed_at | Type removed: ['integer']; Nullable added (OpenAI non-nullable); Union variants added: 2 |
responses.200.content.application/json.properties.data.items.properties.error_file_id | Type removed: ['string']; Nullable added (OpenAI non-nullable); Union variants added: 2 |
responses.200.content.application/json.properties.data.items.properties.errors | Type removed: ['object']; Union variants added: 2 |
responses.200.content.application/json.properties.data.items.properties.expired_at | Type removed: ['integer']; Nullable added (OpenAI non-nullable); Union variants added: 2 |
responses.200.content.application/json.properties.data.items.properties.expires_at | Type removed: ['integer']; Nullable added (OpenAI non-nullable); Union variants added: 2 |
responses.200.content.application/json.properties.data.items.properties.failed_at | Type removed: ['integer']; Nullable added (OpenAI non-nullable); Union variants added: 2 |
responses.200.content.application/json.properties.data.items.properties.finalizing_at | Type removed: ['integer']; Nullable added (OpenAI non-nullable); Union variants added: 2 |
responses.200.content.application/json.properties.data.items.properties.in_progress_at | Type removed: ['integer']; Nullable added (OpenAI non-nullable); Union variants added: 2 |
responses.200.content.application/json.properties.data.items.properties.model | Type removed: ['string']; Nullable added (OpenAI non-nullable); Union variants added: 2 |
responses.200.content.application/json.properties.data.items.properties.output_file_id | Type removed: ['string']; Nullable added (OpenAI non-nullable); Union variants added: 2 |
responses.200.content.application/json.properties.data.items.properties.request_counts | Type removed: ['object']; Union variants added: 2 |
responses.200.content.application/json.properties.data.items.properties.usage | Type removed: ['object']; Union variants added: 2 |
responses.200.content.application/json.properties.first_id | Type removed: ['string']; Nullable added (OpenAI non-nullable); Union variants added: 2 |
responses.200.content.application/json.properties.has_more | Default changed: None -> False |
responses.200.content.application/json.properties.last_id | Type removed: ['string']; Nullable added (OpenAI non-nullable); Union variants added: 2 |
POST
Missing Properties (11)
requestBody.content.application/json.properties.output_expires_afterresponses.200.content.application/json.properties.errors.properties.dataresponses.200.content.application/json.properties.errors.properties.objectresponses.200.content.application/json.properties.request_counts.properties.completedresponses.200.content.application/json.properties.request_counts.properties.failedresponses.200.content.application/json.properties.request_counts.properties.totalresponses.200.content.application/json.properties.usage.properties.input_tokensresponses.200.content.application/json.properties.usage.properties.input_tokens_detailsresponses.200.content.application/json.properties.usage.properties.output_tokensresponses.200.content.application/json.properties.usage.properties.output_tokens_detailsresponses.200.content.application/json.properties.usage.properties.total_tokens
Schema Issues (15)
| Property | Issues |
|---|---|
requestBody.content.application/json.properties.endpoint | Enum removed: ['/v1/responses', '/v1/chat/completions', '/v1/embeddings', '/v1/completions', '/v1/moderations', '/v1/images/generations', '/v1/images/edits', '/v1/videos'] |
responses.200.content.application/json.properties.cancelled_at | Type removed: ['integer']; Nullable added (OpenAI non-nullable); Union variants added: 2 |
responses.200.content.application/json.properties.cancelling_at | Type removed: ['integer']; Nullable added (OpenAI non-nullable); Union variants added: 2 |
responses.200.content.application/json.properties.completed_at | Type removed: ['integer']; Nullable added (OpenAI non-nullable); Union variants added: 2 |
responses.200.content.application/json.properties.error_file_id | Type removed: ['string']; Nullable added (OpenAI non-nullable); Union variants added: 2 |
responses.200.content.application/json.properties.errors | Type removed: ['object']; Union variants added: 2 |
responses.200.content.application/json.properties.expired_at | Type removed: ['integer']; Nullable added (OpenAI non-nullable); Union variants added: 2 |
responses.200.content.application/json.properties.expires_at | Type removed: ['integer']; Nullable added (OpenAI non-nullable); Union variants added: 2 |
responses.200.content.application/json.properties.failed_at | Type removed: ['integer']; Nullable added (OpenAI non-nullable); Union variants added: 2 |
responses.200.content.application/json.properties.finalizing_at | Type removed: ['integer']; Nullable added (OpenAI non-nullable); Union variants added: 2 |
responses.200.content.application/json.properties.in_progress_at | Type removed: ['integer']; Nullable added (OpenAI non-nullable); Union variants added: 2 |
responses.200.content.application/json.properties.model | Type removed: ['string']; Nullable added (OpenAI non-nullable); Union variants added: 2 |
responses.200.content.application/json.properties.output_file_id | Type removed: ['string']; Nullable added (OpenAI non-nullable); Union variants added: 2 |
responses.200.content.application/json.properties.request_counts | Type removed: ['object']; Union variants added: 2 |
responses.200.content.application/json.properties.usage | Type removed: ['object']; Union variants added: 2 |
/batches/{batch_id}
GET
Missing Properties (10)
responses.200.content.application/json.properties.errors.properties.dataresponses.200.content.application/json.properties.errors.properties.objectresponses.200.content.application/json.properties.request_counts.properties.completedresponses.200.content.application/json.properties.request_counts.properties.failedresponses.200.content.application/json.properties.request_counts.properties.totalresponses.200.content.application/json.properties.usage.properties.input_tokensresponses.200.content.application/json.properties.usage.properties.input_tokens_detailsresponses.200.content.application/json.properties.usage.properties.output_tokensresponses.200.content.application/json.properties.usage.properties.output_tokens_detailsresponses.200.content.application/json.properties.usage.properties.total_tokens
Schema Issues (14)
| Property | Issues |
|---|---|
responses.200.content.application/json.properties.cancelled_at | Type removed: ['integer']; Nullable added (OpenAI non-nullable); Union variants added: 2 |
responses.200.content.application/json.properties.cancelling_at | Type removed: ['integer']; Nullable added (OpenAI non-nullable); Union variants added: 2 |
responses.200.content.application/json.properties.completed_at | Type removed: ['integer']; Nullable added (OpenAI non-nullable); Union variants added: 2 |
responses.200.content.application/json.properties.error_file_id | Type removed: ['string']; Nullable added (OpenAI non-nullable); Union variants added: 2 |
responses.200.content.application/json.properties.errors | Type removed: ['object']; Union variants added: 2 |
responses.200.content.application/json.properties.expired_at | Type removed: ['integer']; Nullable added (OpenAI non-nullable); Union variants added: 2 |
responses.200.content.application/json.properties.expires_at | Type removed: ['integer']; Nullable added (OpenAI non-nullable); Union variants added: 2 |
responses.200.content.application/json.properties.failed_at | Type removed: ['integer']; Nullable added (OpenAI non-nullable); Union variants added: 2 |
responses.200.content.application/json.properties.finalizing_at | Type removed: ['integer']; Nullable added (OpenAI non-nullable); Union variants added: 2 |
responses.200.content.application/json.properties.in_progress_at | Type removed: ['integer']; Nullable added (OpenAI non-nullable); Union variants added: 2 |
responses.200.content.application/json.properties.model | Type removed: ['string']; Nullable added (OpenAI non-nullable); Union variants added: 2 |
responses.200.content.application/json.properties.output_file_id | Type removed: ['string']; Nullable added (OpenAI non-nullable); Union variants added: 2 |
responses.200.content.application/json.properties.request_counts | Type removed: ['object']; Union variants added: 2 |
responses.200.content.application/json.properties.usage | Type removed: ['object']; Union variants added: 2 |
/batches/{batch_id}/cancel
POST
Missing Properties (10)
responses.200.content.application/json.properties.errors.properties.dataresponses.200.content.application/json.properties.errors.properties.objectresponses.200.content.application/json.properties.request_counts.properties.completedresponses.200.content.application/json.properties.request_counts.properties.failedresponses.200.content.application/json.properties.request_counts.properties.totalresponses.200.content.application/json.properties.usage.properties.input_tokensresponses.200.content.application/json.properties.usage.properties.input_tokens_detailsresponses.200.content.application/json.properties.usage.properties.output_tokensresponses.200.content.application/json.properties.usage.properties.output_tokens_detailsresponses.200.content.application/json.properties.usage.properties.total_tokens
Schema Issues (14)
| Property | Issues |
|---|---|
responses.200.content.application/json.properties.cancelled_at | Type removed: ['integer']; Nullable added (OpenAI non-nullable); Union variants added: 2 |
responses.200.content.application/json.properties.cancelling_at | Type removed: ['integer']; Nullable added (OpenAI non-nullable); Union variants added: 2 |
responses.200.content.application/json.properties.completed_at | Type removed: ['integer']; Nullable added (OpenAI non-nullable); Union variants added: 2 |
responses.200.content.application/json.properties.error_file_id | Type removed: ['string']; Nullable added (OpenAI non-nullable); Union variants added: 2 |
responses.200.content.application/json.properties.errors | Type removed: ['object']; Union variants added: 2 |
responses.200.content.application/json.properties.expired_at | Type removed: ['integer']; Nullable added (OpenAI non-nullable); Union variants added: 2 |
responses.200.content.application/json.properties.expires_at | Type removed: ['integer']; Nullable added (OpenAI non-nullable); Union variants added: 2 |
responses.200.content.application/json.properties.failed_at | Type removed: ['integer']; Nullable added (OpenAI non-nullable); Union variants added: 2 |
responses.200.content.application/json.properties.finalizing_at | Type removed: ['integer']; Nullable added (OpenAI non-nullable); Union variants added: 2 |
responses.200.content.application/json.properties.in_progress_at | Type removed: ['integer']; Nullable added (OpenAI non-nullable); Union variants added: 2 |
responses.200.content.application/json.properties.model | Type removed: ['string']; Nullable added (OpenAI non-nullable); Union variants added: 2 |
responses.200.content.application/json.properties.output_file_id | Type removed: ['string']; Nullable added (OpenAI non-nullable); Union variants added: 2 |
responses.200.content.application/json.properties.request_counts | Type removed: ['object']; Union variants added: 2 |
responses.200.content.application/json.properties.usage | Type removed: ['object']; Union variants added: 2 |
Completions
Score: 58.7% · Issues: 17 · Missing: 2
/completions
POST
Missing Properties (2)
responses.200.content.application/json.properties.system_fingerprintresponses.200.content.application/json.properties.usage
Schema Issues (17)
| Property | Issues |
|---|---|
requestBody.content.application/json.properties.best_of | Type removed: ['integer']; Nullable added (OpenAI non-nullable); Union variants added: 2; Default changed: 1 -> None |
requestBody.content.application/json.properties.echo | Type removed: ['boolean']; Nullable added (OpenAI non-nullable); Union variants added: 2; Default changed: False -> None |
requestBody.content.application/json.properties.frequency_penalty | Type removed: ['number']; Nullable added (OpenAI non-nullable); Union variants added: 2; Default changed: 0 -> None |
requestBody.content.application/json.properties.logit_bias | Type removed: ['object']; Nullable added (OpenAI non-nullable); Union variants added: 2 |
requestBody.content.application/json.properties.logprobs | Type removed: ['integer']; Nullable added (OpenAI non-nullable); Union variants added: 2 |
requestBody.content.application/json.properties.max_tokens | Type removed: ['integer']; Nullable added (OpenAI non-nullable); Union variants added: 2; Default changed: 16 -> None |
requestBody.content.application/json.properties.model | Type added: ['string']; Union variants removed: 2 |
requestBody.content.application/json.properties.n | Type removed: ['integer']; Nullable added (OpenAI non-nullable); Union variants added: 2; Default changed: 1 -> None |
requestBody.content.application/json.properties.presence_penalty | Type removed: ['number']; Nullable added (OpenAI non-nullable); Union variants added: 2; Default changed: 0 -> None |
requestBody.content.application/json.properties.prompt | Union variants added: 4; Default changed: <|endoftext|> -> None |
requestBody.content.application/json.properties.seed | Type removed: ['integer']; Nullable added (OpenAI non-nullable); Union variants added: 2 |
requestBody.content.application/json.properties.stop | Nullable added (OpenAI non-nullable); Union variants added: 3 |
requestBody.content.application/json.properties.stream | Type removed: ['boolean']; Nullable added (OpenAI non-nullable); Union variants added: 2; Default changed: False -> None |
requestBody.content.application/json.properties.suffix | Type removed: ['string']; Nullable added (OpenAI non-nullable); Union variants added: 2 |
requestBody.content.application/json.properties.temperature | Type removed: ['number']; Nullable added (OpenAI non-nullable); Union variants added: 2; Default changed: 1 -> None |
requestBody.content.application/json.properties.top_p | Type removed: ['number']; Nullable added (OpenAI non-nullable); Union variants added: 2; Default changed: 1 -> None |
requestBody.content.application/json.properties.user | Type removed: ['string']; Nullable added (OpenAI non-nullable); Union variants added: 2 |
Files
Score: 76.2% · Issues: 8 · Missing: 2
/files
GET
Schema Issues (2)
| Property | Issues |
|---|---|
responses.200.content.application/json.properties.data.items.properties.expires_at | Type removed: ['integer']; Nullable added (OpenAI non-nullable); Union variants added: 2 |
responses.200.content.application/json.properties.data.items.properties.purpose | Enum values removed: ['assistants_output', 'batch_output', 'fine-tune', 'fine-tune-results', 'vision', 'user_data'] |
POST
Missing Properties (2)
requestBody.content.multipart/form-data.properties.expires_after.properties.anchorrequestBody.content.multipart/form-data.properties.expires_after.properties.seconds
Schema Issues (4)
| Property | Issues |
|---|---|
requestBody.content.multipart/form-data.properties.expires_after | Type removed: ['object']; Union variants added: 2 |
requestBody.content.multipart/form-data.properties.purpose | Enum values removed: ['fine-tune', 'vision', 'user_data', 'evals'] |
responses.200.content.application/json.properties.expires_at | Type removed: ['integer']; Nullable added (OpenAI non-nullable); Union variants added: 2 |
responses.200.content.application/json.properties.purpose | Enum values removed: ['assistants_output', 'batch_output', 'fine-tune', 'fine-tune-results', 'vision', 'user_data'] |
/files/{file_id}
GET
Schema Issues (2)
| Property | Issues |
|---|---|
responses.200.content.application/json.properties.expires_at | Type removed: ['integer']; Nullable added (OpenAI non-nullable); Union variants added: 2 |
responses.200.content.application/json.properties.purpose | Enum values removed: ['assistants_output', 'batch_output', 'fine-tune', 'fine-tune-results', 'vision', 'user_data'] |
Embeddings
Score: 78.6% · Issues: 3 · Missing: 0
/embeddings
POST
Schema Issues (3)
| Property | Issues |
|---|---|
requestBody.content.application/json.properties.input | Union variants added: 4 |
requestBody.content.application/json.properties.model | Type added: ['string']; Union variants removed: 2 |
responses.200.content.application/json.properties.data.items.properties.embedding | Type removed: ['array']; Union variants added: 2 |
Vector stores
Score: 82.9% · Issues: 41 · Missing: 12
/vector_stores
GET
Missing Properties (2)
responses.200.content.application/json.properties.data.items.properties.expires_after.properties.anchorresponses.200.content.application/json.properties.data.items.properties.expires_after.properties.days
Schema Issues (3)
| Property | Issues |
|---|---|
responses.200.content.application/json.properties.data.items.properties.expires_after | Type removed: ['object']; Union variants added: 2 |
responses.200.content.application/json.properties.data.items.properties.name | Default changed: None -> |
responses.200.content.application/json.properties.data.items.properties.usage_bytes | Default changed: None -> 0 |
POST
Missing Properties (4)
requestBody.content.application/json.properties.expires_after.properties.anchorrequestBody.content.application/json.properties.expires_after.properties.daysresponses.200.content.application/json.properties.expires_after.properties.anchorresponses.200.content.application/json.properties.expires_after.properties.days
Schema Issues (8)
| Property | Issues |
|---|---|
requestBody.content.application/json.properties.chunking_strategy | Type removed: ['object']; Union variants added: 2 |
requestBody.content.application/json.properties.description | Type removed: ['string']; Nullable added (OpenAI non-nullable); Union variants added: 2 |
requestBody.content.application/json.properties.expires_after | Type removed: ['object']; Union variants added: 2 |
requestBody.content.application/json.properties.file_ids | Type removed: ['array']; Nullable added (OpenAI non-nullable); Union variants added: 2 |
requestBody.content.application/json.properties.name | Type removed: ['string']; Nullable added (OpenAI non-nullable); Union variants added: 2 |
responses.200.content.application/json.properties.expires_after | Type removed: ['object']; Union variants added: 2 |
responses.200.content.application/json.properties.name | Default changed: None -> |
responses.200.content.application/json.properties.usage_bytes | Default changed: None -> 0 |
/vector_stores/{vector_store_id}
GET
Missing Properties (2)
responses.200.content.application/json.properties.expires_after.properties.anchorresponses.200.content.application/json.properties.expires_after.properties.days
Schema Issues (3)
| Property | Issues |
|---|---|
responses.200.content.application/json.properties.expires_after | Type removed: ['object']; Union variants added: 2 |
responses.200.content.application/json.properties.name | Default changed: None -> |
responses.200.content.application/json.properties.usage_bytes | Default changed: None -> 0 |
POST
Missing Properties (2)
responses.200.content.application/json.properties.expires_after.properties.anchorresponses.200.content.application/json.properties.expires_after.properties.days
Schema Issues (5)
| Property | Issues |
|---|---|
requestBody.content.application/json.properties.expires_after | Union variants added: 2 |
requestBody.content.application/json.properties.name | Type removed: ['string']; Nullable added (OpenAI non-nullable); Union variants added: 2 |
responses.200.content.application/json.properties.expires_after | Type removed: ['object']; Union variants added: 2 |
responses.200.content.application/json.properties.name | Default changed: None -> |
responses.200.content.application/json.properties.usage_bytes | Default changed: None -> 0 |
/vector_stores/{vector_store_id}/file_batches
POST
Schema Issues (2)
| Property | Issues |
|---|---|
requestBody.content.application/json.properties.chunking_strategy | Type removed: ['object']; Union variants added: 2 |
requestBody.content.application/json.properties.files | Type removed: ['array']; Nullable added (OpenAI non-nullable); Union variants added: 2 |
/vector_stores/{vector_store_id}/file_batches/{batch_id}/files
GET
Schema Issues (3)
| Property | Issues |
|---|---|
responses.200.content.application/json.properties.data.items.properties.chunking_strategy | Type removed: ['object']; Union variants added: 3; Union variants removed: 2 |
responses.200.content.application/json.properties.data.items.properties.last_error | Union variants added: 1; Union variants removed: 1 |
responses.200.content.application/json.properties.data.items.properties.usage_bytes | Default changed: None -> 0 |
/vector_stores/{vector_store_id}/files
GET
Schema Issues (3)
| Property | Issues |
|---|---|
responses.200.content.application/json.properties.data.items.properties.chunking_strategy | Type removed: ['object']; Union variants added: 3; Union variants removed: 2 |
responses.200.content.application/json.properties.data.items.properties.last_error | Union variants added: 1; Union variants removed: 1 |
responses.200.content.application/json.properties.data.items.properties.usage_bytes | Default changed: None -> 0 |
POST
Schema Issues (4)
| Property | Issues |
|---|---|
requestBody.content.application/json.properties.chunking_strategy | Type removed: ['object']; Union variants added: 2 |
responses.200.content.application/json.properties.chunking_strategy | Type removed: ['object']; Union variants added: 3; Union variants removed: 2 |
responses.200.content.application/json.properties.last_error | Union variants added: 1; Union variants removed: 1 |
responses.200.content.application/json.properties.usage_bytes | Default changed: None -> 0 |
/vector_stores/{vector_store_id}/files/{file_id}
GET
Schema Issues (3)
| Property | Issues |
|---|---|
responses.200.content.application/json.properties.chunking_strategy | Type removed: ['object']; Union variants added: 3; Union variants removed: 2 |
responses.200.content.application/json.properties.last_error | Union variants added: 1; Union variants removed: 1 |
responses.200.content.application/json.properties.usage_bytes | Default changed: None -> 0 |
POST
Schema Issues (4)
| Property | Issues |
|---|---|
requestBody.content.application/json.properties.attributes | Type added: ['object']; Nullable removed (OpenAI nullable); Union variants removed: 2 |
responses.200.content.application/json.properties.chunking_strategy | Type removed: ['object']; Union variants added: 3; Union variants removed: 2 |
responses.200.content.application/json.properties.last_error | Union variants added: 1; Union variants removed: 1 |
responses.200.content.application/json.properties.usage_bytes | Default changed: None -> 0 |
/vector_stores/{vector_store_id}/search
POST
Missing Properties (2)
requestBody.content.application/json.properties.ranking_options.properties.rankerrequestBody.content.application/json.properties.ranking_options.properties.score_threshold
Schema Issues (3)
| Property | Issues |
|---|---|
requestBody.content.application/json.properties.filters | Union variants added: 2 |
requestBody.content.application/json.properties.query | Union variants added: 2 |
requestBody.content.application/json.properties.ranking_options | Type removed: ['object']; Union variants added: 2 |
Responses
Score: 88.9% · Issues: 25 · Missing: 0
/responses
POST
Schema Issues (22)
| Property | Issues | Tested |
|---|---|---|
requestBody.content.application/json.properties.input | Union variants added: 2; Union variants removed: 2 | Yes |
requestBody.content.application/json.properties.model | Type added: ['string']; Nullable removed (OpenAI nullable); Union variants removed: 2 | Yes |
requestBody.content.application/json.properties.parallel_tool_calls | Default changed: None -> True | Yes |
requestBody.content.application/json.properties.reasoning | Union variants added: 1; Union variants removed: 1 | Yes |
requestBody.content.application/json.properties.service_tier | Union variants added: 2 | Yes |
requestBody.content.application/json.properties.store | Default changed: None -> True | Yes |
requestBody.content.application/json.properties.stream | Default changed: None -> False | Yes |
requestBody.content.application/json.properties.stream_options | Union variants added: 1; Union variants removed: 1 | No |
requestBody.content.application/json.properties.text | Union variants added: 1; Union variants removed: 1 | No |
requestBody.content.application/json.properties.tool_choice | Union variants added: 2; Union variants removed: 1 | Yes |
requestBody.content.application/json.properties.truncation | Union variants added: 2 | Yes |
responses.200.content.application/json.properties.error | Union variants added: 1; Union variants removed: 1 | Yes |
responses.200.content.application/json.properties.incomplete_details | Union variants added: 1; Union variants removed: 1 | Yes |
responses.200.content.application/json.properties.metadata | Union variants added: 2 | Yes |
responses.200.content.application/json.properties.output.items | Union variants added: 8; Union variants removed: 4 | Yes |
responses.200.content.application/json.properties.parallel_tool_calls | Default changed: None -> True | Yes |
responses.200.content.application/json.properties.reasoning | Union variants added: 1; Union variants removed: 1 | Yes |
responses.200.content.application/json.properties.text | Type added: ['object'] | No |
responses.200.content.application/json.properties.tool_choice | Union variants added: 3 | Yes |
responses.200.content.application/json.properties.tools.items | Union variants added: 4; Union variants removed: 1 | Yes |
responses.200.content.application/json.properties.truncation | Union variants added: 2 | Yes |
responses.200.content.application/json.properties.usage | Union variants added: 1; Union variants removed: 1 | Yes |
/responses/compact
POST
Schema Issues (3)
| Property | Issues | Tested |
|---|---|---|
requestBody.content.application/json.properties.input | Union variants added: 2; Union variants removed: 1 | Yes |
requestBody.content.application/json.properties.model | Type added: ['string']; Union variants removed: 3 | Yes |
responses.200.content.application/json.properties.output.items | Union variants added: 4 | Yes |
Models
Score: 93.3% · Issues: 1 · Missing: 0
/models/{model}
GET
Schema Issues (1)
| Property | Issues |
|---|---|
responses.200.content.application/json.properties.owned_by | Default changed: None -> llama_stack |
Chat
Score: 98.5% · Issues: 5 · Missing: 1
/chat/completions
GET
Missing Properties (1)
parameters.query.metadata
Schema Issues (1)
| Property | Issues |
|---|---|
responses.200.content.application/json.properties.data.items.properties.choices.items.properties.message.properties.tool_calls.items | Union variants added: 2 |
POST
Schema Issues (3)
| Property | Issues |
|---|---|
responses.200.content.application/json.properties.choices.items.properties.message.properties.tool_calls.items | Union variants added: 2 |
responses.200.content.text/event-stream.properties.choices.items.properties.logprobs.properties.content | Type removed: ['array']; Nullable added (OpenAI non-nullable); Union variants added: 2 |
responses.200.content.text/event-stream.properties.choices.items.properties.logprobs.properties.refusal | Type removed: ['array']; Nullable added (OpenAI non-nullable); Union variants added: 2 |
/chat/completions/{completion_id}
GET
Schema Issues (1)
| Property | Issues |
|---|---|
responses.200.content.application/json.properties.choices.items.properties.message.properties.tool_calls.items | Union variants added: 2 |
Conversations
Score: 98.9% · Issues: 19 · Missing: 4
/conversations
POST
Schema Issues (2)
| Property | Issues | Tested |
|---|---|---|
requestBody.content.application/json.properties.metadata | Union variants added: 1; Union variants removed: 1 | Yes |
responses.200.content.application/json.properties.metadata | Union variants added: 2 | Yes |
/conversations/{conversation_id}
DELETE
Schema Issues (2)
| Property | Issues | Tested |
|---|---|---|
responses.200.content.application/json.properties.deleted | Default changed: None -> True | No |
responses.200.content.application/json.properties.object | Enum removed: ['conversation.deleted'] | No |
GET
Schema Issues (1)
| Property | Issues | Tested |
|---|---|---|
responses.200.content.application/json.properties.metadata | Union variants added: 2 | Yes |
POST
Schema Issues (2)
| Property | Issues | Tested |
|---|---|---|
requestBody.content.application/json.properties.metadata | Type added: ['object']; Nullable removed (OpenAI nullable); Union variants removed: 2 | Yes |
responses.200.content.application/json.properties.metadata | Union variants added: 2 | Yes |
/conversations/{conversation_id}/items
GET
Schema Issues (5)
| Property | Issues | Tested |
|---|---|---|
responses.200.content.application/json.properties.data.items | Union variants added: 10; Union variants removed: 25 | No |
responses.200.content.application/json.properties.first_id | Type removed: ['string']; Nullable added (OpenAI non-nullable); Union variants added: 2 | No |
responses.200.content.application/json.properties.has_more | Default changed: None -> False | No |
responses.200.content.application/json.properties.last_id | Type removed: ['string']; Nullable added (OpenAI non-nullable); Union variants added: 2 | No |
responses.200.content.application/json.properties.object | Enum removed: ['list']; Default changed: None -> list | No |
POST
Missing Properties (1)
parameters.query.include
Schema Issues (6)
| Property | Issues | Tested |
|---|---|---|
requestBody.content.application/json.properties.items.items | Union variants added: 10; Union variants removed: 3 | No |
responses.200.content.application/json.properties.data.items | Union variants added: 10; Union variants removed: 25 | No |
responses.200.content.application/json.properties.first_id | Type removed: ['string']; Nullable added (OpenAI non-nullable); Union variants added: 2 | No |
responses.200.content.application/json.properties.has_more | Default changed: None -> False | No |
responses.200.content.application/json.properties.last_id | Type removed: ['string']; Nullable added (OpenAI non-nullable); Union variants added: 2 | No |
responses.200.content.application/json.properties.object | Enum removed: ['list']; Default changed: None -> list | No |
/conversations/{conversation_id}/items/{item_id}
DELETE
Missing Properties (2)
responses.200.content.application/json.properties.created_atresponses.200.content.application/json.properties.metadata
Schema Issues (1)
| Property | Issues | Tested |
|---|---|---|
responses.200.content.application/json.properties.object | Enum removed: ['conversation']; Default changed: conversation -> conversation.item.deleted | No |
GET
Missing Properties (1)
parameters.query.include
How to Improve Conformance
To improve conformance scores:
- Fix Schema Issues: Update Pydantic models in
src/llama_stack_api/to match OpenAI's schema - Add Missing Properties: Implement missing fields in response models
- Add Missing Endpoints: Implement endpoints listed in the Missing Endpoints section
Run the coverage analyzer to check your progress:
python scripts/openai_coverage.py --update
Then regenerate this documentation:
python scripts/generate_openai_coverage_docs.py