---
title: "Create or update an API Proxy from URL"
method: PUT
path: "/apiops/projects/{projectName}/apiProxies/url/"
tags: ["ApiProxy"]
---

# Create or update an API Proxy from URL

`PUT /apiops/projects/{projectName}/apiProxies/url/`

## Request

- Base URL: `http://167.86.118.166:32080`
- URL: `http://167.86.118.166:32080/apiops/projects/{projectName}/apiProxies/url/`
- Auth: none declared
- TypeScript: <https://skmtc.dev/apinizer/apis/apinizer-management-apis/docs/apiops/projects/:projectName/apiProxies/url/put.ts> (a function with typed inputs; its response is checked against the schema)

Create or updates an API Proxy from Spec URL of OpenAPI, Swagger, WSDL or create Reverse Proxy

## Path parameters

- `projectName` string, required

## Request body

- ApiProxyParseFromURLDTO: ApiProxy ParseObject value has the metadata needed to create API Proxy and it is required
  - `deploy` boolean: If true, deploy the API Proxy after saving changes
  - `deployTargetEnvironmentNameList` string[]: List of environment names to deploy to (required when deploy=true)
  - `apiProxyCreationType` 'WSDL' | 'SWAGGER' | 'OPEN_API' | 'REVERSE_PROXY' | 'EMPTY_API'
  - `soapToRest` boolean
  - `reParse` boolean
  - `apiProxyGroupName` string
  - `apiProxyName` string
  - `apiProxyDescription` string
  - `clientRoute` ClientRoute
    - `relativePathList` string[]
    - `methodList` string[]
    - `hostList` string[]
    - `headerList` ApinizerBasicHeader[]
      - `name` string
      - `value` string
      - `resolvedName` string
      - `resolvedValue` string
    - `bufferRequest` boolean
    - `bufferResponse` boolean
  - `backendApiVersion` string
  - `enableWSA` boolean
  - `enableWSRM` boolean
  - `routingInfo` ApiProxyRoutingInfoDTO: API Proxy Routing Info DTO - used during proxy creation/update to configure routing settings
    - `loadBalanceAlgorithm` 'ROUND_ROBIN' | 'LRU' | 'WEIGHTED' | 'RANDOM' | 'PICK_FIRST': Load balance algorithm: ROUND_ROBIN, WEIGHTED_ROUND_ROBIN, LEAST_CONNECTIONS, RANDOM, IP_HASH
    - `routingAddressList` ApiProxyRoutingAddress[]: List of backend routing addresses
      - `address` string, required: Backend URL address
      - `description` string: Description for this backend address
      - `weight` integer: Weight for weighted round-robin load balancing (required when algorithm is WEIGHTED_ROUND_ROBIN)
      - `soapType` 'SOAP11' | 'SOAP12' | 'HTTP': SOAP port type (required when API type is SOAP)
      - `addressType` 'PRIMARY' | 'CANARY' | 'MIRROR' | 'FAILOVER_ONLY': Address type: PRIMARY, CANARY, MIRROR, FAILOVER_ONLY (defaults to PRIMARY)
      - `healthCheckPath` string: Active health check path for this backend (only for PRIMARY and FAILOVER_ONLY)
      - `healthMonitoringEnabled` boolean: Enable per-address health monitoring (only for HTTP type)
    - `connectionSettingsEnabled` boolean: Enable custom connection settings (overrides system defaults)
    - `connectTimeout` integer: Connection timeout in milliseconds
    - `readTimeout` integer: Read timeout in milliseconds
    - `connectionRequestTimeout` integer: Connection request timeout in milliseconds
    - `validateAfterInactivity` integer: Stale connection check interval in milliseconds (default: 2000)
    - `idleConnectionTimeout` integer: Idle connection cleanup timeout in seconds (default: 30)
    - `redirectsEnabled` boolean: Enable HTTP redirect following
    - `maxRedirects` integer: Maximum number of redirects to follow
    - `relativeRedirectsAllowed` boolean: Allow relative redirects
    - `preserveHttpMethodOnRedirect` boolean: Preserve HTTP method and body on 301/302/303/307/308 redirects (default: false — 301/302/303 downgrade to GET and drop the body)
    - `enableStreaming` boolean: Enable streaming for large responses
    - `connectionPoolManagementType` 'GENERAL' | 'CUSTOM' | 'NONE': Connection pool management type: GENERAL, PER_ROUTE, CUSTOM
    - `customConnectionPoolSize` integer: Custom connection pool size (only when connectionPoolManagementType is CUSTOM)
    - `retryCount` integer: Number of retries for failed requests (default: 0)
    - `failoverRetryCount` integer: Number of retries during failover (default: 0)
    - `ignoreRoutingError` boolean: Ignore routing errors
    - `retryDelayType` 'NO_DELAY' | 'FIXED' | 'EXPONENTIAL': Retry delay strategy: NO_DELAY, FIXED, EXPONENTIAL_BACKOFF
    - `retryFixedDelayMs` integer: Fixed delay between retries in milliseconds
    - `retryInitialDelayMs` integer: Initial delay for exponential backoff in milliseconds
    - `retryMaxDelayMs` integer: Maximum delay for exponential backoff in milliseconds
    - `retryBackoffMultiplier` number, double: Backoff multiplier for exponential delay
    - `stickySessionEnabled` boolean: Enable sticky sessions (session affinity)
    - `stickyType` 'COOKIE_ONLY' | 'IP_HASH' | 'HYBRID': Sticky session type: COOKIE, IP_HASH, HYBRID
    - `stickyCookieName` string: Cookie name for sticky sessions (required when stickySessionEnabled=true)
    - `stickyCookieTtl` integer: Cookie TTL in seconds
    - `stickyCookieSecure` boolean: Set Secure flag on sticky session cookie
    - `stickyCookieHttpOnly` boolean: Set HttpOnly flag on sticky session cookie
    - `stickyHashSecret` string: Secret for IP-hash cookie signing
    - `healthMonitoringCustomizationEnabled` boolean: Enable custom health check settings
    - `healthCheckIntervalSeconds` integer: Health check interval in seconds
    - `healthCheckTimeoutSeconds` integer: Health check timeout in seconds
    - `healthCheckFailThreshold` integer: Consecutive failures before marking backend as unhealthy
    - `healthCheckPassThreshold` integer: Consecutive successes before marking backend as healthy
    - `trafficMirrorEnabled` boolean: Enable traffic mirroring to MIRROR-type addresses
    - `mirrorPercentage` integer: Percentage of traffic to mirror (0-100)
    - `mirrorIgnoreCircuitBreaker` boolean: Send mirrored requests even if circuit breaker is open
    - `mirrorRespectCircuitBreaker` boolean: Mirrored requests must respect circuit breaker state
    - `canarySettings` CanaryReleaseSettingsDTO
      - `enabled` boolean
      - `trafficPercentage` integer
      - `cooldownPeriodSeconds` integer
    - `failoverOnlyEnabled` boolean: Enable failover-only mode for FAILOVER_ONLY-type addresses
    - `queryEncodingMode` 'STANDARD' | 'RFC3986' | 'PASSTHROUGH': Query parameter encoding mode for backend routing: STANDARD (default; URL-encode all special chars), RFC3986 (preserve / + = : @), PASSTHROUGH (raw, only request-fatal chars encoded)
  - `maintenanceModeSetting` MaintenanceModeSettingDTO
    - `deploy` boolean: If true, deploy the API Proxy after saving changes
    - `deployTargetEnvironmentNameList` string[]: List of environment names to deploy to (required when deploy=true)
    - `enabled` boolean
    - `httpStatusCode` integer
    - `contentType` string
    - `message` string
  - `specUrl` string
  - `specAuthorizationValueList` SpecAuthorizationValue[]
    - `value` string
    - `type` string
    - `keyName` string
  - `specAuthUsername` string
  - `specAuthPassword` string
  - `useSpecAuthorization` boolean
  - `skipSslVerification` boolean
  - `trustStoreName` string
  - `uploadedTrustStoreContent` string
  - `uploadedTrustStorePassword` string
  - `uploadedTrustStoreType` string
  - `certificateName` string
  - `connectionTimeout` integer

