OpenAI API Conformance Report
This page provides a detailed breakdown of OGX'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 | 93.2% |
| Endpoints Implemented | 29/146 |
| Total Properties Checked | 3432 |
| Schema/Type Issues | 167 |
| Missing Properties | 65 |
| Total Issues to Fix | 232 |
Integration Test Coverage
Overall Test Coverage Score: 42.9%
| Category | Covered | Total | Score |
|---|---|---|---|
| CRUD Operations | 5 | 7 | 71.4% |
| Conversations | 5 | 9 | 55.6% |
| Request Parameters | 20 | 25 | 80.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 |
|---|---|---|---|---|
| Batch | 39.9% | 168 | 60 | 41 |
| Completions | 58.7% | 46 | 17 | 2 |
| Models | 60.0% | 15 | 0 | 6 |
| Embeddings | 78.6% | 14 | 3 | 0 |
| Vector stores | 82.9% | 310 | 41 | 12 |
| Responses | 88.8% | 223 | 25 | 0 |
| Files | 92.9% | 42 | 1 | 2 |
| Chat | 98.7% | 449 | 5 | 1 |
| Conversations | 99.3% | 2165 | 15 | 1 |
Missing Endpoints
The following OpenAI API endpoints are not yet implemented in OGX:
/assistants
/assistants/assistants/{assistant_id}
/audio
/audio/speech/audio/transcriptions/audio/translations/audio/voice_consents/audio/voice_consents/{consent_id}/audio/voices
/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
/moderations
/moderations
/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.
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 |
Models
Score: 60.0% · Issues: 0 · Missing: 6
/models
GET
Missing Properties (2)
responses.200.content.application/json.properties.dataresponses.200.content.application/json.properties.object
/models/{model}
GET
Missing Properties (4)
responses.200.content.application/json.properties.createdresponses.200.content.application/json.properties.idresponses.200.content.application/json.properties.objectresponses.200.content.application/json.properties.owned_by
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.8% · 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']; Default changed: None -> {'format': {'type': 'text'}} | 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 |
Files
Score: 92.9% · Issues: 1 · Missing: 2
/files
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 (1)
| Property | Issues |
|---|---|
requestBody.content.multipart/form-data.properties.expires_after | Type removed: ['object']; Union variants added: 2 |
Chat
Score: 98.7% · 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: 99.3% · Issues: 15 · Missing: 1
/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 | Default changed: conversation.deleted -> None | 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 (3)
| Property | Issues | Tested |
|---|---|---|
responses.200.content.application/json.properties.data.items | Union variants added: 11; 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.last_id | Type removed: ['string']; Nullable added (OpenAI non-nullable); Union variants added: 2 | No |
POST
Missing Properties (1)
parameters.query.include
Schema Issues (4)
| Property | Issues | Tested |
|---|---|---|
requestBody.content.application/json.properties.items.items | Union variants added: 11; Union variants removed: 3 | No |
responses.200.content.application/json.properties.data.items | Union variants added: 11; 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.last_id | Type removed: ['string']; Nullable added (OpenAI non-nullable); Union variants added: 2 | No |
/conversations/{conversation_id}/items/{item_id}
DELETE
Schema Issues (1)
| Property | Issues | Tested |
|---|---|---|
responses.200.content.application/json.properties.metadata | Union variants added: 2 | Yes |
How to Improve Conformance
To improve conformance scores:
- Fix Schema Issues: Update Pydantic models in
src/ogx_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