Update a service
Updates an existing service. All binding validation rules from service creation apply here as well.
Binding Validation Rules
- Cross-host validation: All bindings must reference ports/interfaces that belong to the service's host. Bindings referencing entities from other hosts will be rejected.
- Deduplication: Duplicate bindings are automatically deduplicated.
- All-interfaces precedence: If a port binding with
ip_address_id: null(all ip_addresses) is included, any specific-interface bindings for the same port are automatically removed. - Conflict detection: Interface bindings conflict with port bindings on the same interface.
User API key (Bearer scp_u_...). Create in Platform > API Keys.
In: header
Path Parameters
Service ID
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
curl -X PUT "https://example.com/api/v1/services/497f6eca-6276-4993-bfeb-53cbbbba6f08" \ -H "Content-Type: application/json" \ -d '{ "bindings": [ { "created_at": "2026-09-15T04:26:40.580448Z", "first_discovery_id": null, "id": "aecb2d5f-df30-4544-88c1-06cdd08c2135", "ip_address_id": "550e8400-e29b-41d4-a716-446655440005", "last_discovery_id": null, "last_seen_at": "2026-09-15T04:26:40.580448Z", "lineage_id": null, "network_id": "550e8400-e29b-41d4-a716-446655440002", "port_id": "550e8400-e29b-41d4-a716-446655440006", "service_id": "550e8400-e29b-41d4-a716-446655440007", "type": "Port", "updated_at": "2026-09-15T04:26:40.580448Z", "valid_from": "2026-09-15T04:26:40.580448Z", "valid_to": null } ], "created_at": "2026-01-15T10:30:00Z", "first_discovery_id": null, "host_id": "550e8400-e29b-41d4-a716-446655440003", "id": "550e8400-e29b-41d4-a716-446655440007", "last_discovery_id": null, "last_seen_at": "2026-01-15T10:30:00Z", "lineage_id": null, "name": "nginx", "network_id": "550e8400-e29b-41d4-a716-446655440002", "position": 0, "service_definition": "Immich", "source": { "type": "Manual" }, "tags": [], "updated_at": "2026-01-15T10:30:00Z", "valid_from": "2026-01-15T10:30:00Z", "valid_to": null, "virtualization_metadata": null, "virtualization_service_id": null }'{
"meta": {
"api_version": 1,
"server_version": "0.17.14"
},
"success": true,
"data": {
"bindings": [
{
"created_at": "2026-09-15T04:26:40.599235Z",
"first_discovery_id": null,
"id": "2a8b32d7-696c-4f00-9d54-03a22c2b05aa",
"ip_address_id": "550e8400-e29b-41d4-a716-446655440005",
"last_discovery_id": null,
"last_seen_at": "2026-09-15T04:26:40.599235Z",
"lineage_id": null,
"network_id": "550e8400-e29b-41d4-a716-446655440002",
"port_id": "550e8400-e29b-41d4-a716-446655440006",
"service_id": "550e8400-e29b-41d4-a716-446655440007",
"type": "Port",
"updated_at": "2026-09-15T04:26:40.599235Z",
"valid_from": "2026-09-15T04:26:40.599235Z",
"valid_to": null
}
],
"created_at": "2026-01-15T10:30:00Z",
"first_discovery_id": null,
"host_id": "550e8400-e29b-41d4-a716-446655440003",
"id": "550e8400-e29b-41d4-a716-446655440007",
"last_discovery_id": null,
"last_seen_at": "2026-01-15T10:30:00Z",
"lineage_id": null,
"name": "nginx",
"network_id": "550e8400-e29b-41d4-a716-446655440002",
"position": 0,
"service_definition": "Immich",
"source": {
"type": "Manual"
},
"tags": [],
"updated_at": "2026-01-15T10:30:00Z",
"valid_from": "2026-01-15T10:30:00Z",
"valid_to": null,
"virtualization_metadata": null,
"virtualization_service_id": null
},
"error": "string"
}{
"meta": {
"api_version": 1,
"server_version": "0.17.14"
},
"success": true,
"code": "string",
"error": "string",
"params": {
"property1": null,
"property2": null
}
}{
"meta": {
"api_version": 1,
"server_version": "0.17.14"
},
"success": true,
"code": "string",
"error": "string",
"params": {
"property1": null,
"property2": null
}
}Create a new service
Creates a service with optional bindings to ip_addresses or ports. The `id`, `created_at`, `updated_at`, and `source` fields are generated server-side. Bindings are specified without `service_id` or `network_id` - these are assigned automatically. ### Binding Validation Rules - **Cross-host validation**: All bindings must reference ports/interfaces that belong to the service's host. Bindings referencing entities from other hosts will be rejected. - **Deduplication**: Duplicate bindings in the same request are automatically deduplicated. - **All-interfaces precedence**: If a port binding with `ip_address_id: null` (all ip_addresses) is included, any specific-interface bindings for the same port are automatically removed. - **Conflict detection**: Interface bindings conflict with port bindings on the same interface. A port binding on all ip_addresses conflicts with any interface binding.
Delete Service
Next Page