Skip to main content

Gateway compatibility ledger

Pinned source: ai-gateway-openapi/openapi.yaml, SHA-256 de7a1bd98bdb2edb7428a33054d9f6000b9568d1cd5b603d1a8302c053d094d9. Generated by scripts/openapi/generate-ledger.ts from npm run openapi:audit.

There are 138/242 directly matched Portkey operations (57.02%), not 99% of the entire upstream product. All 242 operations are classified below; classification is not coverage. AIRS has a separate conformance report.

The 2026-09-06 design update adds a separate, explicitly configured runtime inference client. Remaining provider operations are still gaps. OAuth plus x-tsg-id and SCM admin/data routing are not interchangeable with Portkey API keys and hostnames. Permission denial is not proof that an API is unsupported.

DispositionOperations
direct-contract138
tenant-unverified48
runtime-retired-upstream23
scm-adapted11
scm-adapted-partial22

Upstream retirement note​

The pinned source retains 23 Assistants/Threads operations. OpenAI confirms the Assistants API was retired on August 26, 2026. They cannot be live-certified against the configured OpenAI backend. This does not prove all other provider or gateway compatibility modes are absent. All 23 remain unimplemented gaps in the 242-operation denominator; Responses support is not counted as equivalent coverage.

Live verification exceptions​

Successful owned-fixture checks cover ordinary MCP server CRUD, usage/rate policy CRUD, MCP guardrail mappings, log-export draft CRUD, and admin-plane unbound secret-reference CRUD. The secret-reference SDK lifecycle passes 7/7; external secret resolution is not tested. Read methods also have a separate timestamped live-results suite linked in the conformance report. The following methods remain experimental; an offline transport test is not a live pass.

MethodEvidence / limitation
inference.connectRealtimeExplicit caller-owned WebSocket adapter, bounded JSON events and deterministic cancellation. The prescribed-model live probe upgrades with HTTP 101, then receives invalid_model before session readiness. A successful provider session/generation remains unverified; an upgrade is not a successful realtime workflow.
inference.updateFeedbackConfirmed runtime handler; owned-record PUT returns HTTP 500 because feedback lookup requires uninitialized ClickHouse in control-plane storage mode. Typed contracts are experimental, not a successful live update.
inference.getLogConfirmed runtime handler; owned-log reads return HTTP 500 because the deployed handler has no control-plane storage branch. Typed contracts and v2 timestamp validation are experimental, not successful live retrieval.
inference.createCompletionDeployed route confirmed; prescribed-model legacy completion returns HTTP 404. Typed JSON/SSE contracts are experimental, not live certification.
inference.createPromptCompletionDeployed route dispatches to chat/legacy completion handlers. No owned live template is provisioned; flattened input and JSON/SSE contracts remain experimental.
inference.createPromptRenderDeployed route confirmed. No owned live template is provisioned; flattened request and rendered-response contracts remain experimental.
inference.createImageOffline JSON contract only. The prescribed-model generation probe returned HTTP 400; no alternate model used.
inference.createImageEditOffline multipart contract only. The prescribed-model edit probe returned HTTP 400; successful live editing is unverified.
inference.createImageVariationOffline multipart contract only. The prescribed-model variation probe returned HTTP 404; successful live variation is unverified.
inference.createSpeechOffline binary-response contract only. The prescribed-model speech probe returned HTTP 404; no audio model was substituted.
inference.createTranscriptionOffline multipart/format-specific response contracts only. The prescribed-model transcription probe returned HTTP 400 with model incompatibility.
inference.createTranslationOffline multipart/format-specific response contracts only. The prescribed-model translation probe returned HTTP 400 with model incompatibility.
inference.createModerationOffline JSON contract only. The prescribed-model moderation probe returned HTTP 400; no specialized model was substituted.
inference.createRerankOffline JSON contract only. The prescribed-provider rerank probe returned HTTP 500; no different provider was configured.
inference.createOcrOffline JSON contract only. The prescribed-provider OCR probe returned HTTP 500; no different provider was configured.
mcpServers.testSCM returned HTTP 403 on an owned server; authorization remains unverified.
mcpServers.deleteConnectionsSCM returned HTTP 403 on an owned server; authorization remains unverified.
mcpServers.updateCapabilitiesOwned public-upstream tool lifecycle passes 16/16. The subsequent metadata suite records 18 pass/2 fail: prompt disable/re-enable passes with runtime counts 6/5/6; resource discovery fails required-name validation, and three runtime templates never synchronize into SCM. Both deployed 2.20.0 replicas contain the corresponding resource-name stripping and template pass-through handlers. An independent 23/23 audit confirms all public/synthetic/metadata fixtures retired (2026-09-07). No tools, prompts or resource contents were executed/read. Resource variants and authenticated upstreams remain unverified; published experimental stability is retained.
usageLimits.resetEntityPost-release owned traffic/reset lifecycle passes 8/8 with an independent 2/2 retirement audit (2026-09-07). This supersedes the earlier missing-entity prerequisite. SDK 0.21.0 still labels the method experimental; its published stability guarantee is unchanged.
logExports.startSCM returned HTTP 500 (AB04) for an isolated export; successful execution is unverified.
logExports.cancelNo running owned export was available; contract-tested only.
logExports.downloadThe owned export could not start; successful download is unverified.
inference.deleteModelNo owned fine-tuned model was provisioned for deletion; offline contract only.
inference.createFineTuningJobNo training job was started. The designated inference model does not support fine-tuning; offline contract only.
inference.retrieveFineTuningJobNo owned training job was available; offline contract only.
inference.cancelFineTuningJobNo owned training job was available; existing jobs were not changed. Offline contract only.
inference.listFineTuningEventsNo owned training job was available; offline contract only.
inference.listFineTuningJobCheckpointsNo owned training job checkpoints were available; offline contract only.
inference.cancelVectorStoreFileBatchThe owned file-batch cancellation endpoint returned HTTP 500; successful cancellation remains unverified. Create, completed retrieval and file listing passed.

