> ## Documentation Index
> Fetch the complete documentation index at: https://docs.apinizer.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Get API Proxy

> Retrieves detailed information about a specific API proxy including its endpoints and optionally policy configurations. You can control whether policy details are included using the withPolicies query parameter.

## Endpoint

```
GET /apiops/projects/{projectName}/apiProxies/{apiProxyName}/
```

## Authentication

Requires a Personal API Access Token.

### Header

```
Authorization: Bearer YOUR_TOKEN
```

## Request

### Headers

| Header        | Value          | Required |
| ------------- | -------------- | -------- |
| Authorization | Bearer {token} | Yes      |

### Path Parameters

| Parameter    | Type   | Required | Description    |
| ------------ | ------ | -------- | -------------- |
| projectName  | string | Yes      | Project name   |
| apiProxyName | string | Yes      | API Proxy name |

### Query Parameters

| Parameter    | Type    | Required | Default | Description                                                                                            |
| ------------ | ------- | -------- | ------- | ------------------------------------------------------------------------------------------------------ |
| withPolicies | boolean | No       | false   | When set to `true`, policy details (request, response, error pipelines) are included for each endpoint |

## Response

### Success Response (200 OK)

#### Without Policies (default)

```json theme={null}
{
  "success": true,
  "resultList": [
    {
      "name": "MyAPI",
      "description": "My API Proxy description",
      "apiType": "REST",
      "categoryList": ["category1", "category2"],
      "sharingType": "PROJECT",
      "clientRoute": {
        "relativePathList": ["/api/v1"],
        "virtualHostList": ["api.example.com"]
      },
      "routing": {
        "routingEnabled": true,
        "routingAddressList": [
          {
            "address": "https://backend.example.com",
            "weight": 100,
            "healthCheckEnabled": true
          }
        ]
      },
      "endpointList": [
        {
          "id": "endpoint-id-1",
          "endpoint": "/api/users",
          "description": "Get all users",
          "active": true,
          "httpMethod": "GET",
          "backendResourceUrl": "/users",
          "backendHttpMethod": "GET"
        }
      ],
      "deploymentList": [
        {
          "environmentName": "production",
          "deployed": true,
          "redeployRequired": false
        }
      ]
    }
  ],
  "resultCount": 1
}
```

#### With Policies (`withPolicies=true`)

When `withPolicies=true`, each endpoint object includes `requestPolicyList`, `responsePolicyList`, and `errorPolicyList`:

```json theme={null}
{
  "success": true,
  "resultList": [
    {
      "name": "MyAPI",
      "description": "My API Proxy description",
      "apiType": "REST",
      "endpointList": [
        {
          "id": "endpoint-id-1",
          "endpoint": "/api/users",
          "httpMethod": "GET",
          "active": true,
          "requestPolicyList": [
            {
              "type": "policy-api-based-throttling",
              "name": "throttling-policy",
              "description": "Throttling policy",
              "active": true
            }
          ],
          "responsePolicyList": [],
          "errorPolicyList": []
        }
      ]
    }
  ],
  "resultCount": 1
}
```

### Response Fields

| Field       | Type    | Description                                          |
| ----------- | ------- | ---------------------------------------------------- |
| success     | boolean | Indicates if the request was successful              |
| resultList  | array   | List containing the API proxy detail object          |
| resultCount | integer | Total number of results (always 1 for this endpoint) |

### API Proxy Object Fields

| Field          | Type   | Description                                        |
| -------------- | ------ | -------------------------------------------------- |
| name           | string | API Proxy name                                     |
| description    | string | API Proxy description                              |
| apiType        | string | API type (`REST` or `SOAP`)                        |
| categoryList   | array  | List of categories                                 |
| sharingType    | string | Sharing type (`PROJECT`, `ORGANIZATION`, `PUBLIC`) |
| clientRoute    | object | Client route configuration                         |
| routing        | object | Routing configuration                              |
| endpointList   | array  | List of endpoint objects                           |
| deploymentList | array  | Deployment status per environment                  |

### EnumApiType

* `REST` - REST API
* `SOAP` - SOAP API

### EnumSharingType

* `PROJECT` - Shared within project
* `ORGANIZATION` - Shared within organization
* `PUBLIC` - Publicly shared

### Error Response (401 Unauthorized)

```json theme={null}
{
  "error": "unauthorized_client",
  "error_description": "Invalid token"
}
```

### Error Response (400 Bad Request)

```json theme={null}
{
  "error": "bad_request",
  "error_description": "ApiProxy (name: MyAPI) is not found!"
}
```

### Error Response (404 Not Found)

```json theme={null}
{
  "error": "not_found",
  "error_description": "ApiProxy (name: MyAPI) was not found!"
}
```

## cURL Example

### Without Policies

```bash theme={null}
curl -X GET \
  "https://demo.apinizer.com/apiops/projects/MyProject/apiProxies/MyAPI/" \
  -H "Authorization: Bearer YOUR_TOKEN"
```

### With Policies

```bash theme={null}
curl -X GET \
  "https://demo.apinizer.com/apiops/projects/MyProject/apiProxies/MyAPI/?withPolicies=true" \
  -H "Authorization: Bearer YOUR_TOKEN"
```

## Full JSON Body Example

This endpoint does not require a request body.

## Permissions

User must have **`API_MANAGEMENT` + `VIEW`** permission in the project.

## Notes and Warnings

* **Policy Details**: By default, policy lists are not included. Set `withPolicies=true` to include request, response, and error pipeline policies for each endpoint
* **Case Sensitivity**: API Proxy names are case-sensitive
* **Project Membership**: User must be a member of the project

## Related Documentation

* [List API Proxies](/api-reference/api-proxies/crud/list-api-proxies) - List all API proxies
* [List Methods](/api-reference/api-proxies/endpoints/list-methods) - List all methods of an API proxy
* [List Policies](/api-reference/policies/crud/list-policies) - List all policies (proxy-level and method-level)
* [Update API Proxy](/api-reference/api-proxies/crud/update-api-proxy) - Update API proxy
* [Delete API Proxy](/api-reference/api-proxies/crud/delete-api-proxy) - Delete API proxy
