---
title: "Proxy To Internal Service"
method: POST
path: "/internal/proxy"
tags: ["internal"]
---

# Proxy To Internal Service

`POST /internal/proxy`

Proxy a request to an internal service.

This endpoint is only available in staging/development environments.
Requires user authentication (same as other gateway endpoints).

The authenticated user's ID is passed to internal services via the
Axel-User-Id header, so there is no privilege escalation.

## Request body

- InternalProxyRequest — Request to proxy to an internal service.
  - `method` 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE', required — HTTP method to use
  - `service` 'content' | 'travel' | 'users' | 'payments' | 'communications' | 'axel-brain' | 'conv-brain' | 'travel-email', required — Target internal service
  - `path` string, required — API path on the service (e.g., /api/v1/hotels/123/images)
  - `body` union — Request body (for POST/PUT/PATCH)
    - object
    - unknown[]
      - unknown
  - `headers` object, nullable — Additional headers to include
  - `timeout` integer — Request timeout in seconds (1-120)
  - `query_params` object, nullable — Query parameters to append to the path

## Response `200`

Successful Response

- InternalProxyResponse — Response from the proxied internal service.
  - `status_code` integer, required — HTTP status code from internal service
  - `headers` object, required — Response headers
  - `body` unknown, required
  - `elapsed_ms` integer, required — Request duration in milliseconds
  - `service` string, required — Service that was called
  - `path` string, required — Path that was called

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.dev/helloaxel/apis/client-api-gateway.md) · [All operations](https://skmtc.dev/helloaxel/apis/client-api-gateway/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/helloaxel/client-api-gateway/revisions/7ffb16b1c40d/schema)