Every upstream operation​

direct-contract means a method/path implementation exists, not that every request field or response variant has been exercised on the tenant. The field audit models 1358/1358 request and 2329/2329 response property occurrences for these exact matches. Catalog fields remain forward-compatible; SCM behavior takes precedence over upstream-only enum catalogs and envelopes.

OperationDispositionSDK / explanation
POST /chat/completionsdirect-contractinference.createChatCompletion
GET /realtimedirect-contractinference.connectRealtime
POST /completionsdirect-contractinference.createCompletion
POST /collectionstenant-unverifiedRead-only probes of this family were denied or unavailable on the supplied SCM tenant. This is not proof that every method is unsupported. No speculative write API added.
GET /collectionstenant-unverifiedRead-only probes of this family were denied or unavailable on the supplied SCM tenant. This is not proof that every method is unsupported. No speculative write API added.
GET /collections/{collectionId}tenant-unverifiedRead-only probes of this family were denied or unavailable on the supplied SCM tenant. This is not proof that every method is unsupported. No speculative write API added.
PUT /collections/{collectionId}tenant-unverifiedRead-only probes of this family were denied or unavailable on the supplied SCM tenant. This is not proof that every method is unsupported. No speculative write API added.
DELETE /collections/{collectionId}tenant-unverifiedRead-only probes of this family were denied or unavailable on the supplied SCM tenant. This is not proof that every method is unsupported. No speculative write API added.
POST /labelstenant-unverifiedRead-only probes of this family were denied or unavailable on the supplied SCM tenant. This is not proof that every method is unsupported. No speculative write API added.
GET /labelstenant-unverifiedRead-only probes of this family were denied or unavailable on the supplied SCM tenant. This is not proof that every method is unsupported. No speculative write API added.
GET /labels/{labelId}tenant-unverifiedRead-only probes of this family were denied or unavailable on the supplied SCM tenant. This is not proof that every method is unsupported. No speculative write API added.
PUT /labels/{labelId}tenant-unverifiedRead-only probes of this family were denied or unavailable on the supplied SCM tenant. This is not proof that every method is unsupported. No speculative write API added.
DELETE /labels/{labelId}tenant-unverifiedRead-only probes of this family were denied or unavailable on the supplied SCM tenant. This is not proof that every method is unsupported. No speculative write API added.
POST /promptstenant-unverifiedRead-only probes of this family were denied or unavailable on the supplied SCM tenant. This is not proof that every method is unsupported. No speculative write API added.
GET /promptstenant-unverifiedRead-only probes of this family were denied or unavailable on the supplied SCM tenant. This is not proof that every method is unsupported. No speculative write API added.
GET /prompts/{promptId}tenant-unverifiedRead-only probes of this family were denied or unavailable on the supplied SCM tenant. This is not proof that every method is unsupported. No speculative write API added.
PUT /prompts/{promptId}tenant-unverifiedRead-only probes of this family were denied or unavailable on the supplied SCM tenant. This is not proof that every method is unsupported. No speculative write API added.
DELETE /prompts/{promptId}tenant-unverifiedRead-only probes of this family were denied or unavailable on the supplied SCM tenant. This is not proof that every method is unsupported. No speculative write API added.
GET /prompts/{promptId}/versionstenant-unverifiedRead-only probes of this family were denied or unavailable on the supplied SCM tenant. This is not proof that every method is unsupported. No speculative write API added.
GET /prompts/{promptId}/versions/{versionId}tenant-unverifiedRead-only probes of this family were denied or unavailable on the supplied SCM tenant. This is not proof that every method is unsupported. No speculative write API added.
PUT /prompts/{promptId}/versions/{versionId}tenant-unverifiedRead-only probes of this family were denied or unavailable on the supplied SCM tenant. This is not proof that every method is unsupported. No speculative write API added.
PUT /prompts/{promptId}/makeDefaulttenant-unverifiedRead-only probes of this family were denied or unavailable on the supplied SCM tenant. This is not proof that every method is unsupported. No speculative write API added.
POST /prompts/partialstenant-unverifiedRead-only probes of this family were denied or unavailable on the supplied SCM tenant. This is not proof that every method is unsupported. No speculative write API added.
GET /prompts/partialstenant-unverifiedRead-only probes of this family were denied or unavailable on the supplied SCM tenant. This is not proof that every method is unsupported. No speculative write API added.
GET /prompts/partials/{promptPartialId}tenant-unverifiedRead-only probes of this family were denied or unavailable on the supplied SCM tenant. This is not proof that every method is unsupported. No speculative write API added.
PUT /prompts/partials/{promptPartialId}tenant-unverifiedRead-only probes of this family were denied or unavailable on the supplied SCM tenant. This is not proof that every method is unsupported. No speculative write API added.
DELETE /prompts/partials/{promptPartialId}tenant-unverifiedRead-only probes of this family were denied or unavailable on the supplied SCM tenant. This is not proof that every method is unsupported. No speculative write API added.
GET /prompts/partials/{promptPartialId}/versionstenant-unverifiedRead-only probes of this family were denied or unavailable on the supplied SCM tenant. This is not proof that every method is unsupported. No speculative write API added.
PUT /prompts/partials/{promptPartialId}/makeDefaulttenant-unverifiedRead-only probes of this family were denied or unavailable on the supplied SCM tenant. This is not proof that every method is unsupported. No speculative write API added.
POST /prompts/{promptId}/completionsdirect-contractinference.createPromptCompletion
POST /prompts/{promptId}/renderdirect-contractinference.createPromptRender
POST /guardrailsdirect-contractguardrails.create
GET /guardrailsdirect-contractguardrails.list
GET /guardrails/{guardrailId}direct-contractguardrails.get
PUT /guardrails/{guardrailId}direct-contractguardrails.update
DELETE /guardrails/{guardrailId}direct-contractguardrails.delete
PUT /guardrails/{guardrailId}/mcp-serversdirect-contractguardrails.syncMcpServers
GET /guardrails/{guardrailId}/mcp-serversdirect-contractguardrails.getMcpServers
PUT /guardrails/{guardrailId}/mcp-servers/{mcpServerId}direct-contractguardrails.upsertMcpServer
POST /images/generationsdirect-contractruntime-resources.createImage
POST /images/editsdirect-contractruntime-resources.createImageEdit
POST /images/variationsdirect-contractruntime-resources.createImageVariation
POST /embeddingsdirect-contractinference.createEmbedding
POST /rerankdirect-contractruntime-resources.createRerank
POST /ocrdirect-contractruntime-resources.createOcr
POST /audio/speechdirect-contractruntime-resources.createSpeech
POST /audio/transcriptionsdirect-contractruntime-resources.createTranscription
POST /audio/translationsdirect-contractruntime-resources.createTranslation
GET /filesdirect-contractruntime-resources.listFiles
POST /filesdirect-contractruntime-resources.createFile
DELETE /files/{file_id}direct-contractruntime-resources.deleteFile
GET /files/{file_id}direct-contractruntime-resources.retrieveFile
GET /files/{file_id}/contentdirect-contractruntime-resources.downloadFile
POST /fine_tuning/jobsdirect-contractruntime-resources.createFineTuningJob
GET /fine_tuning/jobsdirect-contractruntime-resources.listPaginatedFineTuningJobs
GET /fine_tuning/jobs/{fine_tuning_job_id}direct-contractruntime-resources.retrieveFineTuningJob
GET /fine_tuning/jobs/{fine_tuning_job_id}/eventsdirect-contractruntime-resources.listFineTuningEvents
POST /fine_tuning/jobs/{fine_tuning_job_id}/canceldirect-contractruntime-resources.cancelFineTuningJob
GET /fine_tuning/jobs/{fine_tuning_job_id}/checkpointsdirect-contractruntime-resources.listFineTuningJobCheckpoints
GET /modelsdirect-contractruntime-resources.listModels
GET /models/{model}direct-contractruntime-resources.retrieveModel
DELETE /models/{model}direct-contractruntime-resources.deleteModel
POST /moderationsdirect-contractruntime-resources.createModeration
GET /assistantsruntime-retired-upstreamOpenAI retired Assistants/Threads on 2026-08-26 (developers.openai.com/api/docs/assistants/migration). These 23 pinned operations remain unimplemented and in the 242-operation denominator. The configured OpenAI backend cannot live-certify them; Responses is not counted as a wire-equivalent replacement. This does not establish every other provider or gateway compatibility mode is unavailable.
POST /assistantsruntime-retired-upstreamOpenAI retired Assistants/Threads on 2026-08-26 (developers.openai.com/api/docs/assistants/migration). These 23 pinned operations remain unimplemented and in the 242-operation denominator. The configured OpenAI backend cannot live-certify them; Responses is not counted as a wire-equivalent replacement. This does not establish every other provider or gateway compatibility mode is unavailable.
GET /assistants/{assistant_id}runtime-retired-upstreamOpenAI retired Assistants/Threads on 2026-08-26 (developers.openai.com/api/docs/assistants/migration). These 23 pinned operations remain unimplemented and in the 242-operation denominator. The configured OpenAI backend cannot live-certify them; Responses is not counted as a wire-equivalent replacement. This does not establish every other provider or gateway compatibility mode is unavailable.
POST /assistants/{assistant_id}runtime-retired-upstreamOpenAI retired Assistants/Threads on 2026-08-26 (developers.openai.com/api/docs/assistants/migration). These 23 pinned operations remain unimplemented and in the 242-operation denominator. The configured OpenAI backend cannot live-certify them; Responses is not counted as a wire-equivalent replacement. This does not establish every other provider or gateway compatibility mode is unavailable.
DELETE /assistants/{assistant_id}runtime-retired-upstreamOpenAI retired Assistants/Threads on 2026-08-26 (developers.openai.com/api/docs/assistants/migration). These 23 pinned operations remain unimplemented and in the 242-operation denominator. The configured OpenAI backend cannot live-certify them; Responses is not counted as a wire-equivalent replacement. This does not establish every other provider or gateway compatibility mode is unavailable.
POST /responsesdirect-contractinference.createResponse
GET /responses/{response_id}direct-contractruntime-resources.getResponse
DELETE /responses/{response_id}direct-contractruntime-resources.deleteResponse
GET /responses/{response_id}/input_itemsdirect-contractruntime-resources.listInputItems
POST /threadsruntime-retired-upstreamOpenAI retired Assistants/Threads on 2026-08-26 (developers.openai.com/api/docs/assistants/migration). These 23 pinned operations remain unimplemented and in the 242-operation denominator. The configured OpenAI backend cannot live-certify them; Responses is not counted as a wire-equivalent replacement. This does not establish every other provider or gateway compatibility mode is unavailable.
GET /threads/{thread_id}runtime-retired-upstreamOpenAI retired Assistants/Threads on 2026-08-26 (developers.openai.com/api/docs/assistants/migration). These 23 pinned operations remain unimplemented and in the 242-operation denominator. The configured OpenAI backend cannot live-certify them; Responses is not counted as a wire-equivalent replacement. This does not establish every other provider or gateway compatibility mode is unavailable.
POST /threads/{thread_id}runtime-retired-upstreamOpenAI retired Assistants/Threads on 2026-08-26 (developers.openai.com/api/docs/assistants/migration). These 23 pinned operations remain unimplemented and in the 242-operation denominator. The configured OpenAI backend cannot live-certify them; Responses is not counted as a wire-equivalent replacement. This does not establish every other provider or gateway compatibility mode is unavailable.
DELETE /threads/{thread_id}runtime-retired-upstreamOpenAI retired Assistants/Threads on 2026-08-26 (developers.openai.com/api/docs/assistants/migration). These 23 pinned operations remain unimplemented and in the 242-operation denominator. The configured OpenAI backend cannot live-certify them; Responses is not counted as a wire-equivalent replacement. This does not establish every other provider or gateway compatibility mode is unavailable.
GET /threads/{thread_id}/messagesruntime-retired-upstreamOpenAI retired Assistants/Threads on 2026-08-26 (developers.openai.com/api/docs/assistants/migration). These 23 pinned operations remain unimplemented and in the 242-operation denominator. The configured OpenAI backend cannot live-certify them; Responses is not counted as a wire-equivalent replacement. This does not establish every other provider or gateway compatibility mode is unavailable.
POST /threads/{thread_id}/messagesruntime-retired-upstreamOpenAI retired Assistants/Threads on 2026-08-26 (developers.openai.com/api/docs/assistants/migration). These 23 pinned operations remain unimplemented and in the 242-operation denominator. The configured OpenAI backend cannot live-certify them; Responses is not counted as a wire-equivalent replacement. This does not establish every other provider or gateway compatibility mode is unavailable.
GET /threads/{thread_id}/messages/{message_id}runtime-retired-upstreamOpenAI retired Assistants/Threads on 2026-08-26 (developers.openai.com/api/docs/assistants/migration). These 23 pinned operations remain unimplemented and in the 242-operation denominator. The configured OpenAI backend cannot live-certify them; Responses is not counted as a wire-equivalent replacement. This does not establish every other provider or gateway compatibility mode is unavailable.
POST /threads/{thread_id}/messages/{message_id}runtime-retired-upstreamOpenAI retired Assistants/Threads on 2026-08-26 (developers.openai.com/api/docs/assistants/migration). These 23 pinned operations remain unimplemented and in the 242-operation denominator. The configured OpenAI backend cannot live-certify them; Responses is not counted as a wire-equivalent replacement. This does not establish every other provider or gateway compatibility mode is unavailable.
DELETE /threads/{thread_id}/messages/{message_id}runtime-retired-upstreamOpenAI retired Assistants/Threads on 2026-08-26 (developers.openai.com/api/docs/assistants/migration). These 23 pinned operations remain unimplemented and in the 242-operation denominator. The configured OpenAI backend cannot live-certify them; Responses is not counted as a wire-equivalent replacement. This does not establish every other provider or gateway compatibility mode is unavailable.
POST /threads/runsruntime-retired-upstreamOpenAI retired Assistants/Threads on 2026-08-26 (developers.openai.com/api/docs/assistants/migration). These 23 pinned operations remain unimplemented and in the 242-operation denominator. The configured OpenAI backend cannot live-certify them; Responses is not counted as a wire-equivalent replacement. This does not establish every other provider or gateway compatibility mode is unavailable.
GET /threads/{thread_id}/runsruntime-retired-upstreamOpenAI retired Assistants/Threads on 2026-08-26 (developers.openai.com/api/docs/assistants/migration). These 23 pinned operations remain unimplemented and in the 242-operation denominator. The configured OpenAI backend cannot live-certify them; Responses is not counted as a wire-equivalent replacement. This does not establish every other provider or gateway compatibility mode is unavailable.
POST /threads/{thread_id}/runsruntime-retired-upstreamOpenAI retired Assistants/Threads on 2026-08-26 (developers.openai.com/api/docs/assistants/migration). These 23 pinned operations remain unimplemented and in the 242-operation denominator. The configured OpenAI backend cannot live-certify them; Responses is not counted as a wire-equivalent replacement. This does not establish every other provider or gateway compatibility mode is unavailable.
GET /threads/{thread_id}/runs/{run_id}runtime-retired-upstreamOpenAI retired Assistants/Threads on 2026-08-26 (developers.openai.com/api/docs/assistants/migration). These 23 pinned operations remain unimplemented and in the 242-operation denominator. The configured OpenAI backend cannot live-certify them; Responses is not counted as a wire-equivalent replacement. This does not establish every other provider or gateway compatibility mode is unavailable.
POST /threads/{thread_id}/runs/{run_id}runtime-retired-upstreamOpenAI retired Assistants/Threads on 2026-08-26 (developers.openai.com/api/docs/assistants/migration). These 23 pinned operations remain unimplemented and in the 242-operation denominator. The configured OpenAI backend cannot live-certify them; Responses is not counted as a wire-equivalent replacement. This does not establish every other provider or gateway compatibility mode is unavailable.
POST /threads/{thread_id}/runs/{run_id}/submit_tool_outputsruntime-retired-upstreamOpenAI retired Assistants/Threads on 2026-08-26 (developers.openai.com/api/docs/assistants/migration). These 23 pinned operations remain unimplemented and in the 242-operation denominator. The configured OpenAI backend cannot live-certify them; Responses is not counted as a wire-equivalent replacement. This does not establish every other provider or gateway compatibility mode is unavailable.
POST /threads/{thread_id}/runs/{run_id}/cancelruntime-retired-upstreamOpenAI retired Assistants/Threads on 2026-08-26 (developers.openai.com/api/docs/assistants/migration). These 23 pinned operations remain unimplemented and in the 242-operation denominator. The configured OpenAI backend cannot live-certify them; Responses is not counted as a wire-equivalent replacement. This does not establish every other provider or gateway compatibility mode is unavailable.
GET /threads/{thread_id}/runs/{run_id}/stepsruntime-retired-upstreamOpenAI retired Assistants/Threads on 2026-08-26 (developers.openai.com/api/docs/assistants/migration). These 23 pinned operations remain unimplemented and in the 242-operation denominator. The configured OpenAI backend cannot live-certify them; Responses is not counted as a wire-equivalent replacement. This does not establish every other provider or gateway compatibility mode is unavailable.
GET /threads/{thread_id}/runs/{run_id}/steps/{step_id}runtime-retired-upstreamOpenAI retired Assistants/Threads on 2026-08-26 (developers.openai.com/api/docs/assistants/migration). These 23 pinned operations remain unimplemented and in the 242-operation denominator. The configured OpenAI backend cannot live-certify them; Responses is not counted as a wire-equivalent replacement. This does not establish every other provider or gateway compatibility mode is unavailable.
GET /vector_storesdirect-contractruntime-resources.listVectorStores
POST /vector_storesdirect-contractruntime-resources.createVectorStore
GET /vector_stores/{vector_store_id}direct-contractruntime-resources.getVectorStore
POST /vector_stores/{vector_store_id}direct-contractruntime-resources.modifyVectorStore
DELETE /vector_stores/{vector_store_id}direct-contractruntime-resources.deleteVectorStore
GET /vector_stores/{vector_store_id}/filesdirect-contractruntime-resources.listVectorStoreFiles
POST /vector_stores/{vector_store_id}/filesdirect-contractruntime-resources.createVectorStoreFile
GET /vector_stores/{vector_store_id}/files/{file_id}direct-contractruntime-resources.getVectorStoreFile
DELETE /vector_stores/{vector_store_id}/files/{file_id}direct-contractruntime-resources.deleteVectorStoreFile
POST /vector_stores/{vector_store_id}/file_batchesdirect-contractruntime-resources.createVectorStoreFileBatch
GET /vector_stores/{vector_store_id}/file_batches/{batch_id}direct-contractruntime-resources.getVectorStoreFileBatch
POST /vector_stores/{vector_store_id}/file_batches/{batch_id}/canceldirect-contractruntime-resources.cancelVectorStoreFileBatch
GET /vector_stores/{vector_store_id}/file_batches/{batch_id}/filesdirect-contractruntime-resources.listFilesInVectorStoreBatch
POST /batchesdirect-contractruntime-resources.createBatch
GET /batchesdirect-contractruntime-resources.listBatches
GET /batches/{batch_id}/outputdirect-contractruntime-resources.getBatchOutput
GET /batches/{batch_id}direct-contractruntime-resources.retrieveBatch
POST /batches/{batch_id}/canceldirect-contractruntime-resources.cancelBatch
GET /configsdirect-contractconfigs.list
POST /configsdirect-contractconfigs.create
DELETE /configs/{slug}direct-contractconfigs.delete
GET /configs/{slug}direct-contractconfigs.get
PUT /configs/{slug}direct-contractconfigs.update
GET /configs/{slug}/versionsdirect-contractconfigs.listVersions
POST /feedbackdirect-contractruntime-resources.createFeedback
PUT /feedback/{id}direct-contractruntime-resources.updateFeedback
GET /integrationsdirect-contractintegrations.list
POST /integrationsdirect-contractintegrations.create
GET /integrations/{slug}direct-contractintegrations.get
PUT /integrations/{slug}direct-contractintegrations.update
DELETE /integrations/{slug}direct-contractintegrations.delete
GET /integrations/{slug}/modelsdirect-contractintegrations.getModels
PUT /integrations/{slug}/modelsdirect-contractintegrations.setModels
DELETE /integrations/{slug}/modelsdirect-contractintegrations.deleteModels
GET /integrations/{slug}/workspacesdirect-contractintegrations.getWorkspaces
PUT /integrations/{slug}/workspacesdirect-contractintegrations.setWorkspaces
GET /providersdirect-contractproviders.list
POST /providersdirect-contractproviders.create
GET /providers/{slug}direct-contractproviders.get
PUT /providers/{slug}direct-contractproviders.update
DELETE /providers/{slug}direct-contractproviders.delete
GET /virtual-keystenant-unverifiedRead-only probes of this family were denied or unavailable on the supplied SCM tenant. This is not proof that every method is unsupported. No speculative write API added.
POST /virtual-keystenant-unverifiedRead-only probes of this family were denied or unavailable on the supplied SCM tenant. This is not proof that every method is unsupported. No speculative write API added.
GET /virtual-keys/{slug}tenant-unverifiedRead-only probes of this family were denied or unavailable on the supplied SCM tenant. This is not proof that every method is unsupported. No speculative write API added.
PUT /virtual-keys/{slug}tenant-unverifiedRead-only probes of this family were denied or unavailable on the supplied SCM tenant. This is not proof that every method is unsupported. No speculative write API added.
DELETE /virtual-keys/{slug}tenant-unverifiedRead-only probes of this family were denied or unavailable on the supplied SCM tenant. This is not proof that every method is unsupported. No speculative write API added.
POST /admin/users/invitestenant-unverifiedRead-only probes of this family were denied or unavailable on the supplied SCM tenant. This is not proof that every method is unsupported. No speculative write API added.
GET /admin/users/invitestenant-unverifiedRead-only probes of this family were denied or unavailable on the supplied SCM tenant. This is not proof that every method is unsupported. No speculative write API added.
GET /admin/users/invites/{inviteId}tenant-unverifiedRead-only probes of this family were denied or unavailable on the supplied SCM tenant. This is not proof that every method is unsupported. No speculative write API added.
DELETE /admin/users/invites/{inviteId}tenant-unverifiedRead-only probes of this family were denied or unavailable on the supplied SCM tenant. This is not proof that every method is unsupported. No speculative write API added.
POST /admin/users/invites/{inviteId}/resendtenant-unverifiedRead-only probes of this family were denied or unavailable on the supplied SCM tenant. This is not proof that every method is unsupported. No speculative write API added.
GET /admin/userstenant-unverifiedRead-only probes of this family were denied or unavailable on the supplied SCM tenant. This is not proof that every method is unsupported. No speculative write API added.
GET /admin/users/{userId}tenant-unverifiedRead-only probes of this family were denied or unavailable on the supplied SCM tenant. This is not proof that every method is unsupported. No speculative write API added.
DELETE /admin/users/{userId}tenant-unverifiedRead-only probes of this family were denied or unavailable on the supplied SCM tenant. This is not proof that every method is unsupported. No speculative write API added.
PUT /admin/users/{userId}tenant-unverifiedRead-only probes of this family were denied or unavailable on the supplied SCM tenant. This is not proof that every method is unsupported. No speculative write API added.
POST /admin/workspaces/{workspaceId}/userstenant-unverifiedRead-only probes of this family were denied or unavailable on the supplied SCM tenant. This is not proof that every method is unsupported. No speculative write API added.
GET /admin/workspaces/{workspaceId}/userstenant-unverifiedRead-only probes of this family were denied or unavailable on the supplied SCM tenant. This is not proof that every method is unsupported. No speculative write API added.
PUT /admin/workspaces/{workspaceId}/users/{userId}tenant-unverifiedRead-only probes of this family were denied or unavailable on the supplied SCM tenant. This is not proof that every method is unsupported. No speculative write API added.
DELETE /admin/workspaces/{workspaceId}/users/{userId}tenant-unverifiedRead-only probes of this family were denied or unavailable on the supplied SCM tenant. This is not proof that every method is unsupported. No speculative write API added.
GET /admin/workspaces/{workspaceId}/users/{userId}tenant-unverifiedRead-only probes of this family were denied or unavailable on the supplied SCM tenant. This is not proof that every method is unsupported. No speculative write API added.
POST /admin/workspacesscm-adaptedSCM uses /workspaces: reads are available on the data and admin planes; writes use the admin plane. Creation requires SCM scope provisioning and remains live-unverified. Not a wire-equivalent Portkey implementation.
GET /admin/workspacesscm-adaptedSCM uses /workspaces: reads are available on the data and admin planes; writes use the admin plane. Creation requires SCM scope provisioning and remains live-unverified. Not a wire-equivalent Portkey implementation.
PUT /admin/workspaces/{workspaceId}scm-adaptedSCM uses /workspaces: reads are available on the data and admin planes; writes use the admin plane. Creation requires SCM scope provisioning and remains live-unverified. Not a wire-equivalent Portkey implementation.
GET /admin/workspaces/{workspaceId}scm-adaptedSCM uses /workspaces: reads are available on the data and admin planes; writes use the admin plane. Creation requires SCM scope provisioning and remains live-unverified. Not a wire-equivalent Portkey implementation.
DELETE /admin/workspaces/{workspaceId}scm-adaptedSCM uses /workspaces: reads are available on the data and admin planes; writes use the admin plane. Creation requires SCM scope provisioning and remains live-unverified. Not a wire-equivalent Portkey implementation.
GET /scim/workspacestenant-unverifiedRead-only probes of this family were denied or unavailable on the supplied SCM tenant. This is not proof that every method is unsupported. No speculative write API added.
POST /scim/workspacestenant-unverifiedRead-only probes of this family were denied or unavailable on the supplied SCM tenant. This is not proof that every method is unsupported. No speculative write API added.
DELETE /scim/workspaces/{scimWorkspaceGroupId}tenant-unverifiedRead-only probes of this family were denied or unavailable on the supplied SCM tenant. This is not proof that every method is unsupported. No speculative write API added.
POST /mcp-integrationsdirect-contractmcp-integrations.create
GET /mcp-integrationsdirect-contractmcp-integrations.list
GET /mcp-integrations/{mcpIntegrationId}direct-contractmcp-integrations.get
PUT /mcp-integrations/{mcpIntegrationId}direct-contractmcp-integrations.update
DELETE /mcp-integrations/{mcpIntegrationId}direct-contractmcp-integrations.delete
GET /mcp-integrations/{mcpIntegrationId}/workspacesdirect-contractmcp-integrations.getWorkspaces
PUT /mcp-integrations/{mcpIntegrationId}/workspacesdirect-contractmcp-integrations.setWorkspaces
GET /mcp-integrations/{mcpIntegrationId}/capabilitiesdirect-contractmcp-integrations.getCapabilities
PUT /mcp-integrations/{mcpIntegrationId}/capabilitiesdirect-contractmcp-integrations.setCapabilities
GET /mcp-integrations/{mcpIntegrationId}/metadatadirect-contractmcp-integrations.getMetadata
POST /mcp-serversdirect-contractmcp-servers.create
GET /mcp-serversdirect-contractmcp-servers.list
GET /mcp-servers/{mcpServerId}direct-contractmcp-servers.get
PUT /mcp-servers/{mcpServerId}direct-contractmcp-servers.update
DELETE /mcp-servers/{mcpServerId}direct-contractmcp-servers.delete
POST /mcp-servers/{mcpServerId}/testdirect-contractmcp-servers.test
GET /mcp-servers/{mcpServerId}/capabilitiesdirect-contractmcp-servers.getCapabilities
PUT /mcp-servers/{mcpServerId}/capabilitiesdirect-contractmcp-servers.updateCapabilities
GET /mcp-servers/{mcpServerId}/user-accessdirect-contractmcp-servers.getUserAccess
PUT /mcp-servers/{mcpServerId}/user-accessdirect-contractmcp-servers.updateUserAccess
GET /mcp-servers/{mcpServerId}/connectionsdirect-contractmcp-servers.getConnections
DELETE /mcp-servers/{mcpServerId}/connectionsdirect-contractmcp-servers.deleteConnections
POST /logsdirect-contractruntime-resources.createLogs
GET /logs/{logId}direct-contractruntime-resources.getLog
GET /logs/exports/{exportId}direct-contractlog-exports.get
PUT /logs/exports/{exportId}direct-contractlog-exports.update
GET /logs/exportsdirect-contractlog-exports.list
POST /logs/exportsdirect-contractlog-exports.create
POST /logs/exports/{exportId}/startdirect-contractlog-exports.start
POST /logs/exports/{exportId}/canceldirect-contractlog-exports.cancel
GET /logs/exports/{exportId}/downloaddirect-contractlog-exports.download
GET /audit-logsdirect-contractaudit-logs.list
POST /api-keys/{type}/{sub-type}scm-adaptedSCM splits service and user API keys into /api-keys/service and /api-keys/user. Virtual keys are not aliases.
GET /api-keysscm-adaptedSCM splits service and user API keys into /api-keys/service and /api-keys/user. Virtual keys are not aliases.
PUT /api-keys/{id}scm-adaptedSCM splits service and user API keys into /api-keys/service and /api-keys/user. Virtual keys are not aliases.
GET /api-keys/{id}scm-adaptedSCM splits service and user API keys into /api-keys/service and /api-keys/user. Virtual keys are not aliases.
DELETE /api-keys/{id}scm-adaptedSCM splits service and user API keys into /api-keys/service and /api-keys/user. Virtual keys are not aliases.
POST /api-keys/{id}/rotatescm-adaptedSCM splits service and user API keys into /api-keys/service and /api-keys/user. Virtual keys are not aliases.
POST /policies/usage-limitsdirect-contractusage-limits.create
GET /policies/usage-limitsdirect-contractusage-limits.list
GET /policies/usage-limits/{policyUsageLimitsId}direct-contractusage-limits.get
PUT /policies/usage-limits/{policyUsageLimitsId}direct-contractusage-limits.update
DELETE /policies/usage-limits/{policyUsageLimitsId}direct-contractusage-limits.delete
GET /policies/usage-limits/{policyUsageLimitsId}/entitiesdirect-contractusage-limits.listEntities
PUT /policies/usage-limits/{policyUsageLimitsId}/entities/{entityId}/resetdirect-contractusage-limits.resetEntity
POST /policies/rate-limitsdirect-contractrate-limits.create
GET /policies/rate-limitsdirect-contractrate-limits.list
GET /policies/rate-limits/{rateLimitsPolicyId}direct-contractrate-limits.get
PUT /policies/rate-limits/{rateLimitsPolicyId}direct-contractrate-limits.update
DELETE /policies/rate-limits/{rateLimitsPolicyId}direct-contractrate-limits.delete
GET /analytics/graphs/requestsscm-adapted-partialThe corresponding SCM /logs/charts route has live-verified trace/metadata filters, status/API-key/provider-model CSV-OR lists and inclusive total-token/cost bounds, separately and combined, using positive owned traffic and absent cohorts. Empty latency aggregates are null. Upstream query names/envelopes and remaining filters are not fully equivalent; this stays outside direct operation coverage.
GET /analytics/graphs/costscm-adapted-partialThe corresponding SCM /logs/charts route has live-verified trace/metadata filters, status/API-key/provider-model CSV-OR lists and inclusive total-token/cost bounds, separately and combined, using positive owned traffic and absent cohorts. Empty latency aggregates are null. Upstream query names/envelopes and remaining filters are not fully equivalent; this stays outside direct operation coverage.
GET /analytics/graphs/latencyscm-adapted-partialThe corresponding SCM /logs/charts route has live-verified trace/metadata filters, status/API-key/provider-model CSV-OR lists and inclusive total-token/cost bounds, separately and combined, using positive owned traffic and absent cohorts. Empty latency aggregates are null. Upstream query names/envelopes and remaining filters are not fully equivalent; this stays outside direct operation coverage.
GET /analytics/graphs/tokensscm-adapted-partialThe corresponding SCM /logs/charts route has live-verified trace/metadata filters, status/API-key/provider-model CSV-OR lists and inclusive total-token/cost bounds, separately and combined, using positive owned traffic and absent cohorts. Empty latency aggregates are null. Upstream query names/envelopes and remaining filters are not fully equivalent; this stays outside direct operation coverage.
GET /analytics/graphs/usersscm-adapted-partialSCM exposes /logs/charts and /logs/groups. Related telemetry exists, but upstream aggregations are not all semantically equivalent. Not counted as full operation coverage.
GET /analytics/graphs/users/requestsscm-adapted-partialSCM exposes /logs/charts and /logs/groups. Related telemetry exists, but upstream aggregations are not all semantically equivalent. Not counted as full operation coverage.
GET /analytics/graphs/errorsscm-adapted-partialSCM exposes /logs/charts and /logs/groups. Related telemetry exists, but upstream aggregations are not all semantically equivalent. Not counted as full operation coverage.
GET /analytics/graphs/errors/ratescm-adapted-partialSCM exposes /logs/charts and /logs/groups. Related telemetry exists, but upstream aggregations are not all semantically equivalent. Not counted as full operation coverage.
GET /analytics/graphs/errors/stacksscm-adapted-partialSCM exposes /logs/charts and /logs/groups. Related telemetry exists, but upstream aggregations are not all semantically equivalent. Not counted as full operation coverage.
GET /analytics/graphs/errors/status-codesscm-adapted-partialSCM exposes /logs/charts and /logs/groups. Related telemetry exists, but upstream aggregations are not all semantically equivalent. Not counted as full operation coverage.
GET /analytics/graphs/requests/rescuedscm-adapted-partialSCM exposes /logs/charts and /logs/groups. Related telemetry exists, but upstream aggregations are not all semantically equivalent. Not counted as full operation coverage.
GET /analytics/graphs/cache/hit-ratescm-adapted-partialSCM exposes /logs/charts and /logs/groups. Related telemetry exists, but upstream aggregations are not all semantically equivalent. Not counted as full operation coverage.
GET /analytics/graphs/cache/latencyscm-adapted-partialSCM exposes /logs/charts and /logs/groups. Related telemetry exists, but upstream aggregations are not all semantically equivalent. Not counted as full operation coverage.
GET /analytics/graphs/feedbacksscm-adapted-partialSCM exposes /logs/charts and /logs/groups. Related telemetry exists, but upstream aggregations are not all semantically equivalent. Not counted as full operation coverage.
GET /analytics/graphs/feedbacks/scoresscm-adapted-partialSCM exposes /logs/charts and /logs/groups. Related telemetry exists, but upstream aggregations are not all semantically equivalent. Not counted as full operation coverage.
GET /analytics/graphs/feedbacks/weightedscm-adapted-partialSCM exposes /logs/charts and /logs/groups. Related telemetry exists, but upstream aggregations are not all semantically equivalent. Not counted as full operation coverage.
GET /analytics/graphs/feedbacks/ai-modelsscm-adapted-partialSCM exposes /logs/charts and /logs/groups. Related telemetry exists, but upstream aggregations are not all semantically equivalent. Not counted as full operation coverage.
GET /analytics/summary/cachescm-adapted-partialSCM exposes /logs/charts and /logs/groups. Related telemetry exists, but upstream aggregations are not all semantically equivalent. Not counted as full operation coverage.
GET /analytics/groups/usersscm-adapted-partialSCM exposes /logs/charts and /logs/groups. Related telemetry exists, but upstream aggregations are not all semantically equivalent. Not counted as full operation coverage.
GET /analytics/groups/ai-modelsscm-adapted-partialSCM exposes /logs/charts and /logs/groups. Related telemetry exists, but upstream aggregations are not all semantically equivalent. Not counted as full operation coverage.
GET /analytics/groups/providerscm-adapted-partialSCM exposes /logs/charts and /logs/groups. Related telemetry exists, but upstream aggregations are not all semantically equivalent. Not counted as full operation coverage.
GET /analytics/groups/metadata/{metadataKey}scm-adapted-partialSCM exposes /logs/charts and /logs/groups. Related telemetry exists, but upstream aggregations are not all semantically equivalent. Not counted as full operation coverage.
GET /model-configs/pricing/{provider}/{model}direct-contractmodel-pricing.get
GET /secret-referencesdirect-contractsecret-references.list
POST /secret-referencesdirect-contractsecret-references.create
GET /secret-references/{secretReferenceId}direct-contractsecret-references.get
PUT /secret-references/{secretReferenceId}direct-contractsecret-references.update
DELETE /secret-references/{secretReferenceId}direct-contractsecret-references.delete
GET /deploymentsdirect-contractdeployments.list
POST /deploymentsdirect-contractdeployments.create
GET /deployments/{deploymentId}direct-contractdeployments.get
PUT /deployments/{deploymentId}direct-contractdeployments.update
DELETE /deployments/{deploymentId}direct-contractdeployments.delete
GET /deployments/{deploymentId}/pingdirect-contractdeployments.ping

Public catalog routing​

model-pricing.get follows the pricing operation's explicit public server and security: []: no /v1 prefix, SCM OAuth, TSG or gateway key. Both prescribed model lookups pass live with the complete response preserved. It is a public Portkey catalog operation, not Prisma tenant billing or a new SCM endpoint. See public pricing.