> ## 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.

# List Endpoint Policies

> Retrieves all policies (request, response, and error) for a specific endpoint (API method). This endpoint returns the same information as Get Endpoint but includes policy details.

## Endpoint

```
POST /apiops/projects/{projectName}/apiProxies/{apiProxyName}/endpoints/policies/
```

## Authentication

Requires a Personal API Access Token.

### Header

```
Authorization: Bearer YOUR_TOKEN
```

## Request

### Headers

| Header        | Value            | Required |
| ------------- | ---------------- | -------- |
| Authorization | Bearer {token}   | Yes      |
| Content-Type  | application/json | Yes      |

### Path Parameters

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

### Request Body

#### Full JSON Body Example

```json theme={null}
{
  "name": "/api/users",
  "httpMethod": "GET"
}
```

#### Request Body Fields

| Field      | Type   | Required | Description                                                                       |
| ---------- | ------ | -------- | --------------------------------------------------------------------------------- |
| name       | string | Yes      | Endpoint path/name                                                                |
| httpMethod | string | Yes      | HTTP method for the endpoint. See [EnumHttpRequestMethod](#enumhttprequestmethod) |

### Query Parameters

None

## Response

### Success Response (200 OK)

```json theme={null}
{
  "id": "endpoint-id",
  "endpoint": "/api/users",
  "description": "Get all users",
  "active": true,
  "httpMethod": "GET",
  "backendResourceUrl": "/users",
  "backendHttpMethod": "GET",
  "requestPolicyList": [
    {
      "type": "policy-api-based-throttling",
      "name": "throttling-policy",
      "description": "Throttling policy",
      "active": true
    }
  ],
  "responsePolicyList": [
    {
      "type": "policy-script",
      "name": "response-logging",
      "description": "Response logging",
      "active": true
    }
  ],
  "errorPolicyList": []
}
```

#### Response Fields

| Field              | Type    | Description                        |
| ------------------ | ------- | ---------------------------------- |
| id                 | string  | Endpoint unique identifier         |
| endpoint           | string  | Endpoint path/name                 |
| description        | string  | Endpoint description               |
| active             | boolean | Whether endpoint is active/enabled |
| httpMethod         | string  | HTTP method for the endpoint       |
| backendResourceUrl | string  | Backend resource URL               |
| backendHttpMethod  | string  | HTTP method for backend call       |
| requestPolicyList  | array   | List of request pipeline policies  |
| responsePolicyList | array   | List of response pipeline policies |
| errorPolicyList    | array   | List of error pipeline policies    |

#### Policy Object Fields (in policy lists)

| Field       | Type    | Description              |
| ----------- | ------- | ------------------------ |
| type        | string  | Policy type              |
| name        | string  | Policy name              |
| description | string  | Policy description       |
| active      | boolean | Whether policy is active |

**Note:** Policy objects contain only basic information. For full policy details, use the [Policies API](/api-reference/policies/crud/add-policy.mdx).

### EnumHttpRequestMethod

* `GET`, `POST`, `PUT`, `DELETE`, `PATCH`, `OPTIONS`, `HEAD`, `TRACE`, `ALL`

### Error Response (400 Bad Request)

```json theme={null}
{
  "error": "bad_request",
  "error_description": "Endpoint identifier (name and httpMethod) must be provided in request body!"
}
```

or

```json theme={null}
{
  "error": "bad_request",
  "error_description": "Endpoint with name (/api/users) and HTTP method (GET) is not found!"
}
```

### Error Response (401 Unauthorized)

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

### Error Response (404 Not Found)

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

## cURL Example

```bash theme={null}
curl -X POST \
  "https://demo.apinizer.com/apiops/projects/MyProject/apiProxies/MyAPI/endpoints/policies/" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "/api/users",
    "httpMethod": "GET"
  }'
```

## Full JSON Body Example

```json theme={null}
{
  "name": "/api/users",
  "httpMethod": "GET"
}
```

## Permissions

User must have **any permission** in the project (read access).

## Notes and Warnings

* **Endpoint Identifier**: Endpoint is identified by `name` and `httpMethod` combination (not by ID)
* **Policy Details**: Policy objects contain basic information only. For full policy configuration, use the [Policies API](/api-reference/policies/crud/add-policy.mdx)
* **Empty Lists**: If no policies exist in a pipeline, an empty array is returned

## Related Documentation

* [List Endpoints](/api-reference/api-proxies/endpoints/list-endpoints) - List all endpoints
* [Get Endpoint](/api-reference/api-proxies/endpoints/get-endpoint) - Get endpoint details (without policies)
* [Policies API](/api-reference/policies/crud/add-policy.mdx) - Policy management API
