---
title: "AI Gateway PUT"
method: PUT
path: "/ai/providers/{aiProviderId}/gateway/{path}"
tags: ["AI Gateway"]
---

# AI Gateway PUT

`PUT /ai/providers/{aiProviderId}/gateway/{path}`

## Request

- Base URL: `https://api.crowdin.com/api/v2`
- URL: `https://api.crowdin.com/api/v2/ai/providers/{aiProviderId}/gateway/{path}`
- Auth: none declared
- TypeScript: <https://skmtc.dev/crowdin/apis/crowdin-enterprise-api-v2/docs/ai/providers/:aiProviderId/gateway/:path/put.ts> (a function with typed inputs; its response is checked against the schema)

**Required scopes:** `ai.proxy` (Read and Write).

## Path parameters

- `aiProviderId` integer, required
- `path` string, required

## Request body

- object

## Response `200`

Response from the AI provider (format depends on provider and endpoint)

- object

## Other responses

- `401`: Unauthorized
- `403`: Forbidden
- `404`: AI provider with specified id was not found. The error body follows the error format of the AI provider's API, inferred from the request path when the provider is unknown; the `X-Crowdin-Gateway-Error` response header is `providerNotFound`.
- `default`: Statuses and bodies not listed here are passed through from the AI provider unchanged. Errors generated by Crowdin itself (400 invalid request, 402 payment or quota, 404, 502 upstream failure) carry the `X-Crowdin-Gateway-Error` header and use the error format of the AI provider's API, as does a provider failure that reaches Crowdin as an exception rather than a response (Bedrock), which keeps its own status under `X-Crowdin-Gateway-Error: upstreamRateLimited` for a 429, `upstreamRejected` for any other 4xx and `upstreamUnavailable` for a 5xx or an unreachable provider.

---

[API](https://skmtc.dev/crowdin/apis/crowdin-enterprise-api-v2.md) - [All operations](https://skmtc.dev/crowdin/apis/crowdin-enterprise-api-v2/llms.txt) - [OpenAPI document](https://skmtc.dev/crowdin/apis/crowdin-enterprise-api-v2/revisions/dc68744c5384?raw)
