---
title: "Update a Service"
method: PATCH
path: "/services/{ServiceIdOrName}"
tags: ["Services"]
---

# Update a Service

`PATCH /services/{ServiceIdOrName}`

Update a Service

## Request body

- Service
  - `ca_certificates` string[] — Array of `CA Certificate` object UUIDs that are used to build the trust store while verifying upstream server's TLS certificate. If set to `null` when Nginx default is respected. If default CA list in Nginx are not specified and TLS verification is enabled, then handshake with upstream server will always fail (because no CA are trusted).
  - `client_certificate` object — Certificate to be used as client certificate while TLS handshaking to the upstream server.
    - `id` string
  - `connect_timeout` integer — The timeout in milliseconds for establishing a connection to the upstream server.
  - `created_at` integer — Unix epoch when the resource was created.
  - `enabled` boolean — Whether the Service is active. If set to `false`, the proxy behavior will be as if any routes attached to it do not exist (404). Default: `true`.
  - `host` string — The host of the upstream server. Note that the host value is case sensitive.
  - `id` string
  - `name` string — The Service name.
  - `path` string — The path to be used in requests to the upstream server.
  - `port` integer — The upstream server port.
  - `protocol` 'grpc' | 'grpcs' | 'http' | 'https' | 'tcp' | 'tls' | 'tls_passthrough' | 'udp' | 'ws' | 'wss' — The protocol used to communicate with the upstream.
  - `read_timeout` integer — The timeout in milliseconds between two successive read operations for transmitting a request to the upstream server.
  - `retries` integer — The number of retries to execute upon failure to proxy.
  - `tags` string[] — An optional set of strings associated with the Service for grouping and filtering.
  - `tls_verify` boolean — Whether to enable verification of upstream server TLS certificate. If set to `null`, then the Nginx default is respected.
  - `tls_verify_depth` integer — Maximum depth of chain while verifying Upstream server's TLS certificate. If set to `null`, then the Nginx default is respected.
  - `updated_at` integer — Unix epoch when the resource was last updated.
  - `url` string — Helper field to set `protocol`, `host`, `port` and `path` using a URL. This field is write-only and is not returned in responses.
  - `write_timeout` integer — The timeout in milliseconds between two successive write operations for transmitting a request to the upstream server.

## Response `200`

Successfully updated Service

- Service
  - `ca_certificates` string[] — Array of `CA Certificate` object UUIDs that are used to build the trust store while verifying upstream server's TLS certificate. If set to `null` when Nginx default is respected. If default CA list in Nginx are not specified and TLS verification is enabled, then handshake with upstream server will always fail (because no CA are trusted).
  - `client_certificate` object — Certificate to be used as client certificate while TLS handshaking to the upstream server.
    - `id` string
  - `connect_timeout` integer — The timeout in milliseconds for establishing a connection to the upstream server.
  - `created_at` integer — Unix epoch when the resource was created.
  - `enabled` boolean — Whether the Service is active. If set to `false`, the proxy behavior will be as if any routes attached to it do not exist (404). Default: `true`.
  - `host` string — The host of the upstream server. Note that the host value is case sensitive.
  - `id` string
  - `name` string — The Service name.
  - `path` string — The path to be used in requests to the upstream server.
  - `port` integer — The upstream server port.
  - `protocol` 'grpc' | 'grpcs' | 'http' | 'https' | 'tcp' | 'tls' | 'tls_passthrough' | 'udp' | 'ws' | 'wss' — The protocol used to communicate with the upstream.
  - `read_timeout` integer — The timeout in milliseconds between two successive read operations for transmitting a request to the upstream server.
  - `retries` integer — The number of retries to execute upon failure to proxy.
  - `tags` string[] — An optional set of strings associated with the Service for grouping and filtering.
  - `tls_verify` boolean — Whether to enable verification of upstream server TLS certificate. If set to `null`, then the Nginx default is respected.
  - `tls_verify_depth` integer — Maximum depth of chain while verifying Upstream server's TLS certificate. If set to `null`, then the Nginx default is respected.
  - `updated_at` integer — Unix epoch when the resource was last updated.
  - `url` string — Helper field to set `protocol`, `host`, `port` and `path` using a URL. This field is write-only and is not returned in responses.
  - `write_timeout` integer — The timeout in milliseconds between two successive write operations for transmitting a request to the upstream server.

## Other responses

- `401` — Unauthorized
- `404` — Resource does not exist

## Changes

> 3 revisions in range; 1 not diffed.

- **2024-09-11** `5bd52189d290` — 1 warning
  - deleted the `path` request parameter `ServiceIdOrName`

[Change history](https://skmtc.dev/kong/apis/kong-enterprise-admin-api/changes/services/:ServiceIdOrName/patch.md)

---

[API](https://skmtc.dev/kong/apis/kong-enterprise-admin-api.md) · [All operations](https://skmtc.dev/kong/apis/kong-enterprise-admin-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/kong/kong-enterprise-admin-api/revisions/5bd52189d290/schema)
