Ana içeriğe atla

Endpoint

DELETE /apiops/projects/{projectName}/apiProxies/{apiProxyName}/policies/{policyName}/

Authentication

Requires a Personal API Access Token.
Authorization: Bearer YOUR_TOKEN

Request

Headers

HeaderValueRequired
AuthorizationBearer Yes
Content-Typeapplication/jsonYes

Path Parameters

ParameterTypeRequiredDescription
projectNamestringYesProject name
apiProxyNamestringYesAPI Proxy name
policyNamestringYesPolicy name (must exist)

Request Body

Full JSON Body Example

{
  "operationMetadata": {
    "targetScope": "ALL",
    "targetPipeline": "REQUEST",
    "deploy": true,
    "deployTargetEnvironmentNameList": ["production"]
  }
}

Request Body Fields

operationMetadata
FieldTypeRequiredDefaultDescription
targetScopestringYes-Policy scope: ALL or ENDPOINT
targetEndpointstringNo*-Endpoint path (required if targetScope=ENDPOINT)
targetEndpointHTTPMethodstringNo*-HTTP method (required if targetScope=ENDPOINT)
targetPipelinestringYes-Pipeline: REQUEST, RESPONSE, or ERROR
deploybooleanNotrueWhether to deploy after deleting policy
deployTargetEnvironmentNameListarrayNo[]List of environment names to deploy to
Note: The order field is not used for delete operations.

EnumPolicyTargetScope

  • ALL - Delete policy from all endpoints
  • ENDPOINT - Delete policy only from specified endpoint

EnumPolicyTargetPipeline

  • REQUEST - Delete from request pipeline
  • RESPONSE - Delete from response pipeline
  • ERROR - Delete from error pipeline

EnumHttpRequestMethod

  • GET, POST, PUT, DELETE, PATCH, OPTIONS, HEAD, TRACE, ALL
Note: When targetScope is ENDPOINT, both targetEndpoint and targetEndpointHTTPMethod are required.

Response

Success Response (200 OK)

{
  "status": "SUCCESS"
}
If deploy: true is set in the request, the response includes deployment result:
{
  "status": "SUCCESS",
  "deploymentResult": {
    "success": true,
    "responseTime": 1500,
    "detailList": [
      {
        "envName": "production",
        "podName": "pod-123",
        "podIp": "10.0.0.1",
        "success": true,
        "responseTime": 1500
      }
    ]
  }
}

Response Fields

FieldTypeDescription
statusstringResponse status: SUCCESS or FAILURE
deploymentResultobjectDeployment result (if deploy=true). See Deployment Result Object

Deployment Result Object (deploymentResult)

FieldTypeDescription
successbooleanOverall deployment success status
responseTimeintegerTotal deployment response time in milliseconds
detailListarrayList of deployment details per pod/environment

Deployment Detail Object (detailList item)

FieldTypeDescription
envNamestringEnvironment name
podNamestringPod name where deployment occurred
podIpstringPod IP address
successbooleanDeployment success status for this pod
responseTimeintegerDeployment response time for this pod in milliseconds

EnumStatus

  • SUCCESS - Operation successful
  • FAILURE - Operation failed

Error Response (400 Bad Request)

{
  "error": "bad_request",
  "error_description": "A policy with name (my-policy) does not exist in API Proxy!"
}

Common Causes

  • Policy name does not exist
  • Invalid targetScope (ENDPOINT without targetEndpoint)
  • Invalid targetEndpoint (endpoint not found in API Proxy)
  • Policy not found in specified pipeline/scope

Error Response (401 Unauthorized)

{
  "error": "unauthorized_client",
  "error_description": "Invalid token"
}

Error Response (404 Not Found)

{
  "error": "not_found",
  "error_description": "ApiProxy (name: MyAPI) was not found!"
}

cURL Example

Example 1: Delete Policy from All Endpoints

curl -X DELETE \
  "https://demo.apinizer.com/apiops/projects/MyProject/apiProxies/MyAPI/policies/throttling-policy/" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "operationMetadata": {
      "targetScope": "ALL",
      "targetPipeline": "REQUEST",
      "deploy": true,
      "deployTargetEnvironmentNameList": ["production"]
    }
  }'

Example 2: Delete Policy from Specific Endpoint

curl -X DELETE \
  "https://demo.apinizer.com/apiops/projects/MyProject/apiProxies/MyAPI/policies/endpoint-throttling/" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "operationMetadata": {
      "targetScope": "ENDPOINT",
      "targetEndpoint": "/api/users",
      "targetEndpointHTTPMethod": "GET",
      "targetPipeline": "REQUEST",
      "deploy": false
    }
  }'

Example 3: Delete Policy Without Deployment

curl -X DELETE \
  "https://demo.apinizer.com/apiops/projects/MyProject/apiProxies/MyAPI/policies/test-policy/" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "operationMetadata": {
      "targetScope": "ALL",
      "targetPipeline": "REQUEST",
      "deploy": false
    }
  }'

Example 4: Delete Policy from Response Pipeline

curl -X DELETE \
  "https://demo.apinizer.com/apiops/projects/MyProject/apiProxies/MyAPI/policies/response-logging/" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "operationMetadata": {
      "targetScope": "ALL",
      "targetPipeline": "RESPONSE",
      "deploy": true,
      "deployTargetEnvironmentNameList": ["production"]
    }
  }'

Permissions

  • User must have API_MANAGEMENT + MANAGE permission in the project
  • If deploy: true is set in the request, user must also have API_MANAGEMENT + DEPLOY_UNDEPLOY permission

Notes and Warnings

  • Policy Name: Policy name is case-insensitive. The policy is found by case-insensitive name matching.
  • Scope: If policy exists in multiple scopes (ALL and ENDPOINT), you must delete from each scope separately.
  • Pipeline: If policy exists in multiple pipelines (REQUEST, RESPONSE, ERROR), you must delete from each pipeline separately.
  • Deployment: If deploy: true, ensure environments exist and user has deployment permissions.
  • Multiple Instances: If a policy with the same name exists in multiple positions (e.g., order 1 and order 3), all instances are deleted.
  • Irreversible: Policy deletion is permanent. Ensure you have a backup if needed.