## Response `200`

successful operation!

- ApiOpsResponseSuccess
  - `status` 'SUCCESS' | 'FAILURE'
  - `resultMessage` string
  - `resultList` string[]
  - `resultCount` integer
  - `deploymentResult` DeploymentResult
    - `envName` string
    - `podName` string
    - `podIp` string
    - `success` boolean
    - `detail` string
    - `responseTime` integer
    - `detailList` unknown[]
      - unknown
    - `firstFromApiResultList` unknown
  - `unresolvedReferences` string[]
  - `advisories` ApiOpsAdvisoryDTO[]
    - `level` string
    - `key` string
    - `params` object

## Other responses

- `401`: not authorized for this operation!
- `500`: internal error!

## Changes

- **2026-10-20** `d1a546deccf0`: 1 breaking
  - the request property `routingInfo/routingAddressList/items/address` became required
  - …this revision’s changelog is incomplete

[Operation history](https://skmtc.dev/apinizer/apis/apinizer-management-apis/changes/apiops/projects/:projectName/apiProxies/url/put.md)

---

[API](https://skmtc.dev/apinizer/apis/apinizer-management-apis.md) - [All operations](https://skmtc.dev/apinizer/apis/apinizer-management-apis/llms.txt) - [OpenAPI document](https://skmtc.dev/apinizer/apis/apinizer-management-apis/revisions/e083046b24cd?raw)